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() 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 178
372 #define YY_END_OF_BUFFER 179
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[1345] =
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, 179, 177, 22, 10, 10, 22, 22, 157,
393 10, 157, 5, 6, 5, 8, 9, 8, 173, 165,
394 166, 174, 171, 174, 172, 176, 165, 166, 176, 177,
395 28, 10, 28, 28, 28, 26, 28, 32, 10, 32,
396 177, 32, 177, 38, 10, 38, 38, 38, 36, 38,
397 42, 10, 42, 42, 177, 68, 10, 68, 68, 68,
398 66, 68, 68, 68, 68, 68, 68, 72, 10, 72,
399 177, 96, 10, 96, 96, 96, 94, 96, 96, 96,
400 96, 100, 10, 100, 177, 116, 10, 116, 116, 116,
401 114, 116, 116, 116, 120, 10, 120, 177, 120, 126,
402 10, 126, 126, 126, 124, 126, 130, 10, 130, 177,
404 142, 10, 142, 142, 142, 140, 142, 142, 142, 142,
405 146, 10, 146, 177, 146, 152, 10, 152, 152, 152,
406 150, 152, 156, 10, 156, 174, 173, 10, 0, 2,
407 2, 0, 4, 7, 168, 167, 0, 0, 0, 0,
408 0, 0, 0, 27, 29, 29, 0, 0, 0, 0,
409 0, 0, 37, 39, 39, 0, 67, 69, 69, 69,
410 69, 69, 69, 69, 0, 95, 97, 97, 97, 97,
411 97, 97, 0, 115, 117, 117, 117, 117, 0, 0,
412 125, 127, 127, 0, 141, 143, 143, 143, 143, 143,
413 0, 0, 151, 153, 153, 0, 0, 0, 0, 0,
415 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
416 175, 0, 29, 0, 0, 0, 0, 0, 0, 0,
417 39, 0, 0, 69, 69, 69, 69, 69, 69, 0,
418 0, 97, 97, 97, 97, 97, 0, 0, 117, 117,
419 117, 0, 0, 0, 127, 0, 0, 143, 143, 143,
420 143, 0, 0, 0, 153, 0, 0, 0, 170, 0,
421 21, 1, 0, 0, 163, 0, 0, 0, 160, 159,
422 0, 0, 29, 0, 0, 31, 0, 43, 0, 0,
423 0, 0, 39, 0, 0, 41, 0, 69, 69, 69,
424 69, 69, 69, 0, 0, 71, 0, 97, 97, 97,
426 97, 97, 0, 0, 99, 0, 0, 0, 117, 0,
427 0, 0, 0, 119, 0, 0, 127, 0, 0, 129,
428 0, 143, 143, 143, 143, 0, 0, 145, 0, 0,
429 153, 0, 0, 155, 0, 0, 0, 0, 164, 158,
430 0, 0, 0, 29, 0, 43, 0, 0, 0, 0,
431 0, 0, 0, 69, 69, 69, 0, 0, 69, 69,
432 0, 97, 97, 0, 0, 97, 97, 0, 0, 105,
433 104, 117, 0, 103, 102, 0, 0, 0, 0, 0,
434 143, 0, 0, 143, 143, 0, 0, 153, 0, 0,
435 0, 0, 0, 12, 0, 161, 162, 0, 29, 0,
437 0, 0, 0, 101, 0, 35, 34, 0, 69, 69,
438 69, 0, 45, 44, 0, 0, 0, 0, 69, 0,
439 70, 97, 97, 0, 75, 74, 97, 0, 0, 97,
440 0, 117, 0, 0, 0, 123, 122, 0, 143, 0,
441 133, 132, 143, 143, 0, 0, 0, 0, 0, 0,
442 0, 0, 0, 11, 0, 29, 0, 0, 0, 0,
443 101, 0, 69, 69, 69, 0, 47, 46, 0, 0,
444 0, 69, 97, 97, 97, 0, 0, 0, 97, 0,
445 117, 0, 0, 0, 143, 143, 143, 0, 0, 0,
446 149, 148, 0, 0, 0, 0, 0, 0, 0, 0,
448 0, 33, 0, 131, 0, 69, 69, 69, 0, 0,
449 69, 97, 0, 0, 97, 97, 0, 0, 97, 0,
450 117, 0, 118, 0, 0, 143, 143, 143, 0, 0,
451 0, 0, 0, 0, 0, 0, 0, 25, 24, 0,
452 33, 0, 131, 0, 69, 69, 69, 0, 0, 0,
453 0, 69, 97, 0, 81, 80, 97, 97, 0, 0,
454 0, 0, 97, 0, 117, 0, 0, 0, 0, 143,
455 143, 0, 147, 0, 169, 0, 0, 0, 0, 0,
456 0, 0, 40, 69, 69, 69, 0, 53, 0, 52,
457 69, 0, 0, 97, 97, 97, 0, 85, 0, 84,
459 97, 0, 117, 0, 0, 0, 135, 134, 0, 0,
460 143, 0, 144, 147, 0, 0, 0, 0, 0, 0,
461 0, 0, 0, 0, 0, 0, 69, 69, 69, 55,
462 54, 0, 0, 0, 77, 76, 97, 97, 97, 87,
463 86, 0, 0, 0, 117, 117, 0, 0, 0, 139,
464 138, 0, 0, 0, 154, 0, 0, 0, 0, 0,
465 0, 0, 0, 0, 0, 0, 0, 69, 69, 69,
466 0, 57, 56, 97, 97, 97, 0, 89, 88, 0,
467 117, 117, 0, 0, 0, 137, 136, 0, 0, 0,
468 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
470 0, 69, 69, 69, 97, 0, 0, 97, 0, 117,
471 117, 0, 0, 0, 0, 0, 0, 0, 0, 0,
472 0, 0, 0, 0, 0, 73, 0, 49, 48, 69,
473 69, 69, 69, 97, 0, 83, 82, 97, 0, 0,
474 0, 117, 0, 0, 117, 121, 0, 0, 0, 0,
475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
476 0, 69, 69, 69, 69, 0, 0, 0, 0, 0,
477 98, 0, 109, 108, 117, 0, 107, 106, 117, 121,
478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
479 0, 0, 0, 0, 0, 0, 69, 69, 69, 69,
481 0, 79, 78, 0, 0, 0, 117, 117, 0, 128,
482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
483 12, 0, 12, 0, 0, 0, 69, 69, 69, 69,
484 0, 0, 0, 0, 117, 117, 0, 0, 0, 0,
485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
486 0, 0, 0, 0, 0, 0, 69, 0, 0, 0,
487 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
488 0, 0, 0, 0, 0, 0, 0, 51, 50, 0,
489 61, 60, 0, 59, 58, 69, 0, 65, 64, 0,
490 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
492 0, 0, 0, 11, 0, 0, 69, 0, 0, 0,
493 0, 117, 117, 0, 0, 0, 0, 0, 0, 0,
494 0, 23, 0, 69, 0, 0, 0, 0, 117, 117,
495 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,
496 0, 69, 0, 0, 0, 0, 117, 117, 0, 0,
497 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
498 0, 0, 91, 0, 90, 117, 117, 0, 0, 0,
499 0, 0, 0, 0, 0, 0, 0, 0, 63, 62,
500 93, 92, 117, 117, 0, 0, 0, 0, 0, 0,
501 0, 0, 0, 0, 117, 117, 0, 0, 0, 0,
503 0, 0, 0, 0, 0, 0, 0, 0, 117, 117,
504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
505 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
506 0, 0, 0, 0, 0, 0, 0, 0, 117, 117,
507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
508 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
511 0, 0, 0, 0, 0, 0, 0, 113, 112, 0,
512 111, 110, 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, 0, 0, 0,
517 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
521 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
523 0, 0, 0, 20, 0, 0, 0, 13, 0, 0,
525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
527 0, 0, 19, 0, 0, 0, 0, 0, 0, 14,
528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
532 static yyconst flex_int32_t yy_ec[256] =
534 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
535 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
536 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
537 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
538 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
539 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
540 17, 18, 19, 1, 20, 21, 22, 23, 24, 25,
541 14, 26, 27, 14, 14, 14, 28, 29, 30, 31,
542 14, 32, 33, 34, 14, 14, 14, 14, 35, 14,
543 36, 1, 37, 1, 38, 1, 39, 40, 41, 42,
545 43, 44, 45, 46, 47, 14, 48, 49, 50, 51,
546 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
547 62, 14, 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,
554 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,
560 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
564 static yyconst flex_int32_t yy_meta[63] =
566 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
567 3, 1, 4, 5, 1, 1, 1, 6, 1, 7,
568 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
569 5, 5, 5, 5, 5, 1, 1, 5, 7, 7,
570 7, 7, 7, 7, 5, 5, 5, 5, 5, 5,
571 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
575 static yyconst flex_int16_t yy_base[1401] =
577 0, 0, 0, 3, 6, 9, 24, 27, 11, 14,
578 15, 17, 29, 38, 45, 52, 59, 61, 67, 70,
579 98, 157, 73, 76, 116, 120, 123, 126, 175, 179,
580 182, 185, 216, 260, 234, 238, 241, 278, 282, 285,
581 289, 304, 307, 310, 326, 0, 387, 390, 393, 396,
582 412, 468, 430, 434, 437, 440, 524, 580, 486, 490,
583 493, 496, 542, 546, 549, 552, 598, 602, 636, 687,
584 605, 608, 654, 658, 738, 794, 661, 664, 705, 709,
585 712, 715, 756, 760, 763, 767, 850, 909, 812, 816,
586 833, 868, 3674, 3675, 3675, 91, 141, 47, 62, 3675,
588 144, 132, 3675, 3675, 3663, 3675, 3675, 3654, 3675, 3667,
589 3667, 836, 3675, 3675, 3675, 3675, 3665, 3665, 3630, 194,
590 3675, 150, 3648, 0, 136, 3675, 3622, 3675, 200, 888,
591 889, 195, 192, 3675, 206, 3646, 0, 187, 3675, 3616,
592 3675, 313, 942, 446, 803, 3675, 511, 3644, 0, 440,
593 3675, 3602, 3609, 3620, 3619, 3605, 3599, 3675, 518, 558,
594 717, 3675, 570, 3637, 0, 559, 3675, 3615, 3614, 3613,
595 92, 3675, 626, 614, 768, 3675, 679, 3633, 0, 615,
596 3675, 3594, 3599, 3593, 3675, 682, 877, 772, 715, 3675,
597 786, 3629, 0, 773, 3675, 3607, 3675, 822, 883, 878,
599 3675, 831, 3627, 0, 859, 3675, 3586, 3591, 3595, 3584,
600 3675, 843, 943, 918, 887, 3675, 947, 3622, 0, 872,
601 3675, 3600, 3675, 956, 951, 3633, 3600, 962, 34, 3575,
602 3675, 3625, 3616, 3675, 3675, 3675, 26, 32, 3576, 3575,
603 3573, 3612, 3580, 3675, 0, 3573, 3574, 3573, 3574, 3581,
604 3568, 3570, 3675, 0, 3572, 3573, 3675, 0, 3580, 3561,
605 3556, 3566, 3555, 3575, 3572, 3675, 0, 3561, 3554, 3560,
606 3570, 3569, 3556, 3675, 0, 3549, 3552, 3563, 3548, 3550,
607 3675, 0, 3551, 3545, 3675, 0, 3548, 3542, 3548, 3557,
608 3542, 3539, 3675, 0, 3544, 3553, 3555, 3572, 3571, 3578,
610 5, 3537, 3675, 75, 0, 3533, 3533, 3569, 3568, 3530,
611 3675, 3542, 3524, 969, 972, 3521, 3537, 3520, 3524, 3517,
612 3531, 976, 982, 3526, 3529, 3533, 3527, 3526, 3511, 999,
613 1002, 3525, 3523, 3522, 3509, 3506, 1005, 1008, 1011, 3523,
614 1027, 1032, 1035, 3503, 3517, 1038, 1043, 3518, 3501, 3508,
615 3501, 1055, 1060, 3510, 3496, 1063, 1066, 3531, 3675, 3534,
616 3675, 3675, 233, 3502, 3675, 3535, 3534, 3492, 3675, 3675,
617 3490, 3489, 3498, 1072, 1089, 3675, 1094, 1097, 3495, 3483,
618 3501, 3484, 1100, 1106, 1116, 3675, 1123, 3491, 3484, 3486,
619 1126, 3482, 3493, 1133, 1136, 3675, 1142, 3475, 3483, 1145,
621 3486, 3489, 1153, 1163, 3675, 1166, 1170, 1173, 3490, 1186,
622 1189, 1202, 1206, 3675, 1209, 3473, 1212, 1215, 1228, 3675,
623 1232, 3472, 1235, 3490, 3470, 1238, 1241, 3675, 1245, 3468,
624 3482, 1251, 1258, 3675, 1262, 3501, 122, 1268, 3675, 3675,
625 3508, 3507, 3477, 3468, 1271, 1275, 3461, 3466, 3474, 3473,
626 1279, 1289, 1297, 3476, 3470, 3455, 1300, 1307, 1316, 1319,
627 1322, 3465, 3470, 1327, 1339, 3459, 1335, 1347, 1352, 3675,
628 3675, 3452, 1360, 3675, 3675, 1368, 3465, 1372, 1375, 1388,
629 3460, 1391, 1394, 3449, 3467, 1408, 3454, 1411, 1414, 3483,
630 115, 3484, 1417, 3675, 3483, 3675, 3675, 3448, 3448, 1420,
632 3456, 3442, 3440, 1427, 1437, 3675, 3675, 1448, 3455, 3451,
633 3436, 1452, 3675, 3675, 1465, 1471, 1481, 1484, 3448, 1492,
634 3675, 3449, 3428, 1498, 3675, 3675, 3444, 1509, 1512, 3444,
635 1520, 3449, 1525, 3448, 1528, 3675, 3675, 1537, 3433, 1542,
636 3675, 3675, 3437, 3426, 1555, 3439, 1550, 1560, 1572, 3447,
637 66, 197, 153, 3675, 3425, 1575, 1579, 3436, 3430, 3421,
638 1582, 1585, 3429, 3420, 3429, 1598, 3675, 3675, 1606, 3443,
639 3442, 3424, 3413, 1615, 3431, 1631, 3438, 3437, 3419, 1621,
640 3413, 1626, 3421, 1639, 3412, 3412, 3414, 1643, 3409, 1646,
641 3675, 3675, 1660, 3439, 300, 281, 194, 3408, 1656, 1663,
643 1677, 1591, 3419, 1680, 1683, 3407, 3412, 3402, 296, 376,
644 3404, 3406, 1687, 1703, 3407, 3397, 379, 382, 3400, 1690,
645 3397, 1711, 3675, 3398, 1715, 1694, 3403, 3395, 1718, 3387,
646 1721, 3407, 1738, 238, 408, 3404, 1741, 3675, 3675, 1749,
647 1757, 3392, 1760, 1766, 3393, 3388, 3391, 3412, 3430, 3410,
648 3425, 3390, 1773, 1776, 3675, 3675, 3385, 3379, 3405, 3423,
649 3403, 3418, 3383, 1784, 3387, 3381, 1789, 1792, 1810, 1801,
650 3380, 1821, 1824, 1827, 3675, 1883, 241, 256, 3380, 1830,
651 3374, 1833, 3675, 3363, 3378, 3367, 3411, 3675, 3407, 3675,
652 1838, 1850, 1854, 3371, 3365, 3364, 3406, 3675, 3402, 3675,
654 1862, 1870, 896, 3360, 1873, 1890, 3675, 3675, 1878, 1900,
655 1908, 1911, 3675, 1867, 1924, 240, 429, 384, 162, 520,
656 439, 500, 449, 3366, 1929, 3357, 3345, 3363, 3360, 3675,
657 3675, 1937, 1942, 1953, 3675, 3675, 3357, 3360, 3355, 3675,
658 3675, 1961, 1964, 1972, 3345, 3345, 3356, 1977, 1980, 3675,
659 3675, 1989, 1994, 2005, 3675, 549, 73, 660, 558, 632,
660 505, 172, 734, 883, 3342, 2008, 3349, 2011, 3358, 3357,
661 2027, 3675, 3675, 3345, 2018, 3352, 2035, 3675, 3675, 2014,
662 3335, 3350, 3339, 2043, 2050, 3675, 3675, 617, 2060, 661,
663 959, 935, 862, 970, 614, 2064, 3348, 2067, 2070, 2073,
665 2085, 3344, 399, 3332, 3245, 2093, 2096, 3225, 2104, 2109,
666 2112, 3220, 2115, 711, 2128, 763, 561, 830, 855, 861,
667 2136, 2139, 2156, 3219, 2165, 2132, 2169, 3675, 3675, 3224,
668 3225, 3222, 3223, 2177, 2182, 3675, 3675, 2193, 2196, 2199,
669 2209, 3199, 2205, 2217, 3196, 2225, 2228, 973, 284, 775,
670 448, 915, 613, 2231, 2234, 2238, 2255, 2285, 2322, 3206,
671 2263, 3197, 3200, 3185, 3174, 2251, 2268, 2303, 2306, 2280,
672 3675, 2340, 3675, 3675, 3179, 2348, 3675, 3675, 3174, 2276,
673 2358, 981, 963, 1000, 1004, 1030, 1076, 2361, 1006, 2364,
674 1054, 41, 2394, 2431, 3163, 2423, 3168, 2993, 3009, 3006,
676 2381, 3675, 3675, 2412, 1046, 1055, 2991, 2990, 2389, 3675,
677 1059, 1071, 2451, 585, 1036, 2454, 1088, 1064, 1179, 492,
678 3040, 103, 3036, 2457, 2985, 2460, 2477, 2480, 2483, 2486,
679 3021, 3014, 3012, 3000, 2979, 2977, 2489, 708, 2502, 1065,
680 1093, 2506, 1145, 1140, 3000, 2986, 2979, 2512, 2857, 2515,
681 2523, 2539, 2534, 2550, 2558, 2561, 2845, 2574, 2577, 2791,
682 2791, 2766, 2729, 2678, 2665, 2585, 811, 1124, 951, 1183,
683 1233, 1162, 1176, 2670, 2564, 2590, 2593, 3675, 3675, 2603,
684 3675, 3675, 2611, 3675, 3675, 2539, 2619, 3675, 3675, 2538,
685 2496, 2481, 2434, 2281, 2267, 1270, 2627, 1189, 1135, 1316,
687 1294, 1290, 1317, 3675, 2266, 2630, 2198, 2177, 2169, 2163,
688 2124, 2046, 2000, 1314, 2637, 1349, 1104, 1143, 1367, 1266,
689 1386, 2420, 2647, 1901, 1877, 1884, 1639, 1603, 1560, 1503,
690 1429, 1409, 1415, 1364, 2650, 1416, 1381, 2654, 1391, 2657,
691 2660, 2667, 1512, 1483, 1420, 1371, 1263, 1242, 1418, 1441,
692 1461, 1463, 2671, 1203, 1507, 2677, 2688, 2697, 3675, 2705,
693 2708, 1196, 3675, 1141, 3675, 970, 680, 1532, 1487, 1515,
694 2716, 1435, 1210, 2721, 1491, 1543, 2724, 2727, 3675, 3675,
695 3675, 3675, 695, 692, 2741, 1547, 1656, 2744, 1335, 1444,
696 2752, 1538, 1553, 1485, 620, 570, 2762, 498, 719, 1595,
698 1598, 1474, 1460, 1692, 1698, 1620, 1710, 1369, 464, 419,
699 1717, 1765, 1618, 1638, 1713, 1731, 1596, 1719, 1739, 1788,
700 1737, 1799, 1587, 409, 369, 1792, 1831, 1653, 1829, 1843,
701 1865, 1780, 1900, 1882, 1903, 1783, 1844, 1899, 258, 187,
702 1917, 1932, 1716, 1879, 1925, 1981, 2770, 1943, 2006, 2016,
703 1935, 2030, 2065, 2773, 2779, 2040, 2083, 1959, 2037, 2102,
704 2103, 2783, 2791, 2126, 2131, 2106, 2127, 2795, 2800, 2812,
705 2803, 2820, 2164, 2187, 1802, 1931, 2225, 2245, 1984, 1986,
706 2828, 2295, 2298, 2159, 2206, 2831, 2839, 3675, 3675, 2848,
707 3675, 3675, 2338, 2354, 2086, 2293, 2227, 2329, 2278, 2359,
709 2074, 2337, 2356, 2402, 2410, 1987, 2133, 2424, 2447, 2119,
710 2362, 2484, 2511, 2244, 2314, 1782, 2539, 2555, 2296, 2514,
711 2371, 2453, 2593, 2608, 2856, 2456, 2459, 2401, 2505, 1712,
712 2516, 2526, 2556, 2582, 2529, 2572, 2624, 2679, 2860, 3675,
713 2528, 2620, 2390, 2583, 2357, 2675, 2678, 2629, 2658, 2592,
714 2669, 2684, 2722, 2742, 2749, 2481, 2687, 2232, 2794, 2826,
715 2863, 2792, 2809, 2829, 2837, 2745, 2676, 2720, 2790, 2873,
716 2866, 2810, 2883, 3675, 2838, 2855, 2874, 2880, 2891, 2872,
717 2885, 2904, 2912, 2820, 2879, 2915, 2921, 3675, 2884, 2893,
718 2864, 2881, 2938, 3675, 2916, 2918, 2941, 3675, 2894, 2903,
720 2913, 2914, 2920, 2928, 2931, 2932, 2929, 2930, 2934, 2935,
721 2948, 2946, 2734, 2939, 2940, 2945, 2975, 2943, 2947, 2962,
722 2958, 2992, 3675, 2951, 2957, 2995, 2963, 2968, 3012, 3675,
723 2991, 3000, 2982, 2985, 2971, 2972, 3001, 3002, 3015, 3013,
724 3032, 3035, 3675, 3675, 3053, 3060, 3067, 3074, 3081, 3088,
725 3095, 3102, 3109, 3116, 3123, 3130, 3137, 3144, 3151, 3158,
726 3165, 3172, 3179, 3186, 3193, 3200, 3205, 3210, 3215, 3220,
727 3225, 3230, 3235, 3240, 3247, 3250, 3253, 3256, 3259, 3262,
728 3265, 3268, 3271, 3278, 3282, 3288, 3294, 3300, 3306, 3312,
729 3318, 3324, 3330, 3337, 3344, 3351, 3358, 3365, 3372, 3379
733 static yyconst flex_int16_t yy_def[1401] =
735 1345, 1345, 1346, 1346, 1346, 1346, 1347, 1347, 1348, 1348,
736 1349, 1349, 1350, 1350, 1350, 1350, 1351, 1351, 1345, 1345,
737 1352, 1352, 1353, 1353, 1345, 1345, 1353, 1353, 1353, 1353,
738 1345, 1345, 1354, 1354, 1355, 1355, 1345, 1345, 1355, 1355,
739 1355, 1355, 1345, 1345, 1344, 45, 1356, 1356, 1345, 1345,
740 1357, 1357, 1358, 1358, 1345, 1345, 1359, 1359, 1360, 1360,
741 1345, 1345, 1360, 1360, 1360, 1360, 1345, 1345, 1361, 1361,
742 1362, 1362, 1345, 1345, 1363, 1363, 1364, 1364, 1345, 1345,
743 1364, 1364, 1364, 1364, 1345, 1345, 1365, 1365, 1366, 1366,
744 1350, 1350, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
746 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
747 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
748 1344, 1344, 1344, 1367, 1344, 1344, 1367, 1344, 1344, 1344,
749 1344, 1344, 1344, 1344, 1344, 1344, 1368, 1344, 1344, 1368,
750 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344,
751 1344, 1369, 1369, 1369, 1369, 1369, 1369, 1344, 1344, 1344,
752 1344, 1344, 1344, 1344, 1370, 1344, 1344, 1370, 1370, 1370,
753 1370, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1371, 1344,
754 1344, 1371, 1371, 1371, 1344, 1344, 1344, 1344, 1344, 1344,
755 1344, 1344, 1372, 1344, 1344, 1372, 1344, 1344, 1344, 1344,
757 1344, 1344, 1344, 1373, 1344, 1344, 1373, 1373, 1373, 1373,
758 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1374, 1344,
759 1344, 1374, 1344, 1344, 1344, 1344, 1344, 1344, 1375, 1344,
760 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
761 1344, 1344, 1344, 1344, 1367, 1367, 1376, 1344, 1344, 1344,
762 1344, 1344, 1344, 1368, 1368, 1377, 1344, 1369, 1369, 1369,
763 1369, 1369, 1369, 1369, 1378, 1344, 1370, 1370, 1370, 1370,
764 1370, 1370, 1379, 1344, 1371, 1371, 1371, 1371, 1380, 1344,
765 1344, 1372, 1372, 1381, 1344, 1373, 1373, 1373, 1373, 1373,
766 1382, 1344, 1344, 1374, 1374, 1383, 1344, 1344, 1384, 1344,
768 1384, 1344, 1344, 1344, 1385, 1344, 1344, 1344, 1344, 1344,
769 1344, 1344, 1367, 1386, 1386, 1344, 1344, 1344, 1344, 1344,
770 1368, 1387, 1387, 1369, 1369, 1369, 1369, 1369, 1369, 1388,
771 1388, 1370, 1370, 1370, 1370, 1370, 1389, 1389, 1371, 1371,
772 1371, 1390, 1390, 1344, 1372, 1391, 1391, 1373, 1373, 1373,
773 1373, 1392, 1392, 1344, 1374, 1393, 1393, 1344, 1344, 1384,
774 1344, 1344, 1384, 1344, 1344, 1385, 1344, 1344, 1344, 1344,
775 1344, 1344, 1367, 1344, 1386, 1344, 1386, 1344, 1344, 1344,
776 1344, 1344, 1368, 1344, 1387, 1344, 1387, 1369, 1369, 1369,
777 1369, 1369, 1369, 1344, 1388, 1344, 1388, 1370, 1370, 1370,
779 1370, 1370, 1344, 1389, 1344, 1389, 1344, 1344, 1371, 1344,
780 1344, 1344, 1390, 1344, 1390, 1344, 1372, 1344, 1391, 1344,
781 1391, 1373, 1373, 1373, 1373, 1344, 1392, 1344, 1392, 1344,
782 1374, 1344, 1393, 1344, 1393, 1344, 1384, 1394, 1344, 1344,
783 1344, 1344, 1344, 1367, 1386, 1344, 1344, 1344, 1344, 1344,
784 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1369, 1369,
785 1388, 1370, 1370, 1344, 1344, 1370, 1370, 1389, 1344, 1344,
786 1344, 1371, 1344, 1344, 1344, 1390, 1344, 1344, 1344, 1391,
787 1373, 1344, 1344, 1373, 1373, 1392, 1344, 1374, 1393, 1344,
788 1384, 1394, 1394, 1344, 1394, 1344, 1344, 1344, 1367, 1386,
790 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1387, 1369, 1369,
791 1369, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344,
792 1344, 1370, 1370, 1344, 1344, 1344, 1370, 1344, 1344, 1370,
793 1389, 1371, 1390, 1344, 1344, 1344, 1344, 1391, 1373, 1344,
794 1344, 1344, 1373, 1373, 1392, 1344, 1344, 1344, 1393, 1344,
795 1384, 1394, 1394, 1344, 1344, 1367, 1386, 1344, 1344, 1344,
796 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1344, 1344, 1344,
797 1344, 1369, 1370, 1370, 1370, 1344, 1344, 1344, 1370, 1389,
798 1371, 1390, 1344, 1391, 1373, 1373, 1373, 1392, 1344, 1344,
799 1344, 1344, 1393, 1344, 1384, 1394, 1394, 1344, 1344, 1344,
801 1386, 1344, 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344,
802 1369, 1370, 1344, 1344, 1370, 1370, 1344, 1344, 1370, 1389,
803 1371, 1344, 1344, 1344, 1391, 1373, 1373, 1373, 1392, 1344,
804 1393, 1344, 1384, 1394, 1394, 1344, 1344, 1344, 1344, 1386,
805 1344, 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1344,
806 1344, 1369, 1370, 1344, 1344, 1344, 1370, 1370, 1344, 1344,
807 1344, 1344, 1370, 1389, 1371, 1344, 1391, 1344, 1344, 1373,
808 1373, 1392, 1344, 1393, 1344, 1384, 1394, 1394, 1344, 1386,
809 1344, 1344, 1344, 1369, 1369, 1369, 1344, 1344, 1344, 1344,
810 1369, 1344, 1344, 1370, 1370, 1370, 1344, 1344, 1344, 1344,
812 1370, 1389, 1371, 1344, 1391, 1344, 1344, 1344, 1344, 1344,
813 1373, 1344, 1344, 1344, 1393, 1384, 1384, 1384, 1384, 1384,
814 1384, 1394, 1394, 1344, 1386, 1344, 1369, 1369, 1369, 1344,
815 1344, 1344, 1344, 1344, 1344, 1344, 1370, 1370, 1370, 1344,
816 1344, 1344, 1344, 1389, 1371, 1371, 1344, 1391, 1344, 1344,
817 1344, 1344, 1344, 1344, 1344, 1384, 1384, 1384, 1384, 1384,
818 1384, 1384, 1394, 1394, 1344, 1386, 1344, 1369, 1369, 1369,
819 1344, 1344, 1344, 1370, 1370, 1370, 1344, 1344, 1344, 1389,
820 1371, 1371, 1344, 1391, 1344, 1344, 1344, 1384, 1384, 1384,
821 1384, 1384, 1384, 1384, 1394, 1394, 1344, 1386, 1344, 1344,
823 1344, 1369, 1369, 1369, 1370, 1344, 1344, 1370, 1389, 1371,
824 1371, 1344, 1391, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
825 1394, 1394, 1394, 1344, 1386, 1344, 1344, 1344, 1344, 1369,
826 1369, 1369, 1369, 1370, 1344, 1344, 1344, 1370, 1389, 1344,
827 1344, 1371, 1344, 1344, 1371, 1344, 1391, 1384, 1384, 1384,
828 1384, 1384, 1384, 1384, 1394, 1394, 1394, 1395, 1396, 1344,
829 1386, 1369, 1369, 1369, 1369, 1344, 1344, 1344, 1344, 1344,
830 1344, 1344, 1344, 1344, 1371, 1344, 1344, 1344, 1371, 1344,
831 1391, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1394,
832 1397, 1398, 1395, 1396, 1344, 1386, 1369, 1369, 1369, 1369,
834 1344, 1344, 1344, 1344, 1344, 1344, 1371, 1371, 1344, 1344,
835 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1397, 1394,
836 1399, 1398, 1400, 1394, 1344, 1386, 1369, 1369, 1369, 1369,
837 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384,
838 1384, 1384, 1384, 1384, 1399, 1344, 1400, 1394, 1344, 1386,
839 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344, 1344, 1344,
840 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
841 1384, 1384, 1384, 1344, 1344, 1386, 1344, 1344, 1344, 1344,
842 1344, 1344, 1344, 1344, 1344, 1369, 1344, 1344, 1344, 1344,
843 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
845 1384, 1384, 1384, 1344, 1344, 1386, 1369, 1344, 1344, 1344,
846 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
847 1384, 1344, 1386, 1369, 1344, 1344, 1344, 1344, 1371, 1371,
848 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
849 1386, 1369, 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384,
850 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344,
851 1344, 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384,
852 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344,
853 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384, 1384,
854 1384, 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384,
856 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1371, 1371,
857 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
858 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
859 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1371, 1371,
860 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
861 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
862 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344,
863 1344, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
864 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344, 1344,
865 1344, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
867 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
868 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
869 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
870 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
871 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
872 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
873 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
874 1384, 1384, 1384, 1344, 1384, 1384, 1384, 1384, 1384, 1384,
875 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1384, 1384,
876 1384, 1384, 1384, 1344, 1384, 1384, 1384, 1344, 1384, 1384,
878 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
879 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
880 1384, 1384, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
881 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
882 1384, 1384, 1344, 0, 1344, 1344, 1344, 1344, 1344, 1344,
883 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
884 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
885 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
886 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
887 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344
891 static yyconst flex_int16_t yy_nxt[3738] =
893 1344, 96, 97, 96, 96, 97, 96, 96, 97, 96,
894 96, 97, 96, 104, 1344, 98, 104, 107, 98, 107,
895 105, 99, 361, 105, 99, 101, 97, 101, 101, 97,
896 101, 110, 111, 108, 363, 108, 112, 113, 304, 102,
897 110, 111, 102, 300, 114, 112, 113, 110, 111, 920,
898 115, 229, 112, 114, 110, 111, 301, 115, 923, 112,
899 114, 117, 118, 117, 118, 230, 229, 114, 97, 97,
900 97, 97, 97, 97, 129, 97, 129, 129, 97, 129,
901 231, 306, 120, 361, 307, 120, 305, 304, 130, 365,
902 361, 130, 228, 228, 228, 119, 595, 119, 121, 122,
904 97, 122, 121, 121, 121, 121, 121, 121, 121, 123,
905 121, 920, 121, 125, 121, 126, 121, 97, 97, 97,
906 923, 97, 97, 97, 129, 97, 129, 129, 97, 129,
907 789, 131, 361, 121, 121, 131, 232, 271, 130, 361,
908 232, 130, 228, 228, 228, 228, 228, 228, 272, 551,
909 231, 228, 228, 228, 231, 491, 127, 121, 122, 97,
910 122, 121, 121, 121, 121, 121, 121, 121, 123, 121,
911 494, 121, 125, 121, 126, 121, 129, 97, 129, 361,
912 129, 97, 129, 97, 97, 97, 97, 97, 97, 361,
913 132, 232, 121, 121, 132, 597, 232, 133, 232, 232,
915 133, 228, 228, 228, 759, 231, 247, 228, 228, 228,
916 231, 494, 231, 231, 494, 127, 134, 135, 97, 135,
917 134, 134, 134, 134, 134, 134, 134, 136, 134, 794,
918 134, 138, 134, 139, 134, 142, 97, 142, 249, 142,
919 97, 142, 97, 97, 97, 1155, 243, 596, 635, 143,
920 361, 134, 134, 143, 437, 494, 131, 361, 494, 140,
921 134, 135, 97, 135, 134, 134, 134, 134, 134, 134,
922 134, 136, 134, 494, 134, 138, 134, 139, 134, 97,
923 97, 97, 722, 142, 97, 142, 142, 97, 142, 677,
924 142, 97, 142, 131, 756, 134, 134, 143, 494, 1154,
926 143, 361, 723, 140, 144, 142, 97, 142, 97, 97,
927 97, 97, 97, 97, 228, 228, 228, 361, 883, 144,
928 648, 634, 145, 633, 649, 145, 146, 147, 97, 147,
929 146, 146, 146, 146, 146, 146, 146, 148, 146, 149,
930 146, 150, 146, 151, 146, 149, 149, 149, 149, 149,
931 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
932 149, 146, 146, 149, 152, 149, 149, 149, 149, 149,
933 149, 149, 153, 149, 149, 154, 155, 149, 156, 149,
934 149, 157, 149, 149, 149, 149, 149, 149, 159, 97,
935 159, 159, 97, 159, 97, 97, 97, 97, 97, 97,
937 650, 361, 160, 659, 651, 160, 661, 660, 161, 1140,
938 662, 161, 162, 163, 97, 163, 162, 162, 162, 162,
939 162, 162, 162, 164, 162, 494, 162, 166, 162, 167,
940 162, 173, 97, 173, 758, 173, 97, 173, 97, 97,
941 97, 97, 97, 97, 232, 174, 361, 162, 162, 174,
942 232, 168, 175, 831, 832, 175, 361, 256, 231, 1139,
943 169, 1125, 170, 678, 231, 361, 494, 171, 162, 163,
944 97, 163, 162, 162, 162, 162, 162, 162, 162, 164,
945 162, 757, 162, 166, 162, 167, 162, 186, 97, 186,
946 762, 186, 97, 186, 97, 97, 97, 97, 97, 97,
948 764, 187, 885, 162, 162, 187, 1124, 168, 188, 494,
949 495, 188, 228, 228, 228, 361, 169, 494, 170, 228,
950 228, 228, 361, 171, 176, 177, 97, 177, 176, 176,
951 176, 176, 176, 176, 176, 178, 176, 361, 176, 180,
952 176, 181, 176, 186, 97, 186, 763, 186, 97, 186,
953 186, 97, 186, 186, 97, 186, 793, 187, 1113, 176,
954 176, 187, 232, 232, 189, 182, 361, 189, 760, 265,
955 183, 228, 228, 228, 761, 361, 231, 231, 361, 184,
956 176, 177, 97, 177, 176, 176, 176, 176, 176, 176,
957 176, 178, 176, 788, 176, 180, 176, 181, 176, 97,
959 97, 97, 361, 97, 97, 97, 198, 97, 198, 198,
960 97, 198, 851, 188, 791, 176, 176, 188, 232, 232,
961 199, 182, 940, 199, 1110, 273, 183, 228, 228, 228,
962 361, 494, 231, 231, 361, 184, 190, 191, 97, 191,
963 190, 190, 190, 190, 190, 190, 190, 192, 190, 361,
964 190, 194, 190, 195, 190, 97, 97, 97, 821, 97,
965 97, 97, 212, 97, 212, 212, 97, 212, 887, 200,
966 792, 190, 190, 200, 814, 1109, 213, 361, 361, 213,
967 228, 228, 228, 228, 228, 228, 196, 190, 191, 97,
968 191, 190, 190, 190, 190, 190, 190, 190, 192, 190,
970 790, 190, 194, 190, 195, 190, 97, 97, 97, 816,
971 97, 97, 97, 212, 97, 212, 212, 97, 212, 232,
972 214, 232, 190, 190, 214, 361, 279, 213, 361, 1096,
973 213, 967, 1095, 231, 1084, 231, 361, 196, 201, 202,
974 97, 202, 201, 201, 201, 201, 201, 201, 201, 203,
975 201, 494, 201, 205, 201, 206, 201, 212, 97, 212,
976 848, 212, 97, 212, 97, 97, 97, 250, 97, 97,
977 97, 215, 232, 201, 201, 215, 232, 232, 214, 1114,
978 361, 207, 214, 208, 795, 209, 231, 228, 228, 228,
979 231, 231, 361, 210, 201, 202, 97, 202, 201, 201,
981 201, 201, 201, 201, 201, 203, 201, 232, 201, 205,
982 201, 206, 201, 224, 97, 224, 884, 224, 97, 224,
983 850, 231, 252, 228, 228, 228, 280, 225, 361, 201,
984 201, 225, 228, 228, 228, 110, 111, 207, 997, 208,
985 112, 209, 237, 248, 228, 228, 228, 361, 226, 210,
986 216, 217, 97, 217, 216, 216, 216, 216, 216, 216,
987 216, 218, 216, 232, 216, 220, 216, 221, 216, 227,
988 110, 111, 361, 852, 238, 112, 232, 231, 361, 361,
989 239, 232, 232, 226, 240, 216, 216, 232, 279, 241,
990 231, 232, 232, 232, 284, 231, 231, 853, 291, 247,
992 494, 231, 819, 854, 227, 231, 231, 231, 222, 216,
993 217, 97, 217, 216, 216, 216, 216, 216, 216, 216,
994 218, 216, 232, 216, 220, 216, 221, 216, 248, 248,
995 251, 280, 361, 796, 249, 249, 231, 745, 250, 250,
996 251, 251, 252, 252, 216, 216, 232, 232, 228, 228,
997 228, 746, 361, 256, 291, 232, 292, 228, 228, 228,
998 231, 231, 296, 228, 228, 228, 886, 222, 361, 231,
999 374, 374, 374, 374, 374, 374, 361, 384, 384, 384,
1000 361, 292, 248, 384, 384, 384, 376, 361, 249, 376,
1001 361, 818, 250, 386, 251, 912, 252, 999, 361, 386,
1003 394, 394, 394, 394, 394, 394, 403, 403, 403, 403,
1004 403, 403, 407, 407, 407, 882, 396, 361, 817, 396,
1005 377, 361, 405, 361, 1083, 405, 820, 408, 410, 410,
1006 410, 911, 387, 412, 412, 412, 412, 412, 412, 418,
1007 418, 418, 913, 411, 418, 418, 418, 361, 918, 414,
1008 406, 914, 414, 361, 397, 420, 426, 426, 426, 920,
1009 420, 426, 426, 426, 432, 432, 432, 432, 432, 432,
1010 931, 921, 428, 374, 374, 374, 361, 428, 932, 933,
1011 434, 361, 361, 434, 915, 941, 415, 934, 361, 376,
1012 374, 374, 374, 361, 421, 374, 374, 374, 446, 446,
1014 446, 451, 451, 451, 938, 361, 376, 384, 384, 384,
1015 361, 376, 944, 969, 429, 937, 452, 384, 384, 384,
1016 435, 361, 943, 386, 384, 384, 384, 457, 457, 457,
1017 970, 916, 445, 386, 394, 394, 394, 394, 394, 394,
1018 386, 361, 458, 394, 394, 394, 464, 464, 464, 1082,
1019 396, 1035, 361, 396, 403, 403, 403, 361, 998, 396,
1020 361, 465, 361, 453, 403, 403, 403, 403, 403, 403,
1021 405, 407, 407, 407, 469, 469, 469, 972, 470, 361,
1022 405, 471, 973, 405, 920, 1017, 408, 410, 410, 410,
1023 473, 473, 473, 361, 474, 1002, 921, 475, 1036, 461,
1025 361, 1081, 411, 412, 412, 412, 361, 412, 412, 412,
1026 412, 412, 412, 478, 478, 478, 418, 418, 418, 414,
1027 361, 1016, 468, 414, 1000, 1003, 414, 361, 479, 418,
1028 418, 418, 420, 418, 418, 418, 482, 482, 482, 426,
1029 426, 426, 426, 426, 426, 420, 426, 426, 426, 420,
1030 361, 483, 432, 432, 432, 428, 1090, 1073, 428, 432,
1031 432, 432, 428, 432, 432, 432, 476, 1001, 434, 493,
1032 493, 493, 374, 374, 374, 434, 446, 446, 446, 434,
1033 451, 451, 451, 361, 1067, 494, 495, 361, 376, 480,
1034 505, 505, 505, 1038, 506, 452, 486, 507, 384, 384,
1036 384, 457, 457, 457, 1014, 1066, 489, 361, 512, 512,
1037 512, 361, 513, 1020, 386, 514, 458, 515, 515, 515,
1038 517, 517, 517, 520, 520, 520, 1019, 500, 464, 464,
1039 464, 361, 516, 361, 361, 518, 528, 528, 528, 521,
1040 524, 524, 524, 465, 525, 508, 1031, 526, 403, 403,
1041 403, 529, 361, 469, 469, 469, 519, 470, 1018, 1021,
1042 471, 473, 473, 473, 405, 474, 361, 1102, 475, 412,
1043 412, 412, 530, 478, 478, 478, 535, 535, 535, 1065,
1044 536, 361, 1034, 537, 361, 414, 361, 1052, 479, 418,
1045 418, 418, 482, 482, 482, 540, 540, 540, 361, 541,
1047 1037, 1123, 542, 361, 1055, 420, 531, 483, 361, 426,
1048 426, 426, 547, 547, 547, 432, 432, 432, 493, 493,
1049 493, 374, 374, 374, 533, 428, 361, 548, 561, 561,
1050 561, 434, 361, 361, 494, 361, 1039, 376, 505, 505,
1051 505, 1068, 506, 1064, 538, 507, 361, 1057, 545, 384,
1052 384, 384, 361, 512, 512, 512, 1054, 513, 361, 552,
1053 514, 361, 1049, 557, 1050, 386, 515, 515, 515, 1089,
1054 1051, 549, 566, 566, 566, 553, 567, 361, 361, 568,
1055 361, 516, 517, 517, 517, 569, 569, 569, 1063, 570,
1056 1071, 361, 571, 520, 520, 520, 1103, 518, 1069, 524,
1058 524, 524, 361, 525, 361, 562, 526, 1117, 361, 521,
1059 528, 528, 528, 576, 576, 576, 1118, 577, 1070, 1108,
1060 578, 403, 403, 403, 361, 529, 412, 412, 412, 535,
1061 535, 535, 361, 536, 1074, 1062, 537, 405, 418, 418,
1062 418, 1086, 414, 540, 540, 540, 1092, 541, 1048, 361,
1063 542, 547, 547, 547, 420, 361, 426, 426, 426, 1085,
1064 361, 590, 590, 590, 361, 591, 548, 582, 592, 1087,
1065 361, 580, 428, 432, 432, 432, 599, 599, 599, 584,
1066 374, 374, 374, 561, 561, 561, 384, 384, 384, 434,
1067 1098, 600, 641, 641, 641, 1106, 376, 588, 1093, 566,
1069 566, 566, 386, 567, 361, 1047, 568, 569, 569, 569,
1070 1107, 570, 361, 361, 571, 361, 613, 613, 613, 1132,
1071 1138, 593, 403, 403, 403, 1046, 605, 622, 622, 622,
1072 601, 614, 576, 576, 576, 361, 577, 361, 405, 578,
1073 418, 418, 418, 623, 426, 426, 426, 590, 590, 590,
1074 1115, 591, 615, 1116, 592, 361, 420, 599, 599, 599,
1075 428, 432, 432, 432, 637, 637, 637, 1128, 638, 1045,
1076 361, 639, 600, 361, 1121, 620, 625, 434, 374, 374,
1077 374, 643, 643, 643, 384, 384, 384, 1129, 613, 613,
1078 613, 403, 403, 403, 376, 668, 668, 668, 629, 1099,
1080 386, 1143, 631, 614, 654, 654, 654, 405, 655, 361,
1081 669, 656, 622, 622, 622, 361, 418, 418, 418, 426,
1082 426, 426, 432, 432, 432, 644, 1158, 361, 623, 361,
1083 361, 640, 420, 361, 361, 428, 361, 664, 434, 676,
1084 676, 676, 637, 637, 637, 1245, 638, 1119, 361, 639,
1085 374, 374, 374, 1120, 361, 361, 361, 667, 641, 641,
1086 641, 643, 643, 643, 1122, 1133, 376, 682, 682, 682,
1087 1130, 674, 1126, 672, 692, 692, 692, 654, 654, 654,
1088 1136, 655, 361, 683, 656, 403, 403, 403, 1131, 693,
1089 418, 418, 418, 668, 668, 668, 1134, 361, 680, 361,
1091 361, 405, 709, 709, 709, 361, 420, 1147, 669, 361,
1092 694, 706, 706, 706, 1230, 707, 361, 710, 708, 361,
1093 1127, 702, 712, 712, 712, 714, 714, 714, 432, 432,
1094 432, 374, 374, 374, 682, 682, 682, 705, 713, 732,
1095 732, 732, 1137, 1151, 434, 1135, 361, 376, 361, 1141,
1096 683, 692, 692, 692, 733, 734, 734, 734, 1195, 735,
1097 361, 361, 736, 742, 742, 742, 693, 725, 714, 714,
1098 714, 403, 403, 403, 418, 418, 418, 1144, 743, 709,
1099 709, 709, 361, 715, 676, 676, 676, 405, 1142, 1159,
1100 420, 706, 706, 706, 710, 707, 361, 1145, 708, 361,
1102 361, 749, 749, 749, 1152, 750, 1044, 1043, 751, 752,
1103 752, 752, 712, 712, 712, 748, 361, 361, 744, 1146,
1104 361, 716, 1153, 717, 753, 754, 754, 754, 713, 718,
1105 374, 374, 374, 719, 361, 720, 1149, 721, 732, 732,
1106 732, 755, 361, 771, 771, 771, 376, 772, 361, 361,
1107 773, 1148, 361, 733, 734, 734, 734, 1150, 735, 1042,
1108 361, 736, 742, 742, 742, 777, 777, 777, 1160, 778,
1109 766, 1156, 779, 403, 403, 403, 361, 743, 418, 418,
1110 418, 749, 749, 749, 1166, 750, 1157, 1196, 751, 405,
1111 752, 752, 752, 1163, 420, 785, 785, 785, 361, 786,
1113 1175, 361, 787, 361, 361, 753, 754, 754, 754, 374,
1114 374, 374, 800, 800, 800, 403, 403, 403, 780, 806,
1115 806, 806, 755, 361, 1161, 376, 784, 801, 771, 771,
1116 771, 405, 772, 361, 807, 773, 777, 777, 777, 1199,
1117 778, 1200, 1221, 779, 418, 418, 418, 361, 802, 1164,
1118 798, 785, 785, 785, 361, 786, 1030, 361, 787, 1165,
1119 420, 815, 815, 815, 809, 822, 822, 822, 374, 374,
1120 374, 826, 826, 826, 800, 800, 800, 361, 1176, 1167,
1121 823, 494, 361, 1173, 376, 813, 827, 827, 827, 801,
1122 828, 361, 1168, 829, 806, 806, 806, 835, 835, 835,
1124 361, 836, 1029, 361, 837, 403, 403, 403, 1216, 807,
1125 840, 840, 840, 843, 843, 843, 418, 418, 418, 361,
1126 361, 405, 825, 361, 1225, 841, 1174, 1210, 844, 815,
1127 815, 815, 420, 826, 826, 826, 361, 855, 855, 855,
1128 822, 822, 822, 361, 361, 361, 842, 1028, 361, 845,
1129 361, 839, 856, 494, 1184, 823, 494, 857, 857, 857,
1130 849, 858, 1177, 1178, 859, 847, 374, 374, 374, 1204,
1131 827, 827, 827, 494, 828, 1185, 361, 829, 866, 866,
1132 866, 361, 376, 835, 835, 835, 1182, 836, 1222, 1027,
1133 837, 1183, 1026, 867, 868, 868, 868, 870, 870, 870,
1135 840, 840, 840, 1025, 361, 861, 843, 843, 843, 869,
1136 872, 872, 872, 871, 873, 841, 1205, 874, 876, 876,
1137 876, 844, 877, 361, 1193, 878, 880, 880, 880, 418,
1138 418, 418, 888, 888, 888, 855, 855, 855, 1024, 890,
1139 890, 890, 361, 891, 361, 420, 892, 1194, 361, 361,
1140 856, 494, 866, 866, 866, 494, 857, 857, 857, 1270,
1141 858, 361, 361, 859, 374, 374, 374, 867, 889, 901,
1142 901, 901, 494, 902, 1197, 1212, 903, 880, 880, 880,
1143 376, 870, 870, 870, 881, 492, 492, 492, 492, 492,
1144 492, 492, 492, 492, 1198, 361, 492, 871, 1228, 492,
1146 492, 492, 494, 492, 868, 868, 868, 904, 904, 904,
1147 361, 905, 361, 361, 906, 361, 1022, 896, 1013, 869,
1148 492, 492, 492, 492, 492, 492, 492, 492, 492, 492,
1149 492, 361, 1012, 492, 1211, 1214, 492, 492, 492, 494,
1150 492, 872, 872, 872, 1202, 873, 361, 1203, 874, 876,
1151 876, 876, 1233, 877, 361, 361, 878, 492, 492, 909,
1152 909, 909, 888, 888, 888, 890, 890, 890, 1229, 891,
1153 1225, 361, 892, 361, 361, 910, 361, 1213, 361, 361,
1154 1258, 494, 901, 901, 901, 1217, 902, 1208, 361, 903,
1155 909, 909, 909, 917, 492, 492, 492, 492, 492, 924,
1157 492, 492, 492, 1209, 1218, 492, 910, 361, 492, 492,
1158 492, 494, 492, 904, 904, 904, 1215, 905, 361, 361,
1159 906, 1040, 1040, 1040, 374, 374, 374, 361, 1235, 492,
1160 492, 492, 492, 492, 492, 492, 492, 492, 492, 924,
1161 376, 361, 492, 1219, 1243, 492, 492, 492, 494, 492,
1162 1256, 1220, 939, 939, 939, 942, 942, 942, 948, 948,
1163 948, 374, 374, 374, 361, 1011, 492, 492, 361, 926,
1164 361, 361, 1223, 361, 494, 495, 361, 376, 951, 951,
1165 951, 953, 953, 953, 955, 955, 955, 958, 958, 958,
1166 966, 966, 966, 952, 1226, 1224, 954, 1241, 361, 956,
1168 1242, 361, 959, 939, 939, 939, 361, 942, 942, 942,
1169 1236, 1010, 950, 948, 948, 948, 374, 374, 374, 361,
1170 957, 1227, 361, 361, 951, 951, 951, 1009, 361, 494,
1171 1268, 361, 376, 361, 968, 953, 953, 953, 971, 952,
1172 977, 977, 977, 361, 978, 361, 361, 979, 1244, 1231,
1173 954, 980, 980, 980, 552, 981, 361, 1246, 982, 955,
1174 955, 955, 983, 983, 983, 1232, 984, 1247, 1008, 985,
1175 1234, 976, 361, 361, 956, 958, 958, 958, 987, 987,
1176 987, 1007, 988, 1250, 1254, 989, 966, 966, 966, 361,
1177 959, 374, 374, 374, 977, 977, 977, 1248, 978, 361,
1179 361, 979, 361, 1237, 980, 980, 980, 376, 981, 361,
1180 361, 982, 983, 983, 983, 1005, 984, 996, 1238, 985,
1181 987, 987, 987, 1249, 988, 361, 1251, 989, 1015, 1015,
1182 1015, 374, 374, 374, 1261, 1262, 1006, 361, 1015, 1015,
1183 1015, 361, 1032, 1257, 361, 1033, 361, 376, 374, 374,
1184 374, 1053, 1053, 1053, 361, 1056, 1056, 1056, 1040, 1040,
1185 1040, 1058, 1058, 1058, 376, 1252, 1261, 361, 1060, 1060,
1186 1060, 361, 1053, 1053, 1053, 361, 1255, 1059, 1056, 1056,
1187 1056, 1023, 1075, 1061, 1279, 1076, 361, 1004, 361, 1077,
1188 1077, 1077, 361, 361, 361, 361, 361, 1041, 1058, 1058,
1190 1058, 361, 995, 1072, 361, 361, 1060, 1060, 1060, 1078,
1191 1078, 1078, 1263, 1079, 1059, 994, 1080, 1088, 1088, 1088,
1192 1253, 1061, 1091, 1091, 1091, 1077, 1077, 1077, 1078, 1078,
1193 1078, 1259, 1079, 361, 1260, 1080, 1269, 361, 361, 361,
1194 1264, 361, 1097, 1097, 1097, 1088, 1088, 1088, 993, 1100,
1195 1279, 361, 1101, 1091, 1091, 1091, 1094, 1104, 361, 361,
1196 1105, 361, 361, 1097, 1097, 1097, 361, 1111, 1280, 361,
1197 1112, 1162, 1162, 1162, 1169, 1169, 1169, 1318, 1265, 361,
1198 1171, 1171, 1171, 1266, 1162, 1162, 1162, 361, 1179, 1170,
1199 1267, 1180, 1181, 1181, 1181, 1172, 1186, 1186, 1186, 992,
1201 361, 1169, 1169, 1169, 1171, 1171, 1171, 361, 361, 361,
1202 991, 361, 361, 1187, 1187, 1187, 1170, 1188, 1283, 1172,
1203 1189, 1190, 1190, 1190, 990, 1191, 361, 361, 1192, 1181,
1204 1181, 1181, 1186, 1186, 1186, 1271, 1206, 361, 1281, 1207,
1205 1187, 1187, 1187, 361, 1188, 361, 361, 1189, 361, 1190,
1206 1190, 1190, 1275, 1191, 361, 361, 1192, 1239, 1239, 1239,
1207 1201, 1239, 1239, 1239, 1273, 1273, 1273, 1272, 1295, 1276,
1208 1277, 1283, 361, 1240, 1282, 1282, 1282, 1240, 1278, 1286,
1209 1274, 361, 1289, 361, 1273, 1273, 1273, 1284, 1286, 361,
1210 361, 361, 1287, 1287, 1287, 1290, 361, 361, 361, 986,
1212 1274, 361, 361, 975, 1285, 1282, 1282, 1282, 1288, 1291,
1213 361, 361, 1292, 1293, 1293, 1293, 1297, 1297, 1297, 1301,
1214 361, 361, 1287, 1287, 1287, 1299, 1303, 1296, 1304, 1294,
1215 361, 361, 1298, 361, 1300, 361, 1302, 361, 1288, 1293,
1216 1293, 1293, 1297, 1297, 1297, 361, 361, 361, 361, 361,
1217 1305, 361, 361, 1317, 1317, 1294, 361, 361, 1298, 1306,
1218 361, 1309, 361, 361, 361, 361, 1326, 1326, 361, 1310,
1219 1307, 1308, 1311, 1312, 361, 361, 1322, 1322, 1322, 361,
1220 361, 1320, 1319, 1313, 1314, 361, 1321, 946, 361, 361,
1221 1315, 1316, 1323, 1322, 1322, 1322, 1329, 1329, 1329, 361,
1223 1327, 1333, 361, 1324, 974, 946, 1328, 1325, 361, 1323,
1224 1334, 1331, 1330, 1329, 1329, 1329, 1332, 361, 361, 361,
1225 1341, 1341, 965, 1335, 964, 963, 1336, 1337, 1338, 1330,
1226 361, 962, 361, 1342, 1342, 1342, 1342, 1342, 1342, 961,
1227 960, 949, 1339, 1340, 946, 946, 936, 935, 930, 1343,
1228 929, 928, 1343, 94, 94, 94, 94, 94, 94, 94,
1229 95, 95, 95, 95, 95, 95, 95, 100, 100, 100,
1230 100, 100, 100, 100, 103, 103, 103, 103, 103, 103,
1231 103, 106, 106, 106, 106, 106, 106, 106, 109, 109,
1232 109, 109, 109, 109, 109, 116, 116, 116, 116, 116,
1234 116, 116, 124, 124, 124, 124, 124, 124, 124, 128,
1235 128, 128, 128, 128, 128, 128, 137, 137, 137, 137,
1236 137, 137, 137, 141, 141, 141, 141, 141, 141, 141,
1237 158, 158, 158, 158, 158, 158, 158, 165, 165, 165,
1238 165, 165, 165, 165, 172, 172, 172, 172, 172, 172,
1239 172, 179, 179, 179, 179, 179, 179, 179, 185, 185,
1240 185, 185, 185, 185, 185, 193, 193, 193, 193, 193,
1241 193, 193, 197, 197, 197, 197, 197, 197, 197, 204,
1242 204, 204, 204, 204, 204, 204, 211, 211, 211, 211,
1243 211, 211, 211, 219, 219, 219, 219, 219, 219, 219,
1245 223, 223, 223, 223, 223, 223, 223, 245, 245, 245,
1246 927, 245, 254, 254, 254, 925, 254, 258, 258, 258,
1247 908, 258, 267, 267, 267, 907, 267, 275, 275, 275,
1248 900, 275, 282, 282, 282, 899, 282, 286, 286, 286,
1249 898, 286, 294, 294, 294, 897, 294, 299, 299, 299,
1250 299, 299, 895, 299, 314, 879, 314, 322, 875, 322,
1251 330, 865, 330, 337, 864, 337, 342, 863, 342, 346,
1252 862, 346, 352, 860, 352, 356, 846, 356, 360, 360,
1253 360, 360, 360, 360, 360, 366, 838, 834, 366, 375,
1254 375, 375, 375, 375, 375, 385, 385, 385, 385, 385,
1256 385, 395, 395, 395, 395, 395, 395, 404, 404, 404,
1257 404, 404, 404, 413, 413, 413, 413, 413, 413, 419,
1258 419, 419, 419, 419, 419, 427, 427, 427, 427, 427,
1259 427, 433, 433, 433, 433, 433, 433, 492, 492, 492,
1260 492, 492, 492, 492, 893, 893, 893, 893, 893, 893,
1261 893, 894, 894, 894, 894, 894, 894, 894, 919, 919,
1262 919, 919, 919, 919, 919, 922, 922, 922, 922, 922,
1263 922, 922, 945, 945, 945, 945, 945, 945, 945, 947,
1264 947, 947, 947, 947, 947, 947, 833, 830, 824, 812,
1265 811, 810, 808, 805, 804, 803, 799, 797, 783, 782,
1267 781, 776, 775, 774, 770, 769, 768, 767, 765, 747,
1268 741, 740, 739, 738, 737, 731, 730, 729, 728, 727,
1269 726, 724, 711, 704, 703, 701, 700, 699, 698, 697,
1270 696, 695, 691, 690, 689, 688, 687, 686, 685, 684,
1271 681, 679, 675, 673, 671, 670, 666, 665, 663, 658,
1272 657, 653, 652, 647, 646, 645, 642, 636, 632, 630,
1273 628, 627, 626, 624, 621, 619, 618, 617, 616, 612,
1274 611, 610, 609, 608, 607, 606, 604, 603, 602, 598,
1275 594, 589, 587, 586, 585, 583, 581, 579, 575, 574,
1276 573, 572, 565, 564, 563, 560, 559, 558, 556, 555,
1278 554, 494, 550, 546, 544, 543, 539, 534, 532, 527,
1279 523, 522, 511, 510, 509, 504, 503, 502, 501, 499,
1280 498, 497, 496, 490, 488, 487, 485, 484, 481, 477,
1281 472, 467, 466, 463, 462, 460, 459, 456, 455, 454,
1282 450, 449, 448, 447, 444, 443, 442, 441, 440, 439,
1283 438, 361, 436, 431, 430, 425, 424, 423, 422, 417,
1284 416, 409, 402, 401, 400, 399, 398, 393, 392, 391,
1285 390, 389, 388, 383, 382, 381, 380, 379, 378, 373,
1286 372, 371, 370, 369, 368, 367, 364, 362, 361, 359,
1287 358, 357, 355, 354, 353, 351, 350, 349, 348, 347,
1289 345, 344, 343, 341, 340, 339, 338, 336, 335, 334,
1290 333, 332, 331, 329, 328, 327, 326, 325, 324, 323,
1291 321, 320, 319, 318, 317, 316, 315, 313, 312, 311,
1292 310, 309, 308, 303, 300, 302, 298, 297, 295, 293,
1293 290, 289, 288, 287, 285, 283, 281, 278, 277, 276,
1294 274, 270, 269, 268, 266, 264, 263, 262, 261, 260,
1295 259, 257, 255, 253, 246, 244, 242, 236, 235, 236,
1296 235, 234, 233, 1344, 93, 1344, 1344, 1344, 1344, 1344,
1297 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1298 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1300 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1301 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1302 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1303 1344, 1344, 1344, 1344, 1344, 1344, 1344
1306 static yyconst flex_int16_t yy_chk[3738] =
1308 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1309 6, 6, 6, 9, 0, 3, 10, 11, 4, 12,
1310 9, 5, 301, 10, 6, 7, 7, 7, 8, 8,
1311 8, 13, 13, 11, 301, 12, 13, 13, 237, 7,
1312 14, 14, 8, 229, 13, 14, 14, 15, 15, 892,
1313 15, 98, 15, 14, 16, 16, 229, 16, 892, 16,
1314 15, 17, 17, 18, 18, 98, 99, 16, 19, 19,
1315 19, 20, 20, 20, 23, 23, 23, 24, 24, 24,
1316 99, 238, 19, 551, 238, 20, 237, 304, 23, 304,
1317 757, 24, 96, 96, 96, 17, 551, 18, 21, 21,
1319 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1320 21, 922, 21, 21, 21, 21, 21, 25, 25, 25,
1321 922, 26, 26, 26, 27, 27, 27, 28, 28, 28,
1322 757, 25, 491, 21, 21, 26, 102, 171, 27, 437,
1323 125, 28, 97, 97, 97, 101, 101, 101, 171, 491,
1324 102, 122, 122, 122, 125, 437, 21, 22, 22, 22,
1325 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1326 553, 22, 22, 22, 22, 22, 29, 29, 29, 719,
1327 30, 30, 30, 31, 31, 31, 32, 32, 32, 762,
1328 29, 138, 22, 22, 30, 553, 133, 31, 120, 132,
1330 32, 129, 129, 129, 719, 138, 132, 135, 135, 135,
1331 133, 597, 120, 132, 552, 22, 33, 33, 33, 33,
1332 33, 33, 33, 33, 33, 33, 33, 33, 33, 762,
1333 33, 33, 33, 33, 33, 35, 35, 35, 133, 36,
1334 36, 36, 37, 37, 37, 1140, 120, 552, 597, 35,
1335 363, 33, 33, 36, 363, 634, 37, 716, 677, 33,
1336 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
1337 34, 34, 34, 678, 34, 34, 34, 34, 34, 38,
1338 38, 38, 677, 39, 39, 39, 40, 40, 40, 634,
1339 41, 41, 41, 38, 716, 34, 34, 39, 596, 1139,
1341 40, 849, 678, 34, 41, 42, 42, 42, 43, 43,
1342 43, 44, 44, 44, 142, 142, 142, 595, 849, 42,
1343 609, 596, 43, 595, 609, 44, 45, 45, 45, 45,
1344 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1345 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1346 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1347 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1348 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1349 45, 45, 45, 45, 45, 45, 45, 45, 47, 47,
1350 47, 48, 48, 48, 49, 49, 49, 50, 50, 50,
1352 610, 718, 47, 617, 610, 48, 618, 617, 49, 1125,
1353 618, 50, 51, 51, 51, 51, 51, 51, 51, 51,
1354 51, 51, 51, 51, 51, 635, 51, 51, 51, 51,
1355 51, 53, 53, 53, 718, 54, 54, 54, 55, 55,
1356 55, 56, 56, 56, 150, 53, 717, 51, 51, 54,
1357 144, 51, 55, 803, 803, 56, 721, 144, 150, 1124,
1358 51, 1110, 51, 635, 144, 851, 723, 51, 52, 52,
1359 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
1360 52, 717, 52, 52, 52, 52, 52, 59, 59, 59,
1361 721, 60, 60, 60, 61, 61, 61, 62, 62, 62,
1363 723, 59, 851, 52, 52, 60, 1109, 52, 61, 920,
1364 920, 62, 147, 147, 147, 1098, 52, 722, 52, 159,
1365 159, 159, 761, 52, 57, 57, 57, 57, 57, 57,
1366 57, 57, 57, 57, 57, 57, 57, 720, 57, 57,
1367 57, 57, 57, 63, 63, 63, 722, 64, 64, 64,
1368 65, 65, 65, 66, 66, 66, 761, 63, 1098, 57,
1369 57, 64, 160, 166, 65, 57, 756, 66, 720, 160,
1370 57, 163, 163, 163, 720, 759, 160, 166, 817, 57,
1371 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1372 58, 58, 58, 756, 58, 58, 58, 58, 58, 67,
1374 67, 67, 914, 68, 68, 68, 71, 71, 71, 72,
1375 72, 72, 817, 67, 759, 58, 58, 68, 174, 180,
1376 71, 58, 914, 72, 1096, 174, 58, 173, 173, 173,
1377 853, 795, 174, 180, 788, 58, 69, 69, 69, 69,
1378 69, 69, 69, 69, 69, 69, 69, 69, 69, 760,
1379 69, 69, 69, 69, 69, 73, 73, 73, 795, 74,
1380 74, 74, 77, 77, 77, 78, 78, 78, 853, 73,
1381 760, 69, 69, 74, 788, 1095, 77, 758, 790, 78,
1382 177, 177, 177, 186, 186, 186, 69, 70, 70, 70,
1383 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
1385 758, 70, 70, 70, 70, 70, 79, 79, 79, 790,
1386 80, 80, 80, 81, 81, 81, 82, 82, 82, 189,
1387 79, 161, 70, 70, 80, 938, 189, 81, 814, 1084,
1388 82, 938, 1083, 189, 1067, 161, 1099, 70, 75, 75,
1389 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1390 75, 763, 75, 75, 75, 75, 75, 83, 83, 83,
1391 814, 84, 84, 84, 85, 85, 85, 161, 86, 86,
1392 86, 83, 175, 75, 75, 84, 188, 194, 85, 1099,
1393 816, 75, 86, 75, 763, 75, 175, 191, 191, 191,
1394 188, 194, 850, 75, 76, 76, 76, 76, 76, 76,
1396 76, 76, 76, 76, 76, 76, 76, 145, 76, 76,
1397 76, 76, 76, 89, 89, 89, 850, 90, 90, 90,
1398 816, 145, 175, 198, 198, 198, 188, 89, 967, 76,
1399 76, 90, 202, 202, 202, 91, 91, 76, 967, 76,
1400 91, 76, 112, 145, 212, 212, 212, 818, 91, 76,
1401 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1402 87, 87, 87, 205, 87, 87, 87, 87, 87, 91,
1403 92, 92, 819, 818, 112, 92, 220, 205, 820, 793,
1404 112, 187, 200, 92, 112, 87, 87, 199, 187, 112,
1405 220, 215, 130, 131, 199, 187, 200, 819, 215, 130,
1407 764, 199, 793, 820, 92, 215, 130, 131, 87, 88,
1408 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1409 88, 88, 214, 88, 88, 88, 88, 88, 130, 131,
1410 200, 187, 852, 764, 130, 131, 214, 703, 130, 131,
1411 130, 131, 130, 131, 88, 88, 143, 213, 217, 217,
1412 217, 703, 792, 143, 213, 225, 214, 224, 224, 224,
1413 143, 213, 225, 228, 228, 228, 852, 88, 969, 225,
1414 314, 314, 314, 315, 315, 315, 791, 322, 322, 322,
1415 883, 213, 143, 323, 323, 323, 314, 794, 143, 315,
1416 848, 792, 143, 322, 143, 883, 143, 969, 882, 323,
1418 330, 330, 330, 331, 331, 331, 337, 337, 337, 338,
1419 338, 338, 339, 339, 339, 848, 330, 884, 791, 331,
1420 315, 885, 337, 889, 1066, 338, 794, 339, 341, 341,
1421 341, 882, 323, 342, 342, 342, 343, 343, 343, 346,
1422 346, 346, 884, 341, 347, 347, 347, 886, 889, 342,
1423 338, 885, 343, 915, 331, 346, 352, 352, 352, 891,
1424 347, 353, 353, 353, 356, 356, 356, 357, 357, 357,
1425 905, 891, 352, 374, 374, 374, 911, 353, 905, 906,
1426 356, 918, 940, 357, 886, 915, 343, 906, 912, 374,
1427 375, 375, 375, 887, 347, 377, 377, 377, 378, 378,
1429 378, 383, 383, 383, 912, 917, 375, 384, 384, 384,
1430 941, 377, 918, 940, 353, 911, 383, 385, 385, 385,
1431 357, 1017, 917, 384, 387, 387, 387, 391, 391, 391,
1432 941, 887, 377, 385, 394, 394, 394, 395, 395, 395,
1433 387, 968, 391, 397, 397, 397, 400, 400, 400, 1064,
1434 394, 1017, 999, 395, 403, 403, 403, 944, 968, 397,
1435 1018, 400, 943, 387, 404, 404, 404, 406, 406, 406,
1436 403, 407, 407, 407, 408, 408, 408, 943, 408, 972,
1437 404, 408, 944, 406, 919, 999, 407, 410, 410, 410,
1438 411, 411, 411, 973, 411, 972, 919, 411, 1018, 397,
1440 970, 1062, 410, 412, 412, 412, 998, 413, 413, 413,
1441 415, 415, 415, 417, 417, 417, 418, 418, 418, 412,
1442 1054, 998, 406, 413, 970, 973, 415, 1073, 417, 419,
1443 419, 419, 418, 421, 421, 421, 423, 423, 423, 426,
1444 426, 426, 427, 427, 427, 419, 429, 429, 429, 421,
1445 971, 423, 432, 432, 432, 426, 1073, 1054, 427, 433,
1446 433, 433, 429, 435, 435, 435, 415, 971, 432, 438,
1447 438, 438, 445, 445, 445, 433, 446, 446, 446, 435,
1448 451, 451, 451, 1020, 1048, 438, 438, 996, 445, 421,
1449 452, 452, 452, 1020, 452, 451, 429, 452, 453, 453,
1451 453, 457, 457, 457, 996, 1047, 435, 1002, 458, 458,
1452 458, 1001, 458, 1002, 453, 458, 457, 459, 459, 459,
1453 460, 460, 460, 461, 461, 461, 1001, 445, 464, 464,
1454 464, 1014, 459, 1000, 1003, 460, 467, 467, 467, 461,
1455 465, 465, 465, 464, 465, 453, 1014, 465, 468, 468,
1456 468, 467, 1089, 469, 469, 469, 460, 469, 1000, 1003,
1457 469, 473, 473, 473, 468, 473, 1016, 1089, 473, 476,
1458 476, 476, 467, 478, 478, 478, 479, 479, 479, 1046,
1459 479, 1034, 1016, 479, 1019, 476, 1108, 1034, 478, 480,
1460 480, 480, 482, 482, 482, 483, 483, 483, 1037, 483,
1462 1019, 1108, 483, 1021, 1037, 480, 468, 482, 1039, 486,
1463 486, 486, 488, 488, 488, 489, 489, 489, 493, 493,
1464 493, 500, 500, 500, 476, 486, 1032, 488, 504, 504,
1465 504, 489, 1033, 1036, 493, 1049, 1021, 500, 505, 505,
1466 505, 1049, 505, 1045, 480, 505, 1031, 1039, 486, 508,
1467 508, 508, 1072, 512, 512, 512, 1036, 512, 1050, 493,
1468 512, 1090, 1031, 500, 1032, 508, 515, 515, 515, 1072,
1469 1033, 489, 516, 516, 516, 493, 516, 1103, 1051, 516,
1470 1052, 515, 517, 517, 517, 518, 518, 518, 1044, 518,
1471 1052, 1102, 518, 520, 520, 520, 1090, 517, 1050, 524,
1473 524, 524, 1094, 524, 1069, 508, 524, 1102, 1075, 520,
1474 528, 528, 528, 529, 529, 529, 1103, 529, 1051, 1094,
1475 529, 531, 531, 531, 1055, 528, 533, 533, 533, 535,
1476 535, 535, 1070, 535, 1055, 1043, 535, 531, 538, 538,
1477 538, 1069, 533, 540, 540, 540, 1075, 540, 1030, 1068,
1478 540, 547, 547, 547, 538, 1092, 545, 545, 545, 1068,
1479 1076, 548, 548, 548, 1086, 548, 547, 533, 548, 1070,
1480 1093, 531, 545, 549, 549, 549, 556, 556, 556, 538,
1481 557, 557, 557, 561, 561, 561, 562, 562, 562, 549,
1482 1086, 556, 602, 602, 602, 1092, 557, 545, 1076, 566,
1484 566, 566, 562, 566, 1123, 1029, 566, 569, 569, 569,
1485 1093, 569, 1100, 1117, 569, 1101, 574, 574, 574, 1117,
1486 1123, 549, 580, 580, 580, 1028, 562, 582, 582, 582,
1487 557, 574, 576, 576, 576, 1113, 576, 1106, 580, 576,
1488 584, 584, 584, 582, 588, 588, 588, 590, 590, 590,
1489 1100, 590, 574, 1101, 590, 1114, 584, 599, 599, 599,
1490 588, 593, 593, 593, 600, 600, 600, 1113, 600, 1027,
1491 1128, 600, 599, 1087, 1106, 580, 584, 593, 601, 601,
1492 601, 604, 604, 604, 605, 605, 605, 1114, 613, 613,
1493 613, 620, 620, 620, 601, 626, 626, 626, 588, 1087,
1495 605, 1128, 593, 613, 614, 614, 614, 620, 614, 1104,
1496 626, 614, 622, 622, 622, 1105, 625, 625, 625, 629,
1497 629, 629, 631, 631, 631, 605, 1143, 1107, 622, 1230,
1498 1115, 601, 625, 1143, 1111, 629, 1118, 620, 631, 633,
1499 633, 633, 637, 637, 637, 1230, 637, 1104, 1116, 637,
1500 640, 640, 640, 1105, 1121, 633, 1119, 625, 641, 641,
1501 641, 643, 643, 643, 1107, 1118, 640, 644, 644, 644,
1502 1115, 631, 1111, 629, 653, 653, 653, 654, 654, 654,
1503 1121, 654, 1112, 644, 654, 664, 664, 664, 1116, 653,
1504 667, 667, 667, 668, 668, 668, 1119, 1132, 640, 1216,
1506 1136, 664, 670, 670, 670, 1120, 667, 1132, 668, 1126,
1507 653, 669, 669, 669, 1216, 669, 1122, 670, 669, 1175,
1508 1112, 664, 672, 672, 672, 673, 673, 673, 674, 674,
1509 674, 680, 680, 680, 682, 682, 682, 667, 672, 691,
1510 691, 691, 1122, 1136, 674, 1120, 1129, 680, 1127, 1126,
1511 682, 692, 692, 692, 691, 693, 693, 693, 1175, 693,
1512 1130, 1137, 693, 701, 701, 701, 692, 680, 714, 714,
1513 714, 702, 702, 702, 705, 705, 705, 1129, 701, 709,
1514 709, 709, 1131, 674, 676, 676, 676, 702, 1127, 1144,
1515 705, 706, 706, 706, 709, 706, 1144, 1130, 706, 1134,
1517 676, 710, 710, 710, 1137, 710, 1026, 1025, 710, 711,
1518 711, 711, 712, 712, 712, 705, 1138, 1133, 702, 1131,
1519 1135, 676, 1138, 676, 711, 715, 715, 715, 712, 676,
1520 725, 725, 725, 676, 1141, 676, 1134, 676, 732, 732,
1521 732, 715, 1145, 733, 733, 733, 725, 733, 1176, 1142,
1522 733, 1133, 1151, 732, 734, 734, 734, 1135, 734, 1024,
1523 1148, 734, 742, 742, 742, 743, 743, 743, 1145, 743,
1524 725, 1141, 743, 744, 744, 744, 1158, 742, 748, 748,
1525 748, 749, 749, 749, 1151, 749, 1142, 1176, 749, 744,
1526 752, 752, 752, 1148, 748, 753, 753, 753, 1146, 753,
1528 1158, 1179, 753, 1180, 1206, 752, 754, 754, 754, 766,
1529 766, 766, 768, 768, 768, 780, 780, 780, 744, 775,
1530 775, 775, 754, 1149, 1146, 766, 748, 768, 771, 771,
1531 771, 780, 771, 1150, 775, 771, 777, 777, 777, 1179,
1532 777, 1180, 1206, 777, 784, 784, 784, 1152, 768, 1149,
1533 766, 785, 785, 785, 1159, 785, 1013, 1156, 785, 1150,
1534 784, 789, 789, 789, 780, 796, 796, 796, 798, 798,
1535 798, 799, 799, 799, 800, 800, 800, 789, 1159, 1152,
1536 796, 796, 1153, 1156, 798, 784, 801, 801, 801, 800,
1537 801, 1201, 1153, 801, 806, 806, 806, 807, 807, 807,
1539 1157, 807, 1012, 1195, 807, 809, 809, 809, 1201, 806,
1540 810, 810, 810, 811, 811, 811, 813, 813, 813, 1160,
1541 1161, 809, 798, 1166, 1210, 810, 1157, 1195, 811, 815,
1542 815, 815, 813, 826, 826, 826, 1210, 821, 821, 821,
1543 822, 822, 822, 1164, 1167, 815, 810, 1011, 1165, 811,
1544 1207, 809, 821, 821, 1166, 822, 822, 823, 823, 823,
1545 815, 823, 1160, 1161, 823, 813, 825, 825, 825, 1184,
1546 827, 827, 827, 823, 827, 1167, 1184, 827, 834, 834,
1547 834, 1173, 825, 835, 835, 835, 1164, 835, 1207, 1010,
1548 835, 1165, 1009, 834, 838, 838, 838, 839, 839, 839,
1550 840, 840, 840, 1008, 1174, 825, 843, 843, 843, 838,
1551 841, 841, 841, 839, 841, 840, 1185, 841, 844, 844,
1552 844, 843, 844, 1185, 1173, 844, 846, 846, 846, 847,
1553 847, 847, 854, 854, 854, 855, 855, 855, 1007, 856,
1554 856, 856, 1177, 856, 1197, 847, 856, 1174, 854, 1258,
1555 855, 855, 866, 866, 866, 856, 857, 857, 857, 1258,
1556 857, 1214, 1178, 857, 861, 861, 861, 866, 854, 867,
1557 867, 867, 857, 867, 1177, 1197, 867, 880, 880, 880,
1558 861, 870, 870, 870, 847, 858, 858, 858, 858, 858,
1559 858, 858, 858, 858, 1178, 1199, 858, 870, 1214, 858,
1561 858, 858, 858, 858, 868, 868, 868, 869, 869, 869,
1562 1196, 869, 1182, 1219, 869, 1183, 1005, 861, 995, 868,
1563 858, 858, 859, 859, 859, 859, 859, 859, 859, 859,
1564 859, 1215, 994, 859, 1196, 1199, 859, 859, 859, 859,
1565 859, 872, 872, 872, 1182, 872, 1198, 1183, 872, 876,
1566 876, 876, 1219, 876, 1202, 1193, 876, 859, 859, 881,
1567 881, 881, 888, 888, 888, 890, 890, 890, 1215, 890,
1568 1211, 1194, 890, 1203, 1245, 881, 1200, 1198, 888, 1211,
1569 1245, 890, 901, 901, 901, 1202, 901, 1193, 1221, 901,
1570 909, 909, 909, 888, 893, 893, 893, 893, 893, 893,
1572 893, 893, 893, 1194, 1203, 893, 909, 1243, 893, 893,
1573 893, 893, 893, 904, 904, 904, 1200, 904, 1228, 1204,
1574 904, 1022, 1022, 1022, 896, 896, 896, 1205, 1221, 893,
1575 893, 894, 894, 894, 894, 894, 894, 894, 894, 894,
1576 896, 1208, 894, 1204, 1228, 894, 894, 894, 894, 894,
1577 1243, 1205, 913, 913, 913, 916, 916, 916, 924, 924,
1578 924, 926, 926, 926, 1209, 993, 894, 894, 913, 896,
1579 1222, 916, 1208, 1226, 924, 924, 1227, 926, 927, 927,
1580 927, 928, 928, 928, 929, 929, 929, 930, 930, 930,
1581 937, 937, 937, 927, 1212, 1209, 928, 1226, 1256, 929,
1583 1227, 1212, 930, 939, 939, 939, 937, 942, 942, 942,
1584 1222, 992, 926, 948, 948, 948, 950, 950, 950, 939,
1585 929, 1213, 1229, 942, 951, 951, 951, 991, 1213, 948,
1586 1256, 1220, 950, 1231, 939, 953, 953, 953, 942, 951,
1587 952, 952, 952, 1232, 952, 1241, 1235, 952, 1229, 1217,
1588 953, 954, 954, 954, 948, 954, 1217, 1231, 954, 955,
1589 955, 955, 956, 956, 956, 1218, 956, 1232, 990, 956,
1590 1220, 950, 1218, 1233, 955, 958, 958, 958, 959, 959,
1591 959, 986, 959, 1235, 1241, 959, 966, 966, 966, 1236,
1592 958, 976, 976, 976, 977, 977, 977, 1233, 977, 1234,
1594 1244, 977, 966, 1223, 980, 980, 980, 976, 980, 1250,
1595 1223, 980, 983, 983, 983, 975, 983, 966, 1224, 983,
1596 987, 987, 987, 1234, 987, 1224, 1236, 987, 997, 997,
1597 997, 1006, 1006, 1006, 1248, 1250, 976, 1242, 1015, 1015,
1598 1015, 1237, 1015, 1244, 997, 1015, 1248, 1006, 1023, 1023,
1599 1023, 1035, 1035, 1035, 1015, 1038, 1038, 1038, 1040, 1040,
1600 1040, 1041, 1041, 1041, 1023, 1237, 1249, 1035, 1042, 1042,
1601 1042, 1038, 1053, 1053, 1053, 1249, 1242, 1041, 1056, 1056,
1602 1056, 1006, 1056, 1042, 1267, 1056, 1251, 974, 1053, 1057,
1603 1057, 1057, 1246, 1267, 1056, 1247, 1238, 1023, 1058, 1058,
1605 1058, 1252, 965, 1053, 1257, 1057, 1060, 1060, 1060, 1061,
1606 1061, 1061, 1251, 1061, 1058, 964, 1061, 1071, 1071, 1071,
1607 1238, 1060, 1074, 1074, 1074, 1077, 1077, 1077, 1078, 1078,
1608 1078, 1246, 1078, 1071, 1247, 1078, 1257, 1268, 1074, 1253,
1609 1252, 1077, 1085, 1085, 1085, 1088, 1088, 1088, 963, 1088,
1610 1266, 1313, 1088, 1091, 1091, 1091, 1077, 1091, 1085, 1254,
1611 1091, 1088, 1266, 1097, 1097, 1097, 1255, 1097, 1268, 1091,
1612 1097, 1147, 1147, 1147, 1154, 1154, 1154, 1313, 1253, 1097,
1613 1155, 1155, 1155, 1254, 1162, 1162, 1162, 1147, 1162, 1154,
1614 1255, 1162, 1163, 1163, 1163, 1155, 1168, 1168, 1168, 962,
1616 1162, 1169, 1169, 1169, 1171, 1171, 1171, 1269, 1163, 1262,
1617 961, 1259, 1168, 1170, 1170, 1170, 1169, 1170, 1272, 1171,
1618 1170, 1172, 1172, 1172, 960, 1172, 1263, 1272, 1172, 1181,
1619 1181, 1181, 1186, 1186, 1186, 1259, 1186, 1284, 1269, 1186,
1620 1187, 1187, 1187, 1260, 1187, 1181, 1264, 1187, 1186, 1190,
1621 1190, 1190, 1262, 1190, 1265, 1275, 1190, 1225, 1225, 1225,
1622 1181, 1239, 1239, 1239, 1261, 1261, 1261, 1260, 1284, 1263,
1623 1264, 1271, 1276, 1225, 1270, 1270, 1270, 1239, 1265, 1277,
1624 1261, 1291, 1280, 1271, 1273, 1273, 1273, 1275, 1278, 1280,
1625 1270, 1277, 1279, 1279, 1279, 1281, 1285, 1278, 1292, 957,
1627 1273, 1289, 1281, 949, 1276, 1282, 1282, 1282, 1279, 1282,
1628 1290, 1299, 1282, 1283, 1283, 1283, 1286, 1286, 1286, 1291,
1629 1300, 1282, 1287, 1287, 1287, 1289, 1295, 1285, 1296, 1283,
1630 1301, 1302, 1286, 1295, 1290, 1296, 1292, 1303, 1287, 1293,
1631 1293, 1293, 1297, 1297, 1297, 1304, 1307, 1308, 1305, 1306,
1632 1299, 1309, 1310, 1311, 1312, 1293, 1314, 1315, 1297, 1300,
1633 1318, 1303, 1316, 1312, 1319, 1311, 1321, 1320, 1324, 1304,
1634 1301, 1302, 1305, 1306, 1325, 1321, 1317, 1317, 1317, 1320,
1635 1327, 1315, 1314, 1307, 1308, 1328, 1316, 947, 1335, 1336,
1636 1309, 1310, 1317, 1322, 1322, 1322, 1326, 1326, 1326, 1333,
1638 1324, 1331, 1334, 1318, 946, 945, 1325, 1319, 1331, 1322,
1639 1332, 1327, 1326, 1329, 1329, 1329, 1328, 1332, 1337, 1338,
1640 1339, 1340, 936, 1333, 935, 934, 1334, 1335, 1336, 1329,
1641 1340, 933, 1339, 1341, 1341, 1341, 1342, 1342, 1342, 932,
1642 931, 925, 1337, 1338, 923, 921, 908, 907, 900, 1341,
1643 899, 898, 1342, 1345, 1345, 1345, 1345, 1345, 1345, 1345,
1644 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1347, 1347, 1347,
1645 1347, 1347, 1347, 1347, 1348, 1348, 1348, 1348, 1348, 1348,
1646 1348, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1350, 1350,
1647 1350, 1350, 1350, 1350, 1350, 1351, 1351, 1351, 1351, 1351,
1649 1351, 1351, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1353,
1650 1353, 1353, 1353, 1353, 1353, 1353, 1354, 1354, 1354, 1354,
1651 1354, 1354, 1354, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
1652 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1357, 1357, 1357,
1653 1357, 1357, 1357, 1357, 1358, 1358, 1358, 1358, 1358, 1358,
1654 1358, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1360, 1360,
1655 1360, 1360, 1360, 1360, 1360, 1361, 1361, 1361, 1361, 1361,
1656 1361, 1361, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1363,
1657 1363, 1363, 1363, 1363, 1363, 1363, 1364, 1364, 1364, 1364,
1658 1364, 1364, 1364, 1365, 1365, 1365, 1365, 1365, 1365, 1365,
1660 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1367, 1367, 1367,
1661 897, 1367, 1368, 1368, 1368, 895, 1368, 1369, 1369, 1369,
1662 879, 1369, 1370, 1370, 1370, 875, 1370, 1371, 1371, 1371,
1663 865, 1371, 1372, 1372, 1372, 864, 1372, 1373, 1373, 1373,
1664 863, 1373, 1374, 1374, 1374, 862, 1374, 1375, 1375, 1375,
1665 1375, 1375, 860, 1375, 1376, 845, 1376, 1377, 842, 1377,
1666 1378, 833, 1378, 1379, 832, 1379, 1380, 831, 1380, 1381,
1667 830, 1381, 1382, 824, 1382, 1383, 812, 1383, 1384, 1384,
1668 1384, 1384, 1384, 1384, 1384, 1385, 808, 805, 1385, 1386,
1669 1386, 1386, 1386, 1386, 1386, 1387, 1387, 1387, 1387, 1387,
1671 1387, 1388, 1388, 1388, 1388, 1388, 1388, 1389, 1389, 1389,
1672 1389, 1389, 1389, 1390, 1390, 1390, 1390, 1390, 1390, 1391,
1673 1391, 1391, 1391, 1391, 1391, 1392, 1392, 1392, 1392, 1392,
1674 1392, 1393, 1393, 1393, 1393, 1393, 1393, 1394, 1394, 1394,
1675 1394, 1394, 1394, 1394, 1395, 1395, 1395, 1395, 1395, 1395,
1676 1395, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1397, 1397,
1677 1397, 1397, 1397, 1397, 1397, 1398, 1398, 1398, 1398, 1398,
1678 1398, 1398, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1400,
1679 1400, 1400, 1400, 1400, 1400, 1400, 804, 802, 797, 783,
1680 782, 781, 776, 774, 770, 769, 767, 765, 747, 746,
1682 745, 739, 738, 737, 729, 728, 727, 726, 724, 704,
1683 699, 697, 696, 695, 694, 689, 687, 686, 685, 684,
1684 681, 679, 671, 666, 665, 663, 662, 661, 660, 659,
1685 658, 657, 652, 651, 650, 649, 648, 647, 646, 645,
1686 642, 636, 632, 630, 628, 627, 624, 621, 619, 616,
1687 615, 612, 611, 608, 607, 606, 603, 598, 594, 589,
1688 587, 586, 585, 583, 581, 579, 578, 577, 575, 573,
1689 572, 571, 570, 565, 564, 563, 560, 559, 558, 555,
1690 550, 546, 544, 543, 539, 534, 532, 530, 527, 523,
1691 522, 519, 511, 510, 509, 503, 502, 501, 499, 498,
1693 495, 492, 490, 487, 485, 484, 481, 477, 472, 466,
1694 463, 462, 456, 455, 454, 450, 449, 448, 447, 444,
1695 443, 442, 441, 436, 431, 430, 425, 424, 422, 416,
1696 409, 402, 401, 399, 398, 393, 392, 390, 389, 388,
1697 382, 381, 380, 379, 373, 372, 371, 368, 367, 366,
1698 364, 360, 358, 355, 354, 351, 350, 349, 348, 345,
1699 344, 340, 336, 335, 334, 333, 332, 329, 328, 327,
1700 326, 325, 324, 321, 320, 319, 318, 317, 316, 313,
1701 312, 310, 309, 308, 307, 306, 302, 300, 299, 298,
1702 297, 296, 295, 292, 291, 290, 289, 288, 287, 284,
1704 283, 280, 279, 278, 277, 276, 273, 272, 271, 270,
1705 269, 268, 265, 264, 263, 262, 261, 260, 259, 256,
1706 255, 252, 251, 250, 249, 248, 247, 246, 243, 242,
1707 241, 240, 239, 233, 232, 230, 227, 226, 222, 218,
1708 210, 209, 208, 207, 203, 196, 192, 184, 183, 182,
1709 178, 170, 169, 168, 164, 157, 156, 155, 154, 153,
1710 152, 148, 140, 136, 127, 123, 119, 118, 117, 111,
1711 110, 108, 105, 93, 1344, 1344, 1344, 1344, 1344, 1344,
1712 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1713 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1715 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1716 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1717 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1718 1344, 1344, 1344, 1344, 1344, 1344, 1344
1721 /* Table of booleans, true if rule could match eol. */
1722 static yyconst flex_int32_t yy_rule_can_match_eol[179] =
1724 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1725 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0,
1726 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1727 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1728 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1729 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1730 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1731 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
1732 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, };
1734 static yy_state_type yy_last_accepting_state;
1735 static char *yy_last_accepting_cpos;
1737 extern int surf_parse__flex_debug;
1738 int surf_parse__flex_debug = 0;
1740 /* The intent behind this definition is that it'll catch
1741 * any uses of REJECT which flex missed.
1743 #define REJECT reject_used_but_not_detected
1744 #define yymore() yymore_used_but_not_detected
1745 #define YY_MORE_ADJ 0
1746 #define YY_RESTORE_YY_MORE_OFFSET
1747 char *surf_parse_text;
1748 #line 1 "surf/surfxml.l"
1749 /* Validating XML processor for surf/surfxml.dtd.
1750 * Generated 2006/07/18 21:02:15.
1752 * This program was generated with the FleXML XML processor generator.
1753 * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved.
1754 * FleXML is Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1755 * (Id: flexml.pl,v 1.53 2006/07/18 12:12:06 mquinson Exp).
1757 * There are two, intertwined parts to this program, part A and part B.
1762 * Some parts, here collectively called "Part A", are found in the
1763 * FleXML package. They are Copyright (C) 1999-2005 Kristoffer Rose
1764 * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1766 * You can redistribute, use, perform, display and/or modify "Part A"
1767 * provided the following two conditions hold:
1769 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1770 * FleXML; without even the implied warranty of MERCHANTABILITY or
1771 * FITNESS FOR A PARTICULAR PURPOSE.
1773 * 2. The program distribution conditions do not in any way affect the
1774 * distribution conditions of the FleXML system used to generate this
1775 * file or any version of FleXML derived from that system.
1777 * Notice that these are explicit rights granted to you for files
1778 * generated by the FleXML system. For your rights in connection with
1779 * the FleXML system itself please consult the GNU General Public License.
1784 * The other parts, here collectively called "Part B", and which came
1785 * from the DTD used by FleXML to generate this program, can be
1786 * distributed (or not, as the case may be) under the terms of whoever
1787 * wrote them, provided these terms respect and obey the two conditions
1788 * above under the heading "Part A".
1790 * The author of and contributors to FleXML specifically disclaim
1791 * any copyright interest in "Part B", unless "Part B" was written
1792 * by the author of or contributors to FleXML.
1795 #line 49 "surf/surfxml.l"
1797 /* Version strings. */
1798 const char rcs_surfxml_flexml_skeleton[] =
1799 "$" "Id: skel,v 1.31 2006/07/18 18:21:13 mquinson Exp $";
1800 const char rcs_surfxml_flexml[] =
1801 "$" "Id: flexml.pl,v 1.53 2006/07/18 12:12:06 mquinson Exp $";
1811 /* Generated definitions. */
1812 #define FLEXML_yylineno
1813 #define FLEXML_BUFFERSTACKSIZE 1000000
1815 /* XML processor api. */
1816 /* FleXML-provided data. */
1817 const char* surfxml_pcdata;
1818 AT_surfxml_network_link_bandwidth A_surfxml_network_link_bandwidth;
1819 AT_surfxml_process_host A_surfxml_process_host;
1820 AT_surfxml_network_link_latency_file A_surfxml_network_link_latency_file;
1821 AT_surfxml_route_impact_on_dst_with_other_send A_surfxml_route_impact_on_dst_with_other_send;
1822 AT_surfxml_cpu_interference_send_recv A_surfxml_cpu_interference_send_recv;
1823 AT_surfxml_route_impact_on_dst A_surfxml_route_impact_on_dst;
1824 AT_surfxml_platform_description_version A_surfxml_platform_description_version;
1825 AT_surfxml_route_impact_on_src_with_other_recv A_surfxml_route_impact_on_src_with_other_recv;
1826 AT_surfxml_route_element_name A_surfxml_route_element_name;
1827 AT_surfxml_process_start_time A_surfxml_process_start_time;
1828 AT_surfxml_process_function A_surfxml_process_function;
1829 AT_surfxml_cpu_state A_surfxml_cpu_state;
1830 AT_surfxml_cpu_interference_send A_surfxml_cpu_interference_send;
1831 AT_surfxml_network_link_bandwidth_file A_surfxml_network_link_bandwidth_file;
1832 AT_surfxml_cpu_name A_surfxml_cpu_name;
1833 AT_surfxml_process_kill_time A_surfxml_process_kill_time;
1834 AT_surfxml_network_link_state A_surfxml_network_link_state;
1835 AT_surfxml_cpu_availability_file A_surfxml_cpu_availability_file;
1836 AT_surfxml_argument_value A_surfxml_argument_value;
1837 AT_surfxml_route_src A_surfxml_route_src;
1838 AT_surfxml_route_impact_on_src A_surfxml_route_impact_on_src;
1839 AT_surfxml_cpu_max_outgoing_rate A_surfxml_cpu_max_outgoing_rate;
1840 AT_surfxml_cpu_availability A_surfxml_cpu_availability;
1841 AT_surfxml_cpu_interference_recv A_surfxml_cpu_interference_recv;
1842 AT_surfxml_network_link_name A_surfxml_network_link_name;
1843 AT_surfxml_cpu_power A_surfxml_cpu_power;
1844 AT_surfxml_include_file A_surfxml_include_file;
1845 AT_surfxml_network_link_sharing_policy A_surfxml_network_link_sharing_policy;
1846 AT_surfxml_route_dst A_surfxml_route_dst;
1847 AT_surfxml_network_link_latency A_surfxml_network_link_latency;
1848 AT_surfxml_cpu_state_file A_surfxml_cpu_state_file;
1849 AT_surfxml_network_link_state_file A_surfxml_network_link_state_file;
1853 # define ENTER(state) debug_enter(state,#state)
1854 # define LEAVE debug_leave()
1855 # define SET(state) debug_set(state,#state)
1856 static void debug_enter(int, const char*);
1857 static void debug_leave(void);
1858 static void debug_set(int, const char*);
1860 # define ENTER(state) (yy_push_state(state))
1861 # define LEAVE (yy_pop_state())
1862 # define SET(state) BEGIN(state)
1865 /* Generic actions. */
1866 #define SKIP /*skip*/
1867 #define SUCCEED CLEANUP; return 0
1869 #define FAIL return fail
1870 static int fail(const char*, ...);
1871 const char * surfxml_parse_err_msg(void);
1874 static void cleanup(void);
1875 #define CLEANUP cleanup()
1877 /* Text buffer stack handling. */
1878 static char bufferstack[FLEXML_BUFFERSTACKSIZE];
1879 static char* limit = bufferstack + FLEXML_BUFFERSTACKSIZE;
1880 typedef struct BufferLast_s {
1881 struct BufferLast_s *old; const char* saved; char new1[1];
1883 #ifdef FLEXML_HasMixed
1884 static BufferLast* last = (BufferLast*)0;
1886 static char* next = bufferstack;
1888 #define BUFFERSET(P) (P = next)
1889 #define BUFFERPUTC(C) (assert(next<limit), *(next++) = (C))
1890 #define BUFFERDONE (BUFFERPUTC('\0'))
1892 #define BUFFERLITERAL(C,P) bufferliteral(C,&(P),surf_parse_text)
1893 static void bufferliteral(char c, const char** pp, char* text)
1895 char *s = strchr(text,c), *e = strrchr(text,c);
1896 assert(s <= e); BUFFERSET(*pp);
1898 if (isspace(*s)) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
1899 else BUFFERPUTC(*s);
1904 #ifdef FLEXML_HasMixed
1905 static void pushbuffer(const char* p)
1907 BufferLast* l = (BufferLast*)next;
1908 assert(next < limit);
1915 static const char* popbuffer(void)
1917 BufferLast* l = last;
1918 assert(last != (BufferLast*)0);
1925 /* General internal entities are `unput' back onto the input stream... */
1926 #define ENTITYTEXT(T) \
1927 { char *s = (T), *e = s+strlen(s);\
1928 while (--e >= s) { unput(*e); }}
1929 /* Flex standard options. */
1930 #define YY_NO_INPUT 1
1931 /* Flex user-requested options. */
1932 /* XML character classes (currently restricted to ASCII). */
1933 /* "Common syntactic structures." */
1934 /* "Names and Tokens." */
1935 /* Miscellaneous. */
1936 /* Parser states (flex `exclusive start conditions'):
1938 * PROLOG the XML prolog of the document before <?xml...>
1939 * DOCTYPE the XML prolog of the document after <?xml...>
1940 * EPILOG after the root element
1941 * INCOMMENT inside an XML comment <!--....-->
1942 * INPI inside an XML PI <?...?>
1943 * VALUE1 inside a '...'-delimited literal
1944 * VALUE2 inside a "..."-delimited literal
1945 * CDATA inside a <![CDATA[...] ]> section.
1946 * ROOT_<tag> expect root element <tag>
1947 * AL_<tag> inside the attribute list for <tag>
1948 * IN_<tag> inside a <tag> with element contents (ready for end tag)
1949 * IMPOSSIBLE dummy to permit disabling rules; must be last
1961 #line 241 "surf/surfxml.l"
1963 const char* *surfxml_statenames=NULL;
1964 #line 1965 "surf/surfxml.c"
1975 #define ROOT_surfxml_platform_description 9
1976 #define AL_surfxml_platform_description 10
1977 #define S_surfxml_platform_description 11
1978 #define S_surfxml_platform_description_1 12
1979 #define S_surfxml_platform_description_2 13
1980 #define E_surfxml_platform_description 14
1981 #define ROOT_surfxml_include 15
1982 #define AL_surfxml_include 16
1983 #define S_surfxml_include 17
1984 #define S_surfxml_include_1 18
1985 #define S_surfxml_include_2 19
1986 #define E_surfxml_include 20
1987 #define ROOT_surfxml_cpu 21
1988 #define AL_surfxml_cpu 22
1989 #define E_surfxml_cpu 23
1990 #define ROOT_surfxml_network_link 24
1991 #define AL_surfxml_network_link 25
1992 #define E_surfxml_network_link 26
1993 #define ROOT_surfxml_route 27
1994 #define AL_surfxml_route 28
1995 #define S_surfxml_route 29
1996 #define S_surfxml_route_1 30
1997 #define S_surfxml_route_2 31
1998 #define E_surfxml_route 32
1999 #define ROOT_surfxml_route_element 33
2000 #define AL_surfxml_route_element 34
2001 #define E_surfxml_route_element 35
2002 #define ROOT_surfxml_process 36
2003 #define AL_surfxml_process 37
2004 #define S_surfxml_process 38
2005 #define S_surfxml_process_1 39
2006 #define S_surfxml_process_2 40
2007 #define E_surfxml_process 41
2008 #define ROOT_surfxml_argument 42
2009 #define AL_surfxml_argument 43
2010 #define E_surfxml_argument 44
2011 #define IMPOSSIBLE 45
2013 #ifndef YY_NO_UNISTD_H
2014 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2015 * down here because we want the user's section 1 to have been scanned first.
2016 * The user has a chance to override it with an option.
2021 #ifndef YY_EXTRA_TYPE
2022 #define YY_EXTRA_TYPE void *
2025 /* Macros after this point can all be overridden by user definitions in
2029 #ifndef YY_SKIP_YYWRAP
2031 extern "C" int surf_parse_wrap (void );
2033 extern int surf_parse_wrap (void );
2038 static void yy_flex_strncpy (char *,yyconst char *,int );
2041 #ifdef YY_NEED_STRLEN
2042 static int yy_flex_strlen (yyconst char * );
2048 static int yyinput (void );
2050 static int input (void );
2055 static int yy_start_stack_ptr = 0;
2056 static int yy_start_stack_depth = 0;
2057 static int *yy_start_stack = 0;
2059 static void yy_push_state (int new_state );
2061 static void yy_pop_state (void );
2063 /* Amount of stuff to slurp up with each read. */
2064 #ifndef YY_READ_BUF_SIZE
2065 #define YY_READ_BUF_SIZE 8192
2068 /* Copy whatever the last rule matched to the standard output. */
2070 /* This used to be an fputs(), but since the string might contain NUL's,
2071 * we now use fwrite().
2073 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
2076 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2077 * is returned in "result".
2080 #define YY_INPUT(buf,result,max_size) \
2081 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2085 for ( n = 0; n < max_size && \
2086 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
2087 buf[n] = (char) c; \
2089 buf[n++] = (char) c; \
2090 if ( c == EOF && ferror( surf_parse_in ) ) \
2091 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2097 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2099 if( errno != EINTR) \
2101 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2105 clearerr(surf_parse_in); \
2112 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2113 * we don't want an extra ';' after the "return" because that will cause
2114 * some compilers to complain about unreachable statements.
2117 #define yyterminate() return YY_NULL
2120 /* Number of entries by which start-condition stack grows. */
2121 #ifndef YY_START_STACK_INCR
2122 #define YY_START_STACK_INCR 25
2125 /* Report a fatal error. */
2126 #ifndef YY_FATAL_ERROR
2127 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2130 /* end tables serialization structures and prototypes */
2132 /* Default declaration of generated scanner - a define so the user can
2133 * easily add parameters.
2136 #define YY_DECL_IS_OURS 1
2138 extern int surf_parse_lex (void);
2140 #define YY_DECL int surf_parse_lex (void)
2141 #endif /* !YY_DECL */
2143 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2146 #ifndef YY_USER_ACTION
2147 #define YY_USER_ACTION
2150 /* Code executed at the end of each rule. */
2152 #define YY_BREAK break;
2155 #define YY_RULE_SETUP \
2158 /** The main scanner function which does all the work.
2162 register yy_state_type yy_current_state;
2163 register char *yy_cp, *yy_bp;
2164 register int yy_act;
2166 #line 245 "surf/surfxml.l"
2169 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
2173 if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
2174 surfxml_statenames[PROLOG] = NULL;
2175 surfxml_statenames[DOCTYPE] = NULL;
2176 surfxml_statenames[EPILOG] = NULL;
2177 surfxml_statenames[INCOMMENT] = NULL;
2178 surfxml_statenames[INPI] = NULL;
2179 surfxml_statenames[VALUE1] = NULL;
2180 surfxml_statenames[VALUE2] = NULL;
2181 surfxml_statenames[CDATA] = NULL;
2182 surfxml_statenames[ROOT_surfxml_platform_description] = NULL;
2183 surfxml_statenames[AL_surfxml_platform_description] = NULL;
2184 surfxml_statenames[S_surfxml_platform_description] = "platform_description";
2185 surfxml_statenames[S_surfxml_platform_description_1] = "platform_description";
2186 surfxml_statenames[S_surfxml_platform_description_2] = "platform_description";
2187 surfxml_statenames[E_surfxml_platform_description] = "platform_description";
2188 surfxml_statenames[ROOT_surfxml_include] = NULL;
2189 surfxml_statenames[AL_surfxml_include] = NULL;
2190 surfxml_statenames[S_surfxml_include] = "include";
2191 surfxml_statenames[S_surfxml_include_1] = "include";
2192 surfxml_statenames[S_surfxml_include_2] = "include";
2193 surfxml_statenames[E_surfxml_include] = "include";
2194 surfxml_statenames[ROOT_surfxml_cpu] = NULL;
2195 surfxml_statenames[AL_surfxml_cpu] = NULL;
2196 surfxml_statenames[E_surfxml_cpu] = "cpu";
2197 surfxml_statenames[ROOT_surfxml_network_link] = NULL;
2198 surfxml_statenames[AL_surfxml_network_link] = NULL;
2199 surfxml_statenames[E_surfxml_network_link] = "network_link";
2200 surfxml_statenames[ROOT_surfxml_route] = NULL;
2201 surfxml_statenames[AL_surfxml_route] = NULL;
2202 surfxml_statenames[S_surfxml_route] = "route";
2203 surfxml_statenames[S_surfxml_route_1] = "route";
2204 surfxml_statenames[S_surfxml_route_2] = "route";
2205 surfxml_statenames[E_surfxml_route] = "route";
2206 surfxml_statenames[ROOT_surfxml_route_element] = NULL;
2207 surfxml_statenames[AL_surfxml_route_element] = NULL;
2208 surfxml_statenames[E_surfxml_route_element] = "route_element";
2209 surfxml_statenames[ROOT_surfxml_process] = NULL;
2210 surfxml_statenames[AL_surfxml_process] = NULL;
2211 surfxml_statenames[S_surfxml_process] = "process";
2212 surfxml_statenames[S_surfxml_process_1] = "process";
2213 surfxml_statenames[S_surfxml_process_2] = "process";
2214 surfxml_statenames[E_surfxml_process] = "process";
2215 surfxml_statenames[ROOT_surfxml_argument] = NULL;
2216 surfxml_statenames[AL_surfxml_argument] = NULL;
2217 surfxml_statenames[E_surfxml_argument] = "argument";
2220 /* COMMENTS and PIs: handled uniformly for efficiency. */
2222 #line 2223 "surf/surfxml.c"
2233 (yy_start) = 1; /* first start state */
2235 if ( ! surf_parse_in )
2236 surf_parse_in = stdin;
2238 if ( ! surf_parse_out )
2239 surf_parse_out = stdout;
2241 if ( ! YY_CURRENT_BUFFER ) {
2242 surf_parse_ensure_buffer_stack ();
2243 YY_CURRENT_BUFFER_LVALUE =
2244 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
2247 surf_parse__load_buffer_state( );
2250 while ( 1 ) /* loops until end-of-file is reached */
2252 yy_cp = (yy_c_buf_p);
2254 /* Support of surf_parse_text. */
2255 *yy_cp = (yy_hold_char);
2257 /* yy_bp points to the position in yy_ch_buf of the start of
2262 yy_current_state = (yy_start);
2266 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2267 if ( yy_accept[yy_current_state] )
2269 (yy_last_accepting_state) = yy_current_state;
2270 (yy_last_accepting_cpos) = yy_cp;
2272 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2274 yy_current_state = (int) yy_def[yy_current_state];
2275 if ( yy_current_state >= 1345 )
2276 yy_c = yy_meta[(unsigned int) yy_c];
2278 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2281 while ( yy_base[yy_current_state] != 3675 );
2284 yy_act = yy_accept[yy_current_state];
2286 { /* have to back up */
2287 yy_cp = (yy_last_accepting_cpos);
2288 yy_current_state = (yy_last_accepting_state);
2289 yy_act = yy_accept[yy_current_state];
2292 YY_DO_BEFORE_ACTION;
2294 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2297 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
2298 if ( surf_parse_text[yyl] == '\n' )
2300 surf_parse_lineno++;
2304 do_action: /* This label is used only to access EOF actions. */
2307 { /* beginning of action switch */
2308 case 0: /* must back up */
2309 /* undo the effects of YY_DO_BEFORE_ACTION */
2310 *yy_cp = (yy_hold_char);
2311 yy_cp = (yy_last_accepting_cpos);
2312 yy_current_state = (yy_last_accepting_state);
2313 goto yy_find_action;
2317 #line 301 "surf/surfxml.l"
2322 #line 302 "surf/surfxml.l"
2329 #line 305 "surf/surfxml.l"
2333 #line 307 "surf/surfxml.l"
2335 #line 308 "surf/surfxml.l"
2337 /* rule 6 can match eol */
2339 #line 308 "surf/surfxml.l"
2342 case YY_STATE_EOF(INCOMMENT):
2343 #line 309 "surf/surfxml.l"
2344 FAIL("EOF in comment.");
2350 #line 312 "surf/surfxml.l"
2354 #line 314 "surf/surfxml.l"
2356 /* rule 9 can match eol */
2358 #line 314 "surf/surfxml.l"
2361 case YY_STATE_EOF(INPI):
2362 #line 315 "surf/surfxml.l"
2363 FAIL("EOF in PI (processing instruction).");
2366 /* SPACES: skipped uniformly */
2368 /* rule 10 can match eol */
2370 #line 320 "surf/surfxml.l"
2373 /* PROLOG: determine root element and process it. */
2376 /* rule 11 can match eol */
2378 #line 325 "surf/surfxml.l"
2382 /* rule 12 can match eol */
2384 #line 326 "surf/surfxml.l"
2385 FAIL("Bad declaration %s.",surf_parse_text);
2390 /* rule 13 can match eol */
2392 #line 330 "surf/surfxml.l"
2393 SET(ROOT_surfxml_argument);
2396 /* rule 14 can match eol */
2398 #line 331 "surf/surfxml.l"
2399 SET(ROOT_surfxml_route_element);
2402 /* rule 15 can match eol */
2404 #line 332 "surf/surfxml.l"
2405 SET(ROOT_surfxml_cpu);
2408 /* rule 16 can match eol */
2410 #line 333 "surf/surfxml.l"
2411 SET(ROOT_surfxml_include);
2414 /* rule 17 can match eol */
2416 #line 334 "surf/surfxml.l"
2417 SET(ROOT_surfxml_route);
2420 /* rule 18 can match eol */
2422 #line 335 "surf/surfxml.l"
2423 SET(ROOT_surfxml_platform_description);
2426 /* rule 19 can match eol */
2428 #line 336 "surf/surfxml.l"
2429 SET(ROOT_surfxml_network_link);
2432 /* rule 20 can match eol */
2434 #line 337 "surf/surfxml.l"
2435 SET(ROOT_surfxml_process);
2438 /* rule 21 can match eol */
2440 #line 338 "surf/surfxml.l"
2441 FAIL("Bad declaration %s.",surf_parse_text);
2445 #line 339 "surf/surfxml.l"
2446 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
2448 case YY_STATE_EOF(PROLOG):
2449 case YY_STATE_EOF(DOCTYPE):
2450 #line 340 "surf/surfxml.l"
2451 FAIL("EOF in prolog.");
2454 /* RULES DERIVED FROM DTD. */
2455 /* <!-- Small DTD for SURF based tools. --> */
2457 /* rule 23 can match eol */
2459 #line 347 "surf/surfxml.l"
2461 A_surfxml_platform_description_version = "0.0";
2462 ENTER(AL_surfxml_platform_description);
2467 /* rule 24 can match eol */
2469 #line 353 "surf/surfxml.l"
2470 ENTER(VALUE1); BUFFERSET(A_surfxml_platform_description_version);
2473 /* rule 25 can match eol */
2475 #line 354 "surf/surfxml.l"
2476 ENTER(VALUE2); BUFFERSET(A_surfxml_platform_description_version);
2480 #line 356 "surf/surfxml.l"
2482 LEAVE; STag_surfxml_platform_description();surfxml_pcdata = NULL; ENTER(S_surfxml_platform_description);
2487 #line 359 "surf/surfxml.l"
2489 LEAVE; STag_surfxml_platform_description(); surfxml_pcdata = NULL; ETag_surfxml_platform_description();
2491 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2497 #line 365 "surf/surfxml.l"
2498 FAIL("Unexpected character `%c' in attribute list of platform_description element.", surf_parse_text[0]);
2502 #line 366 "surf/surfxml.l"
2503 FAIL("Bad attribute `%s' in `platform_description' element start tag.",surf_parse_text);
2505 case YY_STATE_EOF(AL_surfxml_platform_description):
2506 #line 367 "surf/surfxml.l"
2507 FAIL("EOF in attribute list of `platform_description' element.");
2512 /* rule 30 can match eol */
2514 #line 371 "surf/surfxml.l"
2517 ETag_surfxml_platform_description();
2519 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2524 /* rule 31 can match eol */
2526 #line 378 "surf/surfxml.l"
2527 FAIL("Unexpected end-tag `%s': `</platform_description>' expected.",surf_parse_text);
2531 #line 379 "surf/surfxml.l"
2532 FAIL("Unexpected character `%c': `</platform_description>' expected.",surf_parse_text[0]);
2534 case YY_STATE_EOF(E_surfxml_platform_description):
2535 case YY_STATE_EOF(S_surfxml_platform_description_2):
2536 case YY_STATE_EOF(S_surfxml_platform_description):
2537 #line 380 "surf/surfxml.l"
2538 FAIL("Premature EOF: `</platform_description>' expected.");
2542 /* rule 33 can match eol */
2544 #line 383 "surf/surfxml.l"
2546 A_surfxml_include_file = NULL;
2547 ENTER(AL_surfxml_include);
2552 /* rule 34 can match eol */
2554 #line 389 "surf/surfxml.l"
2555 ENTER(VALUE1); BUFFERSET(A_surfxml_include_file);
2558 /* rule 35 can match eol */
2560 #line 390 "surf/surfxml.l"
2561 ENTER(VALUE2); BUFFERSET(A_surfxml_include_file);
2565 #line 392 "surf/surfxml.l"
2567 if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2568 LEAVE; STag_surfxml_include();surfxml_pcdata = NULL; ENTER(S_surfxml_include);
2573 #line 396 "surf/surfxml.l"
2575 if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2576 LEAVE; STag_surfxml_include(); surfxml_pcdata = NULL; ETag_surfxml_include();
2578 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2579 case ROOT_surfxml_include: SET(EPILOG); break;
2580 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2586 #line 405 "surf/surfxml.l"
2587 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
2591 #line 406 "surf/surfxml.l"
2592 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
2594 case YY_STATE_EOF(AL_surfxml_include):
2595 #line 407 "surf/surfxml.l"
2596 FAIL("EOF in attribute list of `include' element.");
2601 /* rule 40 can match eol */
2603 #line 411 "surf/surfxml.l"
2606 ETag_surfxml_include();
2608 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2609 case ROOT_surfxml_include: SET(EPILOG); break;
2610 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2615 /* rule 41 can match eol */
2617 #line 420 "surf/surfxml.l"
2618 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
2622 #line 421 "surf/surfxml.l"
2623 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
2625 case YY_STATE_EOF(E_surfxml_include):
2626 case YY_STATE_EOF(S_surfxml_include):
2627 case YY_STATE_EOF(S_surfxml_include_2):
2628 #line 422 "surf/surfxml.l"
2629 FAIL("Premature EOF: `</include>' expected.");
2633 /* rule 43 can match eol */
2635 #line 425 "surf/surfxml.l"
2637 A_surfxml_cpu_name = NULL;
2638 A_surfxml_cpu_power = NULL;
2639 A_surfxml_cpu_availability = "1.0";
2640 A_surfxml_cpu_availability_file = NULL;
2641 A_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2642 A_surfxml_cpu_state_file = NULL;
2643 A_surfxml_cpu_interference_send = "1.0";
2644 A_surfxml_cpu_interference_recv = "1.0";
2645 A_surfxml_cpu_interference_send_recv = "1.0";
2646 A_surfxml_cpu_max_outgoing_rate = "-1.0";
2647 ENTER(AL_surfxml_cpu);
2652 /* rule 44 can match eol */
2654 #line 440 "surf/surfxml.l"
2655 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_name);
2658 /* rule 45 can match eol */
2660 #line 441 "surf/surfxml.l"
2661 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_name);
2664 /* rule 46 can match eol */
2666 #line 443 "surf/surfxml.l"
2667 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_power);
2670 /* rule 47 can match eol */
2672 #line 444 "surf/surfxml.l"
2673 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_power);
2676 /* rule 48 can match eol */
2678 #line 446 "surf/surfxml.l"
2679 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability);
2682 /* rule 49 can match eol */
2684 #line 447 "surf/surfxml.l"
2685 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability);
2688 /* rule 50 can match eol */
2690 #line 449 "surf/surfxml.l"
2691 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability_file);
2694 /* rule 51 can match eol */
2696 #line 450 "surf/surfxml.l"
2697 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability_file);
2700 /* rule 52 can match eol */
2701 #line 453 "surf/surfxml.l"
2703 /* rule 53 can match eol */
2705 #line 453 "surf/surfxml.l"
2706 A_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2709 /* rule 54 can match eol */
2710 #line 455 "surf/surfxml.l"
2712 /* rule 55 can match eol */
2714 #line 455 "surf/surfxml.l"
2715 A_surfxml_cpu_state = A_surfxml_cpu_state_OFF;
2718 /* rule 56 can match eol */
2720 #line 457 "surf/surfxml.l"
2721 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_state_file);
2724 /* rule 57 can match eol */
2726 #line 458 "surf/surfxml.l"
2727 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_state_file);
2730 /* rule 58 can match eol */
2732 #line 460 "surf/surfxml.l"
2733 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send);
2736 /* rule 59 can match eol */
2738 #line 461 "surf/surfxml.l"
2739 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send);
2742 /* rule 60 can match eol */
2744 #line 463 "surf/surfxml.l"
2745 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_recv);
2748 /* rule 61 can match eol */
2750 #line 464 "surf/surfxml.l"
2751 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_recv);
2754 /* rule 62 can match eol */
2756 #line 466 "surf/surfxml.l"
2757 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send_recv);
2760 /* rule 63 can match eol */
2762 #line 467 "surf/surfxml.l"
2763 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send_recv);
2766 /* rule 64 can match eol */
2768 #line 469 "surf/surfxml.l"
2769 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_max_outgoing_rate);
2772 /* rule 65 can match eol */
2774 #line 470 "surf/surfxml.l"
2775 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_max_outgoing_rate);
2779 #line 472 "surf/surfxml.l"
2781 if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2782 if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2783 LEAVE; STag_surfxml_cpu();surfxml_pcdata = NULL; ENTER(E_surfxml_cpu);
2788 #line 477 "surf/surfxml.l"
2790 if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2791 if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2792 LEAVE; STag_surfxml_cpu(); surfxml_pcdata = NULL; ETag_surfxml_cpu();
2794 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2795 case ROOT_surfxml_cpu: SET(EPILOG); break;
2796 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2802 #line 487 "surf/surfxml.l"
2803 FAIL("Unexpected character `%c' in attribute list of cpu element.", surf_parse_text[0]);
2807 #line 488 "surf/surfxml.l"
2808 FAIL("Bad attribute `%s' in `cpu' element start tag.",surf_parse_text);
2810 case YY_STATE_EOF(AL_surfxml_cpu):
2811 #line 489 "surf/surfxml.l"
2812 FAIL("EOF in attribute list of `cpu' element.");
2817 /* rule 70 can match eol */
2819 #line 493 "surf/surfxml.l"
2824 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2825 case ROOT_surfxml_cpu: SET(EPILOG); break;
2826 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2831 /* rule 71 can match eol */
2833 #line 502 "surf/surfxml.l"
2834 FAIL("Unexpected end-tag `%s': `</cpu>' expected.",surf_parse_text);
2838 #line 503 "surf/surfxml.l"
2839 FAIL("Unexpected character `%c': `</cpu>' expected.",surf_parse_text[0]);
2841 case YY_STATE_EOF(E_surfxml_cpu):
2842 #line 504 "surf/surfxml.l"
2843 FAIL("Premature EOF: `</cpu>' expected.");
2847 /* rule 73 can match eol */
2849 #line 507 "surf/surfxml.l"
2851 A_surfxml_network_link_name = NULL;
2852 A_surfxml_network_link_bandwidth = NULL;
2853 A_surfxml_network_link_bandwidth_file = NULL;
2854 A_surfxml_network_link_latency = "0.0";
2855 A_surfxml_network_link_latency_file = NULL;
2856 A_surfxml_network_link_state = A_surfxml_network_link_state_ON;
2857 A_surfxml_network_link_state_file = NULL;
2858 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
2859 ENTER(AL_surfxml_network_link);
2864 /* rule 74 can match eol */
2866 #line 520 "surf/surfxml.l"
2867 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_name);
2870 /* rule 75 can match eol */
2872 #line 521 "surf/surfxml.l"
2873 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_name);
2876 /* rule 76 can match eol */
2878 #line 523 "surf/surfxml.l"
2879 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth);
2882 /* rule 77 can match eol */
2884 #line 524 "surf/surfxml.l"
2885 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth);
2888 /* rule 78 can match eol */
2890 #line 526 "surf/surfxml.l"
2891 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth_file);
2894 /* rule 79 can match eol */
2896 #line 527 "surf/surfxml.l"
2897 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth_file);
2900 /* rule 80 can match eol */
2902 #line 529 "surf/surfxml.l"
2903 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency);
2906 /* rule 81 can match eol */
2908 #line 530 "surf/surfxml.l"
2909 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency);
2912 /* rule 82 can match eol */
2914 #line 532 "surf/surfxml.l"
2915 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency_file);
2918 /* rule 83 can match eol */
2920 #line 533 "surf/surfxml.l"
2921 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency_file);
2924 /* rule 84 can match eol */
2925 #line 536 "surf/surfxml.l"
2927 /* rule 85 can match eol */
2929 #line 536 "surf/surfxml.l"
2930 A_surfxml_network_link_state = A_surfxml_network_link_state_ON;
2933 /* rule 86 can match eol */
2934 #line 538 "surf/surfxml.l"
2936 /* rule 87 can match eol */
2938 #line 538 "surf/surfxml.l"
2939 A_surfxml_network_link_state = A_surfxml_network_link_state_OFF;
2942 /* rule 88 can match eol */
2944 #line 540 "surf/surfxml.l"
2945 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_state_file);
2948 /* rule 89 can match eol */
2950 #line 541 "surf/surfxml.l"
2951 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_state_file);
2954 /* rule 90 can match eol */
2955 #line 544 "surf/surfxml.l"
2957 /* rule 91 can match eol */
2959 #line 544 "surf/surfxml.l"
2960 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
2963 /* rule 92 can match eol */
2964 #line 546 "surf/surfxml.l"
2966 /* rule 93 can match eol */
2968 #line 546 "surf/surfxml.l"
2969 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_FATPIPE;
2973 #line 548 "surf/surfxml.l"
2975 if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2976 if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2977 LEAVE; STag_surfxml_network_link();surfxml_pcdata = NULL; ENTER(E_surfxml_network_link);
2982 #line 553 "surf/surfxml.l"
2984 if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2985 if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2986 LEAVE; STag_surfxml_network_link(); surfxml_pcdata = NULL; ETag_surfxml_network_link();
2988 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2989 case ROOT_surfxml_network_link: SET(EPILOG); break;
2990 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2996 #line 563 "surf/surfxml.l"
2997 FAIL("Unexpected character `%c' in attribute list of network_link element.", surf_parse_text[0]);
3001 #line 564 "surf/surfxml.l"
3002 FAIL("Bad attribute `%s' in `network_link' element start tag.",surf_parse_text);
3004 case YY_STATE_EOF(AL_surfxml_network_link):
3005 #line 565 "surf/surfxml.l"
3006 FAIL("EOF in attribute list of `network_link' element.");
3011 /* rule 98 can match eol */
3013 #line 569 "surf/surfxml.l"
3016 ETag_surfxml_network_link();
3018 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3019 case ROOT_surfxml_network_link: SET(EPILOG); break;
3020 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3025 /* rule 99 can match eol */
3027 #line 578 "surf/surfxml.l"
3028 FAIL("Unexpected end-tag `%s': `</network_link>' expected.",surf_parse_text);
3032 #line 579 "surf/surfxml.l"
3033 FAIL("Unexpected character `%c': `</network_link>' expected.",surf_parse_text[0]);
3035 case YY_STATE_EOF(E_surfxml_network_link):
3036 #line 580 "surf/surfxml.l"
3037 FAIL("Premature EOF: `</network_link>' expected.");
3041 /* rule 101 can match eol */
3043 #line 583 "surf/surfxml.l"
3045 A_surfxml_route_src = NULL;
3046 A_surfxml_route_dst = NULL;
3047 A_surfxml_route_impact_on_src = "0.0";
3048 A_surfxml_route_impact_on_dst = "0.0";
3049 A_surfxml_route_impact_on_src_with_other_recv = "0.0";
3050 A_surfxml_route_impact_on_dst_with_other_send = "0.0";
3051 ENTER(AL_surfxml_route);
3056 /* rule 102 can match eol */
3058 #line 594 "surf/surfxml.l"
3059 ENTER(VALUE1); BUFFERSET(A_surfxml_route_src);
3062 /* rule 103 can match eol */
3064 #line 595 "surf/surfxml.l"
3065 ENTER(VALUE2); BUFFERSET(A_surfxml_route_src);
3068 /* rule 104 can match eol */
3070 #line 597 "surf/surfxml.l"
3071 ENTER(VALUE1); BUFFERSET(A_surfxml_route_dst);
3074 /* rule 105 can match eol */
3076 #line 598 "surf/surfxml.l"
3077 ENTER(VALUE2); BUFFERSET(A_surfxml_route_dst);
3080 /* rule 106 can match eol */
3082 #line 600 "surf/surfxml.l"
3083 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src);
3086 /* rule 107 can match eol */
3088 #line 601 "surf/surfxml.l"
3089 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src);
3092 /* rule 108 can match eol */
3094 #line 603 "surf/surfxml.l"
3095 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst);
3098 /* rule 109 can match eol */
3100 #line 604 "surf/surfxml.l"
3101 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst);
3104 /* rule 110 can match eol */
3106 #line 606 "surf/surfxml.l"
3107 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv);
3110 /* rule 111 can match eol */
3112 #line 607 "surf/surfxml.l"
3113 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv);
3116 /* rule 112 can match eol */
3118 #line 609 "surf/surfxml.l"
3119 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send);
3122 /* rule 113 can match eol */
3124 #line 610 "surf/surfxml.l"
3125 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send);
3129 #line 612 "surf/surfxml.l"
3131 if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3132 if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3133 LEAVE; STag_surfxml_route();surfxml_pcdata = NULL; ENTER(S_surfxml_route);
3138 #line 617 "surf/surfxml.l"
3140 if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3141 if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3142 LEAVE; STag_surfxml_route(); surfxml_pcdata = NULL; ETag_surfxml_route();
3144 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3145 case ROOT_surfxml_route: SET(EPILOG); break;
3146 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3152 #line 627 "surf/surfxml.l"
3153 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
3157 #line 628 "surf/surfxml.l"
3158 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
3160 case YY_STATE_EOF(AL_surfxml_route):
3161 #line 629 "surf/surfxml.l"
3162 FAIL("EOF in attribute list of `route' element.");
3167 /* rule 118 can match eol */
3169 #line 633 "surf/surfxml.l"
3172 ETag_surfxml_route();
3174 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3175 case ROOT_surfxml_route: SET(EPILOG); break;
3176 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3181 /* rule 119 can match eol */
3183 #line 642 "surf/surfxml.l"
3184 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
3188 #line 643 "surf/surfxml.l"
3189 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
3191 case YY_STATE_EOF(S_surfxml_route):
3192 case YY_STATE_EOF(S_surfxml_route_2):
3193 case YY_STATE_EOF(E_surfxml_route):
3194 #line 644 "surf/surfxml.l"
3195 FAIL("Premature EOF: `</route>' expected.");
3199 /* rule 121 can match eol */
3201 #line 647 "surf/surfxml.l"
3203 A_surfxml_route_element_name = NULL;
3204 ENTER(AL_surfxml_route_element);
3209 /* rule 122 can match eol */
3211 #line 653 "surf/surfxml.l"
3212 ENTER(VALUE1); BUFFERSET(A_surfxml_route_element_name);
3215 /* rule 123 can match eol */
3217 #line 654 "surf/surfxml.l"
3218 ENTER(VALUE2); BUFFERSET(A_surfxml_route_element_name);
3222 #line 656 "surf/surfxml.l"
3224 if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3225 LEAVE; STag_surfxml_route_element();surfxml_pcdata = NULL; ENTER(E_surfxml_route_element);
3230 #line 660 "surf/surfxml.l"
3232 if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3233 LEAVE; STag_surfxml_route_element(); surfxml_pcdata = NULL; ETag_surfxml_route_element();
3235 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3236 case ROOT_surfxml_route_element: SET(EPILOG); break;
3242 #line 668 "surf/surfxml.l"
3243 FAIL("Unexpected character `%c' in attribute list of route_element element.", surf_parse_text[0]);
3247 #line 669 "surf/surfxml.l"
3248 FAIL("Bad attribute `%s' in `route_element' element start tag.",surf_parse_text);
3250 case YY_STATE_EOF(AL_surfxml_route_element):
3251 #line 670 "surf/surfxml.l"
3252 FAIL("EOF in attribute list of `route_element' element.");
3257 /* rule 128 can match eol */
3259 #line 674 "surf/surfxml.l"
3262 ETag_surfxml_route_element();
3264 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3265 case ROOT_surfxml_route_element: SET(EPILOG); break;
3270 /* rule 129 can match eol */
3272 #line 682 "surf/surfxml.l"
3273 FAIL("Unexpected end-tag `%s': `</route_element>' expected.",surf_parse_text);
3277 #line 683 "surf/surfxml.l"
3278 FAIL("Unexpected character `%c': `</route_element>' expected.",surf_parse_text[0]);
3280 case YY_STATE_EOF(E_surfxml_route_element):
3281 #line 684 "surf/surfxml.l"
3282 FAIL("Premature EOF: `</route_element>' expected.");
3286 /* rule 131 can match eol */
3288 #line 687 "surf/surfxml.l"
3290 A_surfxml_process_host = NULL;
3291 A_surfxml_process_function = NULL;
3292 A_surfxml_process_start_time = "-1.0";
3293 A_surfxml_process_kill_time = "-1.0";
3294 ENTER(AL_surfxml_process);
3299 /* rule 132 can match eol */
3301 #line 696 "surf/surfxml.l"
3302 ENTER(VALUE1); BUFFERSET(A_surfxml_process_host);
3305 /* rule 133 can match eol */
3307 #line 697 "surf/surfxml.l"
3308 ENTER(VALUE2); BUFFERSET(A_surfxml_process_host);
3311 /* rule 134 can match eol */
3313 #line 699 "surf/surfxml.l"
3314 ENTER(VALUE1); BUFFERSET(A_surfxml_process_function);
3317 /* rule 135 can match eol */
3319 #line 700 "surf/surfxml.l"
3320 ENTER(VALUE2); BUFFERSET(A_surfxml_process_function);
3323 /* rule 136 can match eol */
3325 #line 702 "surf/surfxml.l"
3326 ENTER(VALUE1); BUFFERSET(A_surfxml_process_start_time);
3329 /* rule 137 can match eol */
3331 #line 703 "surf/surfxml.l"
3332 ENTER(VALUE2); BUFFERSET(A_surfxml_process_start_time);
3335 /* rule 138 can match eol */
3337 #line 705 "surf/surfxml.l"
3338 ENTER(VALUE1); BUFFERSET(A_surfxml_process_kill_time);
3341 /* rule 139 can match eol */
3343 #line 706 "surf/surfxml.l"
3344 ENTER(VALUE2); BUFFERSET(A_surfxml_process_kill_time);
3348 #line 708 "surf/surfxml.l"
3350 if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3351 if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3352 LEAVE; STag_surfxml_process();surfxml_pcdata = NULL; ENTER(S_surfxml_process);
3357 #line 713 "surf/surfxml.l"
3359 if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3360 if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3361 LEAVE; STag_surfxml_process(); surfxml_pcdata = NULL; ETag_surfxml_process();
3363 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3364 case ROOT_surfxml_process: SET(EPILOG); break;
3365 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3371 #line 723 "surf/surfxml.l"
3372 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
3376 #line 724 "surf/surfxml.l"
3377 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
3379 case YY_STATE_EOF(AL_surfxml_process):
3380 #line 725 "surf/surfxml.l"
3381 FAIL("EOF in attribute list of `process' element.");
3386 /* rule 144 can match eol */
3388 #line 729 "surf/surfxml.l"
3391 ETag_surfxml_process();
3393 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3394 case ROOT_surfxml_process: SET(EPILOG); break;
3395 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3400 /* rule 145 can match eol */
3402 #line 738 "surf/surfxml.l"
3403 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
3407 #line 739 "surf/surfxml.l"
3408 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
3410 case YY_STATE_EOF(S_surfxml_process):
3411 case YY_STATE_EOF(E_surfxml_process):
3412 case YY_STATE_EOF(S_surfxml_process_2):
3413 #line 740 "surf/surfxml.l"
3414 FAIL("Premature EOF: `</process>' expected.");
3418 /* rule 147 can match eol */
3420 #line 743 "surf/surfxml.l"
3422 A_surfxml_argument_value = NULL;
3423 ENTER(AL_surfxml_argument);
3428 /* rule 148 can match eol */
3430 #line 749 "surf/surfxml.l"
3431 ENTER(VALUE1); BUFFERSET(A_surfxml_argument_value);
3434 /* rule 149 can match eol */
3436 #line 750 "surf/surfxml.l"
3437 ENTER(VALUE2); BUFFERSET(A_surfxml_argument_value);
3441 #line 752 "surf/surfxml.l"
3443 if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3444 LEAVE; STag_surfxml_argument();surfxml_pcdata = NULL; ENTER(E_surfxml_argument);
3449 #line 756 "surf/surfxml.l"
3451 if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3452 LEAVE; STag_surfxml_argument(); surfxml_pcdata = NULL; ETag_surfxml_argument();
3454 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3455 case ROOT_surfxml_argument: SET(EPILOG); break;
3461 #line 764 "surf/surfxml.l"
3462 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
3466 #line 765 "surf/surfxml.l"
3467 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
3469 case YY_STATE_EOF(AL_surfxml_argument):
3470 #line 766 "surf/surfxml.l"
3471 FAIL("EOF in attribute list of `argument' element.");
3476 /* rule 154 can match eol */
3478 #line 770 "surf/surfxml.l"
3481 ETag_surfxml_argument();
3483 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3484 case ROOT_surfxml_argument: SET(EPILOG); break;
3489 /* rule 155 can match eol */
3491 #line 778 "surf/surfxml.l"
3492 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
3496 #line 779 "surf/surfxml.l"
3497 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
3499 case YY_STATE_EOF(E_surfxml_argument):
3500 #line 780 "surf/surfxml.l"
3501 FAIL("Premature EOF: `</argument>' expected.");
3504 /* EPILOG: after the root element. */
3508 #line 786 "surf/surfxml.l"
3509 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
3511 case YY_STATE_EOF(EPILOG):
3512 #line 787 "surf/surfxml.l"
3516 /* CHARACTER DATA. */
3518 /* Non-defined standard entities... */
3521 #line 794 "surf/surfxml.l"
3526 #line 795 "surf/surfxml.l"
3531 #line 796 "surf/surfxml.l"
3536 #line 797 "surf/surfxml.l"
3541 #line 798 "surf/surfxml.l"
3544 /* Character entities. */
3547 #line 801 "surf/surfxml.l"
3548 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
3552 #line 802 "surf/surfxml.l"
3553 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
3558 /* rule 165 can match eol */
3559 #line 807 "surf/surfxml.l"
3561 /* rule 166 can match eol */
3562 #line 808 "surf/surfxml.l"
3564 /* rule 167 can match eol */
3565 #line 809 "surf/surfxml.l"
3567 /* rule 168 can match eol */
3569 #line 809 "surf/surfxml.l"
3576 #line 813 "surf/surfxml.l"
3581 #line 814 "surf/surfxml.l"
3582 FAIL("Unexpected `]""]>' in character data.");
3588 #line 818 "surf/surfxml.l"
3591 case YY_STATE_EOF(VALUE1):
3592 #line 819 "surf/surfxml.l"
3593 FAIL("EOF in literal (\"'\" expected).");
3599 #line 823 "surf/surfxml.l"
3602 case YY_STATE_EOF(VALUE2):
3603 #line 824 "surf/surfxml.l"
3604 FAIL("EOF in literal (`\"' expected).");
3609 /* rule 173 can match eol */
3611 #line 828 "surf/surfxml.l"
3612 BUFFERPUTC(surf_parse_text[0]);
3616 #line 829 "surf/surfxml.l"
3617 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
3623 #line 833 "surf/surfxml.l"
3626 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
3629 #line 835 "surf/surfxml.l"
3630 BUFFERPUTC(surf_parse_text[0]);
3632 case YY_STATE_EOF(CDATA):
3633 #line 836 "surf/surfxml.l"
3634 FAIL("EOF in CDATA section.");
3637 /* Impossible rules to avoid warnings from flex(1). */
3638 /* Ideally, this should be replaced by code in flexml.pl that
3639 generates just the states not covered by other rules. */
3642 /* rule 177 can match eol */
3644 #line 843 "surf/surfxml.l"
3645 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
3650 #line 846 "surf/surfxml.l"
3653 #line 3654 "surf/surfxml.c"
3654 case YY_STATE_EOF(INITIAL):
3655 case YY_STATE_EOF(ROOT_surfxml_platform_description):
3656 case YY_STATE_EOF(S_surfxml_platform_description_1):
3657 case YY_STATE_EOF(ROOT_surfxml_include):
3658 case YY_STATE_EOF(S_surfxml_include_1):
3659 case YY_STATE_EOF(ROOT_surfxml_cpu):
3660 case YY_STATE_EOF(ROOT_surfxml_network_link):
3661 case YY_STATE_EOF(ROOT_surfxml_route):
3662 case YY_STATE_EOF(S_surfxml_route_1):
3663 case YY_STATE_EOF(ROOT_surfxml_route_element):
3664 case YY_STATE_EOF(ROOT_surfxml_process):
3665 case YY_STATE_EOF(S_surfxml_process_1):
3666 case YY_STATE_EOF(ROOT_surfxml_argument):
3667 case YY_STATE_EOF(IMPOSSIBLE):
3670 case YY_END_OF_BUFFER:
3672 /* Amount of text matched not including the EOB char. */
3673 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3675 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3676 *yy_cp = (yy_hold_char);
3677 YY_RESTORE_YY_MORE_OFFSET
3679 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3681 /* We're scanning a new file or input source. It's
3682 * possible that this happened because the user
3683 * just pointed surf_parse_in at a new source and called
3684 * surf_parse_lex(). If so, then we have to assure
3685 * consistency between YY_CURRENT_BUFFER and our
3686 * globals. Here is the right place to do so, because
3687 * this is the first action (other than possibly a
3688 * back-up) that will match for the new input source.
3690 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3691 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
3692 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3695 /* Note that here we test for yy_c_buf_p "<=" to the position
3696 * of the first EOB in the buffer, since yy_c_buf_p will
3697 * already have been incremented past the NUL character
3698 * (since all states make transitions on EOB to the
3699 * end-of-buffer state). Contrast this with the test
3702 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3703 { /* This was really a NUL. */
3704 yy_state_type yy_next_state;
3706 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3708 yy_current_state = yy_get_previous_state( );
3710 /* Okay, we're now positioned to make the NUL
3711 * transition. We couldn't have
3712 * yy_get_previous_state() go ahead and do it
3713 * for us because it doesn't know how to deal
3714 * with the possibility of jamming (and we don't
3715 * want to build jamming into it because then it
3716 * will run more slowly).
3719 yy_next_state = yy_try_NUL_trans( yy_current_state );
3721 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3723 if ( yy_next_state )
3725 /* Consume the NUL. */
3726 yy_cp = ++(yy_c_buf_p);
3727 yy_current_state = yy_next_state;
3733 yy_cp = (yy_c_buf_p);
3734 goto yy_find_action;
3738 else switch ( yy_get_next_buffer( ) )
3740 case EOB_ACT_END_OF_FILE:
3742 (yy_did_buffer_switch_on_eof) = 0;
3744 if ( surf_parse_wrap( ) )
3746 /* Note: because we've taken care in
3747 * yy_get_next_buffer() to have set up
3748 * surf_parse_text, we can now set up
3749 * yy_c_buf_p so that if some total
3750 * hoser (like flex itself) wants to
3751 * call the scanner after we return the
3752 * YY_NULL, it'll still work - another
3753 * YY_NULL will get returned.
3755 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3757 yy_act = YY_STATE_EOF(YY_START);
3763 if ( ! (yy_did_buffer_switch_on_eof) )
3769 case EOB_ACT_CONTINUE_SCAN:
3771 (yytext_ptr) + yy_amount_of_matched_text;
3773 yy_current_state = yy_get_previous_state( );
3775 yy_cp = (yy_c_buf_p);
3776 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3779 case EOB_ACT_LAST_MATCH:
3781 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3783 yy_current_state = yy_get_previous_state( );
3785 yy_cp = (yy_c_buf_p);
3786 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3787 goto yy_find_action;
3794 "fatal flex scanner internal error--no action found" );
3795 } /* end of action switch */
3796 } /* end of scanning one token */
3797 } /* end of surf_parse_lex */
3799 /* yy_get_next_buffer - try to read in a new buffer
3801 * Returns a code representing an action:
3802 * EOB_ACT_LAST_MATCH -
3803 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3804 * EOB_ACT_END_OF_FILE - end of file
3806 static int yy_get_next_buffer (void)
3808 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3809 register char *source = (yytext_ptr);
3810 register int number_to_move, i;
3813 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3815 "fatal flex scanner internal error--end of buffer missed" );
3817 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3818 { /* Don't try to fill the buffer, so this is an EOF. */
3819 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3821 /* We matched a single character, the EOB, so
3822 * treat this as a final EOF.
3824 return EOB_ACT_END_OF_FILE;
3829 /* We matched some text prior to the EOB, first
3832 return EOB_ACT_LAST_MATCH;
3836 /* Try to read more data. */
3838 /* First move last chars to start of buffer. */
3839 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3841 for ( i = 0; i < number_to_move; ++i )
3842 *(dest++) = *(source++);
3844 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3845 /* don't do the read, it's not guaranteed to return an EOF,
3848 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3853 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3855 while ( num_to_read <= 0 )
3856 { /* Not enough room in the buffer - grow it. */
3858 /* just a shorter name for the current buffer */
3859 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3861 int yy_c_buf_p_offset =
3862 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3864 if ( b->yy_is_our_buffer )
3866 int new_size = b->yy_buf_size * 2;
3868 if ( new_size <= 0 )
3869 b->yy_buf_size += b->yy_buf_size / 8;
3871 b->yy_buf_size *= 2;
3873 b->yy_ch_buf = (char *)
3874 /* Include room in for 2 EOB chars. */
3875 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
3878 /* Can't grow it, we don't own it. */
3881 if ( ! b->yy_ch_buf )
3883 "fatal error - scanner input buffer overflow" );
3885 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3887 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3892 if ( num_to_read > YY_READ_BUF_SIZE )
3893 num_to_read = YY_READ_BUF_SIZE;
3895 /* Read in more data. */
3896 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3897 (yy_n_chars), num_to_read );
3899 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3902 if ( (yy_n_chars) == 0 )
3904 if ( number_to_move == YY_MORE_ADJ )
3906 ret_val = EOB_ACT_END_OF_FILE;
3907 surf_parse_restart(surf_parse_in );
3912 ret_val = EOB_ACT_LAST_MATCH;
3913 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3914 YY_BUFFER_EOF_PENDING;
3919 ret_val = EOB_ACT_CONTINUE_SCAN;
3921 (yy_n_chars) += number_to_move;
3922 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3923 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3925 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3930 /* yy_get_previous_state - get the state just before the EOB char was reached */
3932 static yy_state_type yy_get_previous_state (void)
3934 register yy_state_type yy_current_state;
3935 register char *yy_cp;
3937 yy_current_state = (yy_start);
3939 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3941 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3942 if ( yy_accept[yy_current_state] )
3944 (yy_last_accepting_state) = yy_current_state;
3945 (yy_last_accepting_cpos) = yy_cp;
3947 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3949 yy_current_state = (int) yy_def[yy_current_state];
3950 if ( yy_current_state >= 1345 )
3951 yy_c = yy_meta[(unsigned int) yy_c];
3953 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3956 return yy_current_state;
3959 /* yy_try_NUL_trans - try to make a transition on the NUL character
3962 * next_state = yy_try_NUL_trans( current_state );
3964 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3966 register int yy_is_jam;
3967 register char *yy_cp = (yy_c_buf_p);
3969 register YY_CHAR yy_c = 1;
3970 if ( yy_accept[yy_current_state] )
3972 (yy_last_accepting_state) = yy_current_state;
3973 (yy_last_accepting_cpos) = yy_cp;
3975 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3977 yy_current_state = (int) yy_def[yy_current_state];
3978 if ( yy_current_state >= 1345 )
3979 yy_c = yy_meta[(unsigned int) yy_c];
3981 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3982 yy_is_jam = (yy_current_state == 1344);
3984 return yy_is_jam ? 0 : yy_current_state;
3989 static int yyinput (void)
3991 static int input (void)
3997 *(yy_c_buf_p) = (yy_hold_char);
3999 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4001 /* yy_c_buf_p now points to the character we want to return.
4002 * If this occurs *before* the EOB characters, then it's a
4003 * valid NUL; if not, then we've hit the end of the buffer.
4005 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4006 /* This was really a NUL. */
4007 *(yy_c_buf_p) = '\0';
4010 { /* need more input */
4011 int offset = (yy_c_buf_p) - (yytext_ptr);
4014 switch ( yy_get_next_buffer( ) )
4016 case EOB_ACT_LAST_MATCH:
4017 /* This happens because yy_g_n_b()
4018 * sees that we've accumulated a
4019 * token and flags that we need to
4020 * try matching the token before
4021 * proceeding. But for input(),
4022 * there's no matching to consider.
4023 * So convert the EOB_ACT_LAST_MATCH
4024 * to EOB_ACT_END_OF_FILE.
4027 /* Reset buffer status. */
4028 surf_parse_restart(surf_parse_in );
4032 case EOB_ACT_END_OF_FILE:
4034 if ( surf_parse_wrap( ) )
4037 if ( ! (yy_did_buffer_switch_on_eof) )
4046 case EOB_ACT_CONTINUE_SCAN:
4047 (yy_c_buf_p) = (yytext_ptr) + offset;
4053 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
4054 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
4055 (yy_hold_char) = *++(yy_c_buf_p);
4059 surf_parse_lineno++;
4064 #endif /* ifndef YY_NO_INPUT */
4066 /** Immediately switch to a different input stream.
4067 * @param input_file A readable stream.
4069 * @note This function does not reset the start condition to @c INITIAL .
4071 void surf_parse_restart (FILE * input_file )
4074 if ( ! YY_CURRENT_BUFFER ){
4075 surf_parse_ensure_buffer_stack ();
4076 YY_CURRENT_BUFFER_LVALUE =
4077 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4080 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
4081 surf_parse__load_buffer_state( );
4084 /** Switch to a different input buffer.
4085 * @param new_buffer The new input buffer.
4088 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
4091 /* TODO. We should be able to replace this entire function body
4093 * surf_parse_pop_buffer_state();
4094 * surf_parse_push_buffer_state(new_buffer);
4096 surf_parse_ensure_buffer_stack ();
4097 if ( YY_CURRENT_BUFFER == new_buffer )
4100 if ( YY_CURRENT_BUFFER )
4102 /* Flush out information for old buffer. */
4103 *(yy_c_buf_p) = (yy_hold_char);
4104 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4105 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4108 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4109 surf_parse__load_buffer_state( );
4111 /* We don't actually know whether we did this switch during
4112 * EOF (surf_parse_wrap()) processing, but the only time this flag
4113 * is looked at is after surf_parse_wrap() is called, so it's safe
4114 * to go ahead and always set it.
4116 (yy_did_buffer_switch_on_eof) = 1;
4119 static void surf_parse__load_buffer_state (void)
4121 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4122 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4123 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4124 (yy_hold_char) = *(yy_c_buf_p);
4127 /** Allocate and initialize an input buffer state.
4128 * @param file A readable stream.
4129 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4131 * @return the allocated buffer state.
4133 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
4137 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4139 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4141 b->yy_buf_size = size;
4143 /* yy_ch_buf has to be 2 characters longer than the size given because
4144 * we need to put in 2 end-of-buffer characters.
4146 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
4147 if ( ! b->yy_ch_buf )
4148 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4150 b->yy_is_our_buffer = 1;
4152 surf_parse__init_buffer(b,file );
4157 /** Destroy the buffer.
4158 * @param b a buffer created with surf_parse__create_buffer()
4161 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
4167 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4168 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4170 if ( b->yy_is_our_buffer )
4171 surf_parse_free((void *) b->yy_ch_buf );
4173 surf_parse_free((void *) b );
4177 extern int isatty (int );
4178 #endif /* __cplusplus */
4180 /* Initializes or reinitializes a buffer.
4181 * This function is sometimes called more than once on the same buffer,
4182 * such as during a surf_parse_restart() or at EOF.
4184 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
4189 surf_parse__flush_buffer(b );
4191 b->yy_input_file = file;
4192 b->yy_fill_buffer = 1;
4194 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
4195 * called from surf_parse_restart() or through yy_get_next_buffer.
4196 * In that case, we don't want to reset the lineno or column.
4198 if (b != YY_CURRENT_BUFFER){
4199 b->yy_bs_lineno = 1;
4200 b->yy_bs_column = 0;
4203 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4208 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4209 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4212 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
4219 /* We always need two end-of-buffer characters. The first causes
4220 * a transition to the end-of-buffer state. The second causes
4221 * a jam in that state.
4223 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4224 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4226 b->yy_buf_pos = &b->yy_ch_buf[0];
4229 b->yy_buffer_status = YY_BUFFER_NEW;
4231 if ( b == YY_CURRENT_BUFFER )
4232 surf_parse__load_buffer_state( );
4235 /** Pushes the new state onto the stack. The new state becomes
4236 * the current state. This function will allocate the stack
4238 * @param new_buffer The new state.
4241 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
4243 if (new_buffer == NULL)
4246 surf_parse_ensure_buffer_stack();
4248 /* This block is copied from surf_parse__switch_to_buffer. */
4249 if ( YY_CURRENT_BUFFER )
4251 /* Flush out information for old buffer. */
4252 *(yy_c_buf_p) = (yy_hold_char);
4253 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4254 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4257 /* Only push if top exists. Otherwise, replace top. */
4258 if (YY_CURRENT_BUFFER)
4259 (yy_buffer_stack_top)++;
4260 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4262 /* copied from surf_parse__switch_to_buffer. */
4263 surf_parse__load_buffer_state( );
4264 (yy_did_buffer_switch_on_eof) = 1;
4267 /** Removes and deletes the top of the stack, if present.
4268 * The next element becomes the new top.
4271 void surf_parse_pop_buffer_state (void)
4273 if (!YY_CURRENT_BUFFER)
4276 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4277 YY_CURRENT_BUFFER_LVALUE = NULL;
4278 if ((yy_buffer_stack_top) > 0)
4279 --(yy_buffer_stack_top);
4281 if (YY_CURRENT_BUFFER) {
4282 surf_parse__load_buffer_state( );
4283 (yy_did_buffer_switch_on_eof) = 1;
4287 /* Allocates the stack if it does not exist.
4288 * Guarantees space for at least one push.
4290 static void surf_parse_ensure_buffer_stack (void)
4294 if (!(yy_buffer_stack)) {
4296 /* First allocation is just for 2 elements, since we don't know if this
4297 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4298 * immediate realloc on the next call.
4301 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
4302 (num_to_alloc * sizeof(struct yy_buffer_state*)
4305 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4307 (yy_buffer_stack_max) = num_to_alloc;
4308 (yy_buffer_stack_top) = 0;
4312 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4314 /* Increase the buffer to prepare for a possible push. */
4315 int grow_size = 8 /* arbitrary grow size */;
4317 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4318 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
4320 num_to_alloc * sizeof(struct yy_buffer_state*)
4323 /* zero only the new slots.*/
4324 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4325 (yy_buffer_stack_max) = num_to_alloc;
4329 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4330 * @param base the character buffer
4331 * @param size the size in bytes of the character buffer
4333 * @return the newly allocated buffer state object.
4335 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
4340 base[size-2] != YY_END_OF_BUFFER_CHAR ||
4341 base[size-1] != YY_END_OF_BUFFER_CHAR )
4342 /* They forgot to leave room for the EOB's. */
4345 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4347 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
4349 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4350 b->yy_buf_pos = b->yy_ch_buf = base;
4351 b->yy_is_our_buffer = 0;
4352 b->yy_input_file = 0;
4353 b->yy_n_chars = b->yy_buf_size;
4354 b->yy_is_interactive = 0;
4356 b->yy_fill_buffer = 0;
4357 b->yy_buffer_status = YY_BUFFER_NEW;
4359 surf_parse__switch_to_buffer(b );
4364 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
4365 * scan from a @e copy of @a str.
4366 * @param str a NUL-terminated string to scan
4368 * @return the newly allocated buffer state object.
4369 * @note If you want to scan bytes that may contain NUL values, then use
4370 * surf_parse__scan_bytes() instead.
4372 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yy_str )
4375 return surf_parse__scan_bytes(yy_str,strlen(yy_str) );
4378 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
4379 * scan from a @e copy of @a bytes.
4380 * @param bytes the byte buffer to scan
4381 * @param len the number of bytes in the buffer pointed to by @a bytes.
4383 * @return the newly allocated buffer state object.
4385 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * bytes, int len )
4392 /* Get memory for full buffer, including space for trailing EOB's. */
4394 buf = (char *) surf_parse_alloc(n );
4396 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
4398 for ( i = 0; i < len; ++i )
4401 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
4403 b = surf_parse__scan_buffer(buf,n );
4405 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
4407 /* It's okay to grow etc. this buffer, and we should throw it
4408 * away when we're done.
4410 b->yy_is_our_buffer = 1;
4415 static void yy_push_state (int new_state )
4417 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4421 (yy_start_stack_depth) += YY_START_STACK_INCR;
4422 new_size = (yy_start_stack_depth) * sizeof( int );
4424 if ( ! (yy_start_stack) )
4425 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
4428 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
4430 if ( ! (yy_start_stack) )
4432 "out of memory expanding start-condition stack" );
4435 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4440 static void yy_pop_state (void)
4442 if ( --(yy_start_stack_ptr) < 0 )
4443 YY_FATAL_ERROR( "start-condition stack underflow" );
4445 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4448 #ifndef YY_EXIT_FAILURE
4449 #define YY_EXIT_FAILURE 2
4452 static void yy_fatal_error (yyconst char* msg )
4454 (void) fprintf( stderr, "%s\n", msg );
4455 exit( YY_EXIT_FAILURE );
4458 /* Redefine yyless() so it works in section 3 code. */
4464 /* Undo effects of setting up surf_parse_text. */ \
4465 int yyless_macro_arg = (n); \
4466 YY_LESS_LINENO(yyless_macro_arg);\
4467 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
4468 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
4469 (yy_hold_char) = *(yy_c_buf_p); \
4470 *(yy_c_buf_p) = '\0'; \
4471 surf_parse_leng = yyless_macro_arg; \
4475 /* Accessor methods (get/set functions) to struct members. */
4477 /** Get the current line number.
4480 int surf_parse_get_lineno (void)
4483 return surf_parse_lineno;
4486 /** Get the input stream.
4489 FILE *surf_parse_get_in (void)
4491 return surf_parse_in;
4494 /** Get the output stream.
4497 FILE *surf_parse_get_out (void)
4499 return surf_parse_out;
4502 /** Get the length of the current token.
4505 int surf_parse_get_leng (void)
4507 return surf_parse_leng;
4510 /** Get the current token.
4514 char *surf_parse_get_text (void)
4516 return surf_parse_text;
4519 /** Set the current line number.
4520 * @param line_number
4523 void surf_parse_set_lineno (int line_number )
4526 surf_parse_lineno = line_number;
4529 /** Set the input stream. This does not discard the current
4531 * @param in_str A readable stream.
4533 * @see surf_parse__switch_to_buffer
4535 void surf_parse_set_in (FILE * in_str )
4537 surf_parse_in = in_str ;
4540 void surf_parse_set_out (FILE * out_str )
4542 surf_parse_out = out_str ;
4545 int surf_parse_get_debug (void)
4547 return surf_parse__flex_debug;
4550 void surf_parse_set_debug (int bdebug )
4552 surf_parse__flex_debug = bdebug ;
4555 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
4556 int surf_parse_lex_destroy (void)
4559 /* Pop the buffer stack, destroying each element. */
4560 while(YY_CURRENT_BUFFER){
4561 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4562 YY_CURRENT_BUFFER_LVALUE = NULL;
4563 surf_parse_pop_buffer_state();
4566 /* Destroy the stack itself. */
4567 surf_parse_free((yy_buffer_stack) );
4568 (yy_buffer_stack) = NULL;
4570 /* Destroy the start condition stack. */
4571 surf_parse_free((yy_start_stack) );
4572 (yy_start_stack) = NULL;
4578 * Internal utility routines.
4582 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4585 for ( i = 0; i < n; ++i )
4590 #ifdef YY_NEED_STRLEN
4591 static int yy_flex_strlen (yyconst char * s )
4594 for ( n = 0; s[n]; ++n )
4601 void *surf_parse_alloc (yy_size_t size )
4603 return (void *) malloc( size );
4606 void *surf_parse_realloc (void * ptr, yy_size_t size )
4608 /* The cast to (char *) in the following accommodates both
4609 * implementations that use char* generic pointers, and those
4610 * that use void* generic pointers. It works with the latter
4611 * because both ANSI C and C++ allow castless assignment from
4612 * any pointer type to void*, and deal with argument conversions
4613 * as though doing an assignment.
4615 return (void *) realloc( (char *) ptr, size );
4618 void surf_parse_free (void * ptr )
4620 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
4623 #define YYTABLES_NAME "yytables"
4626 #undef YY_FLUSH_BUFFER
4628 #undef yy_new_buffer
4629 #undef yy_set_interactive
4631 #undef YY_DO_BEFORE_ACTION
4633 #ifdef YY_DECL_IS_OURS
4634 #undef YY_DECL_IS_OURS
4637 #line 846 "surf/surfxml.l"
4641 /* Element context stack lookup. */
4642 int surfxml_element_context(int i)
4644 return (0<i && i<yy_start_stack_depth
4645 ? yy_start_stack[yy_start_stack_ptr - i]
4650 void print_yy_stack(char* fmt, ...)
4652 int i = 0; va_list ap; va_start(ap, fmt);
4653 vfprintf(stderr, fmt, ap);
4654 for (i=1; i<yy_start_stack_ptr; i++)
4655 fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
4656 fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
4660 static void debug_enter(int state, const char* statename) {
4661 yy_push_state(state);
4662 if (surf_parse__flex_debug) print_yy_stack("--ENTER(%s) : ",statename);
4665 static void debug_leave(void) {
4666 if (surf_parse__flex_debug) print_yy_stack("--LEAVE : ");
4670 static void debug_set(int state, const char* statename) {
4672 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
4676 enum {flexml_max_err_msg_size = 512};
4678 static char flexml_err_msg[flexml_max_err_msg_size];
4679 const char * surfxml_parse_err_msg()
4681 return flexml_err_msg;
4684 static void reset_surfxml_parse_err_msg()
4686 flexml_err_msg[0] = '\0';
4690 static void cleanup(void)
4692 if (surfxml_statenames) {
4693 free(surfxml_statenames);
4694 surfxml_statenames = NULL;
4699 static int fail(const char* fmt, ...)
4701 int chars_left, used;
4702 va_list ap; va_start(ap, fmt);
4703 #ifdef FLEXML_yylineno
4704 used = sprintf(flexml_err_msg,
4705 "Invalid XML (XML input line %d, state %d): ",
4706 surf_parse_lineno, YY_START);
4708 used = sprintf(flexml_err_msg,
4709 "Invalid XML (state %d): ",
4712 chars_left = flexml_max_err_msg_size - used - 1;
4713 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
4716 #ifndef FLEXML_quiet_parser
4717 /* print directly to sdterr */
4718 fprintf(stderr, "%s\n", flexml_err_msg);
4719 flexml_err_msg[0] = '\0';