1 #line 2 "surf/surfxml.c"
3 #line 4 "surf/surfxml.c"
5 #define YY_INT_ALIGNED short int
7 /* A lexical scanner generated by flex */
10 #define YY_FLEX_MAJOR_VERSION 2
11 #define YY_FLEX_MINOR_VERSION 5
12 #define YY_FLEX_SUBMINOR_VERSION 31
13 #if YY_FLEX_SUBMINOR_VERSION > 0
17 /* First, we deal with platform-specific or compiler-specific issues. */
19 /* begin standard C headers. */
25 /* end standard C headers. */
27 /* flex integer type definitions */
32 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
34 #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
36 typedef int8_t flex_int8_t;
37 typedef uint8_t flex_uint8_t;
38 typedef int16_t flex_int16_t;
39 typedef uint16_t flex_uint16_t;
40 typedef int32_t flex_int32_t;
41 typedef uint32_t flex_uint32_t;
43 typedef signed char flex_int8_t;
44 typedef short int flex_int16_t;
45 typedef int flex_int32_t;
46 typedef unsigned char flex_uint8_t;
47 typedef unsigned short int flex_uint16_t;
48 typedef unsigned int flex_uint32_t;
51 /* Limits of integral types. */
53 #define INT8_MIN (-128)
56 #define INT16_MIN (-32767-1)
59 #define INT32_MIN (-2147483647-1)
62 #define INT8_MAX (127)
65 #define INT16_MAX (32767)
68 #define INT32_MAX (2147483647)
71 #define UINT8_MAX (255U)
74 #define UINT16_MAX (65535U)
77 #define UINT32_MAX (4294967295U)
80 #endif /* ! FLEXINT_H */
84 /* The "const" storage-class-modifier is valid. */
87 #else /* ! __cplusplus */
94 #endif /* ! __cplusplus */
102 /* Returned upon end-of-file. */
105 /* Promotes a possibly negative, possibly signed char to an unsigned
106 * integer for use as an array index. If the signed char is negative,
107 * we want to instead treat it as an 8-bit unsigned char, hence the
110 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
112 /* Enter a start condition. This macro really ought to take a parameter,
113 * but we do it the disgusting crufty way forced on us by the ()-less
114 * definition of BEGIN.
116 #define BEGIN (yy_start) = 1 + 2 *
118 /* Translate the current start state into a value that can be later handed
119 * to BEGIN to return to the state. The YYSTATE alias is for lex
122 #define YY_START (((yy_start) - 1) / 2)
123 #define YYSTATE YY_START
125 /* Action number for EOF rule of a given start state. */
126 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
128 /* Special action meaning "start processing a new file". */
129 #define YY_NEW_FILE surf_parse_restart(surf_parse_in )
131 #define YY_END_OF_BUFFER_CHAR 0
133 /* Size of default input buffer. */
135 #define YY_BUF_SIZE 16384
138 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
139 #define YY_TYPEDEF_YY_BUFFER_STATE
140 typedef struct yy_buffer_state *YY_BUFFER_STATE;
143 extern int surf_parse_leng;
145 extern FILE *surf_parse_in, *surf_parse_out;
147 #define EOB_ACT_CONTINUE_SCAN 0
148 #define EOB_ACT_END_OF_FILE 1
149 #define EOB_ACT_LAST_MATCH 2
151 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
152 * access to the local variable yy_act. Since yyless() is a macro, it would break
153 * existing scanners that call yyless() from OUTSIDE surf_parse_lex.
154 * One obvious solution it to make yy_act a global. I tried that, and saw
155 * a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
156 * normally declared as a register variable-- so it is not worth it.
158 #define YY_LESS_LINENO(n) \
161 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
162 if ( surf_parse_text[yyl] == '\n' )\
163 --surf_parse_lineno;\
166 /* Return all but the first "n" matched characters back to the input stream. */
170 /* Undo effects of setting up surf_parse_text. */ \
171 int yyless_macro_arg = (n); \
172 YY_LESS_LINENO(yyless_macro_arg);\
173 *yy_cp = (yy_hold_char); \
174 YY_RESTORE_YY_MORE_OFFSET \
175 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
176 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
180 #define unput(c) yyunput( c, (yytext_ptr) )
182 /* The following is because we cannot portably get our hands on size_t
183 * (without autoconf's help, which isn't available because we want
184 * flex-generated scanners to compile on their own).
187 #ifndef YY_TYPEDEF_YY_SIZE_T
188 #define YY_TYPEDEF_YY_SIZE_T
189 typedef unsigned int yy_size_t;
192 #ifndef YY_STRUCT_YY_BUFFER_STATE
193 #define YY_STRUCT_YY_BUFFER_STATE
194 struct yy_buffer_state
198 char *yy_ch_buf; /* input buffer */
199 char *yy_buf_pos; /* current position in input buffer */
201 /* Size of input buffer in bytes, not including room for EOB
204 yy_size_t yy_buf_size;
206 /* Number of characters read into yy_ch_buf, not including EOB
211 /* Whether we "own" the buffer - i.e., we know we created it,
212 * and can realloc() it to grow it, and should free() it to
215 int yy_is_our_buffer;
217 /* Whether this is an "interactive" input source; if so, and
218 * if we're using stdio for input, then we want to use getc()
219 * instead of fread(), to make sure we stop fetching input after
222 int yy_is_interactive;
224 /* Whether we're considered to be at the beginning of a line.
225 * If so, '^' rules will be active on the next match, otherwise
230 int yy_bs_lineno; /**< The line count. */
231 int yy_bs_column; /**< The column count. */
233 /* Whether to try to fill the input buffer when we reach the
238 int yy_buffer_status;
240 #define YY_BUFFER_NEW 0
241 #define YY_BUFFER_NORMAL 1
242 /* When an EOF's been seen but there's still some text to process
243 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
244 * shouldn't try reading from the input source any more. We might
245 * still have a bunch of tokens to match, though, because of
246 * possible backing-up.
248 * When we actually see the EOF, we change the status to "new"
249 * (via surf_parse_restart()), so that the user can continue scanning by
250 * just pointing surf_parse_in at a new input file.
252 #define YY_BUFFER_EOF_PENDING 2
255 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
257 /* Stack of input buffers. */
258 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
259 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
260 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
262 /* We provide macros for accessing buffer states in case in the
263 * future we want to put the buffer states in a more general
266 * Returns the top of the stack, or NULL.
268 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
269 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
272 /* Same as previous macro, but useful when we know that the buffer stack is not
273 * NULL or when we need an lvalue. For internal use only.
275 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
277 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
278 static char yy_hold_char;
279 static int yy_n_chars; /* number of characters read into yy_ch_buf */
282 /* Points to current character in buffer. */
283 static char *yy_c_buf_p = (char *) 0;
284 static int yy_init = 1; /* whether we need to initialize */
285 static int yy_start = 0; /* start state number */
287 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
288 * instead of setting up a fresh surf_parse_in. A bit of a hack ...
290 static int yy_did_buffer_switch_on_eof;
292 void surf_parse_restart (FILE *input_file );
293 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer );
294 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size );
295 void surf_parse__delete_buffer (YY_BUFFER_STATE b );
296 void surf_parse__flush_buffer (YY_BUFFER_STATE b );
297 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer );
298 void surf_parse_pop_buffer_state (void );
300 static void surf_parse_ensure_buffer_stack (void );
301 static void surf_parse__load_buffer_state (void );
302 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file );
304 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
306 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size );
307 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str );
308 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len );
310 void *surf_parse_alloc (yy_size_t );
311 void *surf_parse_realloc (void *,yy_size_t );
312 void surf_parse_free (void * );
314 #define yy_new_buffer surf_parse__create_buffer
316 #define yy_set_interactive(is_interactive) \
318 if ( ! YY_CURRENT_BUFFER ){ \
319 surf_parse_ensure_buffer_stack (); \
320 YY_CURRENT_BUFFER_LVALUE = \
321 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
323 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
326 #define yy_set_bol(at_bol) \
328 if ( ! YY_CURRENT_BUFFER ){\
329 surf_parse_ensure_buffer_stack (); \
330 YY_CURRENT_BUFFER_LVALUE = \
331 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
333 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
336 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
338 /* Begin user sect3 */
340 #define surf_parse_wrap() 1
341 #define YY_SKIP_YYWRAP
343 typedef unsigned char YY_CHAR;
345 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
347 typedef int yy_state_type;
349 extern int surf_parse_lineno;
351 int surf_parse_lineno = 1;
353 extern char *surf_parse_text;
354 #define yytext_ptr surf_parse_text
356 static yy_state_type yy_get_previous_state (void );
357 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
358 static int yy_get_next_buffer (void );
359 static void yy_fatal_error (yyconst char msg[] );
361 /* Done after the current pattern has been matched and before the
362 * corresponding action - sets up surf_parse_text.
364 #define YY_DO_BEFORE_ACTION \
365 (yytext_ptr) = yy_bp; \
366 surf_parse_leng = (size_t) (yy_cp - yy_bp); \
367 (yy_hold_char) = *yy_cp; \
369 (yy_c_buf_p) = yy_cp;
371 #define YY_NUM_RULES 178
372 #define YY_END_OF_BUFFER 179
373 /* This struct is not used in this scanner,
374 but its presence is necessary. */
377 flex_int32_t yy_verify;
380 static yyconst flex_int16_t yy_accept[1345] =
382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
391 0, 0, 179, 177, 22, 10, 10, 22, 22, 157,
393 10, 157, 5, 6, 5, 8, 9, 8, 173, 165,
394 166, 174, 171, 174, 172, 176, 165, 166, 176, 177,
395 28, 10, 28, 28, 28, 26, 28, 32, 10, 32,
396 177, 32, 177, 38, 10, 38, 38, 38, 36, 38,
397 42, 10, 42, 42, 177, 68, 10, 68, 68, 68,
398 66, 68, 68, 68, 68, 68, 68, 72, 10, 72,
399 177, 96, 10, 96, 96, 96, 94, 96, 96, 96,
400 96, 100, 10, 100, 177, 116, 10, 116, 116, 116,
401 114, 116, 116, 116, 120, 10, 120, 177, 120, 126,
402 10, 126, 126, 126, 124, 126, 130, 10, 130, 177,
404 142, 10, 142, 142, 142, 140, 142, 142, 142, 142,
405 146, 10, 146, 177, 146, 152, 10, 152, 152, 152,
406 150, 152, 156, 10, 156, 174, 173, 10, 0, 2,
407 2, 0, 4, 7, 168, 167, 0, 0, 0, 0,
408 0, 0, 0, 27, 29, 29, 0, 0, 0, 0,
409 0, 0, 37, 39, 39, 0, 67, 69, 69, 69,
410 69, 69, 69, 69, 0, 95, 97, 97, 97, 97,
411 97, 97, 0, 115, 117, 117, 117, 117, 0, 0,
412 125, 127, 127, 0, 141, 143, 143, 143, 143, 143,
413 0, 0, 151, 153, 153, 0, 0, 0, 0, 0,
415 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
416 175, 0, 29, 0, 0, 0, 0, 0, 0, 0,
417 39, 0, 0, 69, 69, 69, 69, 69, 69, 0,
418 0, 97, 97, 97, 97, 97, 0, 0, 117, 117,
419 117, 0, 0, 0, 127, 0, 0, 143, 143, 143,
420 143, 0, 0, 0, 153, 0, 0, 0, 170, 0,
421 21, 1, 0, 0, 163, 0, 0, 0, 160, 159,
422 0, 0, 29, 0, 0, 31, 0, 43, 0, 0,
423 0, 0, 39, 0, 0, 41, 0, 69, 69, 69,
424 69, 69, 69, 0, 0, 71, 0, 97, 97, 97,
426 97, 97, 0, 0, 99, 0, 0, 0, 117, 0,
427 0, 0, 0, 119, 0, 0, 127, 0, 0, 129,
428 0, 143, 143, 143, 143, 0, 0, 145, 0, 0,
429 153, 0, 0, 155, 0, 0, 0, 0, 164, 158,
430 0, 0, 0, 29, 0, 43, 0, 0, 0, 0,
431 0, 0, 0, 69, 69, 69, 0, 0, 69, 69,
432 0, 97, 97, 0, 0, 97, 97, 0, 0, 105,
433 104, 117, 0, 103, 102, 0, 0, 0, 0, 0,
434 143, 0, 0, 143, 143, 0, 0, 153, 0, 0,
435 0, 0, 0, 12, 0, 161, 162, 0, 29, 0,
437 0, 0, 0, 101, 0, 35, 34, 0, 69, 69,
438 69, 0, 45, 44, 0, 0, 0, 0, 69, 0,
439 70, 97, 97, 0, 75, 74, 97, 0, 0, 97,
440 0, 117, 0, 0, 0, 123, 122, 0, 143, 0,
441 133, 132, 143, 143, 0, 0, 0, 0, 0, 0,
442 0, 0, 0, 11, 0, 29, 0, 0, 0, 0,
443 101, 0, 69, 69, 69, 0, 47, 46, 0, 0,
444 0, 69, 97, 97, 97, 0, 0, 0, 97, 0,
445 117, 0, 0, 0, 143, 143, 143, 0, 0, 0,
446 149, 148, 0, 0, 0, 0, 0, 0, 0, 0,
448 0, 33, 0, 131, 0, 69, 69, 69, 0, 0,
449 69, 97, 0, 0, 97, 97, 0, 0, 97, 0,
450 117, 0, 118, 0, 0, 143, 143, 143, 0, 0,
451 0, 0, 0, 0, 0, 0, 0, 25, 24, 0,
452 33, 0, 131, 0, 69, 69, 69, 0, 0, 0,
453 0, 69, 97, 0, 81, 80, 97, 97, 0, 0,
454 0, 0, 97, 0, 117, 0, 0, 0, 0, 143,
455 143, 0, 147, 0, 169, 0, 0, 0, 0, 0,
456 0, 0, 40, 69, 69, 69, 0, 53, 0, 52,
457 69, 0, 0, 97, 97, 97, 0, 85, 0, 84,
459 97, 0, 117, 0, 0, 0, 135, 134, 0, 0,
460 143, 0, 144, 147, 0, 0, 0, 0, 0, 0,
461 0, 0, 0, 0, 0, 0, 69, 69, 69, 55,
462 54, 0, 0, 0, 77, 76, 97, 97, 97, 87,
463 86, 0, 0, 0, 117, 117, 0, 0, 0, 139,
464 138, 0, 0, 0, 154, 0, 0, 0, 0, 0,
465 0, 0, 0, 0, 0, 0, 0, 69, 69, 69,
466 0, 57, 56, 97, 97, 97, 0, 89, 88, 0,
467 117, 117, 0, 0, 0, 137, 136, 0, 0, 0,
468 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
470 0, 69, 69, 69, 97, 0, 0, 97, 0, 117,
471 117, 0, 0, 0, 0, 0, 0, 0, 0, 0,
472 0, 0, 0, 0, 0, 73, 0, 49, 48, 69,
473 69, 69, 69, 97, 0, 83, 82, 97, 0, 0,
474 0, 117, 0, 0, 117, 121, 0, 0, 0, 0,
475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
476 0, 69, 69, 69, 69, 0, 0, 0, 0, 0,
477 98, 0, 109, 108, 117, 0, 107, 106, 117, 121,
478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
479 0, 0, 0, 0, 0, 0, 69, 69, 69, 69,
481 0, 79, 78, 0, 0, 0, 117, 117, 0, 128,
482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
483 12, 0, 12, 0, 0, 0, 69, 69, 69, 69,
484 0, 0, 0, 0, 117, 117, 0, 0, 0, 0,
485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
486 0, 0, 0, 0, 0, 0, 69, 0, 0, 0,
487 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
488 0, 0, 0, 0, 0, 0, 0, 51, 50, 0,
489 61, 60, 0, 59, 58, 69, 0, 65, 64, 0,
490 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
492 0, 0, 0, 11, 0, 0, 69, 0, 0, 0,
493 0, 117, 117, 0, 0, 0, 0, 0, 0, 0,
494 0, 23, 0, 69, 0, 0, 0, 0, 117, 117,
495 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,
496 0, 69, 0, 0, 0, 0, 117, 117, 0, 0,
497 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
498 0, 0, 91, 0, 90, 117, 117, 0, 0, 0,
499 0, 0, 0, 0, 0, 0, 0, 0, 63, 62,
500 93, 92, 117, 117, 0, 0, 0, 0, 0, 0,
501 0, 0, 0, 0, 117, 117, 0, 0, 0, 0,
503 0, 0, 0, 0, 0, 0, 0, 0, 117, 117,
504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
505 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
506 0, 0, 0, 0, 0, 0, 0, 0, 117, 117,
507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
508 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
511 0, 0, 0, 0, 0, 0, 0, 113, 112, 0,
512 111, 110, 0, 0, 0, 0, 0, 0, 0, 0,
514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
517 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
521 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
523 0, 0, 0, 20, 0, 0, 0, 13, 0, 0,
525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
526 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
527 0, 0, 19, 0, 0, 0, 0, 0, 0, 14,
528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
532 static yyconst flex_int32_t yy_ec[256] =
534 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
535 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
536 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
537 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
538 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
539 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
540 17, 18, 19, 1, 20, 21, 22, 23, 24, 25,
541 14, 26, 27, 14, 14, 14, 28, 29, 30, 31,
542 14, 32, 33, 34, 14, 14, 14, 14, 35, 14,
543 36, 1, 37, 1, 38, 1, 39, 40, 41, 42,
545 43, 44, 45, 46, 47, 14, 48, 49, 50, 51,
546 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
547 62, 14, 1, 1, 1, 1, 1, 1, 1, 1,
548 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
549 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
550 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
551 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
552 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
553 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
554 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
556 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
557 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
558 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
559 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
560 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
564 static yyconst flex_int32_t yy_meta[63] =
566 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
567 3, 1, 4, 5, 1, 1, 1, 6, 1, 7,
568 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
569 5, 5, 5, 5, 5, 1, 1, 5, 7, 7,
570 7, 7, 7, 7, 5, 5, 5, 5, 5, 5,
571 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
575 static yyconst flex_int16_t yy_base[1401] =
577 0, 0, 0, 3, 6, 9, 24, 27, 11, 14,
578 15, 17, 29, 38, 45, 52, 59, 61, 67, 70,
579 98, 157, 73, 76, 116, 120, 123, 126, 175, 179,
580 182, 185, 216, 260, 234, 238, 241, 278, 282, 285,
581 289, 304, 307, 310, 326, 0, 387, 390, 393, 396,
582 412, 468, 430, 434, 437, 440, 524, 580, 486, 490,
583 493, 496, 542, 546, 549, 552, 598, 602, 636, 687,
584 605, 608, 654, 658, 738, 794, 661, 664, 705, 709,
585 712, 715, 756, 760, 763, 767, 850, 909, 812, 816,
586 833, 868, 3674, 3675, 3675, 91, 141, 47, 62, 3675,
588 144, 132, 3675, 3675, 3663, 3675, 3675, 3654, 3675, 3667,
589 3667, 836, 3675, 3675, 3675, 3675, 3665, 3665, 3630, 194,
590 3675, 150, 3648, 0, 136, 3675, 3622, 3675, 200, 888,
591 889, 195, 192, 3675, 206, 3646, 0, 187, 3675, 3616,
592 3675, 313, 942, 446, 803, 3675, 511, 3644, 0, 440,
593 3675, 3602, 3609, 3620, 3619, 3605, 3599, 3675, 518, 558,
594 717, 3675, 570, 3637, 0, 559, 3675, 3615, 3614, 3613,
595 92, 3675, 626, 614, 768, 3675, 679, 3633, 0, 615,
596 3675, 3594, 3599, 3593, 3675, 682, 877, 772, 715, 3675,
597 786, 3629, 0, 773, 3675, 3607, 3675, 822, 883, 878,
599 3675, 831, 3627, 0, 859, 3675, 3586, 3591, 3595, 3584,
600 3675, 843, 943, 918, 887, 3675, 947, 3622, 0, 872,
601 3675, 3600, 3675, 956, 951, 3633, 3600, 962, 34, 3575,
602 3675, 3625, 3616, 3675, 3675, 3675, 26, 32, 3576, 3575,
603 3573, 3612, 3580, 3675, 0, 3573, 3574, 3573, 3574, 3581,
604 3568, 3570, 3675, 0, 3572, 3573, 3675, 0, 3580, 3561,
605 3556, 3566, 3555, 3575, 3572, 3675, 0, 3561, 3554, 3560,
606 3570, 3569, 3556, 3675, 0, 3549, 3552, 3563, 3548, 3550,
607 3675, 0, 3551, 3545, 3675, 0, 3548, 3542, 3548, 3557,
608 3542, 3539, 3675, 0, 3544, 3553, 3555, 3572, 3571, 3578,
610 5, 3537, 3675, 75, 0, 3533, 3533, 3569, 3568, 3530,
611 3675, 3542, 3524, 969, 972, 3521, 3537, 3520, 3524, 3517,
612 3531, 976, 982, 3526, 3529, 3533, 3527, 3526, 3511, 999,
613 1002, 3525, 3523, 3522, 3509, 3506, 1005, 1008, 1011, 3523,
614 1027, 1032, 1035, 3503, 3517, 1038, 1043, 3518, 3501, 3508,
615 3501, 1055, 1060, 3510, 3496, 1063, 1066, 3531, 3675, 3534,
616 3675, 3675, 233, 3502, 3675, 3535, 3534, 3492, 3675, 3675,
617 3490, 3489, 3498, 1072, 1089, 3675, 1094, 1097, 3495, 3483,
618 3501, 3484, 1100, 1106, 1116, 3675, 1123, 3491, 3484, 3486,
619 1126, 3482, 3493, 1133, 1136, 3675, 1142, 3475, 3483, 1145,
621 3486, 3489, 1153, 1163, 3675, 1166, 1170, 1173, 3490, 1186,
622 1189, 1202, 1206, 3675, 1209, 3473, 1212, 1215, 1228, 3675,
623 1232, 3472, 1235, 3490, 3470, 1238, 1241, 3675, 1245, 3468,
624 3482, 1251, 1258, 3675, 1262, 3501, 122, 1268, 3675, 3675,
625 3508, 3507, 3477, 3468, 1271, 1275, 3461, 3466, 3474, 3473,
626 1279, 1289, 1297, 3476, 3470, 3455, 1300, 1307, 1316, 1319,
627 1322, 3465, 3470, 1327, 1339, 3459, 1335, 1347, 1352, 3675,
628 3675, 3452, 1360, 3675, 3675, 1368, 3465, 1372, 1375, 1388,
629 3460, 1391, 1394, 3449, 3467, 1408, 3454, 1411, 1414, 3483,
630 115, 3484, 1417, 3675, 3483, 3675, 3675, 3448, 3448, 1420,
632 3456, 3442, 3440, 1427, 1437, 3675, 3675, 1448, 3455, 3451,
633 3436, 1452, 3675, 3675, 1465, 1471, 1481, 1484, 3448, 1492,
634 3675, 3449, 3428, 1498, 3675, 3675, 3444, 1509, 1512, 3444,
635 1520, 3449, 1525, 3448, 1528, 3675, 3675, 1537, 3433, 1542,
636 3675, 3675, 3437, 3426, 1555, 3439, 1550, 1560, 1572, 3447,
637 66, 197, 153, 3675, 3425, 1575, 1579, 3436, 3430, 3421,
638 1582, 1585, 3429, 3420, 3429, 1598, 3675, 3675, 1606, 3443,
639 3442, 3424, 3413, 1615, 3431, 1631, 3438, 3437, 3419, 1621,
640 3413, 1626, 3421, 1639, 3412, 3412, 3414, 1643, 3409, 1646,
641 3675, 3675, 1660, 3439, 300, 281, 194, 3408, 1656, 1663,
643 1677, 1591, 3419, 1680, 1683, 3407, 3412, 3402, 296, 376,
644 3404, 3406, 1687, 1703, 3407, 3397, 379, 382, 3400, 1690,
645 3397, 1711, 3675, 3398, 1715, 1694, 3403, 3395, 1718, 3387,
646 1721, 3407, 1738, 238, 408, 3404, 1741, 3675, 3675, 1749,
647 1757, 3392, 1760, 1766, 3393, 3388, 3391, 3412, 3430, 3410,
648 3425, 3390, 1773, 1776, 3675, 3675, 3385, 3379, 3405, 3423,
649 3403, 3418, 3383, 1784, 3387, 3381, 1789, 1792, 1810, 1801,
650 3380, 1821, 1824, 1827, 3675, 1883, 241, 256, 3380, 1830,
651 3374, 1833, 3675, 3363, 3378, 3367, 3411, 3675, 3407, 3675,
652 1838, 1850, 1854, 3371, 3365, 3364, 3406, 3675, 3402, 3675,
654 1862, 1870, 896, 3360, 1873, 1890, 3675, 3675, 1878, 1900,
655 1908, 1911, 3675, 1867, 1924, 240, 429, 384, 162, 520,
656 439, 500, 449, 3366, 1929, 3357, 3345, 3363, 3360, 3675,
657 3675, 1937, 1942, 1953, 3675, 3675, 3357, 3360, 3355, 3675,
658 3675, 1961, 1964, 1972, 3345, 3345, 3356, 1977, 1980, 3675,
659 3675, 1989, 1994, 2005, 3675, 549, 73, 660, 558, 632,
660 505, 172, 734, 883, 3342, 2008, 3349, 2011, 3358, 3357,
661 2027, 3675, 3675, 3345, 2018, 3352, 2035, 3675, 3675, 2014,
662 3335, 3350, 3339, 2043, 2050, 3675, 3675, 617, 2060, 661,
663 959, 935, 862, 970, 614, 2064, 3348, 2067, 2070, 2073,
665 2085, 3344, 399, 3332, 3245, 2093, 2096, 3225, 2104, 2109,
666 2112, 3220, 2115, 711, 2128, 763, 561, 830, 855, 861,
667 2136, 2139, 2156, 3219, 2165, 2132, 2169, 3675, 3675, 3224,
668 3225, 3222, 3223, 2177, 2182, 3675, 3675, 2193, 2196, 2199,
669 2209, 3199, 2205, 2217, 3196, 2225, 2228, 973, 284, 775,
670 448, 915, 613, 2231, 2234, 2238, 2255, 2285, 2322, 3206,
671 2263, 3197, 3200, 3185, 3174, 2251, 2268, 2303, 2306, 2280,
672 3675, 2340, 3675, 3675, 3179, 2348, 3675, 3675, 3174, 2276,
673 2358, 981, 963, 1000, 1004, 1030, 1076, 2361, 1006, 2364,
674 1054, 41, 2394, 2431, 3163, 2423, 3168, 2993, 3009, 3006,
676 2381, 3675, 3675, 2412, 1046, 1055, 2991, 2990, 2389, 3675,
677 1059, 1071, 2451, 585, 1036, 2454, 1088, 1064, 1179, 492,
678 3040, 103, 3036, 2457, 2985, 2460, 2477, 2480, 2483, 2486,
679 3021, 3014, 3012, 3000, 2979, 2977, 2489, 708, 2502, 1065,
680 1093, 2506, 1145, 1140, 3000, 2986, 2979, 2512, 2857, 2515,
681 2523, 2539, 2534, 2550, 2558, 2561, 2845, 2574, 2577, 2791,
682 2791, 2766, 2729, 2678, 2665, 2585, 811, 1124, 951, 1183,
683 1233, 1162, 1176, 2670, 2564, 2590, 2593, 3675, 3675, 2603,
684 3675, 3675, 2611, 3675, 3675, 2539, 2619, 3675, 3675, 2538,
685 2496, 2481, 2434, 2281, 2267, 1270, 2627, 1189, 1135, 1316,
687 1294, 1290, 1317, 3675, 2266, 2630, 2198, 2177, 2169, 2163,
688 2124, 2046, 2000, 1314, 2637, 1349, 1104, 1143, 1367, 1266,
689 1386, 2420, 2647, 1901, 1877, 1884, 1639, 1603, 1560, 1503,
690 1429, 1409, 1415, 1364, 2650, 1416, 1381, 2654, 1391, 2657,
691 2660, 2667, 1512, 1483, 1420, 1371, 1263, 1242, 1418, 1441,
692 1461, 1463, 2671, 1203, 1507, 2677, 2688, 2697, 3675, 2705,
693 2708, 1196, 3675, 1141, 3675, 970, 680, 1532, 1487, 1515,
694 2716, 1435, 1210, 2721, 1491, 1543, 2724, 2727, 3675, 3675,
695 3675, 3675, 695, 692, 2741, 1547, 1656, 2744, 1335, 1444,
696 2752, 1538, 1553, 1485, 620, 570, 2762, 498, 719, 1595,
698 1598, 1474, 1460, 1692, 1698, 1620, 1710, 1369, 464, 419,
699 1717, 1765, 1618, 1638, 1713, 1731, 1596, 1719, 1739, 1788,
700 1737, 1799, 1587, 409, 369, 1792, 1831, 1653, 1829, 1843,
701 1865, 1780, 1900, 1882, 1903, 1783, 1844, 1899, 258, 187,
702 1917, 1932, 1716, 1879, 1925, 1981, 2770, 1943, 2006, 2016,
703 1935, 2030, 2065, 2773, 2779, 2040, 2083, 1959, 2037, 2102,
704 2103, 2783, 2791, 2126, 2131, 2106, 2127, 2795, 2800, 2812,
705 2803, 2820, 2164, 2187, 1802, 1931, 2225, 2245, 1984, 1986,
706 2828, 2295, 2298, 2159, 2206, 2831, 2839, 3675, 3675, 2848,
707 3675, 3675, 2338, 2354, 2086, 2293, 2227, 2329, 2278, 2359,
709 2074, 2337, 2356, 2402, 2410, 1987, 2133, 2424, 2447, 2119,
710 2362, 2484, 2511, 2244, 2314, 1782, 2539, 2555, 2296, 2514,
711 2371, 2453, 2593, 2608, 2856, 2456, 2459, 2401, 2505, 1712,
712 2516, 2526, 2556, 2582, 2529, 2572, 2624, 2679, 2860, 3675,
713 2528, 2620, 2390, 2583, 2357, 2675, 2678, 2629, 2658, 2592,
714 2669, 2684, 2722, 2742, 2749, 2481, 2687, 2232, 2794, 2826,
715 2863, 2792, 2809, 2829, 2837, 2745, 2676, 2720, 2790, 2873,
716 2866, 2810, 2883, 3675, 2838, 2855, 2874, 2880, 2891, 2872,
717 2885, 2904, 2912, 2820, 2879, 2915, 2921, 3675, 2884, 2893,
718 2864, 2881, 2938, 3675, 2916, 2918, 2941, 3675, 2894, 2903,
720 2913, 2914, 2920, 2928, 2931, 2932, 2929, 2930, 2934, 2935,
721 2948, 2946, 2734, 2939, 2940, 2945, 2975, 2943, 2947, 2962,
722 2958, 2992, 3675, 2951, 2957, 2995, 2963, 2968, 3012, 3675,
723 2991, 3000, 2982, 2985, 2971, 2972, 3001, 3002, 3015, 3013,
724 3032, 3035, 3675, 3675, 3053, 3060, 3067, 3074, 3081, 3088,
725 3095, 3102, 3109, 3116, 3123, 3130, 3137, 3144, 3151, 3158,
726 3165, 3172, 3179, 3186, 3193, 3200, 3205, 3210, 3215, 3220,
727 3225, 3230, 3235, 3240, 3247, 3250, 3253, 3256, 3259, 3262,
728 3265, 3268, 3271, 3278, 3282, 3288, 3294, 3300, 3306, 3312,
729 3318, 3324, 3330, 3337, 3344, 3351, 3358, 3365, 3372, 3379
733 static yyconst flex_int16_t yy_def[1401] =
735 1345, 1345, 1346, 1346, 1346, 1346, 1347, 1347, 1348, 1348,
736 1349, 1349, 1350, 1350, 1350, 1350, 1351, 1351, 1345, 1345,
737 1352, 1352, 1353, 1353, 1345, 1345, 1353, 1353, 1353, 1353,
738 1345, 1345, 1354, 1354, 1355, 1355, 1345, 1345, 1355, 1355,
739 1355, 1355, 1345, 1345, 1344, 45, 1356, 1356, 1345, 1345,
740 1357, 1357, 1358, 1358, 1345, 1345, 1359, 1359, 1360, 1360,
741 1345, 1345, 1360, 1360, 1360, 1360, 1345, 1345, 1361, 1361,
742 1362, 1362, 1345, 1345, 1363, 1363, 1364, 1364, 1345, 1345,
743 1364, 1364, 1364, 1364, 1345, 1345, 1365, 1365, 1366, 1366,
744 1350, 1350, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
746 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
747 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
748 1344, 1344, 1344, 1367, 1344, 1344, 1367, 1344, 1344, 1344,
749 1344, 1344, 1344, 1344, 1344, 1344, 1368, 1344, 1344, 1368,
750 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344,
751 1344, 1369, 1369, 1369, 1369, 1369, 1369, 1344, 1344, 1344,
752 1344, 1344, 1344, 1344, 1370, 1344, 1344, 1370, 1370, 1370,
753 1370, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1371, 1344,
754 1344, 1371, 1371, 1371, 1344, 1344, 1344, 1344, 1344, 1344,
755 1344, 1344, 1372, 1344, 1344, 1372, 1344, 1344, 1344, 1344,
757 1344, 1344, 1344, 1373, 1344, 1344, 1373, 1373, 1373, 1373,
758 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1374, 1344,
759 1344, 1374, 1344, 1344, 1344, 1344, 1344, 1344, 1375, 1344,
760 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
761 1344, 1344, 1344, 1344, 1367, 1367, 1376, 1344, 1344, 1344,
762 1344, 1344, 1344, 1368, 1368, 1377, 1344, 1369, 1369, 1369,
763 1369, 1369, 1369, 1369, 1378, 1344, 1370, 1370, 1370, 1370,
764 1370, 1370, 1379, 1344, 1371, 1371, 1371, 1371, 1380, 1344,
765 1344, 1372, 1372, 1381, 1344, 1373, 1373, 1373, 1373, 1373,
766 1382, 1344, 1344, 1374, 1374, 1383, 1344, 1344, 1384, 1344,
768 1384, 1344, 1344, 1344, 1385, 1344, 1344, 1344, 1344, 1344,
769 1344, 1344, 1367, 1386, 1386, 1344, 1344, 1344, 1344, 1344,
770 1368, 1387, 1387, 1369, 1369, 1369, 1369, 1369, 1369, 1388,
771 1388, 1370, 1370, 1370, 1370, 1370, 1389, 1389, 1371, 1371,
772 1371, 1390, 1390, 1344, 1372, 1391, 1391, 1373, 1373, 1373,
773 1373, 1392, 1392, 1344, 1374, 1393, 1393, 1344, 1344, 1384,
774 1344, 1344, 1384, 1344, 1344, 1385, 1344, 1344, 1344, 1344,
775 1344, 1344, 1367, 1344, 1386, 1344, 1386, 1344, 1344, 1344,
776 1344, 1344, 1368, 1344, 1387, 1344, 1387, 1369, 1369, 1369,
777 1369, 1369, 1369, 1344, 1388, 1344, 1388, 1370, 1370, 1370,
779 1370, 1370, 1344, 1389, 1344, 1389, 1344, 1344, 1371, 1344,
780 1344, 1344, 1390, 1344, 1390, 1344, 1372, 1344, 1391, 1344,
781 1391, 1373, 1373, 1373, 1373, 1344, 1392, 1344, 1392, 1344,
782 1374, 1344, 1393, 1344, 1393, 1344, 1384, 1394, 1344, 1344,
783 1344, 1344, 1344, 1367, 1386, 1344, 1344, 1344, 1344, 1344,
784 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1369, 1369,
785 1388, 1370, 1370, 1344, 1344, 1370, 1370, 1389, 1344, 1344,
786 1344, 1371, 1344, 1344, 1344, 1390, 1344, 1344, 1344, 1391,
787 1373, 1344, 1344, 1373, 1373, 1392, 1344, 1374, 1393, 1344,
788 1384, 1394, 1394, 1344, 1394, 1344, 1344, 1344, 1367, 1386,
790 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1387, 1369, 1369,
791 1369, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344,
792 1344, 1370, 1370, 1344, 1344, 1344, 1370, 1344, 1344, 1370,
793 1389, 1371, 1390, 1344, 1344, 1344, 1344, 1391, 1373, 1344,
794 1344, 1344, 1373, 1373, 1392, 1344, 1344, 1344, 1393, 1344,
795 1384, 1394, 1394, 1344, 1344, 1367, 1386, 1344, 1344, 1344,
796 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1344, 1344, 1344,
797 1344, 1369, 1370, 1370, 1370, 1344, 1344, 1344, 1370, 1389,
798 1371, 1390, 1344, 1391, 1373, 1373, 1373, 1392, 1344, 1344,
799 1344, 1344, 1393, 1344, 1384, 1394, 1394, 1344, 1344, 1344,
801 1386, 1344, 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344,
802 1369, 1370, 1344, 1344, 1370, 1370, 1344, 1344, 1370, 1389,
803 1371, 1344, 1344, 1344, 1391, 1373, 1373, 1373, 1392, 1344,
804 1393, 1344, 1384, 1394, 1394, 1344, 1344, 1344, 1344, 1386,
805 1344, 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1344,
806 1344, 1369, 1370, 1344, 1344, 1344, 1370, 1370, 1344, 1344,
807 1344, 1344, 1370, 1389, 1371, 1344, 1391, 1344, 1344, 1373,
808 1373, 1392, 1344, 1393, 1344, 1384, 1394, 1394, 1344, 1386,
809 1344, 1344, 1344, 1369, 1369, 1369, 1344, 1344, 1344, 1344,
810 1369, 1344, 1344, 1370, 1370, 1370, 1344, 1344, 1344, 1344,
812 1370, 1389, 1371, 1344, 1391, 1344, 1344, 1344, 1344, 1344,
813 1373, 1344, 1344, 1344, 1393, 1384, 1384, 1384, 1384, 1384,
814 1384, 1394, 1394, 1344, 1386, 1344, 1369, 1369, 1369, 1344,
815 1344, 1344, 1344, 1344, 1344, 1344, 1370, 1370, 1370, 1344,
816 1344, 1344, 1344, 1389, 1371, 1371, 1344, 1391, 1344, 1344,
817 1344, 1344, 1344, 1344, 1344, 1384, 1384, 1384, 1384, 1384,
818 1384, 1384, 1394, 1394, 1344, 1386, 1344, 1369, 1369, 1369,
819 1344, 1344, 1344, 1370, 1370, 1370, 1344, 1344, 1344, 1389,
820 1371, 1371, 1344, 1391, 1344, 1344, 1344, 1384, 1384, 1384,
821 1384, 1384, 1384, 1384, 1394, 1394, 1344, 1386, 1344, 1344,
823 1344, 1369, 1369, 1369, 1370, 1344, 1344, 1370, 1389, 1371,
824 1371, 1344, 1391, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
825 1394, 1394, 1394, 1344, 1386, 1344, 1344, 1344, 1344, 1369,
826 1369, 1369, 1369, 1370, 1344, 1344, 1344, 1370, 1389, 1344,
827 1344, 1371, 1344, 1344, 1371, 1344, 1391, 1384, 1384, 1384,
828 1384, 1384, 1384, 1384, 1394, 1394, 1394, 1395, 1396, 1344,
829 1386, 1369, 1369, 1369, 1369, 1344, 1344, 1344, 1344, 1344,
830 1344, 1344, 1344, 1344, 1371, 1344, 1344, 1344, 1371, 1344,
831 1391, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1394,
832 1397, 1398, 1395, 1396, 1344, 1386, 1369, 1369, 1369, 1369,
834 1344, 1344, 1344, 1344, 1344, 1344, 1371, 1371, 1344, 1344,
835 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1397, 1394,
836 1399, 1398, 1400, 1394, 1344, 1386, 1369, 1369, 1369, 1369,
837 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384,
838 1384, 1384, 1384, 1384, 1399, 1344, 1400, 1394, 1344, 1386,
839 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344, 1344, 1344,
840 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
841 1384, 1384, 1384, 1344, 1344, 1386, 1344, 1344, 1344, 1344,
842 1344, 1344, 1344, 1344, 1344, 1369, 1344, 1344, 1344, 1344,
843 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
845 1384, 1384, 1384, 1344, 1344, 1386, 1369, 1344, 1344, 1344,
846 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
847 1384, 1344, 1386, 1369, 1344, 1344, 1344, 1344, 1371, 1371,
848 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
849 1386, 1369, 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384,
850 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344,
851 1344, 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384,
852 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344,
853 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384, 1384,
854 1384, 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384,
856 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1371, 1371,
857 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
858 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
859 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1371, 1371,
860 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
861 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
862 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344,
863 1344, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
864 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344, 1344,
865 1344, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
867 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
868 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
869 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
870 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
871 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
872 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
873 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
874 1384, 1384, 1384, 1344, 1384, 1384, 1384, 1384, 1384, 1384,
875 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1384, 1384,
876 1384, 1384, 1384, 1344, 1384, 1384, 1384, 1344, 1384, 1384,
878 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
879 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
880 1384, 1384, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
881 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
882 1384, 1384, 1344, 0, 1344, 1344, 1344, 1344, 1344, 1344,
883 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
884 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
885 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
886 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
887 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344
891 static yyconst flex_int16_t yy_nxt[3738] =
893 1344, 96, 97, 96, 96, 97, 96, 96, 97, 96,
894 96, 97, 96, 104, 1344, 98, 104, 107, 98, 107,
895 105, 99, 361, 105, 99, 101, 97, 101, 101, 97,
896 101, 110, 111, 108, 363, 108, 112, 113, 304, 102,
897 110, 111, 102, 300, 114, 112, 113, 110, 111, 920,
898 115, 229, 112, 114, 110, 111, 301, 115, 923, 112,
899 114, 117, 118, 117, 118, 230, 229, 114, 97, 97,
900 97, 97, 97, 97, 129, 97, 129, 129, 97, 129,
901 231, 306, 120, 361, 307, 120, 305, 304, 130, 365,
902 361, 130, 228, 228, 228, 119, 595, 119, 121, 122,
904 97, 122, 121, 121, 121, 121, 121, 121, 121, 123,
905 121, 920, 121, 125, 121, 126, 121, 97, 97, 97,
906 923, 97, 97, 97, 129, 97, 129, 129, 97, 129,
907 789, 131, 361, 121, 121, 131, 232, 271, 130, 361,
908 232, 130, 228, 228, 228, 228, 228, 228, 272, 551,
909 231, 228, 228, 228, 231, 491, 127, 121, 122, 97,
910 122, 121, 121, 121, 121, 121, 121, 121, 123, 121,
911 494, 121, 125, 121, 126, 121, 129, 97, 129, 361,
912 129, 97, 129, 97, 97, 97, 97, 97, 97, 361,
913 132, 232, 121, 121, 132, 597, 232, 133, 232, 232,
915 133, 228, 228, 228, 759, 231, 247, 228, 228, 228,
916 231, 494, 231, 231, 494, 127, 134, 135, 97, 135,
917 134, 134, 134, 134, 134, 134, 134, 136, 134, 794,
918 134, 138, 134, 139, 134, 142, 97, 142, 249, 142,
919 97, 142, 97, 97, 97, 1155, 243, 596, 635, 143,
920 361, 134, 134, 143, 437, 494, 131, 361, 494, 140,
921 134, 135, 97, 135, 134, 134, 134, 134, 134, 134,
922 134, 136, 134, 494, 134, 138, 134, 139, 134, 97,
923 97, 97, 722, 142, 97, 142, 142, 97, 142, 677,
924 142, 97, 142, 131, 756, 134, 134, 143, 494, 1154,
926 143, 361, 723, 140, 144, 142, 97, 142, 97, 97,
927 97, 97, 97, 97, 228, 228, 228, 361, 883, 144,
928 648, 634, 145, 633, 649, 145, 146, 147, 97, 147,
929 146, 146, 146, 146, 146, 146, 146, 148, 146, 149,
930 146, 150, 146, 151, 146, 149, 149, 149, 149, 149,
931 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
932 149, 146, 146, 149, 152, 149, 149, 149, 149, 149,
933 149, 149, 153, 149, 149, 154, 155, 149, 156, 149,
934 149, 157, 149, 149, 149, 149, 149, 149, 159, 97,
935 159, 159, 97, 159, 97, 97, 97, 97, 97, 97,
937 650, 361, 160, 659, 651, 160, 661, 660, 161, 1140,
938 662, 161, 162, 163, 97, 163, 162, 162, 162, 162,
939 162, 162, 162, 164, 162, 494, 162, 166, 162, 167,
940 162, 173, 97, 173, 758, 173, 97, 173, 97, 97,
941 97, 97, 97, 97, 232, 174, 361, 162, 162, 174,
942 232, 168, 175, 831, 832, 175, 361, 256, 231, 1139,
943 169, 1125, 170, 678, 231, 361, 494, 171, 162, 163,
944 97, 163, 162, 162, 162, 162, 162, 162, 162, 164,
945 162, 757, 162, 166, 162, 167, 162, 186, 97, 186,
946 762, 186, 97, 186, 97, 97, 97, 97, 97, 97,
948 764, 187, 885, 162, 162, 187, 1124, 168, 188, 494,
949 495, 188, 228, 228, 228, 361, 169, 494, 170, 228,
950 228, 228, 361, 171, 176, 177, 97, 177, 176, 176,
951 176, 176, 176, 176, 176, 178, 176, 361, 176, 180,
952 176, 181, 176, 186, 97, 186, 763, 186, 97, 186,
953 186, 97, 186, 186, 97, 186, 793, 187, 1113, 176,
954 176, 187, 232, 232, 189, 182, 361, 189, 760, 265,
955 183, 228, 228, 228, 761, 361, 231, 231, 361, 184,
956 176, 177, 97, 177, 176, 176, 176, 176, 176, 176,
957 176, 178, 176, 788, 176, 180, 176, 181, 176, 97,
959 97, 97, 361, 97, 97, 97, 198, 97, 198, 198,
960 97, 198, 851, 188, 791, 176, 176, 188, 232, 232,
961 199, 182, 940, 199, 1110, 273, 183, 228, 228, 228,
962 361, 494, 231, 231, 361, 184, 190, 191, 97, 191,
963 190, 190, 190, 190, 190, 190, 190, 192, 190, 361,
964 190, 194, 190, 195, 190, 97, 97, 97, 821, 97,
965 97, 97, 212, 97, 212, 212, 97, 212, 887, 200,
966 792, 190, 190, 200, 814, 1109, 213, 361, 361, 213,
967 228, 228, 228, 228, 228, 228, 196, 190, 191, 97,
968 191, 190, 190, 190, 190, 190, 190, 190, 192, 190,
970 790, 190, 194, 190, 195, 190, 97, 97, 97, 816,
971 97, 97, 97, 212, 97, 212, 212, 97, 212, 232,
972 214, 232, 190, 190, 214, 361, 279, 213, 361, 1096,
973 213, 967, 1095, 231, 1084, 231, 361, 196, 201, 202,
974 97, 202, 201, 201, 201, 201, 201, 201, 201, 203,
975 201, 494, 201, 205, 201, 206, 201, 212, 97, 212,
976 848, 212, 97, 212, 97, 97, 97, 250, 97, 97,
977 97, 215, 232, 201, 201, 215, 232, 232, 214, 1114,
978 361, 207, 214, 208, 795, 209, 231, 228, 228, 228,
979 231, 231, 361, 210, 201, 202, 97, 202, 201, 201,
981 201, 201, 201, 201, 201, 203, 201, 232, 201, 205,
982 201, 206, 201, 224, 97, 224, 884, 224, 97, 224,
983 850, 231, 252, 228, 228, 228, 280, 225, 361, 201,
984 201, 225, 228, 228, 228, 110, 111, 207, 997, 208,
985 112, 209, 237, 248, 228, 228, 228, 361, 226, 210,
986 216, 217, 97, 217, 216, 216, 216, 216, 216, 216,
987 216, 218, 216, 232, 216, 220, 216, 221, 216, 227,
988 110, 111, 361, 852, 238, 112, 232, 231, 361, 361,
989 239, 232, 232, 226, 240, 216, 216, 232, 279, 241,
990 231, 232, 232, 232, 284, 231, 231, 853, 291, 247,
992 494, 231, 819, 854, 227, 231, 231, 231, 222, 216,
993 217, 97, 217, 216, 216, 216, 216, 216, 216, 216,
994 218, 216, 232, 216, 220, 216, 221, 216, 248, 248,
995 251, 280, 361, 796, 249, 249, 231, 745, 250, 250,
996 251, 251, 252, 252, 216, 216, 232, 232, 228, 228,
997 228, 746, 361, 256, 291, 232, 292, 228, 228, 228,
998 231, 231, 296, 228, 228, 228, 886, 222, 361, 231,
999 374, 374, 374, 374, 374, 374, 361, 384, 384, 384,
1000 361, 292, 248, 384, 384, 384, 376, 361, 249, 376,
1001 361, 818, 250, 386, 251, 912, 252, 999, 361, 386,
1003 394, 394, 394, 394, 394, 394, 403, 403, 403, 403,
1004 403, 403, 407, 407, 407, 882, 396, 361, 817, 396,
1005 377, 361, 405, 361, 1083, 405, 820, 408, 410, 410,
1006 410, 911, 387, 412, 412, 412, 412, 412, 412, 418,
1007 418, 418, 913, 411, 418, 418, 418, 361, 918, 414,
1008 406, 914, 414, 361, 397, 420, 426, 426, 426, 920,
1009 420, 426, 426, 426, 432, 432, 432, 432, 432, 432,
1010 931, 921, 428, 374, 374, 374, 361, 428, 932, 933,
1011 434, 361, 361, 434, 915, 941, 415, 934, 361, 376,
1012 374, 374, 374, 361, 421, 374, 374, 374, 446, 446,
1014 446, 451, 451, 451, 938, 361, 376, 384, 384, 384,
1015 361, 376, 944, 969, 429, 937, 452, 384, 384, 384,
1016 435, 361, 943, 386, 384, 384, 384, 457, 457, 457,
1017 970, 916, 445, 386, 394, 394, 394, 394, 394, 394,
1018 386, 361, 458, 394, 394, 394, 464, 464, 464, 1082,
1019 396, 1035, 361, 396, 403, 403, 403, 361, 998, 396,
1020 361, 465, 361, 453, 403, 403, 403, 403, 403, 403,
1021 405, 407, 407, 407, 469, 469, 469, 972, 470, 361,
1022 405, 471, 973, 405, 920, 1017, 408, 410, 410, 410,
1023 473, 473, 473, 361, 474, 1002, 921, 475, 1036, 461,
1025 361, 1081, 411, 412, 412, 412, 361, 412, 412, 412,
1026 412, 412, 412, 478, 478, 478, 418, 418, 418, 414,
1027 361, 1016, 468, 414, 1000, 1003, 414, 361, 479, 418,
1028 418, 418, 420, 418, 418, 418, 482, 482, 482, 426,
1029 426, 426, 426, 426, 426, 420, 426, 426, 426, 420,
1030 361, 483, 432, 432, 432, 428, 1090, 1073, 428, 432,
1031 432, 432, 428, 432, 432, 432, 476, 1001, 434, 493,
1032 493, 493, 374, 374, 374, 434, 446, 446, 446, 434,
1033 451, 451, 451, 361, 1067, 494, 495, 361, 376, 480,
1034 505, 505, 505, 1038, 506, 452, 486, 507, 384, 384,
1036 384, 457, 457, 457, 1014, 1066, 489, 361, 512, 512,
1037 512, 361, 513, 1020, 386, 514, 458, 515, 515, 515,
1038 517, 517, 517, 520, 520, 520, 1019, 500, 464, 464,
1039 464, 361, 516, 361, 361, 518, 528, 528, 528, 521,
1040 524, 524, 524, 465, 525, 508, 1031, 526, 403, 403,
1041 403, 529, 361, 469, 469, 469, 519, 470, 1018, 1021,
1042 471, 473, 473, 473, 405, 474, 361, 1102, 475, 412,
1043 412, 412, 530, 478, 478, 478, 535, 535, 535, 1065,
1044 536, 361, 1034, 537, 361, 414, 361, 1052, 479, 418,
1045 418, 418, 482, 482, 482, 540, 540, 540, 361, 541,
1047 1037, 1123, 542, 361, 1055, 420, 531, 483, 361, 426,
1048 426, 426, 547, 547, 547, 432, 432, 432, 493, 493,
1049 493, 374, 374, 374, 533, 428, 361, 548, 561, 561,
1050 561, 434, 361, 361, 494, 361, 1039, 376, 505, 505,
1051 505, 1068, 506, 1064, 538, 507, 361, 1057, 545, 384,
1052 384, 384, 361, 512, 512, 512, 1054, 513, 361, 552,
1053 514, 361, 1049, 557, 1050, 386, 515, 515, 515, 1089,
1054 1051, 549, 566, 566, 566, 553, 567, 361, 361, 568,
1055 361, 516, 517, 517, 517, 569, 569, 569, 1063, 570,
1056 1071, 361, 571, 520, 520, 520, 1103, 518, 1069, 524,
1058 524, 524, 361, 525, 361, 562, 526, 1117, 361, 521,
1059 528, 528, 528, 576, 576, 576, 1118, 577, 1070, 1108,
1060 578, 403, 403, 403, 361, 529, 412, 412, 412, 535,
1061 535, 535, 361, 536, 1074, 1062, 537, 405, 418, 418,
1062 418, 1086, 414, 540, 540, 540, 1092, 541, 1048, 361,
1063 542, 547, 547, 547, 420, 361, 426, 426, 426, 1085,
1064 361, 590, 590, 590, 361, 591, 548, 582, 592, 1087,
1065 361, 580, 428, 432, 432, 432, 599, 599, 599, 584,
1066 374, 374, 374, 561, 561, 561, 384, 384, 384, 434,
1067 1098, 600, 641, 641, 641, 1106, 376, 588, 1093, 566,
1069 566, 566, 386, 567, 361, 1047, 568, 569, 569, 569,
1070 1107, 570, 361, 361, 571, 361, 613, 613, 613, 1132,
1071 1138, 593, 403, 403, 403, 1046, 605, 622, 622, 622,
1072 601, 614, 576, 576, 576, 361, 577, 361, 405, 578,
1073 418, 418, 418, 623, 426, 426, 426, 590, 590, 590,
1074 1115, 591, 615, 1116, 592, 361, 420, 599, 599, 599,
1075 428, 432, 432, 432, 637, 637, 637, 1128, 638, 1045,
1076 361, 639, 600, 361, 1121, 620, 625, 434, 374, 374,
1077 374, 643, 643, 643, 384, 384, 384, 1129, 613, 613,
1078 613, 403, 403, 403, 376, 668, 668, 668, 629, 1099,
1080 386, 1143, 631, 614, 654, 654, 654, 405, 655, 361,
1081 669, 656, 622, 622, 622, 361, 418, 418, 418, 426,
1082 426, 426, 432, 432, 432, 644, 1158, 361, 623, 361,
1083 361, 640, 420, 361, 361, 428, 361, 664, 434, 676,
1084 676, 676, 637, 637, 637, 1245, 638, 1119, 361, 639,
1085 374, 374, 374, 1120, 361, 361, 361, 667, 641, 641,
1086 641, 643, 643, 643, 1122, 1133, 376, 682, 682, 682,
1087 1130, 674, 1126, 672, 692, 692, 692, 654, 654, 654,
1088 1136, 655, 361, 683, 656, 403, 403, 403, 1131, 693,
1089 418, 418, 418, 668, 668, 668, 1134, 361, 680, 361,
1091 361, 405, 709, 709, 709, 361, 420, 1147, 669, 361,
1092 694, 706, 706, 706, 1230, 707, 361, 710, 708, 361,
1093 1127, 702, 712, 712, 712, 714, 714, 714, 432, 432,
1094 432, 374, 374, 374, 682, 682, 682, 705, 713, 732,
1095 732, 732, 1137, 1151, 434, 1135, 361, 376, 361, 1141,
1096 683, 692, 692, 692, 733, 734, 734, 734, 1195, 735,
1097 361, 361, 736, 742, 742, 742, 693, 725, 714, 714,
1098 714, 403, 403, 403, 418, 418, 418, 1144, 743, 709,
1099 709, 709, 361, 715, 676, 676, 676, 405, 1142, 1159,
1100 420, 706, 706, 706, 710, 707, 361, 1145, 708, 361,
1102 361, 749, 749, 749, 1152, 750, 1044, 1043, 751, 752,
1103 752, 752, 712, 712, 712, 748, 361, 361, 744, 1146,
1104 361, 716, 1153, 717, 753, 754, 754, 754, 713, 718,
1105 374, 374, 374, 719, 361, 720, 1149, 721, 732, 732,
1106 732, 755, 361, 771, 771, 771, 376, 772, 361, 361,
1107 773, 1148, 361, 733, 734, 734, 734, 1150, 735, 1042,
1108 361, 736, 742, 742, 742, 777, 777, 777, 1160, 778,
1109 766, 1156, 779, 403, 403, 403, 361, 743, 418, 418,
1110 418, 749, 749, 749, 1166, 750, 1157, 1196, 751, 405,
1111 752, 752, 752, 1163, 420, 785, 785, 785, 361, 786,
1113 1175, 361, 787, 361, 361, 753, 754, 754, 754, 374,
1114 374, 374, 800, 800, 800, 403, 403, 403, 780, 806,
1115 806, 806, 755, 361, 1161, 376, 784, 801, 771, 771,
1116 771, 405, 772, 361, 807, 773, 777, 777, 777, 1199,
1117 778, 1200, 1221, 779, 418, 418, 418, 361, 802, 1164,
1118 798, 785, 785, 785, 361, 786, 1030, 361, 787, 1165,
1119 420, 815, 815, 815, 809, 822, 822, 822, 374, 374,
1120 374, 826, 826, 826, 800, 800, 800, 361, 1176, 1167,
1121 823, 494, 361, 1173, 376, 813, 827, 827, 827, 801,
1122 828, 361, 1168, 829, 806, 806, 806, 835, 835, 835,
1124 361, 836, 1029, 361, 837, 403, 403, 403, 1216, 807,
1125 840, 840, 840, 843, 843, 843, 418, 418, 418, 361,
1126 361, 405, 825, 361, 1225, 841, 1174, 1210, 844, 815,
1127 815, 815, 420, 826, 826, 826, 361, 855, 855, 855,
1128 822, 822, 822, 361, 361, 361, 842, 1028, 361, 845,
1129 361, 839, 856, 494, 1184, 823, 494, 857, 857, 857,
1130 849, 858, 1177, 1178, 859, 847, 374, 374, 374, 1204,
1131 827, 827, 827, 494, 828, 1185, 361, 829, 866, 866,
1132 866, 361, 376, 835, 835, 835, 1182, 836, 1222, 1027,
1133 837, 1183, 1026, 867, 868, 868, 868, 870, 870, 870,
1135 840, 840, 840, 1025, 361, 861, 843, 843, 843, 869,
1136 872, 872, 872, 871, 873, 841, 1205, 874, 876, 876,
1137 876, 844, 877, 361, 1193, 878, 880, 880, 880, 418,
1138 418, 418, 888, 888, 888, 855, 855, 855, 1024, 890,
1139 890, 890, 361, 891, 361, 420, 892, 1194, 361, 361,
1140 856, 494, 866, 866, 866, 494, 857, 857, 857, 1270,
1141 858, 361, 361, 859, 374, 374, 374, 867, 889, 901,
1142 901, 901, 494, 902, 1197, 1212, 903, 880, 880, 880,
1143 376, 870, 870, 870, 881, 492, 492, 492, 492, 492,
1144 492, 492, 492, 492, 1198, 361, 492, 871, 1228, 492,
1146 492, 492, 494, 492, 868, 868, 868, 904, 904, 904,
1147 361, 905, 361, 361, 906, 361, 1022, 896, 1013, 869,
1148 492, 492, 492, 492, 492, 492, 492, 492, 492, 492,
1149 492, 361, 1012, 492, 1211, 1214, 492, 492, 492, 494,
1150 492, 872, 872, 872, 1202, 873, 361, 1203, 874, 876,
1151 876, 876, 1233, 877, 361, 361, 878, 492, 492, 909,
1152 909, 909, 888, 888, 888, 890, 890, 890, 1229, 891,
1153 1225, 361, 892, 361, 361, 910, 361, 1213, 361, 361,
1154 1258, 494, 901, 901, 901, 1217, 902, 1208, 361, 903,
1155 909, 909, 909, 917, 492, 492, 492, 492, 492, 924,
1157 492, 492, 492, 1209, 1218, 492, 910, 361, 492, 492,
1158 492, 494, 492, 904, 904, 904, 1215, 905, 361, 361,
1159 906, 1040, 1040, 1040, 374, 374, 374, 361, 1235, 492,
1160 492, 492, 492, 492, 492, 492, 492, 492, 492, 924,
1161 376, 361, 492, 1219, 1243, 492, 492, 492, 494, 492,
1162 1256, 1220, 939, 939, 939, 942, 942, 942, 948, 948,
1163 948, 374, 374, 374, 361, 1011, 492, 492, 361, 926,
1164 361, 361, 1223, 361, 494, 495, 361, 376, 951, 951,
1165 951, 953, 953, 953, 955, 955, 955, 958, 958, 958,
1166 966, 966, 966, 952, 1226, 1224, 954, 1241, 361, 956,
1168 1242, 361, 959, 939, 939, 939, 361, 942, 942, 942,
1169 1236, 1010, 950, 948, 948, 948, 374, 374, 374, 361,
1170 957, 1227, 361, 361, 951, 951, 951, 1009, 361, 494,
1171 1268, 361, 376, 361, 968, 953, 953, 953, 971, 952,
1172 977, 977, 977, 361, 978, 361, 361, 979, 1244, 1231,
1173 954, 980, 980, 980, 552, 981, 361, 1246, 982, 955,
1174 955, 955, 983, 983, 983, 1232, 984, 1247, 1008, 985,
1175 1234, 976, 361, 361, 956, 958, 958, 958, 987, 987,
1176 987, 1007, 988, 1250, 1254, 989, 966, 966, 966, 361,
1177 959, 374, 374, 374, 977, 977, 977, 1248, 978, 361,
1179 361, 979, 361, 1237, 980, 980, 980, 376, 981, 361,
1180 361, 982, 983, 983, 983, 1005, 984, 996, 1238, 985,
1181 987, 987, 987, 1249, 988, 361, 1251, 989, 1015, 1015,
1182 1015, 374, 374, 374, 1261, 1262, 1006, 361, 1015, 1015,
1183 1015, 361, 1032, 1257, 361, 1033, 361, 376, 374, 374,
1184 374, 1053, 1053, 1053, 361, 1056, 1056, 1056, 1040, 1040,
1185 1040, 1058, 1058, 1058, 376, 1252, 1261, 361, 1060, 1060,
1186 1060, 361, 1053, 1053, 1053, 361, 1255, 1059, 1056, 1056,
1187 1056, 1023, 1075, 1061, 1279, 1076, 361, 1004, 361, 1077,
1188 1077, 1077, 361, 361, 361, 361, 361, 1041, 1058, 1058,
1190 1058, 361, 995, 1072, 361, 361, 1060, 1060, 1060, 1078,
1191 1078, 1078, 1263, 1079, 1059, 994, 1080, 1088, 1088, 1088,
1192 1253, 1061, 1091, 1091, 1091, 1077, 1077, 1077, 1078, 1078,
1193 1078, 1259, 1079, 361, 1260, 1080, 1269, 361, 361, 361,
1194 1264, 361, 1097, 1097, 1097, 1088, 1088, 1088, 993, 1100,
1195 1279, 361, 1101, 1091, 1091, 1091, 1094, 1104, 361, 361,
1196 1105, 361, 361, 1097, 1097, 1097, 361, 1111, 1280, 361,
1197 1112, 1162, 1162, 1162, 1169, 1169, 1169, 1318, 1265, 361,
1198 1171, 1171, 1171, 1266, 1162, 1162, 1162, 361, 1179, 1170,
1199 1267, 1180, 1181, 1181, 1181, 1172, 1186, 1186, 1186, 992,
1201 361, 1169, 1169, 1169, 1171, 1171, 1171, 361, 361, 361,
1202 991, 361, 361, 1187, 1187, 1187, 1170, 1188, 1283, 1172,
1203 1189, 1190, 1190, 1190, 990, 1191, 361, 361, 1192, 1181,
1204 1181, 1181, 1186, 1186, 1186, 1271, 1206, 361, 1281, 1207,
1205 1187, 1187, 1187, 361, 1188, 361, 361, 1189, 361, 1190,
1206 1190, 1190, 1275, 1191, 361, 361, 1192, 1239, 1239, 1239,
1207 1201, 1239, 1239, 1239, 1273, 1273, 1273, 1272, 1295, 1276,
1208 1277, 1283, 361, 1240, 1282, 1282, 1282, 1240, 1278, 1286,
1209 1274, 361, 1289, 361, 1273, 1273, 1273, 1284, 1286, 361,
1210 361, 361, 1287, 1287, 1287, 1290, 361, 361, 361, 986,
1212 1274, 361, 361, 975, 1285, 1282, 1282, 1282, 1288, 1291,
1213 361, 361, 1292, 1293, 1293, 1293, 1297, 1297, 1297, 1301,
1214 361, 361, 1287, 1287, 1287, 1299, 1303, 1296, 1304, 1294,
1215 361, 361, 1298, 361, 1300, 361, 1302, 361, 1288, 1293,
1216 1293, 1293, 1297, 1297, 1297, 361, 361, 361, 361, 361,
1217 1305, 361, 361, 1317, 1317, 1294, 361, 361, 1298, 1306,
1218 361, 1309, 361, 361, 361, 361, 1326, 1326, 361, 1310,
1219 1307, 1308, 1311, 1312, 361, 361, 1322, 1322, 1322, 361,
1220 361, 1320, 1319, 1313, 1314, 361, 1321, 946, 361, 361,
1221 1315, 1316, 1323, 1322, 1322, 1322, 1329, 1329, 1329, 361,
1223 1327, 1333, 361, 1324, 974, 946, 1328, 1325, 361, 1323,
1224 1334, 1331, 1330, 1329, 1329, 1329, 1332, 361, 361, 361,
1225 1341, 1341, 965, 1335, 964, 963, 1336, 1337, 1338, 1330,
1226 361, 962, 361, 1342, 1342, 1342, 1342, 1342, 1342, 961,
1227 960, 949, 1339, 1340, 946, 946, 936, 935, 930, 1343,
1228 929, 928, 1343, 94, 94, 94, 94, 94, 94, 94,
1229 95, 95, 95, 95, 95, 95, 95, 100, 100, 100,
1230 100, 100, 100, 100, 103, 103, 103, 103, 103, 103,
1231 103, 106, 106, 106, 106, 106, 106, 106, 109, 109,
1232 109, 109, 109, 109, 109, 116, 116, 116, 116, 116,
1234 116, 116, 124, 124, 124, 124, 124, 124, 124, 128,
1235 128, 128, 128, 128, 128, 128, 137, 137, 137, 137,
1236 137, 137, 137, 141, 141, 141, 141, 141, 141, 141,
1237 158, 158, 158, 158, 158, 158, 158, 165, 165, 165,
1238 165, 165, 165, 165, 172, 172, 172, 172, 172, 172,
1239 172, 179, 179, 179, 179, 179, 179, 179, 185, 185,
1240 185, 185, 185, 185, 185, 193, 193, 193, 193, 193,
1241 193, 193, 197, 197, 197, 197, 197, 197, 197, 204,
1242 204, 204, 204, 204, 204, 204, 211, 211, 211, 211,
1243 211, 211, 211, 219, 219, 219, 219, 219, 219, 219,
1245 223, 223, 223, 223, 223, 223, 223, 245, 245, 245,
1246 927, 245, 254, 254, 254, 925, 254, 258, 258, 258,
1247 908, 258, 267, 267, 267, 907, 267, 275, 275, 275,
1248 900, 275, 282, 282, 282, 899, 282, 286, 286, 286,
1249 898, 286, 294, 294, 294, 897, 294, 299, 299, 299,
1250 299, 299, 895, 299, 314, 879, 314, 322, 875, 322,
1251 330, 865, 330, 337, 864, 337, 342, 863, 342, 346,
1252 862, 346, 352, 860, 352, 356, 846, 356, 360, 360,
1253 360, 360, 360, 360, 360, 366, 838, 834, 366, 375,
1254 375, 375, 375, 375, 375, 385, 385, 385, 385, 385,
1256 385, 395, 395, 395, 395, 395, 395, 404, 404, 404,
1257 404, 404, 404, 413, 413, 413, 413, 413, 413, 419,
1258 419, 419, 419, 419, 419, 427, 427, 427, 427, 427,
1259 427, 433, 433, 433, 433, 433, 433, 492, 492, 492,
1260 492, 492, 492, 492, 893, 893, 893, 893, 893, 893,
1261 893, 894, 894, 894, 894, 894, 894, 894, 919, 919,
1262 919, 919, 919, 919, 919, 922, 922, 922, 922, 922,
1263 922, 922, 945, 945, 945, 945, 945, 945, 945, 947,
1264 947, 947, 947, 947, 947, 947, 833, 830, 824, 812,
1265 811, 810, 808, 805, 804, 803, 799, 797, 783, 782,
1267 781, 776, 775, 774, 770, 769, 768, 767, 765, 747,
1268 741, 740, 739, 738, 737, 731, 730, 729, 728, 727,
1269 726, 724, 711, 704, 703, 701, 700, 699, 698, 697,
1270 696, 695, 691, 690, 689, 688, 687, 686, 685, 684,
1271 681, 679, 675, 673, 671, 670, 666, 665, 663, 658,
1272 657, 653, 652, 647, 646, 645, 642, 636, 632, 630,
1273 628, 627, 626, 624, 621, 619, 618, 617, 616, 612,
1274 611, 610, 609, 608, 607, 606, 604, 603, 602, 598,
1275 594, 589, 587, 586, 585, 583, 581, 579, 575, 574,
1276 573, 572, 565, 564, 563, 560, 559, 558, 556, 555,
1278 554, 494, 550, 546, 544, 543, 539, 534, 532, 527,
1279 523, 522, 511, 510, 509, 504, 503, 502, 501, 499,
1280 498, 497, 496, 490, 488, 487, 485, 484, 481, 477,
1281 472, 467, 466, 463, 462, 460, 459, 456, 455, 454,
1282 450, 449, 448, 447, 444, 443, 442, 441, 440, 439,
1283 438, 361, 436, 431, 430, 425, 424, 423, 422, 417,
1284 416, 409, 402, 401, 400, 399, 398, 393, 392, 391,
1285 390, 389, 388, 383, 382, 381, 380, 379, 378, 373,
1286 372, 371, 370, 369, 368, 367, 364, 362, 361, 359,
1287 358, 357, 355, 354, 353, 351, 350, 349, 348, 347,
1289 345, 344, 343, 341, 340, 339, 338, 336, 335, 334,
1290 333, 332, 331, 329, 328, 327, 326, 325, 324, 323,
1291 321, 320, 319, 318, 317, 316, 315, 313, 312, 311,
1292 310, 309, 308, 303, 300, 302, 298, 297, 295, 293,
1293 290, 289, 288, 287, 285, 283, 281, 278, 277, 276,
1294 274, 270, 269, 268, 266, 264, 263, 262, 261, 260,
1295 259, 257, 255, 253, 246, 244, 242, 236, 235, 236,
1296 235, 234, 233, 1344, 93, 1344, 1344, 1344, 1344, 1344,
1297 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1298 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1300 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1301 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1302 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1303 1344, 1344, 1344, 1344, 1344, 1344, 1344
1306 static yyconst flex_int16_t yy_chk[3738] =
1308 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1309 6, 6, 6, 9, 0, 3, 10, 11, 4, 12,
1310 9, 5, 301, 10, 6, 7, 7, 7, 8, 8,
1311 8, 13, 13, 11, 301, 12, 13, 13, 237, 7,
1312 14, 14, 8, 229, 13, 14, 14, 15, 15, 892,
1313 15, 98, 15, 14, 16, 16, 229, 16, 892, 16,
1314 15, 17, 17, 18, 18, 98, 99, 16, 19, 19,
1315 19, 20, 20, 20, 23, 23, 23, 24, 24, 24,
1316 99, 238, 19, 551, 238, 20, 237, 304, 23, 304,
1317 757, 24, 96, 96, 96, 17, 551, 18, 21, 21,
1319 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1320 21, 922, 21, 21, 21, 21, 21, 25, 25, 25,
1321 922, 26, 26, 26, 27, 27, 27, 28, 28, 28,
1322 757, 25, 491, 21, 21, 26, 102, 171, 27, 437,
1323 125, 28, 97, 97, 97, 101, 101, 101, 171, 491,
1324 102, 122, 122, 122, 125, 437, 21, 22, 22, 22,
1325 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1326 553, 22, 22, 22, 22, 22, 29, 29, 29, 719,
1327 30, 30, 30, 31, 31, 31, 32, 32, 32, 762,
1328 29, 138, 22, 22, 30, 553, 133, 31, 120, 132,
1330 32, 129, 129, 129, 719, 138, 132, 135, 135, 135,
1331 133, 597, 120, 132, 552, 22, 33, 33, 33, 33,
1332 33, 33, 33, 33, 33, 33, 33, 33, 33, 762,
1333 33, 33, 33, 33, 33, 35, 35, 35, 133, 36,
1334 36, 36, 37, 37, 37, 1140, 120, 552, 597, 35,
1335 363, 33, 33, 36, 363, 634, 37, 716, 677, 33,
1336 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
1337 34, 34, 34, 678, 34, 34, 34, 34, 34, 38,
1338 38, 38, 677, 39, 39, 39, 40, 40, 40, 634,
1339 41, 41, 41, 38, 716, 34, 34, 39, 596, 1139,
1341 40, 849, 678, 34, 41, 42, 42, 42, 43, 43,
1342 43, 44, 44, 44, 142, 142, 142, 595, 849, 42,
1343 609, 596, 43, 595, 609, 44, 45, 45, 45, 45,
1344 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1345 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1346 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1347 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1348 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1349 45, 45, 45, 45, 45, 45, 45, 45, 47, 47,
1350 47, 48, 48, 48, 49, 49, 49, 50, 50, 50,
1352 610, 718, 47, 617, 610, 48, 618, 617, 49, 1125,
1353 618, 50, 51, 51, 51, 51, 51, 51, 51, 51,
1354 51, 51, 51, 51, 51, 635, 51, 51, 51, 51,
1355 51, 53, 53, 53, 718, 54, 54, 54, 55, 55,
1356 55, 56, 56, 56, 150, 53, 717, 51, 51, 54,
1357 144, 51, 55, 803, 803, 56, 721, 144, 150, 1124,
1358 51, 1110, 51, 635, 144, 851, 723, 51, 52, 52,
1359 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
1360 52, 717, 52, 52, 52, 52, 52, 59, 59, 59,
1361 721, 60, 60, 60, 61, 61, 61, 62, 62, 62,
1363 723, 59, 851, 52, 52, 60, 1109, 52, 61, 920,
1364 920, 62, 147, 147, 147, 1098, 52, 722, 52, 159,
1365 159, 159, 761, 52, 57, 57, 57, 57, 57, 57,
1366 57, 57, 57, 57, 57, 57, 57, 720, 57, 57,
1367 57, 57, 57, 63, 63, 63, 722, 64, 64, 64,
1368 65, 65, 65, 66, 66, 66, 761, 63, 1098, 57,
1369 57, 64, 160, 166, 65, 57, 756, 66, 720, 160,
1370 57, 163, 163, 163, 720, 759, 160, 166, 817, 57,
1371 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1372 58, 58, 58, 756, 58, 58, 58, 58, 58, 67,
1374 67, 67, 914, 68, 68, 68, 71, 71, 71, 72,
1375 72, 72, 817, 67, 759, 58, 58, 68, 174, 180,
1376 71, 58, 914, 72, 1096, 174, 58, 173, 173, 173,
1377 853, 795, 174, 180, 788, 58, 69, 69, 69, 69,
1378 69, 69, 69, 69, 69, 69, 69, 69, 69, 760,
1379 69, 69, 69, 69, 69, 73, 73, 73, 795, 74,
1380 74, 74, 77, 77, 77, 78, 78, 78, 853, 73,
1381 760, 69, 69, 74, 788, 1095, 77, 758, 790, 78,
1382 177, 177, 177, 186, 186, 186, 69, 70, 70, 70,
1383 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
1385 758, 70, 70, 70, 70, 70, 79, 79, 79, 790,
1386 80, 80, 80, 81, 81, 81, 82, 82, 82, 189,
1387 79, 161, 70, 70, 80, 938, 189, 81, 814, 1084,
1388 82, 938, 1083, 189, 1067, 161, 1099, 70, 75, 75,
1389 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1390 75, 763, 75, 75, 75, 75, 75, 83, 83, 83,
1391 814, 84, 84, 84, 85, 85, 85, 161, 86, 86,
1392 86, 83, 175, 75, 75, 84, 188, 194, 85, 1099,
1393 816, 75, 86, 75, 763, 75, 175, 191, 191, 191,
1394 188, 194, 850, 75, 76, 76, 76, 76, 76, 76,
1396 76, 76, 76, 76, 76, 76, 76, 145, 76, 76,
1397 76, 76, 76, 89, 89, 89, 850, 90, 90, 90,
1398 816, 145, 175, 198, 198, 198, 188, 89, 967, 76,
1399 76, 90, 202, 202, 202, 91, 91, 76, 967, 76,
1400 91, 76, 112, 145, 212, 212, 212, 818, 91, 76,
1401 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1402 87, 87, 87, 205, 87, 87, 87, 87, 87, 91,
1403 92, 92, 819, 818, 112, 92, 220, 205, 820, 793,
1404 112, 187, 200, 92, 112, 87, 87, 199, 187, 112,
1405 220, 215, 130, 131, 199, 187, 200, 819, 215, 130,
1407 764, 199, 793, 820, 92, 215, 130, 131, 87, 88,
1408 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1409 88, 88, 214, 88, 88, 88, 88, 88, 130, 131,
1410 200, 187, 852, 764, 130, 131, 214, 703, 130, 131,
1411 130, 131, 130, 131, 88, 88, 143, 213, 217, 217,
1412 217, 703, 792, 143, 213, 225, 214, 224, 224, 224,
1413 143, 213, 225, 228, 228, 228, 852, 88, 969, 225,
1414 314, 314, 314, 315, 315, 315, 791, 322, 322, 322,
1415 883, 213, 143, 323, 323, 323, 314, 794, 143, 315,
1416 848, 792, 143, 322, 143, 883, 143, 969, 882, 323,
1418 330, 330, 330, 331, 331, 331, 337, 337, 337, 338,
1419 338, 338, 339, 339, 339, 848, 330, 884, 791, 331,
1420 315, 885, 337, 889, 1066, 338, 794, 339, 341, 341,
1421 341, 882, 323, 342, 342, 342, 343, 343, 343, 346,
1422 346, 346, 884, 341, 347, 347, 347, 886, 889, 342,
1423 338, 885, 343, 915, 331, 346, 352, 352, 352, 891,
1424 347, 353, 353, 353, 356, 356, 356, 357, 357, 357,
1425 905, 891, 352, 374, 374, 374, 911, 353, 905, 906,
1426 356, 918, 940, 357, 886, 915, 343, 906, 912, 374,
1427 375, 375, 375, 887, 347, 377, 377, 377, 378, 378,
1429 378, 383, 383, 383, 912, 917, 375, 384, 384, 384,
1430 941, 377, 918, 940, 353, 911, 383, 385, 385, 385,
1431 357, 1017, 917, 384, 387, 387, 387, 391, 391, 391,
1432 941, 887, 377, 385, 394, 394, 394, 395, 395, 395,
1433 387, 968, 391, 397, 397, 397, 400, 400, 400, 1064,
1434 394, 1017, 999, 395, 403, 403, 403, 944, 968, 397,
1435 1018, 400, 943, 387, 404, 404, 404, 406, 406, 406,
1436 403, 407, 407, 407, 408, 408, 408, 943, 408, 972,
1437 404, 408, 944, 406, 919, 999, 407, 410, 410, 410,
1438 411, 411, 411, 973, 411, 972, 919, 411, 1018, 397,
1440 970, 1062, 410, 412, 412, 412, 998, 413, 413, 413,
1441 415, 415, 415, 417, 417, 417, 418, 418, 418, 412,
1442 1054, 998, 406, 413, 970, 973, 415, 1073, 417, 419,
1443 419, 419, 418, 421, 421, 421, 423, 423, 423, 426,
1444 426, 426, 427, 427, 427, 419, 429, 429, 429, 421,
1445 971, 423, 432, 432, 432, 426, 1073, 1054, 427, 433,
1446 433, 433, 429, 435, 435, 435, 415, 971, 432, 438,
1447 438, 438, 445, 445, 445, 433, 446, 446, 446, 435,
1448 451, 451, 451, 1020, 1048, 438, 438, 996, 445, 421,
1449 452, 452, 452, 1020, 452, 451, 429, 452, 453, 453,
1451 453, 457, 457, 457, 996, 1047, 435, 1002, 458, 458,
1452 458, 1001, 458, 1002, 453, 458, 457, 459, 459, 459,
1453 460, 460, 460, 461, 461, 461, 1001, 445, 464, 464,
1454 464, 1014, 459, 1000, 1003, 460, 467, 467, 467, 461,
1455 465, 465, 465, 464, 465, 453, 1014, 465, 468, 468,
1456 468, 467, 1089, 469, 469, 469, 460, 469, 1000, 1003,
1457 469, 473, 473, 473, 468, 473, 1016, 1089, 473, 476,
1458 476, 476, 467, 478, 478, 478, 479, 479, 479, 1046,
1459 479, 1034, 1016, 479, 1019, 476, 1108, 1034, 478, 480,
1460 480, 480, 482, 482, 482, 483, 483, 483, 1037, 483,
1462 1019, 1108, 483, 1021, 1037, 480, 468, 482, 1039, 486,
1463 486, 486, 488, 488, 488, 489, 489, 489, 493, 493,
1464 493, 500, 500, 500, 476, 486, 1032, 488, 504, 504,
1465 504, 489, 1033, 1036, 493, 1049, 1021, 500, 505, 505,
1466 505, 1049, 505, 1045, 480, 505, 1031, 1039, 486, 508,
1467 508, 508, 1072, 512, 512, 512, 1036, 512, 1050, 493,
1468 512, 1090, 1031, 500, 1032, 508, 515, 515, 515, 1072,
1469 1033, 489, 516, 516, 516, 493, 516, 1103, 1051, 516,
1470 1052, 515, 517, 517, 517, 518, 518, 518, 1044, 518,
1471 1052, 1102, 518, 520, 520, 520, 1090, 517, 1050, 524,
1473 524, 524, 1094, 524, 1069, 508, 524, 1102, 1075, 520,
1474 528, 528, 528, 529, 529, 529, 1103, 529, 1051, 1094,
1475 529, 531, 531, 531, 1055, 528, 533, 533, 533, 535,
1476 535, 535, 1070, 535, 1055, 1043, 535, 531, 538, 538,
1477 538, 1069, 533, 540, 540, 540, 1075, 540, 1030, 1068,
1478 540, 547, 547, 547, 538, 1092, 545, 545, 545, 1068,
1479 1076, 548, 548, 548, 1086, 548, 547, 533, 548, 1070,
1480 1093, 531, 545, 549, 549, 549, 556, 556, 556, 538,
1481 557, 557, 557, 561, 561, 561, 562, 562, 562, 549,
1482 1086, 556, 602, 602, 602, 1092, 557, 545, 1076, 566,
1484 566, 566, 562, 566, 1123, 1029, 566, 569, 569, 569,
1485 1093, 569, 1100, 1117, 569, 1101, 574, 574, 574, 1117,
1486 1123, 549, 580, 580, 580, 1028, 562, 582, 582, 582,
1487 557, 574, 576, 576, 576, 1113, 576, 1106, 580, 576,
1488 584, 584, 584, 582, 588, 588, 588, 590, 590, 590,
1489 1100, 590, 574, 1101, 590, 1114, 584, 599, 599, 599,
1490 588, 593, 593, 593, 600, 600, 600, 1113, 600, 1027,
1491 1128, 600, 599, 1087, 1106, 580, 584, 593, 601, 601,
1492 601, 604, 604, 604, 605, 605, 605, 1114, 613, 613,
1493 613, 620, 620, 620, 601, 626, 626, 626, 588, 1087,
1495 605, 1128, 593, 613, 614, 614, 614, 620, 614, 1104,
1496 626, 614, 622, 622, 622, 1105, 625, 625, 625, 629,
1497 629, 629, 631, 631, 631, 605, 1143, 1107, 622, 1230,
1498 1115, 601, 625, 1143, 1111, 629, 1118, 620, 631, 633,
1499 633, 633, 637, 637, 637, 1230, 637, 1104, 1116, 637,
1500 640, 640, 640, 1105, 1121, 633, 1119, 625, 641, 641,
1501 641, 643, 643, 643, 1107, 1118, 640, 644, 644, 644,
1502 1115, 631, 1111, 629, 653, 653, 653, 654, 654, 654,
1503 1121, 654, 1112, 644, 654, 664, 664, 664, 1116, 653,
1504 667, 667, 667, 668, 668, 668, 1119, 1132, 640, 1216,
1506 1136, 664, 670, 670, 670, 1120, 667, 1132, 668, 1126,
1507 653, 669, 669, 669, 1216, 669, 1122, 670, 669, 1175,
1508 1112, 664, 672, 672, 672, 673, 673, 673, 674, 674,
1509 674, 680, 680, 680, 682, 682, 682, 667, 672, 691,
1510 691, 691, 1122, 1136, 674, 1120, 1129, 680, 1127, 1126,
1511 682, 692, 692, 692, 691, 693, 693, 693, 1175, 693,
1512 1130, 1137, 693, 701, 701, 701, 692, 680, 714, 714,
1513 714, 702, 702, 702, 705, 705, 705, 1129, 701, 709,
1514 709, 709, 1131, 674, 676, 676, 676, 702, 1127, 1144,
1515 705, 706, 706, 706, 709, 706, 1144, 1130, 706, 1134,
1517 676, 710, 710, 710, 1137, 710, 1026, 1025, 710, 711,
1518 711, 711, 712, 712, 712, 705, 1138, 1133, 702, 1131,
1519 1135, 676, 1138, 676, 711, 715, 715, 715, 712, 676,
1520 725, 725, 725, 676, 1141, 676, 1134, 676, 732, 732,
1521 732, 715, 1145, 733, 733, 733, 725, 733, 1176, 1142,
1522 733, 1133, 1151, 732, 734, 734, 734, 1135, 734, 1024,
1523 1148, 734, 742, 742, 742, 743, 743, 743, 1145, 743,
1524 725, 1141, 743, 744, 744, 744, 1158, 742, 748, 748,
1525 748, 749, 749, 749, 1151, 749, 1142, 1176, 749, 744,
1526 752, 752, 752, 1148, 748, 753, 753, 753, 1146, 753,
1528 1158, 1179, 753, 1180, 1206, 752, 754, 754, 754, 766,
1529 766, 766, 768, 768, 768, 780, 780, 780, 744, 775,
1530 775, 775, 754, 1149, 1146, 766, 748, 768, 771, 771,
1531 771, 780, 771, 1150, 775, 771, 777, 777, 777, 1179,
1532 777, 1180, 1206, 777, 784, 784, 784, 1152, 768, 1149,
1533 766, 785, 785, 785, 1159, 785, 1013, 1156, 785, 1150,
1534 784, 789, 789, 789, 780, 796, 796, 796, 798, 798,
1535 798, 799, 799, 799, 800, 800, 800, 789, 1159, 1152,
1536 796, 796, 1153, 1156, 798, 784, 801, 801, 801, 800,
1537 801, 1201, 1153, 801, 806, 806, 806, 807, 807, 807,
1539 1157, 807, 1012, 1195, 807, 809, 809, 809, 1201, 806,
1540 810, 810, 810, 811, 811, 811, 813, 813, 813, 1160,
1541 1161, 809, 798, 1166, 1210, 810, 1157, 1195, 811, 815,
1542 815, 815, 813, 826, 826, 826, 1210, 821, 821, 821,
1543 822, 822, 822, 1164, 1167, 815, 810, 1011, 1165, 811,
1544 1207, 809, 821, 821, 1166, 822, 822, 823, 823, 823,
1545 815, 823, 1160, 1161, 823, 813, 825, 825, 825, 1184,
1546 827, 827, 827, 823, 827, 1167, 1184, 827, 834, 834,
1547 834, 1173, 825, 835, 835, 835, 1164, 835, 1207, 1010,
1548 835, 1165, 1009, 834, 838, 838, 838, 839, 839, 839,
1550 840, 840, 840, 1008, 1174, 825, 843, 843, 843, 838,
1551 841, 841, 841, 839, 841, 840, 1185, 841, 844, 844,
1552 844, 843, 844, 1185, 1173, 844, 846, 846, 846, 847,
1553 847, 847, 854, 854, 854, 855, 855, 855, 1007, 856,
1554 856, 856, 1177, 856, 1197, 847, 856, 1174, 854, 1258,
1555 855, 855, 866, 866, 866, 856, 857, 857, 857, 1258,
1556 857, 1214, 1178, 857, 861, 861, 861, 866, 854, 867,
1557 867, 867, 857, 867, 1177, 1197, 867, 880, 880, 880,
1558 861, 870, 870, 870, 847, 858, 858, 858, 858, 858,
1559 858, 858, 858, 858, 1178, 1199, 858, 870, 1214, 858,
1561 858, 858, 858, 858, 868, 868, 868, 869, 869, 869,
1562 1196, 869, 1182, 1219, 869, 1183, 1005, 861, 995, 868,
1563 858, 858, 859, 859, 859, 859, 859, 859, 859, 859,
1564 859, 1215, 994, 859, 1196, 1199, 859, 859, 859, 859,
1565 859, 872, 872, 872, 1182, 872, 1198, 1183, 872, 876,
1566 876, 876, 1219, 876, 1202, 1193, 876, 859, 859, 881,
1567 881, 881, 888, 888, 888, 890, 890, 890, 1215, 890,
1568 1211, 1194, 890, 1203, 1245, 881, 1200, 1198, 888, 1211,
1569 1245, 890, 901, 901, 901, 1202, 901, 1193, 1221, 901,
1570 909, 909, 909, 888, 893, 893, 893, 893, 893, 893,
1572 893, 893, 893, 1194, 1203, 893, 909, 1243, 893, 893,
1573 893, 893, 893, 904, 904, 904, 1200, 904, 1228, 1204,
1574 904, 1022, 1022, 1022, 896, 896, 896, 1205, 1221, 893,
1575 893, 894, 894, 894, 894, 894, 894, 894, 894, 894,
1576 896, 1208, 894, 1204, 1228, 894, 894, 894, 894, 894,
1577 1243, 1205, 913, 913, 913, 916, 916, 916, 924, 924,
1578 924, 926, 926, 926, 1209, 993, 894, 894, 913, 896,
1579 1222, 916, 1208, 1226, 924, 924, 1227, 926, 927, 927,
1580 927, 928, 928, 928, 929, 929, 929, 930, 930, 930,
1581 937, 937, 937, 927, 1212, 1209, 928, 1226, 1256, 929,
1583 1227, 1212, 930, 939, 939, 939, 937, 942, 942, 942,
1584 1222, 992, 926, 948, 948, 948, 950, 950, 950, 939,
1585 929, 1213, 1229, 942, 951, 951, 951, 991, 1213, 948,
1586 1256, 1220, 950, 1231, 939, 953, 953, 953, 942, 951,
1587 952, 952, 952, 1232, 952, 1241, 1235, 952, 1229, 1217,
1588 953, 954, 954, 954, 948, 954, 1217, 1231, 954, 955,
1589 955, 955, 956, 956, 956, 1218, 956, 1232, 990, 956,
1590 1220, 950, 1218, 1233, 955, 958, 958, 958, 959, 959,
1591 959, 986, 959, 1235, 1241, 959, 966, 966, 966, 1236,
1592 958, 976, 976, 976, 977, 977, 977, 1233, 977, 1234,
1594 1244, 977, 966, 1223, 980, 980, 980, 976, 980, 1250,
1595 1223, 980, 983, 983, 983, 975, 983, 966, 1224, 983,
1596 987, 987, 987, 1234, 987, 1224, 1236, 987, 997, 997,
1597 997, 1006, 1006, 1006, 1248, 1250, 976, 1242, 1015, 1015,
1598 1015, 1237, 1015, 1244, 997, 1015, 1248, 1006, 1023, 1023,
1599 1023, 1035, 1035, 1035, 1015, 1038, 1038, 1038, 1040, 1040,
1600 1040, 1041, 1041, 1041, 1023, 1237, 1249, 1035, 1042, 1042,
1601 1042, 1038, 1053, 1053, 1053, 1249, 1242, 1041, 1056, 1056,
1602 1056, 1006, 1056, 1042, 1267, 1056, 1251, 974, 1053, 1057,
1603 1057, 1057, 1246, 1267, 1056, 1247, 1238, 1023, 1058, 1058,
1605 1058, 1252, 965, 1053, 1257, 1057, 1060, 1060, 1060, 1061,
1606 1061, 1061, 1251, 1061, 1058, 964, 1061, 1071, 1071, 1071,
1607 1238, 1060, 1074, 1074, 1074, 1077, 1077, 1077, 1078, 1078,
1608 1078, 1246, 1078, 1071, 1247, 1078, 1257, 1268, 1074, 1253,
1609 1252, 1077, 1085, 1085, 1085, 1088, 1088, 1088, 963, 1088,
1610 1266, 1313, 1088, 1091, 1091, 1091, 1077, 1091, 1085, 1254,
1611 1091, 1088, 1266, 1097, 1097, 1097, 1255, 1097, 1268, 1091,
1612 1097, 1147, 1147, 1147, 1154, 1154, 1154, 1313, 1253, 1097,
1613 1155, 1155, 1155, 1254, 1162, 1162, 1162, 1147, 1162, 1154,
1614 1255, 1162, 1163, 1163, 1163, 1155, 1168, 1168, 1168, 962,
1616 1162, 1169, 1169, 1169, 1171, 1171, 1171, 1269, 1163, 1262,
1617 961, 1259, 1168, 1170, 1170, 1170, 1169, 1170, 1272, 1171,
1618 1170, 1172, 1172, 1172, 960, 1172, 1263, 1272, 1172, 1181,
1619 1181, 1181, 1186, 1186, 1186, 1259, 1186, 1284, 1269, 1186,
1620 1187, 1187, 1187, 1260, 1187, 1181, 1264, 1187, 1186, 1190,
1621 1190, 1190, 1262, 1190, 1265, 1275, 1190, 1225, 1225, 1225,
1622 1181, 1239, 1239, 1239, 1261, 1261, 1261, 1260, 1284, 1263,
1623 1264, 1271, 1276, 1225, 1270, 1270, 1270, 1239, 1265, 1277,
1624 1261, 1291, 1280, 1271, 1273, 1273, 1273, 1275, 1278, 1280,
1625 1270, 1277, 1279, 1279, 1279, 1281, 1285, 1278, 1292, 957,
1627 1273, 1289, 1281, 949, 1276, 1282, 1282, 1282, 1279, 1282,
1628 1290, 1299, 1282, 1283, 1283, 1283, 1286, 1286, 1286, 1291,
1629 1300, 1282, 1287, 1287, 1287, 1289, 1295, 1285, 1296, 1283,
1630 1301, 1302, 1286, 1295, 1290, 1296, 1292, 1303, 1287, 1293,
1631 1293, 1293, 1297, 1297, 1297, 1304, 1307, 1308, 1305, 1306,
1632 1299, 1309, 1310, 1311, 1312, 1293, 1314, 1315, 1297, 1300,
1633 1318, 1303, 1316, 1312, 1319, 1311, 1321, 1320, 1324, 1304,
1634 1301, 1302, 1305, 1306, 1325, 1321, 1317, 1317, 1317, 1320,
1635 1327, 1315, 1314, 1307, 1308, 1328, 1316, 947, 1335, 1336,
1636 1309, 1310, 1317, 1322, 1322, 1322, 1326, 1326, 1326, 1333,
1638 1324, 1331, 1334, 1318, 946, 945, 1325, 1319, 1331, 1322,
1639 1332, 1327, 1326, 1329, 1329, 1329, 1328, 1332, 1337, 1338,
1640 1339, 1340, 936, 1333, 935, 934, 1334, 1335, 1336, 1329,
1641 1340, 933, 1339, 1341, 1341, 1341, 1342, 1342, 1342, 932,
1642 931, 925, 1337, 1338, 923, 921, 908, 907, 900, 1341,
1643 899, 898, 1342, 1345, 1345, 1345, 1345, 1345, 1345, 1345,
1644 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1347, 1347, 1347,
1645 1347, 1347, 1347, 1347, 1348, 1348, 1348, 1348, 1348, 1348,
1646 1348, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1350, 1350,
1647 1350, 1350, 1350, 1350, 1350, 1351, 1351, 1351, 1351, 1351,
1649 1351, 1351, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1353,
1650 1353, 1353, 1353, 1353, 1353, 1353, 1354, 1354, 1354, 1354,
1651 1354, 1354, 1354, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
1652 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1357, 1357, 1357,
1653 1357, 1357, 1357, 1357, 1358, 1358, 1358, 1358, 1358, 1358,
1654 1358, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1360, 1360,
1655 1360, 1360, 1360, 1360, 1360, 1361, 1361, 1361, 1361, 1361,
1656 1361, 1361, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1363,
1657 1363, 1363, 1363, 1363, 1363, 1363, 1364, 1364, 1364, 1364,
1658 1364, 1364, 1364, 1365, 1365, 1365, 1365, 1365, 1365, 1365,
1660 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1367, 1367, 1367,
1661 897, 1367, 1368, 1368, 1368, 895, 1368, 1369, 1369, 1369,
1662 879, 1369, 1370, 1370, 1370, 875, 1370, 1371, 1371, 1371,
1663 865, 1371, 1372, 1372, 1372, 864, 1372, 1373, 1373, 1373,
1664 863, 1373, 1374, 1374, 1374, 862, 1374, 1375, 1375, 1375,
1665 1375, 1375, 860, 1375, 1376, 845, 1376, 1377, 842, 1377,
1666 1378, 833, 1378, 1379, 832, 1379, 1380, 831, 1380, 1381,
1667 830, 1381, 1382, 824, 1382, 1383, 812, 1383, 1384, 1384,
1668 1384, 1384, 1384, 1384, 1384, 1385, 808, 805, 1385, 1386,
1669 1386, 1386, 1386, 1386, 1386, 1387, 1387, 1387, 1387, 1387,
1671 1387, 1388, 1388, 1388, 1388, 1388, 1388, 1389, 1389, 1389,
1672 1389, 1389, 1389, 1390, 1390, 1390, 1390, 1390, 1390, 1391,
1673 1391, 1391, 1391, 1391, 1391, 1392, 1392, 1392, 1392, 1392,
1674 1392, 1393, 1393, 1393, 1393, 1393, 1393, 1394, 1394, 1394,
1675 1394, 1394, 1394, 1394, 1395, 1395, 1395, 1395, 1395, 1395,
1676 1395, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1397, 1397,
1677 1397, 1397, 1397, 1397, 1397, 1398, 1398, 1398, 1398, 1398,
1678 1398, 1398, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1400,
1679 1400, 1400, 1400, 1400, 1400, 1400, 804, 802, 797, 783,
1680 782, 781, 776, 774, 770, 769, 767, 765, 747, 746,
1682 745, 739, 738, 737, 729, 728, 727, 726, 724, 704,
1683 699, 697, 696, 695, 694, 689, 687, 686, 685, 684,
1684 681, 679, 671, 666, 665, 663, 662, 661, 660, 659,
1685 658, 657, 652, 651, 650, 649, 648, 647, 646, 645,
1686 642, 636, 632, 630, 628, 627, 624, 621, 619, 616,
1687 615, 612, 611, 608, 607, 606, 603, 598, 594, 589,
1688 587, 586, 585, 583, 581, 579, 578, 577, 575, 573,
1689 572, 571, 570, 565, 564, 563, 560, 559, 558, 555,
1690 550, 546, 544, 543, 539, 534, 532, 530, 527, 523,
1691 522, 519, 511, 510, 509, 503, 502, 501, 499, 498,
1693 495, 492, 490, 487, 485, 484, 481, 477, 472, 466,
1694 463, 462, 456, 455, 454, 450, 449, 448, 447, 444,
1695 443, 442, 441, 436, 431, 430, 425, 424, 422, 416,
1696 409, 402, 401, 399, 398, 393, 392, 390, 389, 388,
1697 382, 381, 380, 379, 373, 372, 371, 368, 367, 366,
1698 364, 360, 358, 355, 354, 351, 350, 349, 348, 345,
1699 344, 340, 336, 335, 334, 333, 332, 329, 328, 327,
1700 326, 325, 324, 321, 320, 319, 318, 317, 316, 313,
1701 312, 310, 309, 308, 307, 306, 302, 300, 299, 298,
1702 297, 296, 295, 292, 291, 290, 289, 288, 287, 284,
1704 283, 280, 279, 278, 277, 276, 273, 272, 271, 270,
1705 269, 268, 265, 264, 263, 262, 261, 260, 259, 256,
1706 255, 252, 251, 250, 249, 248, 247, 246, 243, 242,
1707 241, 240, 239, 233, 232, 230, 227, 226, 222, 218,
1708 210, 209, 208, 207, 203, 196, 192, 184, 183, 182,
1709 178, 170, 169, 168, 164, 157, 156, 155, 154, 153,
1710 152, 148, 140, 136, 127, 123, 119, 118, 117, 111,
1711 110, 108, 105, 93, 1344, 1344, 1344, 1344, 1344, 1344,
1712 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1713 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1715 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1716 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1717 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1718 1344, 1344, 1344, 1344, 1344, 1344, 1344
1721 /* Table of booleans, true if rule could match eol. */
1722 static yyconst flex_int32_t yy_rule_can_match_eol[179] =
1724 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1725 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0,
1726 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1727 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1728 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1729 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1730 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1731 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
1732 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, };
1734 static yy_state_type yy_last_accepting_state;
1735 static char *yy_last_accepting_cpos;
1737 extern int surf_parse__flex_debug;
1738 int surf_parse__flex_debug = 0;
1740 /* The intent behind this definition is that it'll catch
1741 * any uses of REJECT which flex missed.
1743 #define REJECT reject_used_but_not_detected
1744 #define yymore() yymore_used_but_not_detected
1745 #define YY_MORE_ADJ 0
1746 #define YY_RESTORE_YY_MORE_OFFSET
1747 char *surf_parse_text;
1748 #line 1 "surf/surfxml.l"
1749 /* Validating XML processor for surfxml.dtd.
1750 * Generated 2006/05/29 23:03:05.
1752 * This program was generated with the FleXML XML processor generator.
1753 * FleXML is Copyright © 1999-2005 Kristoffer Rose. All rights reserved.
1754 * (Id: flexml.pl,v 1.48 2006/03/21 13:09:12 mquinson Exp).
1756 * There are two, intertwined parts to this program, part A and part B.
1761 * Some parts, here collectively called "Part A", are found in the
1762 * FleXML package. They are Copyright © 1999-2005 Kristoffer Rose.
1763 * All rights reserved.
1765 * You can redistribute, use, perform, display and/or modify "Part A"
1766 * provided the following two conditions hold:
1768 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1769 * FleXML; without even the implied warranty of MERCHANTABILITY or
1770 * FITNESS FOR A PARTICULAR PURPOSE.
1772 * 2. The program distribution conditions do not in any way affect the
1773 * distribution conditions of the FleXML system used to generate this
1774 * file or any version of FleXML derived from that system.
1776 * Notice that these are explicit rights granted to you for files
1777 * generated by the FleXML system. For your rights in connection with
1778 * the FleXML system itself please consult the GNU General Public License.
1783 * The other parts, here collectively called "Part B", and which came
1784 * from the DTD used by FleXML to generate this program, can be
1785 * distributed (or not, as the case may be) under the terms of whoever
1786 * wrote them, provided these terms respect and obey the two conditions
1787 * above under the heading "Part A".
1789 * The author of and contributors to FleXML specifically disclaim
1790 * any copyright interest in "Part B", unless "Part B" was written
1791 * by the author of or contributors to FleXML.
1794 #line 48 "surf/surfxml.l"
1796 /* Version strings. */
1797 const char rcs_surfxml_flexml_skeleton[] =
1798 "$" "Id: skel,v 1.28 2006/03/21 12:04:13 legranda Exp $";
1799 const char rcs_surfxml_flexml[] =
1800 "$" "Id: flexml.pl,v 1.48 2006/03/21 13:09:12 mquinson Exp $";
1810 /* Generated definitions. */
1811 #define FLEXML_yylineno
1812 #define FLEXML_BUFFERSTACKSIZE 1000000
1814 /* XML processor api. */
1815 /* FleXML-provided data. */
1816 const char* surfxml_pcdata;
1817 AT_surfxml_network_link_bandwidth A_surfxml_network_link_bandwidth;
1818 AT_surfxml_process_host A_surfxml_process_host;
1819 AT_surfxml_network_link_latency_file A_surfxml_network_link_latency_file;
1820 AT_surfxml_route_impact_on_dst_with_other_send A_surfxml_route_impact_on_dst_with_other_send;
1821 AT_surfxml_cpu_interference_send_recv A_surfxml_cpu_interference_send_recv;
1822 AT_surfxml_route_impact_on_dst A_surfxml_route_impact_on_dst;
1823 AT_surfxml_platform_description_version A_surfxml_platform_description_version;
1824 AT_surfxml_route_impact_on_src_with_other_recv A_surfxml_route_impact_on_src_with_other_recv;
1825 AT_surfxml_route_element_name A_surfxml_route_element_name;
1826 AT_surfxml_process_start_time A_surfxml_process_start_time;
1827 AT_surfxml_process_function A_surfxml_process_function;
1828 AT_surfxml_cpu_state A_surfxml_cpu_state;
1829 AT_surfxml_cpu_interference_send A_surfxml_cpu_interference_send;
1830 AT_surfxml_network_link_bandwidth_file A_surfxml_network_link_bandwidth_file;
1831 AT_surfxml_cpu_name A_surfxml_cpu_name;
1832 AT_surfxml_process_kill_time A_surfxml_process_kill_time;
1833 AT_surfxml_network_link_state A_surfxml_network_link_state;
1834 AT_surfxml_cpu_availability_file A_surfxml_cpu_availability_file;
1835 AT_surfxml_argument_value A_surfxml_argument_value;
1836 AT_surfxml_route_src A_surfxml_route_src;
1837 AT_surfxml_route_impact_on_src A_surfxml_route_impact_on_src;
1838 AT_surfxml_cpu_max_outgoing_rate A_surfxml_cpu_max_outgoing_rate;
1839 AT_surfxml_cpu_availability A_surfxml_cpu_availability;
1840 AT_surfxml_cpu_interference_recv A_surfxml_cpu_interference_recv;
1841 AT_surfxml_network_link_name A_surfxml_network_link_name;
1842 AT_surfxml_cpu_power A_surfxml_cpu_power;
1843 AT_surfxml_include_file A_surfxml_include_file;
1844 AT_surfxml_network_link_sharing_policy A_surfxml_network_link_sharing_policy;
1845 AT_surfxml_route_dst A_surfxml_route_dst;
1846 AT_surfxml_network_link_latency A_surfxml_network_link_latency;
1847 AT_surfxml_cpu_state_file A_surfxml_cpu_state_file;
1848 AT_surfxml_network_link_state_file A_surfxml_network_link_state_file;
1852 # define ENTER(state) debug_enter(state,#state)
1853 # define LEAVE debug_leave()
1854 # define SET(state) debug_set(state,#state)
1855 static void debug_enter(int, const char*);
1856 static void debug_leave(void);
1857 static void debug_set(int, const char*);
1859 # define ENTER(state) (yy_push_state(state))
1860 # define LEAVE (yy_pop_state())
1861 # define SET(state) BEGIN(state)
1864 /* Generic actions. */
1865 #define SKIP /*skip*/
1866 #define SUCCEED CLEANUP; return 0
1868 #define FAIL return fail
1869 static int fail(const char*, ...);
1870 const char * surfxml_parse_err_msg(void);
1873 static void cleanup(void);
1874 #define CLEANUP cleanup()
1876 /* Text buffer stack handling. */
1877 static char bufferstack[FLEXML_BUFFERSTACKSIZE];
1878 static char* limit = bufferstack + FLEXML_BUFFERSTACKSIZE;
1879 typedef struct BufferLast_s {
1880 struct BufferLast_s *old; char* saved; char new1[1];
1882 #ifdef FLEXML_HasMixed
1883 static BufferLast* last = (BufferLast*)0;
1885 static char* next = bufferstack;
1887 #define BUFFERSET(P) (P = next)
1888 #define BUFFERPUTC(C) (assert(next<limit), *(next++) = (C))
1889 #define BUFFERDONE (BUFFERPUTC('\0'))
1891 #define BUFFERLITERAL(C,P) bufferliteral(C,&(P),surf_parse_text)
1892 static void bufferliteral(char c, const char** pp, char* text)
1894 char *s = strchr(text,c), *e = strrchr(text,c);
1895 assert(s <= e); BUFFERSET(*pp);
1897 if (isspace(*s)) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
1898 else BUFFERPUTC(*s);
1903 #ifdef FLEXML_HasMixed
1904 static void pushbuffer(char* p)
1906 BufferLast* l = (BufferLast*)next;
1907 assert(next < limit);
1914 static char* popbuffer(void)
1916 BufferLast* l = last;
1917 assert(last != (BufferLast*)0);
1924 /* General internal entities are `unput' back onto the input stream... */
1925 #define ENTITYTEXT(T) \
1926 { char *s = (T), *e = s+strlen(s);\
1927 while (--e >= s) { unput(*e); }}
1928 /* Flex standard options. */
1929 #define YY_NO_INPUT 1
1930 /* Flex user-requested options. */
1931 /* XML character classes (currently restricted to ASCII). */
1932 /* "Common syntactic structures." */
1933 /* "Names and Tokens." */
1934 /* Miscellaneous. */
1935 /* Parser states (flex `exclusive start conditions'):
1937 * PROLOG the XML prolog of the document before <?xml...>
1938 * DOCTYPE the XML prolog of the document after <?xml...>
1939 * EPILOG after the root element
1940 * INCOMMENT inside an XML comment <!--....-->
1941 * INPI inside an XML PI <?...?>
1942 * VALUE1 inside a '...'-delimited literal
1943 * VALUE2 inside a "..."-delimited literal
1944 * CDATA inside a <![CDATA[...] ]> section.
1945 * ROOT_<tag> expect root element <tag>
1946 * AL_<tag> inside the attribute list for <tag>
1947 * IN_<tag> inside a <tag> with element contents (ready for end tag)
1948 * IMPOSSIBLE dummy to permit disabling rules; must be last
1960 #line 240 "surf/surfxml.l"
1962 const char* *surfxml_statenames=NULL;
1963 #line 1964 "surf/surfxml.c"
1974 #define ROOT_surfxml_platform_description 9
1975 #define AL_surfxml_platform_description 10
1976 #define S_surfxml_platform_description 11
1977 #define S_surfxml_platform_description_1 12
1978 #define S_surfxml_platform_description_2 13
1979 #define E_surfxml_platform_description 14
1980 #define ROOT_surfxml_include 15
1981 #define AL_surfxml_include 16
1982 #define S_surfxml_include 17
1983 #define S_surfxml_include_1 18
1984 #define S_surfxml_include_2 19
1985 #define E_surfxml_include 20
1986 #define ROOT_surfxml_cpu 21
1987 #define AL_surfxml_cpu 22
1988 #define E_surfxml_cpu 23
1989 #define ROOT_surfxml_network_link 24
1990 #define AL_surfxml_network_link 25
1991 #define E_surfxml_network_link 26
1992 #define ROOT_surfxml_route 27
1993 #define AL_surfxml_route 28
1994 #define S_surfxml_route 29
1995 #define S_surfxml_route_1 30
1996 #define S_surfxml_route_2 31
1997 #define E_surfxml_route 32
1998 #define ROOT_surfxml_route_element 33
1999 #define AL_surfxml_route_element 34
2000 #define E_surfxml_route_element 35
2001 #define ROOT_surfxml_process 36
2002 #define AL_surfxml_process 37
2003 #define S_surfxml_process 38
2004 #define S_surfxml_process_1 39
2005 #define S_surfxml_process_2 40
2006 #define E_surfxml_process 41
2007 #define ROOT_surfxml_argument 42
2008 #define AL_surfxml_argument 43
2009 #define E_surfxml_argument 44
2010 #define IMPOSSIBLE 45
2012 #ifndef YY_NO_UNISTD_H
2013 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2014 * down here because we want the user's section 1 to have been scanned first.
2015 * The user has a chance to override it with an option.
2020 #ifndef YY_EXTRA_TYPE
2021 #define YY_EXTRA_TYPE void *
2024 /* Macros after this point can all be overridden by user definitions in
2028 #ifndef YY_SKIP_YYWRAP
2030 extern "C" int surf_parse_wrap (void );
2032 extern int surf_parse_wrap (void );
2037 static void yy_flex_strncpy (char *,yyconst char *,int );
2040 #ifdef YY_NEED_STRLEN
2041 static int yy_flex_strlen (yyconst char * );
2047 static int yyinput (void );
2049 static int input (void );
2054 static int yy_start_stack_ptr = 0;
2055 static int yy_start_stack_depth = 0;
2056 static int *yy_start_stack = 0;
2058 static void yy_push_state (int new_state );
2060 static void yy_pop_state (void );
2062 /* Amount of stuff to slurp up with each read. */
2063 #ifndef YY_READ_BUF_SIZE
2064 #define YY_READ_BUF_SIZE 8192
2067 /* Copy whatever the last rule matched to the standard output. */
2069 /* This used to be an fputs(), but since the string might contain NUL's,
2070 * we now use fwrite().
2072 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
2075 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2076 * is returned in "result".
2079 #define YY_INPUT(buf,result,max_size) \
2080 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2084 for ( n = 0; n < max_size && \
2085 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
2086 buf[n] = (char) c; \
2088 buf[n++] = (char) c; \
2089 if ( c == EOF && ferror( surf_parse_in ) ) \
2090 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2096 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2098 if( errno != EINTR) \
2100 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2104 clearerr(surf_parse_in); \
2111 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2112 * we don't want an extra ';' after the "return" because that will cause
2113 * some compilers to complain about unreachable statements.
2116 #define yyterminate() return YY_NULL
2119 /* Number of entries by which start-condition stack grows. */
2120 #ifndef YY_START_STACK_INCR
2121 #define YY_START_STACK_INCR 25
2124 /* Report a fatal error. */
2125 #ifndef YY_FATAL_ERROR
2126 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2129 /* end tables serialization structures and prototypes */
2131 /* Default declaration of generated scanner - a define so the user can
2132 * easily add parameters.
2135 #define YY_DECL_IS_OURS 1
2137 extern int surf_parse_lex (void);
2139 #define YY_DECL int surf_parse_lex (void)
2140 #endif /* !YY_DECL */
2142 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2145 #ifndef YY_USER_ACTION
2146 #define YY_USER_ACTION
2149 /* Code executed at the end of each rule. */
2151 #define YY_BREAK break;
2154 #define YY_RULE_SETUP \
2157 /** The main scanner function which does all the work.
2161 register yy_state_type yy_current_state;
2162 register char *yy_cp, *yy_bp;
2163 register int yy_act;
2165 #line 244 "surf/surfxml.l"
2168 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
2172 if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
2173 surfxml_statenames[PROLOG] = NULL;
2174 surfxml_statenames[DOCTYPE] = NULL;
2175 surfxml_statenames[EPILOG] = NULL;
2176 surfxml_statenames[INCOMMENT] = NULL;
2177 surfxml_statenames[INPI] = NULL;
2178 surfxml_statenames[VALUE1] = NULL;
2179 surfxml_statenames[VALUE2] = NULL;
2180 surfxml_statenames[CDATA] = NULL;
2181 surfxml_statenames[ROOT_surfxml_platform_description] = NULL;
2182 surfxml_statenames[AL_surfxml_platform_description] = NULL;
2183 surfxml_statenames[S_surfxml_platform_description] = "platform_description";
2184 surfxml_statenames[S_surfxml_platform_description_1] = "platform_description";
2185 surfxml_statenames[S_surfxml_platform_description_2] = "platform_description";
2186 surfxml_statenames[E_surfxml_platform_description] = "platform_description";
2187 surfxml_statenames[ROOT_surfxml_include] = NULL;
2188 surfxml_statenames[AL_surfxml_include] = NULL;
2189 surfxml_statenames[S_surfxml_include] = "include";
2190 surfxml_statenames[S_surfxml_include_1] = "include";
2191 surfxml_statenames[S_surfxml_include_2] = "include";
2192 surfxml_statenames[E_surfxml_include] = "include";
2193 surfxml_statenames[ROOT_surfxml_cpu] = NULL;
2194 surfxml_statenames[AL_surfxml_cpu] = NULL;
2195 surfxml_statenames[E_surfxml_cpu] = "cpu";
2196 surfxml_statenames[ROOT_surfxml_network_link] = NULL;
2197 surfxml_statenames[AL_surfxml_network_link] = NULL;
2198 surfxml_statenames[E_surfxml_network_link] = "network_link";
2199 surfxml_statenames[ROOT_surfxml_route] = NULL;
2200 surfxml_statenames[AL_surfxml_route] = NULL;
2201 surfxml_statenames[S_surfxml_route] = "route";
2202 surfxml_statenames[S_surfxml_route_1] = "route";
2203 surfxml_statenames[S_surfxml_route_2] = "route";
2204 surfxml_statenames[E_surfxml_route] = "route";
2205 surfxml_statenames[ROOT_surfxml_route_element] = NULL;
2206 surfxml_statenames[AL_surfxml_route_element] = NULL;
2207 surfxml_statenames[E_surfxml_route_element] = "route_element";
2208 surfxml_statenames[ROOT_surfxml_process] = NULL;
2209 surfxml_statenames[AL_surfxml_process] = NULL;
2210 surfxml_statenames[S_surfxml_process] = "process";
2211 surfxml_statenames[S_surfxml_process_1] = "process";
2212 surfxml_statenames[S_surfxml_process_2] = "process";
2213 surfxml_statenames[E_surfxml_process] = "process";
2214 surfxml_statenames[ROOT_surfxml_argument] = NULL;
2215 surfxml_statenames[AL_surfxml_argument] = NULL;
2216 surfxml_statenames[E_surfxml_argument] = "argument";
2219 /* COMMENTS and PIs: handled uniformly for efficiency. */
2221 #line 2222 "surf/surfxml.c"
2232 (yy_start) = 1; /* first start state */
2234 if ( ! surf_parse_in )
2235 surf_parse_in = stdin;
2237 if ( ! surf_parse_out )
2238 surf_parse_out = stdout;
2240 if ( ! YY_CURRENT_BUFFER ) {
2241 surf_parse_ensure_buffer_stack ();
2242 YY_CURRENT_BUFFER_LVALUE =
2243 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
2246 surf_parse__load_buffer_state( );
2249 while ( 1 ) /* loops until end-of-file is reached */
2251 yy_cp = (yy_c_buf_p);
2253 /* Support of surf_parse_text. */
2254 *yy_cp = (yy_hold_char);
2256 /* yy_bp points to the position in yy_ch_buf of the start of
2261 yy_current_state = (yy_start);
2265 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2266 if ( yy_accept[yy_current_state] )
2268 (yy_last_accepting_state) = yy_current_state;
2269 (yy_last_accepting_cpos) = yy_cp;
2271 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2273 yy_current_state = (int) yy_def[yy_current_state];
2274 if ( yy_current_state >= 1345 )
2275 yy_c = yy_meta[(unsigned int) yy_c];
2277 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2280 while ( yy_base[yy_current_state] != 3675 );
2283 yy_act = yy_accept[yy_current_state];
2285 { /* have to back up */
2286 yy_cp = (yy_last_accepting_cpos);
2287 yy_current_state = (yy_last_accepting_state);
2288 yy_act = yy_accept[yy_current_state];
2291 YY_DO_BEFORE_ACTION;
2293 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2296 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
2297 if ( surf_parse_text[yyl] == '\n' )
2299 surf_parse_lineno++;
2303 do_action: /* This label is used only to access EOF actions. */
2306 { /* beginning of action switch */
2307 case 0: /* must back up */
2308 /* undo the effects of YY_DO_BEFORE_ACTION */
2309 *yy_cp = (yy_hold_char);
2310 yy_cp = (yy_last_accepting_cpos);
2311 yy_current_state = (yy_last_accepting_state);
2312 goto yy_find_action;
2316 #line 300 "surf/surfxml.l"
2321 #line 301 "surf/surfxml.l"
2328 #line 304 "surf/surfxml.l"
2332 #line 306 "surf/surfxml.l"
2334 #line 307 "surf/surfxml.l"
2336 /* rule 6 can match eol */
2338 #line 307 "surf/surfxml.l"
2341 case YY_STATE_EOF(INCOMMENT):
2342 #line 308 "surf/surfxml.l"
2343 FAIL("EOF in comment.");
2349 #line 311 "surf/surfxml.l"
2353 #line 313 "surf/surfxml.l"
2355 /* rule 9 can match eol */
2357 #line 313 "surf/surfxml.l"
2360 case YY_STATE_EOF(INPI):
2361 #line 314 "surf/surfxml.l"
2362 FAIL("EOF in PI (processing instruction).");
2365 /* SPACES: skipped uniformly */
2367 /* rule 10 can match eol */
2369 #line 319 "surf/surfxml.l"
2372 /* PROLOG: determine root element and process it. */
2375 /* rule 11 can match eol */
2377 #line 324 "surf/surfxml.l"
2381 /* rule 12 can match eol */
2383 #line 325 "surf/surfxml.l"
2384 FAIL("Bad declaration %s.",surf_parse_text);
2389 /* rule 13 can match eol */
2391 #line 329 "surf/surfxml.l"
2392 SET(ROOT_surfxml_argument);
2395 /* rule 14 can match eol */
2397 #line 330 "surf/surfxml.l"
2398 SET(ROOT_surfxml_route_element);
2401 /* rule 15 can match eol */
2403 #line 331 "surf/surfxml.l"
2404 SET(ROOT_surfxml_cpu);
2407 /* rule 16 can match eol */
2409 #line 332 "surf/surfxml.l"
2410 SET(ROOT_surfxml_include);
2413 /* rule 17 can match eol */
2415 #line 333 "surf/surfxml.l"
2416 SET(ROOT_surfxml_route);
2419 /* rule 18 can match eol */
2421 #line 334 "surf/surfxml.l"
2422 SET(ROOT_surfxml_platform_description);
2425 /* rule 19 can match eol */
2427 #line 335 "surf/surfxml.l"
2428 SET(ROOT_surfxml_network_link);
2431 /* rule 20 can match eol */
2433 #line 336 "surf/surfxml.l"
2434 SET(ROOT_surfxml_process);
2437 /* rule 21 can match eol */
2439 #line 337 "surf/surfxml.l"
2440 FAIL("Bad declaration %s.",surf_parse_text);
2444 #line 338 "surf/surfxml.l"
2445 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
2447 case YY_STATE_EOF(PROLOG):
2448 case YY_STATE_EOF(DOCTYPE):
2449 #line 339 "surf/surfxml.l"
2450 FAIL("EOF in prolog.");
2453 /* RULES DERIVED FROM DTD. */
2454 /* <!-- Small DTD for SURF based tools. --> */
2456 /* rule 23 can match eol */
2458 #line 346 "surf/surfxml.l"
2460 A_surfxml_platform_description_version = "0.0";
2461 ENTER(AL_surfxml_platform_description);
2466 /* rule 24 can match eol */
2468 #line 352 "surf/surfxml.l"
2469 ENTER(VALUE1); BUFFERSET(A_surfxml_platform_description_version);
2472 /* rule 25 can match eol */
2474 #line 353 "surf/surfxml.l"
2475 ENTER(VALUE2); BUFFERSET(A_surfxml_platform_description_version);
2479 #line 355 "surf/surfxml.l"
2481 LEAVE; STag_surfxml_platform_description();surfxml_pcdata = NULL; ENTER(S_surfxml_platform_description);
2486 #line 358 "surf/surfxml.l"
2488 LEAVE; STag_surfxml_platform_description(); surfxml_pcdata = NULL; ETag_surfxml_platform_description();
2490 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2496 #line 364 "surf/surfxml.l"
2497 FAIL("Unexpected character `%c' in attribute list of platform_description element.", surf_parse_text[0]);
2501 #line 365 "surf/surfxml.l"
2502 FAIL("Bad attribute `%s' in `platform_description' element start tag.",surf_parse_text);
2504 case YY_STATE_EOF(AL_surfxml_platform_description):
2505 #line 366 "surf/surfxml.l"
2506 FAIL("EOF in attribute list of `platform_description' element.");
2511 /* rule 30 can match eol */
2513 #line 370 "surf/surfxml.l"
2516 ETag_surfxml_platform_description();
2518 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2523 /* rule 31 can match eol */
2525 #line 377 "surf/surfxml.l"
2526 FAIL("Unexpected end-tag `%s': `</platform_description>' expected.",surf_parse_text);
2530 #line 378 "surf/surfxml.l"
2531 FAIL("Unexpected character `%c': `</platform_description>' expected.",surf_parse_text[0]);
2533 case YY_STATE_EOF(E_surfxml_platform_description):
2534 case YY_STATE_EOF(S_surfxml_platform_description_2):
2535 case YY_STATE_EOF(S_surfxml_platform_description):
2536 #line 379 "surf/surfxml.l"
2537 FAIL("Premature EOF: `</platform_description>' expected.");
2541 /* rule 33 can match eol */
2543 #line 382 "surf/surfxml.l"
2545 A_surfxml_include_file = NULL;
2546 ENTER(AL_surfxml_include);
2551 /* rule 34 can match eol */
2553 #line 388 "surf/surfxml.l"
2554 ENTER(VALUE1); BUFFERSET(A_surfxml_include_file);
2557 /* rule 35 can match eol */
2559 #line 389 "surf/surfxml.l"
2560 ENTER(VALUE2); BUFFERSET(A_surfxml_include_file);
2564 #line 391 "surf/surfxml.l"
2566 if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2567 LEAVE; STag_surfxml_include();surfxml_pcdata = NULL; ENTER(S_surfxml_include);
2572 #line 395 "surf/surfxml.l"
2574 if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2575 LEAVE; STag_surfxml_include(); surfxml_pcdata = NULL; ETag_surfxml_include();
2577 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2578 case ROOT_surfxml_include: SET(EPILOG); break;
2579 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2585 #line 404 "surf/surfxml.l"
2586 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
2590 #line 405 "surf/surfxml.l"
2591 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
2593 case YY_STATE_EOF(AL_surfxml_include):
2594 #line 406 "surf/surfxml.l"
2595 FAIL("EOF in attribute list of `include' element.");
2600 /* rule 40 can match eol */
2602 #line 410 "surf/surfxml.l"
2605 ETag_surfxml_include();
2607 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2608 case ROOT_surfxml_include: SET(EPILOG); break;
2609 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2614 /* rule 41 can match eol */
2616 #line 419 "surf/surfxml.l"
2617 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
2621 #line 420 "surf/surfxml.l"
2622 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
2624 case YY_STATE_EOF(E_surfxml_include):
2625 case YY_STATE_EOF(S_surfxml_include):
2626 case YY_STATE_EOF(S_surfxml_include_2):
2627 #line 421 "surf/surfxml.l"
2628 FAIL("Premature EOF: `</include>' expected.");
2632 /* rule 43 can match eol */
2634 #line 424 "surf/surfxml.l"
2636 A_surfxml_cpu_name = NULL;
2637 A_surfxml_cpu_power = NULL;
2638 A_surfxml_cpu_availability = "1.0";
2639 A_surfxml_cpu_availability_file = NULL;
2640 A_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2641 A_surfxml_cpu_state_file = NULL;
2642 A_surfxml_cpu_interference_send = "1.0";
2643 A_surfxml_cpu_interference_recv = "1.0";
2644 A_surfxml_cpu_interference_send_recv = "1.0";
2645 A_surfxml_cpu_max_outgoing_rate = "-1.0";
2646 ENTER(AL_surfxml_cpu);
2651 /* rule 44 can match eol */
2653 #line 439 "surf/surfxml.l"
2654 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_name);
2657 /* rule 45 can match eol */
2659 #line 440 "surf/surfxml.l"
2660 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_name);
2663 /* rule 46 can match eol */
2665 #line 442 "surf/surfxml.l"
2666 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_power);
2669 /* rule 47 can match eol */
2671 #line 443 "surf/surfxml.l"
2672 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_power);
2675 /* rule 48 can match eol */
2677 #line 445 "surf/surfxml.l"
2678 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability);
2681 /* rule 49 can match eol */
2683 #line 446 "surf/surfxml.l"
2684 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability);
2687 /* rule 50 can match eol */
2689 #line 448 "surf/surfxml.l"
2690 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability_file);
2693 /* rule 51 can match eol */
2695 #line 449 "surf/surfxml.l"
2696 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability_file);
2699 /* rule 52 can match eol */
2700 #line 452 "surf/surfxml.l"
2702 /* rule 53 can match eol */
2704 #line 452 "surf/surfxml.l"
2705 A_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2708 /* rule 54 can match eol */
2709 #line 454 "surf/surfxml.l"
2711 /* rule 55 can match eol */
2713 #line 454 "surf/surfxml.l"
2714 A_surfxml_cpu_state = A_surfxml_cpu_state_OFF;
2717 /* rule 56 can match eol */
2719 #line 456 "surf/surfxml.l"
2720 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_state_file);
2723 /* rule 57 can match eol */
2725 #line 457 "surf/surfxml.l"
2726 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_state_file);
2729 /* rule 58 can match eol */
2731 #line 459 "surf/surfxml.l"
2732 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send);
2735 /* rule 59 can match eol */
2737 #line 460 "surf/surfxml.l"
2738 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send);
2741 /* rule 60 can match eol */
2743 #line 462 "surf/surfxml.l"
2744 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_recv);
2747 /* rule 61 can match eol */
2749 #line 463 "surf/surfxml.l"
2750 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_recv);
2753 /* rule 62 can match eol */
2755 #line 465 "surf/surfxml.l"
2756 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send_recv);
2759 /* rule 63 can match eol */
2761 #line 466 "surf/surfxml.l"
2762 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send_recv);
2765 /* rule 64 can match eol */
2767 #line 468 "surf/surfxml.l"
2768 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_max_outgoing_rate);
2771 /* rule 65 can match eol */
2773 #line 469 "surf/surfxml.l"
2774 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_max_outgoing_rate);
2778 #line 471 "surf/surfxml.l"
2780 if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2781 if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2782 LEAVE; STag_surfxml_cpu();surfxml_pcdata = NULL; ENTER(E_surfxml_cpu);
2787 #line 476 "surf/surfxml.l"
2789 if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2790 if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2791 LEAVE; STag_surfxml_cpu(); surfxml_pcdata = NULL; ETag_surfxml_cpu();
2793 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2794 case ROOT_surfxml_cpu: SET(EPILOG); break;
2795 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2801 #line 486 "surf/surfxml.l"
2802 FAIL("Unexpected character `%c' in attribute list of cpu element.", surf_parse_text[0]);
2806 #line 487 "surf/surfxml.l"
2807 FAIL("Bad attribute `%s' in `cpu' element start tag.",surf_parse_text);
2809 case YY_STATE_EOF(AL_surfxml_cpu):
2810 #line 488 "surf/surfxml.l"
2811 FAIL("EOF in attribute list of `cpu' element.");
2816 /* rule 70 can match eol */
2818 #line 492 "surf/surfxml.l"
2823 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2824 case ROOT_surfxml_cpu: SET(EPILOG); break;
2825 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2830 /* rule 71 can match eol */
2832 #line 501 "surf/surfxml.l"
2833 FAIL("Unexpected end-tag `%s': `</cpu>' expected.",surf_parse_text);
2837 #line 502 "surf/surfxml.l"
2838 FAIL("Unexpected character `%c': `</cpu>' expected.",surf_parse_text[0]);
2840 case YY_STATE_EOF(E_surfxml_cpu):
2841 #line 503 "surf/surfxml.l"
2842 FAIL("Premature EOF: `</cpu>' expected.");
2846 /* rule 73 can match eol */
2848 #line 506 "surf/surfxml.l"
2850 A_surfxml_network_link_name = NULL;
2851 A_surfxml_network_link_bandwidth = NULL;
2852 A_surfxml_network_link_bandwidth_file = NULL;
2853 A_surfxml_network_link_latency = "0.0";
2854 A_surfxml_network_link_latency_file = NULL;
2855 A_surfxml_network_link_state = A_surfxml_network_link_state_ON;
2856 A_surfxml_network_link_state_file = NULL;
2857 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
2858 ENTER(AL_surfxml_network_link);
2863 /* rule 74 can match eol */
2865 #line 519 "surf/surfxml.l"
2866 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_name);
2869 /* rule 75 can match eol */
2871 #line 520 "surf/surfxml.l"
2872 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_name);
2875 /* rule 76 can match eol */
2877 #line 522 "surf/surfxml.l"
2878 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth);
2881 /* rule 77 can match eol */
2883 #line 523 "surf/surfxml.l"
2884 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth);
2887 /* rule 78 can match eol */
2889 #line 525 "surf/surfxml.l"
2890 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth_file);
2893 /* rule 79 can match eol */
2895 #line 526 "surf/surfxml.l"
2896 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth_file);
2899 /* rule 80 can match eol */
2901 #line 528 "surf/surfxml.l"
2902 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency);
2905 /* rule 81 can match eol */
2907 #line 529 "surf/surfxml.l"
2908 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency);
2911 /* rule 82 can match eol */
2913 #line 531 "surf/surfxml.l"
2914 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency_file);
2917 /* rule 83 can match eol */
2919 #line 532 "surf/surfxml.l"
2920 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency_file);
2923 /* rule 84 can match eol */
2924 #line 535 "surf/surfxml.l"
2926 /* rule 85 can match eol */
2928 #line 535 "surf/surfxml.l"
2929 A_surfxml_network_link_state = A_surfxml_network_link_state_ON;
2932 /* rule 86 can match eol */
2933 #line 537 "surf/surfxml.l"
2935 /* rule 87 can match eol */
2937 #line 537 "surf/surfxml.l"
2938 A_surfxml_network_link_state = A_surfxml_network_link_state_OFF;
2941 /* rule 88 can match eol */
2943 #line 539 "surf/surfxml.l"
2944 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_state_file);
2947 /* rule 89 can match eol */
2949 #line 540 "surf/surfxml.l"
2950 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_state_file);
2953 /* rule 90 can match eol */
2954 #line 543 "surf/surfxml.l"
2956 /* rule 91 can match eol */
2958 #line 543 "surf/surfxml.l"
2959 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
2962 /* rule 92 can match eol */
2963 #line 545 "surf/surfxml.l"
2965 /* rule 93 can match eol */
2967 #line 545 "surf/surfxml.l"
2968 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_FATPIPE;
2972 #line 547 "surf/surfxml.l"
2974 if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2975 if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2976 LEAVE; STag_surfxml_network_link();surfxml_pcdata = NULL; ENTER(E_surfxml_network_link);
2981 #line 552 "surf/surfxml.l"
2983 if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2984 if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2985 LEAVE; STag_surfxml_network_link(); surfxml_pcdata = NULL; ETag_surfxml_network_link();
2987 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2988 case ROOT_surfxml_network_link: SET(EPILOG); break;
2989 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2995 #line 562 "surf/surfxml.l"
2996 FAIL("Unexpected character `%c' in attribute list of network_link element.", surf_parse_text[0]);
3000 #line 563 "surf/surfxml.l"
3001 FAIL("Bad attribute `%s' in `network_link' element start tag.",surf_parse_text);
3003 case YY_STATE_EOF(AL_surfxml_network_link):
3004 #line 564 "surf/surfxml.l"
3005 FAIL("EOF in attribute list of `network_link' element.");
3010 /* rule 98 can match eol */
3012 #line 568 "surf/surfxml.l"
3015 ETag_surfxml_network_link();
3017 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3018 case ROOT_surfxml_network_link: SET(EPILOG); break;
3019 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3024 /* rule 99 can match eol */
3026 #line 577 "surf/surfxml.l"
3027 FAIL("Unexpected end-tag `%s': `</network_link>' expected.",surf_parse_text);
3031 #line 578 "surf/surfxml.l"
3032 FAIL("Unexpected character `%c': `</network_link>' expected.",surf_parse_text[0]);
3034 case YY_STATE_EOF(E_surfxml_network_link):
3035 #line 579 "surf/surfxml.l"
3036 FAIL("Premature EOF: `</network_link>' expected.");
3040 /* rule 101 can match eol */
3042 #line 582 "surf/surfxml.l"
3044 A_surfxml_route_src = NULL;
3045 A_surfxml_route_dst = NULL;
3046 A_surfxml_route_impact_on_src = "0.0";
3047 A_surfxml_route_impact_on_dst = "0.0";
3048 A_surfxml_route_impact_on_src_with_other_recv = "0.0";
3049 A_surfxml_route_impact_on_dst_with_other_send = "0.0";
3050 ENTER(AL_surfxml_route);
3055 /* rule 102 can match eol */
3057 #line 593 "surf/surfxml.l"
3058 ENTER(VALUE1); BUFFERSET(A_surfxml_route_src);
3061 /* rule 103 can match eol */
3063 #line 594 "surf/surfxml.l"
3064 ENTER(VALUE2); BUFFERSET(A_surfxml_route_src);
3067 /* rule 104 can match eol */
3069 #line 596 "surf/surfxml.l"
3070 ENTER(VALUE1); BUFFERSET(A_surfxml_route_dst);
3073 /* rule 105 can match eol */
3075 #line 597 "surf/surfxml.l"
3076 ENTER(VALUE2); BUFFERSET(A_surfxml_route_dst);
3079 /* rule 106 can match eol */
3081 #line 599 "surf/surfxml.l"
3082 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src);
3085 /* rule 107 can match eol */
3087 #line 600 "surf/surfxml.l"
3088 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src);
3091 /* rule 108 can match eol */
3093 #line 602 "surf/surfxml.l"
3094 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst);
3097 /* rule 109 can match eol */
3099 #line 603 "surf/surfxml.l"
3100 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst);
3103 /* rule 110 can match eol */
3105 #line 605 "surf/surfxml.l"
3106 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv);
3109 /* rule 111 can match eol */
3111 #line 606 "surf/surfxml.l"
3112 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv);
3115 /* rule 112 can match eol */
3117 #line 608 "surf/surfxml.l"
3118 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send);
3121 /* rule 113 can match eol */
3123 #line 609 "surf/surfxml.l"
3124 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send);
3128 #line 611 "surf/surfxml.l"
3130 if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3131 if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3132 LEAVE; STag_surfxml_route();surfxml_pcdata = NULL; ENTER(S_surfxml_route);
3137 #line 616 "surf/surfxml.l"
3139 if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3140 if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3141 LEAVE; STag_surfxml_route(); surfxml_pcdata = NULL; ETag_surfxml_route();
3143 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3144 case ROOT_surfxml_route: SET(EPILOG); break;
3145 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3151 #line 626 "surf/surfxml.l"
3152 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
3156 #line 627 "surf/surfxml.l"
3157 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
3159 case YY_STATE_EOF(AL_surfxml_route):
3160 #line 628 "surf/surfxml.l"
3161 FAIL("EOF in attribute list of `route' element.");
3166 /* rule 118 can match eol */
3168 #line 632 "surf/surfxml.l"
3171 ETag_surfxml_route();
3173 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3174 case ROOT_surfxml_route: SET(EPILOG); break;
3175 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3180 /* rule 119 can match eol */
3182 #line 641 "surf/surfxml.l"
3183 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
3187 #line 642 "surf/surfxml.l"
3188 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
3190 case YY_STATE_EOF(S_surfxml_route):
3191 case YY_STATE_EOF(S_surfxml_route_2):
3192 case YY_STATE_EOF(E_surfxml_route):
3193 #line 643 "surf/surfxml.l"
3194 FAIL("Premature EOF: `</route>' expected.");
3198 /* rule 121 can match eol */
3200 #line 646 "surf/surfxml.l"
3202 A_surfxml_route_element_name = NULL;
3203 ENTER(AL_surfxml_route_element);
3208 /* rule 122 can match eol */
3210 #line 652 "surf/surfxml.l"
3211 ENTER(VALUE1); BUFFERSET(A_surfxml_route_element_name);
3214 /* rule 123 can match eol */
3216 #line 653 "surf/surfxml.l"
3217 ENTER(VALUE2); BUFFERSET(A_surfxml_route_element_name);
3221 #line 655 "surf/surfxml.l"
3223 if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3224 LEAVE; STag_surfxml_route_element();surfxml_pcdata = NULL; ENTER(E_surfxml_route_element);
3229 #line 659 "surf/surfxml.l"
3231 if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3232 LEAVE; STag_surfxml_route_element(); surfxml_pcdata = NULL; ETag_surfxml_route_element();
3234 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3235 case ROOT_surfxml_route_element: SET(EPILOG); break;
3241 #line 667 "surf/surfxml.l"
3242 FAIL("Unexpected character `%c' in attribute list of route_element element.", surf_parse_text[0]);
3246 #line 668 "surf/surfxml.l"
3247 FAIL("Bad attribute `%s' in `route_element' element start tag.",surf_parse_text);
3249 case YY_STATE_EOF(AL_surfxml_route_element):
3250 #line 669 "surf/surfxml.l"
3251 FAIL("EOF in attribute list of `route_element' element.");
3256 /* rule 128 can match eol */
3258 #line 673 "surf/surfxml.l"
3261 ETag_surfxml_route_element();
3263 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3264 case ROOT_surfxml_route_element: SET(EPILOG); break;
3269 /* rule 129 can match eol */
3271 #line 681 "surf/surfxml.l"
3272 FAIL("Unexpected end-tag `%s': `</route_element>' expected.",surf_parse_text);
3276 #line 682 "surf/surfxml.l"
3277 FAIL("Unexpected character `%c': `</route_element>' expected.",surf_parse_text[0]);
3279 case YY_STATE_EOF(E_surfxml_route_element):
3280 #line 683 "surf/surfxml.l"
3281 FAIL("Premature EOF: `</route_element>' expected.");
3285 /* rule 131 can match eol */
3287 #line 686 "surf/surfxml.l"
3289 A_surfxml_process_host = NULL;
3290 A_surfxml_process_function = NULL;
3291 A_surfxml_process_start_time = "-1.0";
3292 A_surfxml_process_kill_time = "-1.0";
3293 ENTER(AL_surfxml_process);
3298 /* rule 132 can match eol */
3300 #line 695 "surf/surfxml.l"
3301 ENTER(VALUE1); BUFFERSET(A_surfxml_process_host);
3304 /* rule 133 can match eol */
3306 #line 696 "surf/surfxml.l"
3307 ENTER(VALUE2); BUFFERSET(A_surfxml_process_host);
3310 /* rule 134 can match eol */
3312 #line 698 "surf/surfxml.l"
3313 ENTER(VALUE1); BUFFERSET(A_surfxml_process_function);
3316 /* rule 135 can match eol */
3318 #line 699 "surf/surfxml.l"
3319 ENTER(VALUE2); BUFFERSET(A_surfxml_process_function);
3322 /* rule 136 can match eol */
3324 #line 701 "surf/surfxml.l"
3325 ENTER(VALUE1); BUFFERSET(A_surfxml_process_start_time);
3328 /* rule 137 can match eol */
3330 #line 702 "surf/surfxml.l"
3331 ENTER(VALUE2); BUFFERSET(A_surfxml_process_start_time);
3334 /* rule 138 can match eol */
3336 #line 704 "surf/surfxml.l"
3337 ENTER(VALUE1); BUFFERSET(A_surfxml_process_kill_time);
3340 /* rule 139 can match eol */
3342 #line 705 "surf/surfxml.l"
3343 ENTER(VALUE2); BUFFERSET(A_surfxml_process_kill_time);
3347 #line 707 "surf/surfxml.l"
3349 if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3350 if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3351 LEAVE; STag_surfxml_process();surfxml_pcdata = NULL; ENTER(S_surfxml_process);
3356 #line 712 "surf/surfxml.l"
3358 if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3359 if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3360 LEAVE; STag_surfxml_process(); surfxml_pcdata = NULL; ETag_surfxml_process();
3362 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3363 case ROOT_surfxml_process: SET(EPILOG); break;
3364 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3370 #line 722 "surf/surfxml.l"
3371 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
3375 #line 723 "surf/surfxml.l"
3376 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
3378 case YY_STATE_EOF(AL_surfxml_process):
3379 #line 724 "surf/surfxml.l"
3380 FAIL("EOF in attribute list of `process' element.");
3385 /* rule 144 can match eol */
3387 #line 728 "surf/surfxml.l"
3390 ETag_surfxml_process();
3392 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3393 case ROOT_surfxml_process: SET(EPILOG); break;
3394 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3399 /* rule 145 can match eol */
3401 #line 737 "surf/surfxml.l"
3402 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
3406 #line 738 "surf/surfxml.l"
3407 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
3409 case YY_STATE_EOF(S_surfxml_process):
3410 case YY_STATE_EOF(E_surfxml_process):
3411 case YY_STATE_EOF(S_surfxml_process_2):
3412 #line 739 "surf/surfxml.l"
3413 FAIL("Premature EOF: `</process>' expected.");
3417 /* rule 147 can match eol */
3419 #line 742 "surf/surfxml.l"
3421 A_surfxml_argument_value = NULL;
3422 ENTER(AL_surfxml_argument);
3427 /* rule 148 can match eol */
3429 #line 748 "surf/surfxml.l"
3430 ENTER(VALUE1); BUFFERSET(A_surfxml_argument_value);
3433 /* rule 149 can match eol */
3435 #line 749 "surf/surfxml.l"
3436 ENTER(VALUE2); BUFFERSET(A_surfxml_argument_value);
3440 #line 751 "surf/surfxml.l"
3442 if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3443 LEAVE; STag_surfxml_argument();surfxml_pcdata = NULL; ENTER(E_surfxml_argument);
3448 #line 755 "surf/surfxml.l"
3450 if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3451 LEAVE; STag_surfxml_argument(); surfxml_pcdata = NULL; ETag_surfxml_argument();
3453 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3454 case ROOT_surfxml_argument: SET(EPILOG); break;
3460 #line 763 "surf/surfxml.l"
3461 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
3465 #line 764 "surf/surfxml.l"
3466 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
3468 case YY_STATE_EOF(AL_surfxml_argument):
3469 #line 765 "surf/surfxml.l"
3470 FAIL("EOF in attribute list of `argument' element.");
3475 /* rule 154 can match eol */
3477 #line 769 "surf/surfxml.l"
3480 ETag_surfxml_argument();
3482 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3483 case ROOT_surfxml_argument: SET(EPILOG); break;
3488 /* rule 155 can match eol */
3490 #line 777 "surf/surfxml.l"
3491 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
3495 #line 778 "surf/surfxml.l"
3496 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
3498 case YY_STATE_EOF(E_surfxml_argument):
3499 #line 779 "surf/surfxml.l"
3500 FAIL("Premature EOF: `</argument>' expected.");
3503 /* EPILOG: after the root element. */
3507 #line 785 "surf/surfxml.l"
3508 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
3510 case YY_STATE_EOF(EPILOG):
3511 #line 786 "surf/surfxml.l"
3515 /* CHARACTER DATA. */
3517 /* Non-defined standard entities... */
3520 #line 793 "surf/surfxml.l"
3525 #line 794 "surf/surfxml.l"
3530 #line 795 "surf/surfxml.l"
3535 #line 796 "surf/surfxml.l"
3540 #line 797 "surf/surfxml.l"
3543 /* Character entities. */
3546 #line 800 "surf/surfxml.l"
3547 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
3551 #line 801 "surf/surfxml.l"
3552 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
3557 /* rule 165 can match eol */
3558 #line 806 "surf/surfxml.l"
3560 /* rule 166 can match eol */
3561 #line 807 "surf/surfxml.l"
3563 /* rule 167 can match eol */
3564 #line 808 "surf/surfxml.l"
3566 /* rule 168 can match eol */
3568 #line 808 "surf/surfxml.l"
3575 #line 812 "surf/surfxml.l"
3580 #line 813 "surf/surfxml.l"
3581 FAIL("Unexpected `]""]>' in character data.");
3587 #line 817 "surf/surfxml.l"
3590 case YY_STATE_EOF(VALUE1):
3591 #line 818 "surf/surfxml.l"
3592 FAIL("EOF in literal (\"'\" expected).");
3598 #line 822 "surf/surfxml.l"
3601 case YY_STATE_EOF(VALUE2):
3602 #line 823 "surf/surfxml.l"
3603 FAIL("EOF in literal (`\"' expected).");
3608 /* rule 173 can match eol */
3610 #line 827 "surf/surfxml.l"
3611 BUFFERPUTC(surf_parse_text[0]);
3615 #line 828 "surf/surfxml.l"
3616 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
3622 #line 832 "surf/surfxml.l"
3625 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
3628 #line 834 "surf/surfxml.l"
3629 BUFFERPUTC(surf_parse_text[0]);
3631 case YY_STATE_EOF(CDATA):
3632 #line 835 "surf/surfxml.l"
3633 FAIL("EOF in CDATA section.");
3636 /* Impossible rules to avoid warnings from flex(1). */
3637 /* Ideally, this should be replaced by code in flexml.pl that
3638 generates just the states not covered by other rules. */
3641 /* rule 177 can match eol */
3643 #line 842 "surf/surfxml.l"
3644 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
3649 #line 845 "surf/surfxml.l"
3652 #line 3653 "surf/surfxml.c"
3653 case YY_STATE_EOF(INITIAL):
3654 case YY_STATE_EOF(ROOT_surfxml_platform_description):
3655 case YY_STATE_EOF(S_surfxml_platform_description_1):
3656 case YY_STATE_EOF(ROOT_surfxml_include):
3657 case YY_STATE_EOF(S_surfxml_include_1):
3658 case YY_STATE_EOF(ROOT_surfxml_cpu):
3659 case YY_STATE_EOF(ROOT_surfxml_network_link):
3660 case YY_STATE_EOF(ROOT_surfxml_route):
3661 case YY_STATE_EOF(S_surfxml_route_1):
3662 case YY_STATE_EOF(ROOT_surfxml_route_element):
3663 case YY_STATE_EOF(ROOT_surfxml_process):
3664 case YY_STATE_EOF(S_surfxml_process_1):
3665 case YY_STATE_EOF(ROOT_surfxml_argument):
3666 case YY_STATE_EOF(IMPOSSIBLE):
3669 case YY_END_OF_BUFFER:
3671 /* Amount of text matched not including the EOB char. */
3672 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3674 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3675 *yy_cp = (yy_hold_char);
3676 YY_RESTORE_YY_MORE_OFFSET
3678 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3680 /* We're scanning a new file or input source. It's
3681 * possible that this happened because the user
3682 * just pointed surf_parse_in at a new source and called
3683 * surf_parse_lex(). If so, then we have to assure
3684 * consistency between YY_CURRENT_BUFFER and our
3685 * globals. Here is the right place to do so, because
3686 * this is the first action (other than possibly a
3687 * back-up) that will match for the new input source.
3689 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3690 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
3691 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3694 /* Note that here we test for yy_c_buf_p "<=" to the position
3695 * of the first EOB in the buffer, since yy_c_buf_p will
3696 * already have been incremented past the NUL character
3697 * (since all states make transitions on EOB to the
3698 * end-of-buffer state). Contrast this with the test
3701 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3702 { /* This was really a NUL. */
3703 yy_state_type yy_next_state;
3705 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3707 yy_current_state = yy_get_previous_state( );
3709 /* Okay, we're now positioned to make the NUL
3710 * transition. We couldn't have
3711 * yy_get_previous_state() go ahead and do it
3712 * for us because it doesn't know how to deal
3713 * with the possibility of jamming (and we don't
3714 * want to build jamming into it because then it
3715 * will run more slowly).
3718 yy_next_state = yy_try_NUL_trans( yy_current_state );
3720 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3722 if ( yy_next_state )
3724 /* Consume the NUL. */
3725 yy_cp = ++(yy_c_buf_p);
3726 yy_current_state = yy_next_state;
3732 yy_cp = (yy_c_buf_p);
3733 goto yy_find_action;
3737 else switch ( yy_get_next_buffer( ) )
3739 case EOB_ACT_END_OF_FILE:
3741 (yy_did_buffer_switch_on_eof) = 0;
3743 if ( surf_parse_wrap( ) )
3745 /* Note: because we've taken care in
3746 * yy_get_next_buffer() to have set up
3747 * surf_parse_text, we can now set up
3748 * yy_c_buf_p so that if some total
3749 * hoser (like flex itself) wants to
3750 * call the scanner after we return the
3751 * YY_NULL, it'll still work - another
3752 * YY_NULL will get returned.
3754 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3756 yy_act = YY_STATE_EOF(YY_START);
3762 if ( ! (yy_did_buffer_switch_on_eof) )
3768 case EOB_ACT_CONTINUE_SCAN:
3770 (yytext_ptr) + yy_amount_of_matched_text;
3772 yy_current_state = yy_get_previous_state( );
3774 yy_cp = (yy_c_buf_p);
3775 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3778 case EOB_ACT_LAST_MATCH:
3780 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3782 yy_current_state = yy_get_previous_state( );
3784 yy_cp = (yy_c_buf_p);
3785 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3786 goto yy_find_action;
3793 "fatal flex scanner internal error--no action found" );
3794 } /* end of action switch */
3795 } /* end of scanning one token */
3796 } /* end of surf_parse_lex */
3798 /* yy_get_next_buffer - try to read in a new buffer
3800 * Returns a code representing an action:
3801 * EOB_ACT_LAST_MATCH -
3802 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3803 * EOB_ACT_END_OF_FILE - end of file
3805 static int yy_get_next_buffer (void)
3807 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3808 register char *source = (yytext_ptr);
3809 register int number_to_move, i;
3812 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3814 "fatal flex scanner internal error--end of buffer missed" );
3816 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3817 { /* Don't try to fill the buffer, so this is an EOF. */
3818 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3820 /* We matched a single character, the EOB, so
3821 * treat this as a final EOF.
3823 return EOB_ACT_END_OF_FILE;
3828 /* We matched some text prior to the EOB, first
3831 return EOB_ACT_LAST_MATCH;
3835 /* Try to read more data. */
3837 /* First move last chars to start of buffer. */
3838 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3840 for ( i = 0; i < number_to_move; ++i )
3841 *(dest++) = *(source++);
3843 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3844 /* don't do the read, it's not guaranteed to return an EOF,
3847 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3852 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3854 while ( num_to_read <= 0 )
3855 { /* Not enough room in the buffer - grow it. */
3857 /* just a shorter name for the current buffer */
3858 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3860 int yy_c_buf_p_offset =
3861 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3863 if ( b->yy_is_our_buffer )
3865 int new_size = b->yy_buf_size * 2;
3867 if ( new_size <= 0 )
3868 b->yy_buf_size += b->yy_buf_size / 8;
3870 b->yy_buf_size *= 2;
3872 b->yy_ch_buf = (char *)
3873 /* Include room in for 2 EOB chars. */
3874 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
3877 /* Can't grow it, we don't own it. */
3880 if ( ! b->yy_ch_buf )
3882 "fatal error - scanner input buffer overflow" );
3884 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3886 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3891 if ( num_to_read > YY_READ_BUF_SIZE )
3892 num_to_read = YY_READ_BUF_SIZE;
3894 /* Read in more data. */
3895 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3896 (yy_n_chars), num_to_read );
3898 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3901 if ( (yy_n_chars) == 0 )
3903 if ( number_to_move == YY_MORE_ADJ )
3905 ret_val = EOB_ACT_END_OF_FILE;
3906 surf_parse_restart(surf_parse_in );
3911 ret_val = EOB_ACT_LAST_MATCH;
3912 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3913 YY_BUFFER_EOF_PENDING;
3918 ret_val = EOB_ACT_CONTINUE_SCAN;
3920 (yy_n_chars) += number_to_move;
3921 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3922 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3924 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3929 /* yy_get_previous_state - get the state just before the EOB char was reached */
3931 static yy_state_type yy_get_previous_state (void)
3933 register yy_state_type yy_current_state;
3934 register char *yy_cp;
3936 yy_current_state = (yy_start);
3938 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3940 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3941 if ( yy_accept[yy_current_state] )
3943 (yy_last_accepting_state) = yy_current_state;
3944 (yy_last_accepting_cpos) = yy_cp;
3946 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3948 yy_current_state = (int) yy_def[yy_current_state];
3949 if ( yy_current_state >= 1345 )
3950 yy_c = yy_meta[(unsigned int) yy_c];
3952 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3955 return yy_current_state;
3958 /* yy_try_NUL_trans - try to make a transition on the NUL character
3961 * next_state = yy_try_NUL_trans( current_state );
3963 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3965 register int yy_is_jam;
3966 register char *yy_cp = (yy_c_buf_p);
3968 register YY_CHAR yy_c = 1;
3969 if ( yy_accept[yy_current_state] )
3971 (yy_last_accepting_state) = yy_current_state;
3972 (yy_last_accepting_cpos) = yy_cp;
3974 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3976 yy_current_state = (int) yy_def[yy_current_state];
3977 if ( yy_current_state >= 1345 )
3978 yy_c = yy_meta[(unsigned int) yy_c];
3980 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3981 yy_is_jam = (yy_current_state == 1344);
3983 return yy_is_jam ? 0 : yy_current_state;
3988 static int yyinput (void)
3990 static int input (void)
3996 *(yy_c_buf_p) = (yy_hold_char);
3998 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4000 /* yy_c_buf_p now points to the character we want to return.
4001 * If this occurs *before* the EOB characters, then it's a
4002 * valid NUL; if not, then we've hit the end of the buffer.
4004 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4005 /* This was really a NUL. */
4006 *(yy_c_buf_p) = '\0';
4009 { /* need more input */
4010 int offset = (yy_c_buf_p) - (yytext_ptr);
4013 switch ( yy_get_next_buffer( ) )
4015 case EOB_ACT_LAST_MATCH:
4016 /* This happens because yy_g_n_b()
4017 * sees that we've accumulated a
4018 * token and flags that we need to
4019 * try matching the token before
4020 * proceeding. But for input(),
4021 * there's no matching to consider.
4022 * So convert the EOB_ACT_LAST_MATCH
4023 * to EOB_ACT_END_OF_FILE.
4026 /* Reset buffer status. */
4027 surf_parse_restart(surf_parse_in );
4031 case EOB_ACT_END_OF_FILE:
4033 if ( surf_parse_wrap( ) )
4036 if ( ! (yy_did_buffer_switch_on_eof) )
4045 case EOB_ACT_CONTINUE_SCAN:
4046 (yy_c_buf_p) = (yytext_ptr) + offset;
4052 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
4053 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
4054 (yy_hold_char) = *++(yy_c_buf_p);
4058 surf_parse_lineno++;
4063 #endif /* ifndef YY_NO_INPUT */
4065 /** Immediately switch to a different input stream.
4066 * @param input_file A readable stream.
4068 * @note This function does not reset the start condition to @c INITIAL .
4070 void surf_parse_restart (FILE * input_file )
4073 if ( ! YY_CURRENT_BUFFER ){
4074 surf_parse_ensure_buffer_stack ();
4075 YY_CURRENT_BUFFER_LVALUE =
4076 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4079 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
4080 surf_parse__load_buffer_state( );
4083 /** Switch to a different input buffer.
4084 * @param new_buffer The new input buffer.
4087 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
4090 /* TODO. We should be able to replace this entire function body
4092 * surf_parse_pop_buffer_state();
4093 * surf_parse_push_buffer_state(new_buffer);
4095 surf_parse_ensure_buffer_stack ();
4096 if ( YY_CURRENT_BUFFER == new_buffer )
4099 if ( YY_CURRENT_BUFFER )
4101 /* Flush out information for old buffer. */
4102 *(yy_c_buf_p) = (yy_hold_char);
4103 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4104 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4107 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4108 surf_parse__load_buffer_state( );
4110 /* We don't actually know whether we did this switch during
4111 * EOF (surf_parse_wrap()) processing, but the only time this flag
4112 * is looked at is after surf_parse_wrap() is called, so it's safe
4113 * to go ahead and always set it.
4115 (yy_did_buffer_switch_on_eof) = 1;
4118 static void surf_parse__load_buffer_state (void)
4120 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4121 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4122 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4123 (yy_hold_char) = *(yy_c_buf_p);
4126 /** Allocate and initialize an input buffer state.
4127 * @param file A readable stream.
4128 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4130 * @return the allocated buffer state.
4132 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
4136 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4138 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4140 b->yy_buf_size = size;
4142 /* yy_ch_buf has to be 2 characters longer than the size given because
4143 * we need to put in 2 end-of-buffer characters.
4145 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
4146 if ( ! b->yy_ch_buf )
4147 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4149 b->yy_is_our_buffer = 1;
4151 surf_parse__init_buffer(b,file );
4156 /** Destroy the buffer.
4157 * @param b a buffer created with surf_parse__create_buffer()
4160 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
4166 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4167 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4169 if ( b->yy_is_our_buffer )
4170 surf_parse_free((void *) b->yy_ch_buf );
4172 surf_parse_free((void *) b );
4176 extern int isatty (int );
4177 #endif /* __cplusplus */
4179 /* Initializes or reinitializes a buffer.
4180 * This function is sometimes called more than once on the same buffer,
4181 * such as during a surf_parse_restart() or at EOF.
4183 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
4188 surf_parse__flush_buffer(b );
4190 b->yy_input_file = file;
4191 b->yy_fill_buffer = 1;
4193 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
4194 * called from surf_parse_restart() or through yy_get_next_buffer.
4195 * In that case, we don't want to reset the lineno or column.
4197 if (b != YY_CURRENT_BUFFER){
4198 b->yy_bs_lineno = 1;
4199 b->yy_bs_column = 0;
4202 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4207 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4208 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4211 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
4218 /* We always need two end-of-buffer characters. The first causes
4219 * a transition to the end-of-buffer state. The second causes
4220 * a jam in that state.
4222 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4223 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4225 b->yy_buf_pos = &b->yy_ch_buf[0];
4228 b->yy_buffer_status = YY_BUFFER_NEW;
4230 if ( b == YY_CURRENT_BUFFER )
4231 surf_parse__load_buffer_state( );
4234 /** Pushes the new state onto the stack. The new state becomes
4235 * the current state. This function will allocate the stack
4237 * @param new_buffer The new state.
4240 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
4242 if (new_buffer == NULL)
4245 surf_parse_ensure_buffer_stack();
4247 /* This block is copied from surf_parse__switch_to_buffer. */
4248 if ( YY_CURRENT_BUFFER )
4250 /* Flush out information for old buffer. */
4251 *(yy_c_buf_p) = (yy_hold_char);
4252 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4253 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4256 /* Only push if top exists. Otherwise, replace top. */
4257 if (YY_CURRENT_BUFFER)
4258 (yy_buffer_stack_top)++;
4259 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4261 /* copied from surf_parse__switch_to_buffer. */
4262 surf_parse__load_buffer_state( );
4263 (yy_did_buffer_switch_on_eof) = 1;
4266 /** Removes and deletes the top of the stack, if present.
4267 * The next element becomes the new top.
4270 void surf_parse_pop_buffer_state (void)
4272 if (!YY_CURRENT_BUFFER)
4275 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4276 YY_CURRENT_BUFFER_LVALUE = NULL;
4277 if ((yy_buffer_stack_top) > 0)
4278 --(yy_buffer_stack_top);
4280 if (YY_CURRENT_BUFFER) {
4281 surf_parse__load_buffer_state( );
4282 (yy_did_buffer_switch_on_eof) = 1;
4286 /* Allocates the stack if it does not exist.
4287 * Guarantees space for at least one push.
4289 static void surf_parse_ensure_buffer_stack (void)
4293 if (!(yy_buffer_stack)) {
4295 /* First allocation is just for 2 elements, since we don't know if this
4296 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4297 * immediate realloc on the next call.
4300 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
4301 (num_to_alloc * sizeof(struct yy_buffer_state*)
4304 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4306 (yy_buffer_stack_max) = num_to_alloc;
4307 (yy_buffer_stack_top) = 0;
4311 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4313 /* Increase the buffer to prepare for a possible push. */
4314 int grow_size = 8 /* arbitrary grow size */;
4316 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4317 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
4319 num_to_alloc * sizeof(struct yy_buffer_state*)
4322 /* zero only the new slots.*/
4323 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4324 (yy_buffer_stack_max) = num_to_alloc;
4328 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4329 * @param base the character buffer
4330 * @param size the size in bytes of the character buffer
4332 * @return the newly allocated buffer state object.
4334 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
4339 base[size-2] != YY_END_OF_BUFFER_CHAR ||
4340 base[size-1] != YY_END_OF_BUFFER_CHAR )
4341 /* They forgot to leave room for the EOB's. */
4344 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4346 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
4348 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4349 b->yy_buf_pos = b->yy_ch_buf = base;
4350 b->yy_is_our_buffer = 0;
4351 b->yy_input_file = 0;
4352 b->yy_n_chars = b->yy_buf_size;
4353 b->yy_is_interactive = 0;
4355 b->yy_fill_buffer = 0;
4356 b->yy_buffer_status = YY_BUFFER_NEW;
4358 surf_parse__switch_to_buffer(b );
4363 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
4364 * scan from a @e copy of @a str.
4365 * @param str a NUL-terminated string to scan
4367 * @return the newly allocated buffer state object.
4368 * @note If you want to scan bytes that may contain NUL values, then use
4369 * surf_parse__scan_bytes() instead.
4371 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yy_str )
4374 return surf_parse__scan_bytes(yy_str,strlen(yy_str) );
4377 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
4378 * scan from a @e copy of @a bytes.
4379 * @param bytes the byte buffer to scan
4380 * @param len the number of bytes in the buffer pointed to by @a bytes.
4382 * @return the newly allocated buffer state object.
4384 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * bytes, int len )
4391 /* Get memory for full buffer, including space for trailing EOB's. */
4393 buf = (char *) surf_parse_alloc(n );
4395 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
4397 for ( i = 0; i < len; ++i )
4400 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
4402 b = surf_parse__scan_buffer(buf,n );
4404 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
4406 /* It's okay to grow etc. this buffer, and we should throw it
4407 * away when we're done.
4409 b->yy_is_our_buffer = 1;
4414 static void yy_push_state (int new_state )
4416 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4420 (yy_start_stack_depth) += YY_START_STACK_INCR;
4421 new_size = (yy_start_stack_depth) * sizeof( int );
4423 if ( ! (yy_start_stack) )
4424 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
4427 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
4429 if ( ! (yy_start_stack) )
4431 "out of memory expanding start-condition stack" );
4434 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4439 static void yy_pop_state (void)
4441 if ( --(yy_start_stack_ptr) < 0 )
4442 YY_FATAL_ERROR( "start-condition stack underflow" );
4444 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4447 #ifndef YY_EXIT_FAILURE
4448 #define YY_EXIT_FAILURE 2
4451 static void yy_fatal_error (yyconst char* msg )
4453 (void) fprintf( stderr, "%s\n", msg );
4454 exit( YY_EXIT_FAILURE );
4457 /* Redefine yyless() so it works in section 3 code. */
4463 /* Undo effects of setting up surf_parse_text. */ \
4464 int yyless_macro_arg = (n); \
4465 YY_LESS_LINENO(yyless_macro_arg);\
4466 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
4467 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
4468 (yy_hold_char) = *(yy_c_buf_p); \
4469 *(yy_c_buf_p) = '\0'; \
4470 surf_parse_leng = yyless_macro_arg; \
4474 /* Accessor methods (get/set functions) to struct members. */
4476 /** Get the current line number.
4479 int surf_parse_get_lineno (void)
4482 return surf_parse_lineno;
4485 /** Get the input stream.
4488 FILE *surf_parse_get_in (void)
4490 return surf_parse_in;
4493 /** Get the output stream.
4496 FILE *surf_parse_get_out (void)
4498 return surf_parse_out;
4501 /** Get the length of the current token.
4504 int surf_parse_get_leng (void)
4506 return surf_parse_leng;
4509 /** Get the current token.
4513 char *surf_parse_get_text (void)
4515 return surf_parse_text;
4518 /** Set the current line number.
4519 * @param line_number
4522 void surf_parse_set_lineno (int line_number )
4525 surf_parse_lineno = line_number;
4528 /** Set the input stream. This does not discard the current
4530 * @param in_str A readable stream.
4532 * @see surf_parse__switch_to_buffer
4534 void surf_parse_set_in (FILE * in_str )
4536 surf_parse_in = in_str ;
4539 void surf_parse_set_out (FILE * out_str )
4541 surf_parse_out = out_str ;
4544 int surf_parse_get_debug (void)
4546 return surf_parse__flex_debug;
4549 void surf_parse_set_debug (int bdebug )
4551 surf_parse__flex_debug = bdebug ;
4554 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
4555 int surf_parse_lex_destroy (void)
4558 /* Pop the buffer stack, destroying each element. */
4559 while(YY_CURRENT_BUFFER){
4560 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4561 YY_CURRENT_BUFFER_LVALUE = NULL;
4562 surf_parse_pop_buffer_state();
4565 /* Destroy the stack itself. */
4566 surf_parse_free((yy_buffer_stack) );
4567 (yy_buffer_stack) = NULL;
4569 /* Destroy the start condition stack. */
4570 surf_parse_free((yy_start_stack) );
4571 (yy_start_stack) = NULL;
4577 * Internal utility routines.
4581 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4584 for ( i = 0; i < n; ++i )
4589 #ifdef YY_NEED_STRLEN
4590 static int yy_flex_strlen (yyconst char * s )
4593 for ( n = 0; s[n]; ++n )
4600 void *surf_parse_alloc (yy_size_t size )
4602 return (void *) malloc( size );
4605 void *surf_parse_realloc (void * ptr, yy_size_t size )
4607 /* The cast to (char *) in the following accommodates both
4608 * implementations that use char* generic pointers, and those
4609 * that use void* generic pointers. It works with the latter
4610 * because both ANSI C and C++ allow castless assignment from
4611 * any pointer type to void*, and deal with argument conversions
4612 * as though doing an assignment.
4614 return (void *) realloc( (char *) ptr, size );
4617 void surf_parse_free (void * ptr )
4619 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
4622 #define YYTABLES_NAME "yytables"
4625 #undef YY_FLUSH_BUFFER
4627 #undef yy_new_buffer
4628 #undef yy_set_interactive
4630 #undef YY_DO_BEFORE_ACTION
4632 #ifdef YY_DECL_IS_OURS
4633 #undef YY_DECL_IS_OURS
4636 #line 845 "surf/surfxml.l"
4640 /* Element context stack lookup. */
4641 int surfxml_element_context(int i)
4643 return (0<i && i<yy_start_stack_depth
4644 ? yy_start_stack[yy_start_stack_ptr - i]
4649 void print_yy_stack(char* fmt, ...)
4651 int i = 0; va_list ap; va_start(ap, fmt);
4652 vfprintf(stderr, fmt, ap);
4653 for (i=1; i<yy_start_stack_ptr; i++)
4654 fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
4655 fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
4659 static void debug_enter(int state, const char* statename) {
4660 yy_push_state(state);
4661 if (surf_parse__flex_debug) print_yy_stack("--ENTER(%s) : ",statename);
4664 static void debug_leave(void) {
4665 if (surf_parse__flex_debug) print_yy_stack("--LEAVE : ");
4669 static void debug_set(int state, const char* statename) {
4671 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
4675 enum {flexml_max_err_msg_size = 512};
4677 static char flexml_err_msg[flexml_max_err_msg_size];
4678 const char * surfxml_parse_err_msg()
4680 return flexml_err_msg;
4683 static void reset_surfxml_parse_err_msg()
4685 flexml_err_msg[0] = '\0';
4689 static void cleanup(void)
4691 if (surfxml_statenames) {
4692 free(surfxml_statenames);
4693 surfxml_statenames = NULL;
4698 static int fail(const char* fmt, ...)
4700 int chars_left, used;
4701 va_list ap; va_start(ap, fmt);
4702 #ifdef FLEXML_yylineno
4703 used = sprintf(flexml_err_msg,
4704 "Invalid XML (XML input line %d, state %d): ",
4705 surf_parse_lineno, YY_START);
4707 used = sprintf(flexml_err_msg,
4708 "Invalid XML (state %d): ",
4711 chars_left = flexml_max_err_msg_size - used - 1;
4712 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
4715 #ifndef FLEXML_quiet_parser
4716 /* print directly to sdterr */
4717 fprintf(stderr, "%s\n", flexml_err_msg);
4718 flexml_err_msg[0] = '\0';