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/06 12:46:16.
1691 * This program was generated with the FleXML XML processor generator.
1692 * FleXML is Copyright © 1999-2005 Kristoffer Rose. All rights reserved.
1693 * (Id: flexml.pl,v 1.44 2005/02/23 23:08:16 mquinson Exp).
1695 * There are two, intertwined parts to this program, part A and part B.
1700 * Some parts, here collectively called "Part A", are found in the
1701 * FleXML package. They are Copyright © 1999-2005 Kristoffer Rose.
1702 * All rights reserved.
1704 * You can redistribute, use, perform, display and/or modify "Part A"
1705 * provided the following two conditions hold:
1707 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1708 * FleXML; without even the implied warranty of MERCHANTABILITY or
1709 * FITNESS FOR A PARTICULAR PURPOSE.
1711 * 2. The program distribution conditions do not in any way affect the
1712 * distribution conditions of the FleXML system used to generate this
1713 * file or any version of FleXML derived from that system.
1715 * Notice that these are explicit rights granted to you for files
1716 * generated by the FleXML system. For your rights in connection with
1717 * the FleXML system itself please consult the GNU General Public License.
1722 * The other parts, here collectively called "Part B", and which came
1723 * from the DTD used by FleXML to generate this program, can be
1724 * distributed (or not, as the case may be) under the terms of whoever
1725 * wrote them, provided these terms respect and obey the two conditions
1726 * above under the heading "Part A".
1728 * The author of and contributors to FleXML specifically disclaim
1729 * any copyright interest in "Part B", unless "Part B" was written
1730 * by the author of or contributors to FleXML.
1733 #line 48 "surf/surfxml.l"
1735 /* Version strings. */
1736 const char rcs_flexml_skeleton[] =
1737 "$" "Id: skel,v 1.26 2005/02/23 22:22:20 wdowling Exp $";
1738 const char rcs_flexml[] =
1739 "$" "Id: flexml.pl,v 1.44 2005/02/23 23:08:16 mquinson Exp $";
1749 /* Generated definitions. */
1750 #define FLEXML_yylineno
1751 #define FLEXML_BUFFERSTACKSIZE 1000000
1753 /* XML processor api. */
1754 /* FleXML-provided data. */
1756 AT_network_link_bandwidth A_network_link_bandwidth;
1757 AT_cpu_name A_cpu_name;
1758 AT_network_link_state A_network_link_state;
1759 AT_argument_value A_argument_value;
1760 AT_cpu_availability_file A_cpu_availability_file;
1761 AT_process_host A_process_host;
1762 AT_route_impact_on_src A_route_impact_on_src;
1763 AT_route_src A_route_src;
1764 AT_network_link_latency_file A_network_link_latency_file;
1765 AT_cpu_max_outgoing_rate A_cpu_max_outgoing_rate;
1766 AT_route_impact_on_dst_with_other_send A_route_impact_on_dst_with_other_send;
1767 AT_cpu_interference_send_recv A_cpu_interference_send_recv;
1768 AT_cpu_availability A_cpu_availability;
1769 AT_route_impact_on_dst A_route_impact_on_dst;
1770 AT_cpu_interference_recv A_cpu_interference_recv;
1771 AT_route_impact_on_src_with_other_recv A_route_impact_on_src_with_other_recv;
1772 AT_network_link_name A_network_link_name;
1773 AT_route_element_name A_route_element_name;
1774 AT_cpu_power A_cpu_power;
1775 AT_include_file A_include_file;
1776 AT_process_function A_process_function;
1777 AT_route_dst A_route_dst;
1778 AT_cpu_state A_cpu_state;
1779 AT_network_link_latency A_network_link_latency;
1780 AT_network_link_state_file A_network_link_state_file;
1781 AT_cpu_interference_send A_cpu_interference_send;
1782 AT_cpu_state_file A_cpu_state_file;
1783 AT_network_link_bandwidth_file A_network_link_bandwidth_file;
1787 # define ENTER(state) debug_enter(state,#state)
1788 # define LEAVE debug_leave()
1789 # define SET(state) debug_set(state,#state)
1790 static void debug_enter(int, const char*);
1791 static void debug_leave(void);
1792 static void debug_set(int, const char*);
1794 # define ENTER(state) (yy_push_state(state))
1795 # define LEAVE (yy_pop_state())
1796 # define SET(state) BEGIN(state)
1799 /* Generic actions. */
1800 #define SKIP /*skip*/
1801 #define SUCCEED CLEANUP; return 0
1803 #define FAIL return fail
1804 static int fail(const char*, ...);
1805 const char * parse_err_msg(void);
1808 static void cleanup(void);
1809 #define CLEANUP cleanup()
1811 /* Text buffer stack handling. */
1812 char bufferstack[FLEXML_BUFFERSTACKSIZE];
1813 char* limit = bufferstack + FLEXML_BUFFERSTACKSIZE;
1814 typedef struct BufferLast_s {
1815 struct BufferLast_s *old; char* saved; char new1[1];
1817 BufferLast* last = (BufferLast*)0;
1818 char* next = bufferstack;
1820 #define BUFFERSET(P) (P = next)
1821 #define BUFFERPUTC(C) (assert(next<limit), *(next++) = (C))
1822 #define BUFFERDONE (BUFFERPUTC('\0'))
1824 #define BUFFERLITERAL(C,P) bufferliteral(C,&(P),surf_parse_text)
1825 static void bufferliteral(char c, const char** pp, char* text)
1827 char *s = strchr(text,c), *e = strrchr(text,c);
1828 assert(s <= e); BUFFERSET(*pp);
1830 if (isspace(*s)) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
1831 else BUFFERPUTC(*s);
1836 #ifdef FLEXML_HasMixed
1837 static void pushbuffer(char* p)
1839 BufferLast* l = (BufferLast*)next;
1840 assert(next < limit);
1847 static char* popbuffer(void)
1849 BufferLast* l = last;
1850 assert(last != (BufferLast*)0);
1857 /* General internal entities are `unput' back onto the input stream... */
1858 #define ENTITYTEXT(T) \
1859 { char *s = (T), *e = s+strlen(s);\
1860 while (--e >= s) { unput(*e); }}
1861 /* Flex standard options. */
1862 #define YY_NO_INPUT 1
1863 /* Flex user-requested options. */
1864 /* XML character classes (currently restricted to ASCII). */
1865 /* "Common syntactic structures." */
1866 /* "Names and Tokens." */
1867 /* Miscellaneous. */
1868 /* Parser states (flex `exclusive start conditions'):
1870 * PROLOG the XML prolog of the document before <?xml...>
1871 * DOCTYPE the XML prolog of the document after <?xml...>
1872 * EPILOG after the root element
1873 * INCOMMENT inside an XML comment <!--....-->
1874 * INPI inside an XML PI <?...?>
1875 * VALUE1 inside a '...'-delimited literal
1876 * VALUE2 inside a "..."-delimited literal
1877 * CDATA inside a <![CDATA[...m4_userquote_end()> section.
1878 * ROOT_<tag> expect root element <tag>
1879 * AL_<tag> inside the attribute list for <tag>
1880 * IN_<tag> inside a <tag> with element contents (ready for end tag)
1881 * IMPOSSIBLE dummy to permit disabling rules; must be last
1893 #line 234 "surf/surfxml.l"
1895 const char* *statenames=NULL;
1896 #line 1897 "surf/surfxml.c"
1907 #define ROOT_platform_description 9
1908 #define AL_platform_description 10
1909 #define S_platform_description 11
1910 #define S_platform_description_1 12
1911 #define S_platform_description_2 13
1912 #define E_platform_description 14
1913 #define ROOT_include 15
1914 #define AL_include 16
1915 #define S_include 17
1916 #define S_include_1 18
1917 #define S_include_2 19
1918 #define E_include 20
1922 #define ROOT_network_link 24
1923 #define AL_network_link 25
1924 #define E_network_link 26
1925 #define ROOT_route 27
1928 #define S_route_1 30
1929 #define S_route_2 31
1931 #define ROOT_route_element 33
1932 #define AL_route_element 34
1933 #define E_route_element 35
1934 #define ROOT_process 36
1935 #define AL_process 37
1936 #define S_process 38
1937 #define S_process_1 39
1938 #define S_process_2 40
1939 #define E_process 41
1940 #define ROOT_argument 42
1941 #define AL_argument 43
1942 #define E_argument 44
1943 #define IMPOSSIBLE 45
1945 #ifndef YY_NO_UNISTD_H
1946 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1947 * down here because we want the user's section 1 to have been scanned first.
1948 * The user has a chance to override it with an option.
1953 #ifndef YY_EXTRA_TYPE
1954 #define YY_EXTRA_TYPE void *
1957 /* Macros after this point can all be overridden by user definitions in
1961 #ifndef YY_SKIP_YYWRAP
1963 extern "C" int surf_parse_wrap (void );
1965 extern int surf_parse_wrap (void );
1970 static void yy_flex_strncpy (char *,yyconst char *,int );
1973 #ifdef YY_NEED_STRLEN
1974 static int yy_flex_strlen (yyconst char * );
1980 static int yyinput (void );
1982 static int input (void );
1987 static int yy_start_stack_ptr = 0;
1988 static int yy_start_stack_depth = 0;
1989 static int *yy_start_stack = 0;
1991 static void yy_push_state (int new_state );
1993 static void yy_pop_state (void );
1995 /* Amount of stuff to slurp up with each read. */
1996 #ifndef YY_READ_BUF_SIZE
1997 #define YY_READ_BUF_SIZE 8192
2000 /* Copy whatever the last rule matched to the standard output. */
2002 /* This used to be an fputs(), but since the string might contain NUL's,
2003 * we now use fwrite().
2005 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
2008 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2009 * is returned in "result".
2012 #define YY_INPUT(buf,result,max_size) \
2013 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2017 for ( n = 0; n < max_size && \
2018 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
2019 buf[n] = (char) c; \
2021 buf[n++] = (char) c; \
2022 if ( c == EOF && ferror( surf_parse_in ) ) \
2023 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2029 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2031 if( errno != EINTR) \
2033 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2037 clearerr(surf_parse_in); \
2044 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2045 * we don't want an extra ';' after the "return" because that will cause
2046 * some compilers to complain about unreachable statements.
2049 #define yyterminate() return YY_NULL
2052 /* Number of entries by which start-condition stack grows. */
2053 #ifndef YY_START_STACK_INCR
2054 #define YY_START_STACK_INCR 25
2057 /* Report a fatal error. */
2058 #ifndef YY_FATAL_ERROR
2059 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2062 /* end tables serialization structures and prototypes */
2064 /* Default declaration of generated scanner - a define so the user can
2065 * easily add parameters.
2068 #define YY_DECL_IS_OURS 1
2070 extern int surf_parse_lex (void);
2072 #define YY_DECL int surf_parse_lex (void)
2073 #endif /* !YY_DECL */
2075 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2078 #ifndef YY_USER_ACTION
2079 #define YY_USER_ACTION
2082 /* Code executed at the end of each rule. */
2084 #define YY_BREAK break;
2087 #define YY_RULE_SETUP \
2090 /** The main scanner function which does all the work.
2094 register yy_state_type yy_current_state;
2095 register char *yy_cp, *yy_bp;
2096 register int yy_act;
2098 #line 238 "surf/surfxml.l"
2101 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
2105 if(!statenames) {statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
2106 statenames[PROLOG] = NULL;
2107 statenames[DOCTYPE] = NULL;
2108 statenames[EPILOG] = NULL;
2109 statenames[INCOMMENT] = NULL;
2110 statenames[INPI] = NULL;
2111 statenames[VALUE1] = NULL;
2112 statenames[VALUE2] = NULL;
2113 statenames[CDATA] = NULL;
2114 statenames[ROOT_platform_description] = NULL;
2115 statenames[AL_platform_description] = NULL;
2116 statenames[S_platform_description] = "platform_description";
2117 statenames[S_platform_description_1] = "platform_description";
2118 statenames[S_platform_description_2] = "platform_description";
2119 statenames[E_platform_description] = "platform_description";
2120 statenames[ROOT_include] = NULL;
2121 statenames[AL_include] = NULL;
2122 statenames[S_include] = "include";
2123 statenames[S_include_1] = "include";
2124 statenames[S_include_2] = "include";
2125 statenames[E_include] = "include";
2126 statenames[ROOT_cpu] = NULL;
2127 statenames[AL_cpu] = NULL;
2128 statenames[E_cpu] = "cpu";
2129 statenames[ROOT_network_link] = NULL;
2130 statenames[AL_network_link] = NULL;
2131 statenames[E_network_link] = "network_link";
2132 statenames[ROOT_route] = NULL;
2133 statenames[AL_route] = NULL;
2134 statenames[S_route] = "route";
2135 statenames[S_route_1] = "route";
2136 statenames[S_route_2] = "route";
2137 statenames[E_route] = "route";
2138 statenames[ROOT_route_element] = NULL;
2139 statenames[AL_route_element] = NULL;
2140 statenames[E_route_element] = "route_element";
2141 statenames[ROOT_process] = NULL;
2142 statenames[AL_process] = NULL;
2143 statenames[S_process] = "process";
2144 statenames[S_process_1] = "process";
2145 statenames[S_process_2] = "process";
2146 statenames[E_process] = "process";
2147 statenames[ROOT_argument] = NULL;
2148 statenames[AL_argument] = NULL;
2149 statenames[E_argument] = "argument";
2152 /* COMMENTS and PIs: handled uniformly for efficiency. */
2154 #line 2155 "surf/surfxml.c"
2165 (yy_start) = 1; /* first start state */
2167 if ( ! surf_parse_in )
2168 surf_parse_in = stdin;
2170 if ( ! surf_parse_out )
2171 surf_parse_out = stdout;
2173 if ( ! YY_CURRENT_BUFFER ) {
2174 surf_parse_ensure_buffer_stack ();
2175 YY_CURRENT_BUFFER_LVALUE =
2176 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
2179 surf_parse__load_buffer_state( );
2182 while ( 1 ) /* loops until end-of-file is reached */
2184 yy_cp = (yy_c_buf_p);
2186 /* Support of surf_parse_text. */
2187 *yy_cp = (yy_hold_char);
2189 /* yy_bp points to the position in yy_ch_buf of the start of
2194 yy_current_state = (yy_start);
2198 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2199 if ( yy_accept[yy_current_state] )
2201 (yy_last_accepting_state) = yy_current_state;
2202 (yy_last_accepting_cpos) = yy_cp;
2204 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2206 yy_current_state = (int) yy_def[yy_current_state];
2207 if ( yy_current_state >= 1256 )
2208 yy_c = yy_meta[(unsigned int) yy_c];
2210 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2213 while ( yy_base[yy_current_state] != 3533 );
2216 yy_act = yy_accept[yy_current_state];
2218 { /* have to back up */
2219 yy_cp = (yy_last_accepting_cpos);
2220 yy_current_state = (yy_last_accepting_state);
2221 yy_act = yy_accept[yy_current_state];
2224 YY_DO_BEFORE_ACTION;
2226 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2229 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
2230 if ( surf_parse_text[yyl] == '\n' )
2232 surf_parse_lineno++;
2236 do_action: /* This label is used only to access EOF actions. */
2239 { /* beginning of action switch */
2240 case 0: /* must back up */
2241 /* undo the effects of YY_DO_BEFORE_ACTION */
2242 *yy_cp = (yy_hold_char);
2243 yy_cp = (yy_last_accepting_cpos);
2244 yy_current_state = (yy_last_accepting_state);
2245 goto yy_find_action;
2249 #line 294 "surf/surfxml.l"
2254 #line 295 "surf/surfxml.l"
2261 #line 298 "surf/surfxml.l"
2265 #line 300 "surf/surfxml.l"
2267 #line 301 "surf/surfxml.l"
2269 /* rule 6 can match eol */
2271 #line 301 "surf/surfxml.l"
2274 case YY_STATE_EOF(INCOMMENT):
2275 #line 302 "surf/surfxml.l"
2276 FAIL("EOF in comment.");
2282 #line 305 "surf/surfxml.l"
2286 #line 307 "surf/surfxml.l"
2288 /* rule 9 can match eol */
2290 #line 307 "surf/surfxml.l"
2293 case YY_STATE_EOF(INPI):
2294 #line 308 "surf/surfxml.l"
2295 FAIL("EOF in PI (processing instruction).");
2298 /* SPACES: skipped uniformly */
2300 /* rule 10 can match eol */
2302 #line 313 "surf/surfxml.l"
2305 /* PROLOG: determine root element and process it. */
2308 /* rule 11 can match eol */
2310 #line 318 "surf/surfxml.l"
2314 /* rule 12 can match eol */
2316 #line 319 "surf/surfxml.l"
2317 FAIL("Bad declaration %s.",surf_parse_text);
2322 /* rule 13 can match eol */
2324 #line 323 "surf/surfxml.l"
2328 /* rule 14 can match eol */
2330 #line 324 "surf/surfxml.l"
2331 SET(ROOT_route_element);
2334 /* rule 15 can match eol */
2336 #line 325 "surf/surfxml.l"
2340 /* rule 16 can match eol */
2342 #line 326 "surf/surfxml.l"
2346 /* rule 17 can match eol */
2348 #line 327 "surf/surfxml.l"
2352 /* rule 18 can match eol */
2354 #line 328 "surf/surfxml.l"
2355 SET(ROOT_platform_description);
2358 /* rule 19 can match eol */
2360 #line 329 "surf/surfxml.l"
2361 SET(ROOT_network_link);
2364 /* rule 20 can match eol */
2366 #line 330 "surf/surfxml.l"
2370 /* rule 21 can match eol */
2372 #line 331 "surf/surfxml.l"
2373 FAIL("Bad declaration %s.",surf_parse_text);
2377 #line 332 "surf/surfxml.l"
2378 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
2380 case YY_STATE_EOF(PROLOG):
2381 case YY_STATE_EOF(DOCTYPE):
2382 #line 333 "surf/surfxml.l"
2383 FAIL("EOF in prolog.");
2386 /* RULES DERIVED FROM DTD. */
2387 /* <!-- Small DTD for SURF based tools. --> */
2389 /* rule 23 can match eol */
2391 #line 340 "surf/surfxml.l"
2393 ENTER(AL_platform_description);
2399 #line 345 "surf/surfxml.l"
2401 LEAVE; STag_platform_description();pcdata = NULL; ENTER(S_platform_description);
2406 #line 348 "surf/surfxml.l"
2408 LEAVE; STag_platform_description(); pcdata = NULL; ETag_platform_description();
2410 case ROOT_platform_description: SET(EPILOG); break;
2416 #line 354 "surf/surfxml.l"
2417 FAIL("Unexpected character `%c' in attribute list of platform_description element.", surf_parse_text[0]);
2421 #line 355 "surf/surfxml.l"
2422 FAIL("Bad attribute `%s' in `platform_description' element start tag.",surf_parse_text);
2424 case YY_STATE_EOF(AL_platform_description):
2425 #line 356 "surf/surfxml.l"
2426 FAIL("EOF in attribute list of `platform_description' element.");
2431 /* rule 28 can match eol */
2433 #line 360 "surf/surfxml.l"
2436 ETag_platform_description();
2438 case ROOT_platform_description: SET(EPILOG); break;
2443 /* rule 29 can match eol */
2445 #line 367 "surf/surfxml.l"
2446 FAIL("Unexpected end-tag `%s': `</platform_description>' expected.",surf_parse_text);
2450 #line 368 "surf/surfxml.l"
2451 FAIL("Unexpected character `%c': `</platform_description>' expected.",surf_parse_text[0]);
2453 case YY_STATE_EOF(E_platform_description):
2454 case YY_STATE_EOF(S_platform_description_2):
2455 case YY_STATE_EOF(S_platform_description):
2456 #line 369 "surf/surfxml.l"
2457 FAIL("Premature EOF: `</platform_description>' expected.");
2461 /* rule 31 can match eol */
2463 #line 372 "surf/surfxml.l"
2465 A_include_file = NULL;
2471 /* rule 32 can match eol */
2473 #line 378 "surf/surfxml.l"
2474 ENTER(VALUE1); BUFFERSET(A_include_file);
2477 /* rule 33 can match eol */
2479 #line 379 "surf/surfxml.l"
2480 ENTER(VALUE2); BUFFERSET(A_include_file);
2484 #line 381 "surf/surfxml.l"
2486 if (!A_include_file) FAIL("Required attribute `file' not set for `include' element.");
2487 LEAVE; STag_include();pcdata = NULL; ENTER(S_include);
2492 #line 385 "surf/surfxml.l"
2494 if (!A_include_file) FAIL("Required attribute `file' not set for `include' element.");
2495 LEAVE; STag_include(); pcdata = NULL; ETag_include();
2497 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
2498 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
2499 case ROOT_include: SET(EPILOG); break;
2505 #line 394 "surf/surfxml.l"
2506 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
2510 #line 395 "surf/surfxml.l"
2511 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
2513 case YY_STATE_EOF(AL_include):
2514 #line 396 "surf/surfxml.l"
2515 FAIL("EOF in attribute list of `include' element.");
2520 /* rule 38 can match eol */
2522 #line 400 "surf/surfxml.l"
2527 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
2528 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
2529 case ROOT_include: SET(EPILOG); break;
2534 /* rule 39 can match eol */
2536 #line 409 "surf/surfxml.l"
2537 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
2541 #line 410 "surf/surfxml.l"
2542 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
2544 case YY_STATE_EOF(E_include):
2545 case YY_STATE_EOF(S_include):
2546 case YY_STATE_EOF(S_include_2):
2547 #line 411 "surf/surfxml.l"
2548 FAIL("Premature EOF: `</include>' expected.");
2552 /* rule 41 can match eol */
2554 #line 414 "surf/surfxml.l"
2558 A_cpu_availability = "1.0";
2559 A_cpu_availability_file = NULL;
2560 A_cpu_state = A_cpu_state_ON;
2561 A_cpu_state_file = NULL;
2562 A_cpu_interference_send = "1.0";
2563 A_cpu_interference_recv = "1.0";
2564 A_cpu_interference_send_recv = "1.0";
2565 A_cpu_max_outgoing_rate = "-1.0";
2571 /* rule 42 can match eol */
2573 #line 429 "surf/surfxml.l"
2574 ENTER(VALUE1); BUFFERSET(A_cpu_name);
2577 /* rule 43 can match eol */
2579 #line 430 "surf/surfxml.l"
2580 ENTER(VALUE2); BUFFERSET(A_cpu_name);
2583 /* rule 44 can match eol */
2585 #line 432 "surf/surfxml.l"
2586 ENTER(VALUE1); BUFFERSET(A_cpu_power);
2589 /* rule 45 can match eol */
2591 #line 433 "surf/surfxml.l"
2592 ENTER(VALUE2); BUFFERSET(A_cpu_power);
2595 /* rule 46 can match eol */
2597 #line 435 "surf/surfxml.l"
2598 ENTER(VALUE1); BUFFERSET(A_cpu_availability);
2601 /* rule 47 can match eol */
2603 #line 436 "surf/surfxml.l"
2604 ENTER(VALUE2); BUFFERSET(A_cpu_availability);
2607 /* rule 48 can match eol */
2609 #line 438 "surf/surfxml.l"
2610 ENTER(VALUE1); BUFFERSET(A_cpu_availability_file);
2613 /* rule 49 can match eol */
2615 #line 439 "surf/surfxml.l"
2616 ENTER(VALUE2); BUFFERSET(A_cpu_availability_file);
2619 /* rule 50 can match eol */
2620 #line 442 "surf/surfxml.l"
2622 /* rule 51 can match eol */
2624 #line 442 "surf/surfxml.l"
2625 A_cpu_state = A_cpu_state_ON;
2628 /* rule 52 can match eol */
2629 #line 444 "surf/surfxml.l"
2631 /* rule 53 can match eol */
2633 #line 444 "surf/surfxml.l"
2634 A_cpu_state = A_cpu_state_OFF;
2637 /* rule 54 can match eol */
2639 #line 446 "surf/surfxml.l"
2640 ENTER(VALUE1); BUFFERSET(A_cpu_state_file);
2643 /* rule 55 can match eol */
2645 #line 447 "surf/surfxml.l"
2646 ENTER(VALUE2); BUFFERSET(A_cpu_state_file);
2649 /* rule 56 can match eol */
2651 #line 449 "surf/surfxml.l"
2652 ENTER(VALUE1); BUFFERSET(A_cpu_interference_send);
2655 /* rule 57 can match eol */
2657 #line 450 "surf/surfxml.l"
2658 ENTER(VALUE2); BUFFERSET(A_cpu_interference_send);
2661 /* rule 58 can match eol */
2663 #line 452 "surf/surfxml.l"
2664 ENTER(VALUE1); BUFFERSET(A_cpu_interference_recv);
2667 /* rule 59 can match eol */
2669 #line 453 "surf/surfxml.l"
2670 ENTER(VALUE2); BUFFERSET(A_cpu_interference_recv);
2673 /* rule 60 can match eol */
2675 #line 455 "surf/surfxml.l"
2676 ENTER(VALUE1); BUFFERSET(A_cpu_interference_send_recv);
2679 /* rule 61 can match eol */
2681 #line 456 "surf/surfxml.l"
2682 ENTER(VALUE2); BUFFERSET(A_cpu_interference_send_recv);
2685 /* rule 62 can match eol */
2687 #line 458 "surf/surfxml.l"
2688 ENTER(VALUE1); BUFFERSET(A_cpu_max_outgoing_rate);
2691 /* rule 63 can match eol */
2693 #line 459 "surf/surfxml.l"
2694 ENTER(VALUE2); BUFFERSET(A_cpu_max_outgoing_rate);
2698 #line 461 "surf/surfxml.l"
2700 if (!A_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2701 if (!A_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2702 LEAVE; STag_cpu();pcdata = NULL; ENTER(E_cpu);
2707 #line 466 "surf/surfxml.l"
2709 if (!A_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2710 if (!A_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2711 LEAVE; STag_cpu(); pcdata = NULL; ETag_cpu();
2713 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
2714 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
2715 case ROOT_cpu: SET(EPILOG); break;
2721 #line 476 "surf/surfxml.l"
2722 FAIL("Unexpected character `%c' in attribute list of cpu element.", surf_parse_text[0]);
2726 #line 477 "surf/surfxml.l"
2727 FAIL("Bad attribute `%s' in `cpu' element start tag.",surf_parse_text);
2729 case YY_STATE_EOF(AL_cpu):
2730 #line 478 "surf/surfxml.l"
2731 FAIL("EOF in attribute list of `cpu' element.");
2736 /* rule 68 can match eol */
2738 #line 482 "surf/surfxml.l"
2743 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
2744 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
2745 case ROOT_cpu: SET(EPILOG); break;
2750 /* rule 69 can match eol */
2752 #line 491 "surf/surfxml.l"
2753 FAIL("Unexpected end-tag `%s': `</cpu>' expected.",surf_parse_text);
2757 #line 492 "surf/surfxml.l"
2758 FAIL("Unexpected character `%c': `</cpu>' expected.",surf_parse_text[0]);
2760 case YY_STATE_EOF(E_cpu):
2761 #line 493 "surf/surfxml.l"
2762 FAIL("Premature EOF: `</cpu>' expected.");
2766 /* rule 71 can match eol */
2768 #line 496 "surf/surfxml.l"
2770 A_network_link_name = NULL;
2771 A_network_link_bandwidth = NULL;
2772 A_network_link_bandwidth_file = NULL;
2773 A_network_link_latency = "0.0";
2774 A_network_link_latency_file = NULL;
2775 A_network_link_state = A_network_link_state_ON;
2776 A_network_link_state_file = NULL;
2777 ENTER(AL_network_link);
2782 /* rule 72 can match eol */
2784 #line 508 "surf/surfxml.l"
2785 ENTER(VALUE1); BUFFERSET(A_network_link_name);
2788 /* rule 73 can match eol */
2790 #line 509 "surf/surfxml.l"
2791 ENTER(VALUE2); BUFFERSET(A_network_link_name);
2794 /* rule 74 can match eol */
2796 #line 511 "surf/surfxml.l"
2797 ENTER(VALUE1); BUFFERSET(A_network_link_bandwidth);
2800 /* rule 75 can match eol */
2802 #line 512 "surf/surfxml.l"
2803 ENTER(VALUE2); BUFFERSET(A_network_link_bandwidth);
2806 /* rule 76 can match eol */
2808 #line 514 "surf/surfxml.l"
2809 ENTER(VALUE1); BUFFERSET(A_network_link_bandwidth_file);
2812 /* rule 77 can match eol */
2814 #line 515 "surf/surfxml.l"
2815 ENTER(VALUE2); BUFFERSET(A_network_link_bandwidth_file);
2818 /* rule 78 can match eol */
2820 #line 517 "surf/surfxml.l"
2821 ENTER(VALUE1); BUFFERSET(A_network_link_latency);
2824 /* rule 79 can match eol */
2826 #line 518 "surf/surfxml.l"
2827 ENTER(VALUE2); BUFFERSET(A_network_link_latency);
2830 /* rule 80 can match eol */
2832 #line 520 "surf/surfxml.l"
2833 ENTER(VALUE1); BUFFERSET(A_network_link_latency_file);
2836 /* rule 81 can match eol */
2838 #line 521 "surf/surfxml.l"
2839 ENTER(VALUE2); BUFFERSET(A_network_link_latency_file);
2842 /* rule 82 can match eol */
2843 #line 524 "surf/surfxml.l"
2845 /* rule 83 can match eol */
2847 #line 524 "surf/surfxml.l"
2848 A_network_link_state = A_network_link_state_ON;
2851 /* rule 84 can match eol */
2852 #line 526 "surf/surfxml.l"
2854 /* rule 85 can match eol */
2856 #line 526 "surf/surfxml.l"
2857 A_network_link_state = A_network_link_state_OFF;
2860 /* rule 86 can match eol */
2862 #line 528 "surf/surfxml.l"
2863 ENTER(VALUE1); BUFFERSET(A_network_link_state_file);
2866 /* rule 87 can match eol */
2868 #line 529 "surf/surfxml.l"
2869 ENTER(VALUE2); BUFFERSET(A_network_link_state_file);
2873 #line 531 "surf/surfxml.l"
2875 if (!A_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2876 if (!A_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2877 LEAVE; STag_network_link();pcdata = NULL; ENTER(E_network_link);
2882 #line 536 "surf/surfxml.l"
2884 if (!A_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2885 if (!A_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2886 LEAVE; STag_network_link(); pcdata = NULL; ETag_network_link();
2888 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
2889 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
2890 case ROOT_network_link: SET(EPILOG); break;
2896 #line 546 "surf/surfxml.l"
2897 FAIL("Unexpected character `%c' in attribute list of network_link element.", surf_parse_text[0]);
2901 #line 547 "surf/surfxml.l"
2902 FAIL("Bad attribute `%s' in `network_link' element start tag.",surf_parse_text);
2904 case YY_STATE_EOF(AL_network_link):
2905 #line 548 "surf/surfxml.l"
2906 FAIL("EOF in attribute list of `network_link' element.");
2911 /* rule 92 can match eol */
2913 #line 552 "surf/surfxml.l"
2916 ETag_network_link();
2918 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
2919 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
2920 case ROOT_network_link: SET(EPILOG); break;
2925 /* rule 93 can match eol */
2927 #line 561 "surf/surfxml.l"
2928 FAIL("Unexpected end-tag `%s': `</network_link>' expected.",surf_parse_text);
2932 #line 562 "surf/surfxml.l"
2933 FAIL("Unexpected character `%c': `</network_link>' expected.",surf_parse_text[0]);
2935 case YY_STATE_EOF(E_network_link):
2936 #line 563 "surf/surfxml.l"
2937 FAIL("Premature EOF: `</network_link>' expected.");
2941 /* rule 95 can match eol */
2943 #line 566 "surf/surfxml.l"
2947 A_route_impact_on_src = "0.0";
2948 A_route_impact_on_dst = "0.0";
2949 A_route_impact_on_src_with_other_recv = "0.0";
2950 A_route_impact_on_dst_with_other_send = "0.0";
2956 /* rule 96 can match eol */
2958 #line 577 "surf/surfxml.l"
2959 ENTER(VALUE1); BUFFERSET(A_route_src);
2962 /* rule 97 can match eol */
2964 #line 578 "surf/surfxml.l"
2965 ENTER(VALUE2); BUFFERSET(A_route_src);
2968 /* rule 98 can match eol */
2970 #line 580 "surf/surfxml.l"
2971 ENTER(VALUE1); BUFFERSET(A_route_dst);
2974 /* rule 99 can match eol */
2976 #line 581 "surf/surfxml.l"
2977 ENTER(VALUE2); BUFFERSET(A_route_dst);
2980 /* rule 100 can match eol */
2982 #line 583 "surf/surfxml.l"
2983 ENTER(VALUE1); BUFFERSET(A_route_impact_on_src);
2986 /* rule 101 can match eol */
2988 #line 584 "surf/surfxml.l"
2989 ENTER(VALUE2); BUFFERSET(A_route_impact_on_src);
2992 /* rule 102 can match eol */
2994 #line 586 "surf/surfxml.l"
2995 ENTER(VALUE1); BUFFERSET(A_route_impact_on_dst);
2998 /* rule 103 can match eol */
3000 #line 587 "surf/surfxml.l"
3001 ENTER(VALUE2); BUFFERSET(A_route_impact_on_dst);
3004 /* rule 104 can match eol */
3006 #line 589 "surf/surfxml.l"
3007 ENTER(VALUE1); BUFFERSET(A_route_impact_on_src_with_other_recv);
3010 /* rule 105 can match eol */
3012 #line 590 "surf/surfxml.l"
3013 ENTER(VALUE2); BUFFERSET(A_route_impact_on_src_with_other_recv);
3016 /* rule 106 can match eol */
3018 #line 592 "surf/surfxml.l"
3019 ENTER(VALUE1); BUFFERSET(A_route_impact_on_dst_with_other_send);
3022 /* rule 107 can match eol */
3024 #line 593 "surf/surfxml.l"
3025 ENTER(VALUE2); BUFFERSET(A_route_impact_on_dst_with_other_send);
3029 #line 595 "surf/surfxml.l"
3031 if (!A_route_src) FAIL("Required attribute `src' not set for `route' element.");
3032 if (!A_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3033 LEAVE; STag_route();pcdata = NULL; ENTER(S_route);
3038 #line 600 "surf/surfxml.l"
3040 if (!A_route_src) FAIL("Required attribute `src' not set for `route' element.");
3041 if (!A_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3042 LEAVE; STag_route(); pcdata = NULL; ETag_route();
3044 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
3045 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
3046 case ROOT_route: SET(EPILOG); break;
3052 #line 610 "surf/surfxml.l"
3053 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
3057 #line 611 "surf/surfxml.l"
3058 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
3060 case YY_STATE_EOF(AL_route):
3061 #line 612 "surf/surfxml.l"
3062 FAIL("EOF in attribute list of `route' element.");
3067 /* rule 112 can match eol */
3069 #line 616 "surf/surfxml.l"
3074 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
3075 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
3076 case ROOT_route: SET(EPILOG); break;
3081 /* rule 113 can match eol */
3083 #line 625 "surf/surfxml.l"
3084 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
3088 #line 626 "surf/surfxml.l"
3089 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
3091 case YY_STATE_EOF(S_route):
3092 case YY_STATE_EOF(S_route_2):
3093 case YY_STATE_EOF(E_route):
3094 #line 627 "surf/surfxml.l"
3095 FAIL("Premature EOF: `</route>' expected.");
3099 /* rule 115 can match eol */
3101 #line 630 "surf/surfxml.l"
3103 A_route_element_name = NULL;
3104 ENTER(AL_route_element);
3109 /* rule 116 can match eol */
3111 #line 636 "surf/surfxml.l"
3112 ENTER(VALUE1); BUFFERSET(A_route_element_name);
3115 /* rule 117 can match eol */
3117 #line 637 "surf/surfxml.l"
3118 ENTER(VALUE2); BUFFERSET(A_route_element_name);
3122 #line 639 "surf/surfxml.l"
3124 if (!A_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3125 LEAVE; STag_route_element();pcdata = NULL; ENTER(E_route_element);
3130 #line 643 "surf/surfxml.l"
3132 if (!A_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3133 LEAVE; STag_route_element(); pcdata = NULL; 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;
3142 #line 651 "surf/surfxml.l"
3143 FAIL("Unexpected character `%c' in attribute list of route_element element.", surf_parse_text[0]);
3147 #line 652 "surf/surfxml.l"
3148 FAIL("Bad attribute `%s' in `route_element' element start tag.",surf_parse_text);
3150 case YY_STATE_EOF(AL_route_element):
3151 #line 653 "surf/surfxml.l"
3152 FAIL("EOF in attribute list of `route_element' element.");
3157 /* rule 122 can match eol */
3159 #line 657 "surf/surfxml.l"
3162 ETag_route_element();
3164 case S_route_1: case S_route: case S_route_2: SET(S_route_2); break;
3165 case ROOT_route_element: SET(EPILOG); break;
3170 /* rule 123 can match eol */
3172 #line 665 "surf/surfxml.l"
3173 FAIL("Unexpected end-tag `%s': `</route_element>' expected.",surf_parse_text);
3177 #line 666 "surf/surfxml.l"
3178 FAIL("Unexpected character `%c': `</route_element>' expected.",surf_parse_text[0]);
3180 case YY_STATE_EOF(E_route_element):
3181 #line 667 "surf/surfxml.l"
3182 FAIL("Premature EOF: `</route_element>' expected.");
3186 /* rule 125 can match eol */
3188 #line 670 "surf/surfxml.l"
3190 A_process_host = NULL;
3191 A_process_function = NULL;
3197 /* rule 126 can match eol */
3199 #line 677 "surf/surfxml.l"
3200 ENTER(VALUE1); BUFFERSET(A_process_host);
3203 /* rule 127 can match eol */
3205 #line 678 "surf/surfxml.l"
3206 ENTER(VALUE2); BUFFERSET(A_process_host);
3209 /* rule 128 can match eol */
3211 #line 680 "surf/surfxml.l"
3212 ENTER(VALUE1); BUFFERSET(A_process_function);
3215 /* rule 129 can match eol */
3217 #line 681 "surf/surfxml.l"
3218 ENTER(VALUE2); BUFFERSET(A_process_function);
3222 #line 683 "surf/surfxml.l"
3224 if (!A_process_host) FAIL("Required attribute `host' not set for `process' element.");
3225 if (!A_process_function) FAIL("Required attribute `function' not set for `process' element.");
3226 LEAVE; STag_process();pcdata = NULL; ENTER(S_process);
3231 #line 688 "surf/surfxml.l"
3233 if (!A_process_host) FAIL("Required attribute `host' not set for `process' element.");
3234 if (!A_process_function) FAIL("Required attribute `function' not set for `process' element.");
3235 LEAVE; STag_process(); pcdata = NULL; ETag_process();
3237 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
3238 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
3239 case ROOT_process: SET(EPILOG); break;
3245 #line 698 "surf/surfxml.l"
3246 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
3250 #line 699 "surf/surfxml.l"
3251 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
3253 case YY_STATE_EOF(AL_process):
3254 #line 700 "surf/surfxml.l"
3255 FAIL("EOF in attribute list of `process' element.");
3260 /* rule 134 can match eol */
3262 #line 704 "surf/surfxml.l"
3267 case S_platform_description_2: case S_platform_description_1: case S_platform_description: SET(S_platform_description_2); break;
3268 case S_include: case S_include_2: case S_include_1: SET(S_include_2); break;
3269 case ROOT_process: SET(EPILOG); break;
3274 /* rule 135 can match eol */
3276 #line 713 "surf/surfxml.l"
3277 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
3281 #line 714 "surf/surfxml.l"
3282 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
3284 case YY_STATE_EOF(S_process):
3285 case YY_STATE_EOF(E_process):
3286 case YY_STATE_EOF(S_process_2):
3287 #line 715 "surf/surfxml.l"
3288 FAIL("Premature EOF: `</process>' expected.");
3292 /* rule 137 can match eol */
3294 #line 718 "surf/surfxml.l"
3296 A_argument_value = NULL;
3302 /* rule 138 can match eol */
3304 #line 724 "surf/surfxml.l"
3305 ENTER(VALUE1); BUFFERSET(A_argument_value);
3308 /* rule 139 can match eol */
3310 #line 725 "surf/surfxml.l"
3311 ENTER(VALUE2); BUFFERSET(A_argument_value);
3315 #line 727 "surf/surfxml.l"
3317 if (!A_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3318 LEAVE; STag_argument();pcdata = NULL; ENTER(E_argument);
3323 #line 731 "surf/surfxml.l"
3325 if (!A_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3326 LEAVE; STag_argument(); pcdata = NULL; ETag_argument();
3328 case ROOT_argument: SET(EPILOG); break;
3329 case S_process_1: case S_process: case S_process_2: SET(S_process_2); break;
3335 #line 739 "surf/surfxml.l"
3336 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
3340 #line 740 "surf/surfxml.l"
3341 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
3343 case YY_STATE_EOF(AL_argument):
3344 #line 741 "surf/surfxml.l"
3345 FAIL("EOF in attribute list of `argument' element.");
3350 /* rule 144 can match eol */
3352 #line 745 "surf/surfxml.l"
3357 case ROOT_argument: SET(EPILOG); break;
3358 case S_process_1: case S_process: case S_process_2: SET(S_process_2); break;
3363 /* rule 145 can match eol */
3365 #line 753 "surf/surfxml.l"
3366 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
3370 #line 754 "surf/surfxml.l"
3371 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
3373 case YY_STATE_EOF(E_argument):
3374 #line 755 "surf/surfxml.l"
3375 FAIL("Premature EOF: `</argument>' expected.");
3378 /* EPILOG: after the root element. */
3382 #line 761 "surf/surfxml.l"
3383 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
3385 case YY_STATE_EOF(EPILOG):
3386 #line 762 "surf/surfxml.l"
3390 /* CHARACTER DATA. */
3392 /* Non-defined standard entities... */
3395 #line 769 "surf/surfxml.l"
3400 #line 770 "surf/surfxml.l"
3405 #line 771 "surf/surfxml.l"
3410 #line 772 "surf/surfxml.l"
3415 #line 773 "surf/surfxml.l"
3418 /* Character entities. */
3421 #line 776 "surf/surfxml.l"
3422 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
3426 #line 777 "surf/surfxml.l"
3427 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
3432 /* rule 155 can match eol */
3433 #line 782 "surf/surfxml.l"
3435 /* rule 156 can match eol */
3436 #line 783 "surf/surfxml.l"
3438 /* rule 157 can match eol */
3439 #line 784 "surf/surfxml.l"
3441 /* rule 158 can match eol */
3443 #line 784 "surf/surfxml.l"
3450 #line 788 "surf/surfxml.l"
3455 #line 789 "surf/surfxml.l"
3456 FAIL("Unexpected `]""]>' in character data.");
3462 #line 793 "surf/surfxml.l"
3465 case YY_STATE_EOF(VALUE1):
3466 #line 794 "surf/surfxml.l"
3467 FAIL("EOF in literal (\"'\" expected).");
3473 #line 798 "surf/surfxml.l"
3476 case YY_STATE_EOF(VALUE2):
3477 #line 799 "surf/surfxml.l"
3478 FAIL("EOF in literal (`\"' expected).");
3483 /* rule 163 can match eol */
3485 #line 803 "surf/surfxml.l"
3486 BUFFERPUTC(surf_parse_text[0]);
3490 #line 804 "surf/surfxml.l"
3491 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
3497 #line 808 "surf/surfxml.l"
3500 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
3503 #line 810 "surf/surfxml.l"
3504 BUFFERPUTC(surf_parse_text[0]);
3506 case YY_STATE_EOF(CDATA):
3507 #line 811 "surf/surfxml.l"
3508 FAIL("EOF in CDATA section.");
3511 /* Impossible rules to avoid warnings from flex(1). */
3512 /* Ideally, this should be replaced by code in flexml.pl that
3513 generates just the states not covered by other rules. */
3516 /* rule 167 can match eol */
3518 #line 818 "surf/surfxml.l"
3519 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
3524 #line 821 "surf/surfxml.l"
3527 #line 3528 "surf/surfxml.c"
3528 case YY_STATE_EOF(INITIAL):
3529 case YY_STATE_EOF(ROOT_platform_description):
3530 case YY_STATE_EOF(S_platform_description_1):
3531 case YY_STATE_EOF(ROOT_include):
3532 case YY_STATE_EOF(S_include_1):
3533 case YY_STATE_EOF(ROOT_cpu):
3534 case YY_STATE_EOF(ROOT_network_link):
3535 case YY_STATE_EOF(ROOT_route):
3536 case YY_STATE_EOF(S_route_1):
3537 case YY_STATE_EOF(ROOT_route_element):
3538 case YY_STATE_EOF(ROOT_process):
3539 case YY_STATE_EOF(S_process_1):
3540 case YY_STATE_EOF(ROOT_argument):
3541 case YY_STATE_EOF(IMPOSSIBLE):
3544 case YY_END_OF_BUFFER:
3546 /* Amount of text matched not including the EOB char. */
3547 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3549 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3550 *yy_cp = (yy_hold_char);
3551 YY_RESTORE_YY_MORE_OFFSET
3553 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3555 /* We're scanning a new file or input source. It's
3556 * possible that this happened because the user
3557 * just pointed surf_parse_in at a new source and called
3558 * surf_parse_lex(). If so, then we have to assure
3559 * consistency between YY_CURRENT_BUFFER and our
3560 * globals. Here is the right place to do so, because
3561 * this is the first action (other than possibly a
3562 * back-up) that will match for the new input source.
3564 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3565 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
3566 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3569 /* Note that here we test for yy_c_buf_p "<=" to the position
3570 * of the first EOB in the buffer, since yy_c_buf_p will
3571 * already have been incremented past the NUL character
3572 * (since all states make transitions on EOB to the
3573 * end-of-buffer state). Contrast this with the test
3576 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3577 { /* This was really a NUL. */
3578 yy_state_type yy_next_state;
3580 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3582 yy_current_state = yy_get_previous_state( );
3584 /* Okay, we're now positioned to make the NUL
3585 * transition. We couldn't have
3586 * yy_get_previous_state() go ahead and do it
3587 * for us because it doesn't know how to deal
3588 * with the possibility of jamming (and we don't
3589 * want to build jamming into it because then it
3590 * will run more slowly).
3593 yy_next_state = yy_try_NUL_trans( yy_current_state );
3595 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3597 if ( yy_next_state )
3599 /* Consume the NUL. */
3600 yy_cp = ++(yy_c_buf_p);
3601 yy_current_state = yy_next_state;
3607 yy_cp = (yy_c_buf_p);
3608 goto yy_find_action;
3612 else switch ( yy_get_next_buffer( ) )
3614 case EOB_ACT_END_OF_FILE:
3616 (yy_did_buffer_switch_on_eof) = 0;
3618 if ( surf_parse_wrap( ) )
3620 /* Note: because we've taken care in
3621 * yy_get_next_buffer() to have set up
3622 * surf_parse_text, we can now set up
3623 * yy_c_buf_p so that if some total
3624 * hoser (like flex itself) wants to
3625 * call the scanner after we return the
3626 * YY_NULL, it'll still work - another
3627 * YY_NULL will get returned.
3629 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3631 yy_act = YY_STATE_EOF(YY_START);
3637 if ( ! (yy_did_buffer_switch_on_eof) )
3643 case EOB_ACT_CONTINUE_SCAN:
3645 (yytext_ptr) + yy_amount_of_matched_text;
3647 yy_current_state = yy_get_previous_state( );
3649 yy_cp = (yy_c_buf_p);
3650 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3653 case EOB_ACT_LAST_MATCH:
3655 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3657 yy_current_state = yy_get_previous_state( );
3659 yy_cp = (yy_c_buf_p);
3660 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3661 goto yy_find_action;
3668 "fatal flex scanner internal error--no action found" );
3669 } /* end of action switch */
3670 } /* end of scanning one token */
3671 } /* end of surf_parse_lex */
3673 /* yy_get_next_buffer - try to read in a new buffer
3675 * Returns a code representing an action:
3676 * EOB_ACT_LAST_MATCH -
3677 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3678 * EOB_ACT_END_OF_FILE - end of file
3680 static int yy_get_next_buffer (void)
3682 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3683 register char *source = (yytext_ptr);
3684 register int number_to_move, i;
3687 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3689 "fatal flex scanner internal error--end of buffer missed" );
3691 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3692 { /* Don't try to fill the buffer, so this is an EOF. */
3693 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3695 /* We matched a single character, the EOB, so
3696 * treat this as a final EOF.
3698 return EOB_ACT_END_OF_FILE;
3703 /* We matched some text prior to the EOB, first
3706 return EOB_ACT_LAST_MATCH;
3710 /* Try to read more data. */
3712 /* First move last chars to start of buffer. */
3713 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3715 for ( i = 0; i < number_to_move; ++i )
3716 *(dest++) = *(source++);
3718 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3719 /* don't do the read, it's not guaranteed to return an EOF,
3722 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3726 size_t num_to_read =
3727 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3729 while ( num_to_read <= 0 )
3730 { /* Not enough room in the buffer - grow it. */
3732 /* just a shorter name for the current buffer */
3733 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3735 int yy_c_buf_p_offset =
3736 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3738 if ( b->yy_is_our_buffer )
3740 int new_size = b->yy_buf_size * 2;
3742 if ( new_size <= 0 )
3743 b->yy_buf_size += b->yy_buf_size / 8;
3745 b->yy_buf_size *= 2;
3747 b->yy_ch_buf = (char *)
3748 /* Include room in for 2 EOB chars. */
3749 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
3752 /* Can't grow it, we don't own it. */
3755 if ( ! b->yy_ch_buf )
3757 "fatal error - scanner input buffer overflow" );
3759 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3761 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3766 if ( num_to_read > YY_READ_BUF_SIZE )
3767 num_to_read = YY_READ_BUF_SIZE;
3769 /* Read in more data. */
3770 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3771 (yy_n_chars), num_to_read );
3773 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3776 if ( (yy_n_chars) == 0 )
3778 if ( number_to_move == YY_MORE_ADJ )
3780 ret_val = EOB_ACT_END_OF_FILE;
3781 surf_parse_restart(surf_parse_in );
3786 ret_val = EOB_ACT_LAST_MATCH;
3787 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3788 YY_BUFFER_EOF_PENDING;
3793 ret_val = EOB_ACT_CONTINUE_SCAN;
3795 (yy_n_chars) += number_to_move;
3796 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3797 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3799 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3804 /* yy_get_previous_state - get the state just before the EOB char was reached */
3806 static yy_state_type yy_get_previous_state (void)
3808 register yy_state_type yy_current_state;
3809 register char *yy_cp;
3811 yy_current_state = (yy_start);
3813 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3815 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3816 if ( yy_accept[yy_current_state] )
3818 (yy_last_accepting_state) = yy_current_state;
3819 (yy_last_accepting_cpos) = yy_cp;
3821 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3823 yy_current_state = (int) yy_def[yy_current_state];
3824 if ( yy_current_state >= 1256 )
3825 yy_c = yy_meta[(unsigned int) yy_c];
3827 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3830 return yy_current_state;
3833 /* yy_try_NUL_trans - try to make a transition on the NUL character
3836 * next_state = yy_try_NUL_trans( current_state );
3838 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3840 register int yy_is_jam;
3841 register char *yy_cp = (yy_c_buf_p);
3843 register YY_CHAR yy_c = 1;
3844 if ( yy_accept[yy_current_state] )
3846 (yy_last_accepting_state) = yy_current_state;
3847 (yy_last_accepting_cpos) = yy_cp;
3849 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3851 yy_current_state = (int) yy_def[yy_current_state];
3852 if ( yy_current_state >= 1256 )
3853 yy_c = yy_meta[(unsigned int) yy_c];
3855 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3856 yy_is_jam = (yy_current_state == 1255);
3858 return yy_is_jam ? 0 : yy_current_state;
3863 static int yyinput (void)
3865 static int input (void)
3871 *(yy_c_buf_p) = (yy_hold_char);
3873 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3875 /* yy_c_buf_p now points to the character we want to return.
3876 * If this occurs *before* the EOB characters, then it's a
3877 * valid NUL; if not, then we've hit the end of the buffer.
3879 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3880 /* This was really a NUL. */
3881 *(yy_c_buf_p) = '\0';
3884 { /* need more input */
3885 int offset = (yy_c_buf_p) - (yytext_ptr);
3888 switch ( yy_get_next_buffer( ) )
3890 case EOB_ACT_LAST_MATCH:
3891 /* This happens because yy_g_n_b()
3892 * sees that we've accumulated a
3893 * token and flags that we need to
3894 * try matching the token before
3895 * proceeding. But for input(),
3896 * there's no matching to consider.
3897 * So convert the EOB_ACT_LAST_MATCH
3898 * to EOB_ACT_END_OF_FILE.
3901 /* Reset buffer status. */
3902 surf_parse_restart(surf_parse_in );
3906 case EOB_ACT_END_OF_FILE:
3908 if ( surf_parse_wrap( ) )
3911 if ( ! (yy_did_buffer_switch_on_eof) )
3920 case EOB_ACT_CONTINUE_SCAN:
3921 (yy_c_buf_p) = (yytext_ptr) + offset;
3927 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3928 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
3929 (yy_hold_char) = *++(yy_c_buf_p);
3933 surf_parse_lineno++;
3938 #endif /* ifndef YY_NO_INPUT */
3940 /** Immediately switch to a different input stream.
3941 * @param input_file A readable stream.
3943 * @note This function does not reset the start condition to @c INITIAL .
3945 void surf_parse_restart (FILE * input_file )
3948 if ( ! YY_CURRENT_BUFFER ){
3949 surf_parse_ensure_buffer_stack ();
3950 YY_CURRENT_BUFFER_LVALUE =
3951 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3954 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
3955 surf_parse__load_buffer_state( );
3958 /** Switch to a different input buffer.
3959 * @param new_buffer The new input buffer.
3962 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
3965 /* TODO. We should be able to replace this entire function body
3967 * surf_parse_pop_buffer_state();
3968 * surf_parse_push_buffer_state(new_buffer);
3970 surf_parse_ensure_buffer_stack ();
3971 if ( YY_CURRENT_BUFFER == new_buffer )
3974 if ( YY_CURRENT_BUFFER )
3976 /* Flush out information for old buffer. */
3977 *(yy_c_buf_p) = (yy_hold_char);
3978 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3979 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3982 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3983 surf_parse__load_buffer_state( );
3985 /* We don't actually know whether we did this switch during
3986 * EOF (surf_parse_wrap()) processing, but the only time this flag
3987 * is looked at is after surf_parse_wrap() is called, so it's safe
3988 * to go ahead and always set it.
3990 (yy_did_buffer_switch_on_eof) = 1;
3993 static void surf_parse__load_buffer_state (void)
3995 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3996 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3997 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3998 (yy_hold_char) = *(yy_c_buf_p);
4001 /** Allocate and initialize an input buffer state.
4002 * @param file A readable stream.
4003 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4005 * @return the allocated buffer state.
4007 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
4011 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4013 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4015 b->yy_buf_size = size;
4017 /* yy_ch_buf has to be 2 characters longer than the size given because
4018 * we need to put in 2 end-of-buffer characters.
4020 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
4021 if ( ! b->yy_ch_buf )
4022 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4024 b->yy_is_our_buffer = 1;
4026 surf_parse__init_buffer(b,file );
4031 /** Destroy the buffer.
4032 * @param b a buffer created with surf_parse__create_buffer()
4035 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
4041 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4042 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4044 if ( b->yy_is_our_buffer )
4045 surf_parse_free((void *) b->yy_ch_buf );
4047 surf_parse_free((void *) b );
4051 extern int isatty (int );
4052 #endif /* __cplusplus */
4054 /* Initializes or reinitializes a buffer.
4055 * This function is sometimes called more than once on the same buffer,
4056 * such as during a surf_parse_restart() or at EOF.
4058 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
4063 surf_parse__flush_buffer(b );
4065 b->yy_input_file = file;
4066 b->yy_fill_buffer = 1;
4068 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
4069 * called from surf_parse_restart() or through yy_get_next_buffer.
4070 * In that case, we don't want to reset the lineno or column.
4072 if (b != YY_CURRENT_BUFFER){
4073 b->yy_bs_lineno = 1;
4074 b->yy_bs_column = 0;
4077 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4082 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4083 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4086 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
4093 /* We always need two end-of-buffer characters. The first causes
4094 * a transition to the end-of-buffer state. The second causes
4095 * a jam in that state.
4097 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4098 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4100 b->yy_buf_pos = &b->yy_ch_buf[0];
4103 b->yy_buffer_status = YY_BUFFER_NEW;
4105 if ( b == YY_CURRENT_BUFFER )
4106 surf_parse__load_buffer_state( );
4109 /** Pushes the new state onto the stack. The new state becomes
4110 * the current state. This function will allocate the stack
4112 * @param new_buffer The new state.
4115 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
4117 if (new_buffer == NULL)
4120 surf_parse_ensure_buffer_stack();
4122 /* This block is copied from surf_parse__switch_to_buffer. */
4123 if ( YY_CURRENT_BUFFER )
4125 /* Flush out information for old buffer. */
4126 *(yy_c_buf_p) = (yy_hold_char);
4127 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4128 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4131 /* Only push if top exists. Otherwise, replace top. */
4132 if (YY_CURRENT_BUFFER)
4133 (yy_buffer_stack_top)++;
4134 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4136 /* copied from surf_parse__switch_to_buffer. */
4137 surf_parse__load_buffer_state( );
4138 (yy_did_buffer_switch_on_eof) = 1;
4141 /** Removes and deletes the top of the stack, if present.
4142 * The next element becomes the new top.
4145 void surf_parse_pop_buffer_state (void)
4147 if (!YY_CURRENT_BUFFER)
4150 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4151 YY_CURRENT_BUFFER_LVALUE = NULL;
4152 if ((yy_buffer_stack_top) > 0)
4153 --(yy_buffer_stack_top);
4155 if (YY_CURRENT_BUFFER) {
4156 surf_parse__load_buffer_state( );
4157 (yy_did_buffer_switch_on_eof) = 1;
4161 /* Allocates the stack if it does not exist.
4162 * Guarantees space for at least one push.
4164 static void surf_parse_ensure_buffer_stack (void)
4168 if (!(yy_buffer_stack)) {
4170 /* First allocation is just for 2 elements, since we don't know if this
4171 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4172 * immediate realloc on the next call.
4175 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
4176 (num_to_alloc * sizeof(struct yy_buffer_state*)
4179 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4181 (yy_buffer_stack_max) = num_to_alloc;
4182 (yy_buffer_stack_top) = 0;
4186 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4188 /* Increase the buffer to prepare for a possible push. */
4189 int grow_size = 8 /* arbitrary grow size */;
4191 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4192 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
4194 num_to_alloc * sizeof(struct yy_buffer_state*)
4197 /* zero only the new slots.*/
4198 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4199 (yy_buffer_stack_max) = num_to_alloc;
4203 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4204 * @param base the character buffer
4205 * @param size the size in bytes of the character buffer
4207 * @return the newly allocated buffer state object.
4209 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
4214 base[size-2] != YY_END_OF_BUFFER_CHAR ||
4215 base[size-1] != YY_END_OF_BUFFER_CHAR )
4216 /* They forgot to leave room for the EOB's. */
4219 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4221 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
4223 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4224 b->yy_buf_pos = b->yy_ch_buf = base;
4225 b->yy_is_our_buffer = 0;
4226 b->yy_input_file = 0;
4227 b->yy_n_chars = b->yy_buf_size;
4228 b->yy_is_interactive = 0;
4230 b->yy_fill_buffer = 0;
4231 b->yy_buffer_status = YY_BUFFER_NEW;
4233 surf_parse__switch_to_buffer(b );
4238 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
4239 * scan from a @e copy of @a str.
4240 * @param str a NUL-terminated string to scan
4242 * @return the newly allocated buffer state object.
4243 * @note If you want to scan bytes that may contain NUL values, then use
4244 * surf_parse__scan_bytes() instead.
4246 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yy_str )
4249 return surf_parse__scan_bytes(yy_str,strlen(yy_str) );
4252 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
4253 * scan from a @e copy of @a bytes.
4254 * @param bytes the byte buffer to scan
4255 * @param len the number of bytes in the buffer pointed to by @a bytes.
4257 * @return the newly allocated buffer state object.
4259 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * bytes, int len )
4266 /* Get memory for full buffer, including space for trailing EOB's. */
4268 buf = (char *) surf_parse_alloc(n );
4270 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
4272 for ( i = 0; i < len; ++i )
4275 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
4277 b = surf_parse__scan_buffer(buf,n );
4279 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
4281 /* It's okay to grow etc. this buffer, and we should throw it
4282 * away when we're done.
4284 b->yy_is_our_buffer = 1;
4289 static void yy_push_state (int new_state )
4291 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4295 (yy_start_stack_depth) += YY_START_STACK_INCR;
4296 new_size = (yy_start_stack_depth) * sizeof( int );
4298 if ( ! (yy_start_stack) )
4299 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
4302 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
4304 if ( ! (yy_start_stack) )
4306 "out of memory expanding start-condition stack" );
4309 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4314 static void yy_pop_state (void)
4316 if ( --(yy_start_stack_ptr) < 0 )
4317 YY_FATAL_ERROR( "start-condition stack underflow" );
4319 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4322 #ifndef YY_EXIT_FAILURE
4323 #define YY_EXIT_FAILURE 2
4326 static void yy_fatal_error (yyconst char* msg )
4328 (void) fprintf( stderr, "%s\n", msg );
4329 exit( YY_EXIT_FAILURE );
4332 /* Redefine yyless() so it works in section 3 code. */
4338 /* Undo effects of setting up surf_parse_text. */ \
4339 int yyless_macro_arg = (n); \
4340 YY_LESS_LINENO(yyless_macro_arg);\
4341 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
4342 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
4343 (yy_hold_char) = *(yy_c_buf_p); \
4344 *(yy_c_buf_p) = '\0'; \
4345 surf_parse_leng = yyless_macro_arg; \
4349 /* Accessor methods (get/set functions) to struct members. */
4351 /** Get the current line number.
4354 int surf_parse_get_lineno (void)
4357 return surf_parse_lineno;
4360 /** Get the input stream.
4363 FILE *surf_parse_get_in (void)
4365 return surf_parse_in;
4368 /** Get the output stream.
4371 FILE *surf_parse_get_out (void)
4373 return surf_parse_out;
4376 /** Get the length of the current token.
4379 int surf_parse_get_leng (void)
4381 return surf_parse_leng;
4384 /** Get the current token.
4388 char *surf_parse_get_text (void)
4390 return surf_parse_text;
4393 /** Set the current line number.
4394 * @param line_number
4397 void surf_parse_set_lineno (int line_number )
4400 surf_parse_lineno = line_number;
4403 /** Set the input stream. This does not discard the current
4405 * @param in_str A readable stream.
4407 * @see surf_parse__switch_to_buffer
4409 void surf_parse_set_in (FILE * in_str )
4411 surf_parse_in = in_str ;
4414 void surf_parse_set_out (FILE * out_str )
4416 surf_parse_out = out_str ;
4419 int surf_parse_get_debug (void)
4421 return surf_parse__flex_debug;
4424 void surf_parse_set_debug (int bdebug )
4426 surf_parse__flex_debug = bdebug ;
4429 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
4430 int surf_parse_lex_destroy (void)
4433 /* Pop the buffer stack, destroying each element. */
4434 while(YY_CURRENT_BUFFER){
4435 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4436 YY_CURRENT_BUFFER_LVALUE = NULL;
4437 surf_parse_pop_buffer_state();
4440 /* Destroy the stack itself. */
4441 surf_parse_free((yy_buffer_stack) );
4442 (yy_buffer_stack) = NULL;
4444 /* Destroy the start condition stack. */
4445 surf_parse_free((yy_start_stack) );
4446 (yy_start_stack) = NULL;
4452 * Internal utility routines.
4456 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4459 for ( i = 0; i < n; ++i )
4464 #ifdef YY_NEED_STRLEN
4465 static int yy_flex_strlen (yyconst char * s )
4468 for ( n = 0; s[n]; ++n )
4475 void *surf_parse_alloc (yy_size_t size )
4477 return (void *) malloc( size );
4480 void *surf_parse_realloc (void * ptr, yy_size_t size )
4482 /* The cast to (char *) in the following accommodates both
4483 * implementations that use char* generic pointers, and those
4484 * that use void* generic pointers. It works with the latter
4485 * because both ANSI C and C++ allow castless assignment from
4486 * any pointer type to void*, and deal with argument conversions
4487 * as though doing an assignment.
4489 return (void *) realloc( (char *) ptr, size );
4492 void surf_parse_free (void * ptr )
4494 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
4497 #define YYTABLES_NAME "yytables"
4500 #undef YY_FLUSH_BUFFER
4502 #undef yy_new_buffer
4503 #undef yy_set_interactive
4505 #undef YY_DO_BEFORE_ACTION
4507 #ifdef YY_DECL_IS_OURS
4508 #undef YY_DECL_IS_OURS
4511 #line 821 "surf/surfxml.l"
4515 /* Element context stack lookup. */
4516 int element_context(int i)
4518 return (0<i && i<yy_start_stack_depth
4519 ? yy_start_stack[yy_start_stack_ptr - i]
4524 void print_yy_stack(char* fmt, ...)
4526 int i = 0; va_list ap; va_start(ap, fmt);
4527 vfprintf(stderr, fmt, ap);
4528 for (i=1; i<yy_start_stack_ptr; i++)
4529 fprintf(stderr, "%s/", statenames[yy_start_stack[i] ]);
4530 fprintf(stderr,"%s\n", statenames[YY_START]);
4534 static void debug_enter(int state, const char* statename) {
4535 yy_push_state(state);
4536 if (surf_parse__flex_debug) print_yy_stack("--ENTER(%s) : ",statename);
4539 static void debug_leave(void) {
4540 if (surf_parse__flex_debug) print_yy_stack("--LEAVE : ");
4544 static void debug_set(int state, const char* statename) {
4546 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
4550 enum {flexml_max_err_msg_size = 512};
4552 static char flexml_err_msg[flexml_max_err_msg_size];
4553 const char * parse_err_msg()
4555 return flexml_err_msg;
4558 static void reset_parse_err_msg()
4560 flexml_err_msg[0] = '\0';
4564 static void cleanup(void)
4573 static int fail(const char* fmt, ...)
4575 int chars_left, used;
4576 va_list ap; va_start(ap, fmt);
4577 #ifdef FLEXML_yylineno
4578 used = sprintf(flexml_err_msg,
4579 "Invalid XML (XML input line %d, state %d): ",
4580 surf_parse_lineno, YY_START);
4582 used = sprintf(flexml_err_msg,
4583 "Invalid XML (state %d): ",
4586 chars_left = flexml_max_err_msg_size - used - 1;
4587 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
4590 #ifndef FLEXML_quiet_parser
4591 /* print directly to sdterr */
4592 fprintf(stderr, "%s\n", flexml_err_msg);
4593 flexml_err_msg[0] = '\0';