1 #line 2 "surf/surfxml.c"
3 #line 4 "surf/surfxml.c"
5 #define YY_INT_ALIGNED short int
7 /* A lexical scanner generated by flex */
10 #define YY_FLEX_MAJOR_VERSION 2
11 #define YY_FLEX_MINOR_VERSION 5
12 #define YY_FLEX_SUBMINOR_VERSION 31
13 #if YY_FLEX_SUBMINOR_VERSION > 0
17 /* First, we deal with platform-specific or compiler-specific issues. */
19 /* begin standard C headers. */
25 /* end standard C headers. */
27 /* flex integer type definitions */
32 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
34 #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
36 typedef int8_t flex_int8_t;
37 typedef uint8_t flex_uint8_t;
38 typedef int16_t flex_int16_t;
39 typedef uint16_t flex_uint16_t;
40 typedef int32_t flex_int32_t;
41 typedef uint32_t flex_uint32_t;
43 typedef signed char flex_int8_t;
44 typedef short int flex_int16_t;
45 typedef int flex_int32_t;
46 typedef unsigned char flex_uint8_t;
47 typedef unsigned short int flex_uint16_t;
48 typedef unsigned int flex_uint32_t;
51 /* Limits of integral types. */
53 #define INT8_MIN (-128)
56 #define INT16_MIN (-32767-1)
59 #define INT32_MIN (-2147483647-1)
62 #define INT8_MAX (127)
65 #define INT16_MAX (32767)
68 #define INT32_MAX (2147483647)
71 #define UINT8_MAX (255U)
74 #define UINT16_MAX (65535U)
77 #define UINT32_MAX (4294967295U)
80 #endif /* ! FLEXINT_H */
84 /* The "const" storage-class-modifier is valid. */
87 #else /* ! __cplusplus */
94 #endif /* ! __cplusplus */
102 /* Returned upon end-of-file. */
105 /* Promotes a possibly negative, possibly signed char to an unsigned
106 * integer for use as an array index. If the signed char is negative,
107 * we want to instead treat it as an 8-bit unsigned char, hence the
110 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
112 /* Enter a start condition. This macro really ought to take a parameter,
113 * but we do it the disgusting crufty way forced on us by the ()-less
114 * definition of BEGIN.
116 #define BEGIN (yy_start) = 1 + 2 *
118 /* Translate the current start state into a value that can be later handed
119 * to BEGIN to return to the state. The YYSTATE alias is for lex
122 #define YY_START (((yy_start) - 1) / 2)
123 #define YYSTATE YY_START
125 /* Action number for EOF rule of a given start state. */
126 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
128 /* Special action meaning "start processing a new file". */
129 #define YY_NEW_FILE surf_parse_restart(surf_parse_in )
131 #define YY_END_OF_BUFFER_CHAR 0
133 /* Size of default input buffer. */
135 #define YY_BUF_SIZE 16384
138 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
139 #define YY_TYPEDEF_YY_BUFFER_STATE
140 typedef struct yy_buffer_state *YY_BUFFER_STATE;
143 extern int surf_parse_leng;
145 extern FILE *surf_parse_in, *surf_parse_out;
147 #define EOB_ACT_CONTINUE_SCAN 0
148 #define EOB_ACT_END_OF_FILE 1
149 #define EOB_ACT_LAST_MATCH 2
151 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
152 * access to the local variable yy_act. Since yyless() is a macro, it would break
153 * existing scanners that call yyless() from OUTSIDE surf_parse_lex.
154 * One obvious solution it to make yy_act a global. I tried that, and saw
155 * a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
156 * normally declared as a register variable-- so it is not worth it.
158 #define YY_LESS_LINENO(n) \
161 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
162 if ( surf_parse_text[yyl] == '\n' )\
163 --surf_parse_lineno;\
166 /* Return all but the first "n" matched characters back to the input stream. */
170 /* Undo effects of setting up surf_parse_text. */ \
171 int yyless_macro_arg = (n); \
172 YY_LESS_LINENO(yyless_macro_arg);\
173 *yy_cp = (yy_hold_char); \
174 YY_RESTORE_YY_MORE_OFFSET \
175 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
176 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
180 #define unput(c) yyunput( c, (yytext_ptr) )
182 /* The following is because we cannot portably get our hands on size_t
183 * (without autoconf's help, which isn't available because we want
184 * flex-generated scanners to compile on their own).
187 #ifndef YY_TYPEDEF_YY_SIZE_T
188 #define YY_TYPEDEF_YY_SIZE_T
189 typedef unsigned int yy_size_t;
192 #ifndef YY_STRUCT_YY_BUFFER_STATE
193 #define YY_STRUCT_YY_BUFFER_STATE
194 struct yy_buffer_state
198 char *yy_ch_buf; /* input buffer */
199 char *yy_buf_pos; /* current position in input buffer */
201 /* Size of input buffer in bytes, not including room for EOB
204 yy_size_t yy_buf_size;
206 /* Number of characters read into yy_ch_buf, not including EOB
211 /* Whether we "own" the buffer - i.e., we know we created it,
212 * and can realloc() it to grow it, and should free() it to
215 int yy_is_our_buffer;
217 /* Whether this is an "interactive" input source; if so, and
218 * if we're using stdio for input, then we want to use getc()
219 * instead of fread(), to make sure we stop fetching input after
222 int yy_is_interactive;
224 /* Whether we're considered to be at the beginning of a line.
225 * If so, '^' rules will be active on the next match, otherwise
230 int yy_bs_lineno; /**< The line count. */
231 int yy_bs_column; /**< The column count. */
233 /* Whether to try to fill the input buffer when we reach the
238 int yy_buffer_status;
240 #define YY_BUFFER_NEW 0
241 #define YY_BUFFER_NORMAL 1
242 /* When an EOF's been seen but there's still some text to process
243 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
244 * shouldn't try reading from the input source any more. We might
245 * still have a bunch of tokens to match, though, because of
246 * possible backing-up.
248 * When we actually see the EOF, we change the status to "new"
249 * (via surf_parse_restart()), so that the user can continue scanning by
250 * just pointing surf_parse_in at a new input file.
252 #define YY_BUFFER_EOF_PENDING 2
255 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
257 /* Stack of input buffers. */
258 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
259 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
260 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
262 /* We provide macros for accessing buffer states in case in the
263 * future we want to put the buffer states in a more general
266 * Returns the top of the stack, or NULL.
268 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
269 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
272 /* Same as previous macro, but useful when we know that the buffer stack is not
273 * NULL or when we need an lvalue. For internal use only.
275 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
277 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
278 static char yy_hold_char;
279 static int yy_n_chars; /* number of characters read into yy_ch_buf */
282 /* Points to current character in buffer. */
283 static char *yy_c_buf_p = (char *) 0;
284 static int yy_init = 1; /* whether we need to initialize */
285 static int yy_start = 0; /* start state number */
287 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
288 * instead of setting up a fresh surf_parse_in. A bit of a hack ...
290 static int yy_did_buffer_switch_on_eof;
292 void surf_parse_restart (FILE *input_file );
293 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer );
294 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size );
295 void surf_parse__delete_buffer (YY_BUFFER_STATE b );
296 void surf_parse__flush_buffer (YY_BUFFER_STATE b );
297 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer );
298 void surf_parse_pop_buffer_state (void );
300 static void surf_parse_ensure_buffer_stack (void );
301 static void surf_parse__load_buffer_state (void );
302 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file );
304 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
306 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size );
307 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str );
308 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len );
310 void *surf_parse_alloc (yy_size_t );
311 void *surf_parse_realloc (void *,yy_size_t );
312 void surf_parse_free (void * );
314 #define yy_new_buffer surf_parse__create_buffer
316 #define yy_set_interactive(is_interactive) \
318 if ( ! YY_CURRENT_BUFFER ){ \
319 surf_parse_ensure_buffer_stack (); \
320 YY_CURRENT_BUFFER_LVALUE = \
321 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
323 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
326 #define yy_set_bol(at_bol) \
328 if ( ! YY_CURRENT_BUFFER ){\
329 surf_parse_ensure_buffer_stack (); \
330 YY_CURRENT_BUFFER_LVALUE = \
331 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
333 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
336 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
338 /* Begin user sect3 */
340 #define surf_parse_wrap(n) 1
341 #define YY_SKIP_YYWRAP
343 typedef unsigned char YY_CHAR;
345 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
347 typedef int yy_state_type;
349 extern int surf_parse_lineno;
351 int surf_parse_lineno = 1;
353 extern char *surf_parse_text;
354 #define yytext_ptr surf_parse_text
356 static yy_state_type yy_get_previous_state (void );
357 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
358 static int yy_get_next_buffer (void );
359 static void yy_fatal_error (yyconst char msg[] );
361 /* Done after the current pattern has been matched and before the
362 * corresponding action - sets up surf_parse_text.
364 #define YY_DO_BEFORE_ACTION \
365 (yytext_ptr) = yy_bp; \
366 surf_parse_leng = (size_t) (yy_cp - yy_bp); \
367 (yy_hold_char) = *yy_cp; \
369 (yy_c_buf_p) = yy_cp;
371 #define YY_NUM_RULES 168
372 #define YY_END_OF_BUFFER 169
373 /* This struct is not used in this scanner,
374 but its presence is necessary. */
377 flex_int32_t yy_verify;
380 static yyconst flex_int16_t yy_accept[1256] =
382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
391 0, 0, 169, 167, 22, 10, 10, 22, 22, 147,
393 10, 147, 5, 6, 5, 8, 9, 8, 163, 155,
394 156, 164, 161, 164, 162, 166, 155, 156, 166, 167,
395 26, 10, 26, 26, 26, 24, 30, 10, 30, 167,
396 30, 167, 36, 10, 36, 36, 36, 34, 36, 40,
397 10, 40, 40, 167, 66, 10, 66, 66, 66, 64,
398 66, 66, 66, 66, 66, 66, 70, 10, 70, 167,
399 90, 10, 90, 90, 90, 88, 90, 90, 90, 90,
400 94, 10, 94, 167, 110, 10, 110, 110, 110, 108,
401 110, 110, 110, 114, 10, 114, 167, 114, 120, 10,
402 120, 120, 120, 118, 120, 124, 10, 124, 167, 132,
404 10, 132, 132, 132, 130, 132, 132, 136, 10, 136,
405 167, 136, 142, 10, 142, 142, 142, 140, 142, 146,
406 10, 146, 164, 163, 10, 0, 2, 2, 0, 4,
407 7, 158, 157, 0, 0, 0, 0, 0, 0, 0,
408 25, 27, 0, 0, 0, 0, 0, 0, 35, 37,
409 37, 0, 65, 67, 67, 67, 67, 67, 67, 67,
410 0, 89, 91, 91, 91, 91, 91, 0, 109, 111,
411 111, 111, 111, 0, 0, 119, 121, 121, 0, 131,
412 133, 133, 133, 0, 0, 141, 143, 143, 0, 0,
413 0, 0, 0, 0, 0, 3, 0, 0, 0, 0,
415 0, 0, 0, 165, 0, 0, 0, 0, 0, 0,
416 0, 0, 37, 0, 0, 67, 67, 67, 67, 67,
417 67, 0, 0, 91, 91, 91, 91, 0, 0, 111,
418 111, 111, 0, 0, 0, 121, 0, 0, 133, 133,
419 0, 0, 0, 143, 0, 0, 0, 160, 0, 21,
420 1, 0, 0, 153, 0, 0, 0, 150, 149, 0,
421 0, 0, 0, 29, 0, 41, 0, 0, 0, 0,
422 37, 0, 0, 39, 0, 67, 67, 67, 67, 67,
423 67, 0, 0, 69, 0, 91, 91, 91, 91, 0,
424 0, 93, 0, 0, 0, 111, 0, 0, 0, 0,
426 113, 0, 0, 121, 0, 0, 123, 0, 133, 133,
427 0, 0, 135, 0, 0, 143, 0, 0, 145, 0,
428 0, 0, 0, 154, 148, 0, 0, 0, 0, 41,
429 0, 0, 0, 0, 0, 0, 0, 67, 67, 67,
430 0, 0, 67, 67, 0, 91, 91, 0, 0, 91,
431 0, 0, 99, 98, 111, 0, 97, 96, 0, 0,
432 0, 0, 0, 133, 0, 0, 0, 0, 143, 0,
433 0, 0, 0, 0, 12, 0, 151, 152, 0, 0,
434 0, 0, 0, 95, 0, 33, 32, 0, 67, 67,
435 67, 0, 43, 42, 0, 0, 0, 0, 67, 0,
437 68, 91, 91, 0, 73, 72, 0, 0, 91, 0,
438 111, 0, 0, 0, 117, 116, 0, 133, 0, 127,
439 126, 0, 0, 0, 0, 0, 0, 0, 0, 0,
440 11, 0, 0, 0, 0, 0, 95, 0, 67, 67,
441 67, 0, 45, 44, 0, 0, 0, 67, 91, 91,
442 0, 0, 0, 91, 0, 111, 0, 0, 0, 133,
443 0, 0, 0, 139, 138, 0, 0, 0, 0, 0,
444 0, 0, 31, 0, 125, 0, 67, 67, 67, 0,
445 0, 67, 91, 0, 0, 91, 0, 0, 91, 0,
446 111, 0, 112, 0, 0, 133, 0, 0, 0, 0,
448 0, 0, 0, 0, 0, 31, 0, 125, 0, 67,
449 67, 67, 0, 0, 0, 0, 67, 91, 0, 79,
450 78, 91, 0, 0, 0, 0, 91, 0, 111, 0,
451 0, 0, 0, 0, 137, 0, 159, 0, 0, 0,
452 0, 0, 0, 0, 38, 67, 67, 67, 0, 51,
453 0, 50, 67, 0, 0, 91, 91, 0, 83, 0,
454 82, 91, 0, 111, 0, 0, 0, 129, 128, 0,
455 134, 137, 0, 0, 0, 0, 0, 0, 0, 0,
456 0, 0, 0, 0, 67, 67, 67, 53, 52, 0,
457 0, 0, 75, 74, 91, 91, 85, 84, 0, 0,
459 0, 111, 111, 0, 0, 0, 144, 0, 0, 0,
460 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
461 67, 67, 0, 55, 54, 91, 91, 0, 87, 86,
462 0, 111, 111, 0, 0, 0, 0, 0, 0, 0,
463 0, 0, 0, 0, 0, 0, 71, 0, 0, 67,
464 67, 67, 91, 0, 0, 0, 111, 111, 0, 0,
465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
466 0, 0, 71, 0, 47, 46, 67, 67, 67, 67,
467 91, 0, 81, 80, 0, 0, 0, 111, 0, 0,
468 111, 115, 0, 0, 0, 0, 0, 0, 0, 0,
470 0, 0, 0, 0, 0, 0, 0, 67, 67, 67,
471 67, 0, 0, 0, 92, 0, 103, 102, 111, 0,
472 101, 100, 111, 115, 0, 0, 0, 0, 0, 0,
473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
474 67, 67, 67, 67, 0, 77, 76, 111, 111, 0,
475 122, 0, 0, 0, 0, 0, 0, 0, 0, 0,
476 0, 12, 0, 12, 0, 0, 0, 67, 67, 67,
477 67, 111, 111, 0, 0, 0, 0, 0, 0, 0,
478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
479 0, 0, 0, 67, 0, 0, 111, 111, 0, 0,
481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
482 49, 48, 0, 59, 58, 0, 57, 56, 67, 0,
483 63, 62, 111, 111, 0, 0, 0, 0, 0, 0,
484 0, 0, 11, 0, 0, 67, 111, 111, 0, 0,
485 0, 0, 0, 0, 0, 0, 23, 0, 67, 111,
486 111, 0, 0, 0, 0, 0, 0, 0, 0, 0,
487 23, 0, 67, 111, 111, 0, 0, 0, 0, 0,
488 0, 0, 0, 0, 0, 28, 0, 0, 111, 111,
489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
490 0, 61, 60, 111, 111, 0, 0, 0, 0, 0,
492 0, 0, 0, 0, 0, 111, 111, 0, 0, 0,
493 0, 0, 0, 0, 0, 0, 0, 0, 0, 111,
494 111, 0, 0, 0, 0, 0, 0, 0, 0, 0,
495 0, 0, 0, 0, 111, 111, 0, 0, 0, 0,
496 0, 0, 0, 0, 0, 0, 0, 0, 0, 111,
497 111, 0, 0, 0, 0, 0, 0, 0, 0, 0,
498 0, 0, 0, 0, 111, 111, 0, 0, 0, 0,
499 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
500 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
501 0, 0, 0, 0, 0, 0, 0, 0, 107, 106,
503 0, 105, 104, 0, 0, 0, 0, 0, 0, 0,
504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
508 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
511 0, 0, 0, 0, 17, 0, 0, 0, 0, 0,
512 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
514 0, 0, 0, 0, 20, 0, 0, 0, 13, 0,
515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
517 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
518 14, 0, 0, 0, 0, 0, 0, 0, 0, 0,
522 static yyconst flex_int32_t yy_ec[256] =
524 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
525 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
526 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
527 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
528 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
529 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
530 17, 18, 19, 1, 20, 21, 22, 23, 24, 25,
531 14, 14, 14, 14, 14, 14, 26, 27, 28, 29,
532 14, 14, 30, 31, 14, 14, 14, 14, 32, 14,
533 33, 1, 34, 1, 35, 1, 36, 37, 38, 39,
535 40, 41, 42, 43, 44, 14, 45, 46, 47, 48,
536 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
537 59, 14, 1, 1, 1, 1, 1, 1, 1, 1,
538 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
539 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
540 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
541 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
542 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
543 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
544 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
546 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
547 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
548 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
549 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
550 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
554 static yyconst flex_int32_t yy_meta[60] =
556 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
557 3, 1, 4, 5, 1, 1, 1, 6, 1, 7,
558 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
559 5, 5, 1, 1, 5, 7, 7, 7, 7, 7,
560 7, 5, 5, 5, 5, 5, 5, 5, 5, 5,
561 5, 5, 5, 5, 5, 5, 5, 5, 5
564 static yyconst flex_int16_t yy_base[1311] =
566 0, 0, 0, 3, 6, 9, 24, 27, 11, 14,
567 15, 17, 29, 38, 45, 52, 59, 61, 67, 70,
568 95, 129, 73, 76, 148, 151, 154, 157, 172, 175,
569 178, 181, 197, 238, 216, 219, 257, 260, 264, 279,
570 282, 285, 288, 303, 319, 0, 377, 380, 383, 386,
571 402, 0, 460, 463, 466, 469, 485, 538, 504, 507,
572 510, 557, 560, 563, 581, 584, 590, 599, 615, 663,
573 634, 637, 640, 643, 711, 754, 682, 685, 688, 691,
574 730, 733, 737, 773, 776, 780, 797, 853, 816, 819,
575 833, 872, 3532, 3533, 3533, 113, 116, 47, 62, 3533,
577 119, 167, 3533, 3533, 3521, 3533, 3533, 3512, 3533, 3525,
578 3525, 267, 3533, 3533, 3533, 3533, 3523, 3523, 3491, 585,
579 3533, 122, 3506, 0, 206, 3533, 3533, 224, 872, 873,
580 516, 570, 3533, 308, 3505, 0, 289, 3533, 3478, 3533,
581 312, 888, 593, 591, 3533, 513, 3503, 0, 517, 3533,
582 3464, 3471, 3482, 3481, 3467, 3461, 3533, 528, 821, 833,
583 3533, 566, 3496, 0, 576, 3533, 3477, 3476, 3475, 3456,
584 3533, 605, 877, 878, 3533, 658, 3491, 0, 594, 3533,
585 3455, 3460, 3454, 3533, 706, 889, 885, 893, 3533, 825,
586 3487, 0, 806, 3533, 3468, 3533, 840, 923, 829, 3533,
588 843, 3485, 0, 880, 3533, 3447, 3452, 3533, 911, 934,
589 914, 939, 3533, 945, 3482, 0, 924, 3533, 3463, 3533,
590 952, 940, 3493, 3463, 958, 34, 3438, 3533, 3485, 3476,
591 3533, 3533, 3533, 26, 35, 3439, 3438, 3436, 3472, 3443,
592 3533, 0, 3438, 3437, 3438, 3445, 3432, 3434, 3533, 0,
593 3436, 3437, 3533, 0, 3444, 3425, 3420, 3430, 3419, 3439,
594 3436, 3533, 0, 3425, 3418, 3424, 3434, 3421, 3533, 0,
595 3414, 3417, 3428, 3413, 3415, 3533, 0, 3416, 3410, 3533,
596 0, 3413, 3407, 3409, 3406, 3533, 0, 3411, 3420, 3422,
597 3436, 3435, 3442, 206, 3404, 3533, 75, 0, 3400, 3400,
599 3433, 3432, 3397, 3533, 3409, 961, 964, 3389, 3405, 3388,
600 3392, 3385, 3399, 969, 972, 3394, 3397, 3401, 3395, 3394,
601 3379, 981, 989, 3393, 3391, 3390, 3375, 993, 998, 1001,
602 3392, 1010, 1019, 1022, 3372, 3386, 1026, 1029, 3387, 3370,
603 1032, 1039, 3381, 3367, 1049, 1052, 3399, 3533, 3402, 3533,
604 3533, 69, 3373, 3533, 3403, 3402, 3363, 3533, 3533, 3361,
605 3360, 1056, 1059, 3533, 1062, 1079, 3367, 3355, 3373, 3356,
606 1082, 1085, 1090, 3533, 1093, 3363, 3356, 3358, 1098, 3354,
607 3365, 1103, 1110, 3533, 1114, 3347, 3355, 1120, 3362, 1123,
608 1131, 3533, 1136, 1140, 1144, 3363, 1156, 1159, 1168, 1173,
610 3533, 1176, 3346, 1179, 1185, 1195, 3533, 1198, 3345, 1202,
611 1205, 1208, 3533, 1218, 3343, 3357, 1225, 1230, 3533, 1236,
612 3373, 234, 1242, 3533, 3533, 3380, 3379, 3352, 1247, 1253,
613 3337, 3342, 3350, 3349, 1260, 1266, 1277, 3352, 3346, 3331,
614 1280, 1283, 1296, 1300, 1303, 3341, 3346, 1307, 1316, 1312,
615 1324, 1328, 3533, 3533, 3329, 1337, 3533, 3533, 1346, 3342,
616 1349, 1352, 1365, 3337, 1368, 1371, 1384, 3333, 1387, 1390,
617 3359, 962, 3360, 1393, 3533, 3359, 3533, 3533, 3327, 1403,
618 3336, 3322, 3320, 1410, 1414, 3533, 3533, 1422, 3335, 3331,
619 3316, 1425, 3533, 3533, 1433, 1449, 1439, 1457, 3328, 1444,
621 3533, 3329, 3308, 1465, 3533, 3533, 1476, 1479, 3325, 1487,
622 3330, 1492, 3329, 1495, 3533, 3533, 1504, 3314, 1509, 3533,
623 3533, 1517, 3322, 1521, 1524, 1537, 3330, 240, 147, 109,
624 3533, 3308, 1543, 3319, 3313, 3304, 1546, 1549, 3312, 3303,
625 3312, 1556, 3533, 3533, 1566, 3325, 3324, 3307, 3296, 1574,
626 1577, 3321, 3320, 3303, 1592, 3297, 1595, 3305, 1598, 3296,
627 1601, 3295, 1618, 3533, 3533, 1627, 3322, 169, 151, 91,
628 3294, 1632, 1604, 3305, 1635, 1638, 3293, 3298, 3288, 141,
629 165, 3290, 3292, 1644, 1649, 3293, 250, 272, 3287, 1661,
630 3284, 1667, 3533, 3285, 1670, 1673, 1678, 3276, 1689, 3296,
632 1695, 456, 41, 3293, 1698, 1701, 3281, 1715, 1718, 3282,
633 3277, 3280, 3298, 3316, 3296, 3311, 3279, 1721, 1724, 3533,
634 3533, 3274, 3292, 3310, 3290, 3207, 3175, 1737, 3170, 3162,
635 1740, 1744, 1748, 1760, 1763, 1766, 3533, 1819, 178, 252,
636 3160, 1771, 3152, 1777, 3533, 3139, 3152, 3139, 3178, 3533,
637 3172, 3533, 1788, 1794, 1798, 3133, 3123, 3158, 3533, 3150,
638 3533, 1810, 1806, 1037, 3107, 1813, 1826, 3533, 3533, 1836,
639 3533, 1839, 1842, 481, 633, 720, 260, 963, 509, 534,
640 562, 3109, 1846, 3096, 3080, 2947, 2944, 3533, 3533, 1870,
641 1873, 1886, 3533, 3533, 2941, 2944, 3533, 3533, 1894, 1897,
643 1905, 2929, 2929, 2940, 1910, 1913, 3533, 275, 519, 639,
644 688, 707, 682, 730, 733, 776, 2926, 1916, 2933, 1923,
645 2942, 2941, 1933, 3533, 3533, 2929, 1942, 1958, 3533, 3533,
646 1948, 2914, 2927, 2915, 1951, 951, 1968, 856, 729, 877,
647 939, 1055, 732, 1971, 2923, 1974, 1977, 1980, 1996, 2919,
648 184, 2902, 2874, 1991, 2007, 2015, 2018, 2021, 2736, 2026,
649 970, 2037, 990, 885, 832, 799, 1028, 2044, 2047, 2066,
650 2684, 2055, 2074, 2077, 3533, 3533, 2677, 2605, 2594, 2595,
651 2085, 2088, 3533, 3533, 2096, 2101, 2104, 2526, 2113, 2117,
652 2453, 2125, 2129, 1111, 1134, 980, 1112, 1030, 1057, 2132,
654 2135, 2139, 2152, 2183, 2217, 2411, 2160, 2395, 2360, 2320,
655 2284, 2177, 2201, 2235, 3533, 2238, 3533, 3533, 2247, 2252,
656 3533, 3533, 2205, 2169, 2260, 1137, 5, 1127, 1196, 1166,
657 1177, 2263, 1175, 2266, 1219, 382, 2293, 2327, 2196, 2319,
658 2126, 2055, 2057, 2055, 2283, 3533, 3533, 1980, 1977, 2346,
659 3533, 1102, 1240, 2349, 1101, 1229, 2352, 1234, 1290, 1327,
660 376, 1984, 383, 1978, 2355, 1884, 2373, 2211, 2376, 2379,
661 2382, 1879, 1862, 2385, 457, 2398, 1364, 1224, 2402, 1385,
662 1256, 1874, 1859, 1849, 2406, 1732, 2409, 2427, 2311, 2431,
663 2434, 2447, 2450, 1659, 2458, 2463, 1576, 1343, 2474, 960,
665 1344, 1294, 1255, 1347, 1326, 1383, 1342, 1310, 2477, 2480,
666 3533, 3533, 2494, 3533, 3533, 2503, 3533, 3533, 1253, 2511,
667 3533, 3533, 1242, 1241, 1366, 2520, 1446, 1391, 1414, 1454,
668 459, 1447, 3533, 1240, 2523, 1197, 1163, 1120, 1484, 2526,
669 1439, 1455, 1511, 1485, 1491, 1525, 2172, 2543, 1016, 946,
670 808, 1556, 1513, 1536, 460, 2546, 1031, 634, 2549, 1345,
671 2415, 2552, 2556, 753, 751, 681, 1420, 1516, 1564, 2572,
672 1597, 1567, 2575, 2583, 2592, 3533, 2595, 2602, 738, 651,
673 1599, 1605, 1608, 2611, 1524, 1519, 2614, 1641, 1696, 2617,
674 2621, 3533, 3533, 667, 620, 2634, 1625, 1668, 2637, 1665,
676 1174, 2647, 1716, 1764, 1596, 601, 428, 2655, 1650, 1671,
677 1735, 1741, 1816, 1807, 1765, 1815, 1818, 1841, 1769, 358,
678 357, 1833, 1838, 1847, 1863, 1866, 1886, 1468, 1759, 1930,
679 1988, 1694, 1906, 1912, 254, 195, 1997, 2008, 1669, 1714,
680 1911, 1985, 1767, 1884, 2014, 2094, 1808, 1996, 1594, 190,
681 115, 2107, 2159, 2133, 2234, 2083, 2190, 2664, 1614, 2230,
682 2239, 1989, 2024, 1986, 2667, 2672, 2241, 2242, 1844, 2188,
683 2027, 2064, 2677, 2688, 2091, 2151, 2122, 2147, 2694, 2697,
684 2701, 2713, 2716, 2258, 2261, 1914, 1947, 2256, 2259, 2272,
685 2344, 2724, 2300, 2322, 2354, 2404, 2729, 2737, 3533, 3533,
687 2746, 3533, 3533, 2348, 2374, 2408, 2452, 2427, 2439, 2142,
688 2286, 2164, 2453, 2456, 2469, 2472, 2372, 2389, 2470, 2516,
689 2513, 516, 2483, 2522, 2255, 2519, 2539, 2525, 2571, 2270,
690 2574, 2545, 2548, 2615, 2667, 2754, 2500, 2570, 2353, 2524,
691 2212, 2624, 2654, 2669, 2670, 2642, 2659, 2684, 2695, 2757,
692 3533, 2711, 2719, 2604, 2706, 2630, 2726, 2727, 2562, 909,
693 2733, 2735, 2744, 2745, 2748, 2749, 2421, 2750, 2751, 2752,
694 2753, 2782, 2760, 2761, 2764, 2765, 2783, 2784, 2776, 2777,
695 2803, 2790, 2802, 2810, 3533, 2791, 2792, 2809, 2807, 2827,
696 2806, 2815, 2838, 2832, 2814, 2819, 2849, 2855, 3533, 2825,
698 2830, 2440, 2828, 2859, 3533, 2857, 2860, 2880, 3533, 2831,
699 2836, 2589, 2837, 2848, 2852, 2854, 2856, 2858, 2861, 2862,
700 2868, 2882, 2885, 2871, 2878, 2879, 2881, 2903, 2883, 2884,
701 2905, 2899, 2922, 3533, 2886, 2891, 2925, 2912, 2913, 2932,
702 3533, 2921, 2926, 2927, 2928, 2897, 2929, 2930, 2931, 2946,
703 2944, 2953, 2970, 3533, 3533, 2988, 2995, 3002, 3009, 3016,
704 3023, 3030, 3037, 3044, 3051, 3058, 3065, 3072, 3079, 3086,
705 3093, 3100, 3107, 3114, 3121, 3128, 3133, 3138, 3143, 3148,
706 3153, 3158, 3163, 3168, 3175, 3178, 3181, 3184, 3187, 3190,
707 3193, 3196, 3199, 3206, 3210, 3216, 3222, 3228, 3234, 3240,
709 3246, 3252, 3258, 3265, 3272, 3279, 3286, 3293, 3300, 3307
712 static yyconst flex_int16_t yy_def[1311] =
714 1256, 1256, 1257, 1257, 1257, 1257, 1258, 1258, 1259, 1259,
715 1260, 1260, 1261, 1261, 1261, 1261, 1262, 1262, 1256, 1256,
716 1263, 1263, 1264, 1264, 1256, 1256, 1264, 1264, 1264, 1264,
717 1256, 1256, 1265, 1265, 1266, 1266, 1256, 1256, 1266, 1266,
718 1266, 1266, 1256, 1256, 1255, 45, 1267, 1267, 1256, 1256,
719 1255, 51, 1268, 1268, 1256, 1256, 1269, 1269, 1270, 1270,
720 1256, 1256, 1270, 1270, 1270, 1270, 1256, 1256, 1271, 1271,
721 1272, 1272, 1256, 1256, 1273, 1273, 1274, 1274, 1256, 1256,
722 1274, 1274, 1274, 1274, 1256, 1256, 1275, 1275, 1276, 1276,
723 1261, 1261, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
725 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
726 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
727 1255, 1255, 1255, 1277, 1255, 1255, 1255, 1255, 1255, 1255,
728 1255, 1255, 1255, 1255, 1255, 1278, 1255, 1255, 1278, 1255,
729 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1279, 1255, 1255,
730 1279, 1279, 1279, 1279, 1279, 1279, 1255, 1255, 1255, 1255,
731 1255, 1255, 1255, 1280, 1255, 1255, 1280, 1280, 1280, 1280,
732 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1281, 1255, 1255,
733 1281, 1281, 1281, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
734 1255, 1282, 1255, 1255, 1282, 1255, 1255, 1255, 1255, 1255,
736 1255, 1255, 1283, 1255, 1255, 1283, 1283, 1255, 1255, 1255,
737 1255, 1255, 1255, 1255, 1255, 1284, 1255, 1255, 1284, 1255,
738 1255, 1255, 1255, 1255, 1255, 1285, 1255, 1255, 1255, 1255,
739 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
740 1255, 1277, 1286, 1255, 1255, 1255, 1255, 1255, 1255, 1278,
741 1278, 1287, 1255, 1279, 1279, 1279, 1279, 1279, 1279, 1279,
742 1288, 1255, 1280, 1280, 1280, 1280, 1280, 1289, 1255, 1281,
743 1281, 1281, 1281, 1290, 1255, 1255, 1282, 1282, 1291, 1255,
744 1283, 1283, 1283, 1292, 1255, 1255, 1284, 1284, 1293, 1255,
745 1255, 1294, 1255, 1294, 1255, 1255, 1255, 1295, 1255, 1255,
747 1255, 1255, 1255, 1255, 1255, 1296, 1296, 1255, 1255, 1255,
748 1255, 1255, 1278, 1297, 1297, 1279, 1279, 1279, 1279, 1279,
749 1279, 1298, 1298, 1280, 1280, 1280, 1280, 1299, 1299, 1281,
750 1281, 1281, 1300, 1300, 1255, 1282, 1301, 1301, 1283, 1283,
751 1302, 1302, 1255, 1284, 1303, 1303, 1255, 1255, 1294, 1255,
752 1255, 1294, 1255, 1255, 1295, 1255, 1255, 1255, 1255, 1255,
753 1255, 1255, 1296, 1255, 1296, 1255, 1255, 1255, 1255, 1255,
754 1278, 1255, 1297, 1255, 1297, 1279, 1279, 1279, 1279, 1279,
755 1279, 1255, 1298, 1255, 1298, 1280, 1280, 1280, 1280, 1255,
756 1299, 1255, 1299, 1255, 1255, 1281, 1255, 1255, 1255, 1300,
758 1255, 1300, 1255, 1282, 1255, 1301, 1255, 1301, 1283, 1283,
759 1255, 1302, 1255, 1302, 1255, 1284, 1255, 1303, 1255, 1303,
760 1255, 1294, 1304, 1255, 1255, 1255, 1255, 1255, 1296, 1255,
761 1255, 1255, 1255, 1255, 1255, 1255, 1297, 1279, 1279, 1279,
762 1255, 1255, 1279, 1279, 1298, 1280, 1280, 1255, 1255, 1280,
763 1299, 1255, 1255, 1255, 1281, 1255, 1255, 1255, 1300, 1255,
764 1255, 1255, 1301, 1283, 1255, 1255, 1302, 1255, 1284, 1303,
765 1255, 1294, 1304, 1304, 1255, 1304, 1255, 1255, 1255, 1296,
766 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1297, 1279, 1279,
767 1279, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1279, 1255,
769 1255, 1280, 1280, 1255, 1255, 1255, 1255, 1255, 1280, 1299,
770 1281, 1300, 1255, 1255, 1255, 1255, 1301, 1283, 1255, 1255,
771 1255, 1302, 1255, 1255, 1255, 1303, 1255, 1294, 1304, 1304,
772 1255, 1255, 1296, 1255, 1255, 1255, 1255, 1297, 1279, 1279,
773 1279, 1255, 1255, 1255, 1255, 1255, 1255, 1279, 1280, 1280,
774 1255, 1255, 1255, 1280, 1299, 1281, 1300, 1255, 1301, 1283,
775 1302, 1255, 1255, 1255, 1255, 1303, 1255, 1294, 1304, 1304,
776 1255, 1296, 1255, 1255, 1255, 1297, 1279, 1279, 1279, 1255,
777 1255, 1279, 1280, 1255, 1255, 1280, 1255, 1255, 1280, 1299,
778 1281, 1255, 1255, 1255, 1301, 1283, 1302, 1255, 1303, 1255,
780 1294, 1304, 1304, 1255, 1296, 1255, 1255, 1255, 1297, 1279,
781 1279, 1279, 1255, 1255, 1255, 1255, 1279, 1280, 1255, 1255,
782 1255, 1280, 1255, 1255, 1255, 1255, 1280, 1299, 1281, 1255,
783 1301, 1255, 1255, 1302, 1255, 1303, 1255, 1294, 1304, 1304,
784 1255, 1296, 1255, 1255, 1255, 1279, 1279, 1279, 1255, 1255,
785 1255, 1255, 1279, 1255, 1255, 1280, 1280, 1255, 1255, 1255,
786 1255, 1280, 1299, 1281, 1255, 1301, 1255, 1255, 1255, 1255,
787 1255, 1255, 1303, 1294, 1294, 1294, 1294, 1294, 1294, 1304,
788 1304, 1255, 1296, 1255, 1279, 1279, 1279, 1255, 1255, 1255,
789 1255, 1255, 1255, 1255, 1280, 1280, 1255, 1255, 1255, 1255,
791 1299, 1281, 1281, 1255, 1301, 1255, 1255, 1294, 1294, 1294,
792 1294, 1294, 1294, 1294, 1304, 1304, 1255, 1296, 1255, 1279,
793 1279, 1279, 1255, 1255, 1255, 1280, 1280, 1255, 1255, 1255,
794 1299, 1281, 1281, 1255, 1301, 1294, 1294, 1294, 1294, 1294,
795 1294, 1294, 1304, 1304, 1255, 1296, 1255, 1255, 1255, 1279,
796 1279, 1279, 1280, 1255, 1255, 1299, 1281, 1281, 1255, 1301,
797 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1304, 1304, 1304,
798 1255, 1296, 1255, 1255, 1255, 1255, 1279, 1279, 1279, 1279,
799 1280, 1255, 1255, 1255, 1299, 1255, 1255, 1281, 1255, 1255,
800 1281, 1255, 1301, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
802 1304, 1304, 1304, 1305, 1306, 1255, 1296, 1279, 1279, 1279,
803 1279, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1281, 1255,
804 1255, 1255, 1281, 1255, 1301, 1294, 1294, 1294, 1294, 1294,
805 1294, 1294, 1294, 1304, 1307, 1308, 1305, 1306, 1255, 1296,
806 1279, 1279, 1279, 1279, 1255, 1255, 1255, 1281, 1281, 1255,
807 1255, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1307,
808 1304, 1309, 1308, 1310, 1304, 1255, 1296, 1279, 1279, 1279,
809 1279, 1281, 1281, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
810 1294, 1309, 1255, 1310, 1304, 1255, 1296, 1255, 1255, 1255,
811 1255, 1255, 1255, 1279, 1255, 1255, 1281, 1281, 1294, 1294,
813 1294, 1294, 1294, 1294, 1294, 1294, 1255, 1255, 1296, 1255,
814 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1279, 1255,
815 1255, 1255, 1281, 1281, 1294, 1294, 1294, 1294, 1294, 1294,
816 1294, 1294, 1255, 1255, 1296, 1279, 1281, 1281, 1294, 1294,
817 1294, 1294, 1294, 1294, 1294, 1294, 1255, 1296, 1279, 1281,
818 1281, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
819 1255, 1296, 1279, 1281, 1281, 1294, 1294, 1294, 1294, 1294,
820 1294, 1294, 1294, 1294, 1255, 1255, 1255, 1255, 1281, 1281,
821 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
822 1255, 1255, 1255, 1281, 1281, 1294, 1294, 1294, 1294, 1294,
824 1294, 1294, 1294, 1294, 1294, 1281, 1281, 1294, 1294, 1294,
825 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1281,
826 1281, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
827 1294, 1294, 1294, 1294, 1281, 1281, 1294, 1294, 1294, 1294,
828 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1281,
829 1281, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
830 1294, 1294, 1294, 1294, 1281, 1281, 1294, 1294, 1294, 1294,
831 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1255,
832 1255, 1255, 1255, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
833 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1255, 1255, 1255,
835 1255, 1255, 1255, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
836 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
837 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
838 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
839 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
840 1255, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
841 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
842 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
843 1294, 1294, 1294, 1294, 1255, 1294, 1294, 1294, 1294, 1294,
844 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1255, 1294,
846 1294, 1294, 1294, 1294, 1255, 1294, 1294, 1294, 1255, 1294,
847 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
848 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
849 1294, 1294, 1294, 1255, 1294, 1294, 1294, 1294, 1294, 1294,
850 1255, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294, 1294,
851 1294, 1294, 1294, 1255, 0, 1255, 1255, 1255, 1255, 1255,
852 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
853 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
854 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
855 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
857 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255
860 static yyconst flex_int16_t yy_nxt[3593] =
862 1255, 96, 97, 96, 96, 97, 96, 96, 97, 96,
863 96, 97, 96, 104, 1255, 98, 104, 107, 98, 107,
864 105, 99, 350, 105, 99, 101, 97, 101, 101, 97,
865 101, 110, 111, 108, 853, 108, 112, 113, 297, 102,
866 110, 111, 102, 293, 114, 112, 113, 110, 111, 1255,
867 115, 226, 112, 114, 110, 111, 294, 115, 475, 112,
868 114, 117, 118, 117, 118, 227, 226, 114, 97, 97,
869 97, 97, 97, 97, 128, 97, 128, 128, 97, 128,
870 228, 299, 120, 298, 300, 120, 350, 297, 129, 354,
871 422, 129, 119, 640, 119, 121, 122, 97, 122, 121,
873 121, 121, 121, 121, 121, 121, 123, 121, 475, 121,
874 125, 121, 126, 121, 225, 225, 225, 225, 225, 225,
875 225, 225, 225, 225, 225, 225, 475, 121, 121, 121,
876 122, 97, 122, 121, 121, 121, 121, 121, 121, 121,
877 123, 121, 603, 121, 125, 121, 126, 121, 570, 97,
878 97, 97, 97, 97, 97, 128, 97, 128, 128, 97,
879 128, 121, 121, 130, 475, 613, 130, 614, 475, 129,
880 1066, 229, 129, 128, 97, 128, 128, 97, 128, 97,
881 97, 97, 97, 97, 97, 228, 350, 131, 602, 615,
882 131, 616, 601, 132, 569, 475, 132, 133, 134, 97,
884 134, 133, 133, 133, 133, 133, 133, 133, 135, 133,
885 229, 133, 137, 133, 138, 133, 680, 141, 97, 141,
886 141, 97, 141, 350, 228, 225, 225, 225, 1065, 133,
887 133, 142, 1051, 352, 142, 778, 779, 139, 133, 134,
888 97, 134, 133, 133, 133, 133, 133, 133, 133, 135,
889 133, 350, 133, 137, 133, 138, 133, 350, 97, 97,
890 97, 97, 97, 97, 472, 141, 97, 141, 568, 475,
891 133, 133, 130, 234, 623, 130, 624, 350, 139, 142,
892 141, 97, 141, 141, 97, 141, 141, 97, 141, 97,
893 97, 97, 350, 229, 142, 681, 625, 143, 626, 711,
895 143, 1050, 235, 144, 97, 97, 97, 228, 236, 225,
896 225, 225, 237, 225, 225, 225, 736, 238, 144, 145,
897 146, 97, 146, 145, 145, 145, 145, 145, 145, 145,
898 147, 145, 148, 145, 149, 145, 150, 145, 148, 148,
899 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
900 148, 145, 145, 148, 151, 148, 148, 148, 148, 148,
901 148, 148, 152, 148, 148, 153, 154, 148, 155, 148,
902 148, 156, 148, 148, 148, 148, 148, 148, 158, 97,
903 158, 158, 97, 158, 97, 97, 97, 97, 97, 97,
904 861, 861, 159, 475, 476, 159, 1036, 1035, 160, 864,
906 864, 160, 161, 162, 97, 162, 161, 161, 161, 161,
907 161, 161, 161, 163, 161, 164, 161, 165, 161, 166,
908 161, 164, 164, 164, 164, 164, 164, 164, 164, 164,
909 164, 164, 164, 164, 161, 161, 164, 164, 167, 164,
910 164, 164, 164, 164, 164, 164, 164, 168, 164, 169,
911 164, 164, 164, 164, 170, 164, 164, 164, 164, 164,
912 164, 172, 97, 172, 172, 97, 172, 97, 97, 97,
913 97, 97, 97, 475, 350, 173, 350, 350, 173, 1021,
914 900, 174, 945, 969, 174, 175, 176, 97, 176, 175,
915 175, 175, 175, 175, 175, 175, 177, 175, 350, 175,
917 179, 175, 180, 175, 639, 185, 97, 185, 185, 97,
918 185, 97, 97, 97, 225, 225, 225, 175, 175, 186,
919 229, 229, 186, 181, 1136, 187, 350, 243, 182, 225,
920 225, 225, 708, 350, 228, 228, 350, 183, 175, 176,
921 97, 176, 175, 175, 175, 175, 175, 175, 175, 177,
922 175, 475, 175, 179, 175, 180, 175, 714, 97, 97,
923 97, 185, 97, 185, 185, 97, 185, 225, 225, 225,
924 175, 175, 187, 737, 229, 186, 181, 715, 186, 475,
925 229, 182, 185, 97, 185, 185, 97, 185, 228, 229,
926 183, 97, 97, 97, 228, 229, 188, 229, 229, 188,
928 97, 97, 97, 228, 252, 187, 225, 225, 225, 228,
929 716, 228, 228, 245, 187, 189, 190, 97, 190, 189,
930 189, 189, 189, 189, 189, 189, 191, 189, 244, 189,
931 193, 189, 194, 189, 240, 197, 97, 197, 197, 97,
932 197, 97, 97, 97, 97, 97, 97, 189, 189, 198,
933 350, 350, 198, 1020, 1007, 199, 350, 972, 199, 225,
934 225, 225, 195, 189, 190, 97, 190, 189, 189, 189,
935 189, 189, 189, 189, 191, 189, 738, 189, 193, 189,
936 194, 189, 709, 209, 97, 209, 209, 97, 209, 97,
937 97, 97, 97, 97, 97, 189, 189, 210, 350, 350,
939 210, 1006, 995, 211, 981, 350, 211, 225, 225, 225,
940 195, 200, 201, 97, 201, 200, 200, 200, 200, 200,
941 200, 200, 202, 200, 350, 200, 204, 200, 205, 200,
942 741, 209, 97, 209, 209, 97, 209, 350, 209, 97,
943 209, 739, 740, 200, 200, 210, 350, 350, 210, 475,
944 475, 206, 212, 207, 200, 201, 97, 201, 200, 200,
945 200, 200, 200, 200, 200, 202, 200, 710, 200, 204,
946 200, 205, 200, 768, 209, 97, 209, 97, 97, 97,
947 743, 97, 97, 97, 742, 764, 200, 200, 212, 994,
948 980, 211, 979, 475, 206, 211, 207, 213, 214, 97,
950 214, 213, 213, 213, 213, 213, 213, 213, 215, 213,
951 229, 213, 217, 213, 218, 213, 350, 221, 97, 221,
952 221, 97, 221, 744, 228, 229, 225, 225, 225, 213,
953 213, 222, 261, 229, 222, 110, 111, 229, 799, 228,
954 112, 225, 225, 225, 225, 225, 225, 228, 223, 350,
955 965, 228, 219, 213, 214, 97, 214, 213, 213, 213,
956 213, 213, 213, 213, 215, 213, 224, 213, 217, 213,
957 218, 213, 798, 350, 110, 111, 229, 229, 247, 112,
958 246, 229, 229, 243, 229, 213, 213, 223, 268, 229,
959 228, 228, 229, 229, 350, 228, 228, 229, 228, 252,
961 274, 763, 350, 228, 274, 224, 228, 228, 219, 244,
962 244, 228, 225, 225, 225, 245, 245, 1172, 229, 246,
963 246, 247, 247, 248, 248, 244, 350, 229, 229, 248,
964 765, 245, 228, 797, 279, 246, 275, 247, 229, 248,
965 275, 228, 228, 229, 229, 284, 225, 225, 225, 285,
966 284, 289, 228, 225, 225, 225, 350, 228, 228, 225,
967 225, 225, 362, 362, 362, 362, 362, 362, 350, 285,
968 372, 372, 372, 372, 372, 372, 766, 350, 364, 350,
969 350, 364, 382, 382, 382, 926, 374, 350, 964, 374,
970 382, 382, 382, 528, 390, 390, 390, 350, 384, 390,
972 390, 390, 394, 394, 394, 761, 384, 350, 712, 365,
973 392, 397, 397, 397, 713, 392, 794, 395, 828, 375,
974 399, 399, 399, 399, 399, 399, 398, 405, 405, 405,
975 405, 405, 405, 411, 411, 411, 401, 393, 385, 401,
976 411, 411, 411, 407, 796, 350, 407, 350, 350, 413,
977 417, 417, 417, 417, 417, 417, 413, 362, 362, 362,
978 362, 362, 362, 362, 362, 362, 419, 800, 971, 419,
979 402, 963, 350, 364, 350, 702, 364, 408, 830, 364,
980 430, 430, 430, 435, 435, 435, 372, 372, 372, 703,
981 414, 372, 372, 372, 372, 372, 372, 429, 436, 441,
983 441, 441, 374, 420, 382, 382, 382, 374, 767, 831,
984 374, 382, 382, 382, 442, 382, 382, 382, 350, 350,
985 384, 448, 448, 448, 390, 390, 390, 384, 350, 350,
986 437, 384, 390, 390, 390, 877, 449, 390, 390, 390,
987 392, 394, 394, 394, 350, 452, 452, 452, 392, 453,
988 826, 350, 454, 392, 350, 874, 395, 397, 397, 397,
989 456, 456, 456, 829, 457, 827, 854, 458, 445, 399,
990 399, 399, 398, 951, 399, 399, 399, 399, 399, 399,
991 461, 461, 461, 350, 852, 401, 405, 405, 405, 451,
992 401, 350, 350, 401, 350, 462, 405, 405, 405, 405,
994 405, 405, 407, 465, 465, 465, 411, 411, 411, 411,
995 411, 411, 407, 350, 859, 407, 950, 856, 466, 411,
996 411, 411, 413, 1014, 861, 413, 417, 417, 417, 857,
997 459, 417, 417, 417, 949, 413, 862, 417, 417, 417,
998 855, 350, 419, 474, 474, 474, 350, 419, 362, 362,
999 362, 350, 463, 419, 430, 430, 430, 350, 903, 475,
1000 476, 435, 435, 435, 364, 880, 467, 485, 485, 485,
1001 875, 486, 350, 350, 487, 878, 436, 470, 372, 372,
1002 372, 441, 441, 441, 492, 492, 492, 947, 493, 938,
1003 937, 494, 936, 929, 374, 906, 442, 495, 495, 495,
1005 480, 497, 497, 497, 500, 500, 500, 350, 448, 448,
1006 448, 350, 496, 507, 507, 507, 498, 504, 504, 504,
1007 501, 505, 488, 449, 506, 390, 390, 390, 508, 452,
1008 452, 452, 861, 453, 499, 881, 454, 928, 456, 456,
1009 456, 392, 457, 350, 862, 458, 509, 399, 399, 399,
1010 461, 461, 461, 514, 514, 514, 931, 515, 934, 933,
1011 516, 350, 350, 401, 350, 462, 405, 405, 405, 465,
1012 465, 465, 519, 519, 519, 927, 520, 924, 930, 521,
1013 510, 350, 407, 350, 466, 411, 411, 411, 524, 524,
1014 524, 417, 417, 417, 474, 474, 474, 939, 974, 512,
1016 350, 413, 350, 525, 362, 362, 362, 419, 350, 902,
1017 475, 537, 537, 537, 905, 485, 485, 485, 517, 486,
1018 364, 522, 487, 372, 372, 372, 492, 492, 492, 932,
1019 493, 350, 529, 494, 495, 495, 495, 350, 942, 374,
1020 497, 497, 497, 533, 526, 500, 500, 500, 530, 496,
1021 542, 542, 542, 943, 543, 498, 350, 544, 545, 545,
1022 545, 501, 546, 350, 350, 547, 504, 504, 504, 955,
1023 505, 350, 350, 506, 982, 941, 538, 507, 507, 507,
1024 551, 551, 551, 944, 552, 350, 946, 553, 390, 390,
1025 390, 1043, 508, 399, 399, 399, 514, 514, 514, 956,
1027 515, 350, 350, 516, 392, 405, 405, 405, 350, 401,
1028 519, 519, 519, 952, 520, 958, 959, 521, 411, 411,
1029 411, 407, 524, 524, 524, 563, 563, 563, 350, 564,
1030 350, 557, 565, 350, 413, 555, 350, 525, 417, 417,
1031 417, 350, 350, 559, 362, 362, 362, 537, 537, 537,
1032 372, 372, 372, 350, 419, 1000, 561, 542, 542, 542,
1033 364, 543, 1001, 957, 544, 967, 374, 545, 545, 545,
1034 983, 546, 960, 350, 547, 584, 584, 584, 551, 551,
1035 551, 350, 552, 566, 350, 553, 966, 576, 968, 984,
1036 585, 572, 987, 390, 390, 390, 592, 592, 592, 405,
1038 405, 405, 411, 411, 411, 606, 606, 606, 586, 392,
1039 923, 350, 593, 350, 350, 407, 350, 1064, 413, 563,
1040 563, 563, 350, 564, 996, 350, 565, 1019, 417, 417,
1041 417, 350, 595, 362, 362, 362, 608, 608, 608, 372,
1042 372, 372, 350, 590, 419, 584, 584, 584, 986, 364,
1043 619, 619, 619, 597, 620, 374, 997, 621, 350, 998,
1044 585, 1074, 390, 390, 390, 1009, 599, 350, 592, 592,
1045 592, 405, 405, 405, 632, 632, 632, 609, 392, 411,
1046 411, 411, 350, 605, 593, 350, 350, 407, 350, 633,
1047 417, 417, 417, 1003, 1013, 413, 638, 638, 638, 362,
1049 362, 362, 606, 606, 606, 628, 419, 1024, 1010, 631,
1050 919, 350, 350, 350, 1054, 364, 608, 608, 608, 644,
1051 644, 644, 654, 654, 654, 619, 619, 619, 1025, 620,
1052 634, 350, 621, 350, 1047, 645, 636, 655, 390, 390,
1053 390, 405, 405, 405, 642, 632, 632, 632, 1004, 667,
1054 667, 667, 350, 668, 392, 656, 669, 407, 350, 1055,
1055 633, 670, 670, 670, 672, 672, 672, 417, 417, 417,
1056 1017, 663, 362, 362, 362, 908, 350, 671, 644, 644,
1057 644, 350, 350, 419, 350, 666, 350, 1026, 364, 690,
1058 690, 690, 1058, 1027, 645, 654, 654, 654, 1034, 692,
1060 692, 692, 1044, 693, 691, 683, 694, 390, 390, 390,
1061 655, 699, 699, 699, 405, 405, 405, 1030, 1018, 673,
1062 638, 638, 638, 392, 350, 350, 700, 667, 667, 667,
1063 407, 668, 350, 350, 669, 350, 350, 670, 670, 670,
1064 672, 672, 672, 706, 706, 706, 1028, 362, 362, 362,
1065 350, 701, 705, 671, 674, 350, 675, 883, 350, 707,
1066 1029, 350, 676, 364, 350, 1062, 677, 1031, 678, 1032,
1067 679, 690, 690, 690, 723, 723, 723, 907, 724, 883,
1068 350, 725, 1086, 350, 718, 1037, 691, 692, 692, 692,
1069 1038, 693, 1033, 1039, 694, 699, 699, 699, 728, 728,
1071 728, 350, 729, 350, 898, 730, 390, 390, 390, 1040,
1072 700, 405, 405, 405, 706, 706, 706, 362, 362, 362,
1073 1041, 897, 392, 350, 748, 748, 748, 407, 350, 350,
1074 707, 350, 1059, 364, 723, 723, 723, 886, 724, 749,
1075 1042, 725, 1049, 754, 754, 754, 1048, 350, 731, 390,
1076 390, 390, 405, 405, 405, 746, 735, 750, 755, 728,
1077 728, 728, 1056, 729, 350, 392, 730, 1106, 407, 762,
1078 762, 762, 769, 769, 769, 362, 362, 362, 773, 773,
1079 773, 748, 748, 748, 1045, 350, 883, 770, 475, 883,
1080 760, 364, 754, 754, 754, 756, 749, 774, 774, 774,
1082 1107, 775, 350, 350, 776, 350, 350, 755, 782, 782,
1083 782, 1079, 783, 350, 350, 784, 390, 390, 390, 786,
1084 786, 786, 789, 789, 789, 350, 772, 405, 405, 405,
1085 873, 350, 392, 872, 787, 1077, 1057, 790, 762, 762,
1086 762, 350, 1046, 407, 350, 801, 801, 801, 769, 769,
1087 769, 1052, 788, 1063, 350, 791, 362, 362, 362, 785,
1088 802, 475, 1053, 770, 475, 1060, 795, 803, 803, 803,
1089 1078, 804, 364, 793, 805, 773, 773, 773, 774, 774,
1090 774, 350, 775, 475, 1088, 776, 812, 812, 812, 782,
1091 782, 782, 807, 783, 871, 870, 784, 814, 814, 814,
1093 350, 813, 786, 786, 786, 816, 816, 816, 350, 817,
1094 869, 350, 818, 815, 789, 789, 789, 787, 820, 820,
1095 820, 1089, 821, 1071, 350, 822, 824, 824, 824, 790,
1096 405, 405, 405, 832, 832, 832, 801, 801, 801, 350,
1097 834, 834, 834, 1069, 835, 1061, 407, 836, 1093, 350,
1098 350, 802, 475, 803, 803, 803, 475, 804, 1067, 350,
1099 805, 362, 362, 362, 350, 868, 833, 1095, 350, 475,
1100 824, 824, 824, 961, 961, 961, 350, 364, 812, 812,
1101 812, 350, 825, 473, 473, 473, 473, 473, 473, 473,
1102 473, 473, 1096, 813, 473, 1127, 1125, 473, 473, 473,
1104 475, 473, 845, 845, 845, 350, 846, 350, 1094, 847,
1105 1068, 840, 888, 888, 888, 473, 473, 473, 473, 473,
1106 473, 473, 473, 473, 473, 473, 1087, 889, 473, 350,
1107 1072, 473, 473, 473, 475, 473, 814, 814, 814, 816,
1108 816, 816, 1156, 817, 1070, 866, 818, 350, 849, 473,
1109 473, 350, 815, 820, 820, 820, 350, 821, 350, 350,
1110 822, 850, 850, 850, 832, 832, 832, 834, 834, 834,
1111 1075, 835, 350, 350, 836, 350, 350, 851, 350, 1076,
1112 350, 1084, 1085, 475, 845, 845, 845, 350, 846, 350,
1113 848, 847, 858, 473, 473, 473, 473, 473, 865, 473,
1115 473, 473, 1108, 350, 473, 1109, 1139, 473, 473, 473,
1116 475, 473, 910, 910, 910, 1104, 911, 350, 1105, 912,
1117 362, 362, 362, 1144, 1110, 473, 473, 473, 473, 473,
1118 473, 473, 473, 473, 473, 865, 364, 844, 473, 350,
1119 1126, 473, 473, 473, 475, 473, 1113, 850, 850, 850,
1120 876, 876, 876, 879, 879, 879, 885, 885, 885, 473,
1121 473, 350, 867, 851, 1115, 350, 350, 843, 1114, 350,
1122 350, 350, 475, 476, 362, 362, 362, 890, 890, 890,
1123 892, 892, 892, 895, 895, 895, 899, 899, 899, 350,
1124 364, 350, 891, 1154, 1119, 893, 1111, 842, 896, 876,
1126 876, 876, 350, 879, 879, 879, 350, 885, 885, 885,
1127 362, 362, 362, 894, 1116, 350, 961, 961, 961, 350,
1128 1120, 350, 887, 475, 1132, 350, 364, 901, 888, 888,
1129 888, 904, 890, 890, 890, 913, 913, 913, 350, 914,
1130 841, 1133, 915, 889, 350, 529, 1121, 891, 892, 892,
1131 892, 916, 916, 916, 839, 917, 350, 350, 918, 895,
1132 895, 895, 909, 893, 920, 920, 920, 1179, 921, 350,
1133 350, 922, 1123, 350, 896, 899, 899, 899, 362, 362,
1134 362, 910, 910, 910, 1124, 911, 350, 350, 912, 350,
1135 1122, 350, 1212, 1137, 364, 913, 913, 913, 1128, 914,
1137 350, 1129, 915, 925, 916, 916, 916, 1130, 917, 823,
1138 1131, 918, 920, 920, 920, 1134, 921, 350, 1136, 922,
1139 935, 940, 940, 940, 362, 362, 362, 940, 940, 940,
1140 350, 953, 1138, 350, 954, 1142, 350, 350, 1152, 350,
1141 364, 350, 350, 350, 362, 362, 362, 970, 970, 970,
1142 973, 973, 973, 975, 975, 975, 350, 977, 977, 977,
1143 364, 1135, 350, 350, 1155, 350, 350, 1172, 1141, 976,
1144 1140, 948, 978, 970, 970, 970, 973, 973, 973, 350,
1145 988, 1143, 819, 989, 990, 990, 990, 350, 350, 350,
1146 962, 350, 350, 975, 975, 975, 977, 977, 977, 1146,
1148 350, 985, 1147, 991, 991, 991, 350, 992, 1153, 976,
1149 993, 978, 999, 999, 999, 1002, 1002, 1002, 990, 990,
1150 990, 350, 991, 991, 991, 1148, 992, 1145, 350, 993,
1151 811, 350, 350, 810, 350, 1008, 1008, 1008, 999, 999,
1152 999, 350, 1011, 1218, 809, 1012, 1005, 350, 1002, 1002,
1153 1002, 350, 1015, 1169, 350, 1016, 1008, 1008, 1008, 350,
1154 1022, 1167, 1157, 1023, 350, 1073, 1073, 1073, 1080, 1080,
1155 1080, 350, 350, 1082, 1082, 1082, 350, 1149, 1073, 1073,
1156 1073, 350, 1090, 1081, 350, 1091, 350, 350, 1083, 1092,
1157 1092, 1092, 1158, 1161, 350, 1097, 1097, 1097, 1080, 1080,
1159 1080, 350, 1098, 1098, 1098, 350, 1099, 1159, 1160, 1100,
1160 1162, 350, 350, 1081, 1082, 1082, 1082, 1101, 1101, 1101,
1161 808, 1102, 1163, 350, 1103, 1092, 1092, 1092, 350, 1083,
1162 1097, 1097, 1097, 1164, 1117, 806, 350, 1118, 1098, 1098,
1163 1098, 350, 1099, 350, 350, 1100, 350, 1101, 1101, 1101,
1164 350, 1102, 350, 1112, 1103, 1150, 1150, 1150, 1150, 1150,
1165 1150, 350, 350, 1168, 1165, 350, 350, 350, 350, 350,
1166 350, 1151, 1166, 1173, 1151, 1174, 1181, 350, 350, 1170,
1167 1171, 350, 350, 1184, 1184, 1184, 1177, 1178, 1190, 792,
1168 1182, 1183, 1190, 350, 350, 1194, 1180, 1175, 1176, 1185,
1170 350, 350, 1188, 1189, 1193, 1193, 1193, 350, 350, 350,
1171 1194, 1184, 1184, 1184, 1197, 1197, 1200, 1186, 1187, 350,
1172 350, 1191, 1192, 350, 350, 1201, 350, 1185, 1198, 1198,
1173 1198, 350, 350, 1204, 1204, 1204, 350, 1195, 1196, 1193,
1174 1193, 1193, 350, 1202, 1199, 350, 1203, 350, 350, 1205,
1175 1208, 1208, 1208, 350, 350, 350, 1198, 1198, 1198, 1206,
1176 1204, 1204, 1204, 1210, 1207, 350, 1209, 1214, 1211, 350,
1177 1215, 350, 1199, 350, 350, 350, 1205, 350, 350, 350,
1178 1213, 1208, 1208, 1208, 1216, 350, 1220, 1228, 350, 1217,
1179 1221, 1219, 1222, 1228, 1223, 350, 350, 1209, 350, 350,
1181 350, 350, 350, 350, 1233, 1233, 1233, 1237, 350, 1224,
1182 1237, 1229, 1225, 781, 350, 1226, 350, 1231, 1230, 1232,
1183 1234, 1227, 350, 1233, 1233, 1233, 1240, 1240, 1240, 350,
1184 350, 1244, 1238, 1240, 1240, 1240, 1245, 1239, 350, 1234,
1185 1235, 1236, 1241, 350, 350, 350, 350, 350, 350, 1241,
1186 1248, 1252, 1252, 780, 1253, 1253, 1253, 1242, 1243, 777,
1187 771, 350, 759, 350, 758, 1246, 1247, 757, 1250, 1251,
1188 1254, 1253, 1253, 1253, 753, 752, 751, 747, 745, 734,
1189 733, 732, 1249, 727, 726, 722, 721, 1254, 94, 94,
1190 94, 94, 94, 94, 94, 95, 95, 95, 95, 95,
1192 95, 95, 100, 100, 100, 100, 100, 100, 100, 103,
1193 103, 103, 103, 103, 103, 103, 106, 106, 106, 106,
1194 106, 106, 106, 109, 109, 109, 109, 109, 109, 109,
1195 116, 116, 116, 116, 116, 116, 116, 124, 124, 124,
1196 124, 124, 124, 124, 127, 127, 127, 127, 127, 127,
1197 127, 136, 136, 136, 136, 136, 136, 136, 140, 140,
1198 140, 140, 140, 140, 140, 157, 157, 157, 157, 157,
1199 157, 157, 171, 171, 171, 171, 171, 171, 171, 178,
1200 178, 178, 178, 178, 178, 178, 184, 184, 184, 184,
1201 184, 184, 184, 192, 192, 192, 192, 192, 192, 192,
1203 196, 196, 196, 196, 196, 196, 196, 203, 203, 203,
1204 203, 203, 203, 203, 208, 208, 208, 208, 208, 208,
1205 208, 216, 216, 216, 216, 216, 216, 216, 220, 220,
1206 220, 220, 220, 220, 220, 242, 242, 242, 720, 242,
1207 250, 250, 250, 719, 250, 254, 254, 254, 717, 254,
1208 263, 263, 263, 704, 263, 270, 270, 270, 698, 270,
1209 277, 277, 277, 697, 277, 281, 281, 281, 696, 281,
1210 287, 287, 287, 695, 287, 292, 292, 292, 292, 292,
1211 689, 292, 306, 688, 306, 314, 687, 314, 322, 686,
1212 322, 328, 685, 328, 333, 684, 333, 337, 682, 337,
1214 341, 665, 341, 345, 664, 345, 349, 349, 349, 349,
1215 349, 349, 349, 355, 662, 661, 355, 363, 363, 363,
1216 363, 363, 363, 373, 373, 373, 373, 373, 373, 383,
1217 383, 383, 383, 383, 383, 391, 391, 391, 391, 391,
1218 391, 400, 400, 400, 400, 400, 400, 406, 406, 406,
1219 406, 406, 406, 412, 412, 412, 412, 412, 412, 418,
1220 418, 418, 418, 418, 418, 473, 473, 473, 473, 473,
1221 473, 473, 837, 837, 837, 837, 837, 837, 837, 838,
1222 838, 838, 838, 838, 838, 838, 860, 860, 860, 860,
1223 860, 860, 860, 863, 863, 863, 863, 863, 863, 863,
1225 882, 882, 882, 882, 882, 882, 882, 884, 884, 884,
1226 884, 884, 884, 884, 660, 659, 658, 657, 653, 652,
1227 651, 650, 649, 648, 647, 646, 643, 641, 637, 635,
1228 630, 629, 627, 622, 618, 617, 612, 611, 610, 607,
1229 604, 600, 598, 596, 594, 591, 589, 588, 587, 583,
1230 582, 581, 580, 579, 578, 577, 575, 574, 573, 571,
1231 567, 562, 560, 558, 556, 554, 550, 549, 548, 541,
1232 540, 539, 536, 535, 534, 532, 531, 475, 527, 523,
1233 518, 513, 511, 503, 502, 491, 490, 489, 484, 483,
1234 482, 481, 479, 478, 477, 471, 469, 468, 464, 460,
1236 455, 450, 447, 446, 444, 443, 440, 439, 438, 434,
1237 433, 432, 431, 428, 427, 426, 425, 424, 423, 350,
1238 421, 416, 415, 410, 409, 404, 403, 396, 389, 388,
1239 387, 386, 381, 380, 379, 378, 377, 376, 371, 370,
1240 369, 368, 367, 366, 361, 360, 359, 358, 357, 356,
1241 353, 351, 350, 348, 347, 346, 344, 343, 342, 340,
1242 339, 338, 336, 335, 334, 332, 331, 330, 329, 327,
1243 326, 325, 324, 323, 321, 320, 319, 318, 317, 316,
1244 315, 313, 312, 311, 310, 309, 308, 307, 305, 304,
1245 303, 302, 301, 296, 293, 295, 291, 290, 288, 286,
1247 283, 282, 280, 278, 276, 273, 272, 271, 269, 267,
1248 266, 265, 264, 262, 260, 259, 258, 257, 256, 255,
1249 253, 251, 249, 241, 239, 233, 232, 233, 232, 231,
1250 230, 1255, 93, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
1251 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
1252 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
1253 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
1254 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
1255 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
1260 static yyconst flex_int16_t yy_chk[3593] =
1262 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1263 6, 6, 6, 9, 0, 3, 10, 11, 4, 12,
1264 9, 5, 827, 10, 6, 7, 7, 7, 8, 8,
1265 8, 13, 13, 11, 827, 12, 13, 13, 234, 7,
1266 14, 14, 8, 226, 13, 14, 14, 15, 15, 0,
1267 15, 98, 15, 14, 16, 16, 226, 16, 603, 16,
1268 15, 17, 17, 18, 18, 98, 99, 16, 19, 19,
1269 19, 20, 20, 20, 23, 23, 23, 24, 24, 24,
1270 99, 235, 19, 234, 235, 20, 352, 297, 23, 297,
1271 352, 24, 17, 603, 18, 21, 21, 21, 21, 21,
1273 21, 21, 21, 21, 21, 21, 21, 21, 570, 21,
1274 21, 21, 21, 21, 96, 96, 96, 97, 97, 97,
1275 101, 101, 101, 122, 122, 122, 530, 21, 21, 22,
1276 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1277 22, 22, 570, 22, 22, 22, 22, 22, 530, 25,
1278 25, 25, 26, 26, 26, 27, 27, 27, 28, 28,
1279 28, 22, 22, 25, 529, 580, 26, 580, 569, 27,
1280 1051, 102, 28, 29, 29, 29, 30, 30, 30, 31,
1281 31, 31, 32, 32, 32, 102, 568, 29, 569, 581,
1282 30, 581, 568, 31, 529, 639, 32, 33, 33, 33,
1284 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
1285 125, 33, 33, 33, 33, 33, 639, 35, 35, 35,
1286 36, 36, 36, 294, 125, 128, 128, 128, 1050, 33,
1287 33, 35, 1036, 294, 36, 751, 751, 33, 34, 34,
1288 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
1289 34, 422, 34, 34, 34, 34, 34, 528, 37, 37,
1290 37, 38, 38, 38, 422, 39, 39, 39, 528, 640,
1291 34, 34, 37, 112, 587, 38, 587, 677, 34, 39,
1292 40, 40, 40, 41, 41, 41, 42, 42, 42, 43,
1293 43, 43, 708, 137, 40, 640, 588, 41, 588, 677,
1295 42, 1035, 112, 43, 44, 44, 44, 137, 112, 134,
1296 134, 134, 112, 141, 141, 141, 708, 112, 44, 45,
1297 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1298 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1299 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1300 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1301 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1302 45, 45, 45, 45, 45, 45, 45, 45, 47, 47,
1303 47, 48, 48, 48, 49, 49, 49, 50, 50, 50,
1304 836, 863, 47, 861, 861, 48, 1021, 1020, 49, 836,
1306 863, 50, 51, 51, 51, 51, 51, 51, 51, 51,
1307 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1308 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1309 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1310 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1311 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
1312 51, 53, 53, 53, 54, 54, 54, 55, 55, 55,
1313 56, 56, 56, 602, 875, 53, 931, 955, 54, 1007,
1314 875, 55, 931, 955, 56, 57, 57, 57, 57, 57,
1315 57, 57, 57, 57, 57, 57, 57, 57, 674, 57,
1317 57, 57, 57, 57, 602, 59, 59, 59, 60, 60,
1318 60, 61, 61, 61, 146, 146, 146, 57, 57, 59,
1319 131, 149, 60, 57, 1122, 61, 679, 131, 57, 158,
1320 158, 158, 674, 1122, 131, 149, 709, 57, 58, 58,
1321 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1322 58, 680, 58, 58, 58, 58, 58, 679, 62, 62,
1323 62, 63, 63, 63, 64, 64, 64, 162, 162, 162,
1324 58, 58, 62, 709, 132, 63, 58, 680, 64, 681,
1325 165, 58, 65, 65, 65, 66, 66, 66, 132, 120,
1326 58, 67, 67, 67, 165, 144, 65, 143, 179, 66,
1328 68, 68, 68, 120, 143, 67, 172, 172, 172, 144,
1329 681, 143, 179, 132, 68, 69, 69, 69, 69, 69,
1330 69, 69, 69, 69, 69, 69, 69, 69, 144, 69,
1331 69, 69, 69, 69, 120, 71, 71, 71, 72, 72,
1332 72, 73, 73, 73, 74, 74, 74, 69, 69, 71,
1333 675, 958, 72, 1006, 995, 73, 710, 958, 74, 176,
1334 176, 176, 69, 70, 70, 70, 70, 70, 70, 70,
1335 70, 70, 70, 70, 70, 70, 710, 70, 70, 70,
1336 70, 70, 675, 77, 77, 77, 78, 78, 78, 79,
1337 79, 79, 80, 80, 80, 70, 70, 77, 966, 713,
1339 78, 994, 980, 79, 966, 711, 80, 185, 185, 185,
1340 70, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1341 75, 75, 75, 75, 712, 75, 75, 75, 75, 75,
1342 713, 81, 81, 81, 82, 82, 82, 676, 83, 83,
1343 83, 711, 712, 75, 75, 81, 739, 714, 82, 743,
1344 715, 75, 83, 75, 76, 76, 76, 76, 76, 76,
1345 76, 76, 76, 76, 76, 76, 76, 676, 76, 76,
1346 76, 76, 76, 743, 84, 84, 84, 85, 85, 85,
1347 715, 86, 86, 86, 714, 739, 76, 76, 84, 979,
1348 965, 85, 964, 716, 76, 86, 76, 87, 87, 87,
1350 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1351 193, 87, 87, 87, 87, 87, 766, 89, 89, 89,
1352 90, 90, 90, 716, 193, 159, 190, 190, 190, 87,
1353 87, 89, 159, 199, 90, 91, 91, 160, 766, 159,
1354 91, 197, 197, 197, 201, 201, 201, 199, 91, 765,
1355 951, 160, 87, 88, 88, 88, 88, 88, 88, 88,
1356 88, 88, 88, 88, 88, 88, 91, 88, 88, 88,
1357 88, 88, 765, 738, 92, 92, 129, 130, 199, 92,
1358 160, 173, 174, 129, 204, 88, 88, 92, 173, 187,
1359 129, 130, 142, 186, 740, 173, 174, 188, 204, 142,
1361 186, 738, 764, 187, 188, 92, 142, 186, 88, 129,
1362 130, 188, 209, 209, 209, 129, 130, 1160, 211, 129,
1363 130, 129, 130, 129, 130, 142, 1160, 198, 217, 174,
1364 740, 142, 211, 764, 198, 142, 187, 142, 210, 142,
1365 186, 198, 217, 212, 222, 210, 214, 214, 214, 211,
1366 212, 222, 210, 221, 221, 221, 741, 212, 222, 225,
1367 225, 225, 306, 306, 306, 307, 307, 307, 736, 210,
1368 314, 314, 314, 315, 315, 315, 741, 900, 306, 472,
1369 678, 307, 322, 322, 322, 900, 314, 761, 950, 315,
1370 323, 323, 323, 472, 328, 328, 328, 796, 322, 329,
1372 329, 329, 330, 330, 330, 736, 323, 763, 678, 307,
1373 328, 332, 332, 332, 678, 329, 761, 330, 796, 315,
1374 333, 333, 333, 334, 334, 334, 332, 337, 337, 337,
1375 338, 338, 338, 341, 341, 341, 333, 329, 323, 334,
1376 342, 342, 342, 337, 763, 767, 338, 798, 957, 341,
1377 345, 345, 345, 346, 346, 346, 342, 362, 362, 362,
1378 363, 363, 363, 365, 365, 365, 345, 767, 957, 346,
1379 334, 949, 742, 362, 799, 664, 363, 338, 798, 365,
1380 366, 366, 366, 371, 371, 371, 372, 372, 372, 664,
1381 342, 373, 373, 373, 375, 375, 375, 365, 371, 379,
1383 379, 379, 372, 346, 382, 382, 382, 373, 742, 799,
1384 375, 383, 383, 383, 379, 385, 385, 385, 855, 852,
1385 382, 388, 388, 388, 390, 390, 390, 383, 794, 797,
1386 375, 385, 391, 391, 391, 855, 388, 393, 393, 393,
1387 390, 394, 394, 394, 828, 395, 395, 395, 391, 395,
1388 794, 795, 395, 393, 826, 852, 394, 397, 397, 397,
1389 398, 398, 398, 797, 398, 795, 828, 398, 385, 399,
1390 399, 399, 397, 938, 400, 400, 400, 402, 402, 402,
1391 404, 404, 404, 830, 826, 399, 405, 405, 405, 393,
1392 400, 1001, 833, 402, 831, 404, 406, 406, 406, 408,
1394 408, 408, 405, 410, 410, 410, 411, 411, 411, 412,
1395 412, 412, 406, 829, 833, 408, 937, 830, 410, 414,
1396 414, 414, 411, 1001, 835, 412, 417, 417, 417, 831,
1397 402, 418, 418, 418, 936, 414, 835, 420, 420, 420,
1398 829, 878, 417, 423, 423, 423, 856, 418, 429, 429,
1399 429, 858, 408, 420, 430, 430, 430, 853, 878, 423,
1400 423, 435, 435, 435, 429, 858, 414, 436, 436, 436,
1401 853, 436, 903, 881, 436, 856, 435, 420, 437, 437,
1402 437, 441, 441, 441, 442, 442, 442, 934, 442, 924,
1403 923, 442, 919, 903, 437, 881, 441, 443, 443, 443,
1405 429, 444, 444, 444, 445, 445, 445, 859, 448, 448,
1406 448, 902, 443, 450, 450, 450, 444, 449, 449, 449,
1407 445, 449, 437, 448, 449, 451, 451, 451, 450, 452,
1408 452, 452, 860, 452, 444, 859, 452, 902, 456, 456,
1409 456, 451, 456, 905, 860, 456, 450, 459, 459, 459,
1410 461, 461, 461, 462, 462, 462, 905, 462, 908, 907,
1411 462, 901, 960, 459, 904, 461, 463, 463, 463, 465,
1412 465, 465, 466, 466, 466, 901, 466, 898, 904, 466,
1413 451, 877, 463, 925, 465, 467, 467, 467, 469, 469,
1414 469, 470, 470, 470, 474, 474, 474, 925, 960, 459,
1416 906, 467, 880, 469, 480, 480, 480, 470, 928, 877,
1417 474, 484, 484, 484, 880, 485, 485, 485, 463, 485,
1418 480, 467, 485, 488, 488, 488, 492, 492, 492, 906,
1419 492, 929, 474, 492, 495, 495, 495, 967, 928, 488,
1420 497, 497, 497, 480, 470, 500, 500, 500, 474, 495,
1421 496, 496, 496, 929, 496, 497, 941, 496, 498, 498,
1422 498, 500, 498, 927, 932, 498, 504, 504, 504, 941,
1423 504, 930, 942, 504, 967, 927, 488, 507, 507, 507,
1424 508, 508, 508, 930, 508, 1028, 932, 508, 510, 510,
1425 510, 1028, 507, 512, 512, 512, 514, 514, 514, 942,
1427 514, 939, 944, 514, 510, 517, 517, 517, 945, 512,
1428 519, 519, 519, 939, 519, 944, 945, 519, 522, 522,
1429 522, 517, 524, 524, 524, 525, 525, 525, 943, 525,
1430 953, 512, 525, 968, 522, 510, 986, 524, 526, 526,
1431 526, 985, 946, 517, 533, 533, 533, 537, 537, 537,
1432 538, 538, 538, 954, 526, 985, 522, 542, 542, 542,
1433 533, 542, 986, 943, 542, 953, 538, 545, 545, 545,
1434 968, 545, 946, 952, 545, 550, 550, 550, 551, 551,
1435 551, 969, 551, 526, 972, 551, 952, 538, 954, 969,
1436 550, 533, 972, 555, 555, 555, 557, 557, 557, 559,
1438 559, 559, 561, 561, 561, 573, 573, 573, 550, 555,
1439 897, 1049, 557, 1005, 971, 559, 981, 1049, 561, 563,
1440 563, 563, 982, 563, 981, 983, 563, 1005, 566, 566,
1441 566, 1059, 559, 572, 572, 572, 575, 575, 575, 576,
1442 576, 576, 997, 555, 566, 584, 584, 584, 971, 572,
1443 585, 585, 585, 561, 585, 576, 982, 585, 988, 983,
1444 584, 1059, 590, 590, 590, 997, 566, 1009, 592, 592,
1445 592, 595, 595, 595, 596, 596, 596, 576, 590, 597,
1446 597, 597, 1000, 572, 592, 998, 1039, 595, 1010, 596,
1447 599, 599, 599, 988, 1000, 597, 601, 601, 601, 605,
1449 605, 605, 606, 606, 606, 590, 599, 1009, 998, 595,
1450 894, 1032, 601, 989, 1039, 605, 608, 608, 608, 609,
1451 609, 609, 618, 618, 618, 619, 619, 619, 1010, 619,
1452 597, 1040, 619, 1003, 1032, 609, 599, 618, 628, 628,
1453 628, 631, 631, 631, 605, 632, 632, 632, 989, 633,
1454 633, 633, 1011, 633, 628, 618, 633, 631, 1012, 1040,
1455 632, 634, 634, 634, 635, 635, 635, 636, 636, 636,
1456 1003, 628, 642, 642, 642, 886, 1029, 634, 644, 644,
1457 644, 1004, 1015, 636, 1043, 631, 1019, 1011, 642, 653,
1458 653, 653, 1043, 1012, 644, 654, 654, 654, 1019, 655,
1460 655, 655, 1029, 655, 653, 642, 655, 663, 663, 663,
1461 654, 662, 662, 662, 666, 666, 666, 1015, 1004, 636,
1462 638, 638, 638, 663, 1014, 1047, 662, 667, 667, 667,
1463 666, 667, 1016, 1013, 667, 1017, 638, 670, 670, 670,
1464 672, 672, 672, 673, 673, 673, 1013, 683, 683, 683,
1465 1022, 663, 666, 670, 638, 1023, 638, 884, 1018, 673,
1466 1014, 1069, 638, 683, 1024, 1047, 638, 1016, 638, 1017,
1467 638, 690, 690, 690, 691, 691, 691, 883, 691, 882,
1468 1025, 691, 1069, 1026, 683, 1022, 690, 692, 692, 692,
1469 1023, 692, 1018, 1024, 692, 699, 699, 699, 700, 700,
1471 700, 1044, 700, 1027, 873, 700, 701, 701, 701, 1025,
1472 699, 705, 705, 705, 706, 706, 706, 718, 718, 718,
1473 1026, 872, 701, 1033, 720, 720, 720, 705, 1041, 1034,
1474 706, 1086, 1044, 718, 723, 723, 723, 866, 723, 720,
1475 1027, 723, 1034, 727, 727, 727, 1033, 1030, 701, 731,
1476 731, 731, 735, 735, 735, 718, 705, 720, 727, 728,
1477 728, 728, 1041, 728, 1087, 731, 728, 1086, 735, 737,
1478 737, 737, 744, 744, 744, 746, 746, 746, 747, 747,
1479 747, 748, 748, 748, 1030, 737, 864, 744, 744, 862,
1480 735, 746, 754, 754, 754, 731, 748, 749, 749, 749,
1482 1087, 749, 1042, 1064, 749, 1031, 1062, 754, 755, 755,
1483 755, 1064, 755, 1048, 1037, 755, 756, 756, 756, 757,
1484 757, 757, 758, 758, 758, 1038, 746, 760, 760, 760,
1485 849, 1045, 756, 848, 757, 1062, 1042, 758, 762, 762,
1486 762, 1063, 1031, 760, 1071, 768, 768, 768, 769, 769,
1487 769, 1037, 757, 1048, 762, 758, 772, 772, 772, 756,
1488 768, 768, 1038, 769, 769, 1045, 762, 770, 770, 770,
1489 1063, 770, 772, 760, 770, 773, 773, 773, 774, 774,
1490 774, 1072, 774, 770, 1071, 774, 781, 781, 781, 782,
1491 782, 782, 772, 782, 844, 843, 782, 785, 785, 785,
1493 1056, 781, 786, 786, 786, 787, 787, 787, 1075, 787,
1494 842, 1046, 787, 785, 789, 789, 789, 786, 790, 790,
1495 790, 1072, 790, 1056, 1052, 790, 792, 792, 792, 789,
1496 793, 793, 793, 800, 800, 800, 801, 801, 801, 1077,
1497 802, 802, 802, 1054, 802, 1046, 793, 802, 1075, 800,
1498 1054, 801, 801, 803, 803, 803, 802, 803, 1052, 1110,
1499 803, 807, 807, 807, 1078, 841, 800, 1077, 1076, 803,
1500 824, 824, 824, 947, 947, 947, 1053, 807, 812, 812,
1501 812, 1112, 793, 804, 804, 804, 804, 804, 804, 804,
1502 804, 804, 1078, 812, 804, 1112, 1110, 804, 804, 804,
1504 804, 804, 813, 813, 813, 1070, 813, 1057, 1076, 813,
1505 1053, 807, 868, 868, 868, 804, 804, 805, 805, 805,
1506 805, 805, 805, 805, 805, 805, 1070, 868, 805, 1141,
1507 1057, 805, 805, 805, 805, 805, 814, 814, 814, 816,
1508 816, 816, 1141, 816, 1055, 839, 816, 1060, 823, 805,
1509 805, 1055, 814, 820, 820, 820, 1061, 820, 1067, 1068,
1510 820, 825, 825, 825, 832, 832, 832, 834, 834, 834,
1511 1060, 834, 1125, 1088, 834, 1084, 1089, 825, 1085, 1061,
1512 832, 1067, 1068, 834, 845, 845, 845, 1130, 845, 1090,
1513 819, 845, 832, 837, 837, 837, 837, 837, 837, 837,
1515 837, 837, 1088, 1111, 837, 1089, 1125, 837, 837, 837,
1516 837, 837, 889, 889, 889, 1084, 889, 1093, 1085, 889,
1517 840, 840, 840, 1130, 1090, 837, 837, 838, 838, 838,
1518 838, 838, 838, 838, 838, 838, 840, 811, 838, 1094,
1519 1111, 838, 838, 838, 838, 838, 1093, 850, 850, 850,
1520 854, 854, 854, 857, 857, 857, 865, 865, 865, 838,
1521 838, 1091, 840, 850, 1095, 1104, 854, 810, 1094, 857,
1522 1139, 1095, 865, 865, 867, 867, 867, 869, 869, 869,
1523 870, 870, 870, 871, 871, 871, 874, 874, 874, 1117,
1524 867, 1105, 869, 1139, 1104, 870, 1091, 809, 871, 876,
1526 876, 876, 874, 879, 879, 879, 1118, 885, 885, 885,
1527 887, 887, 887, 870, 1096, 876, 961, 961, 961, 879,
1528 1105, 1096, 867, 885, 1117, 1106, 887, 876, 888, 888,
1529 888, 879, 890, 890, 890, 891, 891, 891, 1167, 891,
1530 808, 1118, 891, 888, 1108, 885, 1106, 890, 892, 892,
1531 892, 893, 893, 893, 806, 893, 1109, 1202, 893, 895,
1532 895, 895, 887, 892, 896, 896, 896, 1167, 896, 1107,
1533 1113, 896, 1108, 1114, 895, 899, 899, 899, 909, 909,
1534 909, 910, 910, 910, 1109, 910, 1115, 1119, 910, 1116,
1535 1107, 899, 1202, 1123, 909, 913, 913, 913, 1113, 913,
1537 1123, 1114, 913, 899, 916, 916, 916, 1115, 916, 791,
1538 1116, 916, 920, 920, 920, 1119, 920, 1137, 1121, 920,
1539 909, 926, 926, 926, 935, 935, 935, 940, 940, 940,
1540 1121, 940, 1124, 1120, 940, 1128, 1126, 926, 1137, 1124,
1541 935, 1140, 1128, 940, 948, 948, 948, 956, 956, 956,
1542 959, 959, 959, 962, 962, 962, 1127, 963, 963, 963,
1543 948, 1120, 1132, 956, 1140, 1133, 959, 1159, 1127, 962,
1544 1126, 935, 963, 970, 970, 970, 973, 973, 973, 1159,
1545 973, 1129, 788, 973, 974, 974, 974, 1138, 1129, 970,
1546 948, 1131, 973, 975, 975, 975, 977, 977, 977, 1132,
1548 974, 970, 1133, 978, 978, 978, 1212, 978, 1138, 975,
1549 978, 977, 984, 984, 984, 987, 987, 987, 990, 990,
1550 990, 1154, 991, 991, 991, 1134, 991, 1131, 984, 991,
1551 780, 987, 1134, 779, 990, 996, 996, 996, 999, 999,
1552 999, 1142, 999, 1212, 778, 999, 990, 1156, 1002, 1002,
1553 1002, 996, 1002, 1156, 999, 1002, 1008, 1008, 1008, 1146,
1554 1008, 1154, 1142, 1008, 1002, 1058, 1058, 1058, 1065, 1065,
1555 1065, 1143, 1008, 1066, 1066, 1066, 1147, 1135, 1073, 1073,
1556 1073, 1058, 1073, 1065, 1135, 1073, 1144, 1145, 1066, 1074,
1557 1074, 1074, 1143, 1146, 1073, 1079, 1079, 1079, 1080, 1080,
1559 1080, 1148, 1081, 1081, 1081, 1074, 1081, 1144, 1145, 1081,
1560 1147, 1079, 1149, 1080, 1082, 1082, 1082, 1083, 1083, 1083,
1561 777, 1083, 1148, 1155, 1083, 1092, 1092, 1092, 1152, 1082,
1562 1097, 1097, 1097, 1149, 1097, 771, 1153, 1097, 1098, 1098,
1563 1098, 1092, 1098, 1157, 1158, 1098, 1097, 1101, 1101, 1101,
1564 1161, 1101, 1162, 1092, 1101, 1136, 1136, 1136, 1150, 1150,
1565 1150, 1163, 1164, 1155, 1152, 1165, 1166, 1168, 1169, 1170,
1566 1171, 1136, 1153, 1161, 1150, 1162, 1169, 1173, 1174, 1157,
1567 1158, 1175, 1176, 1172, 1172, 1172, 1165, 1166, 1177, 759,
1568 1170, 1171, 1178, 1179, 1180, 1182, 1168, 1163, 1164, 1172,
1570 1177, 1178, 1175, 1176, 1181, 1181, 1181, 1182, 1186, 1187,
1571 1183, 1184, 1184, 1184, 1188, 1189, 1191, 1173, 1174, 1183,
1572 1181, 1179, 1180, 1191, 1189, 1192, 1188, 1184, 1190, 1190,
1573 1190, 1195, 1192, 1194, 1194, 1194, 1196, 1186, 1187, 1193,
1574 1193, 1193, 1200, 1193, 1190, 1203, 1193, 1201, 1210, 1194,
1575 1197, 1197, 1197, 1211, 1213, 1193, 1198, 1198, 1198, 1195,
1576 1204, 1204, 1204, 1200, 1196, 1214, 1197, 1206, 1201, 1215,
1577 1207, 1216, 1198, 1217, 1206, 1218, 1204, 1207, 1219, 1220,
1578 1203, 1208, 1208, 1208, 1210, 1221, 1214, 1222, 1224, 1211,
1579 1215, 1213, 1216, 1223, 1217, 1225, 1226, 1208, 1227, 1222,
1581 1229, 1230, 1223, 1235, 1228, 1228, 1228, 1232, 1236, 1218,
1582 1231, 1224, 1219, 753, 1246, 1220, 1232, 1226, 1225, 1227,
1583 1228, 1221, 1231, 1233, 1233, 1233, 1237, 1237, 1237, 1238,
1584 1239, 1242, 1235, 1240, 1240, 1240, 1243, 1236, 1242, 1233,
1585 1229, 1230, 1237, 1243, 1244, 1245, 1247, 1248, 1249, 1240,
1586 1246, 1250, 1251, 752, 1252, 1252, 1252, 1238, 1239, 750,
1587 745, 1251, 734, 1250, 733, 1244, 1245, 732, 1248, 1249,
1588 1252, 1253, 1253, 1253, 726, 722, 721, 719, 717, 704,
1589 703, 702, 1247, 696, 695, 687, 686, 1253, 1256, 1256,
1590 1256, 1256, 1256, 1256, 1256, 1257, 1257, 1257, 1257, 1257,
1592 1257, 1257, 1258, 1258, 1258, 1258, 1258, 1258, 1258, 1259,
1593 1259, 1259, 1259, 1259, 1259, 1259, 1260, 1260, 1260, 1260,
1594 1260, 1260, 1260, 1261, 1261, 1261, 1261, 1261, 1261, 1261,
1595 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1263, 1263, 1263,
1596 1263, 1263, 1263, 1263, 1264, 1264, 1264, 1264, 1264, 1264,
1597 1264, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1266, 1266,
1598 1266, 1266, 1266, 1266, 1266, 1267, 1267, 1267, 1267, 1267,
1599 1267, 1267, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1269,
1600 1269, 1269, 1269, 1269, 1269, 1269, 1270, 1270, 1270, 1270,
1601 1270, 1270, 1270, 1271, 1271, 1271, 1271, 1271, 1271, 1271,
1603 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1273, 1273, 1273,
1604 1273, 1273, 1273, 1273, 1274, 1274, 1274, 1274, 1274, 1274,
1605 1274, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1276, 1276,
1606 1276, 1276, 1276, 1276, 1276, 1277, 1277, 1277, 685, 1277,
1607 1278, 1278, 1278, 684, 1278, 1279, 1279, 1279, 682, 1279,
1608 1280, 1280, 1280, 665, 1280, 1281, 1281, 1281, 660, 1281,
1609 1282, 1282, 1282, 658, 1282, 1283, 1283, 1283, 657, 1283,
1610 1284, 1284, 1284, 656, 1284, 1285, 1285, 1285, 1285, 1285,
1611 651, 1285, 1286, 649, 1286, 1287, 648, 1287, 1288, 647,
1612 1288, 1289, 646, 1289, 1290, 643, 1290, 1291, 641, 1291,
1614 1292, 630, 1292, 1293, 629, 1293, 1294, 1294, 1294, 1294,
1615 1294, 1294, 1294, 1295, 627, 626, 1295, 1296, 1296, 1296,
1616 1296, 1296, 1296, 1297, 1297, 1297, 1297, 1297, 1297, 1298,
1617 1298, 1298, 1298, 1298, 1298, 1299, 1299, 1299, 1299, 1299,
1618 1299, 1300, 1300, 1300, 1300, 1300, 1300, 1301, 1301, 1301,
1619 1301, 1301, 1301, 1302, 1302, 1302, 1302, 1302, 1302, 1303,
1620 1303, 1303, 1303, 1303, 1303, 1304, 1304, 1304, 1304, 1304,
1621 1304, 1304, 1305, 1305, 1305, 1305, 1305, 1305, 1305, 1306,
1622 1306, 1306, 1306, 1306, 1306, 1306, 1307, 1307, 1307, 1307,
1623 1307, 1307, 1307, 1308, 1308, 1308, 1308, 1308, 1308, 1308,
1625 1309, 1309, 1309, 1309, 1309, 1309, 1309, 1310, 1310, 1310,
1626 1310, 1310, 1310, 1310, 625, 624, 623, 622, 617, 616,
1627 615, 614, 613, 612, 611, 610, 607, 604, 600, 598,
1628 594, 591, 589, 586, 583, 582, 579, 578, 577, 574,
1629 571, 567, 562, 560, 558, 556, 554, 553, 552, 549,
1630 548, 547, 546, 541, 540, 539, 536, 535, 534, 532,
1631 527, 523, 518, 513, 511, 509, 503, 502, 499, 491,
1632 490, 489, 483, 482, 481, 479, 476, 473, 471, 468,
1633 464, 460, 455, 447, 446, 440, 439, 438, 434, 433,
1634 432, 431, 428, 427, 426, 421, 416, 415, 409, 403,
1636 396, 389, 387, 386, 381, 380, 378, 377, 376, 370,
1637 369, 368, 367, 361, 360, 357, 356, 355, 353, 349,
1638 347, 344, 343, 340, 339, 336, 335, 331, 327, 326,
1639 325, 324, 321, 320, 319, 318, 317, 316, 313, 312,
1640 311, 310, 309, 308, 305, 303, 302, 301, 300, 299,
1641 295, 293, 292, 291, 290, 289, 288, 285, 284, 283,
1642 282, 279, 278, 275, 274, 273, 272, 271, 268, 267,
1643 266, 265, 264, 261, 260, 259, 258, 257, 256, 255,
1644 252, 251, 248, 247, 246, 245, 244, 243, 240, 239,
1645 238, 237, 236, 230, 229, 227, 224, 223, 219, 215,
1647 207, 206, 202, 195, 191, 183, 182, 181, 177, 170,
1648 169, 168, 167, 163, 156, 155, 154, 153, 152, 151,
1649 147, 139, 135, 123, 119, 118, 117, 111, 110, 108,
1650 105, 93, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
1651 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
1652 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
1653 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
1654 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
1655 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255,
1660 /* Table of booleans, true if rule could match eol. */
1661 static yyconst flex_int32_t yy_rule_can_match_eol[169] =
1663 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1664 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1665 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1666 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1667 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1,
1668 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0,
1669 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1,
1670 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0,
1671 0, 0, 0, 1, 0, 0, 0, 1, 0, };
1673 static yy_state_type yy_last_accepting_state;
1674 static char *yy_last_accepting_cpos;
1676 extern int surf_parse__flex_debug;
1677 int surf_parse__flex_debug = 0;
1679 /* The intent behind this definition is that it'll catch
1680 * any uses of REJECT which flex missed.
1682 #define REJECT reject_used_but_not_detected
1683 #define yymore() yymore_used_but_not_detected
1684 #define YY_MORE_ADJ 0
1685 #define YY_RESTORE_YY_MORE_OFFSET
1686 char *surf_parse_text;
1687 #line 1 "surf/surfxml.l"
1688 /* Validating XML processor for surfxml.dtd.
1689 * Generated 2005/04/15 16:26:24.
1691 * This program was generated with the FleXML XML processor generator,
1692 * (Id: flexml.pl,v 1.39 2005/02/13 18:12:19 legranda Exp).
1693 * Copyright © 1999 Kristoffer Rose. All rights reserved.
1695 * You can redistribute and/or modify this program provided the following
1696 * two conditions hold:
1698 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1699 * FleXML; without even the implied warranty of MERCHANTABILITY or
1700 * FITNESS FOR A PARTICULAR PURPOSE.
1702 * 2. The program distribution conditions do not in any way affect the
1703 * distribution conditions of the FleXML system used to generate this
1704 * file or any version of FleXML derived from that system.
1706 * Notice that these are explicit rights granted to you for files
1707 * generated by the FleXML system. For your rights in connection with
1708 * the FleXML system itself please consult the GNU General Public License.
1710 #line 25 "surf/surfxml.l"
1712 /* Version strings. */
1713 const char rcs_flexml_skeleton[] =
1714 "$" "Id: skel,v 1.24 2005/02/10 11:42:39 mquinson Exp $";
1715 const char rcs_flexml[] =
1716 "$" "Id: flexml.pl,v 1.39 2005/02/13 18:12:19 legranda Exp $";
1726 /* Generated definitions. */
1727 #define FLEXML_yylineno
1728 #define FLEXML_BUFFERSTACKSIZE 1000000
1730 /* XML processor api. */
1731 /* FleXML-provided data. */
1733 AT_network_link_bandwidth A_network_link_bandwidth;
1734 AT_cpu_name A_cpu_name;
1735 AT_network_link_state A_network_link_state;
1736 AT_argument_value A_argument_value;
1737 AT_cpu_availability_file A_cpu_availability_file;
1738 AT_process_host A_process_host;
1739 AT_route_impact_on_src A_route_impact_on_src;
1740 AT_route_src A_route_src;
1741 AT_network_link_latency_file A_network_link_latency_file;
1742 AT_cpu_max_outgoing_rate A_cpu_max_outgoing_rate;
1743 AT_route_impact_on_dst_with_other_send A_route_impact_on_dst_with_other_send;
1744 AT_cpu_interference_send_recv A_cpu_interference_send_recv;
1745 AT_cpu_availability A_cpu_availability;
1746 AT_route_impact_on_dst A_route_impact_on_dst;
1747 AT_cpu_interference_recv A_cpu_interference_recv;
1748 AT_route_impact_on_src_with_other_recv A_route_impact_on_src_with_other_recv;
1749 AT_network_link_name A_network_link_name;
1750 AT_route_element_name A_route_element_name;
1751 AT_cpu_power A_cpu_power;
1752 AT_include_file A_include_file;
1753 AT_process_function A_process_function;
1754 AT_route_dst A_route_dst;
1755 AT_cpu_state A_cpu_state;
1756 AT_network_link_latency A_network_link_latency;
1757 AT_network_link_state_file A_network_link_state_file;
1758 AT_cpu_interference_send A_cpu_interference_send;
1759 AT_cpu_state_file A_cpu_state_file;
1760 AT_network_link_bandwidth_file A_network_link_bandwidth_file;
1764 # define ENTER(state) debug_enter(state,#state)
1765 # define LEAVE debug_leave()
1766 # define SET(state) debug_set(state,#state)
1767 static void debug_enter(int, const char*);
1768 static void debug_leave(void);
1769 static void debug_set(int, const char*);
1771 # define ENTER(state) (yy_push_state(state))
1772 # define LEAVE (yy_pop_state())
1773 # define SET(state) BEGIN(state)
1776 /* Generic actions. */
1777 #define SKIP /*skip*/
1778 #define SUCCEED return 0
1780 #define FAIL return fail
1781 static int fail(const char*, ...);
1782 const char * parse_err_msg(void);
1784 /* Text buffer stack handling. */
1785 char bufferstack[FLEXML_BUFFERSTACKSIZE];
1786 char* limit = bufferstack + FLEXML_BUFFERSTACKSIZE;
1787 typedef struct BufferLast_s {
1788 struct BufferLast_s *old; char* saved; char new1[1];
1790 BufferLast* last = (BufferLast*)0;
1791 char* next = bufferstack;
1793 #define BUFFERSET(P) (P = next)
1794 #define BUFFERPUTC(C) (assert(next<limit), *(next++) = (C))
1795 #define BUFFERDONE (BUFFERPUTC('\0'))
1797 #define BUFFERLITERAL(C,P) bufferliteral(C,&(P),surf_parse_text)
1798 static void bufferliteral(char c, const char** pp, char* text)
1800 char *s = strchr(text,c), *e = strrchr(text,c);
1801 assert(s <= e); BUFFERSET(*pp);
1803 if (isspace(*s)) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
1804 else BUFFERPUTC(*s);
1809 #ifdef FLEXML_HasMixed
1810 static void pushbuffer(char* p)
1812 BufferLast* l = (BufferLast*)next;
1813 assert(next < limit);
1820 static char* popbuffer(void)
1822 BufferLast* l = last;
1823 assert(last != (BufferLast*)0);
1830 /* General internal entities are `unput' back onto the input stream... */
1831 #define ENTITYTEXT(T) \
1832 { char *s = (T), *e = s+strlen(s);\
1833 while (--e >= s) { unput(*e); }}
1834 /* Flex standard options. */
1835 #define YY_NO_INPUT 1
1836 /* Flex user-requested options. */
1837 /* XML character classes (currently restricted to ASCII). */
1838 /* "Common syntactic structures." */
1839 /* "Names and Tokens." */
1840 /* Miscellaneous. */
1841 /* Parser states (flex `exclusive start conditions'):
1843 * PROLOG the XML prolog of the document before <?xml...>
1844 * DOCTYPE the XML prolog of the document after <?xml...>
1845 * EPILOG after the root element
1846 * INCOMMENT inside an XML comment <!--....-->
1847 * INPI inside an XML PI <?...?>
1848 * VALUE1 inside a '...'-delimited literal
1849 * VALUE2 inside a "..."-delimited literal
1850 * CDATA inside a <![CDATA[...m4_userquote_end()> section.
1851 * ROOT_<tag> expect root element <tag>
1852 * AL_<tag> inside the attribute list for <tag>
1853 * IN_<tag> inside a <tag> with element contents (ready for end tag)
1854 * IMPOSSIBLE dummy to permit disabling rules; must be last
1866 #line 207 "surf/surfxml.l"
1868 const char* *statenames=NULL;
1869 #line 1870 "surf/surfxml.c"
1880 #define ROOT_platform_description 9
1881 #define AL_platform_description 10
1882 #define S_platform_description 11
1883 #define S_platform_description_1 12
1884 #define S_platform_description_2 13
1885 #define E_platform_description 14
1886 #define ROOT_include 15
1887 #define AL_include 16
1888 #define S_include 17
1889 #define S_include_1 18
1890 #define S_include_2 19
1891 #define E_include 20
1895 #define ROOT_network_link 24
1896 #define AL_network_link 25
1897 #define E_network_link 26
1898 #define ROOT_route 27
1901 #define S_route_1 30
1902 #define S_route_2 31
1904 #define ROOT_route_element 33
1905 #define AL_route_element 34
1906 #define E_route_element 35
1907 #define ROOT_process 36
1908 #define AL_process 37
1909 #define S_process 38
1910 #define S_process_1 39
1911 #define S_process_2 40
1912 #define E_process 41
1913 #define ROOT_argument 42
1914 #define AL_argument 43
1915 #define E_argument 44
1916 #define IMPOSSIBLE 45
1918 #ifndef YY_NO_UNISTD_H
1919 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1920 * down here because we want the user's section 1 to have been scanned first.
1921 * The user has a chance to override it with an option.
1926 #ifndef YY_EXTRA_TYPE
1927 #define YY_EXTRA_TYPE void *
1930 /* Macros after this point can all be overridden by user definitions in
1934 #ifndef YY_SKIP_YYWRAP
1936 extern "C" int surf_parse_wrap (void );
1938 extern int surf_parse_wrap (void );
1943 static void yy_flex_strncpy (char *,yyconst char *,int );
1946 #ifdef YY_NEED_STRLEN
1947 static int yy_flex_strlen (yyconst char * );
1953 static int yyinput (void );
1955 static int input (void );
1960 static int yy_start_stack_ptr = 0;
1961 static int yy_start_stack_depth = 0;
1962 static int *yy_start_stack = 0;
1964 static void yy_push_state (int new_state );
1966 static void yy_pop_state (void );
1968 /* Amount of stuff to slurp up with each read. */
1969 #ifndef YY_READ_BUF_SIZE
1970 #define YY_READ_BUF_SIZE 8192
1973 /* Copy whatever the last rule matched to the standard output. */
1975 /* This used to be an fputs(), but since the string might contain NUL's,
1976 * we now use fwrite().
1978 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
1981 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1982 * is returned in "result".
1985 #define YY_INPUT(buf,result,max_size) \
1986 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1990 for ( n = 0; n < max_size && \
1991 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
1992 buf[n] = (char) c; \
1994 buf[n++] = (char) c; \
1995 if ( c == EOF && ferror( surf_parse_in ) ) \
1996 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2002 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2004 if( errno != EINTR) \
2006 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2010 clearerr(surf_parse_in); \
2017 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2018 * we don't want an extra ';' after the "return" because that will cause
2019 * some compilers to complain about unreachable statements.
2022 #define yyterminate() return YY_NULL
2025 /* Number of entries by which start-condition stack grows. */
2026 #ifndef YY_START_STACK_INCR
2027 #define YY_START_STACK_INCR 25
2030 /* Report a fatal error. */
2031 #ifndef YY_FATAL_ERROR
2032 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2035 /* end tables serialization structures and prototypes */
2037 /* Default declaration of generated scanner - a define so the user can
2038 * easily add parameters.
2041 #define YY_DECL_IS_OURS 1
2043 extern int surf_parse_lex (void);
2045 #define YY_DECL int surf_parse_lex (void)
2046 #endif /* !YY_DECL */
2048 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2051 #ifndef YY_USER_ACTION
2052 #define YY_USER_ACTION
2055 /* Code executed at the end of each rule. */
2057 #define YY_BREAK break;
2060 #define YY_RULE_SETUP \
2063 /** The main scanner function which does all the work.
2067 register yy_state_type yy_current_state;
2068 register char *yy_cp, *yy_bp;
2069 register int yy_act;
2071 #line 211 "surf/surfxml.l"
2074 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
2077 if(!statenames) statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
2078 statenames[PROLOG] = NULL;
2079 statenames[DOCTYPE] = NULL;
2080 statenames[EPILOG] = NULL;
2081 statenames[INCOMMENT] = NULL;
2082 statenames[INPI] = NULL;
2083 statenames[VALUE1] = NULL;
2084 statenames[VALUE2] = NULL;
2085 statenames[CDATA] = NULL;
2086 statenames[ROOT_platform_description] = NULL;
2087 statenames[AL_platform_description] = NULL;
2088 statenames[S_platform_description] = "platform_description";
2089 statenames[S_platform_description_1] = "platform_description";
2090 statenames[S_platform_description_2] = "platform_description";
2091 statenames[E_platform_description] = "platform_description";
2092 statenames[ROOT_include] = NULL;
2093 statenames[AL_include] = NULL;
2094 statenames[S_include] = "include";
2095 statenames[S_include_1] = "include";
2096 statenames[S_include_2] = "include";
2097 statenames[E_include] = "include";
2098 statenames[ROOT_cpu] = NULL;
2099 statenames[AL_cpu] = NULL;
2100 statenames[E_cpu] = "cpu";
2101 statenames[ROOT_network_link] = NULL;
2102 statenames[AL_network_link] = NULL;
2103 statenames[E_network_link] = "network_link";
2104 statenames[ROOT_route] = NULL;
2105 statenames[AL_route] = NULL;
2106 statenames[S_route] = "route";
2107 statenames[S_route_1] = "route";
2108 statenames[S_route_2] = "route";
2109 statenames[E_route] = "route";
2110 statenames[ROOT_route_element] = NULL;
2111 statenames[AL_route_element] = NULL;
2112 statenames[E_route_element] = "route_element";
2113 statenames[ROOT_process] = NULL;
2114 statenames[AL_process] = NULL;
2115 statenames[S_process] = "process";
2116 statenames[S_process_1] = "process";
2117 statenames[S_process_2] = "process";
2118 statenames[E_process] = "process";
2119 statenames[ROOT_argument] = NULL;
2120 statenames[AL_argument] = NULL;
2121 statenames[E_argument] = "argument";
2123 /* COMMENTS and PIs: handled uniformly for efficiency. */
2125 #line 2126 "surf/surfxml.c"
2136 (yy_start) = 1; /* first start state */
2138 if ( ! surf_parse_in )
2139 surf_parse_in = stdin;
2141 if ( ! surf_parse_out )
2142 surf_parse_out = stdout;
2144 if ( ! YY_CURRENT_BUFFER ) {
2145 surf_parse_ensure_buffer_stack ();
2146 YY_CURRENT_BUFFER_LVALUE =
2147 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
2150 surf_parse__load_buffer_state( );
2153 while ( 1 ) /* loops until end-of-file is reached */
2155 yy_cp = (yy_c_buf_p);
2157 /* Support of surf_parse_text. */
2158 *yy_cp = (yy_hold_char);
2160 /* yy_bp points to the position in yy_ch_buf of the start of
2165 yy_current_state = (yy_start);
2169 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2170 if ( yy_accept[yy_current_state] )
2172 (yy_last_accepting_state) = yy_current_state;
2173 (yy_last_accepting_cpos) = yy_cp;
2175 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2177 yy_current_state = (int) yy_def[yy_current_state];
2178 if ( yy_current_state >= 1256 )
2179 yy_c = yy_meta[(unsigned int) yy_c];
2181 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2184 while ( yy_base[yy_current_state] != 3533 );
2187 yy_act = yy_accept[yy_current_state];
2189 { /* have to back up */
2190 yy_cp = (yy_last_accepting_cpos);
2191 yy_current_state = (yy_last_accepting_state);
2192 yy_act = yy_accept[yy_current_state];
2195 YY_DO_BEFORE_ACTION;
2197 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2200 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
2201 if ( surf_parse_text[yyl] == '\n' )
2203 surf_parse_lineno++;
2207 do_action: /* This label is used only to access EOF actions. */
2210 { /* beginning of action switch */
2211 case 0: /* must back up */
2212 /* undo the effects of YY_DO_BEFORE_ACTION */
2213 *yy_cp = (yy_hold_char);
2214 yy_cp = (yy_last_accepting_cpos);
2215 yy_current_state = (yy_last_accepting_state);
2216 goto yy_find_action;
2220 #line 265 "surf/surfxml.l"
2225 #line 266 "surf/surfxml.l"
2232 #line 269 "surf/surfxml.l"
2236 #line 271 "surf/surfxml.l"
2238 #line 272 "surf/surfxml.l"
2240 /* rule 6 can match eol */
2242 #line 272 "surf/surfxml.l"
2245 case YY_STATE_EOF(INCOMMENT):
2246 #line 273 "surf/surfxml.l"
2247 FAIL("EOF in comment.");
2253 #line 276 "surf/surfxml.l"
2257 #line 278 "surf/surfxml.l"
2259 /* rule 9 can match eol */
2261 #line 278 "surf/surfxml.l"
2264 case YY_STATE_EOF(INPI):
2265 #line 279 "surf/surfxml.l"
2266 FAIL("EOF in PI (processing instruction).");
2269 /* SPACES: skipped uniformly */
2271 /* rule 10 can match eol */
2273 #line 284 "surf/surfxml.l"
2276 /* PROLOG: determine root element and process it. */
2279 /* rule 11 can match eol */
2281 #line 289 "surf/surfxml.l"
2285 /* rule 12 can match eol */
2287 #line 290 "surf/surfxml.l"
2288 FAIL("Bad declaration %s.",surf_parse_text);
2293 /* rule 13 can match eol */
2295 #line 294 "surf/surfxml.l"
2299 /* rule 14 can match eol */
2301 #line 295 "surf/surfxml.l"
2302 SET(ROOT_route_element);
2305 /* rule 15 can match eol */
2307 #line 296 "surf/surfxml.l"
2311 /* rule 16 can match eol */
2313 #line 297 "surf/surfxml.l"
2317 /* rule 17 can match eol */
2319 #line 298 "surf/surfxml.l"
2323 /* rule 18 can match eol */
2325 #line 299 "surf/surfxml.l"
2326 SET(ROOT_platform_description);
2329 /* rule 19 can match eol */
2331 #line 300 "surf/surfxml.l"
2332 SET(ROOT_network_link);
2335 /* rule 20 can match eol */
2337 #line 301 "surf/surfxml.l"
2341 /* rule 21 can match eol */
2343 #line 302 "surf/surfxml.l"
2344 FAIL("Bad declaration %s.",surf_parse_text);
2348 #line 303 "surf/surfxml.l"
2349 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
2351 case YY_STATE_EOF(PROLOG):
2352 case YY_STATE_EOF(DOCTYPE):
2353 #line 304 "surf/surfxml.l"
2354 FAIL("EOF in prolog.");
2357 /* RULES DERIVED FROM DTD. */
2358 /* <!-- Small DTD for SURF based tools. --> */
2360 /* rule 23 can match eol */
2362 #line 311 "surf/surfxml.l"
2364 ENTER(AL_platform_description);
2370 #line 316 "surf/surfxml.l"
2372 LEAVE; STag_platform_description();pcdata = NULL; ENTER(S_platform_description);
2377 #line 319 "surf/surfxml.l"
2379 LEAVE; STag_platform_description(); pcdata = NULL; ETag_platform_description();
2381 case ROOT_platform_description: SET(EPILOG); break;
2387 #line 325 "surf/surfxml.l"
2388 FAIL("Unexpected character `%c' in attribute list of platform_description element.", surf_parse_text[0]);
2392 #line 326 "surf/surfxml.l"
2393 FAIL("Bad attribute `%s' in `platform_description' element start tag.",surf_parse_text);
2395 case YY_STATE_EOF(AL_platform_description):
2396 #line 327 "surf/surfxml.l"
2397 FAIL("EOF in attribute list of `platform_description' element.");
2402 /* rule 28 can match eol */
2404 #line 331 "surf/surfxml.l"
2407 ETag_platform_description();
2409 case ROOT_platform_description: SET(EPILOG); break;
2414 /* rule 29 can match eol */
2416 #line 338 "surf/surfxml.l"
2417 FAIL("Unexpected end-tag `%s': `</platform_description>' expected.",surf_parse_text);
2421 #line 339 "surf/surfxml.l"
2422 FAIL("Unexpected character `%c': `</platform_description>' expected.",surf_parse_text[0]);
2424 case YY_STATE_EOF(E_platform_description):
2425 case YY_STATE_EOF(S_platform_description_2):
2426 case YY_STATE_EOF(S_platform_description):
2427 #line 340 "surf/surfxml.l"
2428 FAIL("Premature EOF: `</platform_description>' expected.");
2432 /* rule 31 can match eol */
2434 #line 343 "surf/surfxml.l"
2436 A_include_file = NULL;
2442 /* rule 32 can match eol */
2444 #line 349 "surf/surfxml.l"
2445 ENTER(VALUE1); BUFFERSET(A_include_file);
2448 /* rule 33 can match eol */
2450 #line 350 "surf/surfxml.l"
2451 ENTER(VALUE2); BUFFERSET(A_include_file);
2455 #line 352 "surf/surfxml.l"
2457 if (!A_include_file) FAIL("Required attribute `file' not set for `include' element.");
2458 LEAVE; STag_include();pcdata = NULL; ENTER(S_include);
2463 #line 356 "surf/surfxml.l"
2465 if (!A_include_file) FAIL("Required attribute `file' not set for `include' element.");
2466 LEAVE; STag_include(); pcdata = NULL; ETag_include();
2468 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
2469 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
2470 case ROOT_include: SET(EPILOG); break;
2476 #line 365 "surf/surfxml.l"
2477 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
2481 #line 366 "surf/surfxml.l"
2482 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
2484 case YY_STATE_EOF(AL_include):
2485 #line 367 "surf/surfxml.l"
2486 FAIL("EOF in attribute list of `include' element.");
2491 /* rule 38 can match eol */
2493 #line 371 "surf/surfxml.l"
2498 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
2499 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
2500 case ROOT_include: SET(EPILOG); break;
2505 /* rule 39 can match eol */
2507 #line 380 "surf/surfxml.l"
2508 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
2512 #line 381 "surf/surfxml.l"
2513 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
2515 case YY_STATE_EOF(E_include):
2516 case YY_STATE_EOF(S_include):
2517 case YY_STATE_EOF(S_include_2):
2518 #line 382 "surf/surfxml.l"
2519 FAIL("Premature EOF: `</include>' expected.");
2523 /* rule 41 can match eol */
2525 #line 385 "surf/surfxml.l"
2529 A_cpu_availability = "1.0";
2530 A_cpu_availability_file = NULL;
2531 A_cpu_state = A_cpu_state_ON;
2532 A_cpu_state_file = NULL;
2533 A_cpu_interference_send = "1.0";
2534 A_cpu_interference_recv = "1.0";
2535 A_cpu_interference_send_recv = "1.0";
2536 A_cpu_max_outgoing_rate = "-1.0";
2542 /* rule 42 can match eol */
2544 #line 400 "surf/surfxml.l"
2545 ENTER(VALUE1); BUFFERSET(A_cpu_name);
2548 /* rule 43 can match eol */
2550 #line 401 "surf/surfxml.l"
2551 ENTER(VALUE2); BUFFERSET(A_cpu_name);
2554 /* rule 44 can match eol */
2556 #line 403 "surf/surfxml.l"
2557 ENTER(VALUE1); BUFFERSET(A_cpu_power);
2560 /* rule 45 can match eol */
2562 #line 404 "surf/surfxml.l"
2563 ENTER(VALUE2); BUFFERSET(A_cpu_power);
2566 /* rule 46 can match eol */
2568 #line 406 "surf/surfxml.l"
2569 ENTER(VALUE1); BUFFERSET(A_cpu_availability);
2572 /* rule 47 can match eol */
2574 #line 407 "surf/surfxml.l"
2575 ENTER(VALUE2); BUFFERSET(A_cpu_availability);
2578 /* rule 48 can match eol */
2580 #line 409 "surf/surfxml.l"
2581 ENTER(VALUE1); BUFFERSET(A_cpu_availability_file);
2584 /* rule 49 can match eol */
2586 #line 410 "surf/surfxml.l"
2587 ENTER(VALUE2); BUFFERSET(A_cpu_availability_file);
2590 /* rule 50 can match eol */
2591 #line 413 "surf/surfxml.l"
2593 /* rule 51 can match eol */
2595 #line 413 "surf/surfxml.l"
2596 A_cpu_state = A_cpu_state_ON;
2599 /* rule 52 can match eol */
2600 #line 415 "surf/surfxml.l"
2602 /* rule 53 can match eol */
2604 #line 415 "surf/surfxml.l"
2605 A_cpu_state = A_cpu_state_OFF;
2608 /* rule 54 can match eol */
2610 #line 417 "surf/surfxml.l"
2611 ENTER(VALUE1); BUFFERSET(A_cpu_state_file);
2614 /* rule 55 can match eol */
2616 #line 418 "surf/surfxml.l"
2617 ENTER(VALUE2); BUFFERSET(A_cpu_state_file);
2620 /* rule 56 can match eol */
2622 #line 420 "surf/surfxml.l"
2623 ENTER(VALUE1); BUFFERSET(A_cpu_interference_send);
2626 /* rule 57 can match eol */
2628 #line 421 "surf/surfxml.l"
2629 ENTER(VALUE2); BUFFERSET(A_cpu_interference_send);
2632 /* rule 58 can match eol */
2634 #line 423 "surf/surfxml.l"
2635 ENTER(VALUE1); BUFFERSET(A_cpu_interference_recv);
2638 /* rule 59 can match eol */
2640 #line 424 "surf/surfxml.l"
2641 ENTER(VALUE2); BUFFERSET(A_cpu_interference_recv);
2644 /* rule 60 can match eol */
2646 #line 426 "surf/surfxml.l"
2647 ENTER(VALUE1); BUFFERSET(A_cpu_interference_send_recv);
2650 /* rule 61 can match eol */
2652 #line 427 "surf/surfxml.l"
2653 ENTER(VALUE2); BUFFERSET(A_cpu_interference_send_recv);
2656 /* rule 62 can match eol */
2658 #line 429 "surf/surfxml.l"
2659 ENTER(VALUE1); BUFFERSET(A_cpu_max_outgoing_rate);
2662 /* rule 63 can match eol */
2664 #line 430 "surf/surfxml.l"
2665 ENTER(VALUE2); BUFFERSET(A_cpu_max_outgoing_rate);
2669 #line 432 "surf/surfxml.l"
2671 if (!A_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2672 if (!A_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2673 LEAVE; STag_cpu();pcdata = NULL; ENTER(E_cpu);
2678 #line 437 "surf/surfxml.l"
2680 if (!A_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2681 if (!A_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2682 LEAVE; STag_cpu(); pcdata = NULL; ETag_cpu();
2684 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
2685 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
2686 case ROOT_cpu: SET(EPILOG); break;
2692 #line 447 "surf/surfxml.l"
2693 FAIL("Unexpected character `%c' in attribute list of cpu element.", surf_parse_text[0]);
2697 #line 448 "surf/surfxml.l"
2698 FAIL("Bad attribute `%s' in `cpu' element start tag.",surf_parse_text);
2700 case YY_STATE_EOF(AL_cpu):
2701 #line 449 "surf/surfxml.l"
2702 FAIL("EOF in attribute list of `cpu' element.");
2707 /* rule 68 can match eol */
2709 #line 453 "surf/surfxml.l"
2714 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
2715 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
2716 case ROOT_cpu: SET(EPILOG); break;
2721 /* rule 69 can match eol */
2723 #line 462 "surf/surfxml.l"
2724 FAIL("Unexpected end-tag `%s': `</cpu>' expected.",surf_parse_text);
2728 #line 463 "surf/surfxml.l"
2729 FAIL("Unexpected character `%c': `</cpu>' expected.",surf_parse_text[0]);
2731 case YY_STATE_EOF(E_cpu):
2732 #line 464 "surf/surfxml.l"
2733 FAIL("Premature EOF: `</cpu>' expected.");
2737 /* rule 71 can match eol */
2739 #line 467 "surf/surfxml.l"
2741 A_network_link_name = NULL;
2742 A_network_link_bandwidth = NULL;
2743 A_network_link_bandwidth_file = NULL;
2744 A_network_link_latency = "0.0";
2745 A_network_link_latency_file = NULL;
2746 A_network_link_state = A_network_link_state_ON;
2747 A_network_link_state_file = NULL;
2748 ENTER(AL_network_link);
2753 /* rule 72 can match eol */
2755 #line 479 "surf/surfxml.l"
2756 ENTER(VALUE1); BUFFERSET(A_network_link_name);
2759 /* rule 73 can match eol */
2761 #line 480 "surf/surfxml.l"
2762 ENTER(VALUE2); BUFFERSET(A_network_link_name);
2765 /* rule 74 can match eol */
2767 #line 482 "surf/surfxml.l"
2768 ENTER(VALUE1); BUFFERSET(A_network_link_bandwidth);
2771 /* rule 75 can match eol */
2773 #line 483 "surf/surfxml.l"
2774 ENTER(VALUE2); BUFFERSET(A_network_link_bandwidth);
2777 /* rule 76 can match eol */
2779 #line 485 "surf/surfxml.l"
2780 ENTER(VALUE1); BUFFERSET(A_network_link_bandwidth_file);
2783 /* rule 77 can match eol */
2785 #line 486 "surf/surfxml.l"
2786 ENTER(VALUE2); BUFFERSET(A_network_link_bandwidth_file);
2789 /* rule 78 can match eol */
2791 #line 488 "surf/surfxml.l"
2792 ENTER(VALUE1); BUFFERSET(A_network_link_latency);
2795 /* rule 79 can match eol */
2797 #line 489 "surf/surfxml.l"
2798 ENTER(VALUE2); BUFFERSET(A_network_link_latency);
2801 /* rule 80 can match eol */
2803 #line 491 "surf/surfxml.l"
2804 ENTER(VALUE1); BUFFERSET(A_network_link_latency_file);
2807 /* rule 81 can match eol */
2809 #line 492 "surf/surfxml.l"
2810 ENTER(VALUE2); BUFFERSET(A_network_link_latency_file);
2813 /* rule 82 can match eol */
2814 #line 495 "surf/surfxml.l"
2816 /* rule 83 can match eol */
2818 #line 495 "surf/surfxml.l"
2819 A_network_link_state = A_network_link_state_ON;
2822 /* rule 84 can match eol */
2823 #line 497 "surf/surfxml.l"
2825 /* rule 85 can match eol */
2827 #line 497 "surf/surfxml.l"
2828 A_network_link_state = A_network_link_state_OFF;
2831 /* rule 86 can match eol */
2833 #line 499 "surf/surfxml.l"
2834 ENTER(VALUE1); BUFFERSET(A_network_link_state_file);
2837 /* rule 87 can match eol */
2839 #line 500 "surf/surfxml.l"
2840 ENTER(VALUE2); BUFFERSET(A_network_link_state_file);
2844 #line 502 "surf/surfxml.l"
2846 if (!A_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2847 if (!A_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2848 LEAVE; STag_network_link();pcdata = NULL; ENTER(E_network_link);
2853 #line 507 "surf/surfxml.l"
2855 if (!A_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2856 if (!A_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2857 LEAVE; STag_network_link(); pcdata = NULL; ETag_network_link();
2859 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
2860 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
2861 case ROOT_network_link: SET(EPILOG); break;
2867 #line 517 "surf/surfxml.l"
2868 FAIL("Unexpected character `%c' in attribute list of network_link element.", surf_parse_text[0]);
2872 #line 518 "surf/surfxml.l"
2873 FAIL("Bad attribute `%s' in `network_link' element start tag.",surf_parse_text);
2875 case YY_STATE_EOF(AL_network_link):
2876 #line 519 "surf/surfxml.l"
2877 FAIL("EOF in attribute list of `network_link' element.");
2882 /* rule 92 can match eol */
2884 #line 523 "surf/surfxml.l"
2887 ETag_network_link();
2889 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
2890 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
2891 case ROOT_network_link: SET(EPILOG); break;
2896 /* rule 93 can match eol */
2898 #line 532 "surf/surfxml.l"
2899 FAIL("Unexpected end-tag `%s': `</network_link>' expected.",surf_parse_text);
2903 #line 533 "surf/surfxml.l"
2904 FAIL("Unexpected character `%c': `</network_link>' expected.",surf_parse_text[0]);
2906 case YY_STATE_EOF(E_network_link):
2907 #line 534 "surf/surfxml.l"
2908 FAIL("Premature EOF: `</network_link>' expected.");
2912 /* rule 95 can match eol */
2914 #line 537 "surf/surfxml.l"
2918 A_route_impact_on_src = "0.0";
2919 A_route_impact_on_dst = "0.0";
2920 A_route_impact_on_src_with_other_recv = "0.0";
2921 A_route_impact_on_dst_with_other_send = "0.0";
2927 /* rule 96 can match eol */
2929 #line 548 "surf/surfxml.l"
2930 ENTER(VALUE1); BUFFERSET(A_route_src);
2933 /* rule 97 can match eol */
2935 #line 549 "surf/surfxml.l"
2936 ENTER(VALUE2); BUFFERSET(A_route_src);
2939 /* rule 98 can match eol */
2941 #line 551 "surf/surfxml.l"
2942 ENTER(VALUE1); BUFFERSET(A_route_dst);
2945 /* rule 99 can match eol */
2947 #line 552 "surf/surfxml.l"
2948 ENTER(VALUE2); BUFFERSET(A_route_dst);
2951 /* rule 100 can match eol */
2953 #line 554 "surf/surfxml.l"
2954 ENTER(VALUE1); BUFFERSET(A_route_impact_on_src);
2957 /* rule 101 can match eol */
2959 #line 555 "surf/surfxml.l"
2960 ENTER(VALUE2); BUFFERSET(A_route_impact_on_src);
2963 /* rule 102 can match eol */
2965 #line 557 "surf/surfxml.l"
2966 ENTER(VALUE1); BUFFERSET(A_route_impact_on_dst);
2969 /* rule 103 can match eol */
2971 #line 558 "surf/surfxml.l"
2972 ENTER(VALUE2); BUFFERSET(A_route_impact_on_dst);
2975 /* rule 104 can match eol */
2977 #line 560 "surf/surfxml.l"
2978 ENTER(VALUE1); BUFFERSET(A_route_impact_on_src_with_other_recv);
2981 /* rule 105 can match eol */
2983 #line 561 "surf/surfxml.l"
2984 ENTER(VALUE2); BUFFERSET(A_route_impact_on_src_with_other_recv);
2987 /* rule 106 can match eol */
2989 #line 563 "surf/surfxml.l"
2990 ENTER(VALUE1); BUFFERSET(A_route_impact_on_dst_with_other_send);
2993 /* rule 107 can match eol */
2995 #line 564 "surf/surfxml.l"
2996 ENTER(VALUE2); BUFFERSET(A_route_impact_on_dst_with_other_send);
3000 #line 566 "surf/surfxml.l"
3002 if (!A_route_src) FAIL("Required attribute `src' not set for `route' element.");
3003 if (!A_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3004 LEAVE; STag_route();pcdata = NULL; ENTER(S_route);
3009 #line 571 "surf/surfxml.l"
3011 if (!A_route_src) FAIL("Required attribute `src' not set for `route' element.");
3012 if (!A_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3013 LEAVE; STag_route(); pcdata = NULL; ETag_route();
3015 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
3016 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
3017 case ROOT_route: SET(EPILOG); break;
3023 #line 581 "surf/surfxml.l"
3024 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
3028 #line 582 "surf/surfxml.l"
3029 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
3031 case YY_STATE_EOF(AL_route):
3032 #line 583 "surf/surfxml.l"
3033 FAIL("EOF in attribute list of `route' element.");
3038 /* rule 112 can match eol */
3040 #line 587 "surf/surfxml.l"
3045 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
3046 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
3047 case ROOT_route: SET(EPILOG); break;
3052 /* rule 113 can match eol */
3054 #line 596 "surf/surfxml.l"
3055 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
3059 #line 597 "surf/surfxml.l"
3060 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
3062 case YY_STATE_EOF(S_route):
3063 case YY_STATE_EOF(S_route_2):
3064 case YY_STATE_EOF(E_route):
3065 #line 598 "surf/surfxml.l"
3066 FAIL("Premature EOF: `</route>' expected.");
3070 /* rule 115 can match eol */
3072 #line 601 "surf/surfxml.l"
3074 A_route_element_name = NULL;
3075 ENTER(AL_route_element);
3080 /* rule 116 can match eol */
3082 #line 607 "surf/surfxml.l"
3083 ENTER(VALUE1); BUFFERSET(A_route_element_name);
3086 /* rule 117 can match eol */
3088 #line 608 "surf/surfxml.l"
3089 ENTER(VALUE2); BUFFERSET(A_route_element_name);
3093 #line 610 "surf/surfxml.l"
3095 if (!A_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3096 LEAVE; STag_route_element();pcdata = NULL; ENTER(E_route_element);
3101 #line 614 "surf/surfxml.l"
3103 if (!A_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3104 LEAVE; STag_route_element(); pcdata = NULL; ETag_route_element();
3106 case S_route_1: case S_route: case S_route_2: SET(S_route_2); break;
3107 case ROOT_route_element: SET(EPILOG); break;
3113 #line 622 "surf/surfxml.l"
3114 FAIL("Unexpected character `%c' in attribute list of route_element element.", surf_parse_text[0]);
3118 #line 623 "surf/surfxml.l"
3119 FAIL("Bad attribute `%s' in `route_element' element start tag.",surf_parse_text);
3121 case YY_STATE_EOF(AL_route_element):
3122 #line 624 "surf/surfxml.l"
3123 FAIL("EOF in attribute list of `route_element' element.");
3128 /* rule 122 can match eol */
3130 #line 628 "surf/surfxml.l"
3133 ETag_route_element();
3135 case S_route_1: case S_route: case S_route_2: SET(S_route_2); break;
3136 case ROOT_route_element: SET(EPILOG); break;
3141 /* rule 123 can match eol */
3143 #line 636 "surf/surfxml.l"
3144 FAIL("Unexpected end-tag `%s': `</route_element>' expected.",surf_parse_text);
3148 #line 637 "surf/surfxml.l"
3149 FAIL("Unexpected character `%c': `</route_element>' expected.",surf_parse_text[0]);
3151 case YY_STATE_EOF(E_route_element):
3152 #line 638 "surf/surfxml.l"
3153 FAIL("Premature EOF: `</route_element>' expected.");
3157 /* rule 125 can match eol */
3159 #line 641 "surf/surfxml.l"
3161 A_process_host = NULL;
3162 A_process_function = NULL;
3168 /* rule 126 can match eol */
3170 #line 648 "surf/surfxml.l"
3171 ENTER(VALUE1); BUFFERSET(A_process_host);
3174 /* rule 127 can match eol */
3176 #line 649 "surf/surfxml.l"
3177 ENTER(VALUE2); BUFFERSET(A_process_host);
3180 /* rule 128 can match eol */
3182 #line 651 "surf/surfxml.l"
3183 ENTER(VALUE1); BUFFERSET(A_process_function);
3186 /* rule 129 can match eol */
3188 #line 652 "surf/surfxml.l"
3189 ENTER(VALUE2); BUFFERSET(A_process_function);
3193 #line 654 "surf/surfxml.l"
3195 if (!A_process_host) FAIL("Required attribute `host' not set for `process' element.");
3196 if (!A_process_function) FAIL("Required attribute `function' not set for `process' element.");
3197 LEAVE; STag_process();pcdata = NULL; ENTER(S_process);
3202 #line 659 "surf/surfxml.l"
3204 if (!A_process_host) FAIL("Required attribute `host' not set for `process' element.");
3205 if (!A_process_function) FAIL("Required attribute `function' not set for `process' element.");
3206 LEAVE; STag_process(); pcdata = NULL; ETag_process();
3208 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
3209 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
3210 case ROOT_process: SET(EPILOG); break;
3216 #line 669 "surf/surfxml.l"
3217 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
3221 #line 670 "surf/surfxml.l"
3222 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
3224 case YY_STATE_EOF(AL_process):
3225 #line 671 "surf/surfxml.l"
3226 FAIL("EOF in attribute list of `process' element.");
3231 /* rule 134 can match eol */
3233 #line 675 "surf/surfxml.l"
3238 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
3239 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
3240 case ROOT_process: SET(EPILOG); break;
3245 /* rule 135 can match eol */
3247 #line 684 "surf/surfxml.l"
3248 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
3252 #line 685 "surf/surfxml.l"
3253 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
3255 case YY_STATE_EOF(S_process):
3256 case YY_STATE_EOF(E_process):
3257 case YY_STATE_EOF(S_process_2):
3258 #line 686 "surf/surfxml.l"
3259 FAIL("Premature EOF: `</process>' expected.");
3263 /* rule 137 can match eol */
3265 #line 689 "surf/surfxml.l"
3267 A_argument_value = NULL;
3273 /* rule 138 can match eol */
3275 #line 695 "surf/surfxml.l"
3276 ENTER(VALUE1); BUFFERSET(A_argument_value);
3279 /* rule 139 can match eol */
3281 #line 696 "surf/surfxml.l"
3282 ENTER(VALUE2); BUFFERSET(A_argument_value);
3286 #line 698 "surf/surfxml.l"
3288 if (!A_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3289 LEAVE; STag_argument();pcdata = NULL; ENTER(E_argument);
3294 #line 702 "surf/surfxml.l"
3296 if (!A_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3297 LEAVE; STag_argument(); pcdata = NULL; ETag_argument();
3299 case ROOT_argument: SET(EPILOG); break;
3300 case S_process_1: case S_process: case S_process_2: SET(S_process_2); break;
3306 #line 710 "surf/surfxml.l"
3307 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
3311 #line 711 "surf/surfxml.l"
3312 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
3314 case YY_STATE_EOF(AL_argument):
3315 #line 712 "surf/surfxml.l"
3316 FAIL("EOF in attribute list of `argument' element.");
3321 /* rule 144 can match eol */
3323 #line 716 "surf/surfxml.l"
3328 case ROOT_argument: SET(EPILOG); break;
3329 case S_process_1: case S_process: case S_process_2: SET(S_process_2); break;
3334 /* rule 145 can match eol */
3336 #line 724 "surf/surfxml.l"
3337 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
3341 #line 725 "surf/surfxml.l"
3342 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
3344 case YY_STATE_EOF(E_argument):
3345 #line 726 "surf/surfxml.l"
3346 FAIL("Premature EOF: `</argument>' expected.");
3349 /* EPILOG: after the root element. */
3353 #line 732 "surf/surfxml.l"
3354 {SET(PROLOG); yyless(0); return -1;}
3356 case YY_STATE_EOF(EPILOG):
3357 #line 733 "surf/surfxml.l"
3361 /* CHARACTER DATA. */
3363 /* Non-defined standard entities... */
3366 #line 740 "surf/surfxml.l"
3371 #line 741 "surf/surfxml.l"
3376 #line 742 "surf/surfxml.l"
3381 #line 743 "surf/surfxml.l"
3386 #line 744 "surf/surfxml.l"
3389 /* Character entities. */
3392 #line 747 "surf/surfxml.l"
3393 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
3397 #line 748 "surf/surfxml.l"
3398 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
3403 /* rule 155 can match eol */
3404 #line 753 "surf/surfxml.l"
3406 /* rule 156 can match eol */
3407 #line 754 "surf/surfxml.l"
3409 /* rule 157 can match eol */
3410 #line 755 "surf/surfxml.l"
3412 /* rule 158 can match eol */
3414 #line 755 "surf/surfxml.l"
3421 #line 759 "surf/surfxml.l"
3426 #line 760 "surf/surfxml.l"
3427 FAIL("Unexpected `]""]>' in character data.");
3433 #line 764 "surf/surfxml.l"
3436 case YY_STATE_EOF(VALUE1):
3437 #line 765 "surf/surfxml.l"
3438 FAIL("EOF in literal (\"'\" expected).");
3444 #line 769 "surf/surfxml.l"
3447 case YY_STATE_EOF(VALUE2):
3448 #line 770 "surf/surfxml.l"
3449 FAIL("EOF in literal (`\"' expected).");
3454 /* rule 163 can match eol */
3456 #line 774 "surf/surfxml.l"
3457 BUFFERPUTC(surf_parse_text[0]);
3461 #line 775 "surf/surfxml.l"
3462 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
3468 #line 779 "surf/surfxml.l"
3471 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
3474 #line 781 "surf/surfxml.l"
3475 BUFFERPUTC(surf_parse_text[0]);
3477 case YY_STATE_EOF(CDATA):
3478 #line 782 "surf/surfxml.l"
3479 FAIL("EOF in CDATA section.");
3482 /* Impossible rules to avoid warnings from flex(1). */
3483 /* Ideally, this should be replaced by code in flexml.pl that
3484 generates just the states not covered by other rules. */
3487 /* rule 167 can match eol */
3489 #line 789 "surf/surfxml.l"
3490 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
3495 #line 792 "surf/surfxml.l"
3498 #line 3499 "surf/surfxml.c"
3499 case YY_STATE_EOF(INITIAL):
3500 case YY_STATE_EOF(ROOT_platform_description):
3501 case YY_STATE_EOF(S_platform_description_1):
3502 case YY_STATE_EOF(ROOT_include):
3503 case YY_STATE_EOF(S_include_1):
3504 case YY_STATE_EOF(ROOT_cpu):
3505 case YY_STATE_EOF(ROOT_network_link):
3506 case YY_STATE_EOF(ROOT_route):
3507 case YY_STATE_EOF(S_route_1):
3508 case YY_STATE_EOF(ROOT_route_element):
3509 case YY_STATE_EOF(ROOT_process):
3510 case YY_STATE_EOF(S_process_1):
3511 case YY_STATE_EOF(ROOT_argument):
3512 case YY_STATE_EOF(IMPOSSIBLE):
3515 case YY_END_OF_BUFFER:
3517 /* Amount of text matched not including the EOB char. */
3518 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3520 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3521 *yy_cp = (yy_hold_char);
3522 YY_RESTORE_YY_MORE_OFFSET
3524 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3526 /* We're scanning a new file or input source. It's
3527 * possible that this happened because the user
3528 * just pointed surf_parse_in at a new source and called
3529 * surf_parse_lex(). If so, then we have to assure
3530 * consistency between YY_CURRENT_BUFFER and our
3531 * globals. Here is the right place to do so, because
3532 * this is the first action (other than possibly a
3533 * back-up) that will match for the new input source.
3535 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3536 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
3537 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3540 /* Note that here we test for yy_c_buf_p "<=" to the position
3541 * of the first EOB in the buffer, since yy_c_buf_p will
3542 * already have been incremented past the NUL character
3543 * (since all states make transitions on EOB to the
3544 * end-of-buffer state). Contrast this with the test
3547 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3548 { /* This was really a NUL. */
3549 yy_state_type yy_next_state;
3551 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3553 yy_current_state = yy_get_previous_state( );
3555 /* Okay, we're now positioned to make the NUL
3556 * transition. We couldn't have
3557 * yy_get_previous_state() go ahead and do it
3558 * for us because it doesn't know how to deal
3559 * with the possibility of jamming (and we don't
3560 * want to build jamming into it because then it
3561 * will run more slowly).
3564 yy_next_state = yy_try_NUL_trans( yy_current_state );
3566 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3568 if ( yy_next_state )
3570 /* Consume the NUL. */
3571 yy_cp = ++(yy_c_buf_p);
3572 yy_current_state = yy_next_state;
3578 yy_cp = (yy_c_buf_p);
3579 goto yy_find_action;
3583 else switch ( yy_get_next_buffer( ) )
3585 case EOB_ACT_END_OF_FILE:
3587 (yy_did_buffer_switch_on_eof) = 0;
3589 if ( surf_parse_wrap( ) )
3591 /* Note: because we've taken care in
3592 * yy_get_next_buffer() to have set up
3593 * surf_parse_text, we can now set up
3594 * yy_c_buf_p so that if some total
3595 * hoser (like flex itself) wants to
3596 * call the scanner after we return the
3597 * YY_NULL, it'll still work - another
3598 * YY_NULL will get returned.
3600 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3602 yy_act = YY_STATE_EOF(YY_START);
3608 if ( ! (yy_did_buffer_switch_on_eof) )
3614 case EOB_ACT_CONTINUE_SCAN:
3616 (yytext_ptr) + yy_amount_of_matched_text;
3618 yy_current_state = yy_get_previous_state( );
3620 yy_cp = (yy_c_buf_p);
3621 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3624 case EOB_ACT_LAST_MATCH:
3626 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3628 yy_current_state = yy_get_previous_state( );
3630 yy_cp = (yy_c_buf_p);
3631 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3632 goto yy_find_action;
3639 "fatal flex scanner internal error--no action found" );
3640 } /* end of action switch */
3641 } /* end of scanning one token */
3642 } /* end of surf_parse_lex */
3644 /* yy_get_next_buffer - try to read in a new buffer
3646 * Returns a code representing an action:
3647 * EOB_ACT_LAST_MATCH -
3648 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3649 * EOB_ACT_END_OF_FILE - end of file
3651 static int yy_get_next_buffer (void)
3653 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3654 register char *source = (yytext_ptr);
3655 register int number_to_move, i;
3658 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3660 "fatal flex scanner internal error--end of buffer missed" );
3662 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3663 { /* Don't try to fill the buffer, so this is an EOF. */
3664 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3666 /* We matched a single character, the EOB, so
3667 * treat this as a final EOF.
3669 return EOB_ACT_END_OF_FILE;
3674 /* We matched some text prior to the EOB, first
3677 return EOB_ACT_LAST_MATCH;
3681 /* Try to read more data. */
3683 /* First move last chars to start of buffer. */
3684 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3686 for ( i = 0; i < number_to_move; ++i )
3687 *(dest++) = *(source++);
3689 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3690 /* don't do the read, it's not guaranteed to return an EOF,
3693 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3697 size_t num_to_read =
3698 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3700 while ( num_to_read <= 0 )
3701 { /* Not enough room in the buffer - grow it. */
3703 /* just a shorter name for the current buffer */
3704 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3706 int yy_c_buf_p_offset =
3707 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3709 if ( b->yy_is_our_buffer )
3711 int new_size = b->yy_buf_size * 2;
3713 if ( new_size <= 0 )
3714 b->yy_buf_size += b->yy_buf_size / 8;
3716 b->yy_buf_size *= 2;
3718 b->yy_ch_buf = (char *)
3719 /* Include room in for 2 EOB chars. */
3720 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
3723 /* Can't grow it, we don't own it. */
3726 if ( ! b->yy_ch_buf )
3728 "fatal error - scanner input buffer overflow" );
3730 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3732 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3737 if ( num_to_read > YY_READ_BUF_SIZE )
3738 num_to_read = YY_READ_BUF_SIZE;
3740 /* Read in more data. */
3741 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3742 (yy_n_chars), num_to_read );
3744 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3747 if ( (yy_n_chars) == 0 )
3749 if ( number_to_move == YY_MORE_ADJ )
3751 ret_val = EOB_ACT_END_OF_FILE;
3752 surf_parse_restart(surf_parse_in );
3757 ret_val = EOB_ACT_LAST_MATCH;
3758 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3759 YY_BUFFER_EOF_PENDING;
3764 ret_val = EOB_ACT_CONTINUE_SCAN;
3766 (yy_n_chars) += number_to_move;
3767 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3768 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3770 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3775 /* yy_get_previous_state - get the state just before the EOB char was reached */
3777 static yy_state_type yy_get_previous_state (void)
3779 register yy_state_type yy_current_state;
3780 register char *yy_cp;
3782 yy_current_state = (yy_start);
3784 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3786 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3787 if ( yy_accept[yy_current_state] )
3789 (yy_last_accepting_state) = yy_current_state;
3790 (yy_last_accepting_cpos) = yy_cp;
3792 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3794 yy_current_state = (int) yy_def[yy_current_state];
3795 if ( yy_current_state >= 1256 )
3796 yy_c = yy_meta[(unsigned int) yy_c];
3798 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3801 return yy_current_state;
3804 /* yy_try_NUL_trans - try to make a transition on the NUL character
3807 * next_state = yy_try_NUL_trans( current_state );
3809 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3811 register int yy_is_jam;
3812 register char *yy_cp = (yy_c_buf_p);
3814 register YY_CHAR yy_c = 1;
3815 if ( yy_accept[yy_current_state] )
3817 (yy_last_accepting_state) = yy_current_state;
3818 (yy_last_accepting_cpos) = yy_cp;
3820 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3822 yy_current_state = (int) yy_def[yy_current_state];
3823 if ( yy_current_state >= 1256 )
3824 yy_c = yy_meta[(unsigned int) yy_c];
3826 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3827 yy_is_jam = (yy_current_state == 1255);
3829 return yy_is_jam ? 0 : yy_current_state;
3834 static int yyinput (void)
3836 static int input (void)
3842 *(yy_c_buf_p) = (yy_hold_char);
3844 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3846 /* yy_c_buf_p now points to the character we want to return.
3847 * If this occurs *before* the EOB characters, then it's a
3848 * valid NUL; if not, then we've hit the end of the buffer.
3850 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3851 /* This was really a NUL. */
3852 *(yy_c_buf_p) = '\0';
3855 { /* need more input */
3856 int offset = (yy_c_buf_p) - (yytext_ptr);
3859 switch ( yy_get_next_buffer( ) )
3861 case EOB_ACT_LAST_MATCH:
3862 /* This happens because yy_g_n_b()
3863 * sees that we've accumulated a
3864 * token and flags that we need to
3865 * try matching the token before
3866 * proceeding. But for input(),
3867 * there's no matching to consider.
3868 * So convert the EOB_ACT_LAST_MATCH
3869 * to EOB_ACT_END_OF_FILE.
3872 /* Reset buffer status. */
3873 surf_parse_restart(surf_parse_in );
3877 case EOB_ACT_END_OF_FILE:
3879 if ( surf_parse_wrap( ) )
3882 if ( ! (yy_did_buffer_switch_on_eof) )
3891 case EOB_ACT_CONTINUE_SCAN:
3892 (yy_c_buf_p) = (yytext_ptr) + offset;
3898 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3899 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
3900 (yy_hold_char) = *++(yy_c_buf_p);
3904 surf_parse_lineno++;
3909 #endif /* ifndef YY_NO_INPUT */
3911 /** Immediately switch to a different input stream.
3912 * @param input_file A readable stream.
3914 * @note This function does not reset the start condition to @c INITIAL .
3916 void surf_parse_restart (FILE * input_file )
3919 if ( ! YY_CURRENT_BUFFER ){
3920 surf_parse_ensure_buffer_stack ();
3921 YY_CURRENT_BUFFER_LVALUE =
3922 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3925 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
3926 surf_parse__load_buffer_state( );
3929 /** Switch to a different input buffer.
3930 * @param new_buffer The new input buffer.
3933 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
3936 /* TODO. We should be able to replace this entire function body
3938 * surf_parse_pop_buffer_state();
3939 * surf_parse_push_buffer_state(new_buffer);
3941 surf_parse_ensure_buffer_stack ();
3942 if ( YY_CURRENT_BUFFER == new_buffer )
3945 if ( YY_CURRENT_BUFFER )
3947 /* Flush out information for old buffer. */
3948 *(yy_c_buf_p) = (yy_hold_char);
3949 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3950 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3953 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3954 surf_parse__load_buffer_state( );
3956 /* We don't actually know whether we did this switch during
3957 * EOF (surf_parse_wrap()) processing, but the only time this flag
3958 * is looked at is after surf_parse_wrap() is called, so it's safe
3959 * to go ahead and always set it.
3961 (yy_did_buffer_switch_on_eof) = 1;
3964 static void surf_parse__load_buffer_state (void)
3966 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3967 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3968 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3969 (yy_hold_char) = *(yy_c_buf_p);
3972 /** Allocate and initialize an input buffer state.
3973 * @param file A readable stream.
3974 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3976 * @return the allocated buffer state.
3978 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
3982 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
3984 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
3986 b->yy_buf_size = size;
3988 /* yy_ch_buf has to be 2 characters longer than the size given because
3989 * we need to put in 2 end-of-buffer characters.
3991 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
3992 if ( ! b->yy_ch_buf )
3993 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
3995 b->yy_is_our_buffer = 1;
3997 surf_parse__init_buffer(b,file );
4002 /** Destroy the buffer.
4003 * @param b a buffer created with surf_parse__create_buffer()
4006 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
4012 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4013 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4015 if ( b->yy_is_our_buffer )
4016 surf_parse_free((void *) b->yy_ch_buf );
4018 surf_parse_free((void *) b );
4022 extern int isatty (int );
4023 #endif /* __cplusplus */
4025 /* Initializes or reinitializes a buffer.
4026 * This function is sometimes called more than once on the same buffer,
4027 * such as during a surf_parse_restart() or at EOF.
4029 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
4034 surf_parse__flush_buffer(b );
4036 b->yy_input_file = file;
4037 b->yy_fill_buffer = 1;
4039 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
4040 * called from surf_parse_restart() or through yy_get_next_buffer.
4041 * In that case, we don't want to reset the lineno or column.
4043 if (b != YY_CURRENT_BUFFER){
4044 b->yy_bs_lineno = 1;
4045 b->yy_bs_column = 0;
4048 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4053 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4054 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4057 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
4064 /* We always need two end-of-buffer characters. The first causes
4065 * a transition to the end-of-buffer state. The second causes
4066 * a jam in that state.
4068 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4069 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4071 b->yy_buf_pos = &b->yy_ch_buf[0];
4074 b->yy_buffer_status = YY_BUFFER_NEW;
4076 if ( b == YY_CURRENT_BUFFER )
4077 surf_parse__load_buffer_state( );
4080 /** Pushes the new state onto the stack. The new state becomes
4081 * the current state. This function will allocate the stack
4083 * @param new_buffer The new state.
4086 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
4088 if (new_buffer == NULL)
4091 surf_parse_ensure_buffer_stack();
4093 /* This block is copied from surf_parse__switch_to_buffer. */
4094 if ( YY_CURRENT_BUFFER )
4096 /* Flush out information for old buffer. */
4097 *(yy_c_buf_p) = (yy_hold_char);
4098 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4099 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4102 /* Only push if top exists. Otherwise, replace top. */
4103 if (YY_CURRENT_BUFFER)
4104 (yy_buffer_stack_top)++;
4105 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4107 /* copied from surf_parse__switch_to_buffer. */
4108 surf_parse__load_buffer_state( );
4109 (yy_did_buffer_switch_on_eof) = 1;
4112 /** Removes and deletes the top of the stack, if present.
4113 * The next element becomes the new top.
4116 void surf_parse_pop_buffer_state (void)
4118 if (!YY_CURRENT_BUFFER)
4121 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4122 YY_CURRENT_BUFFER_LVALUE = NULL;
4123 if ((yy_buffer_stack_top) > 0)
4124 --(yy_buffer_stack_top);
4126 if (YY_CURRENT_BUFFER) {
4127 surf_parse__load_buffer_state( );
4128 (yy_did_buffer_switch_on_eof) = 1;
4132 /* Allocates the stack if it does not exist.
4133 * Guarantees space for at least one push.
4135 static void surf_parse_ensure_buffer_stack (void)
4139 if (!(yy_buffer_stack)) {
4141 /* First allocation is just for 2 elements, since we don't know if this
4142 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4143 * immediate realloc on the next call.
4146 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
4147 (num_to_alloc * sizeof(struct yy_buffer_state*)
4150 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4152 (yy_buffer_stack_max) = num_to_alloc;
4153 (yy_buffer_stack_top) = 0;
4157 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4159 /* Increase the buffer to prepare for a possible push. */
4160 int grow_size = 8 /* arbitrary grow size */;
4162 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4163 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
4165 num_to_alloc * sizeof(struct yy_buffer_state*)
4168 /* zero only the new slots.*/
4169 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4170 (yy_buffer_stack_max) = num_to_alloc;
4174 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4175 * @param base the character buffer
4176 * @param size the size in bytes of the character buffer
4178 * @return the newly allocated buffer state object.
4180 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
4185 base[size-2] != YY_END_OF_BUFFER_CHAR ||
4186 base[size-1] != YY_END_OF_BUFFER_CHAR )
4187 /* They forgot to leave room for the EOB's. */
4190 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4192 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
4194 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4195 b->yy_buf_pos = b->yy_ch_buf = base;
4196 b->yy_is_our_buffer = 0;
4197 b->yy_input_file = 0;
4198 b->yy_n_chars = b->yy_buf_size;
4199 b->yy_is_interactive = 0;
4201 b->yy_fill_buffer = 0;
4202 b->yy_buffer_status = YY_BUFFER_NEW;
4204 surf_parse__switch_to_buffer(b );
4209 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
4210 * scan from a @e copy of @a str.
4211 * @param str a NUL-terminated string to scan
4213 * @return the newly allocated buffer state object.
4214 * @note If you want to scan bytes that may contain NUL values, then use
4215 * surf_parse__scan_bytes() instead.
4217 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yy_str )
4220 return surf_parse__scan_bytes(yy_str,strlen(yy_str) );
4223 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
4224 * scan from a @e copy of @a bytes.
4225 * @param bytes the byte buffer to scan
4226 * @param len the number of bytes in the buffer pointed to by @a bytes.
4228 * @return the newly allocated buffer state object.
4230 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * bytes, int len )
4237 /* Get memory for full buffer, including space for trailing EOB's. */
4239 buf = (char *) surf_parse_alloc(n );
4241 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
4243 for ( i = 0; i < len; ++i )
4246 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
4248 b = surf_parse__scan_buffer(buf,n );
4250 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
4252 /* It's okay to grow etc. this buffer, and we should throw it
4253 * away when we're done.
4255 b->yy_is_our_buffer = 1;
4260 static void yy_push_state (int new_state )
4262 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4266 (yy_start_stack_depth) += YY_START_STACK_INCR;
4267 new_size = (yy_start_stack_depth) * sizeof( int );
4269 if ( ! (yy_start_stack) )
4270 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
4273 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
4275 if ( ! (yy_start_stack) )
4277 "out of memory expanding start-condition stack" );
4280 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4285 static void yy_pop_state (void)
4287 if ( --(yy_start_stack_ptr) < 0 )
4288 YY_FATAL_ERROR( "start-condition stack underflow" );
4290 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4293 #ifndef YY_EXIT_FAILURE
4294 #define YY_EXIT_FAILURE 2
4297 static void yy_fatal_error (yyconst char* msg )
4299 (void) fprintf( stderr, "%s\n", msg );
4300 exit( YY_EXIT_FAILURE );
4303 /* Redefine yyless() so it works in section 3 code. */
4309 /* Undo effects of setting up surf_parse_text. */ \
4310 int yyless_macro_arg = (n); \
4311 YY_LESS_LINENO(yyless_macro_arg);\
4312 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
4313 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
4314 (yy_hold_char) = *(yy_c_buf_p); \
4315 *(yy_c_buf_p) = '\0'; \
4316 surf_parse_leng = yyless_macro_arg; \
4320 /* Accessor methods (get/set functions) to struct members. */
4322 /** Get the current line number.
4325 int surf_parse_get_lineno (void)
4328 return surf_parse_lineno;
4331 /** Get the input stream.
4334 FILE *surf_parse_get_in (void)
4336 return surf_parse_in;
4339 /** Get the output stream.
4342 FILE *surf_parse_get_out (void)
4344 return surf_parse_out;
4347 /** Get the length of the current token.
4350 int surf_parse_get_leng (void)
4352 return surf_parse_leng;
4355 /** Get the current token.
4359 char *surf_parse_get_text (void)
4361 return surf_parse_text;
4364 /** Set the current line number.
4365 * @param line_number
4368 void surf_parse_set_lineno (int line_number )
4371 surf_parse_lineno = line_number;
4374 /** Set the input stream. This does not discard the current
4376 * @param in_str A readable stream.
4378 * @see surf_parse__switch_to_buffer
4380 void surf_parse_set_in (FILE * in_str )
4382 surf_parse_in = in_str ;
4385 void surf_parse_set_out (FILE * out_str )
4387 surf_parse_out = out_str ;
4390 int surf_parse_get_debug (void)
4392 return surf_parse__flex_debug;
4395 void surf_parse_set_debug (int bdebug )
4397 surf_parse__flex_debug = bdebug ;
4400 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
4401 int surf_parse_lex_destroy (void)
4404 /* Pop the buffer stack, destroying each element. */
4405 while(YY_CURRENT_BUFFER){
4406 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4407 YY_CURRENT_BUFFER_LVALUE = NULL;
4408 surf_parse_pop_buffer_state();
4411 /* Destroy the stack itself. */
4412 surf_parse_free((yy_buffer_stack) );
4413 (yy_buffer_stack) = NULL;
4415 /* Destroy the start condition stack. */
4416 surf_parse_free((yy_start_stack) );
4417 (yy_start_stack) = NULL;
4423 * Internal utility routines.
4427 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4430 for ( i = 0; i < n; ++i )
4435 #ifdef YY_NEED_STRLEN
4436 static int yy_flex_strlen (yyconst char * s )
4439 for ( n = 0; s[n]; ++n )
4446 void *surf_parse_alloc (yy_size_t size )
4448 return (void *) malloc( size );
4451 void *surf_parse_realloc (void * ptr, yy_size_t size )
4453 /* The cast to (char *) in the following accommodates both
4454 * implementations that use char* generic pointers, and those
4455 * that use void* generic pointers. It works with the latter
4456 * because both ANSI C and C++ allow castless assignment from
4457 * any pointer type to void*, and deal with argument conversions
4458 * as though doing an assignment.
4460 return (void *) realloc( (char *) ptr, size );
4463 void surf_parse_free (void * ptr )
4465 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
4468 #define YYTABLES_NAME "yytables"
4471 #undef YY_FLUSH_BUFFER
4473 #undef yy_new_buffer
4474 #undef yy_set_interactive
4476 #undef YY_DO_BEFORE_ACTION
4478 #ifdef YY_DECL_IS_OURS
4479 #undef YY_DECL_IS_OURS
4482 #line 792 "surf/surfxml.l"
4486 /* Element context stack lookup. */
4487 int element_context(int i)
4489 return (0<i && i<yy_start_stack_depth
4490 ? yy_start_stack[yy_start_stack_ptr - i]
4495 void print_yy_stack(char* fmt, ...)
4497 int i = 0; va_list ap; va_start(ap, fmt);
4498 vfprintf(stderr, fmt, ap);
4499 for (i=1; i<yy_start_stack_ptr; i++)
4500 fprintf(stderr, "%s/", statenames[yy_start_stack[i] ]);
4501 fprintf(stderr,"%s\n", statenames[YY_START]);
4505 static void debug_enter(int state, const char* statename) {
4506 yy_push_state(state);
4507 if (surf_parse__flex_debug) print_yy_stack("--ENTER(%s) : ",statename);
4510 static void debug_leave(void) {
4511 if (surf_parse__flex_debug) print_yy_stack("--LEAVE : ");
4515 static void debug_set(int state, const char* statename) {
4517 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
4521 enum {flexml_max_err_msg_size = 512};
4523 static char flexml_err_msg[flexml_max_err_msg_size];
4524 const char * parse_err_msg()
4526 return flexml_err_msg;
4529 static void reset_parse_err_msg()
4531 flexml_err_msg[0] = '\0';
4535 static int fail(const char* fmt, ...)
4537 int chars_left, used;
4538 va_list ap; va_start(ap, fmt);
4539 #ifdef FLEXML_yylineno
4540 used = sprintf(flexml_err_msg,
4541 "Invalid XML (XML input line %d, state %d): ",
4542 surf_parse_lineno, YY_START);
4544 used = sprintf(flexml_err_msg,
4545 "Invalid XML (state %d): ",
4548 chars_left = flexml_max_err_msg_size - used - 1;
4549 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
4552 #ifndef FLEXML_quiet_parser
4553 /* print directly to sdterr */
4554 fprintf(stderr, "%s\n", flexml_err_msg);
4555 flexml_err_msg[0] = '\0';