2 #line 3 "surf/surfxml.c"
4 #define YY_INT_ALIGNED short int
6 /* A lexical scanner generated by flex */
9 #define YY_FLEX_MAJOR_VERSION 2
10 #define YY_FLEX_MINOR_VERSION 5
11 #define YY_FLEX_SUBMINOR_VERSION 33
12 #if YY_FLEX_SUBMINOR_VERSION > 0
16 /* First, we deal with platform-specific or compiler-specific issues. */
18 /* begin standard C headers. */
24 /* end standard C headers. */
26 /* flex integer type definitions */
31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33 #if __STDC_VERSION__ >= 199901L
35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36 * if you want the limit (max/min) macros for int types.
38 #ifndef __STDC_LIMIT_MACROS
39 #define __STDC_LIMIT_MACROS 1
43 typedef int8_t flex_int8_t;
44 typedef uint8_t flex_uint8_t;
45 typedef int16_t flex_int16_t;
46 typedef uint16_t flex_uint16_t;
47 typedef int32_t flex_int32_t;
48 typedef uint32_t flex_uint32_t;
50 typedef signed char flex_int8_t;
51 typedef short int flex_int16_t;
52 typedef int flex_int32_t;
53 typedef unsigned char flex_uint8_t;
54 typedef unsigned short int flex_uint16_t;
55 typedef unsigned int flex_uint32_t;
58 /* Limits of integral types. */
60 #define INT8_MIN (-128)
63 #define INT16_MIN (-32767-1)
66 #define INT32_MIN (-2147483647-1)
69 #define INT8_MAX (127)
72 #define INT16_MAX (32767)
75 #define INT32_MAX (2147483647)
78 #define UINT8_MAX (255U)
81 #define UINT16_MAX (65535U)
84 #define UINT32_MAX (4294967295U)
87 #endif /* ! FLEXINT_H */
91 /* The "const" storage-class-modifier is valid. */
94 #else /* ! __cplusplus */
100 #endif /* __STDC__ */
101 #endif /* ! __cplusplus */
104 #define yyconst const
109 /* Returned upon end-of-file. */
112 /* Promotes a possibly negative, possibly signed char to an unsigned
113 * integer for use as an array index. If the signed char is negative,
114 * we want to instead treat it as an 8-bit unsigned char, hence the
117 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
119 /* Enter a start condition. This macro really ought to take a parameter,
120 * but we do it the disgusting crufty way forced on us by the ()-less
121 * definition of BEGIN.
123 #define BEGIN (yy_start) = 1 + 2 *
125 /* Translate the current start state into a value that can be later handed
126 * to BEGIN to return to the state. The YYSTATE alias is for lex
129 #define YY_START (((yy_start) - 1) / 2)
130 #define YYSTATE YY_START
132 /* Action number for EOF rule of a given start state. */
133 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
135 /* Special action meaning "start processing a new file". */
136 #define YY_NEW_FILE surf_parse_restart(surf_parse_in )
138 #define YY_END_OF_BUFFER_CHAR 0
140 /* Size of default input buffer. */
142 #define YY_BUF_SIZE 16384
145 /* The state buf must be large enough to hold one state per character in the main buffer.
147 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
149 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
150 #define YY_TYPEDEF_YY_BUFFER_STATE
151 typedef struct yy_buffer_state *YY_BUFFER_STATE;
154 extern int surf_parse_leng;
156 extern FILE *surf_parse_in, *surf_parse_out;
158 #define EOB_ACT_CONTINUE_SCAN 0
159 #define EOB_ACT_END_OF_FILE 1
160 #define EOB_ACT_LAST_MATCH 2
162 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
163 * access to the local variable yy_act. Since yyless() is a macro, it would break
164 * existing scanners that call yyless() from OUTSIDE surf_parse_lex.
165 * One obvious solution it to make yy_act a global. I tried that, and saw
166 * a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
167 * normally declared as a register variable-- so it is not worth it.
169 #define YY_LESS_LINENO(n) \
172 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
173 if ( surf_parse_text[yyl] == '\n' )\
174 --surf_parse_lineno;\
177 /* Return all but the first "n" matched characters back to the input stream. */
181 /* Undo effects of setting up surf_parse_text. */ \
182 int yyless_macro_arg = (n); \
183 YY_LESS_LINENO(yyless_macro_arg);\
184 *yy_cp = (yy_hold_char); \
185 YY_RESTORE_YY_MORE_OFFSET \
186 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
187 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
191 #define unput(c) yyunput( c, (yytext_ptr) )
193 /* The following is because we cannot portably get our hands on size_t
194 * (without autoconf's help, which isn't available because we want
195 * flex-generated scanners to compile on their own).
198 #ifndef YY_TYPEDEF_YY_SIZE_T
199 #define YY_TYPEDEF_YY_SIZE_T
200 typedef unsigned int yy_size_t;
203 #ifndef YY_STRUCT_YY_BUFFER_STATE
204 #define YY_STRUCT_YY_BUFFER_STATE
205 struct yy_buffer_state
209 char *yy_ch_buf; /* input buffer */
210 char *yy_buf_pos; /* current position in input buffer */
212 /* Size of input buffer in bytes, not including room for EOB
215 yy_size_t yy_buf_size;
217 /* Number of characters read into yy_ch_buf, not including EOB
222 /* Whether we "own" the buffer - i.e., we know we created it,
223 * and can realloc() it to grow it, and should free() it to
226 int yy_is_our_buffer;
228 /* Whether this is an "interactive" input source; if so, and
229 * if we're using stdio for input, then we want to use getc()
230 * instead of fread(), to make sure we stop fetching input after
233 int yy_is_interactive;
235 /* Whether we're considered to be at the beginning of a line.
236 * If so, '^' rules will be active on the next match, otherwise
241 int yy_bs_lineno; /**< The line count. */
242 int yy_bs_column; /**< The column count. */
244 /* Whether to try to fill the input buffer when we reach the
249 int yy_buffer_status;
251 #define YY_BUFFER_NEW 0
252 #define YY_BUFFER_NORMAL 1
253 /* When an EOF's been seen but there's still some text to process
254 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
255 * shouldn't try reading from the input source any more. We might
256 * still have a bunch of tokens to match, though, because of
257 * possible backing-up.
259 * When we actually see the EOF, we change the status to "new"
260 * (via surf_parse_restart()), so that the user can continue scanning by
261 * just pointing surf_parse_in at a new input file.
263 #define YY_BUFFER_EOF_PENDING 2
266 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
268 /* Stack of input buffers. */
269 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
270 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
271 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
273 /* We provide macros for accessing buffer states in case in the
274 * future we want to put the buffer states in a more general
277 * Returns the top of the stack, or NULL.
279 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
280 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
283 /* Same as previous macro, but useful when we know that the buffer stack is not
284 * NULL or when we need an lvalue. For internal use only.
286 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
288 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
289 static char yy_hold_char;
290 static int yy_n_chars; /* number of characters read into yy_ch_buf */
293 /* Points to current character in buffer. */
294 static char *yy_c_buf_p = (char *) 0;
295 static int yy_init = 0; /* whether we need to initialize */
296 static int yy_start = 0; /* start state number */
298 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
299 * instead of setting up a fresh surf_parse_in. A bit of a hack ...
301 static int yy_did_buffer_switch_on_eof;
303 void surf_parse_restart (FILE *input_file );
304 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer );
305 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size );
306 void surf_parse__delete_buffer (YY_BUFFER_STATE b );
307 void surf_parse__flush_buffer (YY_BUFFER_STATE b );
308 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer );
309 void surf_parse_pop_buffer_state (void );
311 static void surf_parse_ensure_buffer_stack (void );
312 static void surf_parse__load_buffer_state (void );
313 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file );
315 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
317 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size );
318 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str );
319 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len );
321 void *surf_parse_alloc (yy_size_t );
322 void *surf_parse_realloc (void *,yy_size_t );
323 void surf_parse_free (void * );
325 #define yy_new_buffer surf_parse__create_buffer
327 #define yy_set_interactive(is_interactive) \
329 if ( ! YY_CURRENT_BUFFER ){ \
330 surf_parse_ensure_buffer_stack (); \
331 YY_CURRENT_BUFFER_LVALUE = \
332 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
334 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
337 #define yy_set_bol(at_bol) \
339 if ( ! YY_CURRENT_BUFFER ){\
340 surf_parse_ensure_buffer_stack (); \
341 YY_CURRENT_BUFFER_LVALUE = \
342 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
344 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
347 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
349 /* Begin user sect3 */
351 #define surf_parse_wrap() 1
352 #define YY_SKIP_YYWRAP
354 typedef unsigned char YY_CHAR;
356 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
358 typedef int yy_state_type;
360 extern int surf_parse_lineno;
362 int surf_parse_lineno = 1;
364 extern char *surf_parse_text;
365 #define yytext_ptr surf_parse_text
367 static yy_state_type yy_get_previous_state (void );
368 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
369 static int yy_get_next_buffer (void );
370 static void yy_fatal_error (yyconst char msg[] );
372 /* Done after the current pattern has been matched and before the
373 * corresponding action - sets up surf_parse_text.
375 #define YY_DO_BEFORE_ACTION \
376 (yytext_ptr) = yy_bp; \
377 surf_parse_leng = (size_t) (yy_cp - yy_bp); \
378 (yy_hold_char) = *yy_cp; \
380 (yy_c_buf_p) = yy_cp;
382 #define YY_NUM_RULES 207
383 #define YY_END_OF_BUFFER 208
384 /* This struct is not used in this scanner,
385 but its presence is necessary. */
388 flex_int32_t yy_verify;
391 static yyconst flex_int16_t yy_accept[1159] =
393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
395 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
396 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
398 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
400 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
401 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
402 0, 0, 0, 0, 0, 0, 0, 0, 208, 206,
404 15, 10, 10, 15, 15, 186, 10, 186, 5, 6,
405 5, 8, 9, 8, 202, 194, 195, 203, 200, 203,
406 201, 205, 194, 195, 205, 206, 26, 10, 26, 26,
407 26, 24, 26, 26, 30, 10, 30, 30, 206, 206,
408 30, 37, 10, 37, 37, 37, 35, 37, 41, 10,
409 41, 68, 10, 68, 68, 68, 66, 68, 68, 68,
410 68, 68, 72, 10, 72, 206, 72, 81, 10, 81,
411 81, 81, 79, 81, 81, 85, 10, 85, 92, 10,
412 92, 92, 92, 90, 92, 96, 10, 96, 121, 10,
413 121, 121, 121, 119, 121, 121, 121, 121, 125, 10,
415 125, 125, 142, 10, 142, 142, 142, 140, 142, 142,
416 142, 146, 10, 146, 206, 146, 153, 10, 153, 153,
417 153, 151, 153, 157, 10, 157, 170, 10, 170, 170,
418 170, 168, 170, 170, 170, 170, 174, 10, 174, 206,
419 174, 181, 10, 181, 181, 181, 179, 181, 185, 10,
420 185, 203, 202, 10, 0, 2, 2, 0, 4, 7,
421 197, 196, 0, 0, 0, 0, 0, 0, 0, 25,
422 27, 27, 27, 0, 0, 0, 0, 0, 0, 0,
423 0, 0, 0, 0, 0, 0, 0, 36, 38, 38,
424 0, 67, 69, 69, 69, 69, 69, 69, 69, 0,
426 0, 80, 82, 82, 82, 0, 91, 93, 93, 0,
427 120, 122, 122, 122, 122, 122, 122, 0, 141, 143,
428 143, 143, 143, 0, 0, 152, 154, 154, 0, 169,
429 171, 171, 171, 171, 171, 0, 0, 180, 182, 182,
430 0, 0, 0, 0, 0, 0, 0, 3, 0, 0,
431 0, 0, 0, 0, 0, 204, 0, 27, 27, 0,
432 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
433 0, 0, 0, 0, 0, 38, 0, 0, 69, 0,
434 0, 69, 69, 69, 69, 0, 0, 0, 0, 0,
435 82, 0, 0, 0, 0, 0, 0, 122, 0, 0,
437 122, 122, 122, 0, 0, 143, 143, 143, 0, 0,
438 0, 0, 0, 0, 0, 171, 171, 171, 171, 0,
439 0, 0, 182, 0, 0, 0, 199, 0, 14, 1,
440 0, 0, 192, 0, 0, 0, 189, 188, 0, 0,
441 27, 27, 0, 0, 29, 0, 0, 0, 0, 0,
442 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
443 38, 0, 0, 40, 0, 69, 0, 45, 44, 69,
444 69, 69, 69, 0, 0, 71, 0, 0, 0, 76,
445 75, 82, 0, 0, 84, 0, 0, 89, 88, 0,
446 0, 95, 0, 122, 0, 100, 99, 122, 122, 122,
448 0, 0, 124, 0, 0, 0, 143, 0, 0, 0,
449 0, 145, 0, 0, 0, 150, 149, 0, 0, 156,
450 0, 171, 171, 171, 171, 0, 0, 173, 0, 0,
451 182, 0, 0, 184, 0, 0, 0, 0, 193, 187,
452 0, 0, 0, 27, 27, 0, 0, 43, 0, 98,
453 0, 0, 73, 0, 42, 97, 0, 0, 0, 0,
454 0, 0, 0, 0, 69, 69, 69, 69, 69, 0,
455 74, 82, 0, 0, 122, 122, 122, 122, 0, 0,
456 131, 130, 143, 0, 129, 128, 0, 97, 0, 171,
457 0, 0, 171, 171, 0, 0, 182, 0, 0, 0,
459 0, 0, 12, 0, 190, 191, 0, 27, 27, 0,
460 0, 43, 0, 98, 0, 0, 0, 73, 127, 42,
461 97, 127, 0, 126, 0, 126, 0, 34, 33, 0,
462 69, 69, 69, 0, 0, 0, 0, 69, 0, 74,
463 0, 0, 0, 0, 122, 122, 122, 0, 0, 122,
464 0, 143, 0, 0, 0, 171, 0, 161, 160, 171,
465 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
466 11, 0, 27, 27, 27, 0, 0, 0, 0, 0,
467 0, 127, 87, 86, 0, 126, 0, 0, 69, 69,
468 69, 0, 47, 46, 0, 0, 0, 69, 0, 70,
470 0, 78, 77, 0, 83, 0, 122, 122, 122, 0,
471 0, 0, 122, 0, 123, 143, 0, 0, 0, 171,
472 171, 171, 0, 0, 0, 178, 177, 0, 0, 0,
473 0, 0, 0, 0, 0, 27, 27, 0, 0, 32,
474 0, 0, 159, 87, 86, 158, 31, 0, 69, 69,
475 69, 0, 0, 69, 0, 122, 0, 0, 122, 122,
476 0, 0, 122, 143, 0, 144, 0, 0, 171, 171,
477 171, 0, 0, 0, 0, 0, 0, 0, 17, 0,
478 19, 18, 27, 27, 0, 175, 32, 147, 16, 159,
479 158, 31, 0, 69, 69, 69, 0, 0, 0, 0,
481 69, 0, 94, 122, 0, 106, 105, 122, 122, 0,
482 0, 0, 0, 122, 143, 148, 0, 0, 0, 171,
483 171, 0, 176, 0, 198, 0, 0, 0, 17, 27,
484 27, 0, 175, 147, 16, 0, 39, 69, 69, 69,
485 0, 53, 0, 52, 69, 0, 0, 122, 122, 122,
486 0, 110, 0, 109, 122, 143, 148, 0, 0, 163,
487 162, 0, 0, 171, 0, 172, 176, 0, 0, 0,
488 0, 0, 0, 27, 0, 28, 69, 69, 69, 55,
489 54, 0, 0, 0, 102, 101, 122, 122, 122, 112,
490 111, 0, 0, 143, 143, 0, 155, 0, 167, 166,
492 0, 0, 0, 183, 0, 0, 0, 0, 21, 20,
493 0, 0, 69, 69, 69, 0, 57, 56, 122, 122,
494 122, 0, 114, 113, 143, 143, 0, 165, 164, 0,
495 0, 0, 0, 23, 22, 0, 0, 69, 69, 69,
496 122, 0, 0, 122, 143, 143, 0, 0, 0, 0,
497 0, 49, 48, 69, 69, 69, 69, 122, 0, 108,
498 107, 122, 0, 0, 143, 0, 0, 143, 0, 0,
499 0, 0, 0, 0, 69, 69, 69, 69, 0, 0,
500 0, 0, 0, 135, 134, 143, 0, 133, 132, 143,
501 0, 0, 0, 0, 0, 0, 69, 69, 69, 69,
503 0, 104, 103, 0, 0, 0, 143, 143, 0, 0,
504 0, 12, 0, 12, 0, 69, 69, 69, 69, 0,
505 0, 0, 0, 143, 143, 0, 0, 0, 0, 0,
506 0, 0, 0, 0, 0, 0, 69, 0, 0, 0,
507 0, 0, 0, 143, 143, 0, 0, 0, 51, 50,
508 0, 61, 60, 0, 59, 58, 69, 0, 65, 64,
509 0, 0, 0, 0, 143, 143, 0, 11, 69, 0,
510 0, 0, 0, 143, 143, 0, 69, 0, 0, 0,
511 0, 143, 143, 0, 69, 0, 0, 0, 0, 143,
512 143, 0, 0, 0, 0, 116, 0, 115, 143, 143,
514 0, 0, 63, 62, 118, 117, 143, 143, 0, 143,
515 143, 0, 143, 143, 0, 0, 143, 143, 0, 0,
516 143, 143, 0, 0, 143, 143, 0, 0, 0, 0,
517 0, 0, 0, 0, 0, 139, 138, 0, 137, 136,
518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
519 0, 0, 0, 0, 0, 0, 13, 0
522 static yyconst flex_int32_t yy_ec[256] =
524 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
525 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
526 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
527 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
528 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
529 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
530 17, 18, 19, 1, 20, 21, 22, 23, 24, 25,
531 26, 27, 28, 26, 26, 26, 29, 30, 31, 32,
532 26, 33, 34, 35, 26, 26, 26, 26, 36, 26,
533 37, 1, 38, 1, 39, 1, 40, 41, 42, 43,
535 44, 45, 46, 47, 48, 26, 49, 50, 51, 52,
536 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
537 63, 26, 1, 1, 1, 1, 1, 1, 1, 1,
538 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
539 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
540 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
541 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
542 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
543 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
544 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
546 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
547 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
548 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
549 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
550 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
554 static yyconst flex_int32_t yy_meta[64] =
556 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
557 3, 1, 4, 5, 1, 1, 1, 6, 1, 7,
558 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
559 5, 5, 5, 5, 5, 5, 1, 1, 5, 7,
560 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
561 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
565 static yyconst flex_int16_t yy_base[1227] =
567 0, 0, 0, 3, 6, 9, 24, 27, 11, 14,
568 15, 17, 29, 38, 45, 52, 59, 61, 67, 70,
569 99, 161, 73, 76, 117, 122, 125, 128, 144, 179,
570 184, 187, 190, 206, 209, 212, 228, 273, 246, 251,
571 318, 375, 254, 291, 296, 299, 336, 341, 344, 347,
572 432, 492, 393, 398, 552, 600, 401, 404, 648, 705,
573 450, 455, 458, 461, 510, 515, 518, 521, 762, 819,
574 570, 575, 578, 581, 618, 623, 626, 629, 876, 924,
575 666, 671, 972, 1029, 674, 677, 723, 728, 731, 734,
576 780, 785, 1086, 1146, 788, 791, 836, 900, 2737, 3543,
578 3543, 91, 147, 47, 62, 3543, 150, 77, 3543, 3543,
579 2726, 3543, 3543, 2716, 3543, 2729, 2724, 805, 3543, 3543,
580 3543, 3543, 2720, 2720, 2683, 462, 3543, 153, 2702, 0,
581 79, 3543, 2674, 2662, 3543, 215, 946, 1003, 1060, 1120,
582 1161, 3543, 257, 2690, 0, 348, 3543, 2659, 3543, 302,
583 349, 3543, 480, 2687, 0, 354, 3543, 2637, 7, 2656,
584 2641, 2634, 3543, 483, 1173, 1184, 1195, 3543, 486, 2673,
585 0, 405, 3543, 2646, 2638, 3543, 539, 406, 3543, 542,
586 2659, 0, 411, 3543, 2632, 3543, 545, 683, 3543, 697,
587 2652, 0, 531, 3543, 2623, 2618, 2619, 76, 3543, 754,
589 1207, 1225, 3543, 757, 2640, 0, 678, 3543, 2593, 2596,
590 2590, 3543, 811, 1247, 1220, 1259, 3543, 814, 2626, 0,
591 735, 3543, 2596, 3543, 839, 842, 3543, 846, 2610, 0,
592 792, 3543, 2564, 2569, 2572, 2554, 3543, 861, 1272, 1277,
593 1299, 3543, 866, 2592, 0, 853, 3543, 2569, 3543, 894,
594 854, 2602, 2563, 897, 34, 2534, 3543, 2585, 2575, 3543,
595 3543, 3543, 26, 36, 2527, 2526, 2523, 2563, 2529, 3543,
596 0, 2518, 2523, 2517, 2514, 2515, 2511, 2510, 35, 2504,
597 2502, 2499, 2493, 89, 2491, 2491, 2488, 3543, 0, 2486,
598 2483, 3543, 0, 2490, 903, 2470, 2457, 2457, 2476, 2460,
600 146, 3543, 0, 942, 2456, 2450, 3543, 0, 946, 2443,
601 3543, 0, 2442, 950, 2435, 2451, 2443, 2432, 3543, 0,
602 2422, 2421, 2431, 2416, 2421, 3543, 0, 953, 2417, 3543,
603 0, 2401, 2394, 2399, 2408, 2371, 2367, 3543, 0, 2372,
604 2380, 2378, 2396, 2391, 2398, 104, 2355, 3543, 127, 0,
605 2341, 2341, 2372, 2371, 2331, 3543, 2340, 2319, 2314, 995,
606 1002, 2319, 2306, 2320, 2299, 2306, 2291, 2284, 2284, 2288,
607 2255, 2259, 2251, 2267, 2248, 2256, 1052, 1059, 2244, 1115,
608 1124, 2246, 2246, 2237, 2213, 1118, 1332, 2213, 1193, 1184,
609 2199, 1338, 1341, 1358, 1361, 1369, 1374, 2210, 1377, 1380,
611 2207, 2194, 2178, 1396, 1399, 1402, 2195, 1405, 1408, 1421,
612 2180, 1426, 1429, 1438, 1442, 2188, 2157, 2164, 2155, 1446,
613 1449, 2164, 2149, 1455, 1459, 2185, 3543, 2181, 3543, 3543,
614 179, 2141, 3543, 2174, 2171, 2127, 3543, 3543, 2122, 2103,
615 2096, 2083, 1466, 1476, 3543, 1479, 2079, 2076, 2082, 2082,
616 2065, 209, 2064, 2059, 2062, 2039, 210, 2038, 2043, 2034,
617 1483, 1489, 1499, 3543, 1506, 2036, 1519, 3543, 3543, 2021,
618 2019, 2015, 2021, 1509, 1527, 3543, 1531, 254, 1534, 3543,
619 3543, 2016, 1548, 1551, 3543, 1554, 1558, 3543, 3543, 1571,
620 1574, 3543, 1577, 1997, 1581, 3543, 3543, 2003, 2002, 2005,
622 1594, 1597, 3543, 1600, 1606, 1618, 2005, 1626, 1629, 1637,
623 1642, 3543, 1645, 1984, 1655, 3543, 3543, 1663, 1666, 3543,
624 1669, 1973, 1672, 1990, 1969, 1675, 1688, 3543, 1692, 1951,
625 1965, 1695, 1698, 3543, 1705, 1984, 140, 1715, 3543, 3543,
626 1990, 1989, 1957, 1948, 1985, 1722, 1936, 907, 1927, 1069,
627 1936, 1935, 915, 1931, 919, 1286, 1920, 1918, 1917, 1899,
628 1912, 1725, 1735, 1728, 1900, 1894, 1878, 1745, 1750, 1753,
629 1021, 1756, 1761, 1766, 1878, 1883, 1871, 1773, 1779, 1789,
630 3543, 3543, 1864, 1797, 3543, 3543, 1784, 1805, 1814, 1871,
631 1818, 1827, 1859, 1872, 1823, 1851, 1835, 1841, 1869, 206,
633 1866, 1844, 3543, 1864, 3543, 3543, 1828, 1827, 170, 1851,
634 1820, 1024, 1818, 1078, 1818, 1787, 1777, 1138, 1847, 1141,
635 1854, 1864, 1766, 1868, 1771, 1871, 1874, 3543, 3543, 1883,
636 1772, 1766, 1747, 1888, 1904, 1895, 1912, 1759, 1891, 1926,
637 1929, 1932, 1941, 1945, 1753, 1731, 1739, 1948, 1951, 1729,
638 1964, 1733, 1967, 1724, 1970, 1708, 1974, 3543, 3543, 1702,
639 1685, 1988, 1692, 1991, 1994, 2010, 1700, 1097, 346, 253,
640 3543, 1666, 2013, 1672, 1662, 2016, 1662, 1668, 1653, 1649,
641 1646, 2019, 2022, 2033, 1631, 2036, 1642, 2039, 1637, 1627,
642 1636, 2042, 3543, 3543, 2050, 1649, 1631, 1608, 2060, 3543,
644 2064, 3543, 3543, 2072, 3543, 2077, 1596, 2081, 1614, 2085,
645 1620, 1619, 1594, 2097, 3543, 1584, 2100, 1576, 2103, 1574,
646 1574, 1571, 2106, 1565, 2110, 3543, 3543, 2123, 1596, 347,
647 299, 314, 1563, 2126, 2133, 1561, 1552, 2144, 1548, 2147,
648 1553, 1543, 2150, 2153, 2156, 2162, 2166, 2169, 1543, 1547,
649 1533, 284, 397, 1532, 2172, 1524, 2175, 2179, 1525, 1514,
650 443, 502, 1515, 1511, 2191, 3543, 1507, 2194, 2199, 1503,
651 1495, 2202, 1486, 2215, 1505, 2219, 403, 371, 2222, 2225,
652 3543, 3543, 1492, 1481, 2236, 2239, 2242, 2245, 2253, 2258,
653 2261, 2266, 2270, 1484, 1474, 1472, 1493, 1510, 1489, 1497,
655 1460, 2273, 3543, 2276, 2280, 3543, 3543, 1451, 1445, 1471,
656 1489, 1464, 1479, 1432, 1436, 2292, 2295, 2299, 2302, 2315,
657 1428, 2318, 2321, 2324, 3543, 2327, 356, 95, 2331, 2335,
658 1427, 2346, 2351, 2354, 2357, 2365, 3543, 1408, 1423, 1403,
659 1448, 3543, 1428, 3543, 2368, 2371, 2387, 1391, 1384, 1371,
660 1414, 3543, 1409, 3543, 2375, 1134, 2395, 2398, 2401, 3543,
661 3543, 2409, 2415, 2425, 2428, 3543, 2431, 2434, 428, 458,
662 570, 2437, 2441, 2453, 2456, 3543, 1353, 1371, 1367, 3543,
663 3543, 2459, 2462, 2475, 3543, 3543, 1348, 1351, 1345, 3543,
664 3543, 2483, 2486, 1334, 1334, 2494, 3543, 2499, 3543, 3543,
666 2507, 2511, 2519, 3543, 167, 676, 733, 2523, 3543, 3543,
667 2531, 2536, 2547, 1349, 1335, 2550, 3543, 3543, 1319, 2558,
668 1326, 2563, 3543, 3543, 1308, 1316, 2574, 3543, 3543, 457,
669 520, 2585, 2588, 3543, 3543, 2596, 2602, 1312, 148, 1298,
670 1308, 2612, 2615, 1288, 2623, 2628, 569, 2631, 2634, 2651,
671 2662, 3543, 3543, 1300, 1294, 1293, 1292, 2639, 2670, 3543,
672 3543, 2678, 2681, 2684, 1269, 2697, 2700, 1268, 618, 2708,
673 2713, 2726, 2744, 2782, 1273, 1279, 1264, 1256, 2737, 2762,
674 2775, 2800, 2808, 3543, 3543, 1262, 2819, 3543, 3543, 1260,
675 606, 2827, 17, 626, 2845, 2883, 1261, 1242, 1255, 1249,
677 2835, 3543, 3543, 2863, 935, 967, 1234, 1228, 701, 413,
678 250, 1279, 994, 1274, 2875, 2901, 2905, 2908, 2911, 1260,
679 1242, 1242, 1231, 1209, 1206, 2927, 1244, 1229, 1237, 2930,
680 2933, 2937, 2949, 2952, 2960, 2966, 1185, 2976, 2979, 1201,
681 1213, 1193, 1202, 1177, 1166, 2987, 1186, 2992, 3543, 3543,
682 3000, 3543, 3543, 3008, 3543, 3543, 1158, 3016, 3543, 3543,
683 1167, 1165, 1162, 1149, 1122, 1116, 515, 3543, 1093, 1106,
684 1089, 1047, 1045, 1010, 1006, 558, 954, 963, 943, 932,
685 889, 855, 843, 437, 3024, 851, 865, 784, 794, 704,
686 701, 575, 3027, 3030, 686, 3543, 638, 3543, 590, 585,
688 510, 3043, 3543, 3543, 3543, 3543, 559, 556, 3051, 518,
689 423, 3054, 318, 298, 950, 1161, 264, 245, 254, 625,
690 184, 124, 673, 685, 3062, 3071, 731, 788, 3074, 3078,
691 3090, 3093, 473, 578, 3102, 3543, 3543, 3110, 3543, 3543,
692 998, 1120, 654, 897, 791, 835, 1042, 1066, 953, 1000,
693 1088, 1094, 780, 1163, 3118, 3121, 3543, 3543, 3139, 3146,
694 3153, 3160, 3167, 3174, 3181, 3188, 3195, 3202, 3209, 3216,
695 3223, 3230, 3237, 3244, 3251, 3258, 3265, 3272, 3279, 3286,
696 3293, 3300, 3307, 3314, 3321, 3328, 3333, 3338, 3343, 3348,
697 3353, 3358, 3363, 3368, 3373, 3378, 3385, 3388, 3391, 3394,
699 3397, 3400, 3403, 3406, 3409, 3412, 3415, 3422, 3426, 3432,
700 3438, 3444, 3450, 3456, 3462, 3468, 3474, 3480, 3486, 3493,
701 3500, 3507, 3514, 3521, 3528, 3535
704 static yyconst flex_int16_t yy_def[1227] =
706 1159, 1159, 1160, 1160, 1160, 1160, 1161, 1161, 1162, 1162,
707 1163, 1163, 1164, 1164, 1164, 1164, 1165, 1165, 1159, 1159,
708 1166, 1166, 1167, 1167, 1167, 1167, 1159, 1159, 1167, 1167,
709 1159, 1159, 1167, 1167, 1167, 1167, 1168, 1168, 1169, 1169,
710 1170, 1170, 1171, 1171, 1159, 1159, 1171, 1171, 1171, 1171,
711 1172, 1172, 1173, 1173, 1174, 1174, 1175, 1175, 1176, 1176,
712 1177, 1177, 1159, 1159, 1177, 1177, 1177, 1177, 1178, 1178,
713 1179, 1179, 1159, 1159, 1179, 1179, 1179, 1179, 1180, 1180,
714 1181, 1181, 1182, 1182, 1183, 1183, 1159, 1159, 1183, 1183,
715 1183, 1183, 1184, 1184, 1185, 1185, 1186, 1186, 1158, 1158,
717 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
718 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
719 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1187,
720 1158, 1158, 1187, 1187, 1158, 1158, 1158, 1158, 1158, 1158,
721 1158, 1158, 1158, 1158, 1188, 1158, 1158, 1188, 1158, 1158,
722 1158, 1158, 1158, 1158, 1189, 1158, 1158, 1189, 1189, 1189,
723 1189, 1189, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
724 1190, 1158, 1158, 1190, 1190, 1158, 1158, 1158, 1158, 1158,
725 1158, 1191, 1158, 1158, 1191, 1158, 1158, 1158, 1158, 1158,
726 1158, 1192, 1158, 1158, 1192, 1192, 1192, 1192, 1158, 1158,
728 1158, 1158, 1158, 1158, 1158, 1193, 1158, 1158, 1193, 1193,
729 1193, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1194,
730 1158, 1158, 1194, 1158, 1158, 1158, 1158, 1158, 1158, 1195,
731 1158, 1158, 1195, 1195, 1195, 1195, 1158, 1158, 1158, 1158,
732 1158, 1158, 1158, 1158, 1196, 1158, 1158, 1196, 1158, 1158,
733 1158, 1158, 1158, 1158, 1197, 1158, 1158, 1158, 1158, 1158,
734 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
735 1187, 1187, 1187, 1198, 1158, 1158, 1158, 1158, 1158, 1158,
736 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1188, 1188,
737 1199, 1158, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1200,
739 1158, 1158, 1190, 1190, 1190, 1201, 1158, 1191, 1191, 1202,
740 1158, 1192, 1192, 1192, 1192, 1192, 1192, 1203, 1158, 1193,
741 1193, 1193, 1193, 1204, 1158, 1158, 1194, 1194, 1205, 1158,
742 1195, 1195, 1195, 1195, 1195, 1206, 1158, 1158, 1196, 1196,
743 1207, 1158, 1158, 1208, 1158, 1208, 1158, 1158, 1158, 1209,
744 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1187, 1187, 1210,
745 1210, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
746 1158, 1158, 1158, 1158, 1158, 1188, 1211, 1211, 1189, 1158,
747 1158, 1189, 1189, 1189, 1189, 1212, 1212, 1158, 1158, 1158,
748 1190, 1213, 1213, 1158, 1158, 1214, 1214, 1192, 1158, 1158,
750 1192, 1192, 1192, 1215, 1215, 1193, 1193, 1193, 1216, 1216,
751 1158, 1158, 1158, 1217, 1217, 1195, 1195, 1195, 1195, 1218,
752 1218, 1158, 1196, 1219, 1219, 1158, 1158, 1208, 1158, 1158,
753 1208, 1158, 1158, 1209, 1158, 1158, 1158, 1158, 1158, 1158,
754 1187, 1187, 1158, 1210, 1158, 1210, 1158, 1158, 1158, 1158,
755 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
756 1188, 1158, 1211, 1158, 1211, 1189, 1158, 1158, 1158, 1189,
757 1189, 1189, 1189, 1158, 1212, 1158, 1212, 1158, 1158, 1158,
758 1158, 1190, 1158, 1213, 1158, 1213, 1158, 1158, 1158, 1158,
759 1214, 1158, 1214, 1192, 1158, 1158, 1158, 1192, 1192, 1192,
761 1158, 1215, 1158, 1215, 1158, 1158, 1193, 1158, 1158, 1158,
762 1216, 1158, 1216, 1158, 1158, 1158, 1158, 1158, 1217, 1158,
763 1217, 1195, 1195, 1195, 1195, 1158, 1218, 1158, 1218, 1158,
764 1196, 1158, 1219, 1158, 1219, 1158, 1208, 1220, 1158, 1158,
765 1158, 1158, 1158, 1187, 1187, 1210, 1158, 1158, 1158, 1158,
766 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
767 1158, 1158, 1158, 1211, 1189, 1189, 1189, 1189, 1189, 1212,
768 1158, 1190, 1213, 1214, 1192, 1192, 1192, 1192, 1215, 1158,
769 1158, 1158, 1193, 1158, 1158, 1158, 1216, 1158, 1217, 1195,
770 1158, 1158, 1195, 1195, 1218, 1158, 1196, 1219, 1158, 1208,
772 1220, 1220, 1158, 1220, 1158, 1158, 1158, 1187, 1187, 1210,
773 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
774 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1211,
775 1189, 1189, 1189, 1158, 1158, 1158, 1158, 1189, 1212, 1158,
776 1158, 1158, 1213, 1214, 1192, 1192, 1192, 1158, 1158, 1192,
777 1215, 1193, 1216, 1158, 1217, 1195, 1158, 1158, 1158, 1195,
778 1195, 1218, 1158, 1158, 1158, 1219, 1158, 1208, 1220, 1220,
779 1158, 1158, 1187, 1187, 1187, 1210, 1158, 1158, 1158, 1158,
780 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1211, 1189, 1189,
781 1189, 1158, 1158, 1158, 1158, 1158, 1158, 1189, 1158, 1158,
783 1158, 1158, 1158, 1158, 1158, 1214, 1192, 1192, 1192, 1158,
784 1158, 1158, 1192, 1158, 1158, 1193, 1216, 1158, 1217, 1195,
785 1195, 1195, 1218, 1158, 1158, 1158, 1158, 1219, 1158, 1208,
786 1220, 1220, 1158, 1158, 1158, 1187, 1187, 1210, 1158, 1158,
787 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1211, 1189, 1189,
788 1189, 1158, 1158, 1189, 1214, 1192, 1158, 1158, 1192, 1192,
789 1158, 1158, 1192, 1193, 1158, 1158, 1158, 1217, 1195, 1195,
790 1195, 1218, 1158, 1219, 1158, 1208, 1220, 1220, 1158, 1158,
791 1158, 1158, 1187, 1187, 1210, 1158, 1158, 1158, 1158, 1158,
792 1158, 1158, 1211, 1189, 1189, 1189, 1158, 1158, 1158, 1158,
794 1189, 1158, 1158, 1192, 1158, 1158, 1158, 1192, 1192, 1158,
795 1158, 1158, 1158, 1192, 1193, 1158, 1217, 1158, 1158, 1195,
796 1195, 1218, 1158, 1219, 1158, 1208, 1220, 1220, 1158, 1187,
797 1187, 1210, 1158, 1158, 1158, 1158, 1158, 1189, 1189, 1189,
798 1158, 1158, 1158, 1158, 1189, 1158, 1158, 1192, 1192, 1192,
799 1158, 1158, 1158, 1158, 1192, 1193, 1158, 1217, 1158, 1158,
800 1158, 1158, 1158, 1195, 1158, 1158, 1158, 1219, 1208, 1220,
801 1220, 1158, 1158, 1187, 1158, 1158, 1189, 1189, 1189, 1158,
802 1158, 1158, 1158, 1158, 1158, 1158, 1192, 1192, 1192, 1158,
803 1158, 1158, 1158, 1193, 1193, 1158, 1158, 1158, 1158, 1158,
805 1158, 1158, 1158, 1158, 1208, 1220, 1220, 1158, 1158, 1158,
806 1158, 1158, 1189, 1189, 1189, 1158, 1158, 1158, 1192, 1192,
807 1192, 1158, 1158, 1158, 1193, 1193, 1158, 1158, 1158, 1208,
808 1220, 1220, 1158, 1158, 1158, 1158, 1158, 1189, 1189, 1189,
809 1192, 1158, 1158, 1192, 1193, 1193, 1208, 1220, 1220, 1220,
810 1158, 1158, 1158, 1189, 1189, 1189, 1189, 1192, 1158, 1158,
811 1158, 1192, 1158, 1158, 1193, 1158, 1158, 1193, 1208, 1220,
812 1220, 1220, 1221, 1222, 1189, 1189, 1189, 1189, 1158, 1158,
813 1158, 1158, 1158, 1158, 1158, 1193, 1158, 1158, 1158, 1193,
814 1208, 1220, 1223, 1224, 1221, 1222, 1189, 1189, 1189, 1189,
816 1158, 1158, 1158, 1158, 1158, 1158, 1193, 1193, 1208, 1223,
817 1220, 1225, 1224, 1226, 1220, 1189, 1189, 1189, 1189, 1158,
818 1158, 1158, 1158, 1193, 1193, 1208, 1225, 1158, 1226, 1220,
819 1158, 1158, 1158, 1158, 1158, 1158, 1189, 1158, 1158, 1158,
820 1158, 1158, 1158, 1193, 1193, 1208, 1158, 1158, 1158, 1158,
821 1158, 1158, 1158, 1158, 1158, 1158, 1189, 1158, 1158, 1158,
822 1158, 1158, 1158, 1158, 1193, 1193, 1208, 1158, 1189, 1158,
823 1158, 1158, 1158, 1193, 1193, 1208, 1189, 1158, 1158, 1158,
824 1158, 1193, 1193, 1208, 1189, 1158, 1158, 1158, 1158, 1193,
825 1193, 1208, 1158, 1158, 1158, 1158, 1158, 1158, 1193, 1193,
827 1208, 1158, 1158, 1158, 1158, 1158, 1193, 1193, 1208, 1193,
828 1193, 1208, 1193, 1193, 1208, 1208, 1193, 1193, 1208, 1208,
829 1193, 1193, 1208, 1208, 1193, 1193, 1208, 1208, 1158, 1158,
830 1158, 1158, 1208, 1208, 1158, 1158, 1158, 1158, 1158, 1158,
831 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208,
832 1208, 1208, 1208, 1208, 1208, 1208, 1158, 0, 1158, 1158,
833 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
834 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
835 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
836 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
838 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
839 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
840 1158, 1158, 1158, 1158, 1158, 1158
843 static yyconst flex_int16_t yy_nxt[3607] =
845 1158, 102, 103, 102, 102, 103, 102, 102, 103, 102,
846 102, 103, 102, 110, 1158, 104, 110, 113, 104, 113,
847 111, 105, 1011, 111, 105, 107, 103, 107, 107, 103,
848 107, 116, 117, 114, 1012, 114, 118, 119, 349, 108,
849 116, 117, 108, 345, 120, 118, 119, 116, 117, 295,
850 121, 255, 118, 120, 116, 117, 346, 121, 296, 118,
851 120, 123, 124, 123, 124, 256, 255, 120, 103, 103,
852 103, 103, 103, 103, 136, 103, 136, 136, 103, 136,
853 257, 258, 126, 258, 366, 126, 351, 350, 137, 352,
854 367, 137, 254, 254, 254, 257, 125, 257, 125, 127,
856 128, 103, 128, 127, 127, 127, 127, 127, 127, 127,
857 129, 127, 603, 127, 131, 127, 132, 127, 136, 103,
858 136, 429, 316, 136, 103, 136, 103, 103, 103, 103,
859 103, 103, 138, 317, 431, 127, 127, 138, 366, 349,
860 139, 433, 871, 139, 372, 136, 103, 136, 254, 254,
861 254, 254, 254, 254, 254, 254, 254, 429, 133, 137,
862 134, 127, 128, 103, 128, 127, 127, 127, 127, 127,
863 127, 127, 129, 127, 600, 127, 131, 127, 132, 127,
864 136, 103, 136, 1126, 429, 103, 103, 103, 103, 103,
865 103, 136, 103, 136, 137, 366, 429, 127, 127, 140,
867 537, 388, 140, 955, 956, 138, 930, 136, 103, 136,
868 136, 103, 136, 136, 103, 136, 254, 254, 254, 674,
869 133, 138, 134, 429, 141, 675, 1125, 141, 142, 143,
870 103, 143, 142, 142, 142, 142, 142, 142, 142, 144,
871 142, 668, 142, 146, 142, 147, 142, 150, 103, 150,
872 552, 558, 150, 103, 150, 164, 103, 164, 254, 254,
873 254, 151, 553, 553, 142, 142, 151, 603, 604, 165,
874 603, 429, 148, 142, 143, 103, 143, 142, 142, 142,
875 142, 142, 142, 142, 144, 142, 1122, 142, 146, 142,
876 147, 142, 164, 103, 164, 558, 732, 103, 103, 103,
878 103, 103, 103, 254, 254, 254, 165, 571, 797, 142,
879 142, 166, 1123, 798, 166, 1121, 603, 148, 152, 153,
880 103, 153, 152, 152, 152, 152, 152, 152, 152, 154,
881 152, 603, 152, 156, 152, 157, 152, 164, 103, 164,
882 777, 1118, 164, 103, 164, 164, 103, 164, 164, 103,
883 164, 165, 258, 258, 152, 152, 165, 158, 258, 167,
884 291, 1117, 167, 603, 429, 159, 257, 257, 160, 778,
885 776, 161, 257, 603, 162, 152, 153, 103, 153, 152,
886 152, 152, 152, 152, 152, 152, 154, 152, 603, 152,
887 156, 152, 157, 152, 177, 103, 177, 731, 870, 177,
889 103, 177, 187, 103, 187, 187, 103, 187, 178, 258,
890 258, 152, 152, 178, 158, 258, 188, 306, 1011, 188,
891 603, 799, 159, 257, 257, 160, 800, 828, 161, 257,
892 1012, 162, 168, 169, 103, 169, 168, 168, 168, 168,
893 168, 168, 168, 170, 168, 429, 168, 172, 168, 173,
894 168, 200, 103, 200, 429, 827, 200, 103, 200, 103,
895 103, 103, 103, 103, 103, 201, 258, 810, 168, 168,
896 201, 1092, 811, 166, 429, 603, 166, 905, 1114, 174,
897 257, 254, 254, 254, 254, 254, 254, 254, 254, 254,
898 429, 175, 168, 169, 103, 169, 168, 168, 168, 168,
900 168, 168, 168, 170, 168, 906, 168, 172, 168, 173,
901 168, 200, 103, 200, 947, 269, 200, 103, 200, 200,
902 103, 200, 200, 103, 200, 201, 812, 429, 168, 168,
903 201, 813, 429, 202, 1141, 258, 202, 603, 1109, 174,
904 254, 254, 254, 254, 254, 254, 254, 254, 254, 257,
905 1076, 175, 179, 180, 103, 180, 179, 179, 179, 179,
906 179, 179, 179, 181, 179, 948, 179, 183, 179, 184,
907 179, 213, 103, 213, 1113, 429, 213, 103, 213, 103,
908 103, 103, 103, 103, 103, 214, 429, 603, 179, 179,
909 214, 1084, 429, 215, 1111, 429, 215, 1110, 1101, 185,
911 179, 180, 103, 180, 179, 179, 179, 179, 179, 179,
912 179, 181, 179, 969, 179, 183, 179, 184, 179, 213,
913 103, 213, 907, 429, 213, 103, 213, 213, 103, 213,
914 213, 103, 213, 214, 1011, 429, 179, 179, 214, 1142,
915 1108, 216, 429, 1014, 216, 1107, 1106, 185, 189, 190,
916 103, 190, 189, 189, 189, 189, 189, 189, 189, 191,
917 189, 1009, 189, 193, 189, 194, 189, 225, 103, 225,
918 991, 429, 225, 103, 225, 238, 103, 238, 238, 103,
919 238, 226, 258, 1124, 189, 189, 226, 258, 195, 239,
920 429, 1105, 239, 603, 310, 196, 257, 197, 254, 254,
922 254, 257, 429, 1145, 198, 189, 190, 103, 190, 189,
923 189, 189, 189, 189, 189, 189, 191, 189, 429, 189,
924 193, 189, 194, 189, 103, 103, 103, 931, 1127, 103,
925 103, 103, 238, 103, 238, 238, 103, 238, 240, 258,
926 1128, 189, 189, 240, 1100, 195, 239, 1099, 429, 239,
927 603, 1026, 196, 257, 197, 254, 254, 254, 254, 254,
928 254, 198, 203, 204, 103, 204, 203, 203, 203, 203,
929 203, 203, 203, 205, 203, 1133, 203, 207, 203, 208,
930 203, 238, 103, 238, 932, 1155, 238, 103, 238, 250,
931 103, 250, 250, 103, 250, 241, 258, 429, 203, 203,
933 241, 1147, 1098, 251, 209, 429, 251, 1097, 429, 210,
934 257, 263, 254, 254, 254, 254, 254, 254, 211, 203,
935 204, 103, 204, 203, 203, 203, 203, 203, 203, 203,
936 205, 203, 1134, 203, 207, 203, 208, 203, 116, 117,
937 254, 254, 254, 118, 264, 1148, 258, 254, 254, 254,
938 265, 252, 429, 329, 266, 203, 203, 258, 258, 267,
939 257, 209, 254, 254, 254, 341, 210, 254, 254, 254,
940 1096, 257, 257, 253, 1095, 211, 217, 218, 103, 218,
941 217, 217, 217, 217, 217, 217, 217, 219, 217, 1091,
942 217, 221, 217, 222, 217, 254, 254, 254, 254, 254,
944 254, 1090, 116, 117, 380, 380, 380, 118, 612, 612,
945 612, 1089, 217, 217, 429, 252, 618, 618, 618, 381,
946 620, 620, 620, 223, 217, 218, 103, 218, 217, 217,
947 217, 217, 217, 217, 217, 219, 217, 253, 217, 221,
948 217, 222, 217, 389, 389, 389, 1146, 394, 394, 394,
949 258, 399, 399, 399, 412, 412, 412, 274, 390, 1020,
950 217, 217, 395, 1088, 257, 1087, 400, 429, 1021, 413,
951 429, 223, 227, 228, 103, 228, 227, 227, 227, 227,
952 227, 227, 227, 229, 227, 275, 227, 231, 227, 232,
953 227, 1022, 276, 277, 1086, 278, 443, 443, 443, 279,
955 1023, 280, 1011, 443, 443, 443, 1119, 258, 227, 227,
956 1151, 1014, 445, 1085, 274, 429, 233, 429, 234, 445,
957 235, 257, 640, 640, 640, 612, 612, 612, 236, 227,
958 228, 103, 228, 227, 227, 227, 227, 227, 227, 227,
959 229, 227, 275, 227, 231, 227, 232, 227, 1143, 281,
960 277, 446, 282, 462, 462, 462, 279, 1152, 283, 429,
961 462, 462, 462, 1083, 258, 227, 227, 1082, 1081, 464,
962 614, 614, 614, 233, 1080, 234, 464, 235, 257, 614,
963 614, 614, 615, 429, 1149, 236, 242, 243, 103, 243,
964 242, 242, 242, 242, 242, 242, 242, 244, 242, 275,
966 242, 246, 242, 247, 242, 429, 276, 277, 1150, 278,
967 465, 429, 1079, 284, 429, 285, 380, 380, 380, 474,
968 474, 474, 242, 242, 258, 467, 467, 467, 730, 468,
969 1153, 381, 469, 1078, 1077, 476, 1154, 429, 257, 618,
970 618, 618, 620, 620, 620, 248, 242, 243, 103, 243,
971 242, 242, 242, 242, 242, 242, 242, 244, 242, 275,
972 242, 246, 242, 247, 242, 258, 281, 277, 1075, 282,
973 1144, 1155, 274, 279, 1074, 283, 894, 258, 429, 257,
974 429, 1073, 242, 242, 300, 479, 479, 479, 258, 480,
975 895, 257, 481, 1072, 389, 389, 389, 1071, 1070, 258,
977 275, 1069, 257, 1068, 1066, 248, 300, 281, 286, 390,
978 282, 258, 275, 257, 284, 1065, 287, 1120, 318, 281,
979 286, 1064, 282, 275, 258, 257, 301, 1063, 287, 258,
980 281, 286, 1062, 282, 275, 1061, 318, 301, 257, 287,
981 1057, 281, 286, 257, 282, 1028, 275, 1047, 284, 1028,
982 287, 258, 1045, 281, 286, 1044, 282, 1043, 324, 275,
983 301, 1042, 287, 258, 275, 257, 281, 286, 1041, 325,
984 324, 281, 286, 284, 282, 287, 258, 257, 284, 1040,
985 287, 258, 1028, 336, 1028, 1025, 275, 621, 621, 621,
986 257, 1024, 1019, 281, 286, 257, 325, 1018, 275, 615,
988 284, 1017, 287, 258, 1016, 281, 286, 1008, 282, 1007,
989 336, 337, 284, 1000, 287, 999, 337, 257, 281, 286,
990 998, 282, 997, 281, 286, 301, 282, 287, 990, 986,
991 301, 978, 287, 474, 474, 474, 977, 976, 275, 483,
992 483, 483, 483, 483, 483, 281, 286, 975, 282, 476,
993 962, 958, 284, 957, 287, 485, 954, 946, 485, 394,
994 394, 394, 487, 487, 487, 945, 488, 944, 941, 489,
995 490, 490, 490, 940, 395, 490, 490, 490, 399, 399,
996 399, 495, 495, 495, 477, 496, 492, 939, 497, 926,
997 925, 492, 921, 400, 920, 919, 486, 501, 501, 501,
999 501, 501, 501, 505, 505, 505, 508, 508, 508, 510,
1000 510, 510, 915, 503, 914, 913, 503, 891, 506, 890,
1001 889, 509, 510, 510, 510, 512, 493, 412, 412, 412,
1002 515, 515, 515, 888, 516, 887, 881, 517, 512, 518,
1003 518, 518, 413, 518, 518, 518, 504, 526, 526, 526,
1004 526, 526, 526, 880, 879, 520, 532, 532, 532, 520,
1005 532, 532, 532, 528, 878, 877, 528, 443, 443, 443,
1006 874, 864, 534, 513, 856, 855, 534, 443, 443, 443,
1007 443, 443, 443, 445, 562, 562, 562, 854, 853, 521,
1008 462, 462, 462, 445, 852, 851, 445, 850, 849, 563,
1010 462, 462, 462, 845, 529, 844, 464, 462, 462, 462,
1011 474, 474, 474, 843, 535, 842, 464, 841, 546, 840,
1012 467, 467, 467, 464, 468, 839, 476, 469, 474, 474,
1013 474, 838, 474, 474, 474, 479, 479, 479, 831, 480,
1014 830, 825, 481, 823, 476, 821, 820, 564, 476, 483,
1015 483, 483, 483, 483, 483, 483, 483, 483, 816, 487,
1016 487, 487, 815, 488, 814, 485, 489, 809, 485, 808,
1017 804, 485, 490, 490, 490, 490, 490, 490, 490, 490,
1018 490, 801, 495, 495, 495, 796, 496, 570, 492, 497,
1019 795, 492, 794, 789, 492, 501, 501, 501, 501, 501,
1021 501, 501, 501, 501, 788, 786, 573, 505, 505, 505,
1022 784, 503, 783, 779, 503, 775, 773, 503, 771, 580,
1023 580, 580, 506, 581, 770, 769, 582, 508, 508, 508,
1024 584, 584, 584, 767, 585, 574, 764, 586, 510, 510,
1025 510, 763, 509, 510, 510, 510, 510, 510, 510, 762,
1026 761, 579, 760, 756, 512, 754, 515, 515, 515, 512,
1027 516, 753, 512, 517, 518, 518, 518, 518, 518, 518,
1028 518, 518, 518, 591, 591, 591, 526, 526, 526, 752,
1029 520, 751, 750, 520, 749, 747, 520, 746, 592, 526,
1030 526, 526, 528, 526, 526, 526, 532, 532, 532, 532,
1032 532, 532, 743, 587, 742, 528, 532, 532, 532, 528,
1033 741, 740, 534, 739, 737, 534, 602, 602, 602, 736,
1034 589, 733, 534, 443, 443, 443, 562, 562, 562, 462,
1035 462, 462, 603, 604, 729, 724, 627, 627, 627, 445,
1036 628, 563, 722, 629, 595, 464, 634, 634, 634, 721,
1037 598, 636, 636, 636, 474, 474, 474, 641, 641, 641,
1038 720, 635, 483, 483, 483, 718, 637, 490, 490, 490,
1039 476, 716, 642, 713, 648, 648, 648, 630, 485, 610,
1040 501, 501, 501, 492, 709, 510, 510, 510, 638, 649,
1041 580, 580, 580, 708, 581, 707, 503, 582, 584, 584,
1043 584, 512, 585, 698, 691, 586, 621, 621, 621, 690,
1044 639, 650, 689, 687, 643, 518, 518, 518, 654, 591,
1045 591, 591, 685, 644, 526, 526, 526, 651, 657, 657,
1046 657, 520, 658, 681, 592, 659, 664, 664, 664, 680,
1047 528, 653, 532, 532, 532, 602, 602, 602, 682, 682,
1048 682, 665, 443, 443, 443, 621, 621, 621, 534, 679,
1049 678, 603, 655, 677, 662, 682, 682, 682, 445, 686,
1050 686, 686, 686, 686, 686, 627, 627, 627, 673, 628,
1051 672, 671, 629, 603, 462, 462, 462, 669, 667, 634,
1052 634, 634, 699, 699, 699, 676, 636, 636, 636, 666,
1054 464, 663, 683, 670, 635, 692, 692, 692, 700, 693,
1055 661, 637, 694, 695, 695, 695, 660, 696, 656, 684,
1056 697, 652, 647, 683, 646, 645, 684, 640, 640, 640,
1057 641, 641, 641, 701, 701, 701, 633, 702, 632, 631,
1058 703, 688, 704, 704, 704, 642, 490, 490, 490, 648,
1059 648, 648, 710, 710, 710, 626, 711, 625, 705, 712,
1060 624, 623, 492, 622, 649, 714, 714, 714, 510, 510,
1061 510, 518, 518, 518, 619, 657, 657, 657, 617, 658,
1062 616, 715, 659, 719, 512, 613, 611, 520, 706, 526,
1063 526, 526, 664, 664, 664, 725, 725, 725, 609, 726,
1065 608, 607, 727, 606, 605, 528, 599, 665, 597, 596,
1066 717, 532, 532, 532, 734, 734, 734, 443, 443, 443,
1067 682, 682, 682, 744, 744, 744, 594, 534, 593, 735,
1068 590, 723, 588, 445, 745, 745, 745, 686, 686, 686,
1069 462, 462, 462, 692, 692, 692, 583, 693, 578, 577,
1070 694, 695, 695, 695, 576, 696, 464, 575, 697, 572,
1071 728, 699, 699, 699, 569, 701, 701, 701, 738, 702,
1072 568, 567, 703, 704, 704, 704, 566, 700, 490, 490,
1073 490, 748, 757, 757, 757, 565, 710, 710, 710, 705,
1074 711, 561, 560, 712, 492, 559, 557, 758, 714, 714,
1076 714, 765, 765, 765, 518, 518, 518, 526, 526, 526,
1077 556, 725, 725, 725, 715, 726, 555, 766, 727, 759,
1078 520, 554, 551, 528, 532, 532, 532, 734, 734, 734,
1079 550, 549, 755, 548, 780, 780, 780, 547, 781, 545,
1080 534, 782, 735, 544, 768, 443, 443, 443, 787, 787,
1081 787, 790, 790, 790, 744, 744, 744, 745, 745, 745,
1082 543, 445, 772, 791, 791, 791, 774, 792, 792, 792,
1083 462, 462, 462, 802, 802, 802, 757, 757, 757, 542,
1084 805, 805, 805, 541, 806, 540, 464, 807, 539, 803,
1085 538, 758, 765, 765, 765, 518, 518, 518, 429, 785,
1087 818, 818, 818, 526, 526, 526, 536, 531, 766, 530,
1088 525, 520, 793, 524, 523, 819, 532, 532, 532, 528,
1089 826, 826, 826, 829, 829, 829, 780, 780, 780, 522,
1090 781, 514, 534, 782, 507, 500, 429, 443, 443, 443,
1091 833, 833, 833, 787, 787, 787, 834, 834, 834, 499,
1092 498, 817, 494, 445, 835, 835, 835, 482, 822, 790,
1093 790, 790, 791, 791, 791, 478, 824, 792, 792, 792,
1094 473, 836, 836, 836, 802, 802, 802, 846, 846, 846,
1095 472, 805, 805, 805, 471, 806, 832, 837, 807, 470,
1096 803, 466, 847, 857, 857, 857, 518, 518, 518, 461,
1098 818, 818, 818, 859, 859, 859, 460, 860, 459, 458,
1099 861, 457, 520, 456, 848, 819, 862, 862, 862, 865,
1100 865, 865, 867, 867, 867, 532, 532, 532, 826, 826,
1101 826, 863, 829, 829, 829, 866, 872, 872, 872, 455,
1102 454, 534, 453, 452, 429, 451, 858, 875, 875, 875,
1103 450, 873, 833, 833, 833, 834, 834, 834, 835, 835,
1104 835, 449, 448, 876, 447, 442, 836, 836, 836, 882,
1105 882, 882, 846, 846, 846, 441, 892, 892, 892, 440,
1106 869, 868, 837, 439, 883, 438, 437, 847, 884, 884,
1107 884, 893, 885, 436, 435, 886, 857, 857, 857, 896,
1109 896, 896, 859, 859, 859, 432, 860, 430, 429, 861,
1110 862, 862, 862, 427, 426, 897, 898, 898, 898, 425,
1111 899, 423, 422, 900, 421, 863, 901, 901, 901, 865,
1112 865, 865, 867, 867, 867, 903, 903, 903, 872, 872,
1113 872, 902, 908, 908, 908, 866, 909, 419, 418, 910,
1114 417, 904, 416, 873, 911, 911, 911, 875, 875, 875,
1115 882, 882, 882, 916, 916, 916, 415, 917, 411, 912,
1116 918, 410, 408, 876, 407, 883, 884, 884, 884, 406,
1117 885, 405, 403, 886, 892, 892, 892, 922, 922, 922,
1118 402, 923, 401, 398, 924, 896, 896, 896, 397, 893,
1120 898, 898, 898, 393, 899, 391, 387, 900, 901, 901,
1121 901, 897, 927, 927, 927, 385, 928, 384, 383, 929,
1122 903, 903, 903, 902, 908, 908, 908, 382, 909, 379,
1123 378, 910, 911, 911, 911, 376, 904, 933, 933, 933,
1124 375, 934, 374, 373, 935, 371, 370, 912, 936, 936,
1125 936, 916, 916, 916, 369, 917, 368, 365, 918, 942,
1126 942, 942, 364, 937, 922, 922, 922, 363, 923, 362,
1127 361, 924, 359, 358, 943, 927, 927, 927, 357, 928,
1128 356, 355, 929, 354, 353, 938, 949, 949, 949, 933,
1129 933, 933, 348, 934, 345, 347, 935, 936, 936, 936,
1131 343, 950, 603, 951, 951, 951, 342, 952, 340, 338,
1132 953, 335, 937, 942, 942, 942, 959, 959, 959, 334,
1133 960, 333, 332, 961, 963, 963, 963, 330, 943, 966,
1134 966, 966, 970, 970, 970, 949, 949, 949, 328, 964,
1135 979, 979, 979, 326, 967, 323, 322, 971, 603, 321,
1136 950, 603, 972, 972, 972, 980, 973, 319, 315, 974,
1137 314, 965, 313, 951, 951, 951, 968, 952, 603, 311,
1138 953, 959, 959, 959, 309, 960, 307, 305, 961, 981,
1139 981, 981, 963, 963, 963, 983, 983, 983, 304, 984,
1140 302, 299, 985, 298, 982, 297, 294, 964, 966, 966,
1142 966, 987, 987, 987, 292, 988, 290, 288, 989, 970,
1143 970, 970, 273, 967, 992, 992, 992, 272, 993, 270,
1144 268, 994, 262, 261, 971, 603, 262, 972, 972, 972,
1145 603, 973, 261, 260, 974, 259, 1158, 1158, 979, 979,
1146 979, 1158, 1158, 603, 601, 601, 601, 601, 601, 601,
1147 601, 601, 601, 980, 1158, 601, 1158, 1158, 601, 601,
1148 601, 603, 601, 1001, 1001, 1001, 1158, 1002, 1158, 1158,
1149 1003, 1158, 1158, 1158, 1158, 1158, 981, 981, 981, 1158,
1150 601, 601, 601, 601, 601, 601, 601, 601, 601, 601,
1151 601, 982, 1158, 601, 1158, 1158, 601, 601, 601, 603,
1153 601, 1004, 1004, 1004, 1158, 1005, 1158, 1158, 1006, 983,
1154 983, 983, 1158, 984, 1158, 1158, 985, 1158, 601, 601,
1155 987, 987, 987, 1158, 988, 1158, 1158, 989, 992, 992,
1156 992, 1158, 993, 1158, 1158, 994, 1001, 1001, 1001, 1158,
1157 1002, 1158, 1158, 1003, 603, 601, 601, 601, 601, 601,
1158 1015, 601, 601, 601, 1158, 1158, 601, 1158, 1158, 601,
1159 601, 601, 603, 601, 1004, 1004, 1004, 1158, 1005, 1158,
1160 1158, 1006, 1158, 1158, 1158, 1158, 1030, 1030, 1030, 1158,
1161 1158, 601, 601, 601, 601, 601, 601, 601, 601, 601,
1162 601, 1015, 603, 604, 601, 1158, 1158, 601, 601, 601,
1164 603, 601, 1031, 1031, 1031, 1158, 1033, 1033, 1033, 1035,
1165 1035, 1035, 1038, 1038, 1038, 1158, 1158, 1032, 1158, 601,
1166 601, 1034, 1158, 1158, 1036, 1158, 1158, 1039, 1046, 1046,
1167 1046, 1030, 1030, 1030, 1031, 1031, 1031, 1158, 1048, 1048,
1168 1048, 1158, 1049, 1158, 429, 1050, 1037, 603, 1158, 1032,
1169 1033, 1033, 1033, 1051, 1051, 1051, 1158, 1052, 1158, 1158,
1170 1053, 1035, 1035, 1035, 1158, 1034, 1158, 1054, 1054, 1054,
1171 1158, 1055, 1158, 669, 1056, 1158, 1036, 1038, 1038, 1038,
1172 1058, 1058, 1058, 1158, 1059, 1158, 1158, 1060, 1046, 1046,
1173 1046, 1158, 1039, 1048, 1048, 1048, 1158, 1049, 1158, 1158,
1175 1050, 1051, 1051, 1051, 429, 1052, 1158, 1158, 1053, 1054,
1176 1054, 1054, 1158, 1055, 1158, 1158, 1056, 1058, 1058, 1058,
1177 1067, 1059, 1158, 1158, 1060, 1093, 1093, 1093, 1093, 1093,
1178 1093, 1102, 1102, 1102, 1158, 1103, 1158, 1158, 1104, 1158,
1179 1094, 1158, 1158, 1094, 1102, 1102, 1102, 1158, 1103, 1158,
1180 1158, 1104, 1112, 1112, 1112, 1112, 1112, 1112, 1158, 1115,
1181 1158, 1158, 1116, 1129, 1129, 1129, 1158, 1158, 429, 1158,
1182 1158, 429, 1131, 1131, 1131, 1129, 1129, 1129, 1130, 1135,
1183 1135, 1135, 1158, 1136, 1158, 1158, 1137, 1132, 1158, 1158,
1184 1130, 1131, 1131, 1131, 1138, 1138, 1138, 1158, 1139, 1158,
1186 1158, 1140, 1158, 1135, 1135, 1135, 1132, 1136, 1158, 1158,
1187 1137, 1138, 1138, 1138, 1158, 1139, 1158, 1158, 1140, 1156,
1188 1156, 1156, 1156, 1156, 1156, 1158, 1158, 1158, 1158, 1158,
1189 1158, 1158, 1158, 1158, 1158, 1157, 1158, 1158, 1157, 100,
1190 100, 100, 100, 100, 100, 100, 101, 101, 101, 101,
1191 101, 101, 101, 106, 106, 106, 106, 106, 106, 106,
1192 109, 109, 109, 109, 109, 109, 109, 112, 112, 112,
1193 112, 112, 112, 112, 115, 115, 115, 115, 115, 115,
1194 115, 122, 122, 122, 122, 122, 122, 122, 130, 130,
1195 130, 130, 130, 130, 130, 135, 135, 135, 135, 135,
1197 135, 135, 145, 145, 145, 145, 145, 145, 145, 149,
1198 149, 149, 149, 149, 149, 149, 155, 155, 155, 155,
1199 155, 155, 155, 163, 163, 163, 163, 163, 163, 163,
1200 171, 171, 171, 171, 171, 171, 171, 176, 176, 176,
1201 176, 176, 176, 176, 182, 182, 182, 182, 182, 182,
1202 182, 186, 186, 186, 186, 186, 186, 186, 192, 192,
1203 192, 192, 192, 192, 192, 199, 199, 199, 199, 199,
1204 199, 199, 206, 206, 206, 206, 206, 206, 206, 212,
1205 212, 212, 212, 212, 212, 212, 220, 220, 220, 220,
1206 220, 220, 220, 224, 224, 224, 224, 224, 224, 224,
1208 230, 230, 230, 230, 230, 230, 230, 237, 237, 237,
1209 237, 237, 237, 237, 245, 245, 245, 245, 245, 245,
1210 245, 249, 249, 249, 249, 249, 249, 249, 115, 115,
1211 115, 115, 115, 115, 115, 271, 271, 271, 1158, 271,
1212 289, 289, 289, 1158, 289, 293, 293, 293, 1158, 293,
1213 303, 303, 303, 1158, 303, 308, 308, 308, 1158, 308,
1214 312, 312, 312, 1158, 312, 320, 320, 320, 1158, 320,
1215 327, 327, 327, 1158, 327, 331, 331, 331, 1158, 331,
1216 339, 339, 339, 1158, 339, 344, 344, 344, 344, 344,
1217 1158, 344, 360, 1158, 360, 377, 1158, 377, 386, 1158,
1219 386, 392, 1158, 392, 396, 1158, 396, 404, 1158, 404,
1220 409, 1158, 409, 414, 1158, 414, 420, 1158, 420, 424,
1221 1158, 424, 428, 428, 428, 428, 428, 428, 428, 434,
1222 1158, 1158, 434, 444, 444, 444, 444, 444, 444, 463,
1223 463, 463, 463, 463, 463, 475, 475, 475, 475, 475,
1224 475, 484, 484, 484, 484, 484, 484, 491, 491, 491,
1225 491, 491, 491, 502, 502, 502, 502, 502, 502, 511,
1226 511, 511, 511, 511, 511, 519, 519, 519, 519, 519,
1227 519, 527, 527, 527, 527, 527, 527, 533, 533, 533,
1228 533, 533, 533, 601, 601, 601, 601, 601, 601, 601,
1230 995, 995, 995, 995, 995, 995, 995, 996, 996, 996,
1231 996, 996, 996, 996, 1010, 1010, 1010, 1010, 1010, 1010,
1232 1010, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1027, 1027,
1233 1027, 1027, 1027, 1027, 1027, 1029, 1029, 1029, 1029, 1029,
1234 1029, 1029, 99, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1235 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1236 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1237 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1238 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1239 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1241 1158, 1158, 1158, 1158, 1158, 1158
1244 static yyconst flex_int16_t yy_chk[3607] =
1246 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1247 6, 6, 6, 9, 0, 3, 10, 11, 4, 12,
1248 9, 5, 993, 10, 6, 7, 7, 7, 8, 8,
1249 8, 13, 13, 11, 993, 12, 13, 13, 263, 7,
1250 14, 14, 8, 255, 13, 14, 14, 15, 15, 159,
1251 15, 104, 15, 14, 16, 16, 255, 16, 159, 16,
1252 15, 17, 17, 18, 18, 104, 105, 16, 19, 19,
1253 19, 20, 20, 20, 23, 23, 23, 24, 24, 24,
1254 105, 108, 19, 131, 279, 20, 264, 263, 23, 264,
1255 279, 24, 102, 102, 102, 108, 17, 131, 18, 21,
1257 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1258 21, 21, 828, 21, 21, 21, 21, 21, 25, 25,
1259 25, 346, 198, 26, 26, 26, 27, 27, 27, 28,
1260 28, 28, 25, 198, 346, 21, 21, 26, 284, 349,
1261 27, 349, 828, 28, 284, 29, 29, 29, 103, 103,
1262 103, 107, 107, 107, 128, 128, 128, 537, 21, 29,
1263 21, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1264 22, 22, 22, 22, 537, 22, 22, 22, 22, 22,
1265 30, 30, 30, 1122, 905, 31, 31, 31, 32, 32,
1266 32, 33, 33, 33, 30, 301, 431, 22, 22, 31,
1268 431, 301, 32, 939, 939, 33, 905, 34, 34, 34,
1269 35, 35, 35, 36, 36, 36, 136, 136, 136, 609,
1270 22, 34, 22, 600, 35, 609, 1121, 36, 37, 37,
1271 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
1272 37, 600, 37, 37, 37, 37, 37, 39, 39, 39,
1273 452, 457, 40, 40, 40, 43, 43, 43, 143, 143,
1274 143, 39, 452, 457, 37, 37, 40, 1011, 1011, 43,
1275 670, 1119, 37, 38, 38, 38, 38, 38, 38, 38,
1276 38, 38, 38, 38, 38, 38, 1118, 38, 38, 38,
1277 38, 38, 44, 44, 44, 478, 670, 45, 45, 45,
1279 46, 46, 46, 150, 150, 150, 44, 478, 752, 38,
1280 38, 45, 1119, 752, 46, 1117, 731, 38, 41, 41,
1281 41, 41, 41, 41, 41, 41, 41, 41, 41, 41,
1282 41, 732, 41, 41, 41, 41, 41, 47, 47, 47,
1283 731, 1114, 48, 48, 48, 49, 49, 49, 50, 50,
1284 50, 47, 146, 151, 41, 41, 48, 41, 156, 49,
1285 151, 1113, 50, 669, 730, 41, 146, 151, 41, 732,
1286 730, 41, 156, 827, 41, 42, 42, 42, 42, 42,
1287 42, 42, 42, 42, 42, 42, 42, 42, 778, 42,
1288 42, 42, 42, 42, 53, 53, 53, 669, 827, 54,
1290 54, 54, 57, 57, 57, 58, 58, 58, 53, 172,
1291 178, 42, 42, 54, 42, 183, 57, 178, 1010, 58,
1292 777, 753, 42, 172, 178, 42, 753, 778, 42, 183,
1293 1010, 42, 51, 51, 51, 51, 51, 51, 51, 51,
1294 51, 51, 51, 51, 51, 869, 51, 51, 51, 51,
1295 51, 61, 61, 61, 1084, 777, 62, 62, 62, 63,
1296 63, 63, 64, 64, 64, 61, 126, 761, 51, 51,
1297 62, 1084, 761, 63, 930, 870, 64, 869, 1111, 51,
1298 126, 153, 153, 153, 164, 164, 164, 169, 169, 169,
1299 1133, 51, 52, 52, 52, 52, 52, 52, 52, 52,
1301 52, 52, 52, 52, 52, 870, 52, 52, 52, 52,
1302 52, 65, 65, 65, 930, 126, 66, 66, 66, 67,
1303 67, 67, 68, 68, 68, 65, 762, 1101, 52, 52,
1304 66, 762, 1067, 67, 1133, 193, 68, 931, 1101, 52,
1305 177, 177, 177, 180, 180, 180, 187, 187, 187, 193,
1306 1067, 52, 55, 55, 55, 55, 55, 55, 55, 55,
1307 55, 55, 55, 55, 55, 931, 55, 55, 55, 55,
1308 55, 71, 71, 71, 1110, 1076, 72, 72, 72, 73,
1309 73, 73, 74, 74, 74, 71, 947, 871, 55, 55,
1310 72, 1076, 1092, 73, 1108, 1134, 74, 1107, 1092, 55,
1312 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
1313 56, 56, 56, 947, 56, 56, 56, 56, 56, 75,
1314 75, 75, 871, 991, 76, 76, 76, 77, 77, 77,
1315 78, 78, 78, 75, 994, 969, 56, 56, 76, 1134,
1316 1100, 77, 1120, 994, 78, 1099, 1097, 56, 59, 59,
1317 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,
1318 59, 991, 59, 59, 59, 59, 59, 81, 81, 81,
1319 969, 1143, 82, 82, 82, 85, 85, 85, 86, 86,
1320 86, 81, 207, 1120, 59, 59, 82, 188, 59, 85,
1321 1123, 1095, 86, 906, 188, 59, 207, 59, 190, 190,
1323 190, 188, 1124, 1143, 59, 60, 60, 60, 60, 60,
1324 60, 60, 60, 60, 60, 60, 60, 60, 1009, 60,
1325 60, 60, 60, 60, 87, 87, 87, 906, 1123, 88,
1326 88, 88, 89, 89, 89, 90, 90, 90, 87, 221,
1327 1124, 60, 60, 88, 1091, 60, 89, 1090, 1127, 90,
1328 907, 1009, 60, 221, 60, 200, 200, 200, 204, 204,
1329 204, 60, 69, 69, 69, 69, 69, 69, 69, 69,
1330 69, 69, 69, 69, 69, 1127, 69, 69, 69, 69,
1331 69, 91, 91, 91, 907, 1153, 92, 92, 92, 95,
1332 95, 95, 96, 96, 96, 91, 231, 1153, 69, 69,
1334 92, 1145, 1089, 95, 69, 1128, 96, 1088, 1145, 69,
1335 231, 118, 213, 213, 213, 218, 218, 218, 69, 70,
1336 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
1337 70, 70, 1128, 70, 70, 70, 70, 70, 97, 97,
1338 225, 225, 225, 97, 118, 1146, 226, 228, 228, 228,
1339 118, 97, 1146, 226, 118, 70, 70, 246, 251, 118,
1340 226, 70, 238, 238, 238, 251, 70, 243, 243, 243,
1341 1087, 246, 251, 97, 1086, 70, 79, 79, 79, 79,
1342 79, 79, 79, 79, 79, 79, 79, 79, 79, 1083,
1343 79, 79, 79, 79, 79, 250, 250, 250, 254, 254,
1345 254, 1082, 98, 98, 295, 295, 295, 98, 548, 548,
1346 548, 1081, 79, 79, 1144, 98, 553, 553, 553, 295,
1347 555, 555, 555, 79, 80, 80, 80, 80, 80, 80,
1348 80, 80, 80, 80, 80, 80, 80, 98, 80, 80,
1349 80, 80, 80, 304, 304, 304, 1144, 309, 309, 309,
1350 137, 314, 314, 314, 328, 328, 328, 137, 304, 1005,
1351 80, 80, 309, 1080, 137, 1079, 314, 1115, 1005, 328,
1352 1149, 80, 83, 83, 83, 83, 83, 83, 83, 83,
1353 83, 83, 83, 83, 83, 137, 83, 83, 83, 83,
1354 83, 1006, 137, 137, 1078, 137, 360, 360, 360, 137,
1356 1006, 137, 1013, 361, 361, 361, 1115, 138, 83, 83,
1357 1149, 1013, 360, 1077, 138, 1141, 83, 1150, 83, 361,
1358 83, 138, 571, 571, 571, 612, 612, 612, 83, 84,
1359 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
1360 84, 84, 138, 84, 84, 84, 84, 84, 1141, 138,
1361 138, 361, 138, 377, 377, 377, 138, 1150, 138, 1147,
1362 378, 378, 378, 1075, 139, 84, 84, 1074, 1073, 377,
1363 550, 550, 550, 84, 1072, 84, 378, 84, 139, 614,
1364 614, 614, 550, 1148, 1147, 84, 93, 93, 93, 93,
1365 93, 93, 93, 93, 93, 93, 93, 93, 93, 139,
1367 93, 93, 93, 93, 93, 1151, 139, 139, 1148, 139,
1368 378, 1152, 1071, 139, 668, 139, 380, 380, 380, 386,
1369 386, 386, 93, 93, 140, 381, 381, 381, 668, 381,
1370 1151, 380, 381, 1070, 1069, 386, 1152, 1142, 140, 618,
1371 618, 618, 620, 620, 620, 93, 94, 94, 94, 94,
1372 94, 94, 94, 94, 94, 94, 94, 94, 94, 140,
1373 94, 94, 94, 94, 94, 141, 140, 140, 1066, 140,
1374 1142, 1154, 141, 140, 1065, 140, 856, 165, 1116, 141,
1375 1154, 1064, 94, 94, 165, 390, 390, 390, 166, 390,
1376 856, 165, 390, 1063, 389, 389, 389, 1062, 1061, 167,
1378 141, 1057, 166, 1047, 1045, 94, 167, 141, 141, 389,
1379 141, 201, 165, 167, 141, 1044, 141, 1116, 201, 165,
1380 165, 1043, 165, 166, 215, 201, 165, 1042, 165, 202,
1381 166, 166, 1041, 166, 167, 1040, 202, 166, 215, 166,
1382 1037, 167, 167, 202, 167, 1029, 201, 1028, 167, 1027,
1383 167, 214, 1025, 201, 201, 1024, 201, 1023, 214, 215,
1384 201, 1022, 201, 216, 202, 214, 215, 215, 1021, 215,
1385 216, 202, 202, 215, 202, 215, 239, 216, 202, 1020,
1386 202, 240, 1014, 239, 1012, 1008, 214, 556, 556, 556,
1387 239, 1007, 1000, 214, 214, 240, 214, 999, 216, 556,
1389 214, 998, 214, 241, 997, 216, 216, 990, 216, 986,
1390 241, 239, 216, 978, 216, 977, 240, 241, 239, 239,
1391 976, 239, 975, 240, 240, 239, 240, 239, 968, 965,
1392 240, 957, 240, 387, 387, 387, 956, 955, 241, 392,
1393 392, 392, 393, 393, 393, 241, 241, 954, 241, 387,
1394 944, 941, 241, 940, 241, 392, 938, 926, 393, 394,
1395 394, 394, 395, 395, 395, 925, 395, 921, 919, 395,
1396 396, 396, 396, 915, 394, 397, 397, 397, 399, 399,
1397 399, 400, 400, 400, 387, 400, 396, 914, 400, 895,
1398 894, 397, 889, 399, 888, 887, 393, 404, 404, 404,
1400 405, 405, 405, 406, 406, 406, 408, 408, 408, 409,
1401 409, 409, 879, 404, 878, 877, 405, 853, 406, 851,
1402 850, 408, 410, 410, 410, 409, 397, 412, 412, 412,
1403 413, 413, 413, 849, 413, 848, 843, 413, 410, 414,
1404 414, 414, 412, 415, 415, 415, 405, 420, 420, 420,
1405 421, 421, 421, 841, 840, 414, 424, 424, 424, 415,
1406 425, 425, 425, 420, 839, 838, 421, 443, 443, 443,
1407 831, 821, 424, 410, 815, 814, 425, 444, 444, 444,
1408 446, 446, 446, 443, 461, 461, 461, 813, 812, 415,
1409 462, 462, 462, 444, 811, 810, 446, 809, 808, 461,
1411 463, 463, 463, 801, 421, 800, 462, 465, 465, 465,
1412 474, 474, 474, 799, 425, 798, 463, 797, 446, 796,
1413 467, 467, 467, 465, 467, 795, 474, 467, 475, 475,
1414 475, 794, 477, 477, 477, 479, 479, 479, 784, 479,
1415 783, 775, 479, 773, 475, 771, 770, 465, 477, 483,
1416 483, 483, 484, 484, 484, 486, 486, 486, 767, 487,
1417 487, 487, 764, 487, 763, 483, 487, 760, 484, 759,
1418 756, 486, 490, 490, 490, 491, 491, 491, 493, 493,
1419 493, 754, 495, 495, 495, 751, 495, 477, 490, 495,
1420 750, 491, 749, 742, 493, 501, 501, 501, 502, 502,
1422 502, 504, 504, 504, 741, 739, 486, 505, 505, 505,
1423 737, 501, 736, 733, 502, 729, 724, 504, 722, 506,
1424 506, 506, 505, 506, 721, 720, 506, 508, 508, 508,
1425 509, 509, 509, 718, 509, 493, 716, 509, 510, 510,
1426 510, 713, 508, 511, 511, 511, 513, 513, 513, 712,
1427 711, 504, 709, 707, 510, 698, 515, 515, 515, 511,
1428 515, 697, 513, 515, 518, 518, 518, 519, 519, 519,
1429 521, 521, 521, 523, 523, 523, 526, 526, 526, 696,
1430 518, 691, 690, 519, 689, 687, 521, 685, 523, 527,
1431 527, 527, 526, 529, 529, 529, 532, 532, 532, 533,
1433 533, 533, 681, 513, 680, 527, 535, 535, 535, 529,
1434 679, 678, 532, 677, 675, 533, 538, 538, 538, 674,
1435 521, 672, 535, 546, 546, 546, 562, 562, 562, 564,
1436 564, 564, 538, 538, 667, 663, 563, 563, 563, 546,
1437 563, 562, 661, 563, 529, 564, 568, 568, 568, 660,
1438 535, 569, 569, 569, 570, 570, 570, 572, 572, 572,
1439 656, 568, 573, 573, 573, 654, 569, 574, 574, 574,
1440 570, 652, 572, 650, 578, 578, 578, 564, 573, 546,
1441 579, 579, 579, 574, 647, 587, 587, 587, 569, 578,
1442 580, 580, 580, 646, 580, 645, 579, 580, 584, 584,
1444 584, 587, 584, 638, 633, 584, 588, 588, 588, 632,
1445 570, 578, 631, 625, 573, 589, 589, 589, 588, 591,
1446 591, 591, 623, 574, 595, 595, 595, 579, 592, 592,
1447 592, 589, 592, 617, 591, 592, 597, 597, 597, 616,
1448 595, 587, 598, 598, 598, 602, 602, 602, 619, 619,
1449 619, 597, 610, 610, 610, 621, 621, 621, 598, 615,
1450 613, 602, 589, 611, 595, 622, 622, 622, 610, 624,
1451 624, 624, 626, 626, 626, 627, 627, 627, 608, 627,
1452 607, 604, 627, 601, 630, 630, 630, 602, 599, 634,
1453 634, 634, 639, 639, 639, 610, 636, 636, 636, 598,
1455 630, 596, 619, 602, 634, 635, 635, 635, 639, 635,
1456 594, 636, 635, 637, 637, 637, 593, 637, 590, 622,
1457 637, 583, 577, 624, 576, 575, 626, 640, 640, 640,
1458 641, 641, 641, 642, 642, 642, 567, 642, 566, 565,
1459 642, 630, 643, 643, 643, 641, 644, 644, 644, 648,
1460 648, 648, 649, 649, 649, 561, 649, 560, 643, 649,
1461 559, 558, 644, 557, 648, 651, 651, 651, 653, 653,
1462 653, 655, 655, 655, 554, 657, 657, 657, 552, 657,
1463 551, 651, 657, 655, 653, 549, 547, 655, 644, 662,
1464 662, 662, 664, 664, 664, 665, 665, 665, 545, 665,
1466 544, 543, 665, 542, 541, 662, 536, 664, 531, 530,
1467 653, 666, 666, 666, 673, 673, 673, 676, 676, 676,
1468 682, 682, 682, 683, 683, 683, 525, 666, 524, 673,
1469 522, 662, 514, 676, 684, 684, 684, 686, 686, 686,
1470 688, 688, 688, 692, 692, 692, 507, 692, 500, 499,
1471 692, 695, 695, 695, 498, 695, 688, 494, 695, 482,
1472 666, 699, 699, 699, 473, 701, 701, 701, 676, 701,
1473 472, 471, 701, 704, 704, 704, 470, 699, 706, 706,
1474 706, 688, 708, 708, 708, 466, 710, 710, 710, 704,
1475 710, 460, 459, 710, 706, 458, 456, 708, 714, 714,
1477 714, 717, 717, 717, 719, 719, 719, 723, 723, 723,
1478 455, 725, 725, 725, 714, 725, 454, 717, 725, 708,
1479 719, 453, 451, 723, 728, 728, 728, 734, 734, 734,
1480 450, 449, 706, 448, 735, 735, 735, 447, 735, 442,
1481 728, 735, 734, 441, 719, 738, 738, 738, 740, 740,
1482 740, 743, 743, 743, 744, 744, 744, 745, 745, 745,
1483 440, 738, 723, 746, 746, 746, 728, 747, 747, 747,
1484 748, 748, 748, 755, 755, 755, 757, 757, 757, 439,
1485 758, 758, 758, 436, 758, 435, 748, 758, 434, 755,
1486 432, 757, 765, 765, 765, 768, 768, 768, 428, 738,
1488 769, 769, 769, 772, 772, 772, 426, 423, 765, 422,
1489 419, 768, 748, 418, 417, 769, 774, 774, 774, 772,
1490 776, 776, 776, 779, 779, 779, 780, 780, 780, 416,
1491 780, 411, 774, 780, 407, 403, 776, 785, 785, 785,
1492 786, 786, 786, 787, 787, 787, 788, 788, 788, 402,
1493 401, 768, 398, 785, 789, 789, 789, 391, 772, 790,
1494 790, 790, 791, 791, 791, 388, 774, 792, 792, 792,
1495 385, 793, 793, 793, 802, 802, 802, 804, 804, 804,
1496 384, 805, 805, 805, 383, 805, 785, 793, 805, 382,
1497 802, 379, 804, 816, 816, 816, 817, 817, 817, 376,
1499 818, 818, 818, 819, 819, 819, 375, 819, 374, 373,
1500 819, 372, 817, 371, 804, 818, 820, 820, 820, 822,
1501 822, 822, 823, 823, 823, 824, 824, 824, 826, 826,
1502 826, 820, 829, 829, 829, 822, 830, 830, 830, 370,
1503 369, 824, 368, 367, 826, 366, 817, 832, 832, 832,
1504 365, 830, 833, 833, 833, 834, 834, 834, 835, 835,
1505 835, 364, 363, 832, 362, 359, 836, 836, 836, 845,
1506 845, 845, 846, 846, 846, 358, 855, 855, 855, 357,
1507 826, 824, 836, 355, 845, 354, 353, 846, 847, 847,
1508 847, 855, 847, 352, 351, 847, 857, 857, 857, 858,
1510 858, 858, 859, 859, 859, 347, 859, 345, 344, 859,
1511 862, 862, 862, 343, 342, 858, 863, 863, 863, 341,
1512 863, 340, 337, 863, 336, 862, 864, 864, 864, 865,
1513 865, 865, 867, 867, 867, 868, 868, 868, 872, 872,
1514 872, 864, 873, 873, 873, 865, 873, 335, 334, 873,
1515 333, 868, 332, 872, 874, 874, 874, 875, 875, 875,
1516 882, 882, 882, 883, 883, 883, 329, 883, 325, 874,
1517 883, 324, 323, 875, 322, 882, 884, 884, 884, 321,
1518 884, 318, 317, 884, 892, 892, 892, 893, 893, 893,
1519 316, 893, 315, 313, 893, 896, 896, 896, 310, 892,
1521 898, 898, 898, 306, 898, 305, 300, 898, 901, 901,
1522 901, 896, 902, 902, 902, 299, 902, 298, 297, 902,
1523 903, 903, 903, 901, 908, 908, 908, 296, 908, 294,
1524 291, 908, 911, 911, 911, 290, 903, 912, 912, 912,
1525 287, 912, 286, 285, 912, 283, 282, 911, 913, 913,
1526 913, 916, 916, 916, 281, 916, 280, 278, 916, 920,
1527 920, 920, 277, 913, 922, 922, 922, 276, 922, 275,
1528 274, 922, 273, 272, 920, 927, 927, 927, 269, 927,
1529 268, 267, 927, 266, 265, 913, 932, 932, 932, 933,
1530 933, 933, 259, 933, 258, 256, 933, 936, 936, 936,
1532 253, 932, 932, 937, 937, 937, 252, 937, 248, 244,
1533 937, 236, 936, 942, 942, 942, 943, 943, 943, 235,
1534 943, 234, 233, 943, 945, 945, 945, 229, 942, 946,
1535 946, 946, 948, 948, 948, 949, 949, 949, 223, 945,
1536 958, 958, 958, 219, 946, 211, 210, 948, 948, 209,
1537 949, 949, 950, 950, 950, 958, 950, 205, 197, 950,
1538 196, 945, 195, 951, 951, 951, 946, 951, 950, 191,
1539 951, 959, 959, 959, 185, 959, 181, 175, 959, 962,
1540 962, 962, 963, 963, 963, 964, 964, 964, 174, 964,
1541 170, 162, 964, 161, 962, 160, 158, 963, 966, 966,
1543 966, 967, 967, 967, 154, 967, 148, 144, 967, 970,
1544 970, 970, 134, 966, 971, 971, 971, 133, 971, 129,
1545 125, 971, 124, 123, 970, 970, 117, 972, 972, 972,
1546 971, 972, 116, 114, 972, 111, 99, 0, 979, 979,
1547 979, 0, 0, 972, 973, 973, 973, 973, 973, 973,
1548 973, 973, 973, 979, 0, 973, 0, 0, 973, 973,
1549 973, 973, 973, 980, 980, 980, 0, 980, 0, 0,
1550 980, 0, 0, 0, 0, 0, 981, 981, 981, 0,
1551 973, 973, 974, 974, 974, 974, 974, 974, 974, 974,
1552 974, 981, 0, 974, 0, 0, 974, 974, 974, 974,
1554 974, 982, 982, 982, 0, 982, 0, 0, 982, 983,
1555 983, 983, 0, 983, 0, 0, 983, 0, 974, 974,
1556 987, 987, 987, 0, 987, 0, 0, 987, 992, 992,
1557 992, 0, 992, 0, 0, 992, 1001, 1001, 1001, 0,
1558 1001, 0, 0, 1001, 992, 995, 995, 995, 995, 995,
1559 995, 995, 995, 995, 0, 0, 995, 0, 0, 995,
1560 995, 995, 995, 995, 1004, 1004, 1004, 0, 1004, 0,
1561 0, 1004, 0, 0, 0, 0, 1015, 1015, 1015, 0,
1562 0, 995, 995, 996, 996, 996, 996, 996, 996, 996,
1563 996, 996, 1015, 1015, 996, 0, 0, 996, 996, 996,
1565 996, 996, 1016, 1016, 1016, 0, 1017, 1017, 1017, 1018,
1566 1018, 1018, 1019, 1019, 1019, 0, 0, 1016, 0, 996,
1567 996, 1017, 0, 0, 1018, 0, 0, 1019, 1026, 1026,
1568 1026, 1030, 1030, 1030, 1031, 1031, 1031, 0, 1032, 1032,
1569 1032, 0, 1032, 0, 1026, 1032, 1018, 1030, 0, 1031,
1570 1033, 1033, 1033, 1034, 1034, 1034, 0, 1034, 0, 0,
1571 1034, 1035, 1035, 1035, 0, 1033, 0, 1036, 1036, 1036,
1572 0, 1036, 0, 1030, 1036, 0, 1035, 1038, 1038, 1038,
1573 1039, 1039, 1039, 0, 1039, 0, 0, 1039, 1046, 1046,
1574 1046, 0, 1038, 1048, 1048, 1048, 0, 1048, 0, 0,
1576 1048, 1051, 1051, 1051, 1046, 1051, 0, 0, 1051, 1054,
1577 1054, 1054, 0, 1054, 0, 0, 1054, 1058, 1058, 1058,
1578 1046, 1058, 0, 0, 1058, 1085, 1085, 1085, 1093, 1093,
1579 1093, 1094, 1094, 1094, 0, 1094, 0, 0, 1094, 0,
1580 1085, 0, 0, 1093, 1102, 1102, 1102, 0, 1102, 0,
1581 0, 1102, 1109, 1109, 1109, 1112, 1112, 1112, 0, 1112,
1582 0, 0, 1112, 1125, 1125, 1125, 0, 0, 1109, 0,
1583 0, 1112, 1126, 1126, 1126, 1129, 1129, 1129, 1125, 1130,
1584 1130, 1130, 0, 1130, 0, 0, 1130, 1126, 0, 0,
1585 1129, 1131, 1131, 1131, 1132, 1132, 1132, 0, 1132, 0,
1587 0, 1132, 0, 1135, 1135, 1135, 1131, 1135, 0, 0,
1588 1135, 1138, 1138, 1138, 0, 1138, 0, 0, 1138, 1155,
1589 1155, 1155, 1156, 1156, 1156, 0, 0, 0, 0, 0,
1590 0, 0, 0, 0, 0, 1155, 0, 0, 1156, 1159,
1591 1159, 1159, 1159, 1159, 1159, 1159, 1160, 1160, 1160, 1160,
1592 1160, 1160, 1160, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
1593 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1163, 1163, 1163,
1594 1163, 1163, 1163, 1163, 1164, 1164, 1164, 1164, 1164, 1164,
1595 1164, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1166, 1166,
1596 1166, 1166, 1166, 1166, 1166, 1167, 1167, 1167, 1167, 1167,
1598 1167, 1167, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1169,
1599 1169, 1169, 1169, 1169, 1169, 1169, 1170, 1170, 1170, 1170,
1600 1170, 1170, 1170, 1171, 1171, 1171, 1171, 1171, 1171, 1171,
1601 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1173, 1173, 1173,
1602 1173, 1173, 1173, 1173, 1174, 1174, 1174, 1174, 1174, 1174,
1603 1174, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1176, 1176,
1604 1176, 1176, 1176, 1176, 1176, 1177, 1177, 1177, 1177, 1177,
1605 1177, 1177, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179,
1606 1179, 1179, 1179, 1179, 1179, 1179, 1180, 1180, 1180, 1180,
1607 1180, 1180, 1180, 1181, 1181, 1181, 1181, 1181, 1181, 1181,
1609 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1183, 1183, 1183,
1610 1183, 1183, 1183, 1183, 1184, 1184, 1184, 1184, 1184, 1184,
1611 1184, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1186, 1186,
1612 1186, 1186, 1186, 1186, 1186, 1187, 1187, 1187, 0, 1187,
1613 1188, 1188, 1188, 0, 1188, 1189, 1189, 1189, 0, 1189,
1614 1190, 1190, 1190, 0, 1190, 1191, 1191, 1191, 0, 1191,
1615 1192, 1192, 1192, 0, 1192, 1193, 1193, 1193, 0, 1193,
1616 1194, 1194, 1194, 0, 1194, 1195, 1195, 1195, 0, 1195,
1617 1196, 1196, 1196, 0, 1196, 1197, 1197, 1197, 1197, 1197,
1618 0, 1197, 1198, 0, 1198, 1199, 0, 1199, 1200, 0,
1620 1200, 1201, 0, 1201, 1202, 0, 1202, 1203, 0, 1203,
1621 1204, 0, 1204, 1205, 0, 1205, 1206, 0, 1206, 1207,
1622 0, 1207, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1209,
1623 0, 0, 1209, 1210, 1210, 1210, 1210, 1210, 1210, 1211,
1624 1211, 1211, 1211, 1211, 1211, 1212, 1212, 1212, 1212, 1212,
1625 1212, 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214, 1214,
1626 1214, 1214, 1214, 1215, 1215, 1215, 1215, 1215, 1215, 1216,
1627 1216, 1216, 1216, 1216, 1216, 1217, 1217, 1217, 1217, 1217,
1628 1217, 1218, 1218, 1218, 1218, 1218, 1218, 1219, 1219, 1219,
1629 1219, 1219, 1219, 1220, 1220, 1220, 1220, 1220, 1220, 1220,
1631 1221, 1221, 1221, 1221, 1221, 1221, 1221, 1222, 1222, 1222,
1632 1222, 1222, 1222, 1222, 1223, 1223, 1223, 1223, 1223, 1223,
1633 1223, 1224, 1224, 1224, 1224, 1224, 1224, 1224, 1225, 1225,
1634 1225, 1225, 1225, 1225, 1225, 1226, 1226, 1226, 1226, 1226,
1635 1226, 1226, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1636 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1637 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1638 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1639 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1640 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158,
1642 1158, 1158, 1158, 1158, 1158, 1158
1645 /* Table of booleans, true if rule could match eol. */
1646 static yyconst flex_int32_t yy_rule_can_match_eol[208] =
1648 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,
1649 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1,
1650 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1651 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0,
1652 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1,
1653 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0,
1654 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1655 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1,
1656 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0,
1657 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0,
1658 0, 0, 1, 0, 0, 0, 1, 0, };
1660 static yy_state_type yy_last_accepting_state;
1661 static char *yy_last_accepting_cpos;
1663 extern int surf_parse__flex_debug;
1664 int surf_parse__flex_debug = 0;
1666 /* The intent behind this definition is that it'll catch
1667 * any uses of REJECT which flex missed.
1669 #define REJECT reject_used_but_not_detected
1670 #define yymore() yymore_used_but_not_detected
1671 #define YY_MORE_ADJ 0
1672 #define YY_RESTORE_YY_MORE_OFFSET
1673 char *surf_parse_text;
1674 /* Validating XML processor for surf/surfxml.dtd.
1675 * Generated 2007/11/08 11:56:22.
1677 * This program was generated with the FleXML XML processor generator.
1678 * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved.
1679 * FleXML is Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1680 * (Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp).
1682 * There are two, intertwined parts to this program, part A and part B.
1687 * Some parts, here collectively called "Part A", are found in the
1688 * FleXML package. They are Copyright (C) 1999-2005 Kristoffer Rose
1689 * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1691 * You can redistribute, use, perform, display and/or modify "Part A"
1692 * provided the following two conditions hold:
1694 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1695 * FleXML; without even the implied warranty of MERCHANTABILITY or
1696 * FITNESS FOR A PARTICULAR PURPOSE.
1698 * 2. The program distribution conditions do not in any way affect the
1699 * distribution conditions of the FleXML system used to generate this
1700 * file or any version of FleXML derived from that system.
1702 * Notice that these are explicit rights granted to you for files
1703 * generated by the FleXML system. For your rights in connection with
1704 * the FleXML system itself please consult the GNU General Public License.
1709 * The other parts, here collectively called "Part B", and which came
1710 * from the DTD used by FleXML to generate this program, can be
1711 * distributed (or not, as the case may be) under the terms of whoever
1712 * wrote them, provided these terms respect and obey the two conditions
1713 * above under the heading "Part A".
1715 * The author of and contributors to FleXML specifically disclaim
1716 * any copyright interest in "Part B", unless "Part B" was written
1717 * by the author of or contributors to FleXML.
1721 /* Version strings. */
1722 const char rcs_surfxml_flexml_skeleton[] =
1723 "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
1724 const char rcs_surfxml_flexml[] =
1725 "$" "Id: flexml.pl,v 1.63 2007/10/11 14:46:08 mquinson Exp $";
1728 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
1735 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
1736 # ifndef __STRICT_ANSI__
1738 # include <process.h>
1741 # include <unistd.h>
1744 #ifndef FLEXML_INDEXSTACKSIZE
1745 #define FLEXML_INDEXSTACKSIZE 1000
1748 /* Generated definitions. */
1749 #define FLEXML_yylineno
1750 #ifndef FLEXML_BUFFERSTACKSIZE
1751 #define FLEXML_BUFFERSTACKSIZE 1000000
1753 #define FLEXML_NEED_BUFFERLIT
1755 /* XML processor api. */
1756 /* FleXML-provided data. */
1757 int surfxml_pcdata_ix;
1758 extern char *surfxml_bufferstack;
1759 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
1760 AT_surfxml_link_id AX_surfxml_link_id;
1761 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
1762 AT_surfxml_prop_id AX_surfxml_prop_id;
1763 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
1764 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
1765 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
1766 AT_surfxml_host_id AX_surfxml_host_id;
1767 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
1768 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
1769 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
1770 AT_surfxml_process_host AX_surfxml_process_host;
1771 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
1772 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
1773 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
1774 AT_surfxml_host_state AX_surfxml_host_state;
1775 #define A_surfxml_host_state AX_surfxml_host_state
1776 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
1777 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
1778 AT_surfxml_route_impact_on_dst_with_other_send AX_surfxml_route_impact_on_dst_with_other_send;
1779 #define A_surfxml_route_impact_on_dst_with_other_send (surfxml_bufferstack + AX_surfxml_route_impact_on_dst_with_other_send)
1780 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
1781 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
1782 AT_surfxml_route_impact_on_dst AX_surfxml_route_impact_on_dst;
1783 #define A_surfxml_route_impact_on_dst (surfxml_bufferstack + AX_surfxml_route_impact_on_dst)
1784 AT_surfxml_prop_value AX_surfxml_prop_value;
1785 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
1786 AT_surfxml_route_impact_on_src_with_other_recv AX_surfxml_route_impact_on_src_with_other_recv;
1787 #define A_surfxml_route_impact_on_src_with_other_recv (surfxml_bufferstack + AX_surfxml_route_impact_on_src_with_other_recv)
1788 AT_surfxml_host_power AX_surfxml_host_power;
1789 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
1790 AT_surfxml_link_state_file AX_surfxml_link_state_file;
1791 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
1792 AT_surfxml_router_id AX_surfxml_router_id;
1793 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
1794 AT_surfxml_process_start_time AX_surfxml_process_start_time;
1795 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
1796 AT_surfxml_platform_xmlns_c_route AX_surfxml_platform_xmlns_c_route;
1797 #define A_surfxml_platform_xmlns_c_route (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_route)
1798 AT_surfxml_process_function AX_surfxml_process_function;
1799 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
1800 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
1801 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
1802 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
1803 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
1804 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
1805 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
1806 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
1807 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
1808 AT_surfxml_host_availability AX_surfxml_host_availability;
1809 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
1810 AT_surfxml_argument_value AX_surfxml_argument_value;
1811 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
1812 AT_surfxml_link_state AX_surfxml_link_state;
1813 #define A_surfxml_link_state AX_surfxml_link_state
1814 AT_surfxml_route_src AX_surfxml_route_src;
1815 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
1816 AT_surfxml_route_impact_on_src AX_surfxml_route_impact_on_src;
1817 #define A_surfxml_route_impact_on_src (surfxml_bufferstack + AX_surfxml_route_impact_on_src)
1818 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
1819 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
1820 AT_surfxml_link_latency AX_surfxml_link_latency;
1821 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
1822 AT_surfxml_platform_xmlns_c_link AX_surfxml_platform_xmlns_c_link;
1823 #define A_surfxml_platform_xmlns_c_link (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_link)
1824 AT_surfxml_include_file AX_surfxml_include_file;
1825 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
1826 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
1827 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
1828 AT_surfxml_host_state_file AX_surfxml_host_state_file;
1829 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
1830 AT_surfxml_route_dst AX_surfxml_route_dst;
1831 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
1832 AT_surfxml_platform_version AX_surfxml_platform_version;
1833 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
1837 # define ENTER(state) debug_enter(state,#state)
1838 # define LEAVE debug_leave()
1839 # define SET(state) debug_set(state,#state)
1840 static void debug_enter(int, const char*);
1841 static void debug_leave(void);
1842 static void debug_set(int, const char*);
1844 # define ENTER(state) (yy_push_state(state))
1845 # define LEAVE (yy_pop_state())
1846 # define SET(state) BEGIN(state)
1849 /* Generic actions. */
1850 #define SKIP /*skip*/
1851 #define SUCCEED CLEANUP; return 0
1853 #define FAIL return fail
1854 static int fail(const char*, ...);
1856 enum {flexml_max_err_msg_size = 512};
1857 static char flexml_err_msg[flexml_max_err_msg_size];
1858 const char * surfxml_parse_err_msg()
1860 return flexml_err_msg;
1862 static void reset_surfxml_parse_err_msg()
1864 flexml_err_msg[0] = '\0';
1868 static void cleanup(void);
1869 #define CLEANUP cleanup()
1871 /* Text buffer stack handling. */
1872 char *surfxml_bufferstack = NULL;
1873 static int blimit = FLEXML_BUFFERSTACKSIZE;
1874 static int bnext = 1;
1876 static int *indexstack = NULL;
1877 static int ilimit = FLEXML_INDEXSTACKSIZE;
1878 static int inext = 1;
1880 #define BUFFERSET(P) (P = bnext)
1881 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
1882 #define BUFFERDONE (BUFFERPUTC('\0'))
1884 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
1886 /* after this is called, there are at least 2 slots left in the stack */
1887 static int ck_blimit()
1889 if (bnext >= blimit) {
1890 blimit += FLEXML_BUFFERSTACKSIZE + 2;
1892 char *temp = (char *) realloc(surfxml_bufferstack, blimit);
1894 surfxml_bufferstack = temp;
1900 /* after this is called, there are at least 2 slots left in the stack */
1901 static int ck_ilimit()
1903 if (inext >= ilimit) {
1904 ilimit += FLEXML_INDEXSTACKSIZE + 2;
1906 int *temp = (int *) realloc(indexstack, ilimit);
1914 #ifdef FLEXML_NEED_BUFFERLIT
1915 static void surfxml_bufferliteral(char c, int* pp, const char* text)
1917 const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
1918 assert(s <= e); BUFFERSET(*pp);
1920 if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
1921 else BUFFERPUTC(*s);
1927 static void pushbuffer(int p)
1930 indexstack[inext++] = p;
1931 indexstack[inext++] = bnext;
1934 static int popbuffer(void)
1937 bnext = indexstack[--inext];
1938 return indexstack[--inext];
1941 /* General internal entities are `unput' back onto the input stream... */
1942 #define ENTITYTEXT(T) \
1943 { char *s = (T), *e = s+strlen(s);\
1944 while (--e >= s) { unput(*e); }}
1946 /* Flex standard options. */
1947 #define YY_NO_INPUT 1
1948 /* Flex user-requested options. */
1949 /* XML character classes (currently restricted to ASCII). */
1950 /* "Common syntactic structures." */
1951 /* "Names and Tokens." */
1952 /* Miscellaneous. */
1953 /* Parser states (flex `exclusive start conditions'):
1955 * PROLOG the XML prolog of the document before <?xml...>
1956 * DOCTYPE the XML prolog of the document after <?xml...>
1957 * EPILOG after the root element
1958 * INCOMMENT inside an XML comment <!--....-->
1959 * INPI inside an XML PI <?...?>
1960 * VALUE1 inside a '...'-delimited literal
1961 * VALUE2 inside a "..."-delimited literal
1962 * CDATA inside a <![CDATA[...] ]> section.
1963 * ROOT_<tag> expect root element <tag>
1964 * AL_<tag> inside the attribute list for <tag>
1965 * IN_<tag> inside a <tag> with element contents (ready for end tag)
1966 * IMPOSSIBLE dummy to permit disabling rules; must be last
1970 const char* *surfxml_statenames=NULL;
1981 #define ROOT_surfxml_platform 9
1982 #define AL_surfxml_platform 10
1983 #define S_surfxml_platform 11
1984 #define S_surfxml_platform_1 12
1985 #define S_surfxml_platform_2 13
1986 #define S_surfxml_platform_3 14
1987 #define S_surfxml_platform_4 15
1988 #define S_surfxml_platform_5 16
1989 #define E_surfxml_platform 17
1990 #define AL_surfxml_include 18
1991 #define E_surfxml_include 19
1992 #define AL_surfxml_host 20
1993 #define S_surfxml_host 21
1994 #define S_surfxml_host_1 22
1995 #define S_surfxml_host_2 23
1996 #define E_surfxml_host 24
1997 #define AL_surfxml_prop 25
1998 #define E_surfxml_prop 26
1999 #define AL_surfxml_router 27
2000 #define E_surfxml_router 28
2001 #define AL_surfxml_link 29
2002 #define S_surfxml_link 30
2003 #define S_surfxml_link_1 31
2004 #define S_surfxml_link_2 32
2005 #define E_surfxml_link 33
2006 #define AL_surfxml_route 34
2007 #define S_surfxml_route 35
2008 #define S_surfxml_route_1 36
2009 #define S_surfxml_route_2 37
2010 #define E_surfxml_route 38
2011 #define AL_surfxml_link_c_ctn 39
2012 #define E_surfxml_link_c_ctn 40
2013 #define AL_surfxml_process 41
2014 #define S_surfxml_process 42
2015 #define S_surfxml_process_1 43
2016 #define S_surfxml_process_2 44
2017 #define E_surfxml_process 45
2018 #define AL_surfxml_argument 46
2019 #define E_surfxml_argument 47
2020 #define IMPOSSIBLE 48
2022 #ifndef YY_NO_UNISTD_H
2023 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2024 * down here because we want the user's section 1 to have been scanned first.
2025 * The user has a chance to override it with an option.
2027 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2028 # ifndef __STRICT_ANSI__
2030 # include <process.h>
2033 # include <unistd.h>
2037 #ifndef YY_EXTRA_TYPE
2038 #define YY_EXTRA_TYPE void *
2041 static int yy_init_globals (void );
2043 /* Macros after this point can all be overridden by user definitions in
2047 #ifndef YY_SKIP_YYWRAP
2049 extern "C" int surf_parse_wrap (void );
2051 extern int surf_parse_wrap (void );
2056 static void yy_flex_strncpy (char *,yyconst char *,int );
2059 #ifdef YY_NEED_STRLEN
2060 static int yy_flex_strlen (yyconst char * );
2066 static int yyinput (void );
2068 static int input (void );
2073 static int yy_start_stack_ptr = 0;
2074 static int yy_start_stack_depth = 0;
2075 static int *yy_start_stack = NULL;
2077 static void yy_push_state (int new_state );
2079 static void yy_pop_state (void );
2081 /* Amount of stuff to slurp up with each read. */
2082 #ifndef YY_READ_BUF_SIZE
2083 #define YY_READ_BUF_SIZE 8192
2086 /* Copy whatever the last rule matched to the standard output. */
2088 /* This used to be an fputs(), but since the string might contain NUL's,
2089 * we now use fwrite().
2091 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
2094 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2095 * is returned in "result".
2098 #define YY_INPUT(buf,result,max_size) \
2099 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2103 for ( n = 0; n < max_size && \
2104 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
2105 buf[n] = (char) c; \
2107 buf[n++] = (char) c; \
2108 if ( c == EOF && ferror( surf_parse_in ) ) \
2109 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2115 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2117 if( errno != EINTR) \
2119 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2123 clearerr(surf_parse_in); \
2130 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2131 * we don't want an extra ';' after the "return" because that will cause
2132 * some compilers to complain about unreachable statements.
2135 #define yyterminate() return YY_NULL
2138 /* Number of entries by which start-condition stack grows. */
2139 #ifndef YY_START_STACK_INCR
2140 #define YY_START_STACK_INCR 25
2143 /* Report a fatal error. */
2144 #ifndef YY_FATAL_ERROR
2145 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2148 /* end tables serialization structures and prototypes */
2150 /* Default declaration of generated scanner - a define so the user can
2151 * easily add parameters.
2154 #define YY_DECL_IS_OURS 1
2156 extern int surf_parse_lex (void);
2158 #define YY_DECL int surf_parse_lex (void)
2159 #endif /* !YY_DECL */
2161 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2164 #ifndef YY_USER_ACTION
2165 #define YY_USER_ACTION
2168 /* Code executed at the end of each rule. */
2170 #define YY_BREAK break;
2173 #define YY_RULE_SETUP \
2176 /** The main scanner function which does all the work.
2180 register yy_state_type yy_current_state;
2181 register char *yy_cp, *yy_bp;
2182 register int yy_act;
2184 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
2186 reset_surfxml_parse_err_msg();
2187 surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
2188 assert(surfxml_bufferstack);
2192 for (i = 0; i < blimit; i++) {
2193 surfxml_bufferstack[i] = '\377';
2197 surfxml_bufferstack[0] = '\0';
2198 indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
2204 surfxml_bufferliteral('\0', &bnext, "0.0");
2205 surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
2206 surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
2207 surfxml_bufferliteral('\0', &bnext, "1.0");
2208 surfxml_bufferliteral('\0', &bnext, "1.0");
2209 surfxml_bufferliteral('\0', &bnext, "1.0");
2210 surfxml_bufferliteral('\0', &bnext, "1.0");
2211 surfxml_bufferliteral('\0', &bnext, "-1.0");
2212 surfxml_bufferliteral('\0', &bnext, "0.0");
2213 surfxml_bufferliteral('\0', &bnext, "0.0");
2214 surfxml_bufferliteral('\0', &bnext, "0.0");
2215 surfxml_bufferliteral('\0', &bnext, "0.0");
2216 surfxml_bufferliteral('\0', &bnext, "0.0");
2217 surfxml_bufferliteral('\0', &bnext, "-1.0");
2218 surfxml_bufferliteral('\0', &bnext, "-1.0");
2219 if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
2220 surfxml_statenames[PROLOG] = NULL;
2221 surfxml_statenames[DOCTYPE] = NULL;
2222 surfxml_statenames[EPILOG] = NULL;
2223 surfxml_statenames[INCOMMENT] = NULL;
2224 surfxml_statenames[INPI] = NULL;
2225 surfxml_statenames[VALUE1] = NULL;
2226 surfxml_statenames[VALUE2] = NULL;
2227 surfxml_statenames[CDATA] = NULL;
2228 surfxml_statenames[ROOT_surfxml_platform] = NULL;
2229 surfxml_statenames[AL_surfxml_platform] = NULL;
2230 surfxml_statenames[S_surfxml_platform] = "platform";
2231 surfxml_statenames[S_surfxml_platform_1] = "platform";
2232 surfxml_statenames[S_surfxml_platform_2] = "platform";
2233 surfxml_statenames[S_surfxml_platform_3] = "platform";
2234 surfxml_statenames[S_surfxml_platform_4] = "platform";
2235 surfxml_statenames[S_surfxml_platform_5] = "platform";
2236 surfxml_statenames[E_surfxml_platform] = "platform";
2237 surfxml_statenames[AL_surfxml_include] = NULL;
2238 surfxml_statenames[E_surfxml_include] = "include";
2239 surfxml_statenames[AL_surfxml_host] = NULL;
2240 surfxml_statenames[S_surfxml_host] = "host";
2241 surfxml_statenames[S_surfxml_host_1] = "host";
2242 surfxml_statenames[S_surfxml_host_2] = "host";
2243 surfxml_statenames[E_surfxml_host] = "host";
2244 surfxml_statenames[AL_surfxml_prop] = NULL;
2245 surfxml_statenames[E_surfxml_prop] = "prop";
2246 surfxml_statenames[AL_surfxml_router] = NULL;
2247 surfxml_statenames[E_surfxml_router] = "router";
2248 surfxml_statenames[AL_surfxml_link] = NULL;
2249 surfxml_statenames[S_surfxml_link] = "link";
2250 surfxml_statenames[S_surfxml_link_1] = "link";
2251 surfxml_statenames[S_surfxml_link_2] = "link";
2252 surfxml_statenames[E_surfxml_link] = "link";
2253 surfxml_statenames[AL_surfxml_route] = NULL;
2254 surfxml_statenames[S_surfxml_route] = "route";
2255 surfxml_statenames[S_surfxml_route_1] = "route";
2256 surfxml_statenames[S_surfxml_route_2] = "route";
2257 surfxml_statenames[E_surfxml_route] = "route";
2258 surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
2259 surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
2260 surfxml_statenames[AL_surfxml_process] = NULL;
2261 surfxml_statenames[S_surfxml_process] = "process";
2262 surfxml_statenames[S_surfxml_process_1] = "process";
2263 surfxml_statenames[S_surfxml_process_2] = "process";
2264 surfxml_statenames[E_surfxml_process] = "process";
2265 surfxml_statenames[AL_surfxml_argument] = NULL;
2266 surfxml_statenames[E_surfxml_argument] = "argument";
2269 /* COMMENTS and PIs: handled uniformly for efficiency. */
2280 (yy_start) = 1; /* first start state */
2282 if ( ! surf_parse_in )
2283 surf_parse_in = stdin;
2285 if ( ! surf_parse_out )
2286 surf_parse_out = stdout;
2288 if ( ! YY_CURRENT_BUFFER ) {
2289 surf_parse_ensure_buffer_stack ();
2290 YY_CURRENT_BUFFER_LVALUE =
2291 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
2294 surf_parse__load_buffer_state( );
2297 while ( 1 ) /* loops until end-of-file is reached */
2299 yy_cp = (yy_c_buf_p);
2301 /* Support of surf_parse_text. */
2302 *yy_cp = (yy_hold_char);
2304 /* yy_bp points to the position in yy_ch_buf of the start of
2309 yy_current_state = (yy_start);
2313 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2314 if ( yy_accept[yy_current_state] )
2316 (yy_last_accepting_state) = yy_current_state;
2317 (yy_last_accepting_cpos) = yy_cp;
2319 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2321 yy_current_state = (int) yy_def[yy_current_state];
2322 if ( yy_current_state >= 1159 )
2323 yy_c = yy_meta[(unsigned int) yy_c];
2325 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2328 while ( yy_base[yy_current_state] != 3543 );
2331 yy_act = yy_accept[yy_current_state];
2333 { /* have to back up */
2334 yy_cp = (yy_last_accepting_cpos);
2335 yy_current_state = (yy_last_accepting_state);
2336 yy_act = yy_accept[yy_current_state];
2339 YY_DO_BEFORE_ACTION;
2341 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2344 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
2345 if ( surf_parse_text[yyl] == '\n' )
2347 surf_parse_lineno++;
2351 do_action: /* This label is used only to access EOF actions. */
2354 { /* beginning of action switch */
2355 case 0: /* must back up */
2356 /* undo the effects of YY_DO_BEFORE_ACTION */
2357 *yy_cp = (yy_hold_char);
2358 yy_cp = (yy_last_accepting_cpos);
2359 yy_current_state = (yy_last_accepting_state);
2360 goto yy_find_action;
2378 /* rule 6 can match eol */
2382 case YY_STATE_EOF(INCOMMENT):
2383 FAIL("EOF in comment.");
2392 /* rule 9 can match eol */
2396 case YY_STATE_EOF(INPI):
2397 FAIL("EOF in PI (processing instruction).");
2400 /* SPACES: skipped uniformly */
2402 /* rule 10 can match eol */
2406 /* PROLOG: determine root element and process it. */
2409 /* rule 11 can match eol */
2414 /* rule 12 can match eol */
2416 FAIL("Bad declaration %s.",surf_parse_text);
2420 /* rule 13 can match eol */
2422 SET(ROOT_surfxml_platform);
2425 /* rule 14 can match eol */
2427 FAIL("Bad declaration %s.",surf_parse_text);
2431 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
2433 case YY_STATE_EOF(PROLOG):
2434 case YY_STATE_EOF(DOCTYPE):
2435 FAIL("EOF in prolog.");
2438 /* RULES DERIVED FROM DTD. */
2439 /* <!-- Small DTD for SURF based tools. --> */
2441 /* rule 16 can match eol */
2443 FAIL("Starting tag <platform> is not allowed here.");
2446 /* rule 17 can match eol */
2449 AX_surfxml_platform_version = 1;
2450 AX_surfxml_platform_xmlns_c_link = 5;
2451 AX_surfxml_platform_xmlns_c_route = 37;
2452 ENTER(AL_surfxml_platform); pushbuffer(0);
2457 /* rule 18 can match eol */
2459 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
2462 /* rule 19 can match eol */
2464 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
2467 /* rule 20 can match eol */
2469 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
2472 /* rule 21 can match eol */
2474 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
2477 /* rule 22 can match eol */
2479 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
2482 /* rule 23 can match eol */
2484 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
2489 LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
2495 LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
2497 case ROOT_surfxml_platform: SET(EPILOG); break;
2503 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
2507 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
2509 case YY_STATE_EOF(AL_surfxml_platform):
2510 FAIL("EOF in attribute list of `platform' element.");
2514 /* rule 28 can match eol */
2518 ETag_surfxml_platform();
2519 popbuffer(); /* attribute */
2521 case ROOT_surfxml_platform: SET(EPILOG); break;
2526 /* rule 29 can match eol */
2528 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
2532 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
2534 case YY_STATE_EOF(S_surfxml_platform_5):
2535 case YY_STATE_EOF(S_surfxml_platform_1):
2536 case YY_STATE_EOF(S_surfxml_platform_3):
2537 case YY_STATE_EOF(S_surfxml_platform):
2538 case YY_STATE_EOF(E_surfxml_platform):
2539 FAIL("Premature EOF: `</platform>' expected.");
2543 /* rule 31 can match eol */
2545 FAIL("Starting tag <include> is not allowed here.");
2548 /* rule 32 can match eol */
2551 AX_surfxml_include_file = 0;
2552 ENTER(AL_surfxml_include); pushbuffer(0);
2557 /* rule 33 can match eol */
2559 ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
2562 /* rule 34 can match eol */
2564 ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
2569 if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2570 LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(E_surfxml_include);
2576 if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2577 LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
2579 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
2580 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
2586 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
2590 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
2592 case YY_STATE_EOF(AL_surfxml_include):
2593 FAIL("EOF in attribute list of `include' element.");
2597 /* rule 39 can match eol */
2601 ETag_surfxml_include();
2602 popbuffer(); /* attribute */
2604 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform_3: case S_surfxml_platform: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
2605 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
2610 /* rule 40 can match eol */
2612 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
2616 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
2618 case YY_STATE_EOF(E_surfxml_include):
2619 FAIL("Premature EOF: `</include>' expected.");
2623 /* rule 42 can match eol */
2625 FAIL("Starting tag <host> is not allowed here.");
2628 /* rule 43 can match eol */
2631 AX_surfxml_host_id = 0;
2632 AX_surfxml_host_power = 0;
2633 AX_surfxml_host_availability = 69;
2634 AX_surfxml_host_availability_file = 0;
2635 AX_surfxml_host_state = A_surfxml_host_state_ON;
2636 AX_surfxml_host_state_file = 0;
2637 AX_surfxml_host_interference_send = 73;
2638 AX_surfxml_host_interference_recv = 77;
2639 AX_surfxml_host_interference_send_recv = 81;
2640 AX_surfxml_host_max_outgoing_rate = 85;
2641 ENTER(AL_surfxml_host); pushbuffer(0);
2646 /* rule 44 can match eol */
2648 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
2651 /* rule 45 can match eol */
2653 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
2656 /* rule 46 can match eol */
2658 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
2661 /* rule 47 can match eol */
2663 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
2666 /* rule 48 can match eol */
2668 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
2671 /* rule 49 can match eol */
2673 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
2676 /* rule 50 can match eol */
2678 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
2681 /* rule 51 can match eol */
2683 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
2686 /* rule 52 can match eol */
2688 /* rule 53 can match eol */
2690 A_surfxml_host_state = A_surfxml_host_state_ON;
2693 /* rule 54 can match eol */
2695 /* rule 55 can match eol */
2697 A_surfxml_host_state = A_surfxml_host_state_OFF;
2700 /* rule 56 can match eol */
2702 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
2705 /* rule 57 can match eol */
2707 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
2710 /* rule 58 can match eol */
2712 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send);
2715 /* rule 59 can match eol */
2717 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send);
2720 /* rule 60 can match eol */
2722 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_recv);
2725 /* rule 61 can match eol */
2727 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_recv);
2730 /* rule 62 can match eol */
2732 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send_recv);
2735 /* rule 63 can match eol */
2737 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send_recv);
2740 /* rule 64 can match eol */
2742 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
2745 /* rule 65 can match eol */
2747 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
2752 if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
2753 if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
2754 LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
2760 if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
2761 if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
2762 LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
2764 case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
2770 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
2774 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
2776 case YY_STATE_EOF(AL_surfxml_host):
2777 FAIL("EOF in attribute list of `host' element.");
2781 /* rule 70 can match eol */
2785 ETag_surfxml_host();
2786 popbuffer(); /* attribute */
2788 case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
2793 /* rule 71 can match eol */
2795 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
2799 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
2801 case YY_STATE_EOF(S_surfxml_host):
2802 case YY_STATE_EOF(E_surfxml_host):
2803 case YY_STATE_EOF(S_surfxml_host_2):
2804 FAIL("Premature EOF: `</host>' expected.");
2808 /* rule 73 can match eol */
2810 FAIL("Starting tag <prop> is not allowed here.");
2813 /* rule 74 can match eol */
2816 AX_surfxml_prop_id = 0;
2817 AX_surfxml_prop_value = 0;
2818 ENTER(AL_surfxml_prop); pushbuffer(0);
2823 /* rule 75 can match eol */
2825 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
2828 /* rule 76 can match eol */
2830 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
2833 /* rule 77 can match eol */
2835 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
2838 /* rule 78 can match eol */
2840 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
2845 if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
2846 if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
2847 LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
2853 if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
2854 if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
2855 LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
2857 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
2858 case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
2859 case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
2865 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
2869 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
2871 case YY_STATE_EOF(AL_surfxml_prop):
2872 FAIL("EOF in attribute list of `prop' element.");
2876 /* rule 83 can match eol */
2880 ETag_surfxml_prop();
2881 popbuffer(); /* attribute */
2883 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
2884 case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
2885 case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
2890 /* rule 84 can match eol */
2892 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
2896 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
2898 case YY_STATE_EOF(E_surfxml_prop):
2899 FAIL("Premature EOF: `</prop>' expected.");
2903 /* rule 86 can match eol */
2905 FAIL("Starting tag <router> is not allowed here.");
2908 /* rule 87 can match eol */
2911 AX_surfxml_router_id = 0;
2912 ENTER(AL_surfxml_router); pushbuffer(0);
2917 /* rule 88 can match eol */
2919 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
2922 /* rule 89 can match eol */
2924 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
2929 if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
2930 LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
2936 if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
2937 LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
2939 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
2945 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
2949 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
2951 case YY_STATE_EOF(AL_surfxml_router):
2952 FAIL("EOF in attribute list of `router' element.");
2956 /* rule 94 can match eol */
2960 ETag_surfxml_router();
2961 popbuffer(); /* attribute */
2963 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
2968 /* rule 95 can match eol */
2970 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
2974 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
2976 case YY_STATE_EOF(E_surfxml_router):
2977 FAIL("Premature EOF: `</router>' expected.");
2981 /* rule 97 can match eol */
2983 FAIL("Starting tag <link> is not allowed here.");
2986 /* rule 98 can match eol */
2989 AX_surfxml_link_id = 0;
2990 AX_surfxml_link_bandwidth = 0;
2991 AX_surfxml_link_bandwidth_file = 0;
2992 AX_surfxml_link_latency = 90;
2993 AX_surfxml_link_latency_file = 0;
2994 AX_surfxml_link_state = A_surfxml_link_state_ON;
2995 AX_surfxml_link_state_file = 0;
2996 AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
2997 ENTER(AL_surfxml_link); pushbuffer(0);
3002 /* rule 99 can match eol */
3004 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
3007 /* rule 100 can match eol */
3009 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
3012 /* rule 101 can match eol */
3014 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
3017 /* rule 102 can match eol */
3019 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
3022 /* rule 103 can match eol */
3024 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
3027 /* rule 104 can match eol */
3029 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
3032 /* rule 105 can match eol */
3034 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
3037 /* rule 106 can match eol */
3039 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
3042 /* rule 107 can match eol */
3044 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
3047 /* rule 108 can match eol */
3049 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
3052 /* rule 109 can match eol */
3054 /* rule 110 can match eol */
3056 A_surfxml_link_state = A_surfxml_link_state_ON;
3059 /* rule 111 can match eol */
3061 /* rule 112 can match eol */
3063 A_surfxml_link_state = A_surfxml_link_state_OFF;
3066 /* rule 113 can match eol */
3068 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
3071 /* rule 114 can match eol */
3073 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
3076 /* rule 115 can match eol */
3078 /* rule 116 can match eol */
3080 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
3083 /* rule 117 can match eol */
3085 /* rule 118 can match eol */
3087 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
3092 if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
3093 if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
3094 LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
3100 if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
3101 if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
3102 LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
3104 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
3110 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
3114 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
3116 case YY_STATE_EOF(AL_surfxml_link):
3117 FAIL("EOF in attribute list of `link' element.");
3121 /* rule 123 can match eol */
3125 ETag_surfxml_link();
3126 popbuffer(); /* attribute */
3128 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
3133 /* rule 124 can match eol */
3135 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
3139 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
3141 case YY_STATE_EOF(S_surfxml_link_2):
3142 case YY_STATE_EOF(E_surfxml_link):
3143 case YY_STATE_EOF(S_surfxml_link):
3144 FAIL("Premature EOF: `</link>' expected.");
3148 /* rule 126 can match eol */
3150 FAIL("Starting tag <route> is not allowed here.");
3153 /* rule 127 can match eol */
3156 AX_surfxml_route_src = 0;
3157 AX_surfxml_route_dst = 0;
3158 AX_surfxml_route_impact_on_src = 94;
3159 AX_surfxml_route_impact_on_dst = 98;
3160 AX_surfxml_route_impact_on_src_with_other_recv = 102;
3161 AX_surfxml_route_impact_on_dst_with_other_send = 106;
3162 ENTER(AL_surfxml_route); pushbuffer(0);
3167 /* rule 128 can match eol */
3169 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
3172 /* rule 129 can match eol */
3174 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
3177 /* rule 130 can match eol */
3179 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
3182 /* rule 131 can match eol */
3184 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
3187 /* rule 132 can match eol */
3189 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src);
3192 /* rule 133 can match eol */
3194 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src);
3197 /* rule 134 can match eol */
3199 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst);
3202 /* rule 135 can match eol */
3204 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst);
3207 /* rule 136 can match eol */
3209 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
3212 /* rule 137 can match eol */
3214 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
3217 /* rule 138 can match eol */
3219 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
3222 /* rule 139 can match eol */
3224 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
3229 if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3230 if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3231 LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
3237 if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3238 if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3239 LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
3241 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
3247 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
3251 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
3253 case YY_STATE_EOF(AL_surfxml_route):
3254 FAIL("EOF in attribute list of `route' element.");
3258 /* rule 144 can match eol */
3262 ETag_surfxml_route();
3263 popbuffer(); /* attribute */
3265 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
3270 /* rule 145 can match eol */
3272 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
3276 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
3278 case YY_STATE_EOF(S_surfxml_route):
3279 case YY_STATE_EOF(S_surfxml_route_2):
3280 case YY_STATE_EOF(E_surfxml_route):
3281 FAIL("Premature EOF: `</route>' expected.");
3285 /* rule 147 can match eol */
3287 FAIL("Starting tag <link:ctn> is not allowed here.");
3290 /* rule 148 can match eol */
3293 AX_surfxml_link_c_ctn_id = 0;
3294 ENTER(AL_surfxml_link_c_ctn); pushbuffer(0);
3299 /* rule 149 can match eol */
3301 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_c_ctn_id);
3304 /* rule 150 can match eol */
3306 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_c_ctn_id);
3311 if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
3312 LEAVE; STag_surfxml_link_c_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_c_ctn);
3318 if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
3319 LEAVE; STag_surfxml_link_c_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_c_ctn(); popbuffer(); /* attribute */
3321 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3327 FAIL("Unexpected character `%c' in attribute list of link:ctn element.", surf_parse_text[0]);
3331 FAIL("Bad attribute `%s' in `link:ctn' element start tag.",surf_parse_text);
3333 case YY_STATE_EOF(AL_surfxml_link_c_ctn):
3334 FAIL("EOF in attribute list of `link:ctn' element.");
3338 /* rule 155 can match eol */
3342 ETag_surfxml_link_c_ctn();
3343 popbuffer(); /* attribute */
3345 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3350 /* rule 156 can match eol */
3352 FAIL("Unexpected end-tag `%s': `</link:ctn>' expected.",surf_parse_text);
3356 FAIL("Unexpected character `%c': `</link:ctn>' expected.",surf_parse_text[0]);
3358 case YY_STATE_EOF(E_surfxml_link_c_ctn):
3359 FAIL("Premature EOF: `</link:ctn>' expected.");
3363 /* rule 158 can match eol */
3365 FAIL("Starting tag <process> is not allowed here.");
3368 /* rule 159 can match eol */
3371 AX_surfxml_process_host = 0;
3372 AX_surfxml_process_function = 0;
3373 AX_surfxml_process_start_time = 110;
3374 AX_surfxml_process_kill_time = 115;
3375 ENTER(AL_surfxml_process); pushbuffer(0);
3380 /* rule 160 can match eol */
3382 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
3385 /* rule 161 can match eol */
3387 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
3390 /* rule 162 can match eol */
3392 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
3395 /* rule 163 can match eol */
3397 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
3400 /* rule 164 can match eol */
3402 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
3405 /* rule 165 can match eol */
3407 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
3410 /* rule 166 can match eol */
3412 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
3415 /* rule 167 can match eol */
3417 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
3422 if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3423 if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3424 LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
3430 if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3431 if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3432 LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
3434 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
3440 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
3444 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
3446 case YY_STATE_EOF(AL_surfxml_process):
3447 FAIL("EOF in attribute list of `process' element.");
3451 /* rule 172 can match eol */
3455 ETag_surfxml_process();
3456 popbuffer(); /* attribute */
3458 case S_surfxml_platform_5: case S_surfxml_platform_1: case S_surfxml_platform: case S_surfxml_platform_3: case S_surfxml_platform_4: SET(S_surfxml_platform_5); break;
3463 /* rule 173 can match eol */
3465 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
3469 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
3471 case YY_STATE_EOF(S_surfxml_process):
3472 case YY_STATE_EOF(E_surfxml_process):
3473 case YY_STATE_EOF(S_surfxml_process_2):
3474 FAIL("Premature EOF: `</process>' expected.");
3478 /* rule 175 can match eol */
3480 FAIL("Starting tag <argument> is not allowed here.");
3483 /* rule 176 can match eol */
3486 AX_surfxml_argument_value = 0;
3487 ENTER(AL_surfxml_argument); pushbuffer(0);
3492 /* rule 177 can match eol */
3494 ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
3497 /* rule 178 can match eol */
3499 ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
3504 if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3505 LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
3511 if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3512 LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
3514 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3520 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
3524 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
3526 case YY_STATE_EOF(AL_surfxml_argument):
3527 FAIL("EOF in attribute list of `argument' element.");
3531 /* rule 183 can match eol */
3535 ETag_surfxml_argument();
3536 popbuffer(); /* attribute */
3538 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3543 /* rule 184 can match eol */
3545 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
3549 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
3551 case YY_STATE_EOF(E_surfxml_argument):
3552 FAIL("Premature EOF: `</argument>' expected.");
3555 /* EPILOG: after the root element. */
3559 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
3561 case YY_STATE_EOF(EPILOG):
3565 /* CHARACTER DATA. */
3567 /* Non-defined standard entities... */
3588 /* Character entities. */
3591 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
3595 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
3599 /* rule 194 can match eol */
3601 /* rule 195 can match eol */
3603 /* rule 196 can match eol */
3605 /* rule 197 can match eol */
3616 FAIL("Unexpected `]""]>' in character data.");
3623 case YY_STATE_EOF(VALUE1):
3624 FAIL("EOF in literal (\"'\" expected).");
3631 case YY_STATE_EOF(VALUE2):
3632 FAIL("EOF in literal (`\"' expected).");
3636 /* rule 202 can match eol */
3638 BUFFERPUTC(surf_parse_text[0]);
3642 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
3649 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
3652 BUFFERPUTC(surf_parse_text[0]);
3654 case YY_STATE_EOF(CDATA):
3655 FAIL("EOF in CDATA section.");
3658 /* Impossible rules to avoid warnings from flex(1). */
3659 /* Ideally, this should be replaced by code in flexml.pl that
3660 generates just the states not covered by other rules. */
3663 /* rule 206 can match eol */
3665 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
3672 case YY_STATE_EOF(INITIAL):
3673 case YY_STATE_EOF(ROOT_surfxml_platform):
3674 case YY_STATE_EOF(S_surfxml_platform_2):
3675 case YY_STATE_EOF(S_surfxml_platform_4):
3676 case YY_STATE_EOF(S_surfxml_host_1):
3677 case YY_STATE_EOF(S_surfxml_link_1):
3678 case YY_STATE_EOF(S_surfxml_route_1):
3679 case YY_STATE_EOF(S_surfxml_process_1):
3680 case YY_STATE_EOF(IMPOSSIBLE):
3683 case YY_END_OF_BUFFER:
3685 /* Amount of text matched not including the EOB char. */
3686 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3688 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3689 *yy_cp = (yy_hold_char);
3690 YY_RESTORE_YY_MORE_OFFSET
3692 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3694 /* We're scanning a new file or input source. It's
3695 * possible that this happened because the user
3696 * just pointed surf_parse_in at a new source and called
3697 * surf_parse_lex(). If so, then we have to assure
3698 * consistency between YY_CURRENT_BUFFER and our
3699 * globals. Here is the right place to do so, because
3700 * this is the first action (other than possibly a
3701 * back-up) that will match for the new input source.
3703 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3704 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
3705 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3708 /* Note that here we test for yy_c_buf_p "<=" to the position
3709 * of the first EOB in the buffer, since yy_c_buf_p will
3710 * already have been incremented past the NUL character
3711 * (since all states make transitions on EOB to the
3712 * end-of-buffer state). Contrast this with the test
3715 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3716 { /* This was really a NUL. */
3717 yy_state_type yy_next_state;
3719 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3721 yy_current_state = yy_get_previous_state( );
3723 /* Okay, we're now positioned to make the NUL
3724 * transition. We couldn't have
3725 * yy_get_previous_state() go ahead and do it
3726 * for us because it doesn't know how to deal
3727 * with the possibility of jamming (and we don't
3728 * want to build jamming into it because then it
3729 * will run more slowly).
3732 yy_next_state = yy_try_NUL_trans( yy_current_state );
3734 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3736 if ( yy_next_state )
3738 /* Consume the NUL. */
3739 yy_cp = ++(yy_c_buf_p);
3740 yy_current_state = yy_next_state;
3746 yy_cp = (yy_c_buf_p);
3747 goto yy_find_action;
3751 else switch ( yy_get_next_buffer( ) )
3753 case EOB_ACT_END_OF_FILE:
3755 (yy_did_buffer_switch_on_eof) = 0;
3757 if ( surf_parse_wrap( ) )
3759 /* Note: because we've taken care in
3760 * yy_get_next_buffer() to have set up
3761 * surf_parse_text, we can now set up
3762 * yy_c_buf_p so that if some total
3763 * hoser (like flex itself) wants to
3764 * call the scanner after we return the
3765 * YY_NULL, it'll still work - another
3766 * YY_NULL will get returned.
3768 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3770 yy_act = YY_STATE_EOF(YY_START);
3776 if ( ! (yy_did_buffer_switch_on_eof) )
3782 case EOB_ACT_CONTINUE_SCAN:
3784 (yytext_ptr) + yy_amount_of_matched_text;
3786 yy_current_state = yy_get_previous_state( );
3788 yy_cp = (yy_c_buf_p);
3789 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3792 case EOB_ACT_LAST_MATCH:
3794 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3796 yy_current_state = yy_get_previous_state( );
3798 yy_cp = (yy_c_buf_p);
3799 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3800 goto yy_find_action;
3807 "fatal flex scanner internal error--no action found" );
3808 } /* end of action switch */
3809 } /* end of scanning one token */
3810 } /* end of surf_parse_lex */
3812 /* yy_get_next_buffer - try to read in a new buffer
3814 * Returns a code representing an action:
3815 * EOB_ACT_LAST_MATCH -
3816 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3817 * EOB_ACT_END_OF_FILE - end of file
3819 static int yy_get_next_buffer (void)
3821 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3822 register char *source = (yytext_ptr);
3823 register int number_to_move, i;
3826 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3828 "fatal flex scanner internal error--end of buffer missed" );
3830 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3831 { /* Don't try to fill the buffer, so this is an EOF. */
3832 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3834 /* We matched a single character, the EOB, so
3835 * treat this as a final EOF.
3837 return EOB_ACT_END_OF_FILE;
3842 /* We matched some text prior to the EOB, first
3845 return EOB_ACT_LAST_MATCH;
3849 /* Try to read more data. */
3851 /* First move last chars to start of buffer. */
3852 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3854 for ( i = 0; i < number_to_move; ++i )
3855 *(dest++) = *(source++);
3857 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3858 /* don't do the read, it's not guaranteed to return an EOF,
3861 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3866 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3868 while ( num_to_read <= 0 )
3869 { /* Not enough room in the buffer - grow it. */
3871 /* just a shorter name for the current buffer */
3872 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3874 int yy_c_buf_p_offset =
3875 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3877 if ( b->yy_is_our_buffer )
3879 int new_size = b->yy_buf_size * 2;
3881 if ( new_size <= 0 )
3882 b->yy_buf_size += b->yy_buf_size / 8;
3884 b->yy_buf_size *= 2;
3886 b->yy_ch_buf = (char *)
3887 /* Include room in for 2 EOB chars. */
3888 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
3891 /* Can't grow it, we don't own it. */
3894 if ( ! b->yy_ch_buf )
3896 "fatal error - scanner input buffer overflow" );
3898 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3900 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3905 if ( num_to_read > YY_READ_BUF_SIZE )
3906 num_to_read = YY_READ_BUF_SIZE;
3908 /* Read in more data. */
3909 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3910 (yy_n_chars), (size_t) num_to_read );
3912 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3915 if ( (yy_n_chars) == 0 )
3917 if ( number_to_move == YY_MORE_ADJ )
3919 ret_val = EOB_ACT_END_OF_FILE;
3920 surf_parse_restart(surf_parse_in );
3925 ret_val = EOB_ACT_LAST_MATCH;
3926 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3927 YY_BUFFER_EOF_PENDING;
3932 ret_val = EOB_ACT_CONTINUE_SCAN;
3934 (yy_n_chars) += number_to_move;
3935 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3936 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3938 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3943 /* yy_get_previous_state - get the state just before the EOB char was reached */
3945 static yy_state_type yy_get_previous_state (void)
3947 register yy_state_type yy_current_state;
3948 register char *yy_cp;
3950 yy_current_state = (yy_start);
3952 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3954 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3955 if ( yy_accept[yy_current_state] )
3957 (yy_last_accepting_state) = yy_current_state;
3958 (yy_last_accepting_cpos) = yy_cp;
3960 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3962 yy_current_state = (int) yy_def[yy_current_state];
3963 if ( yy_current_state >= 1159 )
3964 yy_c = yy_meta[(unsigned int) yy_c];
3966 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3969 return yy_current_state;
3972 /* yy_try_NUL_trans - try to make a transition on the NUL character
3975 * next_state = yy_try_NUL_trans( current_state );
3977 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3979 register int yy_is_jam;
3980 register char *yy_cp = (yy_c_buf_p);
3982 register YY_CHAR yy_c = 1;
3983 if ( yy_accept[yy_current_state] )
3985 (yy_last_accepting_state) = yy_current_state;
3986 (yy_last_accepting_cpos) = yy_cp;
3988 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3990 yy_current_state = (int) yy_def[yy_current_state];
3991 if ( yy_current_state >= 1159 )
3992 yy_c = yy_meta[(unsigned int) yy_c];
3994 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3995 yy_is_jam = (yy_current_state == 1158);
3997 return yy_is_jam ? 0 : yy_current_state;
4002 static int yyinput (void)
4004 static int input (void)
4010 *(yy_c_buf_p) = (yy_hold_char);
4012 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4014 /* yy_c_buf_p now points to the character we want to return.
4015 * If this occurs *before* the EOB characters, then it's a
4016 * valid NUL; if not, then we've hit the end of the buffer.
4018 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4019 /* This was really a NUL. */
4020 *(yy_c_buf_p) = '\0';
4023 { /* need more input */
4024 int offset = (yy_c_buf_p) - (yytext_ptr);
4027 switch ( yy_get_next_buffer( ) )
4029 case EOB_ACT_LAST_MATCH:
4030 /* This happens because yy_g_n_b()
4031 * sees that we've accumulated a
4032 * token and flags that we need to
4033 * try matching the token before
4034 * proceeding. But for input(),
4035 * there's no matching to consider.
4036 * So convert the EOB_ACT_LAST_MATCH
4037 * to EOB_ACT_END_OF_FILE.
4040 /* Reset buffer status. */
4041 surf_parse_restart(surf_parse_in );
4045 case EOB_ACT_END_OF_FILE:
4047 if ( surf_parse_wrap( ) )
4050 if ( ! (yy_did_buffer_switch_on_eof) )
4059 case EOB_ACT_CONTINUE_SCAN:
4060 (yy_c_buf_p) = (yytext_ptr) + offset;
4066 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
4067 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
4068 (yy_hold_char) = *++(yy_c_buf_p);
4072 surf_parse_lineno++;
4077 #endif /* ifndef YY_NO_INPUT */
4079 /** Immediately switch to a different input stream.
4080 * @param input_file A readable stream.
4082 * @note This function does not reset the start condition to @c INITIAL .
4084 void surf_parse_restart (FILE * input_file )
4087 if ( ! YY_CURRENT_BUFFER ){
4088 surf_parse_ensure_buffer_stack ();
4089 YY_CURRENT_BUFFER_LVALUE =
4090 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4093 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
4094 surf_parse__load_buffer_state( );
4097 /** Switch to a different input buffer.
4098 * @param new_buffer The new input buffer.
4101 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
4104 /* TODO. We should be able to replace this entire function body
4106 * surf_parse_pop_buffer_state();
4107 * surf_parse_push_buffer_state(new_buffer);
4109 surf_parse_ensure_buffer_stack ();
4110 if ( YY_CURRENT_BUFFER == new_buffer )
4113 if ( YY_CURRENT_BUFFER )
4115 /* Flush out information for old buffer. */
4116 *(yy_c_buf_p) = (yy_hold_char);
4117 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4118 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4121 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4122 surf_parse__load_buffer_state( );
4124 /* We don't actually know whether we did this switch during
4125 * EOF (surf_parse_wrap()) processing, but the only time this flag
4126 * is looked at is after surf_parse_wrap() is called, so it's safe
4127 * to go ahead and always set it.
4129 (yy_did_buffer_switch_on_eof) = 1;
4132 static void surf_parse__load_buffer_state (void)
4134 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4135 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4136 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4137 (yy_hold_char) = *(yy_c_buf_p);
4140 /** Allocate and initialize an input buffer state.
4141 * @param file A readable stream.
4142 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4144 * @return the allocated buffer state.
4146 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
4150 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4152 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4154 b->yy_buf_size = size;
4156 /* yy_ch_buf has to be 2 characters longer than the size given because
4157 * we need to put in 2 end-of-buffer characters.
4159 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
4160 if ( ! b->yy_ch_buf )
4161 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4163 b->yy_is_our_buffer = 1;
4165 surf_parse__init_buffer(b,file );
4170 /** Destroy the buffer.
4171 * @param b a buffer created with surf_parse__create_buffer()
4174 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
4180 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4181 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4183 if ( b->yy_is_our_buffer )
4184 surf_parse_free((void *) b->yy_ch_buf );
4186 surf_parse_free((void *) b );
4190 extern int isatty (int );
4191 #endif /* __cplusplus */
4193 /* Initializes or reinitializes a buffer.
4194 * This function is sometimes called more than once on the same buffer,
4195 * such as during a surf_parse_restart() or at EOF.
4197 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
4202 surf_parse__flush_buffer(b );
4204 b->yy_input_file = file;
4205 b->yy_fill_buffer = 1;
4207 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
4208 * called from surf_parse_restart() or through yy_get_next_buffer.
4209 * In that case, we don't want to reset the lineno or column.
4211 if (b != YY_CURRENT_BUFFER){
4212 b->yy_bs_lineno = 1;
4213 b->yy_bs_column = 0;
4216 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4221 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4222 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4225 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
4232 /* We always need two end-of-buffer characters. The first causes
4233 * a transition to the end-of-buffer state. The second causes
4234 * a jam in that state.
4236 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4237 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4239 b->yy_buf_pos = &b->yy_ch_buf[0];
4242 b->yy_buffer_status = YY_BUFFER_NEW;
4244 if ( b == YY_CURRENT_BUFFER )
4245 surf_parse__load_buffer_state( );
4248 /** Pushes the new state onto the stack. The new state becomes
4249 * the current state. This function will allocate the stack
4251 * @param new_buffer The new state.
4254 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
4256 if (new_buffer == NULL)
4259 surf_parse_ensure_buffer_stack();
4261 /* This block is copied from surf_parse__switch_to_buffer. */
4262 if ( YY_CURRENT_BUFFER )
4264 /* Flush out information for old buffer. */
4265 *(yy_c_buf_p) = (yy_hold_char);
4266 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4267 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4270 /* Only push if top exists. Otherwise, replace top. */
4271 if (YY_CURRENT_BUFFER)
4272 (yy_buffer_stack_top)++;
4273 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4275 /* copied from surf_parse__switch_to_buffer. */
4276 surf_parse__load_buffer_state( );
4277 (yy_did_buffer_switch_on_eof) = 1;
4280 /** Removes and deletes the top of the stack, if present.
4281 * The next element becomes the new top.
4284 void surf_parse_pop_buffer_state (void)
4286 if (!YY_CURRENT_BUFFER)
4289 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4290 YY_CURRENT_BUFFER_LVALUE = NULL;
4291 if ((yy_buffer_stack_top) > 0)
4292 --(yy_buffer_stack_top);
4294 if (YY_CURRENT_BUFFER) {
4295 surf_parse__load_buffer_state( );
4296 (yy_did_buffer_switch_on_eof) = 1;
4300 /* Allocates the stack if it does not exist.
4301 * Guarantees space for at least one push.
4303 static void surf_parse_ensure_buffer_stack (void)
4307 if (!(yy_buffer_stack)) {
4309 /* First allocation is just for 2 elements, since we don't know if this
4310 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4311 * immediate realloc on the next call.
4314 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
4315 (num_to_alloc * sizeof(struct yy_buffer_state*)
4318 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4320 (yy_buffer_stack_max) = num_to_alloc;
4321 (yy_buffer_stack_top) = 0;
4325 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4327 /* Increase the buffer to prepare for a possible push. */
4328 int grow_size = 8 /* arbitrary grow size */;
4330 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4331 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
4333 num_to_alloc * sizeof(struct yy_buffer_state*)
4336 /* zero only the new slots.*/
4337 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4338 (yy_buffer_stack_max) = num_to_alloc;
4342 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4343 * @param base the character buffer
4344 * @param size the size in bytes of the character buffer
4346 * @return the newly allocated buffer state object.
4348 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
4353 base[size-2] != YY_END_OF_BUFFER_CHAR ||
4354 base[size-1] != YY_END_OF_BUFFER_CHAR )
4355 /* They forgot to leave room for the EOB's. */
4358 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4360 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
4362 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4363 b->yy_buf_pos = b->yy_ch_buf = base;
4364 b->yy_is_our_buffer = 0;
4365 b->yy_input_file = 0;
4366 b->yy_n_chars = b->yy_buf_size;
4367 b->yy_is_interactive = 0;
4369 b->yy_fill_buffer = 0;
4370 b->yy_buffer_status = YY_BUFFER_NEW;
4372 surf_parse__switch_to_buffer(b );
4377 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
4378 * scan from a @e copy of @a str.
4379 * @param yystr a NUL-terminated string to scan
4381 * @return the newly allocated buffer state object.
4382 * @note If you want to scan bytes that may contain NUL values, then use
4383 * surf_parse__scan_bytes() instead.
4385 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
4388 return surf_parse__scan_bytes(yystr,strlen(yystr) );
4391 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
4392 * scan from a @e copy of @a bytes.
4393 * @param bytes the byte buffer to scan
4394 * @param len the number of bytes in the buffer pointed to by @a bytes.
4396 * @return the newly allocated buffer state object.
4398 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * yybytes, int _yybytes_len )
4405 /* Get memory for full buffer, including space for trailing EOB's. */
4406 n = _yybytes_len + 2;
4407 buf = (char *) surf_parse_alloc(n );
4409 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
4411 for ( i = 0; i < _yybytes_len; ++i )
4412 buf[i] = yybytes[i];
4414 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4416 b = surf_parse__scan_buffer(buf,n );
4418 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
4420 /* It's okay to grow etc. this buffer, and we should throw it
4421 * away when we're done.
4423 b->yy_is_our_buffer = 1;
4428 static void yy_push_state (int new_state )
4430 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4434 (yy_start_stack_depth) += YY_START_STACK_INCR;
4435 new_size = (yy_start_stack_depth) * sizeof( int );
4437 if ( ! (yy_start_stack) )
4438 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
4441 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
4443 if ( ! (yy_start_stack) )
4445 "out of memory expanding start-condition stack" );
4448 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4453 static void yy_pop_state (void)
4455 if ( --(yy_start_stack_ptr) < 0 )
4456 YY_FATAL_ERROR( "start-condition stack underflow" );
4458 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4461 #ifndef YY_EXIT_FAILURE
4462 #define YY_EXIT_FAILURE 2
4465 static void yy_fatal_error (yyconst char* msg )
4467 (void) fprintf( stderr, "%s\n", msg );
4468 exit( YY_EXIT_FAILURE );
4471 /* Redefine yyless() so it works in section 3 code. */
4477 /* Undo effects of setting up surf_parse_text. */ \
4478 int yyless_macro_arg = (n); \
4479 YY_LESS_LINENO(yyless_macro_arg);\
4480 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
4481 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
4482 (yy_hold_char) = *(yy_c_buf_p); \
4483 *(yy_c_buf_p) = '\0'; \
4484 surf_parse_leng = yyless_macro_arg; \
4488 /* Accessor methods (get/set functions) to struct members. */
4490 /** Get the current line number.
4493 int surf_parse_get_lineno (void)
4496 return surf_parse_lineno;
4499 /** Get the input stream.
4502 FILE *surf_parse_get_in (void)
4504 return surf_parse_in;
4507 /** Get the output stream.
4510 FILE *surf_parse_get_out (void)
4512 return surf_parse_out;
4515 /** Get the length of the current token.
4518 int surf_parse_get_leng (void)
4520 return surf_parse_leng;
4523 /** Get the current token.
4527 char *surf_parse_get_text (void)
4529 return surf_parse_text;
4532 /** Set the current line number.
4533 * @param line_number
4536 void surf_parse_set_lineno (int line_number )
4539 surf_parse_lineno = line_number;
4542 /** Set the input stream. This does not discard the current
4544 * @param in_str A readable stream.
4546 * @see surf_parse__switch_to_buffer
4548 void surf_parse_set_in (FILE * in_str )
4550 surf_parse_in = in_str ;
4553 void surf_parse_set_out (FILE * out_str )
4555 surf_parse_out = out_str ;
4558 int surf_parse_get_debug (void)
4560 return surf_parse__flex_debug;
4563 void surf_parse_set_debug (int bdebug )
4565 surf_parse__flex_debug = bdebug ;
4568 static int yy_init_globals (void)
4570 /* Initialization is the same as for the non-reentrant scanner.
4571 * This function is called from surf_parse_lex_destroy(), so don't allocate here.
4574 /* We do not touch surf_parse_lineno unless the option is enabled. */
4575 surf_parse_lineno = 1;
4577 (yy_buffer_stack) = 0;
4578 (yy_buffer_stack_top) = 0;
4579 (yy_buffer_stack_max) = 0;
4580 (yy_c_buf_p) = (char *) 0;
4584 (yy_start_stack_ptr) = 0;
4585 (yy_start_stack_depth) = 0;
4586 (yy_start_stack) = NULL;
4588 /* Defined in main.c */
4590 surf_parse_in = stdin;
4591 surf_parse_out = stdout;
4593 surf_parse_in = (FILE *) 0;
4594 surf_parse_out = (FILE *) 0;
4597 /* For future reference: Set errno on error, since we are called by
4598 * surf_parse_lex_init()
4603 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
4604 int surf_parse_lex_destroy (void)
4607 /* Pop the buffer stack, destroying each element. */
4608 while(YY_CURRENT_BUFFER){
4609 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4610 YY_CURRENT_BUFFER_LVALUE = NULL;
4611 surf_parse_pop_buffer_state();
4614 /* Destroy the stack itself. */
4615 surf_parse_free((yy_buffer_stack) );
4616 (yy_buffer_stack) = NULL;
4618 /* Destroy the start condition stack. */
4619 surf_parse_free((yy_start_stack) );
4620 (yy_start_stack) = NULL;
4622 /* Reset the globals. This is important in a non-reentrant scanner so the next time
4623 * surf_parse_lex() is called, initialization will occur. */
4630 * Internal utility routines.
4634 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4637 for ( i = 0; i < n; ++i )
4642 #ifdef YY_NEED_STRLEN
4643 static int yy_flex_strlen (yyconst char * s )
4646 for ( n = 0; s[n]; ++n )
4653 void *surf_parse_alloc (yy_size_t size )
4655 return (void *) malloc( size );
4658 void *surf_parse_realloc (void * ptr, yy_size_t size )
4660 /* The cast to (char *) in the following accommodates both
4661 * implementations that use char* generic pointers, and those
4662 * that use void* generic pointers. It works with the latter
4663 * because both ANSI C and C++ allow castless assignment from
4664 * any pointer type to void*, and deal with argument conversions
4665 * as though doing an assignment.
4667 return (void *) realloc( (char *) ptr, size );
4670 void surf_parse_free (void * ptr )
4672 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
4675 #define YYTABLES_NAME "yytables"
4677 /* Element context stack lookup. */
4678 int surfxml_element_context(int i)
4680 return (0<i && i<yy_start_stack_depth
4681 ? yy_start_stack[yy_start_stack_ptr - i]
4686 void print_yy_stack(char* fmt, ...)
4688 int i = 0; va_list ap; va_start(ap, fmt);
4689 vfprintf(stderr, fmt, ap);
4690 if (surfxml_statenames) {
4691 for (i=1; i<yy_start_stack_ptr; i++) {
4692 fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
4694 fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
4699 void print_surfxml_bufferstack()
4702 fputs("Buffer: ", stderr);
4703 for (i = 0; i < blimit; i++) {
4704 if ( surfxml_bufferstack[i] == '\377' ) break;
4705 putc(surfxml_bufferstack[i], stderr);
4710 static void debug_enter(int state, const char* statename) {
4711 yy_push_state(state);
4712 if (surf_parse__flex_debug) {
4713 print_yy_stack("--ENTER(%s) : ",statename);
4714 print_surfxml_bufferstack();
4718 static void debug_leave(void) {
4719 if (surf_parse__flex_debug) {
4720 print_yy_stack("--LEAVE : ");
4721 print_surfxml_bufferstack();
4726 static void debug_set(int state, const char* statename) {
4728 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
4732 static void cleanup(void)
4734 if (surfxml_statenames) {
4735 free(surfxml_statenames);
4736 surfxml_statenames = NULL;
4738 free(surfxml_bufferstack);
4739 surfxml_bufferstack = NULL;
4745 static int fail(const char* fmt, ...)
4747 int chars_left, used;
4748 va_list ap; va_start(ap, fmt);
4749 #ifdef FLEXML_yylineno
4750 used = sprintf(flexml_err_msg,
4751 "Invalid XML (XML input line %d, state %d): ",
4752 surf_parse_lineno, YY_START);
4754 used = sprintf(flexml_err_msg,
4755 "Invalid XML (state %d): ",
4758 chars_left = flexml_max_err_msg_size - used - 1;
4759 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
4762 #ifndef FLEXML_quiet_parser
4763 /* print directly to sdterr */
4764 fprintf(stderr, "%s\n", flexml_err_msg);
4765 flexml_err_msg[0] = '\0';