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 176
372 #define YY_END_OF_BUFFER 177
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[1333] =
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, 177, 175, 22, 10, 10, 22, 22, 155,
393 10, 155, 5, 6, 5, 8, 9, 8, 171, 163,
394 164, 172, 169, 172, 170, 174, 163, 164, 174, 175,
395 26, 10, 26, 26, 26, 24, 30, 10, 30, 175,
396 30, 175, 36, 10, 36, 36, 36, 34, 36, 40,
397 10, 40, 40, 175, 66, 10, 66, 66, 66, 64,
398 66, 66, 66, 66, 66, 66, 70, 10, 70, 175,
399 94, 10, 94, 94, 94, 92, 94, 94, 94, 94,
400 98, 10, 98, 175, 114, 10, 114, 114, 114, 112,
401 114, 114, 114, 118, 10, 118, 175, 118, 124, 10,
402 124, 124, 124, 122, 124, 128, 10, 128, 175, 140,
404 10, 140, 140, 140, 138, 140, 140, 140, 140, 144,
405 10, 144, 175, 144, 150, 10, 150, 150, 150, 148,
406 150, 154, 10, 154, 172, 171, 10, 0, 2, 2,
407 0, 4, 7, 166, 165, 0, 0, 0, 0, 0,
408 0, 0, 25, 27, 0, 0, 0, 0, 0, 0,
409 35, 37, 37, 0, 65, 67, 67, 67, 67, 67,
410 67, 67, 0, 93, 95, 95, 95, 95, 95, 95,
411 0, 113, 115, 115, 115, 115, 0, 0, 123, 125,
412 125, 0, 139, 141, 141, 141, 141, 141, 0, 0,
413 149, 151, 151, 0, 0, 0, 0, 0, 0, 0,
415 3, 0, 0, 0, 0, 0, 0, 0, 173, 0,
416 0, 0, 0, 0, 0, 0, 0, 37, 0, 0,
417 67, 67, 67, 67, 67, 67, 0, 0, 95, 95,
418 95, 95, 95, 0, 0, 115, 115, 115, 0, 0,
419 0, 125, 0, 0, 141, 141, 141, 141, 0, 0,
420 0, 151, 0, 0, 0, 168, 0, 21, 1, 0,
421 0, 161, 0, 0, 0, 158, 157, 0, 0, 0,
422 0, 29, 0, 41, 0, 0, 0, 0, 37, 0,
423 0, 39, 0, 67, 67, 67, 67, 67, 67, 0,
424 0, 69, 0, 95, 95, 95, 95, 95, 0, 0,
426 97, 0, 0, 0, 115, 0, 0, 0, 0, 117,
427 0, 0, 125, 0, 0, 127, 0, 141, 141, 141,
428 141, 0, 0, 143, 0, 0, 151, 0, 0, 153,
429 0, 0, 0, 0, 162, 156, 0, 0, 0, 0,
430 41, 0, 0, 0, 0, 0, 0, 0, 67, 67,
431 67, 0, 0, 67, 67, 0, 95, 95, 0, 0,
432 95, 95, 0, 0, 103, 102, 115, 0, 101, 100,
433 0, 0, 0, 0, 0, 141, 0, 0, 141, 141,
434 0, 0, 151, 0, 0, 0, 0, 0, 12, 0,
435 159, 160, 0, 0, 0, 0, 0, 99, 0, 33,
437 32, 0, 67, 67, 67, 0, 43, 42, 0, 0,
438 0, 0, 67, 0, 68, 95, 95, 0, 73, 72,
439 95, 0, 0, 95, 0, 115, 0, 0, 0, 121,
440 120, 0, 141, 0, 131, 130, 141, 141, 0, 0,
441 0, 0, 0, 0, 0, 0, 0, 11, 0, 0,
442 0, 0, 0, 99, 0, 67, 67, 67, 0, 45,
443 44, 0, 0, 0, 67, 95, 95, 95, 0, 0,
444 0, 95, 0, 115, 0, 0, 0, 141, 141, 141,
445 0, 0, 0, 147, 146, 0, 0, 0, 0, 0,
446 0, 0, 31, 0, 129, 0, 67, 67, 67, 0,
448 0, 67, 95, 0, 0, 95, 95, 0, 0, 95,
449 0, 115, 0, 116, 0, 0, 141, 141, 141, 0,
450 0, 0, 0, 0, 0, 0, 0, 0, 31, 0,
451 129, 0, 67, 67, 67, 0, 0, 0, 0, 67,
452 95, 0, 79, 78, 95, 95, 0, 0, 0, 0,
453 95, 0, 115, 0, 0, 0, 0, 141, 141, 0,
454 145, 0, 167, 0, 0, 0, 0, 0, 0, 0,
455 38, 67, 67, 67, 0, 51, 0, 50, 67, 0,
456 0, 95, 95, 95, 0, 83, 0, 82, 95, 0,
457 115, 0, 0, 0, 133, 132, 0, 0, 141, 0,
459 142, 145, 0, 0, 0, 0, 0, 0, 0, 0,
460 0, 0, 0, 0, 67, 67, 67, 53, 52, 0,
461 0, 0, 75, 74, 95, 95, 95, 85, 84, 0,
462 0, 0, 115, 115, 0, 0, 0, 137, 136, 0,
463 0, 0, 152, 0, 0, 0, 0, 0, 0, 0,
464 0, 0, 0, 0, 0, 67, 67, 67, 0, 55,
465 54, 95, 95, 95, 0, 87, 86, 0, 115, 115,
466 0, 0, 0, 135, 134, 0, 0, 0, 0, 0,
467 0, 0, 0, 0, 0, 0, 71, 0, 0, 67,
468 67, 67, 95, 0, 0, 95, 0, 115, 115, 0,
470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
471 0, 0, 0, 71, 0, 47, 46, 67, 67, 67,
472 67, 95, 0, 81, 80, 95, 0, 0, 0, 115,
473 0, 0, 115, 119, 0, 0, 0, 0, 0, 0,
474 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
475 67, 67, 67, 0, 0, 0, 0, 0, 96, 0,
476 107, 106, 115, 0, 105, 104, 115, 119, 0, 0,
477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
478 0, 0, 0, 0, 67, 67, 67, 67, 0, 77,
479 76, 0, 0, 0, 115, 115, 0, 126, 0, 0,
481 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
482 12, 0, 0, 0, 67, 67, 67, 67, 0, 0,
483 0, 0, 115, 115, 0, 0, 0, 0, 0, 0,
484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
485 0, 0, 0, 0, 67, 0, 0, 0, 0, 0,
486 0, 115, 115, 0, 0, 0, 0, 0, 0, 0,
487 0, 0, 0, 0, 0, 49, 48, 0, 59, 58,
488 0, 57, 56, 67, 0, 63, 62, 0, 0, 0,
489 0, 115, 115, 0, 0, 0, 0, 0, 0, 0,
490 0, 11, 0, 0, 67, 0, 0, 0, 0, 115,
492 115, 0, 0, 0, 0, 0, 0, 0, 0, 23,
493 0, 67, 0, 0, 0, 0, 115, 115, 0, 0,
494 0, 0, 0, 0, 0, 0, 0, 23, 0, 67,
495 0, 0, 0, 0, 115, 115, 0, 0, 0, 0,
496 0, 0, 0, 0, 0, 0, 28, 0, 0, 0,
497 89, 0, 88, 115, 115, 0, 0, 0, 0, 0,
498 0, 0, 0, 0, 0, 0, 61, 60, 91, 90,
499 115, 115, 0, 0, 0, 0, 0, 0, 0, 0,
500 0, 0, 115, 115, 0, 0, 0, 0, 0, 0,
501 0, 0, 0, 0, 0, 0, 115, 115, 0, 0,
503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
504 0, 115, 115, 0, 0, 0, 0, 0, 0, 0,
505 0, 0, 0, 0, 0, 0, 115, 115, 0, 0,
506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
507 0, 115, 115, 0, 0, 0, 0, 0, 0, 0,
508 0, 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, 111, 110, 0, 109, 108,
511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
512 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
516 0, 0, 0, 0, 0, 0, 0, 15, 0, 0,
517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520 0, 17, 0, 0, 0, 0, 0, 0, 0, 0,
521 0, 0, 0, 0, 0, 16, 0, 0, 0, 0,
522 0, 20, 0, 0, 0, 13, 0, 0, 0, 0,
523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
526 19, 0, 0, 0, 0, 0, 0, 14, 0, 0,
527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
531 static yyconst flex_int32_t yy_ec[256] =
533 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
534 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
535 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
536 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
537 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
538 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
539 17, 18, 19, 1, 20, 21, 22, 23, 24, 25,
540 14, 26, 27, 14, 14, 14, 28, 29, 30, 31,
541 14, 32, 33, 34, 14, 14, 14, 14, 35, 14,
542 36, 1, 37, 1, 38, 1, 39, 40, 41, 42,
544 43, 44, 45, 46, 47, 14, 48, 49, 50, 51,
545 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
546 62, 14, 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,
551 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
552 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
553 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
555 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
556 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
557 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
558 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
559 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
563 static yyconst flex_int32_t yy_meta[63] =
565 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
566 3, 1, 4, 5, 1, 1, 1, 6, 1, 7,
567 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
568 5, 5, 5, 5, 5, 1, 1, 5, 7, 7,
569 7, 7, 7, 7, 5, 5, 5, 5, 5, 5,
570 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
574 static yyconst flex_int16_t yy_base[1389] =
576 0, 0, 0, 3, 6, 9, 24, 27, 11, 14,
577 15, 17, 29, 38, 45, 52, 59, 61, 67, 70,
578 98, 135, 73, 76, 116, 153, 157, 160, 163, 178,
579 181, 184, 200, 244, 218, 222, 225, 262, 266, 269,
580 273, 288, 291, 294, 310, 0, 371, 374, 377, 380,
581 396, 452, 414, 418, 421, 424, 508, 564, 470, 474,
582 477, 480, 526, 530, 533, 536, 582, 586, 620, 671,
583 589, 592, 638, 642, 722, 778, 645, 648, 689, 693,
584 696, 699, 740, 744, 747, 751, 834, 893, 796, 800,
585 817, 852, 3648, 3649, 3649, 91, 119, 47, 62, 3649,
587 122, 170, 3649, 3649, 3637, 3649, 3649, 3628, 3649, 3641,
588 3641, 820, 3649, 3649, 3649, 3649, 3639, 3639, 3604, 699,
589 3649, 125, 3622, 0, 172, 3649, 3649, 228, 872, 873,
590 430, 843, 3649, 297, 3621, 0, 173, 3649, 3591, 3649,
591 495, 926, 542, 787, 3649, 502, 3619, 0, 424, 3649,
592 3577, 3584, 3595, 3594, 3580, 3574, 3649, 554, 598, 756,
593 3649, 610, 3612, 0, 543, 3649, 3590, 3589, 3588, 393,
594 3649, 663, 650, 812, 3649, 717, 3608, 0, 599, 3649,
595 3569, 3574, 3568, 3649, 769, 861, 867, 757, 3649, 806,
596 3604, 0, 800, 3649, 3582, 3649, 879, 927, 902, 3649,
598 931, 3602, 0, 813, 3649, 3561, 3566, 3570, 3559, 3649,
599 938, 931, 932, 942, 3649, 954, 3597, 0, 856, 3649,
600 3575, 3649, 960, 963, 3608, 3575, 981, 34, 3550, 3649,
601 3600, 3591, 3649, 3649, 3649, 26, 32, 3551, 3550, 3548,
602 3587, 3555, 3649, 0, 3550, 3549, 3550, 3557, 3544, 3546,
603 3649, 0, 3548, 3549, 3649, 0, 3556, 3537, 3532, 3542,
604 3531, 3551, 3548, 3649, 0, 3537, 3530, 3536, 3546, 3545,
605 3532, 3649, 0, 3525, 3528, 3539, 3524, 3526, 3649, 0,
606 3527, 3521, 3649, 0, 3524, 3518, 3524, 3533, 3518, 3515,
607 3649, 0, 3520, 3529, 3531, 3548, 3547, 3554, 5, 3513,
609 3649, 75, 0, 3509, 3509, 3545, 3544, 3506, 3649, 3518,
610 984, 987, 3498, 3514, 3497, 3501, 3494, 3508, 990, 993,
611 3503, 3506, 3510, 3504, 3503, 3488, 996, 1013, 3502, 3500,
612 3499, 3486, 3483, 1016, 1019, 1022, 3500, 1025, 1043, 1046,
613 3480, 3494, 1049, 1052, 3495, 3478, 3485, 3478, 1055, 1072,
614 3487, 3473, 1075, 1078, 3508, 3649, 3511, 3649, 3649, 152,
615 3479, 3649, 3512, 3511, 3469, 3649, 3649, 3467, 3466, 1081,
616 1084, 3649, 1103, 1106, 3473, 3461, 3479, 3462, 1109, 1112,
617 1116, 3649, 1120, 3469, 3462, 3464, 1133, 3460, 3471, 1137,
618 1141, 3649, 1144, 3453, 3461, 1149, 3464, 3467, 1154, 1161,
620 3649, 1165, 1171, 1178, 3468, 1174, 1190, 1201, 1205, 3649,
621 1208, 3451, 1211, 1214, 1227, 3649, 1231, 3450, 1234, 3468,
622 3448, 1237, 1240, 3649, 1244, 3446, 3460, 1250, 1257, 3649,
623 1261, 3479, 115, 1267, 3649, 3649, 3486, 3485, 3455, 1270,
624 1274, 3440, 3445, 3453, 3452, 1278, 1288, 1296, 3455, 3449,
625 3434, 1299, 1306, 1315, 1318, 1321, 3444, 3449, 1326, 1338,
626 3438, 1334, 1346, 1351, 3649, 3649, 3431, 1359, 3649, 3649,
627 1367, 3444, 1371, 1374, 1387, 3439, 1390, 1393, 3428, 3446,
628 1407, 3433, 1410, 1413, 3462, 205, 3463, 1416, 3649, 3462,
629 3649, 3649, 3427, 1419, 3436, 3422, 3420, 1426, 1436, 3649,
631 3649, 1447, 3435, 3431, 3416, 1451, 3649, 3649, 1464, 1470,
632 1480, 1483, 3428, 1491, 3649, 3429, 3408, 1497, 3649, 3649,
633 3424, 1508, 1511, 3424, 1519, 3429, 1524, 3428, 1527, 3649,
634 3649, 1536, 3413, 1541, 3649, 3649, 3417, 3406, 1554, 3419,
635 1549, 1559, 1571, 3427, 66, 368, 150, 3649, 3405, 1574,
636 3416, 3410, 3401, 1578, 1581, 3409, 3400, 3409, 1584, 3649,
637 3649, 1592, 3423, 3422, 3404, 3393, 1600, 3411, 1603, 3418,
638 3417, 3399, 1611, 3393, 1616, 3401, 1629, 3392, 3392, 3394,
639 1633, 3389, 1637, 3649, 3649, 1650, 3419, 172, 217, 140,
640 3388, 1646, 1653, 3399, 1656, 1659, 3387, 3392, 3382, 214,
642 254, 3384, 3386, 1667, 1670, 3387, 3377, 277, 280, 3380,
643 1678, 3377, 1688, 3649, 3378, 1695, 1683, 3383, 3375, 1701,
644 3367, 1705, 3387, 1712, 181, 392, 3384, 1718, 1708, 3372,
645 1725, 1729, 3373, 3368, 3371, 3392, 3410, 3390, 3405, 3370,
646 1737, 1740, 3649, 3649, 3365, 3359, 3385, 3403, 3383, 3398,
647 3363, 1748, 3367, 3361, 1756, 1759, 1775, 1768, 3360, 1785,
648 1788, 1791, 3649, 1847, 266, 256, 3360, 1794, 3354, 1797,
649 3649, 3343, 3358, 3347, 3391, 3649, 3387, 3649, 1804, 1814,
650 1820, 3351, 3345, 3344, 3386, 3649, 3382, 3649, 1835, 1838,
651 918, 3340, 1841, 1851, 3649, 3649, 1859, 1864, 1875, 1878,
653 3649, 1831, 1887, 376, 469, 812, 224, 560, 423, 448,
654 433, 3346, 1904, 3337, 3325, 3343, 3340, 3649, 3649, 1907,
655 1910, 1923, 3649, 3649, 3337, 3340, 3335, 3649, 3649, 1931,
656 1934, 1947, 3325, 3325, 3336, 1950, 1953, 3649, 3649, 1967,
657 1970, 1978, 3649, 542, 73, 676, 484, 667, 545, 473,
658 867, 897, 3322, 1983, 3329, 1986, 3338, 3337, 1989, 3649,
659 3649, 3325, 2002, 3332, 2005, 3649, 3649, 2013, 3315, 3330,
660 3319, 2018, 2026, 3649, 3649, 541, 2035, 696, 650, 756,
661 695, 947, 589, 2038, 3328, 2041, 2044, 2048, 2064, 3226,
662 231, 3214, 3216, 2072, 2075, 3194, 2083, 2088, 2091, 3196,
664 2096, 899, 2100, 601, 759, 962, 926, 935, 2107, 2117,
665 2134, 3195, 2142, 2113, 2147, 3649, 3649, 3200, 3201, 3198,
666 3199, 2155, 2159, 3649, 3649, 2167, 2171, 2174, 2184, 3175,
667 2177, 2193, 3168, 2201, 2204, 958, 625, 846, 598, 805,
668 954, 2207, 2210, 2214, 2231, 2261, 2298, 3176, 2239, 3169,
669 3172, 3157, 3146, 2227, 2244, 2279, 2282, 2256, 3649, 2316,
670 3649, 3649, 3151, 2324, 3649, 3649, 3146, 2252, 2334, 989,
671 1099, 995, 985, 746, 1012, 2337, 1017, 2340, 1083, 41,
672 2370, 2407, 2981, 2399, 2990, 2973, 2989, 2987, 2357, 3649,
673 3649, 2388, 413, 518, 2972, 2970, 2365, 3649, 1014, 180,
675 2427, 1025, 991, 2430, 1136, 1051, 1085, 370, 3019, 1177,
676 3015, 2433, 2966, 2436, 2453, 2456, 2459, 2462, 3002, 2990,
677 2989, 2981, 2959, 2958, 2465, 367, 2478, 1076, 1054, 2482,
678 1152, 1182, 2996, 2784, 2792, 2488, 2741, 2491, 2499, 2515,
679 2510, 2526, 2534, 2537, 2688, 2550, 2553, 2691, 2661, 2489,
680 2433, 2404, 2390, 2561, 1239, 1171, 811, 1179, 1269, 1348,
681 1047, 2366, 2304, 2566, 2569, 3649, 3649, 2579, 3649, 3649,
682 2587, 3649, 3649, 2308, 2595, 3649, 3649, 2298, 2261, 2184,
683 2132, 2055, 2019, 1349, 2603, 1293, 1077, 1315, 1313, 476,
684 1316, 3649, 2012, 2606, 2017, 1986, 1921, 1890, 1879, 1812,
686 1696, 1368, 2613, 1369, 1142, 1380, 1428, 1265, 1382, 2396,
687 2623, 1689, 1591, 1588, 1569, 1512, 1333, 1259, 1443, 1408,
688 1414, 1232, 2626, 1183, 1289, 2630, 1386, 2633, 2636, 2643,
689 1260, 1214, 1125, 1122, 1086, 969, 1417, 1438, 1440, 1460,
690 2647, 1486, 1462, 2653, 2664, 2673, 3649, 2681, 2684, 881,
691 3649, 870, 3649, 821, 710, 1490, 1514, 1573, 2692, 1434,
692 1180, 2697, 1552, 1609, 2700, 2703, 3649, 3649, 3649, 3649,
693 719, 678, 2717, 1516, 1598, 2720, 1531, 1506, 2728, 1660,
694 1676, 1484, 655, 498, 2738, 1627, 1706, 1699, 1717, 1473,
695 1390, 1727, 1746, 1764, 1792, 1592, 464, 401, 1802, 1818,
697 1498, 1719, 1707, 1846, 1606, 1334, 1857, 1865, 1786, 1828,
698 1793, 344, 351, 1881, 1883, 1626, 1879, 1875, 1903, 1867,
699 1762, 1942, 1957, 1810, 1900, 1959, 88, 53, 2005, 2007,
700 652, 948, 2036, 2039, 2746, 1913, 2078, 2088, 1949, 1960,
701 2054, 2749, 2755, 2095, 2110, 1902, 1924, 2051, 2105, 2759,
702 2767, 2124, 2137, 1984, 2000, 2771, 2776, 2788, 2779, 2796,
703 2234, 2271, 2070, 2164, 2174, 2201, 2182, 2183, 2804, 2274,
704 2303, 2016, 2130, 2807, 2815, 3649, 3649, 2824, 3649, 3649,
705 2330, 2346, 2269, 2305, 2313, 2332, 2254, 2347, 2386, 2400,
706 2423, 2429, 2432, 2253, 2339, 2459, 2527, 1677, 1537, 2409,
708 2487, 2112, 2290, 2257, 2515, 2531, 2336, 2504, 2486, 2489,
709 2569, 2584, 2832, 2457, 2492, 2542, 2548, 1929, 2532, 2600,
710 2655, 2671, 2470, 2559, 2674, 2718, 2836, 3649, 2651, 2654,
711 2582, 2602, 2646, 2660, 2710, 1807, 2469, 2635, 2768, 2727,
712 2758, 2802, 2805, 2737, 2796, 2208, 2811, 2813, 2839, 2814,
713 2827, 2830, 2831, 2605, 2594, 2833, 2834, 2856, 2721, 2643,
714 2859, 3649, 2846, 2847, 2850, 2786, 2867, 2868, 2869, 2889,
715 2897, 2860, 2863, 2900, 2917, 3649, 2848, 2866, 2502, 2849,
716 2920, 3649, 2895, 2899, 2923, 3649, 2871, 2876, 2696, 2858,
717 2911, 2912, 2913, 2914, 2893, 2896, 2916, 2918, 2931, 2934,
719 2921, 2922, 2926, 2927, 2956, 2924, 2928, 2944, 2952, 2974,
720 3649, 2929, 2945, 2978, 2939, 2949, 2997, 3649, 2953, 2972,
721 2966, 2968, 2954, 2969, 2975, 2976, 2985, 2988, 3010, 3017,
722 3649, 3649, 3035, 3042, 3049, 3056, 3063, 3070, 3077, 3084,
723 3091, 3098, 3105, 3112, 3119, 3126, 3133, 3140, 3147, 3154,
724 3161, 3168, 3175, 3182, 3187, 3192, 3197, 3202, 3207, 3212,
725 3217, 3222, 3229, 3232, 3235, 3238, 3241, 3244, 3247, 3250,
726 3253, 3260, 3264, 3270, 3276, 3282, 3288, 3294, 3300, 3306,
727 3312, 3319, 3326, 3333, 3340, 3347, 3354, 3361
730 static yyconst flex_int16_t yy_def[1389] =
732 1333, 1333, 1334, 1334, 1334, 1334, 1335, 1335, 1336, 1336,
733 1337, 1337, 1338, 1338, 1338, 1338, 1339, 1339, 1333, 1333,
734 1340, 1340, 1341, 1341, 1333, 1333, 1341, 1341, 1341, 1341,
735 1333, 1333, 1342, 1342, 1343, 1343, 1333, 1333, 1343, 1343,
736 1343, 1343, 1333, 1333, 1332, 45, 1344, 1344, 1333, 1333,
737 1345, 1345, 1346, 1346, 1333, 1333, 1347, 1347, 1348, 1348,
738 1333, 1333, 1348, 1348, 1348, 1348, 1333, 1333, 1349, 1349,
739 1350, 1350, 1333, 1333, 1351, 1351, 1352, 1352, 1333, 1333,
740 1352, 1352, 1352, 1352, 1333, 1333, 1353, 1353, 1354, 1354,
741 1338, 1338, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
743 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
744 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
745 1332, 1332, 1332, 1355, 1332, 1332, 1332, 1332, 1332, 1332,
746 1332, 1332, 1332, 1332, 1332, 1356, 1332, 1332, 1356, 1332,
747 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1357, 1332, 1332,
748 1357, 1357, 1357, 1357, 1357, 1357, 1332, 1332, 1332, 1332,
749 1332, 1332, 1332, 1358, 1332, 1332, 1358, 1358, 1358, 1358,
750 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1359, 1332, 1332,
751 1359, 1359, 1359, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
752 1332, 1360, 1332, 1332, 1360, 1332, 1332, 1332, 1332, 1332,
754 1332, 1332, 1361, 1332, 1332, 1361, 1361, 1361, 1361, 1332,
755 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1362, 1332, 1332,
756 1362, 1332, 1332, 1332, 1332, 1332, 1332, 1363, 1332, 1332,
757 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
758 1332, 1332, 1332, 1355, 1364, 1332, 1332, 1332, 1332, 1332,
759 1332, 1356, 1356, 1365, 1332, 1357, 1357, 1357, 1357, 1357,
760 1357, 1357, 1366, 1332, 1358, 1358, 1358, 1358, 1358, 1358,
761 1367, 1332, 1359, 1359, 1359, 1359, 1368, 1332, 1332, 1360,
762 1360, 1369, 1332, 1361, 1361, 1361, 1361, 1361, 1370, 1332,
763 1332, 1362, 1362, 1371, 1332, 1332, 1372, 1332, 1372, 1332,
765 1332, 1332, 1373, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
766 1374, 1374, 1332, 1332, 1332, 1332, 1332, 1356, 1375, 1375,
767 1357, 1357, 1357, 1357, 1357, 1357, 1376, 1376, 1358, 1358,
768 1358, 1358, 1358, 1377, 1377, 1359, 1359, 1359, 1378, 1378,
769 1332, 1360, 1379, 1379, 1361, 1361, 1361, 1361, 1380, 1380,
770 1332, 1362, 1381, 1381, 1332, 1332, 1372, 1332, 1332, 1372,
771 1332, 1332, 1373, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
772 1374, 1332, 1374, 1332, 1332, 1332, 1332, 1332, 1356, 1332,
773 1375, 1332, 1375, 1357, 1357, 1357, 1357, 1357, 1357, 1332,
774 1376, 1332, 1376, 1358, 1358, 1358, 1358, 1358, 1332, 1377,
776 1332, 1377, 1332, 1332, 1359, 1332, 1332, 1332, 1378, 1332,
777 1378, 1332, 1360, 1332, 1379, 1332, 1379, 1361, 1361, 1361,
778 1361, 1332, 1380, 1332, 1380, 1332, 1362, 1332, 1381, 1332,
779 1381, 1332, 1372, 1382, 1332, 1332, 1332, 1332, 1332, 1374,
780 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1375, 1357, 1357,
781 1357, 1332, 1332, 1357, 1357, 1376, 1358, 1358, 1332, 1332,
782 1358, 1358, 1377, 1332, 1332, 1332, 1359, 1332, 1332, 1332,
783 1378, 1332, 1332, 1332, 1379, 1361, 1332, 1332, 1361, 1361,
784 1380, 1332, 1362, 1381, 1332, 1372, 1382, 1382, 1332, 1382,
785 1332, 1332, 1332, 1374, 1332, 1332, 1332, 1332, 1332, 1332,
787 1332, 1375, 1357, 1357, 1357, 1332, 1332, 1332, 1332, 1332,
788 1332, 1332, 1357, 1332, 1332, 1358, 1358, 1332, 1332, 1332,
789 1358, 1332, 1332, 1358, 1377, 1359, 1378, 1332, 1332, 1332,
790 1332, 1379, 1361, 1332, 1332, 1332, 1361, 1361, 1380, 1332,
791 1332, 1332, 1381, 1332, 1372, 1382, 1382, 1332, 1332, 1374,
792 1332, 1332, 1332, 1332, 1375, 1357, 1357, 1357, 1332, 1332,
793 1332, 1332, 1332, 1332, 1357, 1358, 1358, 1358, 1332, 1332,
794 1332, 1358, 1377, 1359, 1378, 1332, 1379, 1361, 1361, 1361,
795 1380, 1332, 1332, 1332, 1332, 1381, 1332, 1372, 1382, 1382,
796 1332, 1374, 1332, 1332, 1332, 1375, 1357, 1357, 1357, 1332,
798 1332, 1357, 1358, 1332, 1332, 1358, 1358, 1332, 1332, 1358,
799 1377, 1359, 1332, 1332, 1332, 1379, 1361, 1361, 1361, 1380,
800 1332, 1381, 1332, 1372, 1382, 1382, 1332, 1374, 1332, 1332,
801 1332, 1375, 1357, 1357, 1357, 1332, 1332, 1332, 1332, 1357,
802 1358, 1332, 1332, 1332, 1358, 1358, 1332, 1332, 1332, 1332,
803 1358, 1377, 1359, 1332, 1379, 1332, 1332, 1361, 1361, 1380,
804 1332, 1381, 1332, 1372, 1382, 1382, 1332, 1374, 1332, 1332,
805 1332, 1357, 1357, 1357, 1332, 1332, 1332, 1332, 1357, 1332,
806 1332, 1358, 1358, 1358, 1332, 1332, 1332, 1332, 1358, 1377,
807 1359, 1332, 1379, 1332, 1332, 1332, 1332, 1332, 1361, 1332,
809 1332, 1332, 1381, 1372, 1372, 1372, 1372, 1372, 1372, 1382,
810 1382, 1332, 1374, 1332, 1357, 1357, 1357, 1332, 1332, 1332,
811 1332, 1332, 1332, 1332, 1358, 1358, 1358, 1332, 1332, 1332,
812 1332, 1377, 1359, 1359, 1332, 1379, 1332, 1332, 1332, 1332,
813 1332, 1332, 1332, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
814 1382, 1382, 1332, 1374, 1332, 1357, 1357, 1357, 1332, 1332,
815 1332, 1358, 1358, 1358, 1332, 1332, 1332, 1377, 1359, 1359,
816 1332, 1379, 1332, 1332, 1332, 1372, 1372, 1372, 1372, 1372,
817 1372, 1372, 1382, 1382, 1332, 1374, 1332, 1332, 1332, 1357,
818 1357, 1357, 1358, 1332, 1332, 1358, 1377, 1359, 1359, 1332,
820 1379, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1382, 1382,
821 1382, 1332, 1374, 1332, 1332, 1332, 1332, 1357, 1357, 1357,
822 1357, 1358, 1332, 1332, 1332, 1358, 1377, 1332, 1332, 1359,
823 1332, 1332, 1359, 1332, 1379, 1372, 1372, 1372, 1372, 1372,
824 1372, 1372, 1382, 1382, 1382, 1383, 1384, 1332, 1374, 1357,
825 1357, 1357, 1357, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
826 1332, 1332, 1359, 1332, 1332, 1332, 1359, 1332, 1379, 1372,
827 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1382, 1385, 1386,
828 1383, 1384, 1332, 1374, 1357, 1357, 1357, 1357, 1332, 1332,
829 1332, 1332, 1332, 1332, 1359, 1359, 1332, 1332, 1372, 1372,
831 1372, 1372, 1372, 1372, 1372, 1372, 1385, 1382, 1387, 1386,
832 1388, 1382, 1332, 1374, 1357, 1357, 1357, 1357, 1332, 1332,
833 1332, 1332, 1359, 1359, 1372, 1372, 1372, 1372, 1372, 1372,
834 1372, 1372, 1387, 1332, 1388, 1382, 1332, 1374, 1332, 1332,
835 1332, 1332, 1332, 1332, 1357, 1332, 1332, 1332, 1332, 1332,
836 1332, 1359, 1359, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
837 1372, 1332, 1332, 1374, 1332, 1332, 1332, 1332, 1332, 1332,
838 1332, 1332, 1332, 1357, 1332, 1332, 1332, 1332, 1332, 1332,
839 1332, 1359, 1359, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
840 1372, 1332, 1332, 1374, 1357, 1332, 1332, 1332, 1332, 1359,
842 1359, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1332,
843 1374, 1357, 1332, 1332, 1332, 1332, 1359, 1359, 1372, 1372,
844 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1332, 1374, 1357,
845 1332, 1332, 1332, 1332, 1359, 1359, 1372, 1372, 1372, 1372,
846 1372, 1372, 1372, 1372, 1372, 1332, 1332, 1332, 1332, 1332,
847 1332, 1332, 1332, 1359, 1359, 1372, 1372, 1372, 1372, 1372,
848 1372, 1372, 1372, 1372, 1372, 1332, 1332, 1332, 1332, 1332,
849 1359, 1359, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
850 1372, 1372, 1359, 1359, 1372, 1372, 1372, 1372, 1372, 1372,
851 1372, 1372, 1372, 1372, 1372, 1372, 1359, 1359, 1372, 1372,
853 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
854 1372, 1359, 1359, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
855 1372, 1372, 1372, 1372, 1372, 1372, 1359, 1359, 1372, 1372,
856 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
857 1372, 1359, 1359, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
858 1372, 1372, 1372, 1372, 1372, 1372, 1332, 1332, 1332, 1332,
859 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
860 1372, 1372, 1372, 1372, 1332, 1332, 1332, 1332, 1332, 1332,
861 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
862 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
864 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
865 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
866 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1332, 1372, 1372,
867 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
868 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
869 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
870 1372, 1332, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
871 1372, 1372, 1372, 1372, 1372, 1332, 1372, 1372, 1372, 1372,
872 1372, 1332, 1372, 1372, 1372, 1332, 1372, 1372, 1372, 1372,
873 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
875 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
876 1332, 1372, 1372, 1372, 1372, 1372, 1372, 1332, 1372, 1372,
877 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372,
878 1332, 0, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
879 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
880 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
881 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
882 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
883 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332
886 static yyconst flex_int16_t yy_nxt[3712] =
888 1332, 96, 97, 96, 96, 97, 96, 96, 97, 96,
889 96, 97, 96, 104, 1332, 98, 104, 107, 98, 107,
890 105, 99, 358, 105, 99, 101, 97, 101, 101, 97,
891 101, 110, 111, 108, 360, 108, 112, 113, 302, 102,
892 110, 111, 102, 298, 114, 112, 113, 110, 111, 908,
893 115, 228, 112, 114, 110, 111, 299, 115, 911, 112,
894 114, 117, 118, 117, 118, 229, 228, 114, 97, 97,
895 97, 97, 97, 97, 128, 97, 128, 128, 97, 128,
896 230, 304, 120, 358, 305, 120, 303, 302, 129, 362,
897 358, 129, 227, 227, 227, 119, 588, 119, 121, 122,
899 97, 122, 121, 121, 121, 121, 121, 121, 121, 123,
900 121, 1143, 121, 125, 121, 126, 121, 97, 97, 97,
901 227, 227, 227, 227, 227, 227, 227, 227, 227, 1142,
902 777, 130, 358, 121, 121, 121, 122, 97, 122, 121,
903 121, 121, 121, 121, 121, 121, 123, 121, 486, 121,
904 125, 121, 126, 121, 97, 97, 97, 489, 128, 97,
905 128, 128, 97, 128, 128, 97, 128, 489, 130, 358,
906 121, 121, 129, 433, 231, 129, 231, 231, 131, 128,
907 97, 128, 97, 97, 97, 97, 97, 97, 230, 358,
908 230, 230, 590, 131, 626, 624, 132, 358, 489, 132,
910 133, 134, 97, 134, 133, 133, 133, 133, 133, 133,
911 133, 135, 133, 926, 133, 137, 133, 138, 133, 141,
912 97, 141, 358, 141, 97, 141, 97, 97, 97, 227,
913 227, 227, 665, 142, 489, 133, 133, 142, 636, 545,
914 130, 358, 637, 139, 133, 134, 97, 134, 133, 133,
915 133, 133, 133, 133, 133, 135, 133, 625, 133, 137,
916 133, 138, 133, 97, 97, 97, 747, 141, 97, 141,
917 141, 97, 141, 489, 141, 97, 141, 130, 638, 133,
918 133, 142, 639, 489, 142, 819, 820, 139, 143, 141,
919 97, 141, 97, 97, 97, 97, 97, 97, 227, 227,
921 227, 647, 711, 143, 649, 648, 144, 710, 650, 144,
922 145, 146, 97, 146, 145, 145, 145, 145, 145, 145,
923 145, 147, 145, 148, 145, 149, 145, 150, 145, 148,
924 148, 148, 148, 148, 148, 148, 148, 148, 148, 148,
925 148, 148, 148, 148, 148, 145, 145, 148, 151, 148,
926 148, 148, 148, 148, 148, 148, 152, 148, 148, 153,
927 154, 148, 155, 148, 148, 156, 148, 148, 148, 148,
928 148, 148, 158, 97, 158, 158, 97, 158, 97, 97,
929 97, 97, 97, 97, 358, 489, 159, 489, 490, 159,
930 955, 1128, 160, 358, 1127, 160, 161, 162, 97, 162,
932 161, 161, 161, 161, 161, 161, 161, 163, 161, 489,
933 161, 165, 161, 166, 161, 172, 97, 172, 589, 172,
934 97, 172, 97, 97, 97, 97, 97, 97, 231, 173,
935 744, 161, 161, 173, 231, 167, 174, 919, 269, 174,
936 358, 245, 230, 1113, 168, 920, 169, 666, 230, 270,
937 489, 170, 161, 162, 97, 162, 161, 161, 161, 161,
938 161, 161, 161, 163, 161, 489, 161, 165, 161, 166,
939 161, 185, 97, 185, 750, 185, 97, 185, 97, 97,
940 97, 97, 97, 97, 752, 186, 358, 161, 161, 186,
941 358, 167, 187, 358, 751, 187, 227, 227, 227, 1008,
943 168, 358, 169, 227, 227, 227, 1112, 170, 175, 176,
944 97, 176, 175, 175, 175, 175, 175, 175, 175, 177,
945 175, 745, 175, 179, 175, 180, 175, 185, 97, 185,
946 782, 185, 97, 185, 185, 97, 185, 185, 97, 185,
947 779, 186, 921, 175, 175, 186, 231, 231, 188, 181,
948 922, 188, 1098, 254, 182, 227, 227, 227, 358, 358,
949 230, 230, 358, 183, 175, 176, 97, 176, 175, 175,
950 175, 175, 175, 175, 175, 177, 175, 358, 175, 179,
951 175, 180, 175, 97, 97, 97, 776, 97, 97, 97,
952 197, 97, 197, 197, 97, 197, 781, 187, 802, 175,
954 175, 187, 231, 231, 198, 181, 489, 198, 748, 263,
955 182, 227, 227, 227, 749, 358, 230, 230, 358, 183,
956 189, 190, 97, 190, 189, 189, 189, 189, 189, 189,
957 189, 191, 189, 809, 189, 193, 189, 194, 189, 97,
958 97, 97, 358, 97, 97, 97, 211, 97, 211, 211,
959 97, 211, 873, 199, 231, 189, 189, 199, 838, 871,
960 212, 271, 1146, 212, 227, 227, 227, 358, 230, 358,
961 195, 189, 190, 97, 190, 189, 189, 189, 189, 189,
962 189, 189, 191, 189, 358, 189, 193, 189, 194, 189,
963 97, 97, 97, 358, 97, 97, 97, 211, 97, 211,
965 211, 97, 211, 231, 213, 780, 189, 189, 213, 805,
966 1097, 212, 358, 358, 212, 1084, 778, 230, 227, 227,
967 227, 195, 200, 201, 97, 201, 200, 200, 200, 200,
968 200, 200, 200, 202, 200, 807, 200, 204, 200, 205,
969 200, 211, 97, 211, 804, 211, 97, 211, 97, 97,
970 97, 242, 97, 97, 97, 214, 1083, 200, 200, 214,
971 231, 231, 213, 358, 1072, 206, 213, 207, 277, 208,
972 227, 227, 227, 358, 230, 230, 358, 209, 200, 201,
973 97, 201, 200, 200, 200, 200, 200, 200, 200, 202,
974 200, 231, 200, 204, 200, 205, 200, 223, 97, 223,
976 903, 223, 97, 223, 231, 230, 248, 227, 227, 227,
977 839, 224, 806, 200, 200, 224, 231, 231, 230, 110,
978 111, 206, 358, 207, 112, 208, 236, 246, 358, 358,
979 230, 230, 225, 209, 215, 216, 97, 216, 215, 215,
980 215, 215, 215, 215, 215, 217, 215, 231, 215, 219,
981 215, 220, 215, 226, 110, 111, 874, 987, 237, 112,
982 231, 230, 746, 358, 238, 231, 250, 225, 239, 215,
983 215, 231, 277, 240, 230, 1071, 231, 231, 1070, 230,
984 227, 227, 227, 245, 489, 230, 1069, 872, 226, 247,
985 230, 230, 221, 215, 216, 97, 216, 215, 215, 215,
987 215, 215, 215, 215, 217, 215, 231, 215, 219, 215,
988 220, 215, 246, 246, 489, 278, 358, 783, 247, 247,
989 230, 278, 248, 248, 249, 249, 250, 250, 215, 215,
990 231, 231, 227, 227, 227, 231, 231, 254, 282, 227,
991 227, 227, 289, 358, 230, 230, 231, 784, 836, 230,
992 230, 221, 358, 289, 249, 227, 227, 227, 1147, 733,
993 230, 227, 227, 227, 358, 358, 246, 231, 841, 290,
994 290, 358, 247, 734, 294, 358, 248, 842, 249, 358,
995 250, 230, 227, 227, 227, 370, 370, 370, 370, 370,
996 370, 380, 380, 380, 380, 380, 380, 390, 390, 390,
998 870, 372, 358, 808, 372, 840, 358, 382, 358, 875,
999 382, 1055, 358, 392, 390, 390, 390, 399, 399, 399,
1000 399, 399, 399, 403, 403, 403, 406, 406, 406, 358,
1001 392, 358, 902, 401, 358, 373, 401, 901, 404, 899,
1002 929, 407, 358, 383, 408, 408, 408, 408, 408, 408,
1003 414, 414, 414, 414, 414, 414, 422, 422, 422, 906,
1004 410, 402, 928, 410, 358, 393, 416, 904, 358, 416,
1005 925, 358, 424, 422, 422, 422, 428, 428, 428, 428,
1006 428, 428, 370, 370, 370, 370, 370, 370, 908, 424,
1007 908, 958, 430, 358, 358, 430, 991, 411, 372, 932,
1009 909, 372, 909, 417, 370, 370, 370, 441, 441, 441,
1010 446, 446, 446, 380, 380, 380, 358, 380, 380, 380,
1011 372, 380, 380, 380, 957, 447, 425, 1005, 1054, 382,
1012 1053, 900, 431, 382, 452, 452, 452, 382, 390, 390,
1013 390, 440, 390, 390, 390, 390, 390, 390, 1052, 453,
1014 459, 459, 459, 358, 392, 399, 399, 399, 392, 358,
1015 448, 392, 399, 399, 399, 460, 399, 399, 399, 358,
1016 931, 401, 403, 403, 403, 406, 406, 406, 401, 464,
1017 464, 464, 401, 465, 960, 908, 466, 404, 358, 1023,
1018 407, 468, 468, 468, 911, 469, 358, 358, 470, 358,
1020 358, 456, 408, 408, 408, 986, 408, 408, 408, 408,
1021 408, 408, 473, 473, 473, 414, 414, 414, 410, 1051,
1022 988, 463, 410, 1042, 961, 410, 1078, 474, 414, 414,
1023 414, 416, 414, 414, 414, 477, 477, 477, 422, 422,
1024 422, 422, 422, 422, 416, 422, 422, 422, 416, 358,
1025 478, 428, 428, 428, 424, 1040, 358, 424, 428, 428,
1026 428, 424, 428, 428, 428, 471, 985, 430, 488, 488,
1027 488, 370, 370, 370, 430, 441, 441, 441, 430, 446,
1028 446, 446, 358, 1050, 489, 490, 358, 372, 475, 499,
1029 499, 499, 1026, 500, 447, 481, 501, 380, 380, 380,
1031 452, 452, 452, 989, 1036, 484, 358, 506, 506, 506,
1032 358, 507, 1043, 382, 508, 453, 509, 509, 509, 511,
1033 511, 511, 514, 514, 514, 1004, 494, 459, 459, 459,
1034 358, 510, 358, 358, 512, 522, 522, 522, 515, 518,
1035 518, 518, 460, 519, 502, 1007, 520, 399, 399, 399,
1036 523, 358, 464, 464, 464, 513, 465, 1006, 1009, 466,
1037 468, 468, 468, 401, 469, 358, 358, 470, 408, 408,
1038 408, 524, 473, 473, 473, 529, 529, 529, 1035, 530,
1039 1121, 990, 531, 1002, 410, 358, 358, 474, 414, 414,
1040 414, 477, 477, 477, 534, 534, 534, 358, 535, 358,
1042 1019, 536, 1022, 358, 416, 525, 478, 358, 422, 422,
1043 422, 541, 541, 541, 428, 428, 428, 488, 488, 488,
1044 370, 370, 370, 527, 424, 358, 542, 554, 554, 554,
1045 430, 358, 1027, 489, 358, 1024, 372, 499, 499, 499,
1046 1056, 500, 1045, 532, 501, 358, 1106, 539, 380, 380,
1047 380, 358, 506, 506, 506, 358, 507, 358, 546, 508,
1048 358, 1025, 550, 1038, 382, 509, 509, 509, 1077, 1039,
1049 543, 559, 559, 559, 547, 560, 1037, 358, 561, 358,
1050 510, 511, 511, 511, 562, 562, 562, 1059, 563, 1062,
1051 358, 564, 514, 514, 514, 1057, 512, 1058, 518, 518,
1053 518, 358, 519, 358, 555, 520, 1105, 358, 515, 522,
1054 522, 522, 569, 569, 569, 358, 570, 1073, 1096, 571,
1055 399, 399, 399, 358, 523, 408, 408, 408, 529, 529,
1056 529, 358, 530, 358, 1034, 531, 401, 414, 414, 414,
1057 1061, 410, 534, 534, 534, 1213, 535, 1116, 358, 536,
1058 541, 541, 541, 416, 358, 422, 422, 422, 1091, 1086,
1059 583, 583, 583, 1090, 584, 542, 575, 585, 1074, 358,
1060 573, 424, 428, 428, 428, 370, 370, 370, 577, 554,
1061 554, 554, 380, 380, 380, 559, 559, 559, 430, 560,
1062 358, 372, 561, 562, 562, 562, 581, 563, 382, 1033,
1064 564, 604, 604, 604, 569, 569, 569, 1080, 570, 358,
1065 1032, 571, 399, 399, 399, 358, 605, 613, 613, 613,
1066 586, 1031, 596, 358, 1111, 592, 358, 1075, 401, 1120,
1067 414, 414, 414, 614, 422, 422, 422, 606, 583, 583,
1068 583, 1087, 584, 358, 358, 585, 416, 370, 370, 370,
1069 424, 428, 428, 428, 629, 629, 629, 631, 631, 631,
1070 380, 380, 380, 372, 1081, 611, 616, 430, 604, 604,
1071 604, 642, 642, 642, 1131, 643, 382, 358, 644, 399,
1072 399, 399, 1213, 605, 656, 656, 656, 1101, 620, 613,
1073 613, 613, 622, 358, 358, 401, 414, 414, 414, 657,
1075 628, 632, 422, 422, 422, 614, 428, 428, 428, 629,
1076 629, 629, 416, 664, 664, 664, 358, 1094, 424, 370,
1077 370, 370, 430, 358, 358, 652, 631, 631, 631, 358,
1078 670, 670, 670, 1095, 358, 372, 358, 655, 680, 680,
1079 680, 642, 642, 642, 358, 643, 671, 1030, 644, 399,
1080 399, 399, 1018, 681, 1103, 662, 660, 414, 414, 414,
1081 656, 656, 656, 358, 1118, 401, 1102, 668, 1117, 697,
1082 697, 697, 1104, 416, 682, 657, 694, 694, 694, 358,
1083 695, 358, 1107, 696, 698, 690, 700, 700, 700, 702,
1084 702, 702, 428, 428, 428, 370, 370, 370, 670, 670,
1086 670, 1108, 701, 358, 693, 720, 720, 720, 430, 358,
1087 358, 372, 1249, 1136, 671, 680, 680, 680, 1109, 358,
1088 721, 722, 722, 722, 358, 723, 1126, 358, 724, 1124,
1089 681, 713, 702, 702, 702, 358, 730, 730, 730, 399,
1090 399, 399, 414, 414, 414, 358, 1110, 703, 664, 664,
1091 664, 731, 694, 694, 694, 401, 695, 1114, 416, 696,
1092 697, 697, 697, 358, 358, 737, 737, 737, 1017, 738,
1093 1139, 1125, 739, 1115, 358, 698, 740, 740, 740, 700,
1094 700, 700, 358, 736, 358, 704, 732, 705, 742, 742,
1095 742, 741, 358, 706, 1135, 701, 358, 707, 358, 708,
1097 358, 709, 1016, 1119, 743, 370, 370, 370, 720, 720,
1098 720, 759, 759, 759, 1122, 760, 1015, 358, 761, 358,
1099 358, 372, 1123, 721, 722, 722, 722, 1132, 723, 1133,
1100 358, 724, 730, 730, 730, 765, 765, 765, 1129, 766,
1101 1130, 358, 767, 1163, 1014, 754, 358, 731, 399, 399,
1102 399, 414, 414, 414, 737, 737, 737, 1134, 738, 358,
1103 1140, 739, 1233, 1151, 401, 1164, 358, 416, 740, 740,
1104 740, 773, 773, 773, 358, 774, 358, 358, 775, 742,
1105 742, 742, 1141, 741, 370, 370, 370, 788, 788, 788,
1106 759, 759, 759, 768, 760, 743, 1137, 761, 1154, 772,
1108 372, 358, 789, 794, 794, 794, 765, 765, 765, 1155,
1109 766, 1138, 1013, 767, 399, 399, 399, 358, 795, 414,
1110 414, 414, 358, 790, 358, 786, 1192, 773, 773, 773,
1111 401, 774, 1172, 358, 775, 416, 803, 803, 803, 810,
1112 810, 810, 370, 370, 370, 814, 814, 814, 1173, 788,
1113 788, 788, 358, 358, 811, 489, 358, 1012, 372, 1144,
1114 801, 1145, 1010, 797, 789, 815, 815, 815, 358, 816,
1115 1001, 358, 817, 794, 794, 794, 823, 823, 823, 1148,
1116 824, 1156, 1149, 825, 399, 399, 399, 358, 795, 828,
1117 828, 828, 831, 831, 831, 358, 813, 414, 414, 414,
1119 401, 803, 803, 803, 829, 358, 1000, 832, 843, 843,
1120 843, 1165, 358, 416, 814, 814, 814, 358, 810, 810,
1121 810, 1152, 358, 844, 489, 830, 1183, 358, 833, 358,
1122 827, 1153, 837, 811, 489, 845, 845, 845, 1161, 846,
1123 1193, 358, 847, 370, 370, 370, 835, 358, 815, 815,
1124 815, 489, 816, 1162, 358, 817, 854, 854, 854, 372,
1125 823, 823, 823, 999, 824, 1166, 1216, 825, 856, 856,
1126 856, 855, 858, 858, 858, 828, 828, 828, 831, 831,
1127 831, 358, 849, 857, 1170, 860, 860, 860, 859, 861,
1128 829, 358, 862, 832, 864, 864, 864, 1171, 865, 358,
1130 358, 866, 868, 868, 868, 414, 414, 414, 876, 876,
1131 876, 843, 843, 843, 998, 878, 878, 878, 358, 879,
1132 1184, 416, 880, 1185, 358, 358, 844, 489, 854, 854,
1133 854, 489, 845, 845, 845, 1258, 846, 1187, 1188, 847,
1134 370, 370, 370, 855, 877, 889, 889, 889, 489, 890,
1135 1186, 358, 891, 868, 868, 868, 372, 858, 858, 858,
1136 869, 487, 487, 487, 487, 487, 487, 487, 487, 487,
1137 358, 358, 487, 859, 358, 487, 487, 487, 489, 487,
1138 856, 856, 856, 892, 892, 892, 358, 893, 358, 1218,
1139 894, 358, 997, 884, 1181, 857, 487, 487, 487, 487,
1141 487, 487, 487, 487, 487, 487, 487, 358, 1209, 487,
1142 1198, 1202, 487, 487, 487, 489, 487, 860, 860, 860,
1143 358, 861, 358, 1190, 862, 864, 864, 864, 996, 865,
1144 358, 1182, 866, 487, 487, 897, 897, 897, 876, 876,
1145 876, 878, 878, 878, 1217, 879, 1199, 358, 880, 358,
1146 995, 898, 1191, 358, 358, 993, 358, 489, 889, 889,
1147 889, 1200, 890, 358, 358, 891, 897, 897, 897, 905,
1148 487, 487, 487, 487, 487, 912, 487, 487, 487, 1196,
1149 1201, 487, 898, 992, 487, 487, 487, 489, 487, 892,
1150 892, 892, 1221, 893, 1210, 1197, 894, 1028, 1028, 1028,
1152 370, 370, 370, 358, 1203, 487, 487, 487, 487, 487,
1153 487, 487, 487, 487, 487, 912, 372, 358, 487, 1214,
1154 1204, 487, 487, 487, 489, 487, 358, 983, 927, 927,
1155 927, 930, 930, 930, 936, 936, 936, 370, 370, 370,
1156 358, 982, 487, 487, 358, 914, 358, 358, 1205, 358,
1157 489, 490, 981, 372, 939, 939, 939, 941, 941, 941,
1158 943, 943, 943, 946, 946, 946, 954, 954, 954, 940,
1159 1207, 1206, 942, 1208, 358, 944, 358, 1249, 947, 927,
1160 927, 927, 358, 930, 930, 930, 358, 358, 938, 936,
1161 936, 936, 370, 370, 370, 358, 945, 1215, 1229, 358,
1163 939, 939, 939, 358, 358, 489, 358, 1211, 372, 358,
1164 956, 941, 941, 941, 959, 940, 965, 965, 965, 358,
1165 966, 358, 980, 967, 1238, 1219, 942, 968, 968, 968,
1166 546, 969, 358, 1230, 970, 943, 943, 943, 971, 971,
1167 971, 1220, 972, 1223, 358, 973, 1224, 964, 358, 358,
1168 944, 946, 946, 946, 975, 975, 975, 1289, 976, 358,
1169 1222, 977, 954, 954, 954, 358, 947, 370, 370, 370,
1170 965, 965, 965, 1234, 966, 1212, 358, 967, 358, 1225,
1171 968, 968, 968, 372, 969, 1231, 358, 970, 971, 971,
1172 971, 1232, 972, 984, 1226, 973, 975, 975, 975, 358,
1174 976, 358, 1267, 977, 1003, 1003, 1003, 370, 370, 370,
1175 1267, 358, 994, 1239, 1003, 1003, 1003, 358, 1020, 358,
1176 358, 1021, 358, 372, 370, 370, 370, 1041, 1041, 1041,
1177 358, 1044, 1044, 1044, 1028, 1028, 1028, 1046, 1046, 1046,
1178 372, 1235, 1244, 358, 1048, 1048, 1048, 358, 1041, 1041,
1179 1041, 1271, 358, 1047, 1044, 1044, 1044, 1011, 1063, 1049,
1180 358, 1064, 1245, 358, 358, 1065, 1065, 1065, 358, 1246,
1181 358, 358, 358, 1029, 1046, 1046, 1046, 358, 1250, 1060,
1182 979, 358, 1048, 1048, 1048, 1066, 1066, 1066, 358, 1067,
1183 1047, 358, 1068, 1076, 1076, 1076, 1236, 1049, 1079, 1079,
1185 1079, 1065, 1065, 1065, 1066, 1066, 1066, 1242, 1067, 358,
1186 1243, 1068, 1237, 358, 358, 1240, 1247, 358, 1085, 1085,
1187 1085, 1076, 1076, 1076, 978, 1088, 1271, 358, 1089, 1079,
1188 1079, 1079, 1082, 1092, 358, 358, 1093, 358, 358, 1085,
1189 1085, 1085, 974, 1099, 358, 358, 1100, 1150, 1150, 1150,
1190 1157, 1157, 1157, 1295, 358, 358, 1159, 1159, 1159, 1241,
1191 1150, 1150, 1150, 358, 1167, 1158, 1248, 1168, 1169, 1169,
1192 1169, 1160, 1174, 1174, 1174, 358, 358, 1157, 1157, 1157,
1193 1159, 1159, 1159, 1252, 358, 358, 1256, 963, 358, 1175,
1194 1175, 1175, 1158, 1176, 1274, 1160, 1177, 1178, 1178, 1178,
1196 934, 1179, 962, 358, 1180, 1169, 1169, 1169, 1174, 1174,
1197 1174, 1251, 1194, 358, 1253, 1195, 1175, 1175, 1175, 358,
1198 1176, 358, 358, 1177, 358, 1178, 1178, 1178, 358, 1179,
1199 358, 358, 1180, 1227, 1227, 1227, 1189, 1227, 1227, 1227,
1200 1261, 1261, 1261, 1254, 358, 1257, 1255, 358, 358, 1228,
1201 358, 358, 1259, 1228, 1260, 1274, 1262, 1270, 1270, 1270,
1202 1261, 1261, 1261, 358, 358, 358, 358, 358, 1275, 1275,
1203 1275, 1265, 1266, 358, 1263, 358, 1262, 358, 1277, 1278,
1204 358, 1268, 1269, 358, 1276, 358, 358, 1264, 358, 1287,
1205 1270, 1270, 1270, 358, 1279, 1272, 1273, 1280, 1281, 1281,
1207 1281, 1285, 1285, 1285, 1290, 1291, 358, 1288, 1283, 1292,
1208 358, 1284, 358, 358, 1282, 1296, 358, 1286, 1275, 1275,
1209 1275, 1281, 1281, 1281, 1285, 1285, 1285, 1293, 358, 358,
1210 358, 358, 1294, 358, 1276, 358, 1305, 1282, 358, 358,
1211 1286, 358, 1305, 358, 358, 358, 358, 1301, 358, 1314,
1212 1302, 358, 1297, 1298, 1299, 1300, 358, 1310, 1310, 1310,
1213 1314, 358, 358, 1321, 1306, 1307, 358, 1308, 1309, 358,
1214 358, 358, 1303, 1311, 1304, 1310, 1310, 1310, 1315, 1317,
1215 1317, 1317, 1322, 358, 1312, 358, 358, 1319, 1313, 358,
1216 1329, 1311, 358, 358, 1316, 1318, 1329, 1320, 1317, 1317,
1218 1317, 934, 358, 953, 952, 358, 951, 1323, 950, 1324,
1219 1325, 1330, 1330, 1330, 1318, 949, 1327, 1328, 1330, 1330,
1220 1330, 948, 937, 934, 934, 1326, 924, 1331, 923, 918,
1221 917, 916, 915, 913, 1331, 94, 94, 94, 94, 94,
1222 94, 94, 95, 95, 95, 95, 95, 95, 95, 100,
1223 100, 100, 100, 100, 100, 100, 103, 103, 103, 103,
1224 103, 103, 103, 106, 106, 106, 106, 106, 106, 106,
1225 109, 109, 109, 109, 109, 109, 109, 116, 116, 116,
1226 116, 116, 116, 116, 124, 124, 124, 124, 124, 124,
1227 124, 127, 127, 127, 127, 127, 127, 127, 136, 136,
1229 136, 136, 136, 136, 136, 140, 140, 140, 140, 140,
1230 140, 140, 157, 157, 157, 157, 157, 157, 157, 164,
1231 164, 164, 164, 164, 164, 164, 171, 171, 171, 171,
1232 171, 171, 171, 178, 178, 178, 178, 178, 178, 178,
1233 184, 184, 184, 184, 184, 184, 184, 192, 192, 192,
1234 192, 192, 192, 192, 196, 196, 196, 196, 196, 196,
1235 196, 203, 203, 203, 203, 203, 203, 203, 210, 210,
1236 210, 210, 210, 210, 210, 218, 218, 218, 218, 218,
1237 218, 218, 222, 222, 222, 222, 222, 222, 222, 244,
1238 244, 244, 896, 244, 252, 252, 252, 895, 252, 256,
1240 256, 256, 888, 256, 265, 265, 265, 887, 265, 273,
1241 273, 273, 886, 273, 280, 280, 280, 885, 280, 284,
1242 284, 284, 883, 284, 292, 292, 292, 867, 292, 297,
1243 297, 297, 297, 297, 863, 297, 311, 853, 311, 319,
1244 852, 319, 327, 851, 327, 334, 850, 334, 339, 848,
1245 339, 343, 834, 343, 349, 826, 349, 353, 822, 353,
1246 357, 357, 357, 357, 357, 357, 357, 363, 821, 818,
1247 363, 371, 371, 371, 371, 371, 371, 381, 381, 381,
1248 381, 381, 381, 391, 391, 391, 391, 391, 391, 400,
1249 400, 400, 400, 400, 400, 409, 409, 409, 409, 409,
1251 409, 415, 415, 415, 415, 415, 415, 423, 423, 423,
1252 423, 423, 423, 429, 429, 429, 429, 429, 429, 487,
1253 487, 487, 487, 487, 487, 487, 881, 881, 881, 881,
1254 881, 881, 881, 882, 882, 882, 882, 882, 882, 882,
1255 907, 907, 907, 907, 907, 907, 907, 910, 910, 910,
1256 910, 910, 910, 910, 933, 933, 933, 933, 933, 933,
1257 933, 935, 935, 935, 935, 935, 935, 935, 812, 800,
1258 799, 798, 796, 793, 792, 791, 787, 785, 771, 770,
1259 769, 764, 763, 762, 758, 757, 756, 755, 753, 735,
1260 729, 728, 727, 726, 725, 719, 718, 717, 716, 715,
1262 714, 712, 699, 692, 691, 689, 688, 687, 686, 685,
1263 684, 683, 679, 678, 677, 676, 675, 674, 673, 672,
1264 669, 667, 663, 661, 659, 658, 654, 653, 651, 646,
1265 645, 641, 640, 635, 634, 633, 630, 627, 623, 621,
1266 619, 618, 617, 615, 612, 610, 609, 608, 607, 603,
1267 602, 601, 600, 599, 598, 597, 595, 594, 593, 591,
1268 587, 582, 580, 579, 578, 576, 574, 572, 568, 567,
1269 566, 565, 558, 557, 556, 553, 552, 551, 549, 548,
1270 489, 544, 540, 538, 537, 533, 528, 526, 521, 517,
1271 516, 505, 504, 503, 498, 497, 496, 495, 493, 492,
1273 491, 485, 483, 482, 480, 479, 476, 472, 467, 462,
1274 461, 458, 457, 455, 454, 451, 450, 449, 445, 444,
1275 443, 442, 439, 438, 437, 436, 435, 434, 358, 432,
1276 427, 426, 421, 420, 419, 418, 413, 412, 405, 398,
1277 397, 396, 395, 394, 389, 388, 387, 386, 385, 384,
1278 379, 378, 377, 376, 375, 374, 369, 368, 367, 366,
1279 365, 364, 361, 359, 358, 356, 355, 354, 352, 351,
1280 350, 348, 347, 346, 345, 344, 342, 341, 340, 338,
1281 337, 336, 335, 333, 332, 331, 330, 329, 328, 326,
1282 325, 324, 323, 322, 321, 320, 318, 317, 316, 315,
1284 314, 313, 312, 310, 309, 308, 307, 306, 301, 298,
1285 300, 296, 295, 293, 291, 288, 287, 286, 285, 283,
1286 281, 279, 276, 275, 274, 272, 268, 267, 266, 264,
1287 262, 261, 260, 259, 258, 257, 255, 253, 251, 243,
1288 241, 235, 234, 235, 234, 233, 232, 1332, 93, 1332,
1289 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
1290 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
1291 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
1292 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
1293 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
1295 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
1299 static yyconst flex_int16_t yy_chk[3712] =
1301 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1302 6, 6, 6, 9, 0, 3, 10, 11, 4, 12,
1303 9, 5, 299, 10, 6, 7, 7, 7, 8, 8,
1304 8, 13, 13, 11, 299, 12, 13, 13, 236, 7,
1305 14, 14, 8, 228, 13, 14, 14, 15, 15, 880,
1306 15, 98, 15, 14, 16, 16, 228, 16, 880, 16,
1307 15, 17, 17, 18, 18, 98, 99, 16, 19, 19,
1308 19, 20, 20, 20, 23, 23, 23, 24, 24, 24,
1309 99, 237, 19, 545, 237, 20, 236, 302, 23, 302,
1310 745, 24, 96, 96, 96, 17, 545, 18, 21, 21,
1312 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1313 21, 1128, 21, 21, 21, 21, 21, 25, 25, 25,
1314 97, 97, 97, 101, 101, 101, 122, 122, 122, 1127,
1315 745, 25, 433, 21, 21, 22, 22, 22, 22, 22,
1316 22, 22, 22, 22, 22, 22, 22, 22, 433, 22,
1317 22, 22, 22, 22, 26, 26, 26, 590, 27, 27,
1318 27, 28, 28, 28, 29, 29, 29, 547, 26, 360,
1319 22, 22, 27, 360, 102, 28, 125, 137, 29, 30,
1320 30, 30, 31, 31, 31, 32, 32, 32, 102, 588,
1321 125, 137, 547, 30, 590, 588, 31, 900, 625, 32,
1323 33, 33, 33, 33, 33, 33, 33, 33, 33, 33,
1324 33, 33, 33, 900, 33, 33, 33, 33, 33, 35,
1325 35, 35, 486, 36, 36, 36, 37, 37, 37, 128,
1326 128, 128, 625, 35, 589, 33, 33, 36, 600, 486,
1327 37, 707, 600, 33, 34, 34, 34, 34, 34, 34,
1328 34, 34, 34, 34, 34, 34, 34, 589, 34, 34,
1329 34, 34, 34, 38, 38, 38, 707, 39, 39, 39,
1330 40, 40, 40, 666, 41, 41, 41, 38, 601, 34,
1331 34, 39, 601, 665, 40, 791, 791, 34, 41, 42,
1332 42, 42, 43, 43, 43, 44, 44, 44, 134, 134,
1334 134, 608, 666, 42, 609, 608, 43, 665, 609, 44,
1335 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1336 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1337 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1338 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1339 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1340 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1341 45, 45, 47, 47, 47, 48, 48, 48, 49, 49,
1342 49, 50, 50, 50, 926, 546, 47, 908, 908, 48,
1343 926, 1113, 49, 704, 1112, 50, 51, 51, 51, 51,
1345 51, 51, 51, 51, 51, 51, 51, 51, 51, 626,
1346 51, 51, 51, 51, 51, 53, 53, 53, 546, 54,
1347 54, 54, 55, 55, 55, 56, 56, 56, 149, 53,
1348 704, 51, 51, 54, 131, 51, 55, 893, 170, 56,
1349 709, 131, 149, 1098, 51, 893, 51, 626, 131, 170,
1350 711, 51, 52, 52, 52, 52, 52, 52, 52, 52,
1351 52, 52, 52, 52, 52, 710, 52, 52, 52, 52,
1352 52, 59, 59, 59, 709, 60, 60, 60, 61, 61,
1353 61, 62, 62, 62, 711, 59, 705, 52, 52, 60,
1354 750, 52, 61, 990, 710, 62, 141, 141, 141, 990,
1356 52, 747, 52, 146, 146, 146, 1097, 52, 57, 57,
1357 57, 57, 57, 57, 57, 57, 57, 57, 57, 57,
1358 57, 705, 57, 57, 57, 57, 57, 63, 63, 63,
1359 750, 64, 64, 64, 65, 65, 65, 66, 66, 66,
1360 747, 63, 894, 57, 57, 64, 143, 165, 65, 57,
1361 894, 66, 1084, 143, 57, 158, 158, 158, 776, 744,
1362 143, 165, 749, 57, 58, 58, 58, 58, 58, 58,
1363 58, 58, 58, 58, 58, 58, 58, 708, 58, 58,
1364 58, 58, 58, 67, 67, 67, 744, 68, 68, 68,
1365 71, 71, 71, 72, 72, 72, 749, 67, 776, 58,
1367 58, 68, 159, 179, 71, 58, 783, 72, 708, 159,
1368 58, 162, 162, 162, 708, 839, 159, 179, 804, 58,
1369 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
1370 69, 69, 69, 783, 69, 69, 69, 69, 69, 73,
1371 73, 73, 837, 74, 74, 74, 77, 77, 77, 78,
1372 78, 78, 839, 73, 173, 69, 69, 74, 804, 837,
1373 77, 173, 1131, 78, 172, 172, 172, 779, 173, 1131,
1374 69, 70, 70, 70, 70, 70, 70, 70, 70, 70,
1375 70, 70, 70, 70, 748, 70, 70, 70, 70, 70,
1376 79, 79, 79, 746, 80, 80, 80, 81, 81, 81,
1378 82, 82, 82, 120, 79, 748, 70, 70, 80, 779,
1379 1083, 81, 781, 778, 82, 1072, 746, 120, 176, 176,
1380 176, 70, 75, 75, 75, 75, 75, 75, 75, 75,
1381 75, 75, 75, 75, 75, 781, 75, 75, 75, 75,
1382 75, 83, 83, 83, 778, 84, 84, 84, 85, 85,
1383 85, 120, 86, 86, 86, 83, 1071, 75, 75, 84,
1384 160, 188, 85, 874, 1055, 75, 86, 75, 188, 75,
1385 185, 185, 185, 780, 160, 188, 805, 75, 76, 76,
1386 76, 76, 76, 76, 76, 76, 76, 76, 76, 76,
1387 76, 144, 76, 76, 76, 76, 76, 89, 89, 89,
1389 874, 90, 90, 90, 193, 144, 160, 190, 190, 190,
1390 805, 89, 780, 76, 76, 90, 174, 204, 193, 91,
1391 91, 76, 840, 76, 91, 76, 112, 144, 957, 706,
1392 174, 204, 91, 76, 87, 87, 87, 87, 87, 87,
1393 87, 87, 87, 87, 87, 87, 87, 132, 87, 87,
1394 87, 87, 87, 91, 92, 92, 840, 957, 112, 92,
1395 219, 132, 706, 838, 112, 186, 174, 92, 112, 87,
1396 87, 187, 186, 112, 219, 1054, 129, 130, 1052, 186,
1397 197, 197, 197, 129, 751, 187, 1050, 838, 92, 132,
1398 129, 130, 87, 88, 88, 88, 88, 88, 88, 88,
1400 88, 88, 88, 88, 88, 88, 199, 88, 88, 88,
1401 88, 88, 129, 130, 752, 186, 802, 751, 129, 130,
1402 199, 187, 129, 130, 129, 130, 129, 130, 88, 88,
1403 142, 198, 201, 201, 201, 212, 213, 142, 198, 211,
1404 211, 211, 212, 807, 142, 198, 214, 752, 802, 212,
1405 213, 88, 808, 214, 199, 216, 216, 216, 1132, 691,
1406 214, 223, 223, 223, 782, 1132, 142, 224, 807, 212,
1407 213, 841, 142, 691, 224, 836, 142, 808, 142, 806,
1408 142, 224, 227, 227, 227, 311, 311, 311, 312, 312,
1409 312, 319, 319, 319, 320, 320, 320, 327, 327, 327,
1411 836, 311, 873, 782, 312, 806, 870, 319, 903, 841,
1412 320, 1036, 872, 327, 328, 328, 328, 334, 334, 334,
1413 335, 335, 335, 336, 336, 336, 338, 338, 338, 875,
1414 328, 899, 873, 334, 877, 312, 335, 872, 336, 870,
1415 903, 338, 902, 320, 339, 339, 339, 340, 340, 340,
1416 343, 343, 343, 344, 344, 344, 349, 349, 349, 877,
1417 339, 335, 902, 340, 961, 328, 343, 875, 906, 344,
1418 899, 929, 349, 350, 350, 350, 353, 353, 353, 354,
1419 354, 354, 370, 370, 370, 371, 371, 371, 879, 350,
1420 907, 929, 353, 928, 987, 354, 961, 340, 370, 906,
1422 879, 371, 907, 344, 373, 373, 373, 374, 374, 374,
1423 379, 379, 379, 380, 380, 380, 871, 381, 381, 381,
1424 373, 383, 383, 383, 928, 379, 350, 987, 1035, 380,
1425 1034, 871, 354, 381, 387, 387, 387, 383, 390, 390,
1426 390, 373, 391, 391, 391, 393, 393, 393, 1033, 387,
1427 396, 396, 396, 905, 390, 399, 399, 399, 391, 1005,
1428 383, 393, 400, 400, 400, 396, 402, 402, 402, 931,
1429 905, 399, 403, 403, 403, 406, 406, 406, 400, 404,
1430 404, 404, 402, 404, 931, 910, 404, 403, 956, 1005,
1431 406, 407, 407, 407, 910, 407, 958, 1061, 407, 932,
1433 1024, 393, 408, 408, 408, 956, 409, 409, 409, 411,
1434 411, 411, 413, 413, 413, 414, 414, 414, 408, 1032,
1435 958, 402, 409, 1024, 932, 411, 1061, 413, 415, 415,
1436 415, 414, 417, 417, 417, 419, 419, 419, 422, 422,
1437 422, 423, 423, 423, 415, 425, 425, 425, 417, 1022,
1438 419, 428, 428, 428, 422, 1022, 955, 423, 429, 429,
1439 429, 425, 431, 431, 431, 411, 955, 428, 434, 434,
1440 434, 440, 440, 440, 429, 441, 441, 441, 431, 446,
1441 446, 446, 1008, 1031, 434, 434, 959, 440, 417, 447,
1442 447, 447, 1008, 447, 446, 425, 447, 448, 448, 448,
1444 452, 452, 452, 959, 1018, 431, 1025, 453, 453, 453,
1445 986, 453, 1025, 448, 453, 452, 454, 454, 454, 455,
1446 455, 455, 456, 456, 456, 986, 440, 459, 459, 459,
1447 989, 454, 988, 991, 455, 462, 462, 462, 456, 460,
1448 460, 460, 459, 460, 448, 989, 460, 463, 463, 463,
1449 462, 1106, 464, 464, 464, 455, 464, 988, 991, 464,
1450 468, 468, 468, 463, 468, 960, 984, 468, 471, 471,
1451 471, 462, 473, 473, 473, 474, 474, 474, 1017, 474,
1452 1106, 960, 474, 984, 471, 1002, 1004, 473, 475, 475,
1453 475, 477, 477, 477, 478, 478, 478, 1006, 478, 1009,
1455 1002, 478, 1004, 1027, 475, 463, 477, 1091, 481, 481,
1456 481, 483, 483, 483, 484, 484, 484, 488, 488, 488,
1457 494, 494, 494, 471, 481, 1020, 483, 498, 498, 498,
1458 484, 1021, 1009, 488, 1037, 1006, 494, 499, 499, 499,
1459 1037, 499, 1027, 475, 499, 1007, 1091, 481, 502, 502,
1460 502, 1060, 506, 506, 506, 1038, 506, 1039, 488, 506,
1461 1019, 1007, 494, 1020, 502, 509, 509, 509, 1060, 1021,
1462 484, 510, 510, 510, 488, 510, 1019, 1040, 510, 1043,
1463 509, 511, 511, 511, 512, 512, 512, 1040, 512, 1043,
1464 1090, 512, 514, 514, 514, 1038, 511, 1039, 518, 518,
1466 518, 1082, 518, 1042, 502, 518, 1090, 1056, 514, 522,
1467 522, 522, 523, 523, 523, 1101, 523, 1056, 1082, 523,
1468 525, 525, 525, 1078, 522, 527, 527, 527, 529, 529,
1469 529, 1057, 529, 1074, 1016, 529, 525, 532, 532, 532,
1470 1042, 527, 534, 534, 534, 1199, 534, 1101, 1077, 534,
1471 541, 541, 541, 532, 1199, 539, 539, 539, 1078, 1074,
1472 542, 542, 542, 1077, 542, 541, 527, 542, 1057, 1063,
1473 525, 539, 543, 543, 543, 550, 550, 550, 532, 554,
1474 554, 554, 555, 555, 555, 559, 559, 559, 543, 559,
1475 1058, 550, 559, 562, 562, 562, 539, 562, 555, 1015,
1477 562, 567, 567, 567, 569, 569, 569, 1063, 569, 1096,
1478 1014, 569, 573, 573, 573, 1075, 567, 575, 575, 575,
1479 543, 1013, 555, 1105, 1096, 550, 1064, 1058, 573, 1105,
1480 577, 577, 577, 575, 581, 581, 581, 567, 583, 583,
1481 583, 1075, 583, 1116, 1086, 583, 577, 592, 592, 592,
1482 581, 586, 586, 586, 593, 593, 593, 595, 595, 595,
1483 596, 596, 596, 592, 1064, 573, 577, 586, 604, 604,
1484 604, 605, 605, 605, 1116, 605, 596, 1080, 605, 611,
1485 611, 611, 1198, 604, 617, 617, 617, 1086, 581, 613,
1486 613, 613, 586, 1081, 1198, 611, 616, 616, 616, 617,
1488 592, 596, 620, 620, 620, 613, 622, 622, 622, 629,
1489 629, 629, 616, 624, 624, 624, 1088, 1080, 620, 628,
1490 628, 628, 622, 1087, 1103, 611, 631, 631, 631, 624,
1491 632, 632, 632, 1081, 1089, 628, 1102, 616, 641, 641,
1492 641, 642, 642, 642, 1092, 642, 632, 1012, 642, 652,
1493 652, 652, 1001, 641, 1088, 622, 620, 655, 655, 655,
1494 656, 656, 656, 1093, 1103, 652, 1087, 628, 1102, 658,
1495 658, 658, 1089, 655, 641, 656, 657, 657, 657, 1121,
1496 657, 1094, 1092, 657, 658, 652, 660, 660, 660, 661,
1497 661, 661, 662, 662, 662, 668, 668, 668, 670, 670,
1499 670, 1093, 660, 1109, 655, 679, 679, 679, 662, 1095,
1500 1111, 668, 1236, 1121, 670, 680, 680, 680, 1094, 1099,
1501 679, 681, 681, 681, 1236, 681, 1111, 1124, 681, 1109,
1502 680, 668, 702, 702, 702, 1100, 689, 689, 689, 690,
1503 690, 690, 693, 693, 693, 1110, 1095, 662, 664, 664,
1504 664, 689, 694, 694, 694, 690, 694, 1099, 693, 694,
1505 697, 697, 697, 1104, 664, 698, 698, 698, 1000, 698,
1506 1124, 1110, 698, 1100, 1107, 697, 699, 699, 699, 700,
1507 700, 700, 1108, 693, 1120, 664, 690, 664, 703, 703,
1508 703, 699, 1118, 664, 1120, 700, 1117, 664, 1114, 664,
1510 1115, 664, 999, 1104, 703, 713, 713, 713, 720, 720,
1511 720, 721, 721, 721, 1107, 721, 998, 1125, 721, 1146,
1512 1119, 713, 1108, 720, 722, 722, 722, 1117, 722, 1118,
1513 1136, 722, 730, 730, 730, 731, 731, 731, 1114, 731,
1514 1115, 1147, 731, 1146, 997, 713, 1218, 730, 732, 732,
1515 732, 736, 736, 736, 737, 737, 737, 1119, 737, 1122,
1516 1125, 737, 1218, 1136, 732, 1147, 1139, 736, 740, 740,
1517 740, 741, 741, 741, 1123, 741, 1126, 1140, 741, 742,
1518 742, 742, 1126, 740, 754, 754, 754, 756, 756, 756,
1519 759, 759, 759, 732, 759, 742, 1122, 759, 1139, 736,
1521 754, 1154, 756, 763, 763, 763, 765, 765, 765, 1140,
1522 765, 1123, 996, 765, 768, 768, 768, 1155, 763, 772,
1523 772, 772, 1129, 756, 1130, 754, 1172, 773, 773, 773,
1524 768, 773, 1154, 1172, 773, 772, 777, 777, 777, 784,
1525 784, 784, 786, 786, 786, 787, 787, 787, 1155, 788,
1526 788, 788, 777, 1133, 784, 784, 1134, 995, 786, 1129,
1527 772, 1130, 993, 768, 788, 789, 789, 789, 1148, 789,
1528 983, 1141, 789, 794, 794, 794, 795, 795, 795, 1133,
1529 795, 1141, 1134, 795, 797, 797, 797, 1163, 794, 798,
1530 798, 798, 799, 799, 799, 1137, 786, 801, 801, 801,
1532 797, 803, 803, 803, 798, 1138, 982, 799, 809, 809,
1533 809, 1148, 1144, 801, 814, 814, 814, 803, 810, 810,
1534 810, 1137, 1149, 809, 809, 798, 1163, 1145, 799, 1202,
1535 797, 1138, 803, 810, 810, 811, 811, 811, 1144, 811,
1536 1173, 1152, 811, 813, 813, 813, 801, 1173, 815, 815,
1537 815, 811, 815, 1145, 1153, 815, 822, 822, 822, 813,
1538 823, 823, 823, 981, 823, 1149, 1202, 823, 826, 826,
1539 826, 822, 827, 827, 827, 828, 828, 828, 831, 831,
1540 831, 1164, 813, 826, 1152, 829, 829, 829, 827, 829,
1541 828, 1165, 829, 831, 832, 832, 832, 1153, 832, 1167,
1543 1168, 832, 834, 834, 834, 835, 835, 835, 842, 842,
1544 842, 843, 843, 843, 980, 844, 844, 844, 1166, 844,
1545 1164, 835, 844, 1165, 842, 1246, 843, 843, 854, 854,
1546 854, 844, 845, 845, 845, 1246, 845, 1167, 1168, 845,
1547 849, 849, 849, 854, 842, 855, 855, 855, 845, 855,
1548 1166, 1161, 855, 868, 868, 868, 849, 858, 858, 858,
1549 835, 846, 846, 846, 846, 846, 846, 846, 846, 846,
1550 1194, 1187, 846, 858, 1204, 846, 846, 846, 846, 846,
1551 856, 856, 856, 857, 857, 857, 1183, 857, 1162, 1204,
1552 857, 1170, 979, 849, 1161, 856, 846, 846, 847, 847,
1554 847, 847, 847, 847, 847, 847, 847, 1203, 1194, 847,
1555 1183, 1187, 847, 847, 847, 847, 847, 860, 860, 860,
1556 1171, 860, 1184, 1170, 860, 864, 864, 864, 978, 864,
1557 1185, 1162, 864, 847, 847, 869, 869, 869, 876, 876,
1558 876, 878, 878, 878, 1203, 878, 1184, 1181, 878, 1186,
1559 974, 869, 1171, 1207, 876, 963, 1195, 878, 889, 889,
1560 889, 1185, 889, 1182, 1188, 889, 897, 897, 897, 876,
1561 881, 881, 881, 881, 881, 881, 881, 881, 881, 1181,
1562 1186, 881, 897, 962, 881, 881, 881, 881, 881, 892,
1563 892, 892, 1207, 892, 1195, 1182, 892, 1010, 1010, 1010,
1565 884, 884, 884, 1189, 1188, 881, 881, 882, 882, 882,
1566 882, 882, 882, 882, 882, 882, 884, 1190, 882, 1200,
1567 1189, 882, 882, 882, 882, 882, 1200, 953, 901, 901,
1568 901, 904, 904, 904, 912, 912, 912, 914, 914, 914,
1569 1191, 952, 882, 882, 901, 884, 1192, 904, 1190, 1193,
1570 912, 912, 951, 914, 915, 915, 915, 916, 916, 916,
1571 917, 917, 917, 918, 918, 918, 925, 925, 925, 915,
1572 1192, 1191, 916, 1193, 1214, 917, 1196, 1237, 918, 927,
1573 927, 927, 925, 930, 930, 930, 1237, 1223, 914, 936,
1574 936, 936, 938, 938, 938, 927, 917, 1201, 1214, 930,
1576 939, 939, 939, 1209, 1201, 936, 1210, 1196, 938, 1215,
1577 927, 941, 941, 941, 930, 939, 940, 940, 940, 1279,
1578 940, 1208, 950, 940, 1223, 1205, 941, 942, 942, 942,
1579 936, 942, 1205, 1215, 942, 943, 943, 943, 944, 944,
1580 944, 1206, 944, 1209, 1197, 944, 1210, 938, 1206, 1219,
1581 943, 946, 946, 946, 947, 947, 947, 1279, 947, 1216,
1582 1208, 947, 954, 954, 954, 1217, 946, 964, 964, 964,
1583 965, 965, 965, 1219, 965, 1197, 1224, 965, 954, 1211,
1584 968, 968, 968, 964, 968, 1216, 1211, 968, 971, 971,
1585 971, 1217, 971, 954, 1212, 971, 975, 975, 975, 1231,
1587 975, 1212, 1255, 975, 985, 985, 985, 994, 994, 994,
1588 1254, 1255, 964, 1224, 1003, 1003, 1003, 1220, 1003, 1232,
1589 985, 1003, 1254, 994, 1011, 1011, 1011, 1023, 1023, 1023,
1590 1003, 1026, 1026, 1026, 1028, 1028, 1028, 1029, 1029, 1029,
1591 1011, 1220, 1231, 1023, 1030, 1030, 1030, 1026, 1041, 1041,
1592 1041, 1260, 1238, 1029, 1044, 1044, 1044, 994, 1044, 1030,
1593 1260, 1044, 1232, 1233, 1041, 1045, 1045, 1045, 1229, 1233,
1594 1044, 1230, 1221, 1011, 1046, 1046, 1046, 1234, 1238, 1041,
1595 949, 1045, 1048, 1048, 1048, 1049, 1049, 1049, 1222, 1049,
1596 1046, 1225, 1049, 1059, 1059, 1059, 1221, 1048, 1062, 1062,
1598 1062, 1065, 1065, 1065, 1066, 1066, 1066, 1229, 1066, 1059,
1599 1230, 1066, 1222, 1289, 1062, 1225, 1234, 1065, 1073, 1073,
1600 1073, 1076, 1076, 1076, 948, 1076, 1259, 1235, 1076, 1079,
1601 1079, 1079, 1065, 1079, 1073, 1226, 1079, 1076, 1259, 1085,
1602 1085, 1085, 945, 1085, 1240, 1079, 1085, 1135, 1135, 1135,
1603 1142, 1142, 1142, 1289, 1244, 1085, 1143, 1143, 1143, 1226,
1604 1150, 1150, 1150, 1135, 1150, 1142, 1235, 1150, 1151, 1151,
1605 1151, 1143, 1156, 1156, 1156, 1241, 1150, 1157, 1157, 1157,
1606 1159, 1159, 1159, 1240, 1151, 1239, 1244, 937, 1156, 1158,
1607 1158, 1158, 1157, 1158, 1266, 1159, 1158, 1160, 1160, 1160,
1609 935, 1160, 934, 1266, 1160, 1169, 1169, 1169, 1174, 1174,
1610 1174, 1239, 1174, 1245, 1241, 1174, 1175, 1175, 1175, 1242,
1611 1175, 1169, 1243, 1175, 1174, 1178, 1178, 1178, 1247, 1178,
1612 1248, 1250, 1178, 1213, 1213, 1213, 1169, 1227, 1227, 1227,
1613 1249, 1249, 1249, 1242, 1251, 1245, 1243, 1252, 1253, 1213,
1614 1256, 1257, 1247, 1227, 1248, 1265, 1249, 1258, 1258, 1258,
1615 1261, 1261, 1261, 1263, 1264, 1277, 1280, 1265, 1267, 1267,
1616 1267, 1252, 1253, 1258, 1250, 1290, 1261, 1272, 1268, 1269,
1617 1273, 1256, 1257, 1278, 1267, 1268, 1269, 1251, 1287, 1277,
1618 1270, 1270, 1270, 1288, 1270, 1263, 1264, 1270, 1271, 1271,
1620 1271, 1274, 1274, 1274, 1280, 1283, 1270, 1278, 1272, 1284,
1621 1295, 1273, 1283, 1296, 1271, 1290, 1284, 1274, 1275, 1275,
1622 1275, 1281, 1281, 1281, 1285, 1285, 1285, 1287, 1291, 1292,
1623 1293, 1294, 1288, 1297, 1275, 1298, 1299, 1281, 1301, 1302,
1624 1285, 1306, 1300, 1303, 1304, 1307, 1312, 1295, 1299, 1308,
1625 1296, 1300, 1291, 1292, 1293, 1294, 1315, 1305, 1305, 1305,
1626 1309, 1308, 1313, 1319, 1301, 1302, 1316, 1303, 1304, 1309,
1627 1319, 1323, 1297, 1305, 1298, 1310, 1310, 1310, 1312, 1314,
1628 1314, 1314, 1320, 1321, 1306, 1322, 1324, 1315, 1307, 1320,
1629 1327, 1310, 1325, 1326, 1313, 1314, 1328, 1316, 1317, 1317,
1631 1317, 933, 1327, 924, 923, 1328, 922, 1321, 921, 1322,
1632 1323, 1329, 1329, 1329, 1317, 920, 1325, 1326, 1330, 1330,
1633 1330, 919, 913, 911, 909, 1324, 896, 1329, 895, 888,
1634 887, 886, 885, 883, 1330, 1333, 1333, 1333, 1333, 1333,
1635 1333, 1333, 1334, 1334, 1334, 1334, 1334, 1334, 1334, 1335,
1636 1335, 1335, 1335, 1335, 1335, 1335, 1336, 1336, 1336, 1336,
1637 1336, 1336, 1336, 1337, 1337, 1337, 1337, 1337, 1337, 1337,
1638 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1339, 1339, 1339,
1639 1339, 1339, 1339, 1339, 1340, 1340, 1340, 1340, 1340, 1340,
1640 1340, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1342, 1342,
1642 1342, 1342, 1342, 1342, 1342, 1343, 1343, 1343, 1343, 1343,
1643 1343, 1343, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1345,
1644 1345, 1345, 1345, 1345, 1345, 1345, 1346, 1346, 1346, 1346,
1645 1346, 1346, 1346, 1347, 1347, 1347, 1347, 1347, 1347, 1347,
1646 1348, 1348, 1348, 1348, 1348, 1348, 1348, 1349, 1349, 1349,
1647 1349, 1349, 1349, 1349, 1350, 1350, 1350, 1350, 1350, 1350,
1648 1350, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1352, 1352,
1649 1352, 1352, 1352, 1352, 1352, 1353, 1353, 1353, 1353, 1353,
1650 1353, 1353, 1354, 1354, 1354, 1354, 1354, 1354, 1354, 1355,
1651 1355, 1355, 867, 1355, 1356, 1356, 1356, 863, 1356, 1357,
1653 1357, 1357, 853, 1357, 1358, 1358, 1358, 852, 1358, 1359,
1654 1359, 1359, 851, 1359, 1360, 1360, 1360, 850, 1360, 1361,
1655 1361, 1361, 848, 1361, 1362, 1362, 1362, 833, 1362, 1363,
1656 1363, 1363, 1363, 1363, 830, 1363, 1364, 821, 1364, 1365,
1657 820, 1365, 1366, 819, 1366, 1367, 818, 1367, 1368, 812,
1658 1368, 1369, 800, 1369, 1370, 796, 1370, 1371, 793, 1371,
1659 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1373, 792, 790,
1660 1373, 1374, 1374, 1374, 1374, 1374, 1374, 1375, 1375, 1375,
1661 1375, 1375, 1375, 1376, 1376, 1376, 1376, 1376, 1376, 1377,
1662 1377, 1377, 1377, 1377, 1377, 1378, 1378, 1378, 1378, 1378,
1664 1378, 1379, 1379, 1379, 1379, 1379, 1379, 1380, 1380, 1380,
1665 1380, 1380, 1380, 1381, 1381, 1381, 1381, 1381, 1381, 1382,
1666 1382, 1382, 1382, 1382, 1382, 1382, 1383, 1383, 1383, 1383,
1667 1383, 1383, 1383, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
1668 1385, 1385, 1385, 1385, 1385, 1385, 1385, 1386, 1386, 1386,
1669 1386, 1386, 1386, 1386, 1387, 1387, 1387, 1387, 1387, 1387,
1670 1387, 1388, 1388, 1388, 1388, 1388, 1388, 1388, 785, 771,
1671 770, 769, 764, 762, 758, 757, 755, 753, 735, 734,
1672 733, 727, 726, 725, 717, 716, 715, 714, 712, 692,
1673 687, 685, 684, 683, 682, 677, 675, 674, 673, 672,
1675 669, 667, 659, 654, 653, 651, 650, 649, 648, 647,
1676 646, 645, 640, 639, 638, 637, 636, 635, 634, 633,
1677 630, 627, 623, 621, 619, 618, 615, 612, 610, 607,
1678 606, 603, 602, 599, 598, 597, 594, 591, 587, 582,
1679 580, 579, 578, 576, 574, 572, 571, 570, 568, 566,
1680 565, 564, 563, 558, 557, 556, 553, 552, 551, 549,
1681 544, 540, 538, 537, 533, 528, 526, 524, 521, 517,
1682 516, 513, 505, 504, 503, 497, 496, 495, 493, 490,
1683 487, 485, 482, 480, 479, 476, 472, 467, 461, 458,
1684 457, 451, 450, 449, 445, 444, 443, 442, 439, 438,
1686 437, 432, 427, 426, 421, 420, 418, 412, 405, 398,
1687 397, 395, 394, 389, 388, 386, 385, 384, 378, 377,
1688 376, 375, 369, 368, 365, 364, 363, 361, 357, 355,
1689 352, 351, 348, 347, 346, 345, 342, 341, 337, 333,
1690 332, 331, 330, 329, 326, 325, 324, 323, 322, 321,
1691 318, 317, 316, 315, 314, 313, 310, 308, 307, 306,
1692 305, 304, 300, 298, 297, 296, 295, 294, 293, 290,
1693 289, 288, 287, 286, 285, 282, 281, 278, 277, 276,
1694 275, 274, 271, 270, 269, 268, 267, 266, 263, 262,
1695 261, 260, 259, 258, 257, 254, 253, 250, 249, 248,
1697 247, 246, 245, 242, 241, 240, 239, 238, 232, 231,
1698 229, 226, 225, 221, 217, 209, 208, 207, 206, 202,
1699 195, 191, 183, 182, 181, 177, 169, 168, 167, 163,
1700 156, 155, 154, 153, 152, 151, 147, 139, 135, 123,
1701 119, 118, 117, 111, 110, 108, 105, 93, 1332, 1332,
1702 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
1703 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
1704 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
1705 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
1706 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
1708 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332, 1332,
1712 /* Table of booleans, true if rule could match eol. */
1713 static yyconst flex_int32_t yy_rule_can_match_eol[177] =
1715 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1716 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1717 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1718 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1719 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1,
1720 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1,
1721 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
1722 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0,
1723 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, };
1725 static yy_state_type yy_last_accepting_state;
1726 static char *yy_last_accepting_cpos;
1728 extern int surf_parse__flex_debug;
1729 int surf_parse__flex_debug = 0;
1731 /* The intent behind this definition is that it'll catch
1732 * any uses of REJECT which flex missed.
1734 #define REJECT reject_used_but_not_detected
1735 #define yymore() yymore_used_but_not_detected
1736 #define YY_MORE_ADJ 0
1737 #define YY_RESTORE_YY_MORE_OFFSET
1738 char *surf_parse_text;
1739 #line 1 "surf/surfxml.l"
1740 /* Validating XML processor for surfxml.dtd.
1741 * Generated 2006/04/22 01:36:54.
1743 * This program was generated with the FleXML XML processor generator.
1744 * FleXML is Copyright © 1999-2005 Kristoffer Rose. All rights reserved.
1745 * (Id: flexml.pl,v 1.48 2006/03/21 13:09:12 mquinson Exp).
1747 * There are two, intertwined parts to this program, part A and part B.
1752 * Some parts, here collectively called "Part A", are found in the
1753 * FleXML package. They are Copyright © 1999-2005 Kristoffer Rose.
1754 * All rights reserved.
1756 * You can redistribute, use, perform, display and/or modify "Part A"
1757 * provided the following two conditions hold:
1759 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1760 * FleXML; without even the implied warranty of MERCHANTABILITY or
1761 * FITNESS FOR A PARTICULAR PURPOSE.
1763 * 2. The program distribution conditions do not in any way affect the
1764 * distribution conditions of the FleXML system used to generate this
1765 * file or any version of FleXML derived from that system.
1767 * Notice that these are explicit rights granted to you for files
1768 * generated by the FleXML system. For your rights in connection with
1769 * the FleXML system itself please consult the GNU General Public License.
1774 * The other parts, here collectively called "Part B", and which came
1775 * from the DTD used by FleXML to generate this program, can be
1776 * distributed (or not, as the case may be) under the terms of whoever
1777 * wrote them, provided these terms respect and obey the two conditions
1778 * above under the heading "Part A".
1780 * The author of and contributors to FleXML specifically disclaim
1781 * any copyright interest in "Part B", unless "Part B" was written
1782 * by the author of or contributors to FleXML.
1785 #line 48 "surf/surfxml.l"
1787 /* Version strings. */
1788 const char rcs_surfxml_flexml_skeleton[] =
1789 "$" "Id: skel,v 1.28 2006/03/21 12:04:13 legranda Exp $";
1790 const char rcs_surfxml_flexml[] =
1791 "$" "Id: flexml.pl,v 1.48 2006/03/21 13:09:12 mquinson Exp $";
1801 /* Generated definitions. */
1802 #define FLEXML_yylineno
1803 #define FLEXML_BUFFERSTACKSIZE 1000000
1805 /* XML processor api. */
1806 /* FleXML-provided data. */
1807 const char* surfxml_pcdata;
1808 AT_surfxml_network_link_bandwidth A_surfxml_network_link_bandwidth;
1809 AT_surfxml_cpu_name A_surfxml_cpu_name;
1810 AT_surfxml_process_kill_time A_surfxml_process_kill_time;
1811 AT_surfxml_network_link_state A_surfxml_network_link_state;
1812 AT_surfxml_argument_value A_surfxml_argument_value;
1813 AT_surfxml_cpu_availability_file A_surfxml_cpu_availability_file;
1814 AT_surfxml_process_host A_surfxml_process_host;
1815 AT_surfxml_route_impact_on_src A_surfxml_route_impact_on_src;
1816 AT_surfxml_route_src A_surfxml_route_src;
1817 AT_surfxml_network_link_latency_file A_surfxml_network_link_latency_file;
1818 AT_surfxml_cpu_max_outgoing_rate A_surfxml_cpu_max_outgoing_rate;
1819 AT_surfxml_route_impact_on_dst_with_other_send A_surfxml_route_impact_on_dst_with_other_send;
1820 AT_surfxml_cpu_interference_send_recv A_surfxml_cpu_interference_send_recv;
1821 AT_surfxml_cpu_availability A_surfxml_cpu_availability;
1822 AT_surfxml_route_impact_on_dst A_surfxml_route_impact_on_dst;
1823 AT_surfxml_cpu_interference_recv A_surfxml_cpu_interference_recv;
1824 AT_surfxml_route_impact_on_src_with_other_recv A_surfxml_route_impact_on_src_with_other_recv;
1825 AT_surfxml_network_link_name A_surfxml_network_link_name;
1826 AT_surfxml_route_element_name A_surfxml_route_element_name;
1827 AT_surfxml_cpu_power A_surfxml_cpu_power;
1828 AT_surfxml_process_start_time A_surfxml_process_start_time;
1829 AT_surfxml_include_file A_surfxml_include_file;
1830 AT_surfxml_process_function A_surfxml_process_function;
1831 AT_surfxml_network_link_sharing_policy A_surfxml_network_link_sharing_policy;
1832 AT_surfxml_route_dst A_surfxml_route_dst;
1833 AT_surfxml_cpu_state A_surfxml_cpu_state;
1834 AT_surfxml_network_link_latency A_surfxml_network_link_latency;
1835 AT_surfxml_network_link_state_file A_surfxml_network_link_state_file;
1836 AT_surfxml_cpu_interference_send A_surfxml_cpu_interference_send;
1837 AT_surfxml_cpu_state_file A_surfxml_cpu_state_file;
1838 AT_surfxml_network_link_bandwidth_file A_surfxml_network_link_bandwidth_file;
1842 # define ENTER(state) debug_enter(state,#state)
1843 # define LEAVE debug_leave()
1844 # define SET(state) debug_set(state,#state)
1845 static void debug_enter(int, const char*);
1846 static void debug_leave(void);
1847 static void debug_set(int, const char*);
1849 # define ENTER(state) (yy_push_state(state))
1850 # define LEAVE (yy_pop_state())
1851 # define SET(state) BEGIN(state)
1854 /* Generic actions. */
1855 #define SKIP /*skip*/
1856 #define SUCCEED CLEANUP; return 0
1858 #define FAIL return fail
1859 static int fail(const char*, ...);
1860 const char * surfxml_parse_err_msg(void);
1863 static void cleanup(void);
1864 #define CLEANUP cleanup()
1866 /* Text buffer stack handling. */
1867 static char bufferstack[FLEXML_BUFFERSTACKSIZE];
1868 static char* limit = bufferstack + FLEXML_BUFFERSTACKSIZE;
1869 typedef struct BufferLast_s {
1870 struct BufferLast_s *old; char* saved; char new1[1];
1872 #ifdef FLEXML_HasMixed
1873 static BufferLast* last = (BufferLast*)0;
1875 static char* next = bufferstack;
1877 #define BUFFERSET(P) (P = next)
1878 #define BUFFERPUTC(C) (assert(next<limit), *(next++) = (C))
1879 #define BUFFERDONE (BUFFERPUTC('\0'))
1881 #define BUFFERLITERAL(C,P) bufferliteral(C,&(P),surf_parse_text)
1882 static void bufferliteral(char c, const char** pp, char* text)
1884 char *s = strchr(text,c), *e = strrchr(text,c);
1885 assert(s <= e); BUFFERSET(*pp);
1887 if (isspace(*s)) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
1888 else BUFFERPUTC(*s);
1893 #ifdef FLEXML_HasMixed
1894 static void pushbuffer(char* p)
1896 BufferLast* l = (BufferLast*)next;
1897 assert(next < limit);
1904 static char* popbuffer(void)
1906 BufferLast* l = last;
1907 assert(last != (BufferLast*)0);
1914 /* General internal entities are `unput' back onto the input stream... */
1915 #define ENTITYTEXT(T) \
1916 { char *s = (T), *e = s+strlen(s);\
1917 while (--e >= s) { unput(*e); }}
1918 /* Flex standard options. */
1919 #define YY_NO_INPUT 1
1920 /* Flex user-requested options. */
1921 /* XML character classes (currently restricted to ASCII). */
1922 /* "Common syntactic structures." */
1923 /* "Names and Tokens." */
1924 /* Miscellaneous. */
1925 /* Parser states (flex `exclusive start conditions'):
1927 * PROLOG the XML prolog of the document before <?xml...>
1928 * DOCTYPE the XML prolog of the document after <?xml...>
1929 * EPILOG after the root element
1930 * INCOMMENT inside an XML comment <!--....-->
1931 * INPI inside an XML PI <?...?>
1932 * VALUE1 inside a '...'-delimited literal
1933 * VALUE2 inside a "..."-delimited literal
1934 * CDATA inside a <![CDATA[...] ]> section.
1935 * ROOT_<tag> expect root element <tag>
1936 * AL_<tag> inside the attribute list for <tag>
1937 * IN_<tag> inside a <tag> with element contents (ready for end tag)
1938 * IMPOSSIBLE dummy to permit disabling rules; must be last
1950 #line 239 "surf/surfxml.l"
1952 const char* *surfxml_statenames=NULL;
1953 #line 1954 "surf/surfxml.c"
1964 #define ROOT_surfxml_platform_description 9
1965 #define AL_surfxml_platform_description 10
1966 #define S_surfxml_platform_description 11
1967 #define S_surfxml_platform_description_1 12
1968 #define S_surfxml_platform_description_2 13
1969 #define E_surfxml_platform_description 14
1970 #define ROOT_surfxml_include 15
1971 #define AL_surfxml_include 16
1972 #define S_surfxml_include 17
1973 #define S_surfxml_include_1 18
1974 #define S_surfxml_include_2 19
1975 #define E_surfxml_include 20
1976 #define ROOT_surfxml_cpu 21
1977 #define AL_surfxml_cpu 22
1978 #define E_surfxml_cpu 23
1979 #define ROOT_surfxml_network_link 24
1980 #define AL_surfxml_network_link 25
1981 #define E_surfxml_network_link 26
1982 #define ROOT_surfxml_route 27
1983 #define AL_surfxml_route 28
1984 #define S_surfxml_route 29
1985 #define S_surfxml_route_1 30
1986 #define S_surfxml_route_2 31
1987 #define E_surfxml_route 32
1988 #define ROOT_surfxml_route_element 33
1989 #define AL_surfxml_route_element 34
1990 #define E_surfxml_route_element 35
1991 #define ROOT_surfxml_process 36
1992 #define AL_surfxml_process 37
1993 #define S_surfxml_process 38
1994 #define S_surfxml_process_1 39
1995 #define S_surfxml_process_2 40
1996 #define E_surfxml_process 41
1997 #define ROOT_surfxml_argument 42
1998 #define AL_surfxml_argument 43
1999 #define E_surfxml_argument 44
2000 #define IMPOSSIBLE 45
2002 #ifndef YY_NO_UNISTD_H
2003 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2004 * down here because we want the user's section 1 to have been scanned first.
2005 * The user has a chance to override it with an option.
2010 #ifndef YY_EXTRA_TYPE
2011 #define YY_EXTRA_TYPE void *
2014 /* Macros after this point can all be overridden by user definitions in
2018 #ifndef YY_SKIP_YYWRAP
2020 extern "C" int surf_parse_wrap (void );
2022 extern int surf_parse_wrap (void );
2027 static void yy_flex_strncpy (char *,yyconst char *,int );
2030 #ifdef YY_NEED_STRLEN
2031 static int yy_flex_strlen (yyconst char * );
2037 static int yyinput (void );
2039 static int input (void );
2044 static int yy_start_stack_ptr = 0;
2045 static int yy_start_stack_depth = 0;
2046 static int *yy_start_stack = 0;
2048 static void yy_push_state (int new_state );
2050 static void yy_pop_state (void );
2052 /* Amount of stuff to slurp up with each read. */
2053 #ifndef YY_READ_BUF_SIZE
2054 #define YY_READ_BUF_SIZE 8192
2057 /* Copy whatever the last rule matched to the standard output. */
2059 /* This used to be an fputs(), but since the string might contain NUL's,
2060 * we now use fwrite().
2062 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
2065 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2066 * is returned in "result".
2069 #define YY_INPUT(buf,result,max_size) \
2070 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2074 for ( n = 0; n < max_size && \
2075 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
2076 buf[n] = (char) c; \
2078 buf[n++] = (char) c; \
2079 if ( c == EOF && ferror( surf_parse_in ) ) \
2080 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2086 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2088 if( errno != EINTR) \
2090 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2094 clearerr(surf_parse_in); \
2101 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2102 * we don't want an extra ';' after the "return" because that will cause
2103 * some compilers to complain about unreachable statements.
2106 #define yyterminate() return YY_NULL
2109 /* Number of entries by which start-condition stack grows. */
2110 #ifndef YY_START_STACK_INCR
2111 #define YY_START_STACK_INCR 25
2114 /* Report a fatal error. */
2115 #ifndef YY_FATAL_ERROR
2116 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2119 /* end tables serialization structures and prototypes */
2121 /* Default declaration of generated scanner - a define so the user can
2122 * easily add parameters.
2125 #define YY_DECL_IS_OURS 1
2127 extern int surf_parse_lex (void);
2129 #define YY_DECL int surf_parse_lex (void)
2130 #endif /* !YY_DECL */
2132 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2135 #ifndef YY_USER_ACTION
2136 #define YY_USER_ACTION
2139 /* Code executed at the end of each rule. */
2141 #define YY_BREAK break;
2144 #define YY_RULE_SETUP \
2147 /** The main scanner function which does all the work.
2151 register yy_state_type yy_current_state;
2152 register char *yy_cp, *yy_bp;
2153 register int yy_act;
2155 #line 243 "surf/surfxml.l"
2158 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
2162 if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
2163 surfxml_statenames[PROLOG] = NULL;
2164 surfxml_statenames[DOCTYPE] = NULL;
2165 surfxml_statenames[EPILOG] = NULL;
2166 surfxml_statenames[INCOMMENT] = NULL;
2167 surfxml_statenames[INPI] = NULL;
2168 surfxml_statenames[VALUE1] = NULL;
2169 surfxml_statenames[VALUE2] = NULL;
2170 surfxml_statenames[CDATA] = NULL;
2171 surfxml_statenames[ROOT_surfxml_platform_description] = NULL;
2172 surfxml_statenames[AL_surfxml_platform_description] = NULL;
2173 surfxml_statenames[S_surfxml_platform_description] = "platform_description";
2174 surfxml_statenames[S_surfxml_platform_description_1] = "platform_description";
2175 surfxml_statenames[S_surfxml_platform_description_2] = "platform_description";
2176 surfxml_statenames[E_surfxml_platform_description] = "platform_description";
2177 surfxml_statenames[ROOT_surfxml_include] = NULL;
2178 surfxml_statenames[AL_surfxml_include] = NULL;
2179 surfxml_statenames[S_surfxml_include] = "include";
2180 surfxml_statenames[S_surfxml_include_1] = "include";
2181 surfxml_statenames[S_surfxml_include_2] = "include";
2182 surfxml_statenames[E_surfxml_include] = "include";
2183 surfxml_statenames[ROOT_surfxml_cpu] = NULL;
2184 surfxml_statenames[AL_surfxml_cpu] = NULL;
2185 surfxml_statenames[E_surfxml_cpu] = "cpu";
2186 surfxml_statenames[ROOT_surfxml_network_link] = NULL;
2187 surfxml_statenames[AL_surfxml_network_link] = NULL;
2188 surfxml_statenames[E_surfxml_network_link] = "network_link";
2189 surfxml_statenames[ROOT_surfxml_route] = NULL;
2190 surfxml_statenames[AL_surfxml_route] = NULL;
2191 surfxml_statenames[S_surfxml_route] = "route";
2192 surfxml_statenames[S_surfxml_route_1] = "route";
2193 surfxml_statenames[S_surfxml_route_2] = "route";
2194 surfxml_statenames[E_surfxml_route] = "route";
2195 surfxml_statenames[ROOT_surfxml_route_element] = NULL;
2196 surfxml_statenames[AL_surfxml_route_element] = NULL;
2197 surfxml_statenames[E_surfxml_route_element] = "route_element";
2198 surfxml_statenames[ROOT_surfxml_process] = NULL;
2199 surfxml_statenames[AL_surfxml_process] = NULL;
2200 surfxml_statenames[S_surfxml_process] = "process";
2201 surfxml_statenames[S_surfxml_process_1] = "process";
2202 surfxml_statenames[S_surfxml_process_2] = "process";
2203 surfxml_statenames[E_surfxml_process] = "process";
2204 surfxml_statenames[ROOT_surfxml_argument] = NULL;
2205 surfxml_statenames[AL_surfxml_argument] = NULL;
2206 surfxml_statenames[E_surfxml_argument] = "argument";
2209 /* COMMENTS and PIs: handled uniformly for efficiency. */
2211 #line 2212 "surf/surfxml.c"
2222 (yy_start) = 1; /* first start state */
2224 if ( ! surf_parse_in )
2225 surf_parse_in = stdin;
2227 if ( ! surf_parse_out )
2228 surf_parse_out = stdout;
2230 if ( ! YY_CURRENT_BUFFER ) {
2231 surf_parse_ensure_buffer_stack ();
2232 YY_CURRENT_BUFFER_LVALUE =
2233 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
2236 surf_parse__load_buffer_state( );
2239 while ( 1 ) /* loops until end-of-file is reached */
2241 yy_cp = (yy_c_buf_p);
2243 /* Support of surf_parse_text. */
2244 *yy_cp = (yy_hold_char);
2246 /* yy_bp points to the position in yy_ch_buf of the start of
2251 yy_current_state = (yy_start);
2255 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2256 if ( yy_accept[yy_current_state] )
2258 (yy_last_accepting_state) = yy_current_state;
2259 (yy_last_accepting_cpos) = yy_cp;
2261 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2263 yy_current_state = (int) yy_def[yy_current_state];
2264 if ( yy_current_state >= 1333 )
2265 yy_c = yy_meta[(unsigned int) yy_c];
2267 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2270 while ( yy_base[yy_current_state] != 3649 );
2273 yy_act = yy_accept[yy_current_state];
2275 { /* have to back up */
2276 yy_cp = (yy_last_accepting_cpos);
2277 yy_current_state = (yy_last_accepting_state);
2278 yy_act = yy_accept[yy_current_state];
2281 YY_DO_BEFORE_ACTION;
2283 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2286 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
2287 if ( surf_parse_text[yyl] == '\n' )
2289 surf_parse_lineno++;
2293 do_action: /* This label is used only to access EOF actions. */
2296 { /* beginning of action switch */
2297 case 0: /* must back up */
2298 /* undo the effects of YY_DO_BEFORE_ACTION */
2299 *yy_cp = (yy_hold_char);
2300 yy_cp = (yy_last_accepting_cpos);
2301 yy_current_state = (yy_last_accepting_state);
2302 goto yy_find_action;
2306 #line 299 "surf/surfxml.l"
2311 #line 300 "surf/surfxml.l"
2318 #line 303 "surf/surfxml.l"
2322 #line 305 "surf/surfxml.l"
2324 #line 306 "surf/surfxml.l"
2326 /* rule 6 can match eol */
2328 #line 306 "surf/surfxml.l"
2331 case YY_STATE_EOF(INCOMMENT):
2332 #line 307 "surf/surfxml.l"
2333 FAIL("EOF in comment.");
2339 #line 310 "surf/surfxml.l"
2343 #line 312 "surf/surfxml.l"
2345 /* rule 9 can match eol */
2347 #line 312 "surf/surfxml.l"
2350 case YY_STATE_EOF(INPI):
2351 #line 313 "surf/surfxml.l"
2352 FAIL("EOF in PI (processing instruction).");
2355 /* SPACES: skipped uniformly */
2357 /* rule 10 can match eol */
2359 #line 318 "surf/surfxml.l"
2362 /* PROLOG: determine root element and process it. */
2365 /* rule 11 can match eol */
2367 #line 323 "surf/surfxml.l"
2371 /* rule 12 can match eol */
2373 #line 324 "surf/surfxml.l"
2374 FAIL("Bad declaration %s.",surf_parse_text);
2379 /* rule 13 can match eol */
2381 #line 328 "surf/surfxml.l"
2382 SET(ROOT_surfxml_argument);
2385 /* rule 14 can match eol */
2387 #line 329 "surf/surfxml.l"
2388 SET(ROOT_surfxml_route_element);
2391 /* rule 15 can match eol */
2393 #line 330 "surf/surfxml.l"
2394 SET(ROOT_surfxml_cpu);
2397 /* rule 16 can match eol */
2399 #line 331 "surf/surfxml.l"
2400 SET(ROOT_surfxml_include);
2403 /* rule 17 can match eol */
2405 #line 332 "surf/surfxml.l"
2406 SET(ROOT_surfxml_route);
2409 /* rule 18 can match eol */
2411 #line 333 "surf/surfxml.l"
2412 SET(ROOT_surfxml_platform_description);
2415 /* rule 19 can match eol */
2417 #line 334 "surf/surfxml.l"
2418 SET(ROOT_surfxml_network_link);
2421 /* rule 20 can match eol */
2423 #line 335 "surf/surfxml.l"
2424 SET(ROOT_surfxml_process);
2427 /* rule 21 can match eol */
2429 #line 336 "surf/surfxml.l"
2430 FAIL("Bad declaration %s.",surf_parse_text);
2434 #line 337 "surf/surfxml.l"
2435 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
2437 case YY_STATE_EOF(PROLOG):
2438 case YY_STATE_EOF(DOCTYPE):
2439 #line 338 "surf/surfxml.l"
2440 FAIL("EOF in prolog.");
2443 /* RULES DERIVED FROM DTD. */
2444 /* <!-- Small DTD for SURF based tools. --> */
2446 /* rule 23 can match eol */
2448 #line 345 "surf/surfxml.l"
2450 ENTER(AL_surfxml_platform_description);
2456 #line 350 "surf/surfxml.l"
2458 LEAVE; STag_surfxml_platform_description();surfxml_pcdata = NULL; ENTER(S_surfxml_platform_description);
2463 #line 353 "surf/surfxml.l"
2465 LEAVE; STag_surfxml_platform_description(); surfxml_pcdata = NULL; ETag_surfxml_platform_description();
2467 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2473 #line 359 "surf/surfxml.l"
2474 FAIL("Unexpected character `%c' in attribute list of platform_description element.", surf_parse_text[0]);
2478 #line 360 "surf/surfxml.l"
2479 FAIL("Bad attribute `%s' in `platform_description' element start tag.",surf_parse_text);
2481 case YY_STATE_EOF(AL_surfxml_platform_description):
2482 #line 361 "surf/surfxml.l"
2483 FAIL("EOF in attribute list of `platform_description' element.");
2488 /* rule 28 can match eol */
2490 #line 365 "surf/surfxml.l"
2493 ETag_surfxml_platform_description();
2495 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2500 /* rule 29 can match eol */
2502 #line 372 "surf/surfxml.l"
2503 FAIL("Unexpected end-tag `%s': `</platform_description>' expected.",surf_parse_text);
2507 #line 373 "surf/surfxml.l"
2508 FAIL("Unexpected character `%c': `</platform_description>' expected.",surf_parse_text[0]);
2510 case YY_STATE_EOF(E_surfxml_platform_description):
2511 case YY_STATE_EOF(S_surfxml_platform_description_2):
2512 case YY_STATE_EOF(S_surfxml_platform_description):
2513 #line 374 "surf/surfxml.l"
2514 FAIL("Premature EOF: `</platform_description>' expected.");
2518 /* rule 31 can match eol */
2520 #line 377 "surf/surfxml.l"
2522 A_surfxml_include_file = NULL;
2523 ENTER(AL_surfxml_include);
2528 /* rule 32 can match eol */
2530 #line 383 "surf/surfxml.l"
2531 ENTER(VALUE1); BUFFERSET(A_surfxml_include_file);
2534 /* rule 33 can match eol */
2536 #line 384 "surf/surfxml.l"
2537 ENTER(VALUE2); BUFFERSET(A_surfxml_include_file);
2541 #line 386 "surf/surfxml.l"
2543 if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2544 LEAVE; STag_surfxml_include();surfxml_pcdata = NULL; ENTER(S_surfxml_include);
2549 #line 390 "surf/surfxml.l"
2551 if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2552 LEAVE; STag_surfxml_include(); surfxml_pcdata = NULL; ETag_surfxml_include();
2554 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2555 case ROOT_surfxml_include: SET(EPILOG); break;
2556 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2562 #line 399 "surf/surfxml.l"
2563 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
2567 #line 400 "surf/surfxml.l"
2568 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
2570 case YY_STATE_EOF(AL_surfxml_include):
2571 #line 401 "surf/surfxml.l"
2572 FAIL("EOF in attribute list of `include' element.");
2577 /* rule 38 can match eol */
2579 #line 405 "surf/surfxml.l"
2582 ETag_surfxml_include();
2584 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2585 case ROOT_surfxml_include: SET(EPILOG); break;
2586 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2591 /* rule 39 can match eol */
2593 #line 414 "surf/surfxml.l"
2594 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
2598 #line 415 "surf/surfxml.l"
2599 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
2601 case YY_STATE_EOF(E_surfxml_include):
2602 case YY_STATE_EOF(S_surfxml_include):
2603 case YY_STATE_EOF(S_surfxml_include_2):
2604 #line 416 "surf/surfxml.l"
2605 FAIL("Premature EOF: `</include>' expected.");
2609 /* rule 41 can match eol */
2611 #line 419 "surf/surfxml.l"
2613 A_surfxml_cpu_name = NULL;
2614 A_surfxml_cpu_power = NULL;
2615 A_surfxml_cpu_availability = "1.0";
2616 A_surfxml_cpu_availability_file = NULL;
2617 A_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2618 A_surfxml_cpu_state_file = NULL;
2619 A_surfxml_cpu_interference_send = "1.0";
2620 A_surfxml_cpu_interference_recv = "1.0";
2621 A_surfxml_cpu_interference_send_recv = "1.0";
2622 A_surfxml_cpu_max_outgoing_rate = "-1.0";
2623 ENTER(AL_surfxml_cpu);
2628 /* rule 42 can match eol */
2630 #line 434 "surf/surfxml.l"
2631 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_name);
2634 /* rule 43 can match eol */
2636 #line 435 "surf/surfxml.l"
2637 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_name);
2640 /* rule 44 can match eol */
2642 #line 437 "surf/surfxml.l"
2643 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_power);
2646 /* rule 45 can match eol */
2648 #line 438 "surf/surfxml.l"
2649 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_power);
2652 /* rule 46 can match eol */
2654 #line 440 "surf/surfxml.l"
2655 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability);
2658 /* rule 47 can match eol */
2660 #line 441 "surf/surfxml.l"
2661 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability);
2664 /* rule 48 can match eol */
2666 #line 443 "surf/surfxml.l"
2667 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability_file);
2670 /* rule 49 can match eol */
2672 #line 444 "surf/surfxml.l"
2673 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability_file);
2676 /* rule 50 can match eol */
2677 #line 447 "surf/surfxml.l"
2679 /* rule 51 can match eol */
2681 #line 447 "surf/surfxml.l"
2682 A_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2685 /* rule 52 can match eol */
2686 #line 449 "surf/surfxml.l"
2688 /* rule 53 can match eol */
2690 #line 449 "surf/surfxml.l"
2691 A_surfxml_cpu_state = A_surfxml_cpu_state_OFF;
2694 /* rule 54 can match eol */
2696 #line 451 "surf/surfxml.l"
2697 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_state_file);
2700 /* rule 55 can match eol */
2702 #line 452 "surf/surfxml.l"
2703 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_state_file);
2706 /* rule 56 can match eol */
2708 #line 454 "surf/surfxml.l"
2709 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send);
2712 /* rule 57 can match eol */
2714 #line 455 "surf/surfxml.l"
2715 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send);
2718 /* rule 58 can match eol */
2720 #line 457 "surf/surfxml.l"
2721 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_recv);
2724 /* rule 59 can match eol */
2726 #line 458 "surf/surfxml.l"
2727 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_recv);
2730 /* rule 60 can match eol */
2732 #line 460 "surf/surfxml.l"
2733 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send_recv);
2736 /* rule 61 can match eol */
2738 #line 461 "surf/surfxml.l"
2739 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send_recv);
2742 /* rule 62 can match eol */
2744 #line 463 "surf/surfxml.l"
2745 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_max_outgoing_rate);
2748 /* rule 63 can match eol */
2750 #line 464 "surf/surfxml.l"
2751 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_max_outgoing_rate);
2755 #line 466 "surf/surfxml.l"
2757 if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2758 if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2759 LEAVE; STag_surfxml_cpu();surfxml_pcdata = NULL; ENTER(E_surfxml_cpu);
2764 #line 471 "surf/surfxml.l"
2766 if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2767 if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2768 LEAVE; STag_surfxml_cpu(); surfxml_pcdata = NULL; ETag_surfxml_cpu();
2770 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2771 case ROOT_surfxml_cpu: SET(EPILOG); break;
2772 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2778 #line 481 "surf/surfxml.l"
2779 FAIL("Unexpected character `%c' in attribute list of cpu element.", surf_parse_text[0]);
2783 #line 482 "surf/surfxml.l"
2784 FAIL("Bad attribute `%s' in `cpu' element start tag.",surf_parse_text);
2786 case YY_STATE_EOF(AL_surfxml_cpu):
2787 #line 483 "surf/surfxml.l"
2788 FAIL("EOF in attribute list of `cpu' element.");
2793 /* rule 68 can match eol */
2795 #line 487 "surf/surfxml.l"
2800 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2801 case ROOT_surfxml_cpu: SET(EPILOG); break;
2802 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2807 /* rule 69 can match eol */
2809 #line 496 "surf/surfxml.l"
2810 FAIL("Unexpected end-tag `%s': `</cpu>' expected.",surf_parse_text);
2814 #line 497 "surf/surfxml.l"
2815 FAIL("Unexpected character `%c': `</cpu>' expected.",surf_parse_text[0]);
2817 case YY_STATE_EOF(E_surfxml_cpu):
2818 #line 498 "surf/surfxml.l"
2819 FAIL("Premature EOF: `</cpu>' expected.");
2823 /* rule 71 can match eol */
2825 #line 501 "surf/surfxml.l"
2827 A_surfxml_network_link_name = NULL;
2828 A_surfxml_network_link_bandwidth = NULL;
2829 A_surfxml_network_link_bandwidth_file = NULL;
2830 A_surfxml_network_link_latency = "0.0";
2831 A_surfxml_network_link_latency_file = NULL;
2832 A_surfxml_network_link_state = A_surfxml_network_link_state_ON;
2833 A_surfxml_network_link_state_file = NULL;
2834 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
2835 ENTER(AL_surfxml_network_link);
2840 /* rule 72 can match eol */
2842 #line 514 "surf/surfxml.l"
2843 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_name);
2846 /* rule 73 can match eol */
2848 #line 515 "surf/surfxml.l"
2849 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_name);
2852 /* rule 74 can match eol */
2854 #line 517 "surf/surfxml.l"
2855 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth);
2858 /* rule 75 can match eol */
2860 #line 518 "surf/surfxml.l"
2861 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth);
2864 /* rule 76 can match eol */
2866 #line 520 "surf/surfxml.l"
2867 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth_file);
2870 /* rule 77 can match eol */
2872 #line 521 "surf/surfxml.l"
2873 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth_file);
2876 /* rule 78 can match eol */
2878 #line 523 "surf/surfxml.l"
2879 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency);
2882 /* rule 79 can match eol */
2884 #line 524 "surf/surfxml.l"
2885 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency);
2888 /* rule 80 can match eol */
2890 #line 526 "surf/surfxml.l"
2891 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency_file);
2894 /* rule 81 can match eol */
2896 #line 527 "surf/surfxml.l"
2897 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency_file);
2900 /* rule 82 can match eol */
2901 #line 530 "surf/surfxml.l"
2903 /* rule 83 can match eol */
2905 #line 530 "surf/surfxml.l"
2906 A_surfxml_network_link_state = A_surfxml_network_link_state_ON;
2909 /* rule 84 can match eol */
2910 #line 532 "surf/surfxml.l"
2912 /* rule 85 can match eol */
2914 #line 532 "surf/surfxml.l"
2915 A_surfxml_network_link_state = A_surfxml_network_link_state_OFF;
2918 /* rule 86 can match eol */
2920 #line 534 "surf/surfxml.l"
2921 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_state_file);
2924 /* rule 87 can match eol */
2926 #line 535 "surf/surfxml.l"
2927 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_state_file);
2930 /* rule 88 can match eol */
2931 #line 538 "surf/surfxml.l"
2933 /* rule 89 can match eol */
2935 #line 538 "surf/surfxml.l"
2936 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
2939 /* rule 90 can match eol */
2940 #line 540 "surf/surfxml.l"
2942 /* rule 91 can match eol */
2944 #line 540 "surf/surfxml.l"
2945 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_FATPIPE;
2949 #line 542 "surf/surfxml.l"
2951 if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2952 if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2953 LEAVE; STag_surfxml_network_link();surfxml_pcdata = NULL; ENTER(E_surfxml_network_link);
2958 #line 547 "surf/surfxml.l"
2960 if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2961 if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2962 LEAVE; STag_surfxml_network_link(); surfxml_pcdata = NULL; ETag_surfxml_network_link();
2964 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2965 case ROOT_surfxml_network_link: SET(EPILOG); break;
2966 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2972 #line 557 "surf/surfxml.l"
2973 FAIL("Unexpected character `%c' in attribute list of network_link element.", surf_parse_text[0]);
2977 #line 558 "surf/surfxml.l"
2978 FAIL("Bad attribute `%s' in `network_link' element start tag.",surf_parse_text);
2980 case YY_STATE_EOF(AL_surfxml_network_link):
2981 #line 559 "surf/surfxml.l"
2982 FAIL("EOF in attribute list of `network_link' element.");
2987 /* rule 96 can match eol */
2989 #line 563 "surf/surfxml.l"
2992 ETag_surfxml_network_link();
2994 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2995 case ROOT_surfxml_network_link: SET(EPILOG); break;
2996 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3001 /* rule 97 can match eol */
3003 #line 572 "surf/surfxml.l"
3004 FAIL("Unexpected end-tag `%s': `</network_link>' expected.",surf_parse_text);
3008 #line 573 "surf/surfxml.l"
3009 FAIL("Unexpected character `%c': `</network_link>' expected.",surf_parse_text[0]);
3011 case YY_STATE_EOF(E_surfxml_network_link):
3012 #line 574 "surf/surfxml.l"
3013 FAIL("Premature EOF: `</network_link>' expected.");
3017 /* rule 99 can match eol */
3019 #line 577 "surf/surfxml.l"
3021 A_surfxml_route_src = NULL;
3022 A_surfxml_route_dst = NULL;
3023 A_surfxml_route_impact_on_src = "0.0";
3024 A_surfxml_route_impact_on_dst = "0.0";
3025 A_surfxml_route_impact_on_src_with_other_recv = "0.0";
3026 A_surfxml_route_impact_on_dst_with_other_send = "0.0";
3027 ENTER(AL_surfxml_route);
3032 /* rule 100 can match eol */
3034 #line 588 "surf/surfxml.l"
3035 ENTER(VALUE1); BUFFERSET(A_surfxml_route_src);
3038 /* rule 101 can match eol */
3040 #line 589 "surf/surfxml.l"
3041 ENTER(VALUE2); BUFFERSET(A_surfxml_route_src);
3044 /* rule 102 can match eol */
3046 #line 591 "surf/surfxml.l"
3047 ENTER(VALUE1); BUFFERSET(A_surfxml_route_dst);
3050 /* rule 103 can match eol */
3052 #line 592 "surf/surfxml.l"
3053 ENTER(VALUE2); BUFFERSET(A_surfxml_route_dst);
3056 /* rule 104 can match eol */
3058 #line 594 "surf/surfxml.l"
3059 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src);
3062 /* rule 105 can match eol */
3064 #line 595 "surf/surfxml.l"
3065 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src);
3068 /* rule 106 can match eol */
3070 #line 597 "surf/surfxml.l"
3071 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst);
3074 /* rule 107 can match eol */
3076 #line 598 "surf/surfxml.l"
3077 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst);
3080 /* rule 108 can match eol */
3082 #line 600 "surf/surfxml.l"
3083 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv);
3086 /* rule 109 can match eol */
3088 #line 601 "surf/surfxml.l"
3089 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv);
3092 /* rule 110 can match eol */
3094 #line 603 "surf/surfxml.l"
3095 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send);
3098 /* rule 111 can match eol */
3100 #line 604 "surf/surfxml.l"
3101 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send);
3105 #line 606 "surf/surfxml.l"
3107 if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3108 if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3109 LEAVE; STag_surfxml_route();surfxml_pcdata = NULL; ENTER(S_surfxml_route);
3114 #line 611 "surf/surfxml.l"
3116 if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3117 if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3118 LEAVE; STag_surfxml_route(); surfxml_pcdata = NULL; ETag_surfxml_route();
3120 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3121 case ROOT_surfxml_route: SET(EPILOG); break;
3122 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3128 #line 621 "surf/surfxml.l"
3129 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
3133 #line 622 "surf/surfxml.l"
3134 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
3136 case YY_STATE_EOF(AL_surfxml_route):
3137 #line 623 "surf/surfxml.l"
3138 FAIL("EOF in attribute list of `route' element.");
3143 /* rule 116 can match eol */
3145 #line 627 "surf/surfxml.l"
3148 ETag_surfxml_route();
3150 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3151 case ROOT_surfxml_route: SET(EPILOG); break;
3152 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3157 /* rule 117 can match eol */
3159 #line 636 "surf/surfxml.l"
3160 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
3164 #line 637 "surf/surfxml.l"
3165 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
3167 case YY_STATE_EOF(S_surfxml_route):
3168 case YY_STATE_EOF(S_surfxml_route_2):
3169 case YY_STATE_EOF(E_surfxml_route):
3170 #line 638 "surf/surfxml.l"
3171 FAIL("Premature EOF: `</route>' expected.");
3175 /* rule 119 can match eol */
3177 #line 641 "surf/surfxml.l"
3179 A_surfxml_route_element_name = NULL;
3180 ENTER(AL_surfxml_route_element);
3185 /* rule 120 can match eol */
3187 #line 647 "surf/surfxml.l"
3188 ENTER(VALUE1); BUFFERSET(A_surfxml_route_element_name);
3191 /* rule 121 can match eol */
3193 #line 648 "surf/surfxml.l"
3194 ENTER(VALUE2); BUFFERSET(A_surfxml_route_element_name);
3198 #line 650 "surf/surfxml.l"
3200 if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3201 LEAVE; STag_surfxml_route_element();surfxml_pcdata = NULL; ENTER(E_surfxml_route_element);
3206 #line 654 "surf/surfxml.l"
3208 if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3209 LEAVE; STag_surfxml_route_element(); surfxml_pcdata = NULL; ETag_surfxml_route_element();
3211 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3212 case ROOT_surfxml_route_element: SET(EPILOG); break;
3218 #line 662 "surf/surfxml.l"
3219 FAIL("Unexpected character `%c' in attribute list of route_element element.", surf_parse_text[0]);
3223 #line 663 "surf/surfxml.l"
3224 FAIL("Bad attribute `%s' in `route_element' element start tag.",surf_parse_text);
3226 case YY_STATE_EOF(AL_surfxml_route_element):
3227 #line 664 "surf/surfxml.l"
3228 FAIL("EOF in attribute list of `route_element' element.");
3233 /* rule 126 can match eol */
3235 #line 668 "surf/surfxml.l"
3238 ETag_surfxml_route_element();
3240 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3241 case ROOT_surfxml_route_element: SET(EPILOG); break;
3246 /* rule 127 can match eol */
3248 #line 676 "surf/surfxml.l"
3249 FAIL("Unexpected end-tag `%s': `</route_element>' expected.",surf_parse_text);
3253 #line 677 "surf/surfxml.l"
3254 FAIL("Unexpected character `%c': `</route_element>' expected.",surf_parse_text[0]);
3256 case YY_STATE_EOF(E_surfxml_route_element):
3257 #line 678 "surf/surfxml.l"
3258 FAIL("Premature EOF: `</route_element>' expected.");
3262 /* rule 129 can match eol */
3264 #line 681 "surf/surfxml.l"
3266 A_surfxml_process_host = NULL;
3267 A_surfxml_process_function = NULL;
3268 A_surfxml_process_start_time = "-1.0";
3269 A_surfxml_process_kill_time = "-1.0";
3270 ENTER(AL_surfxml_process);
3275 /* rule 130 can match eol */
3277 #line 690 "surf/surfxml.l"
3278 ENTER(VALUE1); BUFFERSET(A_surfxml_process_host);
3281 /* rule 131 can match eol */
3283 #line 691 "surf/surfxml.l"
3284 ENTER(VALUE2); BUFFERSET(A_surfxml_process_host);
3287 /* rule 132 can match eol */
3289 #line 693 "surf/surfxml.l"
3290 ENTER(VALUE1); BUFFERSET(A_surfxml_process_function);
3293 /* rule 133 can match eol */
3295 #line 694 "surf/surfxml.l"
3296 ENTER(VALUE2); BUFFERSET(A_surfxml_process_function);
3299 /* rule 134 can match eol */
3301 #line 696 "surf/surfxml.l"
3302 ENTER(VALUE1); BUFFERSET(A_surfxml_process_start_time);
3305 /* rule 135 can match eol */
3307 #line 697 "surf/surfxml.l"
3308 ENTER(VALUE2); BUFFERSET(A_surfxml_process_start_time);
3311 /* rule 136 can match eol */
3313 #line 699 "surf/surfxml.l"
3314 ENTER(VALUE1); BUFFERSET(A_surfxml_process_kill_time);
3317 /* rule 137 can match eol */
3319 #line 700 "surf/surfxml.l"
3320 ENTER(VALUE2); BUFFERSET(A_surfxml_process_kill_time);
3324 #line 702 "surf/surfxml.l"
3326 if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3327 if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3328 LEAVE; STag_surfxml_process();surfxml_pcdata = NULL; ENTER(S_surfxml_process);
3333 #line 707 "surf/surfxml.l"
3335 if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3336 if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3337 LEAVE; STag_surfxml_process(); surfxml_pcdata = NULL; ETag_surfxml_process();
3339 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3340 case ROOT_surfxml_process: SET(EPILOG); break;
3341 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3347 #line 717 "surf/surfxml.l"
3348 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
3352 #line 718 "surf/surfxml.l"
3353 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
3355 case YY_STATE_EOF(AL_surfxml_process):
3356 #line 719 "surf/surfxml.l"
3357 FAIL("EOF in attribute list of `process' element.");
3362 /* rule 142 can match eol */
3364 #line 723 "surf/surfxml.l"
3367 ETag_surfxml_process();
3369 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3370 case ROOT_surfxml_process: SET(EPILOG); break;
3371 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3376 /* rule 143 can match eol */
3378 #line 732 "surf/surfxml.l"
3379 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
3383 #line 733 "surf/surfxml.l"
3384 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
3386 case YY_STATE_EOF(S_surfxml_process):
3387 case YY_STATE_EOF(E_surfxml_process):
3388 case YY_STATE_EOF(S_surfxml_process_2):
3389 #line 734 "surf/surfxml.l"
3390 FAIL("Premature EOF: `</process>' expected.");
3394 /* rule 145 can match eol */
3396 #line 737 "surf/surfxml.l"
3398 A_surfxml_argument_value = NULL;
3399 ENTER(AL_surfxml_argument);
3404 /* rule 146 can match eol */
3406 #line 743 "surf/surfxml.l"
3407 ENTER(VALUE1); BUFFERSET(A_surfxml_argument_value);
3410 /* rule 147 can match eol */
3412 #line 744 "surf/surfxml.l"
3413 ENTER(VALUE2); BUFFERSET(A_surfxml_argument_value);
3417 #line 746 "surf/surfxml.l"
3419 if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3420 LEAVE; STag_surfxml_argument();surfxml_pcdata = NULL; ENTER(E_surfxml_argument);
3425 #line 750 "surf/surfxml.l"
3427 if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3428 LEAVE; STag_surfxml_argument(); surfxml_pcdata = NULL; ETag_surfxml_argument();
3430 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3431 case ROOT_surfxml_argument: SET(EPILOG); break;
3437 #line 758 "surf/surfxml.l"
3438 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
3442 #line 759 "surf/surfxml.l"
3443 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
3445 case YY_STATE_EOF(AL_surfxml_argument):
3446 #line 760 "surf/surfxml.l"
3447 FAIL("EOF in attribute list of `argument' element.");
3452 /* rule 152 can match eol */
3454 #line 764 "surf/surfxml.l"
3457 ETag_surfxml_argument();
3459 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3460 case ROOT_surfxml_argument: SET(EPILOG); break;
3465 /* rule 153 can match eol */
3467 #line 772 "surf/surfxml.l"
3468 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
3472 #line 773 "surf/surfxml.l"
3473 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
3475 case YY_STATE_EOF(E_surfxml_argument):
3476 #line 774 "surf/surfxml.l"
3477 FAIL("Premature EOF: `</argument>' expected.");
3480 /* EPILOG: after the root element. */
3484 #line 780 "surf/surfxml.l"
3485 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
3487 case YY_STATE_EOF(EPILOG):
3488 #line 781 "surf/surfxml.l"
3492 /* CHARACTER DATA. */
3494 /* Non-defined standard entities... */
3497 #line 788 "surf/surfxml.l"
3502 #line 789 "surf/surfxml.l"
3507 #line 790 "surf/surfxml.l"
3512 #line 791 "surf/surfxml.l"
3517 #line 792 "surf/surfxml.l"
3520 /* Character entities. */
3523 #line 795 "surf/surfxml.l"
3524 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
3528 #line 796 "surf/surfxml.l"
3529 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
3534 /* rule 163 can match eol */
3535 #line 801 "surf/surfxml.l"
3537 /* rule 164 can match eol */
3538 #line 802 "surf/surfxml.l"
3540 /* rule 165 can match eol */
3541 #line 803 "surf/surfxml.l"
3543 /* rule 166 can match eol */
3545 #line 803 "surf/surfxml.l"
3552 #line 807 "surf/surfxml.l"
3557 #line 808 "surf/surfxml.l"
3558 FAIL("Unexpected `]""]>' in character data.");
3564 #line 812 "surf/surfxml.l"
3567 case YY_STATE_EOF(VALUE1):
3568 #line 813 "surf/surfxml.l"
3569 FAIL("EOF in literal (\"'\" expected).");
3575 #line 817 "surf/surfxml.l"
3578 case YY_STATE_EOF(VALUE2):
3579 #line 818 "surf/surfxml.l"
3580 FAIL("EOF in literal (`\"' expected).");
3585 /* rule 171 can match eol */
3587 #line 822 "surf/surfxml.l"
3588 BUFFERPUTC(surf_parse_text[0]);
3592 #line 823 "surf/surfxml.l"
3593 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
3599 #line 827 "surf/surfxml.l"
3602 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
3605 #line 829 "surf/surfxml.l"
3606 BUFFERPUTC(surf_parse_text[0]);
3608 case YY_STATE_EOF(CDATA):
3609 #line 830 "surf/surfxml.l"
3610 FAIL("EOF in CDATA section.");
3613 /* Impossible rules to avoid warnings from flex(1). */
3614 /* Ideally, this should be replaced by code in flexml.pl that
3615 generates just the states not covered by other rules. */
3618 /* rule 175 can match eol */
3620 #line 837 "surf/surfxml.l"
3621 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
3626 #line 840 "surf/surfxml.l"
3629 #line 3630 "surf/surfxml.c"
3630 case YY_STATE_EOF(INITIAL):
3631 case YY_STATE_EOF(ROOT_surfxml_platform_description):
3632 case YY_STATE_EOF(S_surfxml_platform_description_1):
3633 case YY_STATE_EOF(ROOT_surfxml_include):
3634 case YY_STATE_EOF(S_surfxml_include_1):
3635 case YY_STATE_EOF(ROOT_surfxml_cpu):
3636 case YY_STATE_EOF(ROOT_surfxml_network_link):
3637 case YY_STATE_EOF(ROOT_surfxml_route):
3638 case YY_STATE_EOF(S_surfxml_route_1):
3639 case YY_STATE_EOF(ROOT_surfxml_route_element):
3640 case YY_STATE_EOF(ROOT_surfxml_process):
3641 case YY_STATE_EOF(S_surfxml_process_1):
3642 case YY_STATE_EOF(ROOT_surfxml_argument):
3643 case YY_STATE_EOF(IMPOSSIBLE):
3646 case YY_END_OF_BUFFER:
3648 /* Amount of text matched not including the EOB char. */
3649 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3651 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3652 *yy_cp = (yy_hold_char);
3653 YY_RESTORE_YY_MORE_OFFSET
3655 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3657 /* We're scanning a new file or input source. It's
3658 * possible that this happened because the user
3659 * just pointed surf_parse_in at a new source and called
3660 * surf_parse_lex(). If so, then we have to assure
3661 * consistency between YY_CURRENT_BUFFER and our
3662 * globals. Here is the right place to do so, because
3663 * this is the first action (other than possibly a
3664 * back-up) that will match for the new input source.
3666 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3667 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
3668 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3671 /* Note that here we test for yy_c_buf_p "<=" to the position
3672 * of the first EOB in the buffer, since yy_c_buf_p will
3673 * already have been incremented past the NUL character
3674 * (since all states make transitions on EOB to the
3675 * end-of-buffer state). Contrast this with the test
3678 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3679 { /* This was really a NUL. */
3680 yy_state_type yy_next_state;
3682 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3684 yy_current_state = yy_get_previous_state( );
3686 /* Okay, we're now positioned to make the NUL
3687 * transition. We couldn't have
3688 * yy_get_previous_state() go ahead and do it
3689 * for us because it doesn't know how to deal
3690 * with the possibility of jamming (and we don't
3691 * want to build jamming into it because then it
3692 * will run more slowly).
3695 yy_next_state = yy_try_NUL_trans( yy_current_state );
3697 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3699 if ( yy_next_state )
3701 /* Consume the NUL. */
3702 yy_cp = ++(yy_c_buf_p);
3703 yy_current_state = yy_next_state;
3709 yy_cp = (yy_c_buf_p);
3710 goto yy_find_action;
3714 else switch ( yy_get_next_buffer( ) )
3716 case EOB_ACT_END_OF_FILE:
3718 (yy_did_buffer_switch_on_eof) = 0;
3720 if ( surf_parse_wrap( ) )
3722 /* Note: because we've taken care in
3723 * yy_get_next_buffer() to have set up
3724 * surf_parse_text, we can now set up
3725 * yy_c_buf_p so that if some total
3726 * hoser (like flex itself) wants to
3727 * call the scanner after we return the
3728 * YY_NULL, it'll still work - another
3729 * YY_NULL will get returned.
3731 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3733 yy_act = YY_STATE_EOF(YY_START);
3739 if ( ! (yy_did_buffer_switch_on_eof) )
3745 case EOB_ACT_CONTINUE_SCAN:
3747 (yytext_ptr) + yy_amount_of_matched_text;
3749 yy_current_state = yy_get_previous_state( );
3751 yy_cp = (yy_c_buf_p);
3752 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3755 case EOB_ACT_LAST_MATCH:
3757 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3759 yy_current_state = yy_get_previous_state( );
3761 yy_cp = (yy_c_buf_p);
3762 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3763 goto yy_find_action;
3770 "fatal flex scanner internal error--no action found" );
3771 } /* end of action switch */
3772 } /* end of scanning one token */
3773 } /* end of surf_parse_lex */
3775 /* yy_get_next_buffer - try to read in a new buffer
3777 * Returns a code representing an action:
3778 * EOB_ACT_LAST_MATCH -
3779 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3780 * EOB_ACT_END_OF_FILE - end of file
3782 static int yy_get_next_buffer (void)
3784 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3785 register char *source = (yytext_ptr);
3786 register int number_to_move, i;
3789 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3791 "fatal flex scanner internal error--end of buffer missed" );
3793 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3794 { /* Don't try to fill the buffer, so this is an EOF. */
3795 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3797 /* We matched a single character, the EOB, so
3798 * treat this as a final EOF.
3800 return EOB_ACT_END_OF_FILE;
3805 /* We matched some text prior to the EOB, first
3808 return EOB_ACT_LAST_MATCH;
3812 /* Try to read more data. */
3814 /* First move last chars to start of buffer. */
3815 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3817 for ( i = 0; i < number_to_move; ++i )
3818 *(dest++) = *(source++);
3820 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3821 /* don't do the read, it's not guaranteed to return an EOF,
3824 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3828 size_t num_to_read =
3829 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3831 while ( num_to_read <= 0 )
3832 { /* Not enough room in the buffer - grow it. */
3834 /* just a shorter name for the current buffer */
3835 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3837 int yy_c_buf_p_offset =
3838 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3840 if ( b->yy_is_our_buffer )
3842 int new_size = b->yy_buf_size * 2;
3844 if ( new_size <= 0 )
3845 b->yy_buf_size += b->yy_buf_size / 8;
3847 b->yy_buf_size *= 2;
3849 b->yy_ch_buf = (char *)
3850 /* Include room in for 2 EOB chars. */
3851 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
3854 /* Can't grow it, we don't own it. */
3857 if ( ! b->yy_ch_buf )
3859 "fatal error - scanner input buffer overflow" );
3861 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3863 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3868 if ( num_to_read > YY_READ_BUF_SIZE )
3869 num_to_read = YY_READ_BUF_SIZE;
3871 /* Read in more data. */
3872 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3873 (yy_n_chars), num_to_read );
3875 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3878 if ( (yy_n_chars) == 0 )
3880 if ( number_to_move == YY_MORE_ADJ )
3882 ret_val = EOB_ACT_END_OF_FILE;
3883 surf_parse_restart(surf_parse_in );
3888 ret_val = EOB_ACT_LAST_MATCH;
3889 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3890 YY_BUFFER_EOF_PENDING;
3895 ret_val = EOB_ACT_CONTINUE_SCAN;
3897 (yy_n_chars) += number_to_move;
3898 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3899 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3901 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3906 /* yy_get_previous_state - get the state just before the EOB char was reached */
3908 static yy_state_type yy_get_previous_state (void)
3910 register yy_state_type yy_current_state;
3911 register char *yy_cp;
3913 yy_current_state = (yy_start);
3915 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3917 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3918 if ( yy_accept[yy_current_state] )
3920 (yy_last_accepting_state) = yy_current_state;
3921 (yy_last_accepting_cpos) = yy_cp;
3923 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3925 yy_current_state = (int) yy_def[yy_current_state];
3926 if ( yy_current_state >= 1333 )
3927 yy_c = yy_meta[(unsigned int) yy_c];
3929 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3932 return yy_current_state;
3935 /* yy_try_NUL_trans - try to make a transition on the NUL character
3938 * next_state = yy_try_NUL_trans( current_state );
3940 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3942 register int yy_is_jam;
3943 register char *yy_cp = (yy_c_buf_p);
3945 register YY_CHAR yy_c = 1;
3946 if ( yy_accept[yy_current_state] )
3948 (yy_last_accepting_state) = yy_current_state;
3949 (yy_last_accepting_cpos) = yy_cp;
3951 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3953 yy_current_state = (int) yy_def[yy_current_state];
3954 if ( yy_current_state >= 1333 )
3955 yy_c = yy_meta[(unsigned int) yy_c];
3957 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3958 yy_is_jam = (yy_current_state == 1332);
3960 return yy_is_jam ? 0 : yy_current_state;
3965 static int yyinput (void)
3967 static int input (void)
3973 *(yy_c_buf_p) = (yy_hold_char);
3975 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3977 /* yy_c_buf_p now points to the character we want to return.
3978 * If this occurs *before* the EOB characters, then it's a
3979 * valid NUL; if not, then we've hit the end of the buffer.
3981 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3982 /* This was really a NUL. */
3983 *(yy_c_buf_p) = '\0';
3986 { /* need more input */
3987 int offset = (yy_c_buf_p) - (yytext_ptr);
3990 switch ( yy_get_next_buffer( ) )
3992 case EOB_ACT_LAST_MATCH:
3993 /* This happens because yy_g_n_b()
3994 * sees that we've accumulated a
3995 * token and flags that we need to
3996 * try matching the token before
3997 * proceeding. But for input(),
3998 * there's no matching to consider.
3999 * So convert the EOB_ACT_LAST_MATCH
4000 * to EOB_ACT_END_OF_FILE.
4003 /* Reset buffer status. */
4004 surf_parse_restart(surf_parse_in );
4008 case EOB_ACT_END_OF_FILE:
4010 if ( surf_parse_wrap( ) )
4013 if ( ! (yy_did_buffer_switch_on_eof) )
4022 case EOB_ACT_CONTINUE_SCAN:
4023 (yy_c_buf_p) = (yytext_ptr) + offset;
4029 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
4030 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
4031 (yy_hold_char) = *++(yy_c_buf_p);
4035 surf_parse_lineno++;
4040 #endif /* ifndef YY_NO_INPUT */
4042 /** Immediately switch to a different input stream.
4043 * @param input_file A readable stream.
4045 * @note This function does not reset the start condition to @c INITIAL .
4047 void surf_parse_restart (FILE * input_file )
4050 if ( ! YY_CURRENT_BUFFER ){
4051 surf_parse_ensure_buffer_stack ();
4052 YY_CURRENT_BUFFER_LVALUE =
4053 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4056 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
4057 surf_parse__load_buffer_state( );
4060 /** Switch to a different input buffer.
4061 * @param new_buffer The new input buffer.
4064 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
4067 /* TODO. We should be able to replace this entire function body
4069 * surf_parse_pop_buffer_state();
4070 * surf_parse_push_buffer_state(new_buffer);
4072 surf_parse_ensure_buffer_stack ();
4073 if ( YY_CURRENT_BUFFER == new_buffer )
4076 if ( YY_CURRENT_BUFFER )
4078 /* Flush out information for old buffer. */
4079 *(yy_c_buf_p) = (yy_hold_char);
4080 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4081 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4084 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4085 surf_parse__load_buffer_state( );
4087 /* We don't actually know whether we did this switch during
4088 * EOF (surf_parse_wrap()) processing, but the only time this flag
4089 * is looked at is after surf_parse_wrap() is called, so it's safe
4090 * to go ahead and always set it.
4092 (yy_did_buffer_switch_on_eof) = 1;
4095 static void surf_parse__load_buffer_state (void)
4097 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4098 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4099 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4100 (yy_hold_char) = *(yy_c_buf_p);
4103 /** Allocate and initialize an input buffer state.
4104 * @param file A readable stream.
4105 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4107 * @return the allocated buffer state.
4109 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
4113 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4115 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4117 b->yy_buf_size = size;
4119 /* yy_ch_buf has to be 2 characters longer than the size given because
4120 * we need to put in 2 end-of-buffer characters.
4122 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
4123 if ( ! b->yy_ch_buf )
4124 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4126 b->yy_is_our_buffer = 1;
4128 surf_parse__init_buffer(b,file );
4133 /** Destroy the buffer.
4134 * @param b a buffer created with surf_parse__create_buffer()
4137 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
4143 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4144 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4146 if ( b->yy_is_our_buffer )
4147 surf_parse_free((void *) b->yy_ch_buf );
4149 surf_parse_free((void *) b );
4153 extern int isatty (int );
4154 #endif /* __cplusplus */
4156 /* Initializes or reinitializes a buffer.
4157 * This function is sometimes called more than once on the same buffer,
4158 * such as during a surf_parse_restart() or at EOF.
4160 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
4165 surf_parse__flush_buffer(b );
4167 b->yy_input_file = file;
4168 b->yy_fill_buffer = 1;
4170 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
4171 * called from surf_parse_restart() or through yy_get_next_buffer.
4172 * In that case, we don't want to reset the lineno or column.
4174 if (b != YY_CURRENT_BUFFER){
4175 b->yy_bs_lineno = 1;
4176 b->yy_bs_column = 0;
4179 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4184 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4185 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4188 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
4195 /* We always need two end-of-buffer characters. The first causes
4196 * a transition to the end-of-buffer state. The second causes
4197 * a jam in that state.
4199 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4200 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4202 b->yy_buf_pos = &b->yy_ch_buf[0];
4205 b->yy_buffer_status = YY_BUFFER_NEW;
4207 if ( b == YY_CURRENT_BUFFER )
4208 surf_parse__load_buffer_state( );
4211 /** Pushes the new state onto the stack. The new state becomes
4212 * the current state. This function will allocate the stack
4214 * @param new_buffer The new state.
4217 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
4219 if (new_buffer == NULL)
4222 surf_parse_ensure_buffer_stack();
4224 /* This block is copied from surf_parse__switch_to_buffer. */
4225 if ( YY_CURRENT_BUFFER )
4227 /* Flush out information for old buffer. */
4228 *(yy_c_buf_p) = (yy_hold_char);
4229 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4230 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4233 /* Only push if top exists. Otherwise, replace top. */
4234 if (YY_CURRENT_BUFFER)
4235 (yy_buffer_stack_top)++;
4236 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4238 /* copied from surf_parse__switch_to_buffer. */
4239 surf_parse__load_buffer_state( );
4240 (yy_did_buffer_switch_on_eof) = 1;
4243 /** Removes and deletes the top of the stack, if present.
4244 * The next element becomes the new top.
4247 void surf_parse_pop_buffer_state (void)
4249 if (!YY_CURRENT_BUFFER)
4252 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4253 YY_CURRENT_BUFFER_LVALUE = NULL;
4254 if ((yy_buffer_stack_top) > 0)
4255 --(yy_buffer_stack_top);
4257 if (YY_CURRENT_BUFFER) {
4258 surf_parse__load_buffer_state( );
4259 (yy_did_buffer_switch_on_eof) = 1;
4263 /* Allocates the stack if it does not exist.
4264 * Guarantees space for at least one push.
4266 static void surf_parse_ensure_buffer_stack (void)
4270 if (!(yy_buffer_stack)) {
4272 /* First allocation is just for 2 elements, since we don't know if this
4273 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4274 * immediate realloc on the next call.
4277 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
4278 (num_to_alloc * sizeof(struct yy_buffer_state*)
4281 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4283 (yy_buffer_stack_max) = num_to_alloc;
4284 (yy_buffer_stack_top) = 0;
4288 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4290 /* Increase the buffer to prepare for a possible push. */
4291 int grow_size = 8 /* arbitrary grow size */;
4293 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4294 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
4296 num_to_alloc * sizeof(struct yy_buffer_state*)
4299 /* zero only the new slots.*/
4300 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4301 (yy_buffer_stack_max) = num_to_alloc;
4305 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4306 * @param base the character buffer
4307 * @param size the size in bytes of the character buffer
4309 * @return the newly allocated buffer state object.
4311 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
4316 base[size-2] != YY_END_OF_BUFFER_CHAR ||
4317 base[size-1] != YY_END_OF_BUFFER_CHAR )
4318 /* They forgot to leave room for the EOB's. */
4321 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4323 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
4325 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4326 b->yy_buf_pos = b->yy_ch_buf = base;
4327 b->yy_is_our_buffer = 0;
4328 b->yy_input_file = 0;
4329 b->yy_n_chars = b->yy_buf_size;
4330 b->yy_is_interactive = 0;
4332 b->yy_fill_buffer = 0;
4333 b->yy_buffer_status = YY_BUFFER_NEW;
4335 surf_parse__switch_to_buffer(b );
4340 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
4341 * scan from a @e copy of @a str.
4342 * @param str a NUL-terminated string to scan
4344 * @return the newly allocated buffer state object.
4345 * @note If you want to scan bytes that may contain NUL values, then use
4346 * surf_parse__scan_bytes() instead.
4348 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yy_str )
4351 return surf_parse__scan_bytes(yy_str,strlen(yy_str) );
4354 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
4355 * scan from a @e copy of @a bytes.
4356 * @param bytes the byte buffer to scan
4357 * @param len the number of bytes in the buffer pointed to by @a bytes.
4359 * @return the newly allocated buffer state object.
4361 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * bytes, int len )
4368 /* Get memory for full buffer, including space for trailing EOB's. */
4370 buf = (char *) surf_parse_alloc(n );
4372 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
4374 for ( i = 0; i < len; ++i )
4377 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
4379 b = surf_parse__scan_buffer(buf,n );
4381 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
4383 /* It's okay to grow etc. this buffer, and we should throw it
4384 * away when we're done.
4386 b->yy_is_our_buffer = 1;
4391 static void yy_push_state (int new_state )
4393 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4397 (yy_start_stack_depth) += YY_START_STACK_INCR;
4398 new_size = (yy_start_stack_depth) * sizeof( int );
4400 if ( ! (yy_start_stack) )
4401 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
4404 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
4406 if ( ! (yy_start_stack) )
4408 "out of memory expanding start-condition stack" );
4411 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4416 static void yy_pop_state (void)
4418 if ( --(yy_start_stack_ptr) < 0 )
4419 YY_FATAL_ERROR( "start-condition stack underflow" );
4421 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4424 #ifndef YY_EXIT_FAILURE
4425 #define YY_EXIT_FAILURE 2
4428 static void yy_fatal_error (yyconst char* msg )
4430 (void) fprintf( stderr, "%s\n", msg );
4431 exit( YY_EXIT_FAILURE );
4434 /* Redefine yyless() so it works in section 3 code. */
4440 /* Undo effects of setting up surf_parse_text. */ \
4441 int yyless_macro_arg = (n); \
4442 YY_LESS_LINENO(yyless_macro_arg);\
4443 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
4444 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
4445 (yy_hold_char) = *(yy_c_buf_p); \
4446 *(yy_c_buf_p) = '\0'; \
4447 surf_parse_leng = yyless_macro_arg; \
4451 /* Accessor methods (get/set functions) to struct members. */
4453 /** Get the current line number.
4456 int surf_parse_get_lineno (void)
4459 return surf_parse_lineno;
4462 /** Get the input stream.
4465 FILE *surf_parse_get_in (void)
4467 return surf_parse_in;
4470 /** Get the output stream.
4473 FILE *surf_parse_get_out (void)
4475 return surf_parse_out;
4478 /** Get the length of the current token.
4481 int surf_parse_get_leng (void)
4483 return surf_parse_leng;
4486 /** Get the current token.
4490 char *surf_parse_get_text (void)
4492 return surf_parse_text;
4495 /** Set the current line number.
4496 * @param line_number
4499 void surf_parse_set_lineno (int line_number )
4502 surf_parse_lineno = line_number;
4505 /** Set the input stream. This does not discard the current
4507 * @param in_str A readable stream.
4509 * @see surf_parse__switch_to_buffer
4511 void surf_parse_set_in (FILE * in_str )
4513 surf_parse_in = in_str ;
4516 void surf_parse_set_out (FILE * out_str )
4518 surf_parse_out = out_str ;
4521 int surf_parse_get_debug (void)
4523 return surf_parse__flex_debug;
4526 void surf_parse_set_debug (int bdebug )
4528 surf_parse__flex_debug = bdebug ;
4531 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
4532 int surf_parse_lex_destroy (void)
4535 /* Pop the buffer stack, destroying each element. */
4536 while(YY_CURRENT_BUFFER){
4537 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4538 YY_CURRENT_BUFFER_LVALUE = NULL;
4539 surf_parse_pop_buffer_state();
4542 /* Destroy the stack itself. */
4543 surf_parse_free((yy_buffer_stack) );
4544 (yy_buffer_stack) = NULL;
4546 /* Destroy the start condition stack. */
4547 surf_parse_free((yy_start_stack) );
4548 (yy_start_stack) = NULL;
4554 * Internal utility routines.
4558 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4561 for ( i = 0; i < n; ++i )
4566 #ifdef YY_NEED_STRLEN
4567 static int yy_flex_strlen (yyconst char * s )
4570 for ( n = 0; s[n]; ++n )
4577 void *surf_parse_alloc (yy_size_t size )
4579 return (void *) malloc( size );
4582 void *surf_parse_realloc (void * ptr, yy_size_t size )
4584 /* The cast to (char *) in the following accommodates both
4585 * implementations that use char* generic pointers, and those
4586 * that use void* generic pointers. It works with the latter
4587 * because both ANSI C and C++ allow castless assignment from
4588 * any pointer type to void*, and deal with argument conversions
4589 * as though doing an assignment.
4591 return (void *) realloc( (char *) ptr, size );
4594 void surf_parse_free (void * ptr )
4596 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
4599 #define YYTABLES_NAME "yytables"
4602 #undef YY_FLUSH_BUFFER
4604 #undef yy_new_buffer
4605 #undef yy_set_interactive
4607 #undef YY_DO_BEFORE_ACTION
4609 #ifdef YY_DECL_IS_OURS
4610 #undef YY_DECL_IS_OURS
4613 #line 840 "surf/surfxml.l"
4617 /* Element context stack lookup. */
4618 int surfxml_element_context(int i)
4620 return (0<i && i<yy_start_stack_depth
4621 ? yy_start_stack[yy_start_stack_ptr - i]
4626 void print_yy_stack(char* fmt, ...)
4628 int i = 0; va_list ap; va_start(ap, fmt);
4629 vfprintf(stderr, fmt, ap);
4630 for (i=1; i<yy_start_stack_ptr; i++)
4631 fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
4632 fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
4636 static void debug_enter(int state, const char* statename) {
4637 yy_push_state(state);
4638 if (surf_parse__flex_debug) print_yy_stack("--ENTER(%s) : ",statename);
4641 static void debug_leave(void) {
4642 if (surf_parse__flex_debug) print_yy_stack("--LEAVE : ");
4646 static void debug_set(int state, const char* statename) {
4648 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
4652 enum {flexml_max_err_msg_size = 512};
4654 static char flexml_err_msg[flexml_max_err_msg_size];
4655 const char * surfxml_parse_err_msg()
4657 return flexml_err_msg;
4660 static void reset_surfxml_parse_err_msg()
4662 flexml_err_msg[0] = '\0';
4666 static void cleanup(void)
4668 if (surfxml_statenames) {
4669 free(surfxml_statenames);
4670 surfxml_statenames = NULL;
4675 static int fail(const char* fmt, ...)
4677 int chars_left, used;
4678 va_list ap; va_start(ap, fmt);
4679 #ifdef FLEXML_yylineno
4680 used = sprintf(flexml_err_msg,
4681 "Invalid XML (XML input line %d, state %d): ",
4682 surf_parse_lineno, YY_START);
4684 used = sprintf(flexml_err_msg,
4685 "Invalid XML (state %d): ",
4688 chars_left = flexml_max_err_msg_size - used - 1;
4689 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
4692 #ifndef FLEXML_quiet_parser
4693 /* print directly to sdterr */
4694 fprintf(stderr, "%s\n", flexml_err_msg);
4695 flexml_err_msg[0] = '\0';