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 33
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 __STDC_VERSION__ >= 199901L
36 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
37 * if you want the limit (max/min) macros for int types.
39 #ifndef __STDC_LIMIT_MACROS
40 #define __STDC_LIMIT_MACROS 1
44 typedef int8_t flex_int8_t;
45 typedef uint8_t flex_uint8_t;
46 typedef int16_t flex_int16_t;
47 typedef uint16_t flex_uint16_t;
48 typedef int32_t flex_int32_t;
49 typedef uint32_t flex_uint32_t;
51 typedef signed char flex_int8_t;
52 typedef short int flex_int16_t;
53 typedef int flex_int32_t;
54 typedef unsigned char flex_uint8_t;
55 typedef unsigned short int flex_uint16_t;
56 typedef unsigned int flex_uint32_t;
59 /* Limits of integral types. */
61 #define INT8_MIN (-128)
64 #define INT16_MIN (-32767-1)
67 #define INT32_MIN (-2147483647-1)
70 #define INT8_MAX (127)
73 #define INT16_MAX (32767)
76 #define INT32_MAX (2147483647)
79 #define UINT8_MAX (255U)
82 #define UINT16_MAX (65535U)
85 #define UINT32_MAX (4294967295U)
88 #endif /* ! FLEXINT_H */
92 /* The "const" storage-class-modifier is valid. */
95 #else /* ! __cplusplus */
101 #endif /* __STDC__ */
102 #endif /* ! __cplusplus */
105 #define yyconst const
110 /* Returned upon end-of-file. */
113 /* Promotes a possibly negative, possibly signed char to an unsigned
114 * integer for use as an array index. If the signed char is negative,
115 * we want to instead treat it as an 8-bit unsigned char, hence the
118 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
120 /* Enter a start condition. This macro really ought to take a parameter,
121 * but we do it the disgusting crufty way forced on us by the ()-less
122 * definition of BEGIN.
124 #define BEGIN (yy_start) = 1 + 2 *
126 /* Translate the current start state into a value that can be later handed
127 * to BEGIN to return to the state. The YYSTATE alias is for lex
130 #define YY_START (((yy_start) - 1) / 2)
131 #define YYSTATE YY_START
133 /* Action number for EOF rule of a given start state. */
134 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
136 /* Special action meaning "start processing a new file". */
137 #define YY_NEW_FILE surf_parse_restart(surf_parse_in )
139 #define YY_END_OF_BUFFER_CHAR 0
141 /* Size of default input buffer. */
143 #define YY_BUF_SIZE 16384
146 /* The state buf must be large enough to hold one state per character in the main buffer.
148 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
150 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
151 #define YY_TYPEDEF_YY_BUFFER_STATE
152 typedef struct yy_buffer_state *YY_BUFFER_STATE;
155 extern int surf_parse_leng;
157 extern FILE *surf_parse_in, *surf_parse_out;
159 #define EOB_ACT_CONTINUE_SCAN 0
160 #define EOB_ACT_END_OF_FILE 1
161 #define EOB_ACT_LAST_MATCH 2
163 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
164 * access to the local variable yy_act. Since yyless() is a macro, it would break
165 * existing scanners that call yyless() from OUTSIDE surf_parse_lex.
166 * One obvious solution it to make yy_act a global. I tried that, and saw
167 * a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
168 * normally declared as a register variable-- so it is not worth it.
170 #define YY_LESS_LINENO(n) \
173 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
174 if ( surf_parse_text[yyl] == '\n' )\
175 --surf_parse_lineno;\
178 /* Return all but the first "n" matched characters back to the input stream. */
182 /* Undo effects of setting up surf_parse_text. */ \
183 int yyless_macro_arg = (n); \
184 YY_LESS_LINENO(yyless_macro_arg);\
185 *yy_cp = (yy_hold_char); \
186 YY_RESTORE_YY_MORE_OFFSET \
187 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
188 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
192 #define unput(c) yyunput( c, (yytext_ptr) )
194 /* The following is because we cannot portably get our hands on size_t
195 * (without autoconf's help, which isn't available because we want
196 * flex-generated scanners to compile on their own).
199 #ifndef YY_TYPEDEF_YY_SIZE_T
200 #define YY_TYPEDEF_YY_SIZE_T
201 typedef unsigned int yy_size_t;
204 #ifndef YY_STRUCT_YY_BUFFER_STATE
205 #define YY_STRUCT_YY_BUFFER_STATE
206 struct yy_buffer_state
210 char *yy_ch_buf; /* input buffer */
211 char *yy_buf_pos; /* current position in input buffer */
213 /* Size of input buffer in bytes, not including room for EOB
216 yy_size_t yy_buf_size;
218 /* Number of characters read into yy_ch_buf, not including EOB
223 /* Whether we "own" the buffer - i.e., we know we created it,
224 * and can realloc() it to grow it, and should free() it to
227 int yy_is_our_buffer;
229 /* Whether this is an "interactive" input source; if so, and
230 * if we're using stdio for input, then we want to use getc()
231 * instead of fread(), to make sure we stop fetching input after
234 int yy_is_interactive;
236 /* Whether we're considered to be at the beginning of a line.
237 * If so, '^' rules will be active on the next match, otherwise
242 int yy_bs_lineno; /**< The line count. */
243 int yy_bs_column; /**< The column count. */
245 /* Whether to try to fill the input buffer when we reach the
250 int yy_buffer_status;
252 #define YY_BUFFER_NEW 0
253 #define YY_BUFFER_NORMAL 1
254 /* When an EOF's been seen but there's still some text to process
255 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
256 * shouldn't try reading from the input source any more. We might
257 * still have a bunch of tokens to match, though, because of
258 * possible backing-up.
260 * When we actually see the EOF, we change the status to "new"
261 * (via surf_parse_restart()), so that the user can continue scanning by
262 * just pointing surf_parse_in at a new input file.
264 #define YY_BUFFER_EOF_PENDING 2
267 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
269 /* Stack of input buffers. */
270 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
271 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
272 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
274 /* We provide macros for accessing buffer states in case in the
275 * future we want to put the buffer states in a more general
278 * Returns the top of the stack, or NULL.
280 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
281 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
284 /* Same as previous macro, but useful when we know that the buffer stack is not
285 * NULL or when we need an lvalue. For internal use only.
287 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
289 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
290 static char yy_hold_char;
291 static int yy_n_chars; /* number of characters read into yy_ch_buf */
294 /* Points to current character in buffer. */
295 static char *yy_c_buf_p = (char *) 0;
296 static int yy_init = 0; /* whether we need to initialize */
297 static int yy_start = 0; /* start state number */
299 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
300 * instead of setting up a fresh surf_parse_in. A bit of a hack ...
302 static int yy_did_buffer_switch_on_eof;
304 void surf_parse_restart (FILE *input_file );
305 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer );
306 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size );
307 void surf_parse__delete_buffer (YY_BUFFER_STATE b );
308 void surf_parse__flush_buffer (YY_BUFFER_STATE b );
309 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer );
310 void surf_parse_pop_buffer_state (void );
312 static void surf_parse_ensure_buffer_stack (void );
313 static void surf_parse__load_buffer_state (void );
314 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file );
316 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
318 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size );
319 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str );
320 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len );
322 void *surf_parse_alloc (yy_size_t );
323 void *surf_parse_realloc (void *,yy_size_t );
324 void surf_parse_free (void * );
326 #define yy_new_buffer surf_parse__create_buffer
328 #define yy_set_interactive(is_interactive) \
330 if ( ! YY_CURRENT_BUFFER ){ \
331 surf_parse_ensure_buffer_stack (); \
332 YY_CURRENT_BUFFER_LVALUE = \
333 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
335 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
338 #define yy_set_bol(at_bol) \
340 if ( ! YY_CURRENT_BUFFER ){\
341 surf_parse_ensure_buffer_stack (); \
342 YY_CURRENT_BUFFER_LVALUE = \
343 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
345 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
348 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
350 /* Begin user sect3 */
352 #define surf_parse_wrap() 1
353 #define YY_SKIP_YYWRAP
355 typedef unsigned char YY_CHAR;
357 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
359 typedef int yy_state_type;
361 extern int surf_parse_lineno;
363 int surf_parse_lineno = 1;
365 extern char *surf_parse_text;
366 #define yytext_ptr surf_parse_text
368 static yy_state_type yy_get_previous_state (void );
369 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
370 static int yy_get_next_buffer (void );
371 static void yy_fatal_error (yyconst char msg[] );
373 /* Done after the current pattern has been matched and before the
374 * corresponding action - sets up surf_parse_text.
376 #define YY_DO_BEFORE_ACTION \
377 (yytext_ptr) = yy_bp; \
378 surf_parse_leng = (size_t) (yy_cp - yy_bp); \
379 (yy_hold_char) = *yy_cp; \
381 (yy_c_buf_p) = yy_cp;
383 #define YY_NUM_RULES 178
384 #define YY_END_OF_BUFFER 179
385 /* This struct is not used in this scanner,
386 but its presence is necessary. */
389 flex_int32_t yy_verify;
392 static yyconst flex_int16_t yy_accept[1345] =
394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
403 0, 0, 179, 177, 22, 10, 10, 22, 22, 157,
405 10, 157, 5, 6, 5, 8, 9, 8, 173, 165,
406 166, 174, 171, 174, 172, 176, 165, 166, 176, 177,
407 28, 10, 28, 28, 28, 26, 28, 32, 10, 32,
408 177, 32, 177, 38, 10, 38, 38, 38, 36, 38,
409 42, 10, 42, 42, 177, 68, 10, 68, 68, 68,
410 66, 68, 68, 68, 68, 68, 68, 72, 10, 72,
411 177, 96, 10, 96, 96, 96, 94, 96, 96, 96,
412 96, 100, 10, 100, 177, 116, 10, 116, 116, 116,
413 114, 116, 116, 116, 120, 10, 120, 177, 120, 126,
414 10, 126, 126, 126, 124, 126, 130, 10, 130, 177,
416 142, 10, 142, 142, 142, 140, 142, 142, 142, 142,
417 146, 10, 146, 177, 146, 152, 10, 152, 152, 152,
418 150, 152, 156, 10, 156, 174, 173, 10, 0, 2,
419 2, 0, 4, 7, 168, 167, 0, 0, 0, 0,
420 0, 0, 0, 27, 29, 29, 0, 0, 0, 0,
421 0, 0, 37, 39, 39, 0, 67, 69, 69, 69,
422 69, 69, 69, 69, 0, 95, 97, 97, 97, 97,
423 97, 97, 0, 115, 117, 117, 117, 117, 0, 0,
424 125, 127, 127, 0, 141, 143, 143, 143, 143, 143,
425 0, 0, 151, 153, 153, 0, 0, 0, 0, 0,
427 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
428 175, 0, 29, 0, 0, 0, 0, 0, 0, 0,
429 39, 0, 0, 69, 69, 69, 69, 69, 69, 0,
430 0, 97, 97, 97, 97, 97, 0, 0, 117, 117,
431 117, 0, 0, 0, 127, 0, 0, 143, 143, 143,
432 143, 0, 0, 0, 153, 0, 0, 0, 170, 0,
433 21, 1, 0, 0, 163, 0, 0, 0, 160, 159,
434 0, 0, 29, 0, 0, 31, 0, 43, 0, 0,
435 0, 0, 39, 0, 0, 41, 0, 69, 69, 69,
436 69, 69, 69, 0, 0, 71, 0, 97, 97, 97,
438 97, 97, 0, 0, 99, 0, 0, 0, 117, 0,
439 0, 0, 0, 119, 0, 0, 127, 0, 0, 129,
440 0, 143, 143, 143, 143, 0, 0, 145, 0, 0,
441 153, 0, 0, 155, 0, 0, 0, 0, 164, 158,
442 0, 0, 0, 29, 0, 43, 0, 0, 0, 0,
443 0, 0, 0, 69, 69, 69, 0, 0, 69, 69,
444 0, 97, 97, 0, 0, 97, 97, 0, 0, 105,
445 104, 117, 0, 103, 102, 0, 0, 0, 0, 0,
446 143, 0, 0, 143, 143, 0, 0, 153, 0, 0,
447 0, 0, 0, 12, 0, 161, 162, 0, 29, 0,
449 0, 0, 0, 101, 0, 35, 34, 0, 69, 69,
450 69, 0, 45, 44, 0, 0, 0, 0, 69, 0,
451 70, 97, 97, 0, 75, 74, 97, 0, 0, 97,
452 0, 117, 0, 0, 0, 123, 122, 0, 143, 0,
453 133, 132, 143, 143, 0, 0, 0, 0, 0, 0,
454 0, 0, 0, 11, 0, 29, 0, 0, 0, 0,
455 101, 0, 69, 69, 69, 0, 47, 46, 0, 0,
456 0, 69, 97, 97, 97, 0, 0, 0, 97, 0,
457 117, 0, 0, 0, 143, 143, 143, 0, 0, 0,
458 149, 148, 0, 0, 0, 0, 0, 0, 0, 0,
460 0, 33, 0, 131, 0, 69, 69, 69, 0, 0,
461 69, 97, 0, 0, 97, 97, 0, 0, 97, 0,
462 117, 0, 118, 0, 0, 143, 143, 143, 0, 0,
463 0, 0, 0, 0, 0, 0, 0, 25, 24, 0,
464 33, 0, 131, 0, 69, 69, 69, 0, 0, 0,
465 0, 69, 97, 0, 81, 80, 97, 97, 0, 0,
466 0, 0, 97, 0, 117, 0, 0, 0, 0, 143,
467 143, 0, 147, 0, 169, 0, 0, 0, 0, 0,
468 0, 0, 40, 69, 69, 69, 0, 53, 0, 52,
469 69, 0, 0, 97, 97, 97, 0, 85, 0, 84,
471 97, 0, 117, 0, 0, 0, 135, 134, 0, 0,
472 143, 0, 144, 147, 0, 0, 0, 0, 0, 0,
473 0, 0, 0, 0, 0, 0, 69, 69, 69, 55,
474 54, 0, 0, 0, 77, 76, 97, 97, 97, 87,
475 86, 0, 0, 0, 117, 117, 0, 0, 0, 139,
476 138, 0, 0, 0, 154, 0, 0, 0, 0, 0,
477 0, 0, 0, 0, 0, 0, 0, 69, 69, 69,
478 0, 57, 56, 97, 97, 97, 0, 89, 88, 0,
479 117, 117, 0, 0, 0, 137, 136, 0, 0, 0,
480 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
482 0, 69, 69, 69, 97, 0, 0, 97, 0, 117,
483 117, 0, 0, 0, 0, 0, 0, 0, 0, 0,
484 0, 0, 0, 0, 0, 73, 0, 49, 48, 69,
485 69, 69, 69, 97, 0, 83, 82, 97, 0, 0,
486 0, 117, 0, 0, 117, 121, 0, 0, 0, 0,
487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
488 0, 69, 69, 69, 69, 0, 0, 0, 0, 0,
489 98, 0, 109, 108, 117, 0, 107, 106, 117, 121,
490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
491 0, 0, 0, 0, 0, 0, 69, 69, 69, 69,
493 0, 79, 78, 0, 0, 0, 117, 117, 0, 128,
494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
495 12, 0, 12, 0, 0, 0, 69, 69, 69, 69,
496 0, 0, 0, 0, 117, 117, 0, 0, 0, 0,
497 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
498 0, 0, 0, 0, 0, 0, 69, 0, 0, 0,
499 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
500 0, 0, 0, 0, 0, 0, 0, 51, 50, 0,
501 61, 60, 0, 59, 58, 69, 0, 65, 64, 0,
502 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
504 0, 0, 0, 11, 0, 0, 69, 0, 0, 0,
505 0, 117, 117, 0, 0, 0, 0, 0, 0, 0,
506 0, 23, 0, 69, 0, 0, 0, 0, 117, 117,
507 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,
508 0, 69, 0, 0, 0, 0, 117, 117, 0, 0,
509 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
510 0, 0, 91, 0, 90, 117, 117, 0, 0, 0,
511 0, 0, 0, 0, 0, 0, 0, 0, 63, 62,
512 93, 92, 117, 117, 0, 0, 0, 0, 0, 0,
513 0, 0, 0, 0, 117, 117, 0, 0, 0, 0,
515 0, 0, 0, 0, 0, 0, 0, 0, 117, 117,
516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
517 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
518 0, 0, 0, 0, 0, 0, 0, 0, 117, 117,
519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
523 0, 0, 0, 0, 0, 0, 0, 113, 112, 0,
524 111, 110, 0, 0, 0, 0, 0, 0, 0, 0,
526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
529 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
530 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
532 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
533 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
534 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
535 0, 0, 0, 20, 0, 0, 0, 13, 0, 0,
537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
539 0, 0, 19, 0, 0, 0, 0, 0, 0, 14,
540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
544 static yyconst flex_int32_t yy_ec[256] =
546 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
547 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
548 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
549 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
550 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
551 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
552 17, 18, 19, 1, 20, 21, 22, 23, 24, 25,
553 14, 26, 27, 14, 14, 14, 28, 29, 30, 31,
554 14, 32, 33, 34, 14, 14, 14, 14, 35, 14,
555 36, 1, 37, 1, 38, 1, 39, 40, 41, 42,
557 43, 44, 45, 46, 47, 14, 48, 49, 50, 51,
558 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
559 62, 14, 1, 1, 1, 1, 1, 1, 1, 1,
560 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
561 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
562 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
563 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
564 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
565 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
566 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
568 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
569 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
570 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
571 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
572 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
576 static yyconst flex_int32_t yy_meta[63] =
578 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
579 3, 1, 4, 5, 1, 1, 1, 6, 1, 7,
580 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
581 5, 5, 5, 5, 5, 1, 1, 5, 7, 7,
582 7, 7, 7, 7, 5, 5, 5, 5, 5, 5,
583 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
587 static yyconst flex_int16_t yy_base[1401] =
589 0, 0, 0, 3, 6, 9, 24, 27, 11, 14,
590 15, 17, 29, 38, 45, 52, 59, 61, 67, 70,
591 98, 157, 73, 76, 116, 120, 123, 126, 175, 179,
592 182, 185, 216, 260, 234, 238, 241, 278, 282, 285,
593 289, 304, 307, 310, 326, 0, 387, 390, 393, 396,
594 412, 468, 430, 434, 437, 440, 524, 580, 486, 490,
595 493, 496, 542, 546, 549, 552, 598, 602, 636, 687,
596 605, 608, 654, 658, 738, 794, 661, 664, 705, 709,
597 712, 715, 756, 760, 763, 767, 850, 909, 812, 816,
598 833, 868, 3674, 3675, 3675, 91, 141, 47, 62, 3675,
600 144, 132, 3675, 3675, 3663, 3675, 3675, 3654, 3675, 3667,
601 3667, 836, 3675, 3675, 3675, 3675, 3665, 3665, 3630, 194,
602 3675, 150, 3648, 0, 136, 3675, 3622, 3675, 200, 888,
603 889, 195, 192, 3675, 206, 3646, 0, 187, 3675, 3616,
604 3675, 313, 942, 446, 803, 3675, 511, 3644, 0, 440,
605 3675, 3602, 3609, 3620, 3619, 3605, 3599, 3675, 518, 558,
606 717, 3675, 570, 3637, 0, 559, 3675, 3615, 3614, 3613,
607 92, 3675, 626, 614, 768, 3675, 679, 3633, 0, 615,
608 3675, 3594, 3599, 3593, 3675, 682, 877, 772, 715, 3675,
609 786, 3629, 0, 773, 3675, 3607, 3675, 822, 883, 878,
611 3675, 831, 3627, 0, 859, 3675, 3586, 3591, 3595, 3584,
612 3675, 843, 943, 918, 887, 3675, 947, 3622, 0, 872,
613 3675, 3600, 3675, 956, 951, 3633, 3600, 962, 34, 3575,
614 3675, 3625, 3616, 3675, 3675, 3675, 26, 32, 3576, 3575,
615 3573, 3612, 3580, 3675, 0, 3573, 3574, 3573, 3574, 3581,
616 3568, 3570, 3675, 0, 3572, 3573, 3675, 0, 3580, 3561,
617 3556, 3566, 3555, 3575, 3572, 3675, 0, 3561, 3554, 3560,
618 3570, 3569, 3556, 3675, 0, 3549, 3552, 3563, 3548, 3550,
619 3675, 0, 3551, 3545, 3675, 0, 3548, 3542, 3548, 3557,
620 3542, 3539, 3675, 0, 3544, 3553, 3555, 3572, 3571, 3578,
622 5, 3537, 3675, 75, 0, 3533, 3533, 3569, 3568, 3530,
623 3675, 3542, 3524, 969, 972, 3521, 3537, 3520, 3524, 3517,
624 3531, 976, 982, 3526, 3529, 3533, 3527, 3526, 3511, 999,
625 1002, 3525, 3523, 3522, 3509, 3506, 1005, 1008, 1011, 3523,
626 1027, 1032, 1035, 3503, 3517, 1038, 1043, 3518, 3501, 3508,
627 3501, 1055, 1060, 3510, 3496, 1063, 1066, 3531, 3675, 3534,
628 3675, 3675, 233, 3502, 3675, 3535, 3534, 3492, 3675, 3675,
629 3490, 3489, 3498, 1072, 1089, 3675, 1094, 1097, 3495, 3483,
630 3501, 3484, 1100, 1106, 1116, 3675, 1123, 3491, 3484, 3486,
631 1126, 3482, 3493, 1133, 1136, 3675, 1142, 3475, 3483, 1145,
633 3486, 3489, 1153, 1163, 3675, 1166, 1170, 1173, 3490, 1186,
634 1189, 1202, 1206, 3675, 1209, 3473, 1212, 1215, 1228, 3675,
635 1232, 3472, 1235, 3490, 3470, 1238, 1241, 3675, 1245, 3468,
636 3482, 1251, 1258, 3675, 1262, 3501, 122, 1268, 3675, 3675,
637 3508, 3507, 3477, 3468, 1271, 1275, 3461, 3466, 3474, 3473,
638 1279, 1289, 1297, 3476, 3470, 3455, 1300, 1307, 1316, 1319,
639 1322, 3465, 3470, 1327, 1339, 3459, 1335, 1347, 1352, 3675,
640 3675, 3452, 1360, 3675, 3675, 1368, 3465, 1372, 1375, 1388,
641 3460, 1391, 1394, 3449, 3467, 1408, 3454, 1411, 1414, 3483,
642 115, 3484, 1417, 3675, 3483, 3675, 3675, 3448, 3448, 1420,
644 3456, 3442, 3440, 1427, 1437, 3675, 3675, 1448, 3455, 3451,
645 3436, 1452, 3675, 3675, 1465, 1471, 1481, 1484, 3448, 1492,
646 3675, 3449, 3428, 1498, 3675, 3675, 3444, 1509, 1512, 3444,
647 1520, 3449, 1525, 3448, 1528, 3675, 3675, 1537, 3433, 1542,
648 3675, 3675, 3437, 3426, 1555, 3439, 1550, 1560, 1572, 3447,
649 66, 197, 153, 3675, 3425, 1575, 1579, 3436, 3430, 3421,
650 1582, 1585, 3429, 3420, 3429, 1598, 3675, 3675, 1606, 3443,
651 3442, 3424, 3413, 1615, 3431, 1631, 3438, 3437, 3419, 1621,
652 3413, 1626, 3421, 1639, 3412, 3412, 3414, 1643, 3409, 1646,
653 3675, 3675, 1660, 3439, 300, 281, 194, 3408, 1656, 1663,
655 1677, 1591, 3419, 1680, 1683, 3407, 3412, 3402, 296, 376,
656 3404, 3406, 1687, 1703, 3407, 3397, 379, 382, 3400, 1690,
657 3397, 1711, 3675, 3398, 1715, 1694, 3403, 3395, 1718, 3387,
658 1721, 3407, 1738, 238, 408, 3404, 1741, 3675, 3675, 1749,
659 1757, 3392, 1760, 1766, 3393, 3388, 3391, 3412, 3430, 3410,
660 3425, 3390, 1773, 1776, 3675, 3675, 3385, 3379, 3405, 3423,
661 3403, 3418, 3383, 1784, 3387, 3381, 1789, 1792, 1810, 1801,
662 3380, 1821, 1824, 1827, 3675, 1883, 241, 256, 3380, 1830,
663 3374, 1833, 3675, 3363, 3378, 3367, 3411, 3675, 3407, 3675,
664 1838, 1850, 1854, 3371, 3365, 3364, 3406, 3675, 3402, 3675,
666 1862, 1870, 896, 3360, 1873, 1890, 3675, 3675, 1878, 1900,
667 1908, 1911, 3675, 1867, 1924, 240, 429, 384, 162, 520,
668 439, 500, 449, 3366, 1929, 3357, 3345, 3363, 3360, 3675,
669 3675, 1937, 1942, 1953, 3675, 3675, 3357, 3360, 3355, 3675,
670 3675, 1961, 1964, 1972, 3345, 3345, 3356, 1977, 1980, 3675,
671 3675, 1989, 1994, 2005, 3675, 549, 73, 660, 558, 632,
672 505, 172, 734, 883, 3342, 2008, 3349, 2011, 3358, 3357,
673 2027, 3675, 3675, 3345, 2018, 3352, 2035, 3675, 3675, 2014,
674 3335, 3350, 3339, 2043, 2050, 3675, 3675, 617, 2060, 661,
675 959, 935, 862, 970, 614, 2064, 3348, 2067, 2070, 2073,
677 2085, 3344, 399, 3332, 3245, 2093, 2096, 3225, 2104, 2109,
678 2112, 3220, 2115, 711, 2128, 763, 561, 830, 855, 861,
679 2136, 2139, 2156, 3219, 2165, 2132, 2169, 3675, 3675, 3224,
680 3225, 3222, 3223, 2177, 2182, 3675, 3675, 2193, 2196, 2199,
681 2209, 3199, 2205, 2217, 3196, 2225, 2228, 973, 284, 775,
682 448, 915, 613, 2231, 2234, 2238, 2255, 2285, 2322, 3206,
683 2263, 3197, 3200, 3185, 3174, 2251, 2268, 2303, 2306, 2280,
684 3675, 2340, 3675, 3675, 3179, 2348, 3675, 3675, 3174, 2276,
685 2358, 981, 963, 1000, 1004, 1030, 1076, 2361, 1006, 2364,
686 1054, 41, 2394, 2431, 3163, 2423, 3168, 2993, 3009, 3006,
688 2381, 3675, 3675, 2412, 1046, 1055, 2991, 2990, 2389, 3675,
689 1059, 1071, 2451, 585, 1036, 2454, 1088, 1064, 1179, 492,
690 3040, 103, 3036, 2457, 2985, 2460, 2477, 2480, 2483, 2486,
691 3021, 3014, 3012, 3000, 2979, 2977, 2489, 708, 2502, 1065,
692 1093, 2506, 1145, 1140, 3000, 2986, 2979, 2512, 2857, 2515,
693 2523, 2539, 2534, 2550, 2558, 2561, 2845, 2574, 2577, 2791,
694 2791, 2766, 2729, 2678, 2665, 2585, 811, 1124, 951, 1183,
695 1233, 1162, 1176, 2670, 2564, 2590, 2593, 3675, 3675, 2603,
696 3675, 3675, 2611, 3675, 3675, 2539, 2619, 3675, 3675, 2538,
697 2496, 2481, 2434, 2281, 2267, 1270, 2627, 1189, 1135, 1316,
699 1294, 1290, 1317, 3675, 2266, 2630, 2198, 2177, 2169, 2163,
700 2124, 2046, 2000, 1314, 2637, 1349, 1104, 1143, 1367, 1266,
701 1386, 2420, 2647, 1901, 1877, 1884, 1639, 1603, 1560, 1503,
702 1429, 1409, 1415, 1364, 2650, 1416, 1381, 2654, 1391, 2657,
703 2660, 2667, 1512, 1483, 1420, 1371, 1263, 1242, 1418, 1441,
704 1461, 1463, 2671, 1203, 1507, 2677, 2688, 2697, 3675, 2705,
705 2708, 1196, 3675, 1141, 3675, 970, 680, 1532, 1487, 1515,
706 2716, 1435, 1210, 2721, 1491, 1543, 2724, 2727, 3675, 3675,
707 3675, 3675, 695, 692, 2741, 1547, 1656, 2744, 1335, 1444,
708 2752, 1538, 1553, 1485, 620, 570, 2762, 498, 719, 1595,
710 1598, 1474, 1460, 1692, 1698, 1620, 1710, 1369, 464, 419,
711 1717, 1765, 1618, 1638, 1713, 1731, 1596, 1719, 1739, 1788,
712 1737, 1799, 1587, 409, 369, 1792, 1831, 1653, 1829, 1843,
713 1865, 1780, 1900, 1882, 1903, 1783, 1844, 1899, 258, 187,
714 1917, 1932, 1716, 1879, 1925, 1981, 2770, 1943, 2006, 2016,
715 1935, 2030, 2065, 2773, 2779, 2040, 2083, 1959, 2037, 2102,
716 2103, 2783, 2791, 2126, 2131, 2106, 2127, 2795, 2800, 2812,
717 2803, 2820, 2164, 2187, 1802, 1931, 2225, 2245, 1984, 1986,
718 2828, 2295, 2298, 2159, 2206, 2831, 2839, 3675, 3675, 2848,
719 3675, 3675, 2338, 2354, 2086, 2293, 2227, 2329, 2278, 2359,
721 2074, 2337, 2356, 2402, 2410, 1987, 2133, 2424, 2447, 2119,
722 2362, 2484, 2511, 2244, 2314, 1782, 2539, 2555, 2296, 2514,
723 2371, 2453, 2593, 2608, 2856, 2456, 2459, 2401, 2505, 1712,
724 2516, 2526, 2556, 2582, 2529, 2572, 2624, 2679, 2860, 3675,
725 2528, 2620, 2390, 2583, 2357, 2675, 2678, 2629, 2658, 2592,
726 2669, 2684, 2722, 2742, 2749, 2481, 2687, 2232, 2794, 2826,
727 2863, 2792, 2809, 2829, 2837, 2745, 2676, 2720, 2790, 2873,
728 2866, 2810, 2883, 3675, 2838, 2855, 2874, 2880, 2891, 2872,
729 2885, 2904, 2912, 2820, 2879, 2915, 2921, 3675, 2884, 2893,
730 2864, 2881, 2938, 3675, 2916, 2918, 2941, 3675, 2894, 2903,
732 2913, 2914, 2920, 2928, 2931, 2932, 2929, 2930, 2934, 2935,
733 2948, 2946, 2734, 2939, 2940, 2945, 2975, 2943, 2947, 2962,
734 2958, 2992, 3675, 2951, 2957, 2995, 2963, 2968, 3012, 3675,
735 2991, 3000, 2982, 2985, 2971, 2972, 3001, 3002, 3015, 3013,
736 3032, 3035, 3675, 3675, 3053, 3060, 3067, 3074, 3081, 3088,
737 3095, 3102, 3109, 3116, 3123, 3130, 3137, 3144, 3151, 3158,
738 3165, 3172, 3179, 3186, 3193, 3200, 3205, 3210, 3215, 3220,
739 3225, 3230, 3235, 3240, 3247, 3250, 3253, 3256, 3259, 3262,
740 3265, 3268, 3271, 3278, 3282, 3288, 3294, 3300, 3306, 3312,
741 3318, 3324, 3330, 3337, 3344, 3351, 3358, 3365, 3372, 3379
745 static yyconst flex_int16_t yy_def[1401] =
747 1345, 1345, 1346, 1346, 1346, 1346, 1347, 1347, 1348, 1348,
748 1349, 1349, 1350, 1350, 1350, 1350, 1351, 1351, 1345, 1345,
749 1352, 1352, 1353, 1353, 1345, 1345, 1353, 1353, 1353, 1353,
750 1345, 1345, 1354, 1354, 1355, 1355, 1345, 1345, 1355, 1355,
751 1355, 1355, 1345, 1345, 1344, 45, 1356, 1356, 1345, 1345,
752 1357, 1357, 1358, 1358, 1345, 1345, 1359, 1359, 1360, 1360,
753 1345, 1345, 1360, 1360, 1360, 1360, 1345, 1345, 1361, 1361,
754 1362, 1362, 1345, 1345, 1363, 1363, 1364, 1364, 1345, 1345,
755 1364, 1364, 1364, 1364, 1345, 1345, 1365, 1365, 1366, 1366,
756 1350, 1350, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
758 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
759 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
760 1344, 1344, 1344, 1367, 1344, 1344, 1367, 1344, 1344, 1344,
761 1344, 1344, 1344, 1344, 1344, 1344, 1368, 1344, 1344, 1368,
762 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344,
763 1344, 1369, 1369, 1369, 1369, 1369, 1369, 1344, 1344, 1344,
764 1344, 1344, 1344, 1344, 1370, 1344, 1344, 1370, 1370, 1370,
765 1370, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1371, 1344,
766 1344, 1371, 1371, 1371, 1344, 1344, 1344, 1344, 1344, 1344,
767 1344, 1344, 1372, 1344, 1344, 1372, 1344, 1344, 1344, 1344,
769 1344, 1344, 1344, 1373, 1344, 1344, 1373, 1373, 1373, 1373,
770 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1374, 1344,
771 1344, 1374, 1344, 1344, 1344, 1344, 1344, 1344, 1375, 1344,
772 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
773 1344, 1344, 1344, 1344, 1367, 1367, 1376, 1344, 1344, 1344,
774 1344, 1344, 1344, 1368, 1368, 1377, 1344, 1369, 1369, 1369,
775 1369, 1369, 1369, 1369, 1378, 1344, 1370, 1370, 1370, 1370,
776 1370, 1370, 1379, 1344, 1371, 1371, 1371, 1371, 1380, 1344,
777 1344, 1372, 1372, 1381, 1344, 1373, 1373, 1373, 1373, 1373,
778 1382, 1344, 1344, 1374, 1374, 1383, 1344, 1344, 1384, 1344,
780 1384, 1344, 1344, 1344, 1385, 1344, 1344, 1344, 1344, 1344,
781 1344, 1344, 1367, 1386, 1386, 1344, 1344, 1344, 1344, 1344,
782 1368, 1387, 1387, 1369, 1369, 1369, 1369, 1369, 1369, 1388,
783 1388, 1370, 1370, 1370, 1370, 1370, 1389, 1389, 1371, 1371,
784 1371, 1390, 1390, 1344, 1372, 1391, 1391, 1373, 1373, 1373,
785 1373, 1392, 1392, 1344, 1374, 1393, 1393, 1344, 1344, 1384,
786 1344, 1344, 1384, 1344, 1344, 1385, 1344, 1344, 1344, 1344,
787 1344, 1344, 1367, 1344, 1386, 1344, 1386, 1344, 1344, 1344,
788 1344, 1344, 1368, 1344, 1387, 1344, 1387, 1369, 1369, 1369,
789 1369, 1369, 1369, 1344, 1388, 1344, 1388, 1370, 1370, 1370,
791 1370, 1370, 1344, 1389, 1344, 1389, 1344, 1344, 1371, 1344,
792 1344, 1344, 1390, 1344, 1390, 1344, 1372, 1344, 1391, 1344,
793 1391, 1373, 1373, 1373, 1373, 1344, 1392, 1344, 1392, 1344,
794 1374, 1344, 1393, 1344, 1393, 1344, 1384, 1394, 1344, 1344,
795 1344, 1344, 1344, 1367, 1386, 1344, 1344, 1344, 1344, 1344,
796 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1369, 1369,
797 1388, 1370, 1370, 1344, 1344, 1370, 1370, 1389, 1344, 1344,
798 1344, 1371, 1344, 1344, 1344, 1390, 1344, 1344, 1344, 1391,
799 1373, 1344, 1344, 1373, 1373, 1392, 1344, 1374, 1393, 1344,
800 1384, 1394, 1394, 1344, 1394, 1344, 1344, 1344, 1367, 1386,
802 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1387, 1369, 1369,
803 1369, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344,
804 1344, 1370, 1370, 1344, 1344, 1344, 1370, 1344, 1344, 1370,
805 1389, 1371, 1390, 1344, 1344, 1344, 1344, 1391, 1373, 1344,
806 1344, 1344, 1373, 1373, 1392, 1344, 1344, 1344, 1393, 1344,
807 1384, 1394, 1394, 1344, 1344, 1367, 1386, 1344, 1344, 1344,
808 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1344, 1344, 1344,
809 1344, 1369, 1370, 1370, 1370, 1344, 1344, 1344, 1370, 1389,
810 1371, 1390, 1344, 1391, 1373, 1373, 1373, 1392, 1344, 1344,
811 1344, 1344, 1393, 1344, 1384, 1394, 1394, 1344, 1344, 1344,
813 1386, 1344, 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344,
814 1369, 1370, 1344, 1344, 1370, 1370, 1344, 1344, 1370, 1389,
815 1371, 1344, 1344, 1344, 1391, 1373, 1373, 1373, 1392, 1344,
816 1393, 1344, 1384, 1394, 1394, 1344, 1344, 1344, 1344, 1386,
817 1344, 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1344,
818 1344, 1369, 1370, 1344, 1344, 1344, 1370, 1370, 1344, 1344,
819 1344, 1344, 1370, 1389, 1371, 1344, 1391, 1344, 1344, 1373,
820 1373, 1392, 1344, 1393, 1344, 1384, 1394, 1394, 1344, 1386,
821 1344, 1344, 1344, 1369, 1369, 1369, 1344, 1344, 1344, 1344,
822 1369, 1344, 1344, 1370, 1370, 1370, 1344, 1344, 1344, 1344,
824 1370, 1389, 1371, 1344, 1391, 1344, 1344, 1344, 1344, 1344,
825 1373, 1344, 1344, 1344, 1393, 1384, 1384, 1384, 1384, 1384,
826 1384, 1394, 1394, 1344, 1386, 1344, 1369, 1369, 1369, 1344,
827 1344, 1344, 1344, 1344, 1344, 1344, 1370, 1370, 1370, 1344,
828 1344, 1344, 1344, 1389, 1371, 1371, 1344, 1391, 1344, 1344,
829 1344, 1344, 1344, 1344, 1344, 1384, 1384, 1384, 1384, 1384,
830 1384, 1384, 1394, 1394, 1344, 1386, 1344, 1369, 1369, 1369,
831 1344, 1344, 1344, 1370, 1370, 1370, 1344, 1344, 1344, 1389,
832 1371, 1371, 1344, 1391, 1344, 1344, 1344, 1384, 1384, 1384,
833 1384, 1384, 1384, 1384, 1394, 1394, 1344, 1386, 1344, 1344,
835 1344, 1369, 1369, 1369, 1370, 1344, 1344, 1370, 1389, 1371,
836 1371, 1344, 1391, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
837 1394, 1394, 1394, 1344, 1386, 1344, 1344, 1344, 1344, 1369,
838 1369, 1369, 1369, 1370, 1344, 1344, 1344, 1370, 1389, 1344,
839 1344, 1371, 1344, 1344, 1371, 1344, 1391, 1384, 1384, 1384,
840 1384, 1384, 1384, 1384, 1394, 1394, 1394, 1395, 1396, 1344,
841 1386, 1369, 1369, 1369, 1369, 1344, 1344, 1344, 1344, 1344,
842 1344, 1344, 1344, 1344, 1371, 1344, 1344, 1344, 1371, 1344,
843 1391, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1394,
844 1397, 1398, 1395, 1396, 1344, 1386, 1369, 1369, 1369, 1369,
846 1344, 1344, 1344, 1344, 1344, 1344, 1371, 1371, 1344, 1344,
847 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1397, 1394,
848 1399, 1398, 1400, 1394, 1344, 1386, 1369, 1369, 1369, 1369,
849 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384,
850 1384, 1384, 1384, 1384, 1399, 1344, 1400, 1394, 1344, 1386,
851 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344, 1344, 1344,
852 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
853 1384, 1384, 1384, 1344, 1344, 1386, 1344, 1344, 1344, 1344,
854 1344, 1344, 1344, 1344, 1344, 1369, 1344, 1344, 1344, 1344,
855 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
857 1384, 1384, 1384, 1344, 1344, 1386, 1369, 1344, 1344, 1344,
858 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
859 1384, 1344, 1386, 1369, 1344, 1344, 1344, 1344, 1371, 1371,
860 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
861 1386, 1369, 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384,
862 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344,
863 1344, 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384,
864 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344,
865 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384, 1384,
866 1384, 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384,
868 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1371, 1371,
869 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
870 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
871 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1371, 1371,
872 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
873 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
874 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344,
875 1344, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
876 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344, 1344,
877 1344, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
879 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
880 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
881 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
882 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
883 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
884 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
885 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
886 1384, 1384, 1384, 1344, 1384, 1384, 1384, 1384, 1384, 1384,
887 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1384, 1384,
888 1384, 1384, 1384, 1344, 1384, 1384, 1384, 1344, 1384, 1384,
890 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
891 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
892 1384, 1384, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
893 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
894 1384, 1384, 1344, 0, 1344, 1344, 1344, 1344, 1344, 1344,
895 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
896 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
897 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
898 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
899 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344
903 static yyconst flex_int16_t yy_nxt[3738] =
905 1344, 96, 97, 96, 96, 97, 96, 96, 97, 96,
906 96, 97, 96, 104, 1344, 98, 104, 107, 98, 107,
907 105, 99, 361, 105, 99, 101, 97, 101, 101, 97,
908 101, 110, 111, 108, 363, 108, 112, 113, 304, 102,
909 110, 111, 102, 300, 114, 112, 113, 110, 111, 920,
910 115, 229, 112, 114, 110, 111, 301, 115, 923, 112,
911 114, 117, 118, 117, 118, 230, 229, 114, 97, 97,
912 97, 97, 97, 97, 129, 97, 129, 129, 97, 129,
913 231, 306, 120, 361, 307, 120, 305, 304, 130, 365,
914 361, 130, 228, 228, 228, 119, 595, 119, 121, 122,
916 97, 122, 121, 121, 121, 121, 121, 121, 121, 123,
917 121, 920, 121, 125, 121, 126, 121, 97, 97, 97,
918 923, 97, 97, 97, 129, 97, 129, 129, 97, 129,
919 789, 131, 361, 121, 121, 131, 232, 271, 130, 361,
920 232, 130, 228, 228, 228, 228, 228, 228, 272, 551,
921 231, 228, 228, 228, 231, 491, 127, 121, 122, 97,
922 122, 121, 121, 121, 121, 121, 121, 121, 123, 121,
923 494, 121, 125, 121, 126, 121, 129, 97, 129, 361,
924 129, 97, 129, 97, 97, 97, 97, 97, 97, 361,
925 132, 232, 121, 121, 132, 597, 232, 133, 232, 232,
927 133, 228, 228, 228, 759, 231, 247, 228, 228, 228,
928 231, 494, 231, 231, 494, 127, 134, 135, 97, 135,
929 134, 134, 134, 134, 134, 134, 134, 136, 134, 794,
930 134, 138, 134, 139, 134, 142, 97, 142, 249, 142,
931 97, 142, 97, 97, 97, 1155, 243, 596, 635, 143,
932 361, 134, 134, 143, 437, 494, 131, 361, 494, 140,
933 134, 135, 97, 135, 134, 134, 134, 134, 134, 134,
934 134, 136, 134, 494, 134, 138, 134, 139, 134, 97,
935 97, 97, 722, 142, 97, 142, 142, 97, 142, 677,
936 142, 97, 142, 131, 756, 134, 134, 143, 494, 1154,
938 143, 361, 723, 140, 144, 142, 97, 142, 97, 97,
939 97, 97, 97, 97, 228, 228, 228, 361, 883, 144,
940 648, 634, 145, 633, 649, 145, 146, 147, 97, 147,
941 146, 146, 146, 146, 146, 146, 146, 148, 146, 149,
942 146, 150, 146, 151, 146, 149, 149, 149, 149, 149,
943 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
944 149, 146, 146, 149, 152, 149, 149, 149, 149, 149,
945 149, 149, 153, 149, 149, 154, 155, 149, 156, 149,
946 149, 157, 149, 149, 149, 149, 149, 149, 159, 97,
947 159, 159, 97, 159, 97, 97, 97, 97, 97, 97,
949 650, 361, 160, 659, 651, 160, 661, 660, 161, 1140,
950 662, 161, 162, 163, 97, 163, 162, 162, 162, 162,
951 162, 162, 162, 164, 162, 494, 162, 166, 162, 167,
952 162, 173, 97, 173, 758, 173, 97, 173, 97, 97,
953 97, 97, 97, 97, 232, 174, 361, 162, 162, 174,
954 232, 168, 175, 831, 832, 175, 361, 256, 231, 1139,
955 169, 1125, 170, 678, 231, 361, 494, 171, 162, 163,
956 97, 163, 162, 162, 162, 162, 162, 162, 162, 164,
957 162, 757, 162, 166, 162, 167, 162, 186, 97, 186,
958 762, 186, 97, 186, 97, 97, 97, 97, 97, 97,
960 764, 187, 885, 162, 162, 187, 1124, 168, 188, 494,
961 495, 188, 228, 228, 228, 361, 169, 494, 170, 228,
962 228, 228, 361, 171, 176, 177, 97, 177, 176, 176,
963 176, 176, 176, 176, 176, 178, 176, 361, 176, 180,
964 176, 181, 176, 186, 97, 186, 763, 186, 97, 186,
965 186, 97, 186, 186, 97, 186, 793, 187, 1113, 176,
966 176, 187, 232, 232, 189, 182, 361, 189, 760, 265,
967 183, 228, 228, 228, 761, 361, 231, 231, 361, 184,
968 176, 177, 97, 177, 176, 176, 176, 176, 176, 176,
969 176, 178, 176, 788, 176, 180, 176, 181, 176, 97,
971 97, 97, 361, 97, 97, 97, 198, 97, 198, 198,
972 97, 198, 851, 188, 791, 176, 176, 188, 232, 232,
973 199, 182, 940, 199, 1110, 273, 183, 228, 228, 228,
974 361, 494, 231, 231, 361, 184, 190, 191, 97, 191,
975 190, 190, 190, 190, 190, 190, 190, 192, 190, 361,
976 190, 194, 190, 195, 190, 97, 97, 97, 821, 97,
977 97, 97, 212, 97, 212, 212, 97, 212, 887, 200,
978 792, 190, 190, 200, 814, 1109, 213, 361, 361, 213,
979 228, 228, 228, 228, 228, 228, 196, 190, 191, 97,
980 191, 190, 190, 190, 190, 190, 190, 190, 192, 190,
982 790, 190, 194, 190, 195, 190, 97, 97, 97, 816,
983 97, 97, 97, 212, 97, 212, 212, 97, 212, 232,
984 214, 232, 190, 190, 214, 361, 279, 213, 361, 1096,
985 213, 967, 1095, 231, 1084, 231, 361, 196, 201, 202,
986 97, 202, 201, 201, 201, 201, 201, 201, 201, 203,
987 201, 494, 201, 205, 201, 206, 201, 212, 97, 212,
988 848, 212, 97, 212, 97, 97, 97, 250, 97, 97,
989 97, 215, 232, 201, 201, 215, 232, 232, 214, 1114,
990 361, 207, 214, 208, 795, 209, 231, 228, 228, 228,
991 231, 231, 361, 210, 201, 202, 97, 202, 201, 201,
993 201, 201, 201, 201, 201, 203, 201, 232, 201, 205,
994 201, 206, 201, 224, 97, 224, 884, 224, 97, 224,
995 850, 231, 252, 228, 228, 228, 280, 225, 361, 201,
996 201, 225, 228, 228, 228, 110, 111, 207, 997, 208,
997 112, 209, 237, 248, 228, 228, 228, 361, 226, 210,
998 216, 217, 97, 217, 216, 216, 216, 216, 216, 216,
999 216, 218, 216, 232, 216, 220, 216, 221, 216, 227,
1000 110, 111, 361, 852, 238, 112, 232, 231, 361, 361,
1001 239, 232, 232, 226, 240, 216, 216, 232, 279, 241,
1002 231, 232, 232, 232, 284, 231, 231, 853, 291, 247,
1004 494, 231, 819, 854, 227, 231, 231, 231, 222, 216,
1005 217, 97, 217, 216, 216, 216, 216, 216, 216, 216,
1006 218, 216, 232, 216, 220, 216, 221, 216, 248, 248,
1007 251, 280, 361, 796, 249, 249, 231, 745, 250, 250,
1008 251, 251, 252, 252, 216, 216, 232, 232, 228, 228,
1009 228, 746, 361, 256, 291, 232, 292, 228, 228, 228,
1010 231, 231, 296, 228, 228, 228, 886, 222, 361, 231,
1011 374, 374, 374, 374, 374, 374, 361, 384, 384, 384,
1012 361, 292, 248, 384, 384, 384, 376, 361, 249, 376,
1013 361, 818, 250, 386, 251, 912, 252, 999, 361, 386,
1015 394, 394, 394, 394, 394, 394, 403, 403, 403, 403,
1016 403, 403, 407, 407, 407, 882, 396, 361, 817, 396,
1017 377, 361, 405, 361, 1083, 405, 820, 408, 410, 410,
1018 410, 911, 387, 412, 412, 412, 412, 412, 412, 418,
1019 418, 418, 913, 411, 418, 418, 418, 361, 918, 414,
1020 406, 914, 414, 361, 397, 420, 426, 426, 426, 920,
1021 420, 426, 426, 426, 432, 432, 432, 432, 432, 432,
1022 931, 921, 428, 374, 374, 374, 361, 428, 932, 933,
1023 434, 361, 361, 434, 915, 941, 415, 934, 361, 376,
1024 374, 374, 374, 361, 421, 374, 374, 374, 446, 446,
1026 446, 451, 451, 451, 938, 361, 376, 384, 384, 384,
1027 361, 376, 944, 969, 429, 937, 452, 384, 384, 384,
1028 435, 361, 943, 386, 384, 384, 384, 457, 457, 457,
1029 970, 916, 445, 386, 394, 394, 394, 394, 394, 394,
1030 386, 361, 458, 394, 394, 394, 464, 464, 464, 1082,
1031 396, 1035, 361, 396, 403, 403, 403, 361, 998, 396,
1032 361, 465, 361, 453, 403, 403, 403, 403, 403, 403,
1033 405, 407, 407, 407, 469, 469, 469, 972, 470, 361,
1034 405, 471, 973, 405, 920, 1017, 408, 410, 410, 410,
1035 473, 473, 473, 361, 474, 1002, 921, 475, 1036, 461,
1037 361, 1081, 411, 412, 412, 412, 361, 412, 412, 412,
1038 412, 412, 412, 478, 478, 478, 418, 418, 418, 414,
1039 361, 1016, 468, 414, 1000, 1003, 414, 361, 479, 418,
1040 418, 418, 420, 418, 418, 418, 482, 482, 482, 426,
1041 426, 426, 426, 426, 426, 420, 426, 426, 426, 420,
1042 361, 483, 432, 432, 432, 428, 1090, 1073, 428, 432,
1043 432, 432, 428, 432, 432, 432, 476, 1001, 434, 493,
1044 493, 493, 374, 374, 374, 434, 446, 446, 446, 434,
1045 451, 451, 451, 361, 1067, 494, 495, 361, 376, 480,
1046 505, 505, 505, 1038, 506, 452, 486, 507, 384, 384,
1048 384, 457, 457, 457, 1014, 1066, 489, 361, 512, 512,
1049 512, 361, 513, 1020, 386, 514, 458, 515, 515, 515,
1050 517, 517, 517, 520, 520, 520, 1019, 500, 464, 464,
1051 464, 361, 516, 361, 361, 518, 528, 528, 528, 521,
1052 524, 524, 524, 465, 525, 508, 1031, 526, 403, 403,
1053 403, 529, 361, 469, 469, 469, 519, 470, 1018, 1021,
1054 471, 473, 473, 473, 405, 474, 361, 1102, 475, 412,
1055 412, 412, 530, 478, 478, 478, 535, 535, 535, 1065,
1056 536, 361, 1034, 537, 361, 414, 361, 1052, 479, 418,
1057 418, 418, 482, 482, 482, 540, 540, 540, 361, 541,
1059 1037, 1123, 542, 361, 1055, 420, 531, 483, 361, 426,
1060 426, 426, 547, 547, 547, 432, 432, 432, 493, 493,
1061 493, 374, 374, 374, 533, 428, 361, 548, 561, 561,
1062 561, 434, 361, 361, 494, 361, 1039, 376, 505, 505,
1063 505, 1068, 506, 1064, 538, 507, 361, 1057, 545, 384,
1064 384, 384, 361, 512, 512, 512, 1054, 513, 361, 552,
1065 514, 361, 1049, 557, 1050, 386, 515, 515, 515, 1089,
1066 1051, 549, 566, 566, 566, 553, 567, 361, 361, 568,
1067 361, 516, 517, 517, 517, 569, 569, 569, 1063, 570,
1068 1071, 361, 571, 520, 520, 520, 1103, 518, 1069, 524,
1070 524, 524, 361, 525, 361, 562, 526, 1117, 361, 521,
1071 528, 528, 528, 576, 576, 576, 1118, 577, 1070, 1108,
1072 578, 403, 403, 403, 361, 529, 412, 412, 412, 535,
1073 535, 535, 361, 536, 1074, 1062, 537, 405, 418, 418,
1074 418, 1086, 414, 540, 540, 540, 1092, 541, 1048, 361,
1075 542, 547, 547, 547, 420, 361, 426, 426, 426, 1085,
1076 361, 590, 590, 590, 361, 591, 548, 582, 592, 1087,
1077 361, 580, 428, 432, 432, 432, 599, 599, 599, 584,
1078 374, 374, 374, 561, 561, 561, 384, 384, 384, 434,
1079 1098, 600, 641, 641, 641, 1106, 376, 588, 1093, 566,
1081 566, 566, 386, 567, 361, 1047, 568, 569, 569, 569,
1082 1107, 570, 361, 361, 571, 361, 613, 613, 613, 1132,
1083 1138, 593, 403, 403, 403, 1046, 605, 622, 622, 622,
1084 601, 614, 576, 576, 576, 361, 577, 361, 405, 578,
1085 418, 418, 418, 623, 426, 426, 426, 590, 590, 590,
1086 1115, 591, 615, 1116, 592, 361, 420, 599, 599, 599,
1087 428, 432, 432, 432, 637, 637, 637, 1128, 638, 1045,
1088 361, 639, 600, 361, 1121, 620, 625, 434, 374, 374,
1089 374, 643, 643, 643, 384, 384, 384, 1129, 613, 613,
1090 613, 403, 403, 403, 376, 668, 668, 668, 629, 1099,
1092 386, 1143, 631, 614, 654, 654, 654, 405, 655, 361,
1093 669, 656, 622, 622, 622, 361, 418, 418, 418, 426,
1094 426, 426, 432, 432, 432, 644, 1158, 361, 623, 361,
1095 361, 640, 420, 361, 361, 428, 361, 664, 434, 676,
1096 676, 676, 637, 637, 637, 1245, 638, 1119, 361, 639,
1097 374, 374, 374, 1120, 361, 361, 361, 667, 641, 641,
1098 641, 643, 643, 643, 1122, 1133, 376, 682, 682, 682,
1099 1130, 674, 1126, 672, 692, 692, 692, 654, 654, 654,
1100 1136, 655, 361, 683, 656, 403, 403, 403, 1131, 693,
1101 418, 418, 418, 668, 668, 668, 1134, 361, 680, 361,
1103 361, 405, 709, 709, 709, 361, 420, 1147, 669, 361,
1104 694, 706, 706, 706, 1230, 707, 361, 710, 708, 361,
1105 1127, 702, 712, 712, 712, 714, 714, 714, 432, 432,
1106 432, 374, 374, 374, 682, 682, 682, 705, 713, 732,
1107 732, 732, 1137, 1151, 434, 1135, 361, 376, 361, 1141,
1108 683, 692, 692, 692, 733, 734, 734, 734, 1195, 735,
1109 361, 361, 736, 742, 742, 742, 693, 725, 714, 714,
1110 714, 403, 403, 403, 418, 418, 418, 1144, 743, 709,
1111 709, 709, 361, 715, 676, 676, 676, 405, 1142, 1159,
1112 420, 706, 706, 706, 710, 707, 361, 1145, 708, 361,
1114 361, 749, 749, 749, 1152, 750, 1044, 1043, 751, 752,
1115 752, 752, 712, 712, 712, 748, 361, 361, 744, 1146,
1116 361, 716, 1153, 717, 753, 754, 754, 754, 713, 718,
1117 374, 374, 374, 719, 361, 720, 1149, 721, 732, 732,
1118 732, 755, 361, 771, 771, 771, 376, 772, 361, 361,
1119 773, 1148, 361, 733, 734, 734, 734, 1150, 735, 1042,
1120 361, 736, 742, 742, 742, 777, 777, 777, 1160, 778,
1121 766, 1156, 779, 403, 403, 403, 361, 743, 418, 418,
1122 418, 749, 749, 749, 1166, 750, 1157, 1196, 751, 405,
1123 752, 752, 752, 1163, 420, 785, 785, 785, 361, 786,
1125 1175, 361, 787, 361, 361, 753, 754, 754, 754, 374,
1126 374, 374, 800, 800, 800, 403, 403, 403, 780, 806,
1127 806, 806, 755, 361, 1161, 376, 784, 801, 771, 771,
1128 771, 405, 772, 361, 807, 773, 777, 777, 777, 1199,
1129 778, 1200, 1221, 779, 418, 418, 418, 361, 802, 1164,
1130 798, 785, 785, 785, 361, 786, 1030, 361, 787, 1165,
1131 420, 815, 815, 815, 809, 822, 822, 822, 374, 374,
1132 374, 826, 826, 826, 800, 800, 800, 361, 1176, 1167,
1133 823, 494, 361, 1173, 376, 813, 827, 827, 827, 801,
1134 828, 361, 1168, 829, 806, 806, 806, 835, 835, 835,
1136 361, 836, 1029, 361, 837, 403, 403, 403, 1216, 807,
1137 840, 840, 840, 843, 843, 843, 418, 418, 418, 361,
1138 361, 405, 825, 361, 1225, 841, 1174, 1210, 844, 815,
1139 815, 815, 420, 826, 826, 826, 361, 855, 855, 855,
1140 822, 822, 822, 361, 361, 361, 842, 1028, 361, 845,
1141 361, 839, 856, 494, 1184, 823, 494, 857, 857, 857,
1142 849, 858, 1177, 1178, 859, 847, 374, 374, 374, 1204,
1143 827, 827, 827, 494, 828, 1185, 361, 829, 866, 866,
1144 866, 361, 376, 835, 835, 835, 1182, 836, 1222, 1027,
1145 837, 1183, 1026, 867, 868, 868, 868, 870, 870, 870,
1147 840, 840, 840, 1025, 361, 861, 843, 843, 843, 869,
1148 872, 872, 872, 871, 873, 841, 1205, 874, 876, 876,
1149 876, 844, 877, 361, 1193, 878, 880, 880, 880, 418,
1150 418, 418, 888, 888, 888, 855, 855, 855, 1024, 890,
1151 890, 890, 361, 891, 361, 420, 892, 1194, 361, 361,
1152 856, 494, 866, 866, 866, 494, 857, 857, 857, 1270,
1153 858, 361, 361, 859, 374, 374, 374, 867, 889, 901,
1154 901, 901, 494, 902, 1197, 1212, 903, 880, 880, 880,
1155 376, 870, 870, 870, 881, 492, 492, 492, 492, 492,
1156 492, 492, 492, 492, 1198, 361, 492, 871, 1228, 492,
1158 492, 492, 494, 492, 868, 868, 868, 904, 904, 904,
1159 361, 905, 361, 361, 906, 361, 1022, 896, 1013, 869,
1160 492, 492, 492, 492, 492, 492, 492, 492, 492, 492,
1161 492, 361, 1012, 492, 1211, 1214, 492, 492, 492, 494,
1162 492, 872, 872, 872, 1202, 873, 361, 1203, 874, 876,
1163 876, 876, 1233, 877, 361, 361, 878, 492, 492, 909,
1164 909, 909, 888, 888, 888, 890, 890, 890, 1229, 891,
1165 1225, 361, 892, 361, 361, 910, 361, 1213, 361, 361,
1166 1258, 494, 901, 901, 901, 1217, 902, 1208, 361, 903,
1167 909, 909, 909, 917, 492, 492, 492, 492, 492, 924,
1169 492, 492, 492, 1209, 1218, 492, 910, 361, 492, 492,
1170 492, 494, 492, 904, 904, 904, 1215, 905, 361, 361,
1171 906, 1040, 1040, 1040, 374, 374, 374, 361, 1235, 492,
1172 492, 492, 492, 492, 492, 492, 492, 492, 492, 924,
1173 376, 361, 492, 1219, 1243, 492, 492, 492, 494, 492,
1174 1256, 1220, 939, 939, 939, 942, 942, 942, 948, 948,
1175 948, 374, 374, 374, 361, 1011, 492, 492, 361, 926,
1176 361, 361, 1223, 361, 494, 495, 361, 376, 951, 951,
1177 951, 953, 953, 953, 955, 955, 955, 958, 958, 958,
1178 966, 966, 966, 952, 1226, 1224, 954, 1241, 361, 956,
1180 1242, 361, 959, 939, 939, 939, 361, 942, 942, 942,
1181 1236, 1010, 950, 948, 948, 948, 374, 374, 374, 361,
1182 957, 1227, 361, 361, 951, 951, 951, 1009, 361, 494,
1183 1268, 361, 376, 361, 968, 953, 953, 953, 971, 952,
1184 977, 977, 977, 361, 978, 361, 361, 979, 1244, 1231,
1185 954, 980, 980, 980, 552, 981, 361, 1246, 982, 955,
1186 955, 955, 983, 983, 983, 1232, 984, 1247, 1008, 985,
1187 1234, 976, 361, 361, 956, 958, 958, 958, 987, 987,
1188 987, 1007, 988, 1250, 1254, 989, 966, 966, 966, 361,
1189 959, 374, 374, 374, 977, 977, 977, 1248, 978, 361,
1191 361, 979, 361, 1237, 980, 980, 980, 376, 981, 361,
1192 361, 982, 983, 983, 983, 1005, 984, 996, 1238, 985,
1193 987, 987, 987, 1249, 988, 361, 1251, 989, 1015, 1015,
1194 1015, 374, 374, 374, 1261, 1262, 1006, 361, 1015, 1015,
1195 1015, 361, 1032, 1257, 361, 1033, 361, 376, 374, 374,
1196 374, 1053, 1053, 1053, 361, 1056, 1056, 1056, 1040, 1040,
1197 1040, 1058, 1058, 1058, 376, 1252, 1261, 361, 1060, 1060,
1198 1060, 361, 1053, 1053, 1053, 361, 1255, 1059, 1056, 1056,
1199 1056, 1023, 1075, 1061, 1279, 1076, 361, 1004, 361, 1077,
1200 1077, 1077, 361, 361, 361, 361, 361, 1041, 1058, 1058,
1202 1058, 361, 995, 1072, 361, 361, 1060, 1060, 1060, 1078,
1203 1078, 1078, 1263, 1079, 1059, 994, 1080, 1088, 1088, 1088,
1204 1253, 1061, 1091, 1091, 1091, 1077, 1077, 1077, 1078, 1078,
1205 1078, 1259, 1079, 361, 1260, 1080, 1269, 361, 361, 361,
1206 1264, 361, 1097, 1097, 1097, 1088, 1088, 1088, 993, 1100,
1207 1279, 361, 1101, 1091, 1091, 1091, 1094, 1104, 361, 361,
1208 1105, 361, 361, 1097, 1097, 1097, 361, 1111, 1280, 361,
1209 1112, 1162, 1162, 1162, 1169, 1169, 1169, 1318, 1265, 361,
1210 1171, 1171, 1171, 1266, 1162, 1162, 1162, 361, 1179, 1170,
1211 1267, 1180, 1181, 1181, 1181, 1172, 1186, 1186, 1186, 992,
1213 361, 1169, 1169, 1169, 1171, 1171, 1171, 361, 361, 361,
1214 991, 361, 361, 1187, 1187, 1187, 1170, 1188, 1283, 1172,
1215 1189, 1190, 1190, 1190, 990, 1191, 361, 361, 1192, 1181,
1216 1181, 1181, 1186, 1186, 1186, 1271, 1206, 361, 1281, 1207,
1217 1187, 1187, 1187, 361, 1188, 361, 361, 1189, 361, 1190,
1218 1190, 1190, 1275, 1191, 361, 361, 1192, 1239, 1239, 1239,
1219 1201, 1239, 1239, 1239, 1273, 1273, 1273, 1272, 1295, 1276,
1220 1277, 1283, 361, 1240, 1282, 1282, 1282, 1240, 1278, 1286,
1221 1274, 361, 1289, 361, 1273, 1273, 1273, 1284, 1286, 361,
1222 361, 361, 1287, 1287, 1287, 1290, 361, 361, 361, 986,
1224 1274, 361, 361, 975, 1285, 1282, 1282, 1282, 1288, 1291,
1225 361, 361, 1292, 1293, 1293, 1293, 1297, 1297, 1297, 1301,
1226 361, 361, 1287, 1287, 1287, 1299, 1303, 1296, 1304, 1294,
1227 361, 361, 1298, 361, 1300, 361, 1302, 361, 1288, 1293,
1228 1293, 1293, 1297, 1297, 1297, 361, 361, 361, 361, 361,
1229 1305, 361, 361, 1317, 1317, 1294, 361, 361, 1298, 1306,
1230 361, 1309, 361, 361, 361, 361, 1326, 1326, 361, 1310,
1231 1307, 1308, 1311, 1312, 361, 361, 1322, 1322, 1322, 361,
1232 361, 1320, 1319, 1313, 1314, 361, 1321, 946, 361, 361,
1233 1315, 1316, 1323, 1322, 1322, 1322, 1329, 1329, 1329, 361,
1235 1327, 1333, 361, 1324, 974, 946, 1328, 1325, 361, 1323,
1236 1334, 1331, 1330, 1329, 1329, 1329, 1332, 361, 361, 361,
1237 1341, 1341, 965, 1335, 964, 963, 1336, 1337, 1338, 1330,
1238 361, 962, 361, 1342, 1342, 1342, 1342, 1342, 1342, 961,
1239 960, 949, 1339, 1340, 946, 946, 936, 935, 930, 1343,
1240 929, 928, 1343, 94, 94, 94, 94, 94, 94, 94,
1241 95, 95, 95, 95, 95, 95, 95, 100, 100, 100,
1242 100, 100, 100, 100, 103, 103, 103, 103, 103, 103,
1243 103, 106, 106, 106, 106, 106, 106, 106, 109, 109,
1244 109, 109, 109, 109, 109, 116, 116, 116, 116, 116,
1246 116, 116, 124, 124, 124, 124, 124, 124, 124, 128,
1247 128, 128, 128, 128, 128, 128, 137, 137, 137, 137,
1248 137, 137, 137, 141, 141, 141, 141, 141, 141, 141,
1249 158, 158, 158, 158, 158, 158, 158, 165, 165, 165,
1250 165, 165, 165, 165, 172, 172, 172, 172, 172, 172,
1251 172, 179, 179, 179, 179, 179, 179, 179, 185, 185,
1252 185, 185, 185, 185, 185, 193, 193, 193, 193, 193,
1253 193, 193, 197, 197, 197, 197, 197, 197, 197, 204,
1254 204, 204, 204, 204, 204, 204, 211, 211, 211, 211,
1255 211, 211, 211, 219, 219, 219, 219, 219, 219, 219,
1257 223, 223, 223, 223, 223, 223, 223, 245, 245, 245,
1258 927, 245, 254, 254, 254, 925, 254, 258, 258, 258,
1259 908, 258, 267, 267, 267, 907, 267, 275, 275, 275,
1260 900, 275, 282, 282, 282, 899, 282, 286, 286, 286,
1261 898, 286, 294, 294, 294, 897, 294, 299, 299, 299,
1262 299, 299, 895, 299, 314, 879, 314, 322, 875, 322,
1263 330, 865, 330, 337, 864, 337, 342, 863, 342, 346,
1264 862, 346, 352, 860, 352, 356, 846, 356, 360, 360,
1265 360, 360, 360, 360, 360, 366, 838, 834, 366, 375,
1266 375, 375, 375, 375, 375, 385, 385, 385, 385, 385,
1268 385, 395, 395, 395, 395, 395, 395, 404, 404, 404,
1269 404, 404, 404, 413, 413, 413, 413, 413, 413, 419,
1270 419, 419, 419, 419, 419, 427, 427, 427, 427, 427,
1271 427, 433, 433, 433, 433, 433, 433, 492, 492, 492,
1272 492, 492, 492, 492, 893, 893, 893, 893, 893, 893,
1273 893, 894, 894, 894, 894, 894, 894, 894, 919, 919,
1274 919, 919, 919, 919, 919, 922, 922, 922, 922, 922,
1275 922, 922, 945, 945, 945, 945, 945, 945, 945, 947,
1276 947, 947, 947, 947, 947, 947, 833, 830, 824, 812,
1277 811, 810, 808, 805, 804, 803, 799, 797, 783, 782,
1279 781, 776, 775, 774, 770, 769, 768, 767, 765, 747,
1280 741, 740, 739, 738, 737, 731, 730, 729, 728, 727,
1281 726, 724, 711, 704, 703, 701, 700, 699, 698, 697,
1282 696, 695, 691, 690, 689, 688, 687, 686, 685, 684,
1283 681, 679, 675, 673, 671, 670, 666, 665, 663, 658,
1284 657, 653, 652, 647, 646, 645, 642, 636, 632, 630,
1285 628, 627, 626, 624, 621, 619, 618, 617, 616, 612,
1286 611, 610, 609, 608, 607, 606, 604, 603, 602, 598,
1287 594, 589, 587, 586, 585, 583, 581, 579, 575, 574,
1288 573, 572, 565, 564, 563, 560, 559, 558, 556, 555,
1290 554, 494, 550, 546, 544, 543, 539, 534, 532, 527,
1291 523, 522, 511, 510, 509, 504, 503, 502, 501, 499,
1292 498, 497, 496, 490, 488, 487, 485, 484, 481, 477,
1293 472, 467, 466, 463, 462, 460, 459, 456, 455, 454,
1294 450, 449, 448, 447, 444, 443, 442, 441, 440, 439,
1295 438, 361, 436, 431, 430, 425, 424, 423, 422, 417,
1296 416, 409, 402, 401, 400, 399, 398, 393, 392, 391,
1297 390, 389, 388, 383, 382, 381, 380, 379, 378, 373,
1298 372, 371, 370, 369, 368, 367, 364, 362, 361, 359,
1299 358, 357, 355, 354, 353, 351, 350, 349, 348, 347,
1301 345, 344, 343, 341, 340, 339, 338, 336, 335, 334,
1302 333, 332, 331, 329, 328, 327, 326, 325, 324, 323,
1303 321, 320, 319, 318, 317, 316, 315, 313, 312, 311,
1304 310, 309, 308, 303, 300, 302, 298, 297, 295, 293,
1305 290, 289, 288, 287, 285, 283, 281, 278, 277, 276,
1306 274, 270, 269, 268, 266, 264, 263, 262, 261, 260,
1307 259, 257, 255, 253, 246, 244, 242, 236, 235, 236,
1308 235, 234, 233, 1344, 93, 1344, 1344, 1344, 1344, 1344,
1309 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1310 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1312 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1313 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1314 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1315 1344, 1344, 1344, 1344, 1344, 1344, 1344
1318 static yyconst flex_int16_t yy_chk[3738] =
1320 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1321 6, 6, 6, 9, 0, 3, 10, 11, 4, 12,
1322 9, 5, 301, 10, 6, 7, 7, 7, 8, 8,
1323 8, 13, 13, 11, 301, 12, 13, 13, 237, 7,
1324 14, 14, 8, 229, 13, 14, 14, 15, 15, 892,
1325 15, 98, 15, 14, 16, 16, 229, 16, 892, 16,
1326 15, 17, 17, 18, 18, 98, 99, 16, 19, 19,
1327 19, 20, 20, 20, 23, 23, 23, 24, 24, 24,
1328 99, 238, 19, 551, 238, 20, 237, 304, 23, 304,
1329 757, 24, 96, 96, 96, 17, 551, 18, 21, 21,
1331 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1332 21, 922, 21, 21, 21, 21, 21, 25, 25, 25,
1333 922, 26, 26, 26, 27, 27, 27, 28, 28, 28,
1334 757, 25, 491, 21, 21, 26, 102, 171, 27, 437,
1335 125, 28, 97, 97, 97, 101, 101, 101, 171, 491,
1336 102, 122, 122, 122, 125, 437, 21, 22, 22, 22,
1337 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1338 553, 22, 22, 22, 22, 22, 29, 29, 29, 719,
1339 30, 30, 30, 31, 31, 31, 32, 32, 32, 762,
1340 29, 138, 22, 22, 30, 553, 133, 31, 120, 132,
1342 32, 129, 129, 129, 719, 138, 132, 135, 135, 135,
1343 133, 597, 120, 132, 552, 22, 33, 33, 33, 33,
1344 33, 33, 33, 33, 33, 33, 33, 33, 33, 762,
1345 33, 33, 33, 33, 33, 35, 35, 35, 133, 36,
1346 36, 36, 37, 37, 37, 1140, 120, 552, 597, 35,
1347 363, 33, 33, 36, 363, 634, 37, 716, 677, 33,
1348 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
1349 34, 34, 34, 678, 34, 34, 34, 34, 34, 38,
1350 38, 38, 677, 39, 39, 39, 40, 40, 40, 634,
1351 41, 41, 41, 38, 716, 34, 34, 39, 596, 1139,
1353 40, 849, 678, 34, 41, 42, 42, 42, 43, 43,
1354 43, 44, 44, 44, 142, 142, 142, 595, 849, 42,
1355 609, 596, 43, 595, 609, 44, 45, 45, 45, 45,
1356 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1357 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1358 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1359 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1360 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1361 45, 45, 45, 45, 45, 45, 45, 45, 47, 47,
1362 47, 48, 48, 48, 49, 49, 49, 50, 50, 50,
1364 610, 718, 47, 617, 610, 48, 618, 617, 49, 1125,
1365 618, 50, 51, 51, 51, 51, 51, 51, 51, 51,
1366 51, 51, 51, 51, 51, 635, 51, 51, 51, 51,
1367 51, 53, 53, 53, 718, 54, 54, 54, 55, 55,
1368 55, 56, 56, 56, 150, 53, 717, 51, 51, 54,
1369 144, 51, 55, 803, 803, 56, 721, 144, 150, 1124,
1370 51, 1110, 51, 635, 144, 851, 723, 51, 52, 52,
1371 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
1372 52, 717, 52, 52, 52, 52, 52, 59, 59, 59,
1373 721, 60, 60, 60, 61, 61, 61, 62, 62, 62,
1375 723, 59, 851, 52, 52, 60, 1109, 52, 61, 920,
1376 920, 62, 147, 147, 147, 1098, 52, 722, 52, 159,
1377 159, 159, 761, 52, 57, 57, 57, 57, 57, 57,
1378 57, 57, 57, 57, 57, 57, 57, 720, 57, 57,
1379 57, 57, 57, 63, 63, 63, 722, 64, 64, 64,
1380 65, 65, 65, 66, 66, 66, 761, 63, 1098, 57,
1381 57, 64, 160, 166, 65, 57, 756, 66, 720, 160,
1382 57, 163, 163, 163, 720, 759, 160, 166, 817, 57,
1383 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1384 58, 58, 58, 756, 58, 58, 58, 58, 58, 67,
1386 67, 67, 914, 68, 68, 68, 71, 71, 71, 72,
1387 72, 72, 817, 67, 759, 58, 58, 68, 174, 180,
1388 71, 58, 914, 72, 1096, 174, 58, 173, 173, 173,
1389 853, 795, 174, 180, 788, 58, 69, 69, 69, 69,
1390 69, 69, 69, 69, 69, 69, 69, 69, 69, 760,
1391 69, 69, 69, 69, 69, 73, 73, 73, 795, 74,
1392 74, 74, 77, 77, 77, 78, 78, 78, 853, 73,
1393 760, 69, 69, 74, 788, 1095, 77, 758, 790, 78,
1394 177, 177, 177, 186, 186, 186, 69, 70, 70, 70,
1395 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
1397 758, 70, 70, 70, 70, 70, 79, 79, 79, 790,
1398 80, 80, 80, 81, 81, 81, 82, 82, 82, 189,
1399 79, 161, 70, 70, 80, 938, 189, 81, 814, 1084,
1400 82, 938, 1083, 189, 1067, 161, 1099, 70, 75, 75,
1401 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1402 75, 763, 75, 75, 75, 75, 75, 83, 83, 83,
1403 814, 84, 84, 84, 85, 85, 85, 161, 86, 86,
1404 86, 83, 175, 75, 75, 84, 188, 194, 85, 1099,
1405 816, 75, 86, 75, 763, 75, 175, 191, 191, 191,
1406 188, 194, 850, 75, 76, 76, 76, 76, 76, 76,
1408 76, 76, 76, 76, 76, 76, 76, 145, 76, 76,
1409 76, 76, 76, 89, 89, 89, 850, 90, 90, 90,
1410 816, 145, 175, 198, 198, 198, 188, 89, 967, 76,
1411 76, 90, 202, 202, 202, 91, 91, 76, 967, 76,
1412 91, 76, 112, 145, 212, 212, 212, 818, 91, 76,
1413 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1414 87, 87, 87, 205, 87, 87, 87, 87, 87, 91,
1415 92, 92, 819, 818, 112, 92, 220, 205, 820, 793,
1416 112, 187, 200, 92, 112, 87, 87, 199, 187, 112,
1417 220, 215, 130, 131, 199, 187, 200, 819, 215, 130,
1419 764, 199, 793, 820, 92, 215, 130, 131, 87, 88,
1420 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1421 88, 88, 214, 88, 88, 88, 88, 88, 130, 131,
1422 200, 187, 852, 764, 130, 131, 214, 703, 130, 131,
1423 130, 131, 130, 131, 88, 88, 143, 213, 217, 217,
1424 217, 703, 792, 143, 213, 225, 214, 224, 224, 224,
1425 143, 213, 225, 228, 228, 228, 852, 88, 969, 225,
1426 314, 314, 314, 315, 315, 315, 791, 322, 322, 322,
1427 883, 213, 143, 323, 323, 323, 314, 794, 143, 315,
1428 848, 792, 143, 322, 143, 883, 143, 969, 882, 323,
1430 330, 330, 330, 331, 331, 331, 337, 337, 337, 338,
1431 338, 338, 339, 339, 339, 848, 330, 884, 791, 331,
1432 315, 885, 337, 889, 1066, 338, 794, 339, 341, 341,
1433 341, 882, 323, 342, 342, 342, 343, 343, 343, 346,
1434 346, 346, 884, 341, 347, 347, 347, 886, 889, 342,
1435 338, 885, 343, 915, 331, 346, 352, 352, 352, 891,
1436 347, 353, 353, 353, 356, 356, 356, 357, 357, 357,
1437 905, 891, 352, 374, 374, 374, 911, 353, 905, 906,
1438 356, 918, 940, 357, 886, 915, 343, 906, 912, 374,
1439 375, 375, 375, 887, 347, 377, 377, 377, 378, 378,
1441 378, 383, 383, 383, 912, 917, 375, 384, 384, 384,
1442 941, 377, 918, 940, 353, 911, 383, 385, 385, 385,
1443 357, 1017, 917, 384, 387, 387, 387, 391, 391, 391,
1444 941, 887, 377, 385, 394, 394, 394, 395, 395, 395,
1445 387, 968, 391, 397, 397, 397, 400, 400, 400, 1064,
1446 394, 1017, 999, 395, 403, 403, 403, 944, 968, 397,
1447 1018, 400, 943, 387, 404, 404, 404, 406, 406, 406,
1448 403, 407, 407, 407, 408, 408, 408, 943, 408, 972,
1449 404, 408, 944, 406, 919, 999, 407, 410, 410, 410,
1450 411, 411, 411, 973, 411, 972, 919, 411, 1018, 397,
1452 970, 1062, 410, 412, 412, 412, 998, 413, 413, 413,
1453 415, 415, 415, 417, 417, 417, 418, 418, 418, 412,
1454 1054, 998, 406, 413, 970, 973, 415, 1073, 417, 419,
1455 419, 419, 418, 421, 421, 421, 423, 423, 423, 426,
1456 426, 426, 427, 427, 427, 419, 429, 429, 429, 421,
1457 971, 423, 432, 432, 432, 426, 1073, 1054, 427, 433,
1458 433, 433, 429, 435, 435, 435, 415, 971, 432, 438,
1459 438, 438, 445, 445, 445, 433, 446, 446, 446, 435,
1460 451, 451, 451, 1020, 1048, 438, 438, 996, 445, 421,
1461 452, 452, 452, 1020, 452, 451, 429, 452, 453, 453,
1463 453, 457, 457, 457, 996, 1047, 435, 1002, 458, 458,
1464 458, 1001, 458, 1002, 453, 458, 457, 459, 459, 459,
1465 460, 460, 460, 461, 461, 461, 1001, 445, 464, 464,
1466 464, 1014, 459, 1000, 1003, 460, 467, 467, 467, 461,
1467 465, 465, 465, 464, 465, 453, 1014, 465, 468, 468,
1468 468, 467, 1089, 469, 469, 469, 460, 469, 1000, 1003,
1469 469, 473, 473, 473, 468, 473, 1016, 1089, 473, 476,
1470 476, 476, 467, 478, 478, 478, 479, 479, 479, 1046,
1471 479, 1034, 1016, 479, 1019, 476, 1108, 1034, 478, 480,
1472 480, 480, 482, 482, 482, 483, 483, 483, 1037, 483,
1474 1019, 1108, 483, 1021, 1037, 480, 468, 482, 1039, 486,
1475 486, 486, 488, 488, 488, 489, 489, 489, 493, 493,
1476 493, 500, 500, 500, 476, 486, 1032, 488, 504, 504,
1477 504, 489, 1033, 1036, 493, 1049, 1021, 500, 505, 505,
1478 505, 1049, 505, 1045, 480, 505, 1031, 1039, 486, 508,
1479 508, 508, 1072, 512, 512, 512, 1036, 512, 1050, 493,
1480 512, 1090, 1031, 500, 1032, 508, 515, 515, 515, 1072,
1481 1033, 489, 516, 516, 516, 493, 516, 1103, 1051, 516,
1482 1052, 515, 517, 517, 517, 518, 518, 518, 1044, 518,
1483 1052, 1102, 518, 520, 520, 520, 1090, 517, 1050, 524,
1485 524, 524, 1094, 524, 1069, 508, 524, 1102, 1075, 520,
1486 528, 528, 528, 529, 529, 529, 1103, 529, 1051, 1094,
1487 529, 531, 531, 531, 1055, 528, 533, 533, 533, 535,
1488 535, 535, 1070, 535, 1055, 1043, 535, 531, 538, 538,
1489 538, 1069, 533, 540, 540, 540, 1075, 540, 1030, 1068,
1490 540, 547, 547, 547, 538, 1092, 545, 545, 545, 1068,
1491 1076, 548, 548, 548, 1086, 548, 547, 533, 548, 1070,
1492 1093, 531, 545, 549, 549, 549, 556, 556, 556, 538,
1493 557, 557, 557, 561, 561, 561, 562, 562, 562, 549,
1494 1086, 556, 602, 602, 602, 1092, 557, 545, 1076, 566,
1496 566, 566, 562, 566, 1123, 1029, 566, 569, 569, 569,
1497 1093, 569, 1100, 1117, 569, 1101, 574, 574, 574, 1117,
1498 1123, 549, 580, 580, 580, 1028, 562, 582, 582, 582,
1499 557, 574, 576, 576, 576, 1113, 576, 1106, 580, 576,
1500 584, 584, 584, 582, 588, 588, 588, 590, 590, 590,
1501 1100, 590, 574, 1101, 590, 1114, 584, 599, 599, 599,
1502 588, 593, 593, 593, 600, 600, 600, 1113, 600, 1027,
1503 1128, 600, 599, 1087, 1106, 580, 584, 593, 601, 601,
1504 601, 604, 604, 604, 605, 605, 605, 1114, 613, 613,
1505 613, 620, 620, 620, 601, 626, 626, 626, 588, 1087,
1507 605, 1128, 593, 613, 614, 614, 614, 620, 614, 1104,
1508 626, 614, 622, 622, 622, 1105, 625, 625, 625, 629,
1509 629, 629, 631, 631, 631, 605, 1143, 1107, 622, 1230,
1510 1115, 601, 625, 1143, 1111, 629, 1118, 620, 631, 633,
1511 633, 633, 637, 637, 637, 1230, 637, 1104, 1116, 637,
1512 640, 640, 640, 1105, 1121, 633, 1119, 625, 641, 641,
1513 641, 643, 643, 643, 1107, 1118, 640, 644, 644, 644,
1514 1115, 631, 1111, 629, 653, 653, 653, 654, 654, 654,
1515 1121, 654, 1112, 644, 654, 664, 664, 664, 1116, 653,
1516 667, 667, 667, 668, 668, 668, 1119, 1132, 640, 1216,
1518 1136, 664, 670, 670, 670, 1120, 667, 1132, 668, 1126,
1519 653, 669, 669, 669, 1216, 669, 1122, 670, 669, 1175,
1520 1112, 664, 672, 672, 672, 673, 673, 673, 674, 674,
1521 674, 680, 680, 680, 682, 682, 682, 667, 672, 691,
1522 691, 691, 1122, 1136, 674, 1120, 1129, 680, 1127, 1126,
1523 682, 692, 692, 692, 691, 693, 693, 693, 1175, 693,
1524 1130, 1137, 693, 701, 701, 701, 692, 680, 714, 714,
1525 714, 702, 702, 702, 705, 705, 705, 1129, 701, 709,
1526 709, 709, 1131, 674, 676, 676, 676, 702, 1127, 1144,
1527 705, 706, 706, 706, 709, 706, 1144, 1130, 706, 1134,
1529 676, 710, 710, 710, 1137, 710, 1026, 1025, 710, 711,
1530 711, 711, 712, 712, 712, 705, 1138, 1133, 702, 1131,
1531 1135, 676, 1138, 676, 711, 715, 715, 715, 712, 676,
1532 725, 725, 725, 676, 1141, 676, 1134, 676, 732, 732,
1533 732, 715, 1145, 733, 733, 733, 725, 733, 1176, 1142,
1534 733, 1133, 1151, 732, 734, 734, 734, 1135, 734, 1024,
1535 1148, 734, 742, 742, 742, 743, 743, 743, 1145, 743,
1536 725, 1141, 743, 744, 744, 744, 1158, 742, 748, 748,
1537 748, 749, 749, 749, 1151, 749, 1142, 1176, 749, 744,
1538 752, 752, 752, 1148, 748, 753, 753, 753, 1146, 753,
1540 1158, 1179, 753, 1180, 1206, 752, 754, 754, 754, 766,
1541 766, 766, 768, 768, 768, 780, 780, 780, 744, 775,
1542 775, 775, 754, 1149, 1146, 766, 748, 768, 771, 771,
1543 771, 780, 771, 1150, 775, 771, 777, 777, 777, 1179,
1544 777, 1180, 1206, 777, 784, 784, 784, 1152, 768, 1149,
1545 766, 785, 785, 785, 1159, 785, 1013, 1156, 785, 1150,
1546 784, 789, 789, 789, 780, 796, 796, 796, 798, 798,
1547 798, 799, 799, 799, 800, 800, 800, 789, 1159, 1152,
1548 796, 796, 1153, 1156, 798, 784, 801, 801, 801, 800,
1549 801, 1201, 1153, 801, 806, 806, 806, 807, 807, 807,
1551 1157, 807, 1012, 1195, 807, 809, 809, 809, 1201, 806,
1552 810, 810, 810, 811, 811, 811, 813, 813, 813, 1160,
1553 1161, 809, 798, 1166, 1210, 810, 1157, 1195, 811, 815,
1554 815, 815, 813, 826, 826, 826, 1210, 821, 821, 821,
1555 822, 822, 822, 1164, 1167, 815, 810, 1011, 1165, 811,
1556 1207, 809, 821, 821, 1166, 822, 822, 823, 823, 823,
1557 815, 823, 1160, 1161, 823, 813, 825, 825, 825, 1184,
1558 827, 827, 827, 823, 827, 1167, 1184, 827, 834, 834,
1559 834, 1173, 825, 835, 835, 835, 1164, 835, 1207, 1010,
1560 835, 1165, 1009, 834, 838, 838, 838, 839, 839, 839,
1562 840, 840, 840, 1008, 1174, 825, 843, 843, 843, 838,
1563 841, 841, 841, 839, 841, 840, 1185, 841, 844, 844,
1564 844, 843, 844, 1185, 1173, 844, 846, 846, 846, 847,
1565 847, 847, 854, 854, 854, 855, 855, 855, 1007, 856,
1566 856, 856, 1177, 856, 1197, 847, 856, 1174, 854, 1258,
1567 855, 855, 866, 866, 866, 856, 857, 857, 857, 1258,
1568 857, 1214, 1178, 857, 861, 861, 861, 866, 854, 867,
1569 867, 867, 857, 867, 1177, 1197, 867, 880, 880, 880,
1570 861, 870, 870, 870, 847, 858, 858, 858, 858, 858,
1571 858, 858, 858, 858, 1178, 1199, 858, 870, 1214, 858,
1573 858, 858, 858, 858, 868, 868, 868, 869, 869, 869,
1574 1196, 869, 1182, 1219, 869, 1183, 1005, 861, 995, 868,
1575 858, 858, 859, 859, 859, 859, 859, 859, 859, 859,
1576 859, 1215, 994, 859, 1196, 1199, 859, 859, 859, 859,
1577 859, 872, 872, 872, 1182, 872, 1198, 1183, 872, 876,
1578 876, 876, 1219, 876, 1202, 1193, 876, 859, 859, 881,
1579 881, 881, 888, 888, 888, 890, 890, 890, 1215, 890,
1580 1211, 1194, 890, 1203, 1245, 881, 1200, 1198, 888, 1211,
1581 1245, 890, 901, 901, 901, 1202, 901, 1193, 1221, 901,
1582 909, 909, 909, 888, 893, 893, 893, 893, 893, 893,
1584 893, 893, 893, 1194, 1203, 893, 909, 1243, 893, 893,
1585 893, 893, 893, 904, 904, 904, 1200, 904, 1228, 1204,
1586 904, 1022, 1022, 1022, 896, 896, 896, 1205, 1221, 893,
1587 893, 894, 894, 894, 894, 894, 894, 894, 894, 894,
1588 896, 1208, 894, 1204, 1228, 894, 894, 894, 894, 894,
1589 1243, 1205, 913, 913, 913, 916, 916, 916, 924, 924,
1590 924, 926, 926, 926, 1209, 993, 894, 894, 913, 896,
1591 1222, 916, 1208, 1226, 924, 924, 1227, 926, 927, 927,
1592 927, 928, 928, 928, 929, 929, 929, 930, 930, 930,
1593 937, 937, 937, 927, 1212, 1209, 928, 1226, 1256, 929,
1595 1227, 1212, 930, 939, 939, 939, 937, 942, 942, 942,
1596 1222, 992, 926, 948, 948, 948, 950, 950, 950, 939,
1597 929, 1213, 1229, 942, 951, 951, 951, 991, 1213, 948,
1598 1256, 1220, 950, 1231, 939, 953, 953, 953, 942, 951,
1599 952, 952, 952, 1232, 952, 1241, 1235, 952, 1229, 1217,
1600 953, 954, 954, 954, 948, 954, 1217, 1231, 954, 955,
1601 955, 955, 956, 956, 956, 1218, 956, 1232, 990, 956,
1602 1220, 950, 1218, 1233, 955, 958, 958, 958, 959, 959,
1603 959, 986, 959, 1235, 1241, 959, 966, 966, 966, 1236,
1604 958, 976, 976, 976, 977, 977, 977, 1233, 977, 1234,
1606 1244, 977, 966, 1223, 980, 980, 980, 976, 980, 1250,
1607 1223, 980, 983, 983, 983, 975, 983, 966, 1224, 983,
1608 987, 987, 987, 1234, 987, 1224, 1236, 987, 997, 997,
1609 997, 1006, 1006, 1006, 1248, 1250, 976, 1242, 1015, 1015,
1610 1015, 1237, 1015, 1244, 997, 1015, 1248, 1006, 1023, 1023,
1611 1023, 1035, 1035, 1035, 1015, 1038, 1038, 1038, 1040, 1040,
1612 1040, 1041, 1041, 1041, 1023, 1237, 1249, 1035, 1042, 1042,
1613 1042, 1038, 1053, 1053, 1053, 1249, 1242, 1041, 1056, 1056,
1614 1056, 1006, 1056, 1042, 1267, 1056, 1251, 974, 1053, 1057,
1615 1057, 1057, 1246, 1267, 1056, 1247, 1238, 1023, 1058, 1058,
1617 1058, 1252, 965, 1053, 1257, 1057, 1060, 1060, 1060, 1061,
1618 1061, 1061, 1251, 1061, 1058, 964, 1061, 1071, 1071, 1071,
1619 1238, 1060, 1074, 1074, 1074, 1077, 1077, 1077, 1078, 1078,
1620 1078, 1246, 1078, 1071, 1247, 1078, 1257, 1268, 1074, 1253,
1621 1252, 1077, 1085, 1085, 1085, 1088, 1088, 1088, 963, 1088,
1622 1266, 1313, 1088, 1091, 1091, 1091, 1077, 1091, 1085, 1254,
1623 1091, 1088, 1266, 1097, 1097, 1097, 1255, 1097, 1268, 1091,
1624 1097, 1147, 1147, 1147, 1154, 1154, 1154, 1313, 1253, 1097,
1625 1155, 1155, 1155, 1254, 1162, 1162, 1162, 1147, 1162, 1154,
1626 1255, 1162, 1163, 1163, 1163, 1155, 1168, 1168, 1168, 962,
1628 1162, 1169, 1169, 1169, 1171, 1171, 1171, 1269, 1163, 1262,
1629 961, 1259, 1168, 1170, 1170, 1170, 1169, 1170, 1272, 1171,
1630 1170, 1172, 1172, 1172, 960, 1172, 1263, 1272, 1172, 1181,
1631 1181, 1181, 1186, 1186, 1186, 1259, 1186, 1284, 1269, 1186,
1632 1187, 1187, 1187, 1260, 1187, 1181, 1264, 1187, 1186, 1190,
1633 1190, 1190, 1262, 1190, 1265, 1275, 1190, 1225, 1225, 1225,
1634 1181, 1239, 1239, 1239, 1261, 1261, 1261, 1260, 1284, 1263,
1635 1264, 1271, 1276, 1225, 1270, 1270, 1270, 1239, 1265, 1277,
1636 1261, 1291, 1280, 1271, 1273, 1273, 1273, 1275, 1278, 1280,
1637 1270, 1277, 1279, 1279, 1279, 1281, 1285, 1278, 1292, 957,
1639 1273, 1289, 1281, 949, 1276, 1282, 1282, 1282, 1279, 1282,
1640 1290, 1299, 1282, 1283, 1283, 1283, 1286, 1286, 1286, 1291,
1641 1300, 1282, 1287, 1287, 1287, 1289, 1295, 1285, 1296, 1283,
1642 1301, 1302, 1286, 1295, 1290, 1296, 1292, 1303, 1287, 1293,
1643 1293, 1293, 1297, 1297, 1297, 1304, 1307, 1308, 1305, 1306,
1644 1299, 1309, 1310, 1311, 1312, 1293, 1314, 1315, 1297, 1300,
1645 1318, 1303, 1316, 1312, 1319, 1311, 1321, 1320, 1324, 1304,
1646 1301, 1302, 1305, 1306, 1325, 1321, 1317, 1317, 1317, 1320,
1647 1327, 1315, 1314, 1307, 1308, 1328, 1316, 947, 1335, 1336,
1648 1309, 1310, 1317, 1322, 1322, 1322, 1326, 1326, 1326, 1333,
1650 1324, 1331, 1334, 1318, 946, 945, 1325, 1319, 1331, 1322,
1651 1332, 1327, 1326, 1329, 1329, 1329, 1328, 1332, 1337, 1338,
1652 1339, 1340, 936, 1333, 935, 934, 1334, 1335, 1336, 1329,
1653 1340, 933, 1339, 1341, 1341, 1341, 1342, 1342, 1342, 932,
1654 931, 925, 1337, 1338, 923, 921, 908, 907, 900, 1341,
1655 899, 898, 1342, 1345, 1345, 1345, 1345, 1345, 1345, 1345,
1656 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1347, 1347, 1347,
1657 1347, 1347, 1347, 1347, 1348, 1348, 1348, 1348, 1348, 1348,
1658 1348, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1350, 1350,
1659 1350, 1350, 1350, 1350, 1350, 1351, 1351, 1351, 1351, 1351,
1661 1351, 1351, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1353,
1662 1353, 1353, 1353, 1353, 1353, 1353, 1354, 1354, 1354, 1354,
1663 1354, 1354, 1354, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
1664 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1357, 1357, 1357,
1665 1357, 1357, 1357, 1357, 1358, 1358, 1358, 1358, 1358, 1358,
1666 1358, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1360, 1360,
1667 1360, 1360, 1360, 1360, 1360, 1361, 1361, 1361, 1361, 1361,
1668 1361, 1361, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1363,
1669 1363, 1363, 1363, 1363, 1363, 1363, 1364, 1364, 1364, 1364,
1670 1364, 1364, 1364, 1365, 1365, 1365, 1365, 1365, 1365, 1365,
1672 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1367, 1367, 1367,
1673 897, 1367, 1368, 1368, 1368, 895, 1368, 1369, 1369, 1369,
1674 879, 1369, 1370, 1370, 1370, 875, 1370, 1371, 1371, 1371,
1675 865, 1371, 1372, 1372, 1372, 864, 1372, 1373, 1373, 1373,
1676 863, 1373, 1374, 1374, 1374, 862, 1374, 1375, 1375, 1375,
1677 1375, 1375, 860, 1375, 1376, 845, 1376, 1377, 842, 1377,
1678 1378, 833, 1378, 1379, 832, 1379, 1380, 831, 1380, 1381,
1679 830, 1381, 1382, 824, 1382, 1383, 812, 1383, 1384, 1384,
1680 1384, 1384, 1384, 1384, 1384, 1385, 808, 805, 1385, 1386,
1681 1386, 1386, 1386, 1386, 1386, 1387, 1387, 1387, 1387, 1387,
1683 1387, 1388, 1388, 1388, 1388, 1388, 1388, 1389, 1389, 1389,
1684 1389, 1389, 1389, 1390, 1390, 1390, 1390, 1390, 1390, 1391,
1685 1391, 1391, 1391, 1391, 1391, 1392, 1392, 1392, 1392, 1392,
1686 1392, 1393, 1393, 1393, 1393, 1393, 1393, 1394, 1394, 1394,
1687 1394, 1394, 1394, 1394, 1395, 1395, 1395, 1395, 1395, 1395,
1688 1395, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1397, 1397,
1689 1397, 1397, 1397, 1397, 1397, 1398, 1398, 1398, 1398, 1398,
1690 1398, 1398, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1400,
1691 1400, 1400, 1400, 1400, 1400, 1400, 804, 802, 797, 783,
1692 782, 781, 776, 774, 770, 769, 767, 765, 747, 746,
1694 745, 739, 738, 737, 729, 728, 727, 726, 724, 704,
1695 699, 697, 696, 695, 694, 689, 687, 686, 685, 684,
1696 681, 679, 671, 666, 665, 663, 662, 661, 660, 659,
1697 658, 657, 652, 651, 650, 649, 648, 647, 646, 645,
1698 642, 636, 632, 630, 628, 627, 624, 621, 619, 616,
1699 615, 612, 611, 608, 607, 606, 603, 598, 594, 589,
1700 587, 586, 585, 583, 581, 579, 578, 577, 575, 573,
1701 572, 571, 570, 565, 564, 563, 560, 559, 558, 555,
1702 550, 546, 544, 543, 539, 534, 532, 530, 527, 523,
1703 522, 519, 511, 510, 509, 503, 502, 501, 499, 498,
1705 495, 492, 490, 487, 485, 484, 481, 477, 472, 466,
1706 463, 462, 456, 455, 454, 450, 449, 448, 447, 444,
1707 443, 442, 441, 436, 431, 430, 425, 424, 422, 416,
1708 409, 402, 401, 399, 398, 393, 392, 390, 389, 388,
1709 382, 381, 380, 379, 373, 372, 371, 368, 367, 366,
1710 364, 360, 358, 355, 354, 351, 350, 349, 348, 345,
1711 344, 340, 336, 335, 334, 333, 332, 329, 328, 327,
1712 326, 325, 324, 321, 320, 319, 318, 317, 316, 313,
1713 312, 310, 309, 308, 307, 306, 302, 300, 299, 298,
1714 297, 296, 295, 292, 291, 290, 289, 288, 287, 284,
1716 283, 280, 279, 278, 277, 276, 273, 272, 271, 270,
1717 269, 268, 265, 264, 263, 262, 261, 260, 259, 256,
1718 255, 252, 251, 250, 249, 248, 247, 246, 243, 242,
1719 241, 240, 239, 233, 232, 230, 227, 226, 222, 218,
1720 210, 209, 208, 207, 203, 196, 192, 184, 183, 182,
1721 178, 170, 169, 168, 164, 157, 156, 155, 154, 153,
1722 152, 148, 140, 136, 127, 123, 119, 118, 117, 111,
1723 110, 108, 105, 93, 1344, 1344, 1344, 1344, 1344, 1344,
1724 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1725 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1727 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1728 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1729 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1730 1344, 1344, 1344, 1344, 1344, 1344, 1344
1733 /* Table of booleans, true if rule could match eol. */
1734 static yyconst flex_int32_t yy_rule_can_match_eol[179] =
1736 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1737 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0,
1738 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1739 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1740 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1741 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1742 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1743 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
1744 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, };
1746 static yy_state_type yy_last_accepting_state;
1747 static char *yy_last_accepting_cpos;
1749 extern int surf_parse__flex_debug;
1750 int surf_parse__flex_debug = 0;
1752 /* The intent behind this definition is that it'll catch
1753 * any uses of REJECT which flex missed.
1755 #define REJECT reject_used_but_not_detected
1756 #define yymore() yymore_used_but_not_detected
1757 #define YY_MORE_ADJ 0
1758 #define YY_RESTORE_YY_MORE_OFFSET
1759 char *surf_parse_text;
1760 #line 1 "surf/surfxml.l"
1761 /* Validating XML processor for surfxml.dtd.
1762 * Generated 2006/05/29 23:03:05.
1764 * This program was generated with the FleXML XML processor generator.
1765 * FleXML is Copyright © 1999-2005 Kristoffer Rose. All rights reserved.
1766 * (Id: flexml.pl,v 1.48 2006/03/21 13:09:12 mquinson Exp).
1768 * There are two, intertwined parts to this program, part A and part B.
1773 * Some parts, here collectively called "Part A", are found in the
1774 * FleXML package. They are Copyright © 1999-2005 Kristoffer Rose.
1775 * All rights reserved.
1777 * You can redistribute, use, perform, display and/or modify "Part A"
1778 * provided the following two conditions hold:
1780 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1781 * FleXML; without even the implied warranty of MERCHANTABILITY or
1782 * FITNESS FOR A PARTICULAR PURPOSE.
1784 * 2. The program distribution conditions do not in any way affect the
1785 * distribution conditions of the FleXML system used to generate this
1786 * file or any version of FleXML derived from that system.
1788 * Notice that these are explicit rights granted to you for files
1789 * generated by the FleXML system. For your rights in connection with
1790 * the FleXML system itself please consult the GNU General Public License.
1795 * The other parts, here collectively called "Part B", and which came
1796 * from the DTD used by FleXML to generate this program, can be
1797 * distributed (or not, as the case may be) under the terms of whoever
1798 * wrote them, provided these terms respect and obey the two conditions
1799 * above under the heading "Part A".
1801 * The author of and contributors to FleXML specifically disclaim
1802 * any copyright interest in "Part B", unless "Part B" was written
1803 * by the author of or contributors to FleXML.
1806 #line 48 "surf/surfxml.l"
1808 /* Version strings. */
1809 const char rcs_surfxml_flexml_skeleton[] =
1810 "$" "Id: skel,v 1.28 2006/03/21 12:04:13 legranda Exp $";
1811 const char rcs_surfxml_flexml[] =
1812 "$" "Id: flexml.pl,v 1.48 2006/03/21 13:09:12 mquinson Exp $";
1822 /* Generated definitions. */
1823 #define FLEXML_yylineno
1824 #define FLEXML_BUFFERSTACKSIZE 1000000
1826 /* XML processor api. */
1827 /* FleXML-provided data. */
1828 const char* surfxml_pcdata;
1829 AT_surfxml_network_link_bandwidth A_surfxml_network_link_bandwidth;
1830 AT_surfxml_process_host A_surfxml_process_host;
1831 AT_surfxml_network_link_latency_file A_surfxml_network_link_latency_file;
1832 AT_surfxml_route_impact_on_dst_with_other_send A_surfxml_route_impact_on_dst_with_other_send;
1833 AT_surfxml_cpu_interference_send_recv A_surfxml_cpu_interference_send_recv;
1834 AT_surfxml_route_impact_on_dst A_surfxml_route_impact_on_dst;
1835 AT_surfxml_platform_description_version A_surfxml_platform_description_version;
1836 AT_surfxml_route_impact_on_src_with_other_recv A_surfxml_route_impact_on_src_with_other_recv;
1837 AT_surfxml_route_element_name A_surfxml_route_element_name;
1838 AT_surfxml_process_start_time A_surfxml_process_start_time;
1839 AT_surfxml_process_function A_surfxml_process_function;
1840 AT_surfxml_cpu_state A_surfxml_cpu_state;
1841 AT_surfxml_cpu_interference_send A_surfxml_cpu_interference_send;
1842 AT_surfxml_network_link_bandwidth_file A_surfxml_network_link_bandwidth_file;
1843 AT_surfxml_cpu_name A_surfxml_cpu_name;
1844 AT_surfxml_process_kill_time A_surfxml_process_kill_time;
1845 AT_surfxml_network_link_state A_surfxml_network_link_state;
1846 AT_surfxml_cpu_availability_file A_surfxml_cpu_availability_file;
1847 AT_surfxml_argument_value A_surfxml_argument_value;
1848 AT_surfxml_route_src A_surfxml_route_src;
1849 AT_surfxml_route_impact_on_src A_surfxml_route_impact_on_src;
1850 AT_surfxml_cpu_max_outgoing_rate A_surfxml_cpu_max_outgoing_rate;
1851 AT_surfxml_cpu_availability A_surfxml_cpu_availability;
1852 AT_surfxml_cpu_interference_recv A_surfxml_cpu_interference_recv;
1853 AT_surfxml_network_link_name A_surfxml_network_link_name;
1854 AT_surfxml_cpu_power A_surfxml_cpu_power;
1855 AT_surfxml_include_file A_surfxml_include_file;
1856 AT_surfxml_network_link_sharing_policy A_surfxml_network_link_sharing_policy;
1857 AT_surfxml_route_dst A_surfxml_route_dst;
1858 AT_surfxml_network_link_latency A_surfxml_network_link_latency;
1859 AT_surfxml_cpu_state_file A_surfxml_cpu_state_file;
1860 AT_surfxml_network_link_state_file A_surfxml_network_link_state_file;
1864 # define ENTER(state) debug_enter(state,#state)
1865 # define LEAVE debug_leave()
1866 # define SET(state) debug_set(state,#state)
1867 static void debug_enter(int, const char*);
1868 static void debug_leave(void);
1869 static void debug_set(int, const char*);
1871 # define ENTER(state) (yy_push_state(state))
1872 # define LEAVE (yy_pop_state())
1873 # define SET(state) BEGIN(state)
1876 /* Generic actions. */
1877 #define SKIP /*skip*/
1878 #define SUCCEED CLEANUP; return 0
1880 #define FAIL return fail
1881 static int fail(const char*, ...);
1882 const char * surfxml_parse_err_msg(void);
1885 static void cleanup(void);
1886 #define CLEANUP cleanup()
1888 /* Text buffer stack handling. */
1889 static char bufferstack[FLEXML_BUFFERSTACKSIZE];
1890 static char* limit = bufferstack + FLEXML_BUFFERSTACKSIZE;
1891 typedef struct BufferLast_s {
1892 struct BufferLast_s *old; char* saved; char new1[1];
1894 #ifdef FLEXML_HasMixed
1895 static BufferLast* last = (BufferLast*)0;
1897 static char* next = bufferstack;
1899 #define BUFFERSET(P) (P = next)
1900 #define BUFFERPUTC(C) (assert(next<limit), *(next++) = (C))
1901 #define BUFFERDONE (BUFFERPUTC('\0'))
1903 #define BUFFERLITERAL(C,P) bufferliteral(C,&(P),surf_parse_text)
1904 static void bufferliteral(char c, const char** pp, char* text)
1906 char *s = strchr(text,c), *e = strrchr(text,c);
1907 assert(s <= e); BUFFERSET(*pp);
1909 if (isspace(*s)) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
1910 else BUFFERPUTC(*s);
1915 #ifdef FLEXML_HasMixed
1916 static void pushbuffer(char* p)
1918 BufferLast* l = (BufferLast*)next;
1919 assert(next < limit);
1926 static char* popbuffer(void)
1928 BufferLast* l = last;
1929 assert(last != (BufferLast*)0);
1936 /* General internal entities are `unput' back onto the input stream... */
1937 #define ENTITYTEXT(T) \
1938 { char *s = (T), *e = s+strlen(s);\
1939 while (--e >= s) { unput(*e); }}
1940 /* Flex standard options. */
1941 #define YY_NO_INPUT 1
1942 /* Flex user-requested options. */
1943 /* XML character classes (currently restricted to ASCII). */
1944 /* "Common syntactic structures." */
1945 /* "Names and Tokens." */
1946 /* Miscellaneous. */
1947 /* Parser states (flex `exclusive start conditions'):
1949 * PROLOG the XML prolog of the document before <?xml...>
1950 * DOCTYPE the XML prolog of the document after <?xml...>
1951 * EPILOG after the root element
1952 * INCOMMENT inside an XML comment <!--....-->
1953 * INPI inside an XML PI <?...?>
1954 * VALUE1 inside a '...'-delimited literal
1955 * VALUE2 inside a "..."-delimited literal
1956 * CDATA inside a <![CDATA[...] ]> section.
1957 * ROOT_<tag> expect root element <tag>
1958 * AL_<tag> inside the attribute list for <tag>
1959 * IN_<tag> inside a <tag> with element contents (ready for end tag)
1960 * IMPOSSIBLE dummy to permit disabling rules; must be last
1972 #line 240 "surf/surfxml.l"
1974 const char* *surfxml_statenames=NULL;
1975 #line 1976 "surf/surfxml.c"
1986 #define ROOT_surfxml_platform_description 9
1987 #define AL_surfxml_platform_description 10
1988 #define S_surfxml_platform_description 11
1989 #define S_surfxml_platform_description_1 12
1990 #define S_surfxml_platform_description_2 13
1991 #define E_surfxml_platform_description 14
1992 #define ROOT_surfxml_include 15
1993 #define AL_surfxml_include 16
1994 #define S_surfxml_include 17
1995 #define S_surfxml_include_1 18
1996 #define S_surfxml_include_2 19
1997 #define E_surfxml_include 20
1998 #define ROOT_surfxml_cpu 21
1999 #define AL_surfxml_cpu 22
2000 #define E_surfxml_cpu 23
2001 #define ROOT_surfxml_network_link 24
2002 #define AL_surfxml_network_link 25
2003 #define E_surfxml_network_link 26
2004 #define ROOT_surfxml_route 27
2005 #define AL_surfxml_route 28
2006 #define S_surfxml_route 29
2007 #define S_surfxml_route_1 30
2008 #define S_surfxml_route_2 31
2009 #define E_surfxml_route 32
2010 #define ROOT_surfxml_route_element 33
2011 #define AL_surfxml_route_element 34
2012 #define E_surfxml_route_element 35
2013 #define ROOT_surfxml_process 36
2014 #define AL_surfxml_process 37
2015 #define S_surfxml_process 38
2016 #define S_surfxml_process_1 39
2017 #define S_surfxml_process_2 40
2018 #define E_surfxml_process 41
2019 #define ROOT_surfxml_argument 42
2020 #define AL_surfxml_argument 43
2021 #define E_surfxml_argument 44
2022 #define IMPOSSIBLE 45
2024 #ifndef YY_NO_UNISTD_H
2025 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2026 * down here because we want the user's section 1 to have been scanned first.
2027 * The user has a chance to override it with an option.
2032 #ifndef YY_EXTRA_TYPE
2033 #define YY_EXTRA_TYPE void *
2036 static int yy_init_globals (void );
2038 /* Macros after this point can all be overridden by user definitions in
2042 #ifndef YY_SKIP_YYWRAP
2044 extern "C" int surf_parse_wrap (void );
2046 extern int surf_parse_wrap (void );
2051 static void yy_flex_strncpy (char *,yyconst char *,int );
2054 #ifdef YY_NEED_STRLEN
2055 static int yy_flex_strlen (yyconst char * );
2061 static int yyinput (void );
2063 static int input (void );
2068 static int yy_start_stack_ptr = 0;
2069 static int yy_start_stack_depth = 0;
2070 static int *yy_start_stack = NULL;
2072 static void yy_push_state (int new_state );
2074 static void yy_pop_state (void );
2076 /* Amount of stuff to slurp up with each read. */
2077 #ifndef YY_READ_BUF_SIZE
2078 #define YY_READ_BUF_SIZE 8192
2081 /* Copy whatever the last rule matched to the standard output. */
2083 /* This used to be an fputs(), but since the string might contain NUL's,
2084 * we now use fwrite().
2086 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
2089 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2090 * is returned in "result".
2093 #define YY_INPUT(buf,result,max_size) \
2094 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2098 for ( n = 0; n < max_size && \
2099 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
2100 buf[n] = (char) c; \
2102 buf[n++] = (char) c; \
2103 if ( c == EOF && ferror( surf_parse_in ) ) \
2104 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2110 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2112 if( errno != EINTR) \
2114 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2118 clearerr(surf_parse_in); \
2125 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2126 * we don't want an extra ';' after the "return" because that will cause
2127 * some compilers to complain about unreachable statements.
2130 #define yyterminate() return YY_NULL
2133 /* Number of entries by which start-condition stack grows. */
2134 #ifndef YY_START_STACK_INCR
2135 #define YY_START_STACK_INCR 25
2138 /* Report a fatal error. */
2139 #ifndef YY_FATAL_ERROR
2140 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2143 /* end tables serialization structures and prototypes */
2145 /* Default declaration of generated scanner - a define so the user can
2146 * easily add parameters.
2149 #define YY_DECL_IS_OURS 1
2151 extern int surf_parse_lex (void);
2153 #define YY_DECL int surf_parse_lex (void)
2154 #endif /* !YY_DECL */
2156 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2159 #ifndef YY_USER_ACTION
2160 #define YY_USER_ACTION
2163 /* Code executed at the end of each rule. */
2165 #define YY_BREAK break;
2168 #define YY_RULE_SETUP \
2171 /** The main scanner function which does all the work.
2175 register yy_state_type yy_current_state;
2176 register char *yy_cp, *yy_bp;
2177 register int yy_act;
2179 #line 244 "surf/surfxml.l"
2182 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
2186 if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
2187 surfxml_statenames[PROLOG] = NULL;
2188 surfxml_statenames[DOCTYPE] = NULL;
2189 surfxml_statenames[EPILOG] = NULL;
2190 surfxml_statenames[INCOMMENT] = NULL;
2191 surfxml_statenames[INPI] = NULL;
2192 surfxml_statenames[VALUE1] = NULL;
2193 surfxml_statenames[VALUE2] = NULL;
2194 surfxml_statenames[CDATA] = NULL;
2195 surfxml_statenames[ROOT_surfxml_platform_description] = NULL;
2196 surfxml_statenames[AL_surfxml_platform_description] = NULL;
2197 surfxml_statenames[S_surfxml_platform_description] = "platform_description";
2198 surfxml_statenames[S_surfxml_platform_description_1] = "platform_description";
2199 surfxml_statenames[S_surfxml_platform_description_2] = "platform_description";
2200 surfxml_statenames[E_surfxml_platform_description] = "platform_description";
2201 surfxml_statenames[ROOT_surfxml_include] = NULL;
2202 surfxml_statenames[AL_surfxml_include] = NULL;
2203 surfxml_statenames[S_surfxml_include] = "include";
2204 surfxml_statenames[S_surfxml_include_1] = "include";
2205 surfxml_statenames[S_surfxml_include_2] = "include";
2206 surfxml_statenames[E_surfxml_include] = "include";
2207 surfxml_statenames[ROOT_surfxml_cpu] = NULL;
2208 surfxml_statenames[AL_surfxml_cpu] = NULL;
2209 surfxml_statenames[E_surfxml_cpu] = "cpu";
2210 surfxml_statenames[ROOT_surfxml_network_link] = NULL;
2211 surfxml_statenames[AL_surfxml_network_link] = NULL;
2212 surfxml_statenames[E_surfxml_network_link] = "network_link";
2213 surfxml_statenames[ROOT_surfxml_route] = NULL;
2214 surfxml_statenames[AL_surfxml_route] = NULL;
2215 surfxml_statenames[S_surfxml_route] = "route";
2216 surfxml_statenames[S_surfxml_route_1] = "route";
2217 surfxml_statenames[S_surfxml_route_2] = "route";
2218 surfxml_statenames[E_surfxml_route] = "route";
2219 surfxml_statenames[ROOT_surfxml_route_element] = NULL;
2220 surfxml_statenames[AL_surfxml_route_element] = NULL;
2221 surfxml_statenames[E_surfxml_route_element] = "route_element";
2222 surfxml_statenames[ROOT_surfxml_process] = NULL;
2223 surfxml_statenames[AL_surfxml_process] = NULL;
2224 surfxml_statenames[S_surfxml_process] = "process";
2225 surfxml_statenames[S_surfxml_process_1] = "process";
2226 surfxml_statenames[S_surfxml_process_2] = "process";
2227 surfxml_statenames[E_surfxml_process] = "process";
2228 surfxml_statenames[ROOT_surfxml_argument] = NULL;
2229 surfxml_statenames[AL_surfxml_argument] = NULL;
2230 surfxml_statenames[E_surfxml_argument] = "argument";
2233 /* COMMENTS and PIs: handled uniformly for efficiency. */
2235 #line 2236 "surf/surfxml.c"
2246 (yy_start) = 1; /* first start state */
2248 if ( ! surf_parse_in )
2249 surf_parse_in = stdin;
2251 if ( ! surf_parse_out )
2252 surf_parse_out = stdout;
2254 if ( ! YY_CURRENT_BUFFER ) {
2255 surf_parse_ensure_buffer_stack ();
2256 YY_CURRENT_BUFFER_LVALUE =
2257 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
2260 surf_parse__load_buffer_state( );
2263 while ( 1 ) /* loops until end-of-file is reached */
2265 yy_cp = (yy_c_buf_p);
2267 /* Support of surf_parse_text. */
2268 *yy_cp = (yy_hold_char);
2270 /* yy_bp points to the position in yy_ch_buf of the start of
2275 yy_current_state = (yy_start);
2279 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2280 if ( yy_accept[yy_current_state] )
2282 (yy_last_accepting_state) = yy_current_state;
2283 (yy_last_accepting_cpos) = yy_cp;
2285 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2287 yy_current_state = (int) yy_def[yy_current_state];
2288 if ( yy_current_state >= 1345 )
2289 yy_c = yy_meta[(unsigned int) yy_c];
2291 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2294 while ( yy_base[yy_current_state] != 3675 );
2297 yy_act = yy_accept[yy_current_state];
2299 { /* have to back up */
2300 yy_cp = (yy_last_accepting_cpos);
2301 yy_current_state = (yy_last_accepting_state);
2302 yy_act = yy_accept[yy_current_state];
2305 YY_DO_BEFORE_ACTION;
2307 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2310 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
2311 if ( surf_parse_text[yyl] == '\n' )
2313 surf_parse_lineno++;
2317 do_action: /* This label is used only to access EOF actions. */
2320 { /* beginning of action switch */
2321 case 0: /* must back up */
2322 /* undo the effects of YY_DO_BEFORE_ACTION */
2323 *yy_cp = (yy_hold_char);
2324 yy_cp = (yy_last_accepting_cpos);
2325 yy_current_state = (yy_last_accepting_state);
2326 goto yy_find_action;
2330 #line 300 "surf/surfxml.l"
2335 #line 301 "surf/surfxml.l"
2342 #line 304 "surf/surfxml.l"
2346 #line 306 "surf/surfxml.l"
2348 #line 307 "surf/surfxml.l"
2350 /* rule 6 can match eol */
2352 #line 307 "surf/surfxml.l"
2355 case YY_STATE_EOF(INCOMMENT):
2356 #line 308 "surf/surfxml.l"
2357 FAIL("EOF in comment.");
2363 #line 311 "surf/surfxml.l"
2367 #line 313 "surf/surfxml.l"
2369 /* rule 9 can match eol */
2371 #line 313 "surf/surfxml.l"
2374 case YY_STATE_EOF(INPI):
2375 #line 314 "surf/surfxml.l"
2376 FAIL("EOF in PI (processing instruction).");
2379 /* SPACES: skipped uniformly */
2381 /* rule 10 can match eol */
2383 #line 319 "surf/surfxml.l"
2386 /* PROLOG: determine root element and process it. */
2389 /* rule 11 can match eol */
2391 #line 324 "surf/surfxml.l"
2395 /* rule 12 can match eol */
2397 #line 325 "surf/surfxml.l"
2398 FAIL("Bad declaration %s.",surf_parse_text);
2403 /* rule 13 can match eol */
2405 #line 329 "surf/surfxml.l"
2406 SET(ROOT_surfxml_argument);
2409 /* rule 14 can match eol */
2411 #line 330 "surf/surfxml.l"
2412 SET(ROOT_surfxml_route_element);
2415 /* rule 15 can match eol */
2417 #line 331 "surf/surfxml.l"
2418 SET(ROOT_surfxml_cpu);
2421 /* rule 16 can match eol */
2423 #line 332 "surf/surfxml.l"
2424 SET(ROOT_surfxml_include);
2427 /* rule 17 can match eol */
2429 #line 333 "surf/surfxml.l"
2430 SET(ROOT_surfxml_route);
2433 /* rule 18 can match eol */
2435 #line 334 "surf/surfxml.l"
2436 SET(ROOT_surfxml_platform_description);
2439 /* rule 19 can match eol */
2441 #line 335 "surf/surfxml.l"
2442 SET(ROOT_surfxml_network_link);
2445 /* rule 20 can match eol */
2447 #line 336 "surf/surfxml.l"
2448 SET(ROOT_surfxml_process);
2451 /* rule 21 can match eol */
2453 #line 337 "surf/surfxml.l"
2454 FAIL("Bad declaration %s.",surf_parse_text);
2458 #line 338 "surf/surfxml.l"
2459 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
2461 case YY_STATE_EOF(PROLOG):
2462 case YY_STATE_EOF(DOCTYPE):
2463 #line 339 "surf/surfxml.l"
2464 FAIL("EOF in prolog.");
2467 /* RULES DERIVED FROM DTD. */
2468 /* <!-- Small DTD for SURF based tools. --> */
2470 /* rule 23 can match eol */
2472 #line 346 "surf/surfxml.l"
2474 A_surfxml_platform_description_version = "0.0";
2475 ENTER(AL_surfxml_platform_description);
2480 /* rule 24 can match eol */
2482 #line 352 "surf/surfxml.l"
2483 ENTER(VALUE1); BUFFERSET(A_surfxml_platform_description_version);
2486 /* rule 25 can match eol */
2488 #line 353 "surf/surfxml.l"
2489 ENTER(VALUE2); BUFFERSET(A_surfxml_platform_description_version);
2493 #line 355 "surf/surfxml.l"
2495 LEAVE; STag_surfxml_platform_description();surfxml_pcdata = NULL; ENTER(S_surfxml_platform_description);
2500 #line 358 "surf/surfxml.l"
2502 LEAVE; STag_surfxml_platform_description(); surfxml_pcdata = NULL; ETag_surfxml_platform_description();
2504 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2510 #line 364 "surf/surfxml.l"
2511 FAIL("Unexpected character `%c' in attribute list of platform_description element.", surf_parse_text[0]);
2515 #line 365 "surf/surfxml.l"
2516 FAIL("Bad attribute `%s' in `platform_description' element start tag.",surf_parse_text);
2518 case YY_STATE_EOF(AL_surfxml_platform_description):
2519 #line 366 "surf/surfxml.l"
2520 FAIL("EOF in attribute list of `platform_description' element.");
2525 /* rule 30 can match eol */
2527 #line 370 "surf/surfxml.l"
2530 ETag_surfxml_platform_description();
2532 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2537 /* rule 31 can match eol */
2539 #line 377 "surf/surfxml.l"
2540 FAIL("Unexpected end-tag `%s': `</platform_description>' expected.",surf_parse_text);
2544 #line 378 "surf/surfxml.l"
2545 FAIL("Unexpected character `%c': `</platform_description>' expected.",surf_parse_text[0]);
2547 case YY_STATE_EOF(E_surfxml_platform_description):
2548 case YY_STATE_EOF(S_surfxml_platform_description_2):
2549 case YY_STATE_EOF(S_surfxml_platform_description):
2550 #line 379 "surf/surfxml.l"
2551 FAIL("Premature EOF: `</platform_description>' expected.");
2555 /* rule 33 can match eol */
2557 #line 382 "surf/surfxml.l"
2559 A_surfxml_include_file = NULL;
2560 ENTER(AL_surfxml_include);
2565 /* rule 34 can match eol */
2567 #line 388 "surf/surfxml.l"
2568 ENTER(VALUE1); BUFFERSET(A_surfxml_include_file);
2571 /* rule 35 can match eol */
2573 #line 389 "surf/surfxml.l"
2574 ENTER(VALUE2); BUFFERSET(A_surfxml_include_file);
2578 #line 391 "surf/surfxml.l"
2580 if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2581 LEAVE; STag_surfxml_include();surfxml_pcdata = NULL; ENTER(S_surfxml_include);
2586 #line 395 "surf/surfxml.l"
2588 if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2589 LEAVE; STag_surfxml_include(); surfxml_pcdata = NULL; ETag_surfxml_include();
2591 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2592 case ROOT_surfxml_include: SET(EPILOG); break;
2593 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2599 #line 404 "surf/surfxml.l"
2600 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
2604 #line 405 "surf/surfxml.l"
2605 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
2607 case YY_STATE_EOF(AL_surfxml_include):
2608 #line 406 "surf/surfxml.l"
2609 FAIL("EOF in attribute list of `include' element.");
2614 /* rule 40 can match eol */
2616 #line 410 "surf/surfxml.l"
2619 ETag_surfxml_include();
2621 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2622 case ROOT_surfxml_include: SET(EPILOG); break;
2623 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2628 /* rule 41 can match eol */
2630 #line 419 "surf/surfxml.l"
2631 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
2635 #line 420 "surf/surfxml.l"
2636 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
2638 case YY_STATE_EOF(E_surfxml_include):
2639 case YY_STATE_EOF(S_surfxml_include):
2640 case YY_STATE_EOF(S_surfxml_include_2):
2641 #line 421 "surf/surfxml.l"
2642 FAIL("Premature EOF: `</include>' expected.");
2646 /* rule 43 can match eol */
2648 #line 424 "surf/surfxml.l"
2650 A_surfxml_cpu_name = NULL;
2651 A_surfxml_cpu_power = NULL;
2652 A_surfxml_cpu_availability = "1.0";
2653 A_surfxml_cpu_availability_file = NULL;
2654 A_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2655 A_surfxml_cpu_state_file = NULL;
2656 A_surfxml_cpu_interference_send = "1.0";
2657 A_surfxml_cpu_interference_recv = "1.0";
2658 A_surfxml_cpu_interference_send_recv = "1.0";
2659 A_surfxml_cpu_max_outgoing_rate = "-1.0";
2660 ENTER(AL_surfxml_cpu);
2665 /* rule 44 can match eol */
2667 #line 439 "surf/surfxml.l"
2668 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_name);
2671 /* rule 45 can match eol */
2673 #line 440 "surf/surfxml.l"
2674 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_name);
2677 /* rule 46 can match eol */
2679 #line 442 "surf/surfxml.l"
2680 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_power);
2683 /* rule 47 can match eol */
2685 #line 443 "surf/surfxml.l"
2686 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_power);
2689 /* rule 48 can match eol */
2691 #line 445 "surf/surfxml.l"
2692 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability);
2695 /* rule 49 can match eol */
2697 #line 446 "surf/surfxml.l"
2698 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability);
2701 /* rule 50 can match eol */
2703 #line 448 "surf/surfxml.l"
2704 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability_file);
2707 /* rule 51 can match eol */
2709 #line 449 "surf/surfxml.l"
2710 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability_file);
2713 /* rule 52 can match eol */
2714 #line 452 "surf/surfxml.l"
2716 /* rule 53 can match eol */
2718 #line 452 "surf/surfxml.l"
2719 A_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2722 /* rule 54 can match eol */
2723 #line 454 "surf/surfxml.l"
2725 /* rule 55 can match eol */
2727 #line 454 "surf/surfxml.l"
2728 A_surfxml_cpu_state = A_surfxml_cpu_state_OFF;
2731 /* rule 56 can match eol */
2733 #line 456 "surf/surfxml.l"
2734 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_state_file);
2737 /* rule 57 can match eol */
2739 #line 457 "surf/surfxml.l"
2740 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_state_file);
2743 /* rule 58 can match eol */
2745 #line 459 "surf/surfxml.l"
2746 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send);
2749 /* rule 59 can match eol */
2751 #line 460 "surf/surfxml.l"
2752 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send);
2755 /* rule 60 can match eol */
2757 #line 462 "surf/surfxml.l"
2758 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_recv);
2761 /* rule 61 can match eol */
2763 #line 463 "surf/surfxml.l"
2764 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_recv);
2767 /* rule 62 can match eol */
2769 #line 465 "surf/surfxml.l"
2770 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send_recv);
2773 /* rule 63 can match eol */
2775 #line 466 "surf/surfxml.l"
2776 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send_recv);
2779 /* rule 64 can match eol */
2781 #line 468 "surf/surfxml.l"
2782 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_max_outgoing_rate);
2785 /* rule 65 can match eol */
2787 #line 469 "surf/surfxml.l"
2788 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_max_outgoing_rate);
2792 #line 471 "surf/surfxml.l"
2794 if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2795 if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2796 LEAVE; STag_surfxml_cpu();surfxml_pcdata = NULL; ENTER(E_surfxml_cpu);
2801 #line 476 "surf/surfxml.l"
2803 if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2804 if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2805 LEAVE; STag_surfxml_cpu(); surfxml_pcdata = NULL; ETag_surfxml_cpu();
2807 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2808 case ROOT_surfxml_cpu: SET(EPILOG); break;
2809 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2815 #line 486 "surf/surfxml.l"
2816 FAIL("Unexpected character `%c' in attribute list of cpu element.", surf_parse_text[0]);
2820 #line 487 "surf/surfxml.l"
2821 FAIL("Bad attribute `%s' in `cpu' element start tag.",surf_parse_text);
2823 case YY_STATE_EOF(AL_surfxml_cpu):
2824 #line 488 "surf/surfxml.l"
2825 FAIL("EOF in attribute list of `cpu' element.");
2830 /* rule 70 can match eol */
2832 #line 492 "surf/surfxml.l"
2837 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2838 case ROOT_surfxml_cpu: SET(EPILOG); break;
2839 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2844 /* rule 71 can match eol */
2846 #line 501 "surf/surfxml.l"
2847 FAIL("Unexpected end-tag `%s': `</cpu>' expected.",surf_parse_text);
2851 #line 502 "surf/surfxml.l"
2852 FAIL("Unexpected character `%c': `</cpu>' expected.",surf_parse_text[0]);
2854 case YY_STATE_EOF(E_surfxml_cpu):
2855 #line 503 "surf/surfxml.l"
2856 FAIL("Premature EOF: `</cpu>' expected.");
2860 /* rule 73 can match eol */
2862 #line 506 "surf/surfxml.l"
2864 A_surfxml_network_link_name = NULL;
2865 A_surfxml_network_link_bandwidth = NULL;
2866 A_surfxml_network_link_bandwidth_file = NULL;
2867 A_surfxml_network_link_latency = "0.0";
2868 A_surfxml_network_link_latency_file = NULL;
2869 A_surfxml_network_link_state = A_surfxml_network_link_state_ON;
2870 A_surfxml_network_link_state_file = NULL;
2871 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
2872 ENTER(AL_surfxml_network_link);
2877 /* rule 74 can match eol */
2879 #line 519 "surf/surfxml.l"
2880 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_name);
2883 /* rule 75 can match eol */
2885 #line 520 "surf/surfxml.l"
2886 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_name);
2889 /* rule 76 can match eol */
2891 #line 522 "surf/surfxml.l"
2892 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth);
2895 /* rule 77 can match eol */
2897 #line 523 "surf/surfxml.l"
2898 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth);
2901 /* rule 78 can match eol */
2903 #line 525 "surf/surfxml.l"
2904 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth_file);
2907 /* rule 79 can match eol */
2909 #line 526 "surf/surfxml.l"
2910 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth_file);
2913 /* rule 80 can match eol */
2915 #line 528 "surf/surfxml.l"
2916 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency);
2919 /* rule 81 can match eol */
2921 #line 529 "surf/surfxml.l"
2922 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency);
2925 /* rule 82 can match eol */
2927 #line 531 "surf/surfxml.l"
2928 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency_file);
2931 /* rule 83 can match eol */
2933 #line 532 "surf/surfxml.l"
2934 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency_file);
2937 /* rule 84 can match eol */
2938 #line 535 "surf/surfxml.l"
2940 /* rule 85 can match eol */
2942 #line 535 "surf/surfxml.l"
2943 A_surfxml_network_link_state = A_surfxml_network_link_state_ON;
2946 /* rule 86 can match eol */
2947 #line 537 "surf/surfxml.l"
2949 /* rule 87 can match eol */
2951 #line 537 "surf/surfxml.l"
2952 A_surfxml_network_link_state = A_surfxml_network_link_state_OFF;
2955 /* rule 88 can match eol */
2957 #line 539 "surf/surfxml.l"
2958 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_state_file);
2961 /* rule 89 can match eol */
2963 #line 540 "surf/surfxml.l"
2964 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_state_file);
2967 /* rule 90 can match eol */
2968 #line 543 "surf/surfxml.l"
2970 /* rule 91 can match eol */
2972 #line 543 "surf/surfxml.l"
2973 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
2976 /* rule 92 can match eol */
2977 #line 545 "surf/surfxml.l"
2979 /* rule 93 can match eol */
2981 #line 545 "surf/surfxml.l"
2982 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_FATPIPE;
2986 #line 547 "surf/surfxml.l"
2988 if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2989 if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2990 LEAVE; STag_surfxml_network_link();surfxml_pcdata = NULL; ENTER(E_surfxml_network_link);
2995 #line 552 "surf/surfxml.l"
2997 if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2998 if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2999 LEAVE; STag_surfxml_network_link(); surfxml_pcdata = NULL; ETag_surfxml_network_link();
3001 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3002 case ROOT_surfxml_network_link: SET(EPILOG); break;
3003 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3009 #line 562 "surf/surfxml.l"
3010 FAIL("Unexpected character `%c' in attribute list of network_link element.", surf_parse_text[0]);
3014 #line 563 "surf/surfxml.l"
3015 FAIL("Bad attribute `%s' in `network_link' element start tag.",surf_parse_text);
3017 case YY_STATE_EOF(AL_surfxml_network_link):
3018 #line 564 "surf/surfxml.l"
3019 FAIL("EOF in attribute list of `network_link' element.");
3024 /* rule 98 can match eol */
3026 #line 568 "surf/surfxml.l"
3029 ETag_surfxml_network_link();
3031 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3032 case ROOT_surfxml_network_link: SET(EPILOG); break;
3033 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3038 /* rule 99 can match eol */
3040 #line 577 "surf/surfxml.l"
3041 FAIL("Unexpected end-tag `%s': `</network_link>' expected.",surf_parse_text);
3045 #line 578 "surf/surfxml.l"
3046 FAIL("Unexpected character `%c': `</network_link>' expected.",surf_parse_text[0]);
3048 case YY_STATE_EOF(E_surfxml_network_link):
3049 #line 579 "surf/surfxml.l"
3050 FAIL("Premature EOF: `</network_link>' expected.");
3054 /* rule 101 can match eol */
3056 #line 582 "surf/surfxml.l"
3058 A_surfxml_route_src = NULL;
3059 A_surfxml_route_dst = NULL;
3060 A_surfxml_route_impact_on_src = "0.0";
3061 A_surfxml_route_impact_on_dst = "0.0";
3062 A_surfxml_route_impact_on_src_with_other_recv = "0.0";
3063 A_surfxml_route_impact_on_dst_with_other_send = "0.0";
3064 ENTER(AL_surfxml_route);
3069 /* rule 102 can match eol */
3071 #line 593 "surf/surfxml.l"
3072 ENTER(VALUE1); BUFFERSET(A_surfxml_route_src);
3075 /* rule 103 can match eol */
3077 #line 594 "surf/surfxml.l"
3078 ENTER(VALUE2); BUFFERSET(A_surfxml_route_src);
3081 /* rule 104 can match eol */
3083 #line 596 "surf/surfxml.l"
3084 ENTER(VALUE1); BUFFERSET(A_surfxml_route_dst);
3087 /* rule 105 can match eol */
3089 #line 597 "surf/surfxml.l"
3090 ENTER(VALUE2); BUFFERSET(A_surfxml_route_dst);
3093 /* rule 106 can match eol */
3095 #line 599 "surf/surfxml.l"
3096 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src);
3099 /* rule 107 can match eol */
3101 #line 600 "surf/surfxml.l"
3102 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src);
3105 /* rule 108 can match eol */
3107 #line 602 "surf/surfxml.l"
3108 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst);
3111 /* rule 109 can match eol */
3113 #line 603 "surf/surfxml.l"
3114 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst);
3117 /* rule 110 can match eol */
3119 #line 605 "surf/surfxml.l"
3120 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv);
3123 /* rule 111 can match eol */
3125 #line 606 "surf/surfxml.l"
3126 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv);
3129 /* rule 112 can match eol */
3131 #line 608 "surf/surfxml.l"
3132 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send);
3135 /* rule 113 can match eol */
3137 #line 609 "surf/surfxml.l"
3138 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send);
3142 #line 611 "surf/surfxml.l"
3144 if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3145 if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3146 LEAVE; STag_surfxml_route();surfxml_pcdata = NULL; ENTER(S_surfxml_route);
3151 #line 616 "surf/surfxml.l"
3153 if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3154 if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3155 LEAVE; STag_surfxml_route(); surfxml_pcdata = NULL; ETag_surfxml_route();
3157 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3158 case ROOT_surfxml_route: SET(EPILOG); break;
3159 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3165 #line 626 "surf/surfxml.l"
3166 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
3170 #line 627 "surf/surfxml.l"
3171 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
3173 case YY_STATE_EOF(AL_surfxml_route):
3174 #line 628 "surf/surfxml.l"
3175 FAIL("EOF in attribute list of `route' element.");
3180 /* rule 118 can match eol */
3182 #line 632 "surf/surfxml.l"
3185 ETag_surfxml_route();
3187 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3188 case ROOT_surfxml_route: SET(EPILOG); break;
3189 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3194 /* rule 119 can match eol */
3196 #line 641 "surf/surfxml.l"
3197 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
3201 #line 642 "surf/surfxml.l"
3202 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
3204 case YY_STATE_EOF(S_surfxml_route):
3205 case YY_STATE_EOF(S_surfxml_route_2):
3206 case YY_STATE_EOF(E_surfxml_route):
3207 #line 643 "surf/surfxml.l"
3208 FAIL("Premature EOF: `</route>' expected.");
3212 /* rule 121 can match eol */
3214 #line 646 "surf/surfxml.l"
3216 A_surfxml_route_element_name = NULL;
3217 ENTER(AL_surfxml_route_element);
3222 /* rule 122 can match eol */
3224 #line 652 "surf/surfxml.l"
3225 ENTER(VALUE1); BUFFERSET(A_surfxml_route_element_name);
3228 /* rule 123 can match eol */
3230 #line 653 "surf/surfxml.l"
3231 ENTER(VALUE2); BUFFERSET(A_surfxml_route_element_name);
3235 #line 655 "surf/surfxml.l"
3237 if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3238 LEAVE; STag_surfxml_route_element();surfxml_pcdata = NULL; ENTER(E_surfxml_route_element);
3243 #line 659 "surf/surfxml.l"
3245 if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3246 LEAVE; STag_surfxml_route_element(); surfxml_pcdata = NULL; ETag_surfxml_route_element();
3248 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3249 case ROOT_surfxml_route_element: SET(EPILOG); break;
3255 #line 667 "surf/surfxml.l"
3256 FAIL("Unexpected character `%c' in attribute list of route_element element.", surf_parse_text[0]);
3260 #line 668 "surf/surfxml.l"
3261 FAIL("Bad attribute `%s' in `route_element' element start tag.",surf_parse_text);
3263 case YY_STATE_EOF(AL_surfxml_route_element):
3264 #line 669 "surf/surfxml.l"
3265 FAIL("EOF in attribute list of `route_element' element.");
3270 /* rule 128 can match eol */
3272 #line 673 "surf/surfxml.l"
3275 ETag_surfxml_route_element();
3277 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3278 case ROOT_surfxml_route_element: SET(EPILOG); break;
3283 /* rule 129 can match eol */
3285 #line 681 "surf/surfxml.l"
3286 FAIL("Unexpected end-tag `%s': `</route_element>' expected.",surf_parse_text);
3290 #line 682 "surf/surfxml.l"
3291 FAIL("Unexpected character `%c': `</route_element>' expected.",surf_parse_text[0]);
3293 case YY_STATE_EOF(E_surfxml_route_element):
3294 #line 683 "surf/surfxml.l"
3295 FAIL("Premature EOF: `</route_element>' expected.");
3299 /* rule 131 can match eol */
3301 #line 686 "surf/surfxml.l"
3303 A_surfxml_process_host = NULL;
3304 A_surfxml_process_function = NULL;
3305 A_surfxml_process_start_time = "-1.0";
3306 A_surfxml_process_kill_time = "-1.0";
3307 ENTER(AL_surfxml_process);
3312 /* rule 132 can match eol */
3314 #line 695 "surf/surfxml.l"
3315 ENTER(VALUE1); BUFFERSET(A_surfxml_process_host);
3318 /* rule 133 can match eol */
3320 #line 696 "surf/surfxml.l"
3321 ENTER(VALUE2); BUFFERSET(A_surfxml_process_host);
3324 /* rule 134 can match eol */
3326 #line 698 "surf/surfxml.l"
3327 ENTER(VALUE1); BUFFERSET(A_surfxml_process_function);
3330 /* rule 135 can match eol */
3332 #line 699 "surf/surfxml.l"
3333 ENTER(VALUE2); BUFFERSET(A_surfxml_process_function);
3336 /* rule 136 can match eol */
3338 #line 701 "surf/surfxml.l"
3339 ENTER(VALUE1); BUFFERSET(A_surfxml_process_start_time);
3342 /* rule 137 can match eol */
3344 #line 702 "surf/surfxml.l"
3345 ENTER(VALUE2); BUFFERSET(A_surfxml_process_start_time);
3348 /* rule 138 can match eol */
3350 #line 704 "surf/surfxml.l"
3351 ENTER(VALUE1); BUFFERSET(A_surfxml_process_kill_time);
3354 /* rule 139 can match eol */
3356 #line 705 "surf/surfxml.l"
3357 ENTER(VALUE2); BUFFERSET(A_surfxml_process_kill_time);
3361 #line 707 "surf/surfxml.l"
3363 if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3364 if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3365 LEAVE; STag_surfxml_process();surfxml_pcdata = NULL; ENTER(S_surfxml_process);
3370 #line 712 "surf/surfxml.l"
3372 if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3373 if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3374 LEAVE; STag_surfxml_process(); surfxml_pcdata = NULL; ETag_surfxml_process();
3376 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3377 case ROOT_surfxml_process: SET(EPILOG); break;
3378 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3384 #line 722 "surf/surfxml.l"
3385 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
3389 #line 723 "surf/surfxml.l"
3390 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
3392 case YY_STATE_EOF(AL_surfxml_process):
3393 #line 724 "surf/surfxml.l"
3394 FAIL("EOF in attribute list of `process' element.");
3399 /* rule 144 can match eol */
3401 #line 728 "surf/surfxml.l"
3404 ETag_surfxml_process();
3406 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3407 case ROOT_surfxml_process: SET(EPILOG); break;
3408 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3413 /* rule 145 can match eol */
3415 #line 737 "surf/surfxml.l"
3416 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
3420 #line 738 "surf/surfxml.l"
3421 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
3423 case YY_STATE_EOF(S_surfxml_process):
3424 case YY_STATE_EOF(E_surfxml_process):
3425 case YY_STATE_EOF(S_surfxml_process_2):
3426 #line 739 "surf/surfxml.l"
3427 FAIL("Premature EOF: `</process>' expected.");
3431 /* rule 147 can match eol */
3433 #line 742 "surf/surfxml.l"
3435 A_surfxml_argument_value = NULL;
3436 ENTER(AL_surfxml_argument);
3441 /* rule 148 can match eol */
3443 #line 748 "surf/surfxml.l"
3444 ENTER(VALUE1); BUFFERSET(A_surfxml_argument_value);
3447 /* rule 149 can match eol */
3449 #line 749 "surf/surfxml.l"
3450 ENTER(VALUE2); BUFFERSET(A_surfxml_argument_value);
3454 #line 751 "surf/surfxml.l"
3456 if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3457 LEAVE; STag_surfxml_argument();surfxml_pcdata = NULL; ENTER(E_surfxml_argument);
3462 #line 755 "surf/surfxml.l"
3464 if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3465 LEAVE; STag_surfxml_argument(); surfxml_pcdata = NULL; ETag_surfxml_argument();
3467 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3468 case ROOT_surfxml_argument: SET(EPILOG); break;
3474 #line 763 "surf/surfxml.l"
3475 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
3479 #line 764 "surf/surfxml.l"
3480 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
3482 case YY_STATE_EOF(AL_surfxml_argument):
3483 #line 765 "surf/surfxml.l"
3484 FAIL("EOF in attribute list of `argument' element.");
3489 /* rule 154 can match eol */
3491 #line 769 "surf/surfxml.l"
3494 ETag_surfxml_argument();
3496 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3497 case ROOT_surfxml_argument: SET(EPILOG); break;
3502 /* rule 155 can match eol */
3504 #line 777 "surf/surfxml.l"
3505 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
3509 #line 778 "surf/surfxml.l"
3510 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
3512 case YY_STATE_EOF(E_surfxml_argument):
3513 #line 779 "surf/surfxml.l"
3514 FAIL("Premature EOF: `</argument>' expected.");
3517 /* EPILOG: after the root element. */
3521 #line 785 "surf/surfxml.l"
3522 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
3524 case YY_STATE_EOF(EPILOG):
3525 #line 786 "surf/surfxml.l"
3529 /* CHARACTER DATA. */
3531 /* Non-defined standard entities... */
3534 #line 793 "surf/surfxml.l"
3539 #line 794 "surf/surfxml.l"
3544 #line 795 "surf/surfxml.l"
3549 #line 796 "surf/surfxml.l"
3554 #line 797 "surf/surfxml.l"
3557 /* Character entities. */
3560 #line 800 "surf/surfxml.l"
3561 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
3565 #line 801 "surf/surfxml.l"
3566 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
3571 /* rule 165 can match eol */
3572 #line 806 "surf/surfxml.l"
3574 /* rule 166 can match eol */
3575 #line 807 "surf/surfxml.l"
3577 /* rule 167 can match eol */
3578 #line 808 "surf/surfxml.l"
3580 /* rule 168 can match eol */
3582 #line 808 "surf/surfxml.l"
3589 #line 812 "surf/surfxml.l"
3594 #line 813 "surf/surfxml.l"
3595 FAIL("Unexpected `]""]>' in character data.");
3601 #line 817 "surf/surfxml.l"
3604 case YY_STATE_EOF(VALUE1):
3605 #line 818 "surf/surfxml.l"
3606 FAIL("EOF in literal (\"'\" expected).");
3612 #line 822 "surf/surfxml.l"
3615 case YY_STATE_EOF(VALUE2):
3616 #line 823 "surf/surfxml.l"
3617 FAIL("EOF in literal (`\"' expected).");
3622 /* rule 173 can match eol */
3624 #line 827 "surf/surfxml.l"
3625 BUFFERPUTC(surf_parse_text[0]);
3629 #line 828 "surf/surfxml.l"
3630 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
3636 #line 832 "surf/surfxml.l"
3639 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
3642 #line 834 "surf/surfxml.l"
3643 BUFFERPUTC(surf_parse_text[0]);
3645 case YY_STATE_EOF(CDATA):
3646 #line 835 "surf/surfxml.l"
3647 FAIL("EOF in CDATA section.");
3650 /* Impossible rules to avoid warnings from flex(1). */
3651 /* Ideally, this should be replaced by code in flexml.pl that
3652 generates just the states not covered by other rules. */
3655 /* rule 177 can match eol */
3657 #line 842 "surf/surfxml.l"
3658 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
3663 #line 845 "surf/surfxml.l"
3666 #line 3667 "surf/surfxml.c"
3667 case YY_STATE_EOF(INITIAL):
3668 case YY_STATE_EOF(ROOT_surfxml_platform_description):
3669 case YY_STATE_EOF(S_surfxml_platform_description_1):
3670 case YY_STATE_EOF(ROOT_surfxml_include):
3671 case YY_STATE_EOF(S_surfxml_include_1):
3672 case YY_STATE_EOF(ROOT_surfxml_cpu):
3673 case YY_STATE_EOF(ROOT_surfxml_network_link):
3674 case YY_STATE_EOF(ROOT_surfxml_route):
3675 case YY_STATE_EOF(S_surfxml_route_1):
3676 case YY_STATE_EOF(ROOT_surfxml_route_element):
3677 case YY_STATE_EOF(ROOT_surfxml_process):
3678 case YY_STATE_EOF(S_surfxml_process_1):
3679 case YY_STATE_EOF(ROOT_surfxml_argument):
3680 case YY_STATE_EOF(IMPOSSIBLE):
3683 case YY_END_OF_BUFFER:
3685 /* Amount of text matched not including the EOB char. */
3686 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3688 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3689 *yy_cp = (yy_hold_char);
3690 YY_RESTORE_YY_MORE_OFFSET
3692 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3694 /* We're scanning a new file or input source. It's
3695 * possible that this happened because the user
3696 * just pointed surf_parse_in at a new source and called
3697 * surf_parse_lex(). If so, then we have to assure
3698 * consistency between YY_CURRENT_BUFFER and our
3699 * globals. Here is the right place to do so, because
3700 * this is the first action (other than possibly a
3701 * back-up) that will match for the new input source.
3703 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3704 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
3705 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3708 /* Note that here we test for yy_c_buf_p "<=" to the position
3709 * of the first EOB in the buffer, since yy_c_buf_p will
3710 * already have been incremented past the NUL character
3711 * (since all states make transitions on EOB to the
3712 * end-of-buffer state). Contrast this with the test
3715 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3716 { /* This was really a NUL. */
3717 yy_state_type yy_next_state;
3719 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3721 yy_current_state = yy_get_previous_state( );
3723 /* Okay, we're now positioned to make the NUL
3724 * transition. We couldn't have
3725 * yy_get_previous_state() go ahead and do it
3726 * for us because it doesn't know how to deal
3727 * with the possibility of jamming (and we don't
3728 * want to build jamming into it because then it
3729 * will run more slowly).
3732 yy_next_state = yy_try_NUL_trans( yy_current_state );
3734 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3736 if ( yy_next_state )
3738 /* Consume the NUL. */
3739 yy_cp = ++(yy_c_buf_p);
3740 yy_current_state = yy_next_state;
3746 yy_cp = (yy_c_buf_p);
3747 goto yy_find_action;
3751 else switch ( yy_get_next_buffer( ) )
3753 case EOB_ACT_END_OF_FILE:
3755 (yy_did_buffer_switch_on_eof) = 0;
3757 if ( surf_parse_wrap( ) )
3759 /* Note: because we've taken care in
3760 * yy_get_next_buffer() to have set up
3761 * surf_parse_text, we can now set up
3762 * yy_c_buf_p so that if some total
3763 * hoser (like flex itself) wants to
3764 * call the scanner after we return the
3765 * YY_NULL, it'll still work - another
3766 * YY_NULL will get returned.
3768 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3770 yy_act = YY_STATE_EOF(YY_START);
3776 if ( ! (yy_did_buffer_switch_on_eof) )
3782 case EOB_ACT_CONTINUE_SCAN:
3784 (yytext_ptr) + yy_amount_of_matched_text;
3786 yy_current_state = yy_get_previous_state( );
3788 yy_cp = (yy_c_buf_p);
3789 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3792 case EOB_ACT_LAST_MATCH:
3794 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3796 yy_current_state = yy_get_previous_state( );
3798 yy_cp = (yy_c_buf_p);
3799 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3800 goto yy_find_action;
3807 "fatal flex scanner internal error--no action found" );
3808 } /* end of action switch */
3809 } /* end of scanning one token */
3810 } /* end of surf_parse_lex */
3812 /* yy_get_next_buffer - try to read in a new buffer
3814 * Returns a code representing an action:
3815 * EOB_ACT_LAST_MATCH -
3816 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3817 * EOB_ACT_END_OF_FILE - end of file
3819 static int yy_get_next_buffer (void)
3821 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3822 register char *source = (yytext_ptr);
3823 register int number_to_move, i;
3826 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3828 "fatal flex scanner internal error--end of buffer missed" );
3830 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3831 { /* Don't try to fill the buffer, so this is an EOF. */
3832 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3834 /* We matched a single character, the EOB, so
3835 * treat this as a final EOF.
3837 return EOB_ACT_END_OF_FILE;
3842 /* We matched some text prior to the EOB, first
3845 return EOB_ACT_LAST_MATCH;
3849 /* Try to read more data. */
3851 /* First move last chars to start of buffer. */
3852 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3854 for ( i = 0; i < number_to_move; ++i )
3855 *(dest++) = *(source++);
3857 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3858 /* don't do the read, it's not guaranteed to return an EOF,
3861 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3866 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3868 while ( num_to_read <= 0 )
3869 { /* Not enough room in the buffer - grow it. */
3871 /* just a shorter name for the current buffer */
3872 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3874 int yy_c_buf_p_offset =
3875 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3877 if ( b->yy_is_our_buffer )
3879 int new_size = b->yy_buf_size * 2;
3881 if ( new_size <= 0 )
3882 b->yy_buf_size += b->yy_buf_size / 8;
3884 b->yy_buf_size *= 2;
3886 b->yy_ch_buf = (char *)
3887 /* Include room in for 2 EOB chars. */
3888 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
3891 /* Can't grow it, we don't own it. */
3894 if ( ! b->yy_ch_buf )
3896 "fatal error - scanner input buffer overflow" );
3898 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3900 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3905 if ( num_to_read > YY_READ_BUF_SIZE )
3906 num_to_read = YY_READ_BUF_SIZE;
3908 /* Read in more data. */
3909 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3910 (yy_n_chars), (size_t) num_to_read );
3912 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3915 if ( (yy_n_chars) == 0 )
3917 if ( number_to_move == YY_MORE_ADJ )
3919 ret_val = EOB_ACT_END_OF_FILE;
3920 surf_parse_restart(surf_parse_in );
3925 ret_val = EOB_ACT_LAST_MATCH;
3926 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3927 YY_BUFFER_EOF_PENDING;
3932 ret_val = EOB_ACT_CONTINUE_SCAN;
3934 (yy_n_chars) += number_to_move;
3935 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3936 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3938 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3943 /* yy_get_previous_state - get the state just before the EOB char was reached */
3945 static yy_state_type yy_get_previous_state (void)
3947 register yy_state_type yy_current_state;
3948 register char *yy_cp;
3950 yy_current_state = (yy_start);
3952 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3954 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3955 if ( yy_accept[yy_current_state] )
3957 (yy_last_accepting_state) = yy_current_state;
3958 (yy_last_accepting_cpos) = yy_cp;
3960 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3962 yy_current_state = (int) yy_def[yy_current_state];
3963 if ( yy_current_state >= 1345 )
3964 yy_c = yy_meta[(unsigned int) yy_c];
3966 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3969 return yy_current_state;
3972 /* yy_try_NUL_trans - try to make a transition on the NUL character
3975 * next_state = yy_try_NUL_trans( current_state );
3977 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3979 register int yy_is_jam;
3980 register char *yy_cp = (yy_c_buf_p);
3982 register YY_CHAR yy_c = 1;
3983 if ( yy_accept[yy_current_state] )
3985 (yy_last_accepting_state) = yy_current_state;
3986 (yy_last_accepting_cpos) = yy_cp;
3988 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3990 yy_current_state = (int) yy_def[yy_current_state];
3991 if ( yy_current_state >= 1345 )
3992 yy_c = yy_meta[(unsigned int) yy_c];
3994 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3995 yy_is_jam = (yy_current_state == 1344);
3997 return yy_is_jam ? 0 : yy_current_state;
4002 static int yyinput (void)
4004 static int input (void)
4010 *(yy_c_buf_p) = (yy_hold_char);
4012 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4014 /* yy_c_buf_p now points to the character we want to return.
4015 * If this occurs *before* the EOB characters, then it's a
4016 * valid NUL; if not, then we've hit the end of the buffer.
4018 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4019 /* This was really a NUL. */
4020 *(yy_c_buf_p) = '\0';
4023 { /* need more input */
4024 int offset = (yy_c_buf_p) - (yytext_ptr);
4027 switch ( yy_get_next_buffer( ) )
4029 case EOB_ACT_LAST_MATCH:
4030 /* This happens because yy_g_n_b()
4031 * sees that we've accumulated a
4032 * token and flags that we need to
4033 * try matching the token before
4034 * proceeding. But for input(),
4035 * there's no matching to consider.
4036 * So convert the EOB_ACT_LAST_MATCH
4037 * to EOB_ACT_END_OF_FILE.
4040 /* Reset buffer status. */
4041 surf_parse_restart(surf_parse_in );
4045 case EOB_ACT_END_OF_FILE:
4047 if ( surf_parse_wrap( ) )
4050 if ( ! (yy_did_buffer_switch_on_eof) )
4059 case EOB_ACT_CONTINUE_SCAN:
4060 (yy_c_buf_p) = (yytext_ptr) + offset;
4066 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
4067 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
4068 (yy_hold_char) = *++(yy_c_buf_p);
4072 surf_parse_lineno++;
4077 #endif /* ifndef YY_NO_INPUT */
4079 /** Immediately switch to a different input stream.
4080 * @param input_file A readable stream.
4082 * @note This function does not reset the start condition to @c INITIAL .
4084 void surf_parse_restart (FILE * input_file )
4087 if ( ! YY_CURRENT_BUFFER ){
4088 surf_parse_ensure_buffer_stack ();
4089 YY_CURRENT_BUFFER_LVALUE =
4090 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4093 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
4094 surf_parse__load_buffer_state( );
4097 /** Switch to a different input buffer.
4098 * @param new_buffer The new input buffer.
4101 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
4104 /* TODO. We should be able to replace this entire function body
4106 * surf_parse_pop_buffer_state();
4107 * surf_parse_push_buffer_state(new_buffer);
4109 surf_parse_ensure_buffer_stack ();
4110 if ( YY_CURRENT_BUFFER == new_buffer )
4113 if ( YY_CURRENT_BUFFER )
4115 /* Flush out information for old buffer. */
4116 *(yy_c_buf_p) = (yy_hold_char);
4117 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4118 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4121 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4122 surf_parse__load_buffer_state( );
4124 /* We don't actually know whether we did this switch during
4125 * EOF (surf_parse_wrap()) processing, but the only time this flag
4126 * is looked at is after surf_parse_wrap() is called, so it's safe
4127 * to go ahead and always set it.
4129 (yy_did_buffer_switch_on_eof) = 1;
4132 static void surf_parse__load_buffer_state (void)
4134 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4135 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4136 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4137 (yy_hold_char) = *(yy_c_buf_p);
4140 /** Allocate and initialize an input buffer state.
4141 * @param file A readable stream.
4142 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4144 * @return the allocated buffer state.
4146 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
4150 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4152 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4154 b->yy_buf_size = size;
4156 /* yy_ch_buf has to be 2 characters longer than the size given because
4157 * we need to put in 2 end-of-buffer characters.
4159 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
4160 if ( ! b->yy_ch_buf )
4161 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4163 b->yy_is_our_buffer = 1;
4165 surf_parse__init_buffer(b,file );
4170 /** Destroy the buffer.
4171 * @param b a buffer created with surf_parse__create_buffer()
4174 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
4180 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4181 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4183 if ( b->yy_is_our_buffer )
4184 surf_parse_free((void *) b->yy_ch_buf );
4186 surf_parse_free((void *) b );
4190 extern int isatty (int );
4191 #endif /* __cplusplus */
4193 /* Initializes or reinitializes a buffer.
4194 * This function is sometimes called more than once on the same buffer,
4195 * such as during a surf_parse_restart() or at EOF.
4197 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
4202 surf_parse__flush_buffer(b );
4204 b->yy_input_file = file;
4205 b->yy_fill_buffer = 1;
4207 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
4208 * called from surf_parse_restart() or through yy_get_next_buffer.
4209 * In that case, we don't want to reset the lineno or column.
4211 if (b != YY_CURRENT_BUFFER){
4212 b->yy_bs_lineno = 1;
4213 b->yy_bs_column = 0;
4216 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4221 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4222 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4225 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
4232 /* We always need two end-of-buffer characters. The first causes
4233 * a transition to the end-of-buffer state. The second causes
4234 * a jam in that state.
4236 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4237 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4239 b->yy_buf_pos = &b->yy_ch_buf[0];
4242 b->yy_buffer_status = YY_BUFFER_NEW;
4244 if ( b == YY_CURRENT_BUFFER )
4245 surf_parse__load_buffer_state( );
4248 /** Pushes the new state onto the stack. The new state becomes
4249 * the current state. This function will allocate the stack
4251 * @param new_buffer The new state.
4254 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
4256 if (new_buffer == NULL)
4259 surf_parse_ensure_buffer_stack();
4261 /* This block is copied from surf_parse__switch_to_buffer. */
4262 if ( YY_CURRENT_BUFFER )
4264 /* Flush out information for old buffer. */
4265 *(yy_c_buf_p) = (yy_hold_char);
4266 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4267 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4270 /* Only push if top exists. Otherwise, replace top. */
4271 if (YY_CURRENT_BUFFER)
4272 (yy_buffer_stack_top)++;
4273 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4275 /* copied from surf_parse__switch_to_buffer. */
4276 surf_parse__load_buffer_state( );
4277 (yy_did_buffer_switch_on_eof) = 1;
4280 /** Removes and deletes the top of the stack, if present.
4281 * The next element becomes the new top.
4284 void surf_parse_pop_buffer_state (void)
4286 if (!YY_CURRENT_BUFFER)
4289 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4290 YY_CURRENT_BUFFER_LVALUE = NULL;
4291 if ((yy_buffer_stack_top) > 0)
4292 --(yy_buffer_stack_top);
4294 if (YY_CURRENT_BUFFER) {
4295 surf_parse__load_buffer_state( );
4296 (yy_did_buffer_switch_on_eof) = 1;
4300 /* Allocates the stack if it does not exist.
4301 * Guarantees space for at least one push.
4303 static void surf_parse_ensure_buffer_stack (void)
4307 if (!(yy_buffer_stack)) {
4309 /* First allocation is just for 2 elements, since we don't know if this
4310 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4311 * immediate realloc on the next call.
4314 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
4315 (num_to_alloc * sizeof(struct yy_buffer_state*)
4318 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4320 (yy_buffer_stack_max) = num_to_alloc;
4321 (yy_buffer_stack_top) = 0;
4325 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4327 /* Increase the buffer to prepare for a possible push. */
4328 int grow_size = 8 /* arbitrary grow size */;
4330 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4331 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
4333 num_to_alloc * sizeof(struct yy_buffer_state*)
4336 /* zero only the new slots.*/
4337 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4338 (yy_buffer_stack_max) = num_to_alloc;
4342 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4343 * @param base the character buffer
4344 * @param size the size in bytes of the character buffer
4346 * @return the newly allocated buffer state object.
4348 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
4353 base[size-2] != YY_END_OF_BUFFER_CHAR ||
4354 base[size-1] != YY_END_OF_BUFFER_CHAR )
4355 /* They forgot to leave room for the EOB's. */
4358 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4360 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
4362 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4363 b->yy_buf_pos = b->yy_ch_buf = base;
4364 b->yy_is_our_buffer = 0;
4365 b->yy_input_file = 0;
4366 b->yy_n_chars = b->yy_buf_size;
4367 b->yy_is_interactive = 0;
4369 b->yy_fill_buffer = 0;
4370 b->yy_buffer_status = YY_BUFFER_NEW;
4372 surf_parse__switch_to_buffer(b );
4377 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
4378 * scan from a @e copy of @a str.
4379 * @param yystr a NUL-terminated string to scan
4381 * @return the newly allocated buffer state object.
4382 * @note If you want to scan bytes that may contain NUL values, then use
4383 * surf_parse__scan_bytes() instead.
4385 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
4388 return surf_parse__scan_bytes(yystr,strlen(yystr) );
4391 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
4392 * scan from a @e copy of @a bytes.
4393 * @param bytes the byte buffer to scan
4394 * @param len the number of bytes in the buffer pointed to by @a bytes.
4396 * @return the newly allocated buffer state object.
4398 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * yybytes, int _yybytes_len )
4405 /* Get memory for full buffer, including space for trailing EOB's. */
4406 n = _yybytes_len + 2;
4407 buf = (char *) surf_parse_alloc(n );
4409 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
4411 for ( i = 0; i < _yybytes_len; ++i )
4412 buf[i] = yybytes[i];
4414 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4416 b = surf_parse__scan_buffer(buf,n );
4418 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
4420 /* It's okay to grow etc. this buffer, and we should throw it
4421 * away when we're done.
4423 b->yy_is_our_buffer = 1;
4428 static void yy_push_state (int new_state )
4430 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4434 (yy_start_stack_depth) += YY_START_STACK_INCR;
4435 new_size = (yy_start_stack_depth) * sizeof( int );
4437 if ( ! (yy_start_stack) )
4438 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
4441 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
4443 if ( ! (yy_start_stack) )
4445 "out of memory expanding start-condition stack" );
4448 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4453 static void yy_pop_state (void)
4455 if ( --(yy_start_stack_ptr) < 0 )
4456 YY_FATAL_ERROR( "start-condition stack underflow" );
4458 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4461 #ifndef YY_EXIT_FAILURE
4462 #define YY_EXIT_FAILURE 2
4465 static void yy_fatal_error (yyconst char* msg )
4467 (void) fprintf( stderr, "%s\n", msg );
4468 exit( YY_EXIT_FAILURE );
4471 /* Redefine yyless() so it works in section 3 code. */
4477 /* Undo effects of setting up surf_parse_text. */ \
4478 int yyless_macro_arg = (n); \
4479 YY_LESS_LINENO(yyless_macro_arg);\
4480 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
4481 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
4482 (yy_hold_char) = *(yy_c_buf_p); \
4483 *(yy_c_buf_p) = '\0'; \
4484 surf_parse_leng = yyless_macro_arg; \
4488 /* Accessor methods (get/set functions) to struct members. */
4490 /** Get the current line number.
4493 int surf_parse_get_lineno (void)
4496 return surf_parse_lineno;
4499 /** Get the input stream.
4502 FILE *surf_parse_get_in (void)
4504 return surf_parse_in;
4507 /** Get the output stream.
4510 FILE *surf_parse_get_out (void)
4512 return surf_parse_out;
4515 /** Get the length of the current token.
4518 int surf_parse_get_leng (void)
4520 return surf_parse_leng;
4523 /** Get the current token.
4527 char *surf_parse_get_text (void)
4529 return surf_parse_text;
4532 /** Set the current line number.
4533 * @param line_number
4536 void surf_parse_set_lineno (int line_number )
4539 surf_parse_lineno = line_number;
4542 /** Set the input stream. This does not discard the current
4544 * @param in_str A readable stream.
4546 * @see surf_parse__switch_to_buffer
4548 void surf_parse_set_in (FILE * in_str )
4550 surf_parse_in = in_str ;
4553 void surf_parse_set_out (FILE * out_str )
4555 surf_parse_out = out_str ;
4558 int surf_parse_get_debug (void)
4560 return surf_parse__flex_debug;
4563 void surf_parse_set_debug (int bdebug )
4565 surf_parse__flex_debug = bdebug ;
4568 static int yy_init_globals (void)
4570 /* Initialization is the same as for the non-reentrant scanner.
4571 * This function is called from surf_parse_lex_destroy(), so don't allocate here.
4574 /* We do not touch surf_parse_lineno unless the option is enabled. */
4575 surf_parse_lineno = 1;
4577 (yy_buffer_stack) = 0;
4578 (yy_buffer_stack_top) = 0;
4579 (yy_buffer_stack_max) = 0;
4580 (yy_c_buf_p) = (char *) 0;
4584 (yy_start_stack_ptr) = 0;
4585 (yy_start_stack_depth) = 0;
4586 (yy_start_stack) = NULL;
4588 /* Defined in main.c */
4590 surf_parse_in = stdin;
4591 surf_parse_out = stdout;
4593 surf_parse_in = (FILE *) 0;
4594 surf_parse_out = (FILE *) 0;
4597 /* For future reference: Set errno on error, since we are called by
4598 * surf_parse_lex_init()
4603 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
4604 int surf_parse_lex_destroy (void)
4607 /* Pop the buffer stack, destroying each element. */
4608 while(YY_CURRENT_BUFFER){
4609 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4610 YY_CURRENT_BUFFER_LVALUE = NULL;
4611 surf_parse_pop_buffer_state();
4614 /* Destroy the stack itself. */
4615 surf_parse_free((yy_buffer_stack) );
4616 (yy_buffer_stack) = NULL;
4618 /* Destroy the start condition stack. */
4619 surf_parse_free((yy_start_stack) );
4620 (yy_start_stack) = NULL;
4622 /* Reset the globals. This is important in a non-reentrant scanner so the next time
4623 * surf_parse_lex() is called, initialization will occur. */
4630 * Internal utility routines.
4634 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4637 for ( i = 0; i < n; ++i )
4642 #ifdef YY_NEED_STRLEN
4643 static int yy_flex_strlen (yyconst char * s )
4646 for ( n = 0; s[n]; ++n )
4653 void *surf_parse_alloc (yy_size_t size )
4655 return (void *) malloc( size );
4658 void *surf_parse_realloc (void * ptr, yy_size_t size )
4660 /* The cast to (char *) in the following accommodates both
4661 * implementations that use char* generic pointers, and those
4662 * that use void* generic pointers. It works with the latter
4663 * because both ANSI C and C++ allow castless assignment from
4664 * any pointer type to void*, and deal with argument conversions
4665 * as though doing an assignment.
4667 return (void *) realloc( (char *) ptr, size );
4670 void surf_parse_free (void * ptr )
4672 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
4675 #define YYTABLES_NAME "yytables"
4677 #line 845 "surf/surfxml.l"
4681 /* Element context stack lookup. */
4682 int surfxml_element_context(int i)
4684 return (0<i && i<yy_start_stack_depth
4685 ? yy_start_stack[yy_start_stack_ptr - i]
4690 void print_yy_stack(char* fmt, ...)
4692 int i = 0; va_list ap; va_start(ap, fmt);
4693 vfprintf(stderr, fmt, ap);
4694 for (i=1; i<yy_start_stack_ptr; i++)
4695 fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
4696 fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
4700 static void debug_enter(int state, const char* statename) {
4701 yy_push_state(state);
4702 if (surf_parse__flex_debug) print_yy_stack("--ENTER(%s) : ",statename);
4705 static void debug_leave(void) {
4706 if (surf_parse__flex_debug) print_yy_stack("--LEAVE : ");
4710 static void debug_set(int state, const char* statename) {
4712 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
4716 enum {flexml_max_err_msg_size = 512};
4718 static char flexml_err_msg[flexml_max_err_msg_size];
4719 const char * surfxml_parse_err_msg()
4721 return flexml_err_msg;
4724 static void reset_surfxml_parse_err_msg()
4726 flexml_err_msg[0] = '\0';
4730 static void cleanup(void)
4732 if (surfxml_statenames) {
4733 free(surfxml_statenames);
4734 surfxml_statenames = NULL;
4739 static int fail(const char* fmt, ...)
4741 int chars_left, used;
4742 va_list ap; va_start(ap, fmt);
4743 #ifdef FLEXML_yylineno
4744 used = sprintf(flexml_err_msg,
4745 "Invalid XML (XML input line %d, state %d): ",
4746 surf_parse_lineno, YY_START);
4748 used = sprintf(flexml_err_msg,
4749 "Invalid XML (state %d): ",
4752 chars_left = flexml_max_err_msg_size - used - 1;
4753 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
4756 #ifndef FLEXML_quiet_parser
4757 /* print directly to sdterr */
4758 fprintf(stderr, "%s\n", flexml_err_msg);
4759 flexml_err_msg[0] = '\0';