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 206
383 #define YY_END_OF_BUFFER 207
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[1481] =
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, 0, 0,
404 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
405 0, 0, 0, 0, 0, 0, 207, 205, 24, 10,
406 10, 24, 24, 185, 10, 185, 5, 6, 5, 8,
407 9, 8, 201, 193, 194, 202, 199, 202, 200, 204,
408 193, 194, 204, 205, 34, 10, 34, 34, 34, 32,
409 34, 34, 38, 10, 38, 38, 205, 205, 38, 205,
410 44, 10, 44, 44, 44, 42, 44, 48, 10, 48,
411 205, 74, 10, 74, 74, 74, 72, 74, 74, 74,
412 74, 74, 78, 10, 78, 205, 78, 86, 10, 86,
413 86, 86, 84, 86, 86, 90, 10, 90, 205, 96,
415 10, 96, 96, 96, 94, 96, 100, 10, 100, 205,
416 124, 10, 124, 124, 124, 122, 124, 124, 124, 124,
417 128, 10, 128, 128, 205, 144, 10, 144, 144, 144,
418 142, 144, 144, 144, 148, 10, 148, 205, 148, 154,
419 10, 154, 154, 154, 152, 154, 158, 10, 158, 205,
420 170, 10, 170, 170, 170, 168, 170, 170, 170, 170,
421 174, 10, 174, 205, 174, 205, 180, 10, 180, 180,
422 180, 178, 180, 184, 10, 184, 202, 201, 10, 0,
423 2, 2, 0, 4, 7, 196, 195, 0, 0, 0,
424 0, 0, 0, 0, 33, 35, 35, 35, 0, 0,
426 0, 0, 0, 0, 0, 0, 43, 45, 45, 0,
427 73, 75, 75, 75, 75, 75, 75, 75, 0, 0,
428 85, 87, 87, 87, 0, 95, 97, 97, 0, 123,
429 125, 125, 125, 125, 125, 125, 0, 143, 145, 145,
430 145, 145, 0, 0, 153, 155, 155, 0, 169, 171,
431 171, 171, 171, 171, 0, 0, 179, 181, 181, 0,
432 0, 0, 0, 0, 0, 0, 3, 0, 0, 0,
433 0, 0, 0, 0, 203, 0, 35, 35, 0, 0,
434 0, 0, 0, 0, 0, 0, 0, 45, 0, 0,
435 75, 0, 0, 75, 75, 75, 75, 0, 0, 0,
437 0, 0, 87, 0, 0, 0, 0, 0, 0, 125,
438 0, 0, 125, 125, 125, 0, 0, 145, 145, 145,
439 0, 0, 0, 0, 0, 0, 0, 171, 171, 171,
440 171, 0, 0, 0, 181, 0, 0, 0, 198, 0,
441 23, 1, 0, 0, 191, 0, 0, 0, 188, 187,
442 0, 0, 35, 35, 0, 0, 37, 0, 0, 0,
443 0, 0, 0, 0, 0, 45, 0, 0, 47, 0,
444 75, 0, 51, 50, 75, 75, 75, 75, 0, 0,
445 77, 0, 0, 0, 81, 80, 87, 0, 0, 89,
446 0, 0, 93, 92, 0, 0, 99, 0, 125, 0,
448 103, 102, 125, 125, 125, 0, 0, 127, 0, 0,
449 0, 145, 0, 0, 0, 0, 147, 0, 0, 0,
450 151, 150, 0, 0, 157, 0, 171, 171, 171, 171,
451 0, 0, 173, 0, 0, 181, 0, 0, 183, 0,
452 0, 0, 0, 192, 186, 0, 0, 0, 35, 35,
453 0, 49, 0, 101, 0, 0, 0, 0, 0, 0,
454 0, 75, 75, 75, 75, 75, 0, 79, 87, 0,
455 0, 125, 125, 125, 125, 0, 0, 133, 132, 145,
456 0, 131, 130, 0, 0, 0, 171, 0, 0, 171,
457 171, 0, 0, 181, 0, 0, 0, 0, 0, 12,
459 0, 189, 190, 0, 35, 35, 0, 49, 0, 101,
460 0, 129, 129, 0, 0, 41, 40, 0, 75, 75,
461 75, 0, 0, 0, 0, 75, 0, 79, 0, 0,
462 0, 0, 125, 125, 125, 0, 0, 125, 0, 145,
463 0, 0, 0, 171, 0, 161, 160, 171, 171, 0,
464 0, 0, 0, 0, 0, 0, 0, 0, 11, 0,
465 35, 35, 35, 0, 0, 0, 129, 91, 0, 75,
466 75, 75, 0, 53, 52, 0, 0, 0, 75, 0,
467 76, 0, 83, 82, 0, 88, 0, 125, 125, 125,
468 0, 0, 0, 125, 0, 126, 145, 0, 0, 0,
470 171, 171, 171, 0, 0, 0, 177, 176, 0, 0,
471 0, 0, 0, 0, 0, 0, 35, 35, 0, 39,
472 159, 91, 0, 75, 75, 75, 0, 0, 75, 0,
473 125, 0, 0, 125, 125, 0, 0, 125, 145, 0,
474 146, 0, 0, 171, 171, 171, 0, 0, 0, 0,
475 0, 0, 0, 25, 0, 27, 26, 35, 35, 0,
476 39, 159, 0, 75, 75, 75, 0, 0, 0, 0,
477 75, 0, 98, 125, 0, 109, 108, 125, 125, 0,
478 0, 0, 0, 125, 145, 149, 0, 0, 0, 171,
479 171, 0, 175, 0, 197, 0, 0, 0, 25, 35,
481 35, 0, 0, 46, 75, 75, 75, 0, 59, 0,
482 58, 75, 0, 0, 125, 125, 125, 0, 113, 0,
483 112, 125, 145, 149, 0, 0, 163, 162, 0, 0,
484 171, 0, 172, 175, 0, 0, 0, 0, 0, 0,
485 0, 0, 0, 0, 0, 35, 0, 36, 75, 75,
486 75, 61, 60, 0, 0, 0, 105, 104, 125, 125,
487 125, 115, 114, 0, 0, 145, 145, 0, 156, 0,
488 167, 166, 0, 0, 0, 182, 0, 0, 0, 0,
489 0, 0, 0, 0, 0, 0, 29, 28, 0, 0,
490 75, 75, 75, 0, 63, 62, 125, 125, 125, 0,
492 117, 116, 145, 145, 0, 165, 164, 0, 0, 0,
493 0, 0, 0, 0, 0, 0, 0, 31, 30, 0,
494 0, 75, 75, 75, 125, 0, 0, 125, 145, 145,
495 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
496 0, 0, 55, 54, 75, 75, 75, 75, 125, 0,
497 111, 110, 125, 0, 0, 145, 0, 0, 145, 0,
498 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
499 0, 0, 0, 75, 75, 75, 75, 0, 0, 0,
500 0, 0, 137, 136, 145, 0, 135, 134, 145, 0,
501 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
503 0, 0, 0, 0, 75, 75, 75, 75, 0, 107,
504 106, 0, 0, 0, 145, 145, 0, 0, 0, 0,
505 0, 0, 0, 0, 0, 0, 0, 0, 12, 0,
506 12, 0, 75, 75, 75, 75, 0, 0, 0, 0,
507 145, 145, 0, 0, 0, 0, 0, 0, 0, 0,
508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
509 0, 0, 75, 0, 0, 0, 0, 0, 0, 145,
510 145, 0, 0, 0, 0, 0, 0, 0, 0, 0,
511 0, 0, 0, 57, 56, 0, 67, 66, 0, 65,
512 64, 75, 0, 71, 70, 0, 0, 0, 0, 145,
514 145, 0, 0, 0, 0, 0, 0, 0, 0, 0,
515 0, 11, 75, 0, 0, 0, 0, 145, 145, 0,
516 0, 0, 0, 0, 0, 0, 0, 0, 0, 75,
517 0, 0, 0, 0, 145, 145, 0, 0, 0, 0,
518 0, 0, 0, 0, 0, 0, 75, 0, 0, 0,
519 0, 145, 145, 0, 0, 0, 0, 0, 0, 0,
520 0, 0, 0, 0, 0, 0, 0, 0, 0, 119,
521 0, 118, 145, 145, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 0, 0, 0, 0, 0, 0, 69,
523 68, 121, 120, 145, 145, 0, 0, 0, 0, 0,
525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
526 145, 145, 0, 0, 0, 0, 0, 0, 0, 0,
527 0, 0, 0, 0, 0, 0, 0, 0, 0, 145,
528 145, 0, 0, 0, 0, 0, 0, 0, 0, 0,
529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
530 0, 145, 145, 0, 0, 0, 0, 0, 0, 0,
531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
532 0, 0, 0, 145, 145, 0, 0, 0, 0, 0,
533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
534 0, 0, 0, 0, 0, 145, 145, 0, 0, 0,
536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
537 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
538 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
539 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
540 0, 0, 141, 140, 0, 139, 138, 0, 0, 0,
541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
542 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
543 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
545 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
547 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
548 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
549 0, 0, 0, 0, 0, 0, 0, 19, 0, 0,
550 0, 13, 0, 0, 0, 0, 0, 0, 0, 21,
551 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
552 0, 0, 0, 0, 15, 0, 0, 0, 0, 0,
553 0, 0, 0, 0, 0, 18, 0, 0, 14, 0,
554 0, 0, 16, 0, 20, 0, 17, 0, 22, 0
557 static yyconst flex_int32_t yy_ec[256] =
559 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
560 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
561 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
562 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
563 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
564 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
565 17, 18, 19, 1, 20, 21, 22, 23, 24, 25,
566 26, 27, 28, 26, 26, 26, 29, 30, 31, 32,
567 26, 33, 34, 35, 26, 26, 26, 26, 36, 26,
568 37, 1, 38, 1, 39, 1, 40, 41, 42, 43,
570 44, 45, 46, 47, 48, 26, 49, 50, 51, 52,
571 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
572 63, 26, 1, 1, 1, 1, 1, 1, 1, 1,
573 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
574 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
575 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
576 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
577 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
578 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
579 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
581 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
582 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
583 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
584 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
585 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
589 static yyconst flex_int32_t yy_meta[64] =
591 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
592 3, 1, 4, 5, 1, 1, 1, 6, 1, 7,
593 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
594 5, 5, 5, 5, 5, 5, 1, 1, 5, 7,
595 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
596 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
600 static yyconst flex_int16_t yy_base[1549] =
602 0, 0, 0, 3, 6, 9, 24, 27, 11, 14,
603 15, 17, 29, 38, 45, 52, 59, 61, 67, 70,
604 99, 161, 73, 76, 117, 122, 125, 128, 144, 179,
605 184, 187, 190, 206, 209, 212, 215, 230, 246, 291,
606 264, 269, 272, 309, 336, 393, 314, 317, 354, 359,
607 362, 365, 411, 416, 419, 422, 450, 510, 468, 473,
608 476, 479, 570, 618, 528, 533, 536, 539, 666, 723,
609 588, 593, 596, 599, 636, 641, 644, 647, 684, 689,
610 780, 837, 692, 695, 741, 746, 749, 752, 798, 803,
611 806, 809, 894, 942, 855, 860, 863, 866, 990, 1047,
613 912, 917, 920, 923, 960, 965, 968, 971, 1008, 1013,
614 1104, 1164, 1016, 1065, 1087, 1123, 4137, 4138, 4138, 91,
615 147, 47, 62, 4138, 150, 77, 4138, 4138, 4126, 4138,
616 4138, 4117, 4138, 4130, 4130, 189, 4138, 4138, 4138, 4138,
617 4128, 4128, 4092, 480, 4138, 153, 4111, 0, 79, 4138,
618 4084, 4076, 4138, 234, 1026, 1081, 1138, 1082, 367, 221,
619 4138, 239, 4108, 0, 366, 4138, 4077, 4138, 275, 424,
620 486, 4138, 320, 4106, 0, 372, 4138, 4063, 7, 4082,
621 4068, 4062, 4138, 498, 1021, 540, 485, 4138, 504, 4101,
622 0, 423, 4138, 4075, 4077, 4138, 558, 545, 549, 4138,
624 563, 4098, 0, 429, 4138, 4072, 4138, 715, 701, 696,
625 4138, 772, 4096, 0, 753, 4138, 4073, 4069, 4071, 76,
626 4138, 775, 1135, 815, 816, 4138, 827, 4092, 0, 868,
627 4138, 4052, 4057, 4051, 4138, 886, 1140, 1078, 872, 4138,
628 1019, 4088, 0, 873, 4138, 4062, 4138, 1039, 1139, 1025,
629 4138, 1068, 4086, 0, 1083, 4138, 4044, 4049, 4053, 4042,
630 4138, 1130, 1144, 1173, 1141, 1186, 4138, 1193, 4081, 0,
631 1143, 4138, 4058, 4138, 1204, 1198, 4092, 4058, 1212, 34,
632 4033, 4138, 4084, 4075, 4138, 4138, 4138, 26, 36, 4034,
633 4033, 4031, 4071, 4038, 4138, 0, 4031, 4036, 4031, 4031,
635 4031, 4034, 4025, 4027, 4026, 4025, 4138, 0, 4027, 4028,
636 4138, 0, 4035, 1216, 4016, 4011, 4011, 4031, 4023, 4013,
637 4138, 0, 1219, 4018, 4013, 4138, 0, 1226, 4010, 4138,
638 0, 4013, 1235, 4006, 4023, 4022, 4011, 4138, 0, 4002,
639 4005, 4016, 4001, 4008, 4138, 0, 1238, 4005, 4138, 0,
640 4002, 3996, 4002, 4011, 3996, 3993, 4138, 0, 3998, 4007,
641 4009, 4027, 4026, 4033, 104, 3991, 4138, 127, 0, 3987,
642 3987, 4024, 4023, 3984, 4138, 3996, 3978, 3982, 1242, 1245,
643 3976, 3990, 3979, 3977, 3970, 3969, 3968, 3982, 1254, 1262,
644 3977, 1265, 1272, 3980, 3984, 3978, 3963, 1281, 1284, 3967,
646 1287, 1294, 3960, 1290, 1303, 1307, 1313, 1323, 1326, 3975,
647 1329, 1336, 3973, 3960, 3957, 1332, 1345, 1349, 3974, 1352,
648 1358, 1368, 3961, 1371, 1378, 1387, 1392, 3970, 3953, 3960,
649 3953, 1395, 1398, 3962, 3948, 1404, 1415, 3984, 4138, 3987,
650 4138, 4138, 121, 3954, 4138, 3988, 3987, 3944, 4138, 4138,
651 3942, 3941, 3950, 3940, 1421, 1424, 4138, 1427, 3938, 3945,
652 3945, 3951, 3934, 3933, 3932, 1432, 1444, 1448, 4138, 1454,
653 3939, 1471, 4138, 4138, 3932, 3934, 3930, 3941, 1461, 1466,
654 4138, 1479, 3930, 1483, 4138, 4138, 3939, 1491, 1496, 4138,
655 1499, 1502, 4138, 4138, 1516, 1519, 4138, 1522, 3921, 1526,
657 4138, 4138, 3929, 3932, 3935, 1539, 1542, 4138, 1545, 1551,
658 1563, 3936, 1571, 1574, 1582, 1587, 4138, 1590, 3928, 1600,
659 4138, 4138, 1608, 1611, 4138, 1614, 3918, 1617, 3936, 3916,
660 1620, 1633, 4138, 1637, 3914, 3928, 1640, 1643, 4138, 1650,
661 3948, 140, 1660, 4138, 4138, 3955, 3954, 3923, 3914, 3952,
662 1667, 1457, 3906, 1670, 3920, 3919, 3918, 3917, 1678, 1685,
663 1695, 3920, 3914, 3899, 1698, 1701, 1704, 1673, 1707, 1717,
664 1724, 3909, 3914, 3903, 1727, 1730, 1747, 4138, 4138, 3896,
665 1755, 4138, 4138, 1734, 3939, 1765, 3904, 1770, 1782, 3893,
666 3911, 1791, 3898, 1773, 1794, 3928, 166, 3929, 1797, 4138,
668 3928, 4138, 4138, 3892, 3892, 35, 1800, 1803, 3900, 1817,
669 3885, 1820, 1823, 3885, 1826, 4138, 4138, 1834, 3899, 3895,
670 3880, 1844, 1856, 1847, 1864, 3892, 1876, 1840, 1852, 1879,
671 1887, 1893, 3893, 3872, 3888, 1896, 1900, 3888, 1912, 3893,
672 1915, 3889, 1918, 3877, 1922, 4138, 4138, 3881, 3870, 1936,
673 3883, 1939, 1942, 1958, 3891, 1193, 263, 183, 4138, 3869,
674 1961, 3876, 3870, 1964, 3878, 3864, 1967, 1970, 1981, 3872,
675 3863, 3872, 1984, 4138, 4138, 1992, 3886, 3885, 3867, 2000,
676 4138, 2004, 4138, 4138, 2012, 4138, 2017, 3856, 2023, 3874,
677 2030, 3881, 3770, 3752, 2039, 4138, 3737, 2042, 3729, 2045,
679 3732, 3730, 3730, 2048, 3723, 2052, 4138, 4138, 2065, 3752,
680 206, 272, 189, 3718, 2068, 2072, 3714, 3704, 2086, 2089,
681 2092, 2095, 2099, 3710, 3709, 3695, 257, 301, 3693, 2104,
682 3691, 2108, 2112, 3688, 3674, 302, 358, 3673, 3666, 2126,
683 4138, 3661, 2129, 2132, 3664, 3456, 2135, 3448, 2148, 3467,
684 2152, 167, 332, 2155, 2158, 4138, 4138, 3454, 3443, 2170,
685 2173, 2176, 2179, 3452, 3446, 3449, 3470, 3472, 3452, 3466,
686 3430, 2187, 4138, 2191, 2200, 4138, 4138, 3424, 3418, 3444,
687 3462, 3441, 3437, 3399, 3403, 2182, 2208, 2211, 2214, 2229,
688 3396, 2232, 2235, 2238, 4138, 2295, 316, 287, 2241, 2245,
690 3395, 2249, 2255, 4138, 3358, 3373, 3361, 3379, 4138, 3273,
691 4138, 2261, 2266, 2273, 3223, 3158, 3140, 3176, 4138, 3162,
692 4138, 2283, 1216, 2286, 2289, 2299, 4138, 4138, 2307, 2312,
693 2323, 2326, 4138, 2329, 2334, 389, 364, 421, 398, 776,
694 456, 446, 588, 2344, 2351, 2360, 2363, 4138, 3106, 3112,
695 3099, 4138, 4138, 2366, 2369, 2382, 4138, 4138, 3079, 3044,
696 2987, 4138, 4138, 2390, 2393, 2959, 2880, 2401, 4138, 2406,
697 4138, 4138, 2414, 2418, 2426, 4138, 478, 575, 647, 751,
698 624, 684, 551, 752, 865, 2430, 4138, 4138, 2438, 2443,
699 2454, 2870, 2850, 2457, 4138, 4138, 2796, 2465, 2785, 2470,
701 4138, 4138, 2765, 2768, 2481, 4138, 4138, 595, 919, 95,
702 535, 920, 971, 1060, 644, 2492, 2495, 4138, 4138, 2503,
703 2509, 2763, 148, 2736, 2712, 2519, 2522, 2672, 2530, 2535,
704 842, 2538, 599, 2541, 635, 242, 2546, 703, 2558, 2563,
705 2580, 2588, 4138, 4138, 2669, 2670, 2632, 2635, 2568, 2597,
706 4138, 4138, 2605, 2608, 2611, 2604, 2624, 2627, 2562, 890,
707 2635, 818, 2640, 923, 798, 1175, 2643, 2646, 2653, 2676,
708 2686, 2704, 2742, 2569, 2563, 2552, 2505, 2664, 2694, 2722,
709 2725, 2760, 4138, 4138, 2509, 2768, 4138, 4138, 2505, 1182,
710 797, 912, 968, 1213, 1043, 1194, 1217, 2734, 2575, 2779,
712 17, 431, 2797, 2835, 2470, 2440, 2437, 2433, 2787, 4138,
713 4138, 2815, 1064, 1236, 2396, 2385, 1300, 948, 2827, 1349,
714 1261, 1360, 2853, 1386, 1367, 2856, 374, 691, 2429, 1359,
715 2314, 2859, 2862, 2865, 2881, 2884, 2252, 2227, 2205, 2192,
716 2101, 2099, 2889, 468, 2892, 528, 2900, 2909, 2912, 900,
717 1419, 1396, 2139, 2107, 2070, 2919, 2930, 2936, 2947, 2950,
718 2958, 2963, 2009, 2974, 2977, 1996, 2008, 1942, 1955, 1918,
719 1871, 2985, 1391, 1495, 1420, 2990, 2993, 1497, 1492, 1169,
720 1473, 1869, 2996, 4138, 4138, 3011, 4138, 4138, 3019, 4138,
721 4138, 1795, 3027, 4138, 4138, 1779, 1732, 1680, 1660, 1603,
723 1575, 1520, 911, 1553, 1283, 1543, 1546, 1649, 1521, 1577,
724 1613, 4138, 1470, 1427, 1417, 1384, 1333, 1285, 1262, 1705,
725 3035, 1615, 3038, 1729, 1736, 1725, 3041, 1533, 1641, 1217,
726 1230, 1231, 1118, 1101, 987, 941, 1799, 3045, 1668, 3058,
727 1857, 1866, 1792, 3066, 3075, 1541, 3078, 961, 977, 862,
728 872, 780, 723, 1853, 1470, 1698, 1578, 1723, 1890, 1905,
729 1931, 1760, 1932, 1934, 3083, 3094, 3100, 3104, 706, 4138,
730 652, 4138, 603, 560, 1845, 704, 1018, 3112, 1191, 1305,
731 1963, 1982, 3116, 1540, 1813, 1940, 2020, 3119, 3129, 4138,
732 4138, 4138, 4138, 575, 572, 3137, 2064, 2068, 3140, 2109,
734 2145, 3148, 3157, 3161, 2151, 2248, 1868, 1894, 2062, 2066,
735 499, 495, 3174, 1347, 1580, 2204, 2237, 1612, 1763, 3182,
736 3192, 2262, 2263, 1795, 1889, 2256, 2266, 1994, 2005, 449,
737 393, 2277, 2299, 1137, 1917, 2041, 2321, 2209, 2288, 2341,
738 2356, 2369, 2393, 2323, 2405, 2419, 2430, 2095, 2123, 2358,
739 2382, 308, 247, 2444, 2457, 1425, 1609, 2433, 2435, 1666,
740 2178, 2460, 2468, 2470, 2499, 2452, 2512, 2484, 2536, 2533,
741 2570, 2153, 2361, 227, 137, 2578, 2584, 996, 1696, 2528,
742 2606, 1987, 2340, 2598, 2603, 2617, 2645, 2642, 2654, 2634,
743 2665, 2714, 2722, 2600, 2668, 3170, 3200, 2673, 2749, 748,
745 2011, 2758, 2760, 2814, 2815, 2766, 2830, 2831, 2852, 2862,
746 2863, 2888, 2917, 2737, 2757, 2735, 2777, 3203, 3209, 3219,
747 3222, 2882, 2911, 2181, 2925, 2890, 2939, 2964, 2966, 2956,
748 2988, 3028, 3037, 2953, 2983, 2967, 3014, 2937, 3047, 3055,
749 3076, 3231, 4138, 4138, 3239, 4138, 4138, 3073, 3111, 2407,
750 2675, 3118, 3139, 2994, 3008, 3130, 3179, 3181, 3196, 3201,
751 3209, 3053, 3135, 3211, 3220, 3136, 3198, 3221, 3226, 3231,
752 3232, 3235, 3244, 3234, 3238, 3239, 3240, 3242, 3243, 3254,
753 3255, 3251, 3252, 3246, 3249, 3260, 3262, 3268, 3273, 1472,
754 3065, 3265, 3267, 2383, 3091, 3288, 3291, 3300, 3301, 3270,
756 3278, 2899, 3305, 3279, 3282, 3269, 3280, 3283, 3297, 3326,
757 3298, 3299, 3329, 3302, 3306, 3316, 3317, 3318, 3319, 3348,
758 2913, 3330, 3324, 3325, 3323, 3328, 3351, 4138, 3340, 3344,
759 3361, 4138, 3343, 3352, 3353, 3354, 3355, 3356, 3386, 4138,
760 3389, 2952, 3366, 3360, 3362, 3376, 3388, 3377, 3378, 3382,
761 3384, 3408, 3399, 3420, 4138, 3426, 3413, 3400, 3430, 3429,
762 3427, 3431, 3432, 3449, 3452, 4138, 3455, 3458, 4138, 3461,
763 3478, 3481, 4138, 3484, 4138, 3487, 4138, 3490, 4138, 4138,
764 3508, 3515, 3522, 3529, 3536, 3543, 3550, 3557, 3564, 3571,
765 3578, 3585, 3592, 3599, 3606, 3613, 3620, 3627, 3634, 3641,
767 3648, 3655, 3662, 3669, 3676, 3683, 3690, 3697, 3702, 3707,
768 3712, 3717, 3722, 3727, 3732, 3737, 3742, 3747, 3754, 3757,
769 3760, 3763, 3766, 3769, 3772, 3775, 3778, 3781, 3784, 3791,
770 3795, 3801, 3807, 3813, 3819, 3825, 3831, 3837, 3843, 3849,
771 3855, 3862, 3869, 3876, 3883, 3890, 3897, 3904
774 static yyconst flex_int16_t yy_def[1549] =
776 1481, 1481, 1482, 1482, 1482, 1482, 1483, 1483, 1484, 1484,
777 1485, 1485, 1486, 1486, 1486, 1486, 1487, 1487, 1481, 1481,
778 1488, 1488, 1489, 1489, 1489, 1489, 1481, 1481, 1489, 1489,
779 1481, 1481, 1489, 1489, 1489, 1489, 1481, 1481, 1490, 1490,
780 1491, 1491, 1481, 1481, 1492, 1492, 1493, 1493, 1481, 1481,
781 1493, 1493, 1493, 1493, 1481, 1481, 1494, 1494, 1495, 1495,
782 1481, 1481, 1496, 1496, 1497, 1497, 1481, 1481, 1498, 1498,
783 1499, 1499, 1481, 1481, 1499, 1499, 1499, 1499, 1481, 1481,
784 1500, 1500, 1501, 1501, 1481, 1481, 1501, 1501, 1501, 1501,
785 1481, 1481, 1502, 1502, 1503, 1503, 1481, 1481, 1504, 1504,
787 1505, 1505, 1481, 1481, 1505, 1505, 1505, 1505, 1481, 1481,
788 1506, 1506, 1507, 1507, 1508, 1508, 1480, 1480, 1480, 1480,
789 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
790 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
791 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1509, 1480, 1480,
792 1509, 1509, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
793 1480, 1480, 1480, 1510, 1480, 1480, 1510, 1480, 1480, 1480,
794 1480, 1480, 1480, 1480, 1511, 1480, 1480, 1511, 1511, 1511,
795 1511, 1511, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
796 1512, 1480, 1480, 1512, 1512, 1480, 1480, 1480, 1480, 1480,
798 1480, 1480, 1513, 1480, 1480, 1513, 1480, 1480, 1480, 1480,
799 1480, 1480, 1480, 1514, 1480, 1480, 1514, 1514, 1514, 1514,
800 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1515, 1480,
801 1480, 1515, 1515, 1515, 1480, 1480, 1480, 1480, 1480, 1480,
802 1480, 1480, 1516, 1480, 1480, 1516, 1480, 1480, 1480, 1480,
803 1480, 1480, 1480, 1517, 1480, 1480, 1517, 1517, 1517, 1517,
804 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1518,
805 1480, 1480, 1518, 1480, 1480, 1480, 1480, 1480, 1480, 1519,
806 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
807 1480, 1480, 1480, 1480, 1480, 1509, 1509, 1509, 1520, 1480,
809 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1510, 1510, 1521,
810 1480, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1522, 1480,
811 1480, 1512, 1512, 1512, 1523, 1480, 1513, 1513, 1524, 1480,
812 1514, 1514, 1514, 1514, 1514, 1514, 1525, 1480, 1515, 1515,
813 1515, 1515, 1526, 1480, 1480, 1516, 1516, 1527, 1480, 1517,
814 1517, 1517, 1517, 1517, 1528, 1480, 1480, 1518, 1518, 1529,
815 1480, 1480, 1530, 1480, 1530, 1480, 1480, 1480, 1531, 1480,
816 1480, 1480, 1480, 1480, 1480, 1480, 1509, 1509, 1532, 1532,
817 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1510, 1533, 1533,
818 1511, 1480, 1480, 1511, 1511, 1511, 1511, 1534, 1534, 1480,
820 1480, 1480, 1512, 1535, 1535, 1480, 1480, 1536, 1536, 1514,
821 1480, 1480, 1514, 1514, 1514, 1537, 1537, 1515, 1515, 1515,
822 1538, 1538, 1480, 1480, 1480, 1539, 1539, 1517, 1517, 1517,
823 1517, 1540, 1540, 1480, 1518, 1541, 1541, 1480, 1480, 1530,
824 1480, 1480, 1530, 1480, 1480, 1531, 1480, 1480, 1480, 1480,
825 1480, 1480, 1509, 1509, 1480, 1532, 1480, 1532, 1480, 1480,
826 1480, 1480, 1480, 1480, 1480, 1510, 1480, 1533, 1480, 1533,
827 1511, 1480, 1480, 1480, 1511, 1511, 1511, 1511, 1480, 1534,
828 1480, 1534, 1480, 1480, 1480, 1480, 1512, 1480, 1535, 1480,
829 1535, 1480, 1480, 1480, 1480, 1536, 1480, 1536, 1514, 1480,
831 1480, 1480, 1514, 1514, 1514, 1480, 1537, 1480, 1537, 1480,
832 1480, 1515, 1480, 1480, 1480, 1538, 1480, 1538, 1480, 1480,
833 1480, 1480, 1480, 1539, 1480, 1539, 1517, 1517, 1517, 1517,
834 1480, 1540, 1480, 1540, 1480, 1518, 1480, 1541, 1480, 1541,
835 1480, 1530, 1542, 1480, 1480, 1480, 1480, 1480, 1509, 1509,
836 1532, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
837 1533, 1511, 1511, 1511, 1511, 1511, 1534, 1480, 1512, 1535,
838 1536, 1514, 1514, 1514, 1514, 1537, 1480, 1480, 1480, 1515,
839 1480, 1480, 1480, 1538, 1480, 1539, 1517, 1480, 1480, 1517,
840 1517, 1540, 1480, 1518, 1541, 1480, 1530, 1542, 1542, 1480,
842 1542, 1480, 1480, 1480, 1509, 1509, 1532, 1480, 1480, 1480,
843 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1533, 1511, 1511,
844 1511, 1480, 1480, 1480, 1480, 1511, 1534, 1480, 1480, 1480,
845 1535, 1536, 1514, 1514, 1514, 1480, 1480, 1514, 1537, 1515,
846 1538, 1480, 1539, 1517, 1480, 1480, 1480, 1517, 1517, 1540,
847 1480, 1480, 1480, 1541, 1480, 1530, 1542, 1542, 1480, 1480,
848 1509, 1509, 1509, 1532, 1480, 1480, 1480, 1480, 1533, 1511,
849 1511, 1511, 1480, 1480, 1480, 1480, 1480, 1480, 1511, 1480,
850 1480, 1480, 1480, 1480, 1480, 1480, 1536, 1514, 1514, 1514,
851 1480, 1480, 1480, 1514, 1480, 1480, 1515, 1538, 1480, 1539,
853 1517, 1517, 1517, 1540, 1480, 1480, 1480, 1480, 1541, 1480,
854 1530, 1542, 1542, 1480, 1480, 1480, 1509, 1509, 1532, 1480,
855 1480, 1480, 1533, 1511, 1511, 1511, 1480, 1480, 1511, 1536,
856 1514, 1480, 1480, 1514, 1514, 1480, 1480, 1514, 1515, 1480,
857 1480, 1480, 1539, 1517, 1517, 1517, 1540, 1480, 1541, 1480,
858 1530, 1542, 1542, 1480, 1480, 1480, 1480, 1509, 1509, 1532,
859 1480, 1480, 1533, 1511, 1511, 1511, 1480, 1480, 1480, 1480,
860 1511, 1480, 1480, 1514, 1480, 1480, 1480, 1514, 1514, 1480,
861 1480, 1480, 1480, 1514, 1515, 1480, 1539, 1480, 1480, 1517,
862 1517, 1540, 1480, 1541, 1480, 1530, 1542, 1542, 1480, 1509,
864 1509, 1532, 1480, 1480, 1511, 1511, 1511, 1480, 1480, 1480,
865 1480, 1511, 1480, 1480, 1514, 1514, 1514, 1480, 1480, 1480,
866 1480, 1514, 1515, 1480, 1539, 1480, 1480, 1480, 1480, 1480,
867 1517, 1480, 1480, 1480, 1541, 1530, 1530, 1530, 1530, 1530,
868 1530, 1542, 1542, 1480, 1480, 1509, 1480, 1480, 1511, 1511,
869 1511, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1514, 1514,
870 1514, 1480, 1480, 1480, 1480, 1515, 1515, 1480, 1480, 1480,
871 1480, 1480, 1480, 1480, 1480, 1480, 1530, 1530, 1530, 1530,
872 1530, 1530, 1530, 1542, 1542, 1480, 1480, 1480, 1480, 1480,
873 1511, 1511, 1511, 1480, 1480, 1480, 1514, 1514, 1514, 1480,
875 1480, 1480, 1515, 1515, 1480, 1480, 1480, 1530, 1530, 1530,
876 1530, 1530, 1530, 1530, 1542, 1542, 1480, 1480, 1480, 1480,
877 1480, 1511, 1511, 1511, 1514, 1480, 1480, 1514, 1515, 1515,
878 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1542, 1542,
879 1542, 1480, 1480, 1480, 1511, 1511, 1511, 1511, 1514, 1480,
880 1480, 1480, 1514, 1480, 1480, 1515, 1480, 1480, 1515, 1530,
881 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1542, 1542,
882 1542, 1543, 1544, 1511, 1511, 1511, 1511, 1480, 1480, 1480,
883 1480, 1480, 1480, 1480, 1515, 1480, 1480, 1480, 1515, 1530,
884 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1542,
886 1545, 1546, 1543, 1544, 1511, 1511, 1511, 1511, 1480, 1480,
887 1480, 1480, 1480, 1480, 1515, 1515, 1530, 1530, 1530, 1530,
888 1530, 1530, 1530, 1530, 1530, 1530, 1545, 1542, 1547, 1546,
889 1548, 1542, 1511, 1511, 1511, 1511, 1480, 1480, 1480, 1480,
890 1515, 1515, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
891 1530, 1530, 1547, 1480, 1548, 1542, 1480, 1480, 1480, 1480,
892 1480, 1480, 1511, 1480, 1480, 1480, 1480, 1480, 1480, 1515,
893 1515, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
894 1530, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
895 1480, 1511, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1515,
897 1515, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
898 1530, 1480, 1511, 1480, 1480, 1480, 1480, 1515, 1515, 1530,
899 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1511,
900 1480, 1480, 1480, 1480, 1515, 1515, 1530, 1530, 1530, 1530,
901 1530, 1530, 1530, 1530, 1530, 1530, 1511, 1480, 1480, 1480,
902 1480, 1515, 1515, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
903 1530, 1530, 1530, 1530, 1530, 1530, 1480, 1480, 1480, 1480,
904 1480, 1480, 1515, 1515, 1530, 1530, 1530, 1530, 1530, 1530,
905 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1480, 1480,
906 1480, 1480, 1480, 1515, 1515, 1530, 1530, 1530, 1530, 1530,
908 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
909 1515, 1515, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
910 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1515,
911 1515, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
912 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
913 1530, 1515, 1515, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
914 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
915 1530, 1530, 1530, 1515, 1515, 1530, 1530, 1530, 1530, 1530,
916 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
917 1530, 1530, 1530, 1530, 1530, 1515, 1515, 1530, 1530, 1530,
919 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
920 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1480, 1480, 1480,
921 1480, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
922 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
923 1530, 1480, 1480, 1480, 1480, 1480, 1480, 1530, 1530, 1530,
924 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
925 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
926 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
927 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
928 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
930 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
931 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
932 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1480, 1530, 1530,
933 1530, 1480, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1480,
934 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1530,
935 1530, 1530, 1530, 1530, 1480, 1530, 1530, 1530, 1530, 1530,
936 1530, 1530, 1530, 1530, 1530, 1480, 1530, 1530, 1480, 1530,
937 1530, 1530, 1480, 1530, 1480, 1530, 1480, 1530, 1480, 0,
938 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
939 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
941 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
942 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
943 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
944 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
945 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480
948 static yyconst flex_int16_t yy_nxt[4202] =
950 1480, 120, 121, 120, 120, 121, 120, 120, 121, 120,
951 120, 121, 120, 128, 1480, 122, 128, 131, 122, 131,
952 129, 123, 1028, 129, 123, 125, 121, 125, 125, 121,
953 125, 134, 135, 132, 1029, 132, 136, 137, 368, 126,
954 134, 135, 126, 364, 138, 136, 137, 134, 135, 314,
955 139, 280, 136, 138, 134, 135, 365, 139, 315, 136,
956 138, 141, 142, 141, 142, 281, 280, 138, 121, 121,
957 121, 121, 121, 121, 154, 121, 154, 154, 121, 154,
958 282, 283, 144, 283, 662, 144, 370, 369, 155, 371,
959 663, 155, 279, 279, 279, 282, 143, 282, 143, 145,
961 146, 121, 146, 145, 145, 145, 145, 145, 145, 145,
962 147, 145, 441, 145, 149, 145, 150, 145, 154, 121,
963 154, 441, 335, 154, 121, 154, 121, 121, 121, 121,
964 121, 121, 156, 336, 443, 145, 145, 156, 441, 368,
965 157, 445, 542, 157, 933, 154, 121, 154, 279, 279,
966 279, 279, 279, 279, 279, 279, 279, 441, 151, 155,
967 152, 145, 146, 121, 146, 145, 145, 145, 145, 145,
968 145, 145, 147, 145, 597, 145, 149, 145, 150, 145,
969 154, 121, 154, 441, 600, 121, 121, 121, 121, 121,
970 121, 154, 121, 154, 155, 288, 1297, 145, 145, 158,
972 600, 656, 158, 946, 947, 156, 600, 154, 121, 154,
973 154, 121, 154, 154, 121, 154, 121, 121, 121, 797,
974 151, 156, 152, 441, 159, 283, 713, 159, 289, 751,
975 160, 121, 121, 121, 290, 279, 279, 279, 291, 282,
976 279, 279, 279, 292, 753, 160, 161, 162, 121, 162,
977 161, 161, 161, 161, 161, 161, 161, 163, 161, 441,
978 161, 165, 161, 166, 161, 169, 121, 169, 301, 1296,
979 169, 121, 169, 121, 121, 121, 279, 279, 279, 170,
980 600, 767, 161, 161, 170, 966, 768, 171, 1275, 600,
981 167, 161, 162, 121, 162, 161, 161, 161, 161, 161,
983 161, 161, 163, 161, 600, 161, 165, 161, 166, 161,
984 121, 121, 121, 752, 712, 184, 121, 184, 184, 121,
985 184, 279, 279, 279, 171, 769, 780, 161, 161, 185,
986 770, 781, 185, 600, 843, 167, 172, 173, 121, 173,
987 172, 172, 172, 172, 172, 172, 172, 174, 172, 600,
988 172, 176, 172, 177, 172, 121, 121, 121, 842, 1274,
989 121, 121, 121, 184, 121, 184, 184, 121, 184, 186,
990 283, 283, 172, 172, 186, 178, 283, 185, 299, 1028,
991 185, 441, 782, 179, 282, 282, 180, 783, 798, 181,
992 282, 1029, 182, 172, 173, 121, 173, 172, 172, 172,
994 172, 172, 172, 172, 174, 172, 441, 172, 176, 172,
995 177, 172, 184, 121, 184, 441, 878, 184, 121, 184,
996 121, 121, 121, 121, 121, 121, 187, 283, 283, 172,
997 172, 187, 178, 283, 186, 310, 1253, 186, 441, 1028,
998 179, 282, 282, 180, 877, 880, 181, 282, 1031, 182,
999 188, 189, 121, 189, 188, 188, 188, 188, 188, 188,
1000 188, 190, 188, 600, 188, 192, 188, 193, 188, 197,
1001 121, 197, 879, 441, 197, 121, 197, 121, 121, 121,
1002 121, 121, 121, 198, 283, 441, 188, 188, 198, 283,
1003 283, 199, 1252, 884, 199, 441, 319, 194, 282, 279,
1005 279, 279, 1073, 282, 282, 279, 279, 279, 883, 195,
1006 188, 189, 121, 189, 188, 188, 188, 188, 188, 188,
1007 188, 190, 188, 908, 188, 192, 188, 193, 188, 208,
1008 121, 208, 300, 294, 208, 121, 208, 121, 121, 121,
1009 121, 121, 121, 209, 283, 441, 188, 188, 209, 283,
1010 1231, 210, 441, 283, 210, 1230, 325, 194, 282, 279,
1011 279, 279, 1075, 282, 279, 279, 279, 282, 441, 195,
1012 200, 201, 121, 201, 200, 200, 200, 200, 200, 200,
1013 200, 202, 200, 934, 200, 204, 200, 205, 200, 222,
1014 121, 222, 441, 320, 222, 121, 222, 121, 121, 121,
1016 121, 121, 121, 223, 306, 600, 200, 200, 223, 914,
1017 1212, 186, 441, 1211, 186, 1195, 441, 206, 200, 201,
1018 121, 201, 200, 200, 200, 200, 200, 200, 200, 202,
1019 200, 909, 200, 204, 200, 205, 200, 222, 121, 222,
1020 885, 441, 222, 121, 222, 222, 121, 222, 222, 121,
1021 222, 223, 441, 931, 200, 200, 223, 962, 1194, 224,
1022 1193, 600, 224, 912, 441, 206, 211, 212, 121, 212,
1023 211, 211, 211, 211, 211, 211, 211, 213, 211, 965,
1024 211, 215, 211, 216, 211, 121, 121, 121, 910, 939,
1025 121, 121, 121, 236, 121, 236, 236, 121, 236, 225,
1027 283, 441, 211, 211, 225, 283, 217, 237, 600, 601,
1028 237, 1192, 329, 218, 282, 219, 279, 279, 279, 282,
1029 441, 441, 220, 211, 212, 121, 212, 211, 211, 211,
1030 211, 211, 211, 211, 213, 211, 913, 211, 215, 211,
1031 216, 211, 121, 121, 121, 302, 968, 121, 121, 121,
1032 236, 121, 236, 236, 121, 236, 238, 283, 1324, 211,
1033 211, 238, 1197, 217, 237, 441, 1174, 237, 441, 600,
1034 218, 282, 219, 279, 279, 279, 279, 279, 279, 220,
1035 226, 227, 121, 227, 226, 226, 226, 226, 226, 226,
1036 226, 228, 226, 441, 226, 230, 226, 231, 226, 236,
1038 121, 236, 911, 915, 236, 121, 236, 121, 121, 121,
1039 121, 121, 121, 239, 441, 441, 226, 226, 239, 283,
1040 283, 238, 232, 1173, 238, 881, 337, 233, 279, 279,
1041 279, 882, 1018, 282, 282, 441, 234, 226, 227, 121,
1042 227, 226, 226, 226, 226, 226, 226, 226, 228, 226,
1043 995, 226, 230, 226, 231, 226, 248, 121, 248, 441,
1044 992, 248, 121, 248, 121, 121, 121, 121, 121, 121,
1045 249, 305, 283, 226, 226, 249, 283, 283, 250, 232,
1046 1172, 250, 600, 343, 233, 1171, 282, 279, 279, 279,
1047 282, 282, 960, 234, 240, 241, 121, 241, 240, 240,
1049 240, 240, 240, 240, 240, 242, 240, 441, 240, 244,
1050 240, 245, 240, 262, 121, 262, 916, 441, 262, 121,
1051 262, 121, 121, 121, 121, 121, 121, 263, 441, 441,
1052 240, 240, 263, 990, 1079, 264, 441, 441, 264, 1121,
1053 441, 246, 240, 241, 121, 241, 240, 240, 240, 240,
1054 240, 240, 240, 242, 240, 1019, 240, 244, 240, 245,
1055 240, 262, 121, 262, 994, 441, 262, 121, 262, 262,
1056 121, 262, 262, 121, 262, 263, 932, 935, 240, 240,
1057 263, 1044, 1170, 265, 1169, 441, 265, 1153, 441, 246,
1058 251, 252, 121, 252, 251, 251, 251, 251, 251, 251,
1060 251, 253, 251, 1020, 251, 255, 251, 256, 251, 121,
1061 121, 121, 936, 441, 121, 121, 121, 275, 121, 275,
1062 279, 279, 279, 266, 937, 283, 251, 251, 266, 283,
1063 283, 276, 319, 1152, 257, 441, 258, 299, 259, 282,
1064 279, 279, 279, 282, 282, 1300, 260, 251, 252, 121,
1065 252, 251, 251, 251, 251, 251, 251, 251, 253, 251,
1066 441, 251, 255, 251, 256, 251, 275, 121, 275, 279,
1067 279, 279, 300, 301, 320, 302, 1198, 441, 303, 303,
1068 276, 304, 283, 251, 251, 283, 283, 283, 1037, 134,
1069 135, 257, 299, 258, 136, 259, 282, 1038, 1022, 282,
1071 282, 282, 277, 260, 267, 268, 121, 268, 267, 267,
1072 267, 267, 267, 267, 267, 269, 267, 938, 267, 271,
1073 267, 272, 267, 1151, 278, 134, 135, 344, 301, 301,
1074 136, 279, 279, 279, 303, 303, 305, 305, 277, 283,
1075 267, 267, 283, 283, 283, 283, 337, 283, 283, 1150,
1076 348, 343, 355, 282, 441, 355, 282, 282, 282, 282,
1077 278, 282, 282, 273, 267, 268, 121, 268, 267, 267,
1078 267, 267, 267, 267, 267, 269, 267, 283, 267, 271,
1079 267, 272, 267, 356, 300, 301, 441, 302, 320, 344,
1080 283, 282, 441, 306, 279, 279, 279, 320, 1256, 441,
1082 267, 267, 283, 1110, 282, 279, 279, 279, 441, 360,
1083 441, 441, 356, 279, 279, 279, 282, 392, 392, 392,
1084 401, 401, 401, 273, 711, 356, 320, 406, 406, 406,
1085 441, 996, 393, 1017, 441, 402, 411, 411, 411, 424,
1086 424, 424, 407, 455, 455, 455, 455, 455, 455, 1200,
1087 1023, 412, 1024, 1149, 425, 467, 467, 467, 866, 457,
1088 1039, 1148, 457, 467, 467, 467, 392, 392, 392, 1040,
1089 1021, 469, 867, 472, 472, 472, 1147, 473, 441, 469,
1090 474, 393, 479, 479, 479, 479, 479, 479, 401, 401,
1091 401, 488, 488, 488, 458, 484, 484, 484, 481, 485,
1093 441, 481, 486, 402, 488, 488, 488, 490, 406, 406,
1094 406, 1123, 1047, 470, 492, 492, 492, 441, 493, 1136,
1095 490, 494, 441, 407, 495, 495, 495, 495, 495, 495,
1096 411, 411, 411, 506, 506, 506, 482, 500, 500, 500,
1097 497, 501, 1135, 497, 502, 412, 506, 506, 506, 508,
1098 510, 510, 510, 513, 513, 513, 1134, 1043, 491, 515,
1099 515, 515, 508, 1201, 441, 511, 441, 1028, 514, 515,
1100 515, 515, 424, 424, 424, 517, 1031, 441, 498, 520,
1101 520, 520, 1046, 521, 441, 517, 522, 425, 523, 523,
1102 523, 1234, 509, 523, 523, 523, 531, 531, 531, 531,
1104 531, 531, 1051, 441, 525, 537, 537, 537, 441, 525,
1105 1048, 1133, 533, 441, 1103, 533, 537, 537, 537, 1050,
1106 518, 539, 455, 455, 455, 455, 455, 455, 455, 455,
1107 455, 1081, 539, 559, 559, 559, 441, 441, 457, 526,
1108 1132, 457, 441, 1105, 457, 467, 467, 467, 560, 467,
1109 467, 467, 1080, 534, 1131, 467, 467, 467, 608, 608,
1110 608, 469, 479, 479, 479, 469, 551, 479, 479, 479,
1111 540, 469, 472, 472, 472, 1278, 473, 1410, 481, 474,
1112 479, 479, 479, 481, 484, 484, 484, 441, 485, 441,
1113 441, 486, 488, 488, 488, 561, 481, 488, 488, 488,
1115 488, 488, 488, 492, 492, 492, 1111, 493, 490, 441,
1116 494, 1130, 441, 490, 441, 1109, 490, 495, 495, 495,
1117 495, 495, 495, 495, 495, 495, 1176, 500, 500, 500,
1118 1104, 501, 1108, 497, 502, 567, 497, 441, 441, 497,
1119 506, 506, 506, 506, 506, 506, 506, 506, 506, 1127,
1120 441, 570, 510, 510, 510, 1120, 508, 441, 441, 508,
1121 441, 1145, 508, 441, 577, 577, 577, 511, 578, 1166,
1122 441, 579, 513, 513, 513, 581, 581, 581, 1124, 582,
1123 571, 1125, 583, 515, 515, 515, 1122, 514, 515, 515,
1124 515, 515, 515, 515, 441, 441, 576, 441, 1205, 517,
1126 1128, 520, 520, 520, 517, 521, 1178, 517, 522, 523,
1127 523, 523, 523, 523, 523, 523, 523, 523, 588, 588,
1128 588, 531, 531, 531, 1235, 525, 441, 1119, 525, 441,
1129 441, 525, 441, 589, 531, 531, 531, 533, 531, 531,
1130 531, 537, 537, 537, 537, 537, 537, 1129, 584, 1139,
1131 533, 537, 537, 537, 533, 1118, 1238, 539, 441, 1279,
1132 539, 599, 599, 599, 1146, 586, 441, 539, 455, 455,
1133 455, 610, 610, 610, 628, 628, 628, 600, 601, 559,
1134 559, 559, 1126, 441, 457, 441, 615, 615, 615, 592,
1135 616, 1157, 1117, 617, 560, 595, 467, 467, 467, 622,
1137 622, 622, 624, 624, 624, 479, 479, 479, 629, 629,
1138 629, 1116, 469, 441, 623, 441, 1282, 625, 488, 488,
1139 488, 481, 441, 630, 607, 495, 495, 495, 636, 636,
1140 636, 506, 506, 506, 490, 515, 515, 515, 1137, 626,
1141 441, 497, 441, 637, 618, 1301, 441, 508, 577, 577,
1142 577, 517, 578, 441, 1177, 579, 581, 581, 581, 1143,
1143 582, 627, 1141, 583, 1115, 638, 523, 523, 523, 1142,
1144 631, 588, 588, 588, 652, 652, 652, 441, 639, 1179,
1145 441, 632, 525, 645, 645, 645, 589, 646, 1183, 653,
1146 647, 641, 531, 531, 531, 537, 537, 537, 599, 599,
1148 599, 455, 455, 455, 608, 608, 608, 1239, 533, 441,
1149 1114, 539, 441, 643, 600, 1162, 441, 457, 610, 610,
1150 610, 667, 667, 667, 667, 667, 667, 615, 615, 615,
1151 441, 616, 650, 1154, 617, 467, 467, 467, 1113, 1246,
1152 657, 628, 628, 628, 664, 622, 622, 622, 624, 624,
1153 624, 469, 654, 629, 629, 629, 658, 673, 673, 673,
1154 623, 674, 441, 625, 675, 676, 676, 676, 630, 677,
1155 441, 1206, 678, 1196, 441, 668, 1175, 680, 680, 680,
1156 682, 682, 682, 441, 683, 441, 1112, 684, 685, 685,
1157 685, 1160, 669, 681, 495, 495, 495, 636, 636, 636,
1159 1161, 691, 691, 691, 686, 692, 441, 441, 693, 1101,
1160 497, 441, 637, 695, 695, 695, 515, 515, 515, 523,
1161 523, 523, 441, 645, 645, 645, 1226, 646, 1181, 696,
1162 647, 700, 517, 1247, 441, 525, 687, 531, 531, 531,
1163 652, 652, 652, 706, 706, 706, 1180, 707, 441, 441,
1164 708, 441, 1227, 533, 1182, 653, 1100, 441, 698, 537,
1165 537, 537, 715, 715, 715, 455, 455, 455, 667, 667,
1166 667, 722, 722, 722, 1099, 539, 1098, 716, 1257, 704,
1167 441, 457, 467, 467, 467, 673, 673, 673, 1184, 674,
1168 1185, 1202, 675, 676, 676, 676, 1207, 677, 469, 441,
1170 678, 680, 680, 680, 441, 682, 682, 682, 709, 683,
1171 1203, 441, 684, 685, 685, 685, 719, 681, 495, 495,
1172 495, 1325, 441, 723, 732, 732, 732, 1097, 441, 686,
1173 1096, 691, 691, 691, 497, 692, 1304, 441, 693, 733,
1174 695, 695, 695, 740, 740, 740, 523, 523, 523, 531,
1175 531, 531, 1250, 706, 706, 706, 696, 707, 441, 741,
1176 708, 734, 525, 1251, 1092, 533, 537, 537, 537, 715,
1177 715, 715, 730, 755, 755, 755, 1208, 756, 1054, 441,
1178 757, 441, 539, 441, 716, 441, 743, 455, 455, 455,
1179 761, 761, 761, 762, 762, 762, 722, 722, 722, 1258,
1181 467, 467, 467, 457, 747, 772, 772, 772, 749, 732,
1182 732, 732, 441, 775, 775, 775, 469, 776, 1228, 1214,
1183 777, 773, 1229, 1215, 733, 1082, 441, 740, 740, 740,
1184 523, 523, 523, 788, 788, 788, 531, 531, 531, 1270,
1185 441, 760, 763, 741, 1054, 1071, 525, 1070, 789, 537,
1186 537, 537, 533, 796, 796, 796, 799, 799, 799, 755,
1187 755, 755, 441, 756, 1218, 539, 757, 1271, 441, 441,
1188 441, 455, 455, 455, 761, 761, 761, 762, 762, 762,
1189 803, 803, 803, 824, 824, 824, 787, 457, 772, 772,
1190 772, 792, 813, 813, 813, 441, 804, 1294, 441, 794,
1192 1219, 775, 775, 775, 773, 776, 1224, 814, 777, 523,
1193 523, 523, 788, 788, 788, 826, 826, 826, 1069, 827,
1194 802, 441, 828, 1350, 1068, 525, 441, 789, 1283, 815,
1195 829, 829, 829, 832, 832, 832, 834, 834, 834, 537,
1196 537, 537, 799, 799, 799, 830, 844, 844, 844, 833,
1197 847, 847, 847, 1067, 441, 539, 803, 803, 803, 825,
1198 1236, 845, 854, 854, 854, 441, 848, 813, 813, 813,
1199 1260, 1066, 804, 441, 856, 856, 856, 855, 857, 441,
1200 441, 858, 814, 441, 864, 864, 864, 824, 824, 824,
1201 868, 868, 868, 1237, 441, 835, 796, 796, 796, 865,
1203 826, 826, 826, 1225, 827, 441, 869, 828, 829, 829,
1204 829, 1248, 441, 870, 870, 870, 441, 871, 1244, 1245,
1205 872, 1249, 1054, 830, 873, 873, 873, 832, 832, 832,
1206 834, 834, 834, 1254, 836, 875, 875, 875, 441, 874,
1207 441, 837, 838, 833, 839, 844, 844, 844, 840, 1261,
1208 841, 876, 886, 886, 886, 1255, 887, 441, 441, 888,
1209 845, 889, 889, 889, 847, 847, 847, 854, 854, 854,
1210 894, 894, 894, 441, 895, 441, 890, 896, 441, 1259,
1211 848, 1266, 855, 856, 856, 856, 441, 857, 1413, 1305,
1212 858, 864, 864, 864, 900, 900, 900, 1262, 901, 441,
1214 441, 902, 868, 868, 868, 1295, 865, 870, 870, 870,
1215 441, 871, 1263, 1272, 872, 873, 873, 873, 869, 905,
1216 905, 905, 441, 906, 441, 1264, 907, 875, 875, 875,
1217 874, 886, 886, 886, 1054, 887, 441, 1273, 888, 889,
1218 889, 889, 1042, 876, 917, 917, 917, 441, 918, 1265,
1219 441, 919, 441, 1041, 890, 920, 920, 920, 894, 894,
1220 894, 441, 895, 1267, 1370, 896, 926, 926, 926, 441,
1221 921, 900, 900, 900, 441, 901, 1036, 441, 902, 1035,
1222 1268, 927, 905, 905, 905, 441, 906, 441, 1280, 907,
1223 1281, 1269, 922, 940, 940, 940, 917, 917, 917, 1034,
1225 918, 441, 1276, 919, 920, 920, 920, 1288, 941, 600,
1226 942, 942, 942, 1033, 943, 1277, 441, 944, 1284, 921,
1227 926, 926, 926, 950, 950, 950, 1285, 951, 1286, 441,
1228 952, 954, 954, 954, 1290, 927, 957, 957, 957, 961,
1229 961, 961, 963, 963, 963, 441, 955, 967, 967, 967,
1230 441, 958, 1016, 441, 964, 441, 1015, 1287, 441, 969,
1231 969, 969, 1008, 441, 940, 940, 940, 1289, 956, 978,
1232 978, 978, 1302, 959, 970, 600, 1026, 1026, 1026, 941,
1233 600, 971, 971, 971, 979, 972, 1291, 441, 973, 942,
1234 942, 942, 441, 943, 1292, 441, 944, 600, 950, 950,
1236 950, 441, 951, 1007, 1006, 952, 980, 980, 980, 954,
1237 954, 954, 982, 982, 982, 441, 983, 441, 1005, 984,
1238 441, 981, 989, 441, 955, 957, 957, 957, 986, 986,
1239 986, 1293, 987, 1298, 441, 988, 961, 961, 961, 1299,
1240 958, 963, 963, 963, 967, 967, 967, 998, 998, 998,
1241 1303, 441, 441, 1306, 969, 969, 969, 441, 1307, 441,
1242 441, 1316, 441, 441, 985, 978, 978, 978, 991, 970,
1243 600, 441, 1308, 993, 977, 976, 997, 1000, 1000, 1000,
1244 979, 1001, 441, 1312, 1002, 441, 1310, 971, 971, 971,
1245 441, 972, 441, 600, 973, 1009, 1009, 1009, 1311, 1010,
1247 1309, 999, 1011, 600, 598, 598, 598, 598, 598, 598,
1248 598, 598, 598, 975, 1313, 598, 974, 1322, 598, 598,
1249 598, 600, 598, 980, 980, 980, 1012, 1012, 1012, 1317,
1250 1013, 441, 1371, 1014, 953, 998, 998, 998, 981, 441,
1251 598, 598, 598, 598, 598, 598, 598, 598, 598, 598,
1252 598, 441, 441, 598, 441, 949, 598, 598, 598, 600,
1253 598, 982, 982, 982, 1314, 983, 441, 1025, 984, 986,
1254 986, 986, 1315, 987, 441, 441, 988, 441, 598, 598,
1255 1000, 1000, 1000, 441, 1001, 1340, 1338, 1002, 1009, 1009,
1256 1009, 948, 1010, 1323, 441, 1011, 600, 598, 598, 598,
1258 598, 598, 1032, 598, 598, 598, 1339, 945, 598, 930,
1259 1330, 598, 598, 598, 600, 598, 1012, 1012, 1012, 1326,
1260 1013, 1327, 929, 1014, 1328, 1329, 928, 1341, 1045, 1045,
1261 1045, 441, 441, 598, 598, 598, 598, 598, 598, 598,
1262 598, 598, 598, 1032, 441, 925, 598, 441, 441, 598,
1263 598, 598, 600, 598, 1049, 1049, 1049, 1026, 1026, 1026,
1264 1056, 1056, 1056, 1057, 1057, 1057, 1059, 1059, 1059, 441,
1265 441, 598, 598, 441, 1331, 1332, 600, 601, 1058, 441,
1266 441, 1060, 1061, 1061, 1061, 1064, 1064, 1064, 924, 1052,
1267 1072, 1072, 1072, 1045, 1045, 1045, 1333, 1062, 1336, 441,
1269 1065, 1076, 1076, 1076, 1420, 441, 441, 441, 923, 441,
1270 1077, 1077, 1077, 1049, 1049, 1049, 441, 441, 1441, 1063,
1271 1056, 1056, 1056, 1334, 1335, 1074, 441, 1337, 441, 441,
1272 441, 1057, 1057, 1057, 441, 904, 600, 1083, 1083, 1083,
1273 1352, 1084, 441, 1348, 1085, 1078, 1058, 1364, 1059, 1059,
1274 1059, 1086, 1086, 1086, 441, 1087, 441, 1456, 1088, 1061,
1275 1061, 1061, 657, 1060, 1089, 1089, 1089, 1351, 1090, 441,
1276 441, 1091, 1349, 441, 1062, 1064, 1064, 1064, 1093, 1093,
1277 1093, 441, 1094, 441, 441, 1095, 1072, 1072, 1072, 1353,
1278 1065, 1076, 1076, 1076, 1077, 1077, 1077, 1083, 1083, 1083,
1280 441, 1084, 441, 1360, 1085, 441, 1354, 441, 1355, 1362,
1281 441, 441, 1086, 1086, 1086, 903, 1087, 1356, 1102, 1088,
1282 1089, 1089, 1089, 1106, 1090, 441, 1107, 1091, 1093, 1093,
1283 1093, 441, 1094, 1361, 899, 1095, 1138, 1138, 1138, 1140,
1284 1140, 1140, 1144, 1144, 1144, 441, 1138, 1138, 1138, 1357,
1285 1155, 1374, 441, 1156, 441, 441, 1363, 1365, 441, 1140,
1286 1140, 1140, 441, 1158, 441, 1375, 1159, 1144, 1144, 1144,
1287 441, 1163, 441, 1410, 1164, 441, 1165, 1165, 1165, 1167,
1288 1167, 1167, 441, 441, 1165, 1165, 1165, 898, 1186, 1358,
1289 441, 1187, 441, 441, 1168, 1188, 1188, 1188, 1359, 1413,
1291 441, 1167, 1167, 1167, 1366, 1189, 1189, 1189, 441, 1190,
1292 1382, 441, 1191, 1199, 1199, 1199, 1168, 1204, 1204, 1204,
1293 1188, 1188, 1188, 1368, 1209, 1367, 897, 1210, 441, 441,
1294 1189, 1189, 1189, 441, 1190, 441, 441, 1191, 1213, 1213,
1295 1213, 1199, 1199, 1199, 893, 1216, 1386, 441, 1217, 1220,
1296 1220, 1220, 441, 441, 441, 892, 441, 441, 1221, 1221,
1297 1221, 1369, 1204, 1204, 1204, 441, 1222, 1372, 891, 1223,
1298 863, 1318, 1318, 1318, 441, 1213, 1213, 1213, 441, 1232,
1299 1376, 862, 1233, 1220, 1220, 1220, 1319, 1240, 1373, 861,
1300 1241, 441, 1383, 1221, 1221, 1221, 441, 1242, 441, 441,
1302 1243, 1320, 1320, 1320, 1318, 1318, 1318, 860, 1387, 441,
1303 1342, 1342, 1342, 441, 1343, 441, 1321, 1344, 441, 1319,
1304 1320, 1320, 1320, 1345, 1345, 1345, 441, 1346, 441, 1377,
1305 1347, 1378, 1342, 1342, 1342, 1321, 1343, 441, 441, 1344,
1306 1345, 1345, 1345, 441, 1346, 1392, 1379, 1347, 441, 441,
1307 1380, 441, 441, 1384, 1393, 441, 441, 441, 1381, 441,
1308 441, 441, 1385, 441, 1400, 1401, 441, 859, 441, 441,
1309 1388, 441, 441, 1390, 1391, 1389, 1394, 441, 1408, 441,
1310 1395, 853, 441, 1409, 441, 441, 441, 441, 1396, 1397,
1311 441, 1398, 1399, 1402, 1403, 441, 441, 441, 1414, 441,
1313 441, 1415, 1406, 1404, 1407, 441, 1405, 1411, 441, 1412,
1314 1416, 1417, 1418, 1420, 441, 441, 441, 441, 441, 441,
1315 1419, 1421, 441, 441, 1422, 1425, 1423, 1427, 1427, 1427,
1316 1431, 1431, 1431, 441, 441, 441, 441, 1424, 1441, 1426,
1317 441, 441, 441, 1428, 1433, 441, 1432, 441, 1434, 1439,
1318 1439, 1439, 1427, 1427, 1427, 1429, 1430, 441, 1435, 1436,
1319 441, 441, 1431, 1431, 1431, 1440, 1442, 1443, 1428, 441,
1320 441, 441, 441, 441, 1456, 1437, 1438, 441, 1432, 441,
1321 1444, 1459, 1446, 441, 852, 1445, 1447, 1439, 1439, 1439,
1322 1454, 1454, 1454, 441, 441, 441, 1459, 1452, 1453, 441,
1324 1448, 441, 1457, 1440, 1458, 441, 1455, 1464, 1467, 1449,
1325 1450, 1451, 851, 1464, 850, 849, 441, 441, 1467, 1460,
1326 1461, 1454, 1454, 1454, 1462, 441, 1463, 1465, 1465, 1465,
1327 441, 1468, 1468, 1468, 1470, 1470, 1471, 1455, 846, 831,
1328 1471, 823, 822, 1466, 441, 821, 441, 1469, 441, 441,
1329 1472, 1472, 1472, 1465, 1465, 1465, 1474, 1474, 1474, 1468,
1330 1468, 1468, 1476, 1476, 1476, 820, 1473, 819, 818, 1466,
1331 817, 816, 1475, 812, 811, 1469, 810, 809, 1477, 1478,
1332 1478, 1478, 1472, 1472, 1472, 1474, 1474, 1474, 1476, 1476,
1333 1476, 1478, 1478, 1478, 808, 1479, 807, 806, 1473, 805,
1335 801, 1475, 800, 795, 1477, 793, 791, 1479, 118, 118,
1336 118, 118, 118, 118, 118, 119, 119, 119, 119, 119,
1337 119, 119, 124, 124, 124, 124, 124, 124, 124, 127,
1338 127, 127, 127, 127, 127, 127, 130, 130, 130, 130,
1339 130, 130, 130, 133, 133, 133, 133, 133, 133, 133,
1340 140, 140, 140, 140, 140, 140, 140, 148, 148, 148,
1341 148, 148, 148, 148, 153, 153, 153, 153, 153, 153,
1342 153, 164, 164, 164, 164, 164, 164, 164, 168, 168,
1343 168, 168, 168, 168, 168, 175, 175, 175, 175, 175,
1344 175, 175, 183, 183, 183, 183, 183, 183, 183, 191,
1346 191, 191, 191, 191, 191, 191, 196, 196, 196, 196,
1347 196, 196, 196, 203, 203, 203, 203, 203, 203, 203,
1348 207, 207, 207, 207, 207, 207, 207, 214, 214, 214,
1349 214, 214, 214, 214, 221, 221, 221, 221, 221, 221,
1350 221, 229, 229, 229, 229, 229, 229, 229, 235, 235,
1351 235, 235, 235, 235, 235, 243, 243, 243, 243, 243,
1352 243, 243, 247, 247, 247, 247, 247, 247, 247, 254,
1353 254, 254, 254, 254, 254, 254, 261, 261, 261, 261,
1354 261, 261, 261, 270, 270, 270, 270, 270, 270, 270,
1355 274, 274, 274, 274, 274, 274, 274, 133, 133, 133,
1357 133, 133, 133, 133, 296, 296, 296, 790, 296, 308,
1358 308, 308, 786, 308, 312, 312, 312, 785, 312, 322,
1359 322, 322, 784, 322, 327, 327, 327, 779, 327, 331,
1360 331, 331, 778, 331, 339, 339, 339, 774, 339, 346,
1361 346, 346, 771, 346, 350, 350, 350, 766, 350, 358,
1362 358, 358, 765, 358, 363, 363, 363, 363, 363, 764,
1363 363, 379, 759, 379, 389, 758, 389, 398, 754, 398,
1364 404, 750, 404, 408, 748, 408, 416, 746, 416, 421,
1365 745, 421, 426, 744, 426, 432, 742, 432, 436, 739,
1366 436, 440, 440, 440, 440, 440, 440, 440, 446, 738,
1368 737, 446, 456, 456, 456, 456, 456, 456, 468, 468,
1369 468, 468, 468, 468, 480, 480, 480, 480, 480, 480,
1370 489, 489, 489, 489, 489, 489, 496, 496, 496, 496,
1371 496, 496, 507, 507, 507, 507, 507, 507, 516, 516,
1372 516, 516, 516, 516, 524, 524, 524, 524, 524, 524,
1373 532, 532, 532, 532, 532, 532, 538, 538, 538, 538,
1374 538, 538, 598, 598, 598, 598, 598, 598, 598, 1003,
1375 1003, 1003, 1003, 1003, 1003, 1003, 1004, 1004, 1004, 1004,
1376 1004, 1004, 1004, 1027, 1027, 1027, 1027, 1027, 1027, 1027,
1377 1030, 1030, 1030, 1030, 1030, 1030, 1030, 1053, 1053, 1053,
1379 1053, 1053, 1053, 1053, 1055, 1055, 1055, 1055, 1055, 1055,
1380 1055, 736, 735, 731, 729, 728, 727, 726, 725, 724,
1381 721, 720, 718, 717, 714, 710, 705, 703, 702, 701,
1382 699, 697, 694, 690, 689, 688, 679, 672, 671, 670,
1383 668, 666, 665, 661, 660, 659, 600, 655, 651, 649,
1384 648, 644, 642, 640, 635, 634, 633, 621, 620, 619,
1385 614, 613, 612, 611, 609, 606, 605, 604, 603, 602,
1386 596, 594, 593, 591, 590, 587, 585, 580, 575, 574,
1387 573, 572, 569, 568, 566, 565, 564, 563, 562, 558,
1388 557, 556, 555, 554, 553, 552, 550, 549, 548, 547,
1390 546, 545, 544, 543, 441, 541, 536, 535, 530, 529,
1391 528, 527, 519, 512, 505, 504, 503, 499, 487, 483,
1392 478, 477, 476, 475, 471, 466, 465, 464, 463, 462,
1393 461, 460, 459, 454, 453, 452, 451, 450, 449, 448,
1394 447, 444, 442, 441, 439, 438, 437, 435, 434, 433,
1395 431, 430, 429, 428, 427, 423, 422, 420, 419, 418,
1396 417, 415, 414, 413, 410, 409, 405, 403, 400, 399,
1397 397, 396, 395, 394, 391, 390, 388, 387, 386, 385,
1398 384, 383, 382, 381, 380, 378, 377, 376, 375, 374,
1399 373, 372, 367, 364, 366, 362, 361, 359, 357, 354,
1401 353, 352, 351, 349, 347, 345, 342, 341, 340, 338,
1402 334, 333, 332, 330, 328, 326, 324, 323, 321, 318,
1403 317, 316, 313, 311, 309, 307, 298, 297, 295, 293,
1404 287, 286, 287, 286, 285, 284, 1480, 117, 1480, 1480,
1405 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
1406 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
1407 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
1408 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
1409 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
1410 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
1415 static yyconst flex_int16_t yy_chk[4202] =
1417 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1418 6, 6, 6, 9, 0, 3, 10, 11, 4, 12,
1419 9, 5, 1001, 10, 6, 7, 7, 7, 8, 8,
1420 8, 13, 13, 11, 1001, 12, 13, 13, 288, 7,
1421 14, 14, 8, 280, 13, 14, 14, 15, 15, 179,
1422 15, 122, 15, 14, 16, 16, 280, 16, 179, 16,
1423 15, 17, 17, 18, 18, 122, 123, 16, 19, 19,
1424 19, 20, 20, 20, 23, 23, 23, 24, 24, 24,
1425 123, 126, 19, 149, 606, 20, 289, 288, 23, 289,
1426 606, 24, 120, 120, 120, 126, 17, 149, 18, 21,
1428 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1429 21, 21, 910, 21, 21, 21, 21, 21, 25, 25,
1430 25, 365, 220, 26, 26, 26, 27, 27, 27, 28,
1431 28, 28, 25, 220, 365, 21, 21, 26, 443, 368,
1432 27, 368, 443, 28, 910, 29, 29, 29, 121, 121,
1433 121, 125, 125, 125, 146, 146, 146, 542, 21, 29,
1434 21, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1435 22, 22, 22, 22, 542, 22, 22, 22, 22, 22,
1436 30, 30, 30, 597, 752, 31, 31, 31, 32, 32,
1437 32, 33, 33, 33, 30, 136, 1275, 22, 22, 31,
1439 658, 597, 32, 923, 923, 33, 713, 34, 34, 34,
1440 35, 35, 35, 36, 36, 36, 37, 37, 37, 752,
1441 22, 34, 22, 711, 35, 160, 658, 36, 136, 711,
1442 37, 38, 38, 38, 136, 154, 154, 154, 136, 160,
1443 162, 162, 162, 136, 713, 38, 39, 39, 39, 39,
1444 39, 39, 39, 39, 39, 39, 39, 39, 39, 936,
1445 39, 39, 39, 39, 39, 41, 41, 41, 160, 1274,
1446 42, 42, 42, 43, 43, 43, 169, 169, 169, 41,
1447 657, 727, 39, 39, 42, 936, 727, 43, 1253, 712,
1448 39, 40, 40, 40, 40, 40, 40, 40, 40, 40,
1450 40, 40, 40, 40, 798, 40, 40, 40, 40, 40,
1451 44, 44, 44, 712, 657, 47, 47, 47, 48, 48,
1452 48, 173, 173, 173, 44, 728, 736, 40, 40, 47,
1453 728, 736, 48, 797, 798, 40, 45, 45, 45, 45,
1454 45, 45, 45, 45, 45, 45, 45, 45, 45, 753,
1455 45, 45, 45, 45, 45, 49, 49, 49, 797, 1252,
1456 50, 50, 50, 51, 51, 51, 52, 52, 52, 49,
1457 165, 159, 45, 45, 50, 45, 176, 51, 159, 1027,
1458 52, 837, 737, 45, 165, 159, 45, 737, 753, 45,
1459 176, 1027, 45, 46, 46, 46, 46, 46, 46, 46,
1461 46, 46, 46, 46, 46, 46, 836, 46, 46, 46,
1462 46, 46, 53, 53, 53, 839, 837, 54, 54, 54,
1463 55, 55, 55, 56, 56, 56, 53, 192, 170, 46,
1464 46, 54, 46, 204, 55, 170, 1231, 56, 838, 1002,
1465 46, 192, 170, 46, 836, 839, 46, 204, 1002, 46,
1466 57, 57, 57, 57, 57, 57, 57, 57, 57, 57,
1467 57, 57, 57, 842, 57, 57, 57, 57, 57, 59,
1468 59, 59, 838, 841, 60, 60, 60, 61, 61, 61,
1469 62, 62, 62, 59, 144, 1044, 57, 57, 60, 187,
1470 171, 61, 1230, 842, 62, 877, 187, 57, 144, 184,
1472 184, 184, 1044, 187, 171, 189, 189, 189, 841, 57,
1473 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1474 58, 58, 58, 877, 58, 58, 58, 58, 58, 65,
1475 65, 65, 171, 144, 66, 66, 66, 67, 67, 67,
1476 68, 68, 68, 65, 186, 1046, 58, 58, 66, 198,
1477 1212, 67, 911, 199, 68, 1211, 198, 58, 186, 197,
1478 197, 197, 1046, 198, 201, 201, 201, 199, 883, 58,
1479 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
1480 63, 63, 63, 911, 63, 63, 63, 63, 63, 71,
1481 71, 71, 878, 186, 72, 72, 72, 73, 73, 73,
1483 74, 74, 74, 71, 199, 843, 63, 63, 72, 883,
1484 1195, 73, 908, 1194, 74, 1174, 933, 63, 64, 64,
1485 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
1486 64, 878, 64, 64, 64, 64, 64, 75, 75, 75,
1487 843, 881, 76, 76, 76, 77, 77, 77, 78, 78,
1488 78, 75, 935, 908, 64, 64, 76, 933, 1173, 77,
1489 1171, 915, 78, 881, 879, 64, 69, 69, 69, 69,
1490 69, 69, 69, 69, 69, 69, 69, 69, 69, 935,
1491 69, 69, 69, 69, 69, 79, 79, 79, 879, 915,
1492 80, 80, 80, 83, 83, 83, 84, 84, 84, 79,
1494 210, 882, 69, 69, 80, 209, 69, 83, 1028, 1028,
1495 84, 1169, 209, 69, 210, 69, 208, 208, 208, 209,
1496 938, 1176, 69, 70, 70, 70, 70, 70, 70, 70,
1497 70, 70, 70, 70, 70, 70, 882, 70, 70, 70,
1498 70, 70, 85, 85, 85, 210, 938, 86, 86, 86,
1499 87, 87, 87, 88, 88, 88, 85, 215, 1300, 70,
1500 70, 86, 1176, 70, 87, 1300, 1153, 88, 880, 884,
1501 70, 215, 70, 212, 212, 212, 222, 222, 222, 70,
1502 81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
1503 81, 81, 81, 840, 81, 81, 81, 81, 81, 89,
1505 89, 89, 880, 884, 90, 90, 90, 91, 91, 91,
1506 92, 92, 92, 89, 991, 965, 81, 81, 90, 224,
1507 225, 91, 81, 1152, 92, 840, 224, 81, 227, 227,
1508 227, 840, 991, 224, 225, 962, 81, 82, 82, 82,
1509 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
1510 965, 82, 82, 82, 82, 82, 95, 95, 95, 931,
1511 962, 96, 96, 96, 97, 97, 97, 98, 98, 98,
1512 95, 225, 230, 82, 82, 96, 239, 244, 97, 82,
1513 1151, 98, 885, 239, 82, 1150, 230, 236, 236, 236,
1514 239, 244, 931, 82, 93, 93, 93, 93, 93, 93,
1516 93, 93, 93, 93, 93, 93, 93, 960, 93, 93,
1517 93, 93, 93, 101, 101, 101, 885, 1050, 102, 102,
1518 102, 103, 103, 103, 104, 104, 104, 101, 1103, 992,
1519 93, 93, 102, 960, 1050, 103, 909, 912, 104, 1103,
1520 964, 93, 94, 94, 94, 94, 94, 94, 94, 94,
1521 94, 94, 94, 94, 94, 992, 94, 94, 94, 94,
1522 94, 105, 105, 105, 964, 1018, 106, 106, 106, 107,
1523 107, 107, 108, 108, 108, 105, 909, 912, 94, 94,
1524 106, 1018, 1149, 107, 1148, 993, 108, 1136, 913, 94,
1525 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
1527 99, 99, 99, 993, 99, 99, 99, 99, 99, 109,
1528 109, 109, 913, 1278, 110, 110, 110, 113, 113, 113,
1529 241, 241, 241, 109, 913, 185, 99, 99, 110, 250,
1530 155, 113, 185, 1135, 99, 1177, 99, 155, 99, 185,
1531 248, 248, 248, 250, 155, 1278, 99, 100, 100, 100,
1532 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
1533 995, 100, 100, 100, 100, 100, 114, 114, 114, 252,
1534 252, 252, 155, 155, 185, 155, 1177, 914, 250, 155,
1535 114, 155, 238, 100, 100, 156, 158, 255, 1013, 115,
1536 115, 100, 156, 100, 115, 100, 238, 1013, 995, 156,
1538 158, 255, 115, 100, 111, 111, 111, 111, 111, 111,
1539 111, 111, 111, 111, 111, 111, 111, 914, 111, 111,
1540 111, 111, 111, 1134, 115, 116, 116, 238, 156, 158,
1541 116, 262, 262, 262, 156, 158, 156, 158, 116, 223,
1542 111, 111, 157, 249, 237, 265, 223, 271, 263, 1133,
1543 249, 237, 265, 223, 1234, 263, 157, 249, 237, 265,
1544 116, 271, 263, 111, 112, 112, 112, 112, 112, 112,
1545 112, 112, 112, 112, 112, 112, 112, 264, 112, 112,
1546 112, 112, 112, 263, 157, 157, 1080, 157, 223, 237,
1547 266, 264, 966, 157, 268, 268, 268, 263, 1234, 990,
1549 112, 112, 276, 1080, 266, 275, 275, 275, 1179, 276,
1550 656, 996, 264, 279, 279, 279, 276, 314, 314, 314,
1551 323, 323, 323, 112, 656, 266, 264, 328, 328, 328,
1552 994, 966, 314, 990, 997, 323, 333, 333, 333, 347,
1553 347, 347, 328, 379, 379, 379, 380, 380, 380, 1179,
1554 996, 333, 997, 1132, 347, 389, 389, 389, 823, 379,
1555 1014, 1131, 380, 390, 390, 390, 392, 392, 392, 1014,
1556 994, 389, 823, 393, 393, 393, 1130, 393, 1021, 390,
1557 393, 392, 398, 398, 398, 399, 399, 399, 401, 401,
1558 401, 404, 404, 404, 380, 402, 402, 402, 398, 402,
1560 1105, 399, 402, 401, 405, 405, 405, 404, 406, 406,
1561 406, 1105, 1021, 390, 407, 407, 407, 1017, 407, 1119,
1562 405, 407, 1180, 406, 408, 408, 408, 409, 409, 409,
1563 411, 411, 411, 416, 416, 416, 399, 412, 412, 412,
1564 408, 412, 1118, 409, 412, 411, 417, 417, 417, 416,
1565 418, 418, 418, 420, 420, 420, 1117, 1017, 405, 421,
1566 421, 421, 417, 1180, 1214, 418, 1020, 1030, 420, 422,
1567 422, 422, 424, 424, 424, 421, 1030, 1022, 409, 425,
1568 425, 425, 1020, 425, 1025, 422, 425, 424, 426, 426,
1569 426, 1214, 417, 427, 427, 427, 432, 432, 432, 433,
1571 433, 433, 1025, 1024, 426, 436, 436, 436, 1073, 427,
1572 1022, 1116, 432, 1052, 1073, 433, 437, 437, 437, 1024,
1573 422, 436, 455, 455, 455, 456, 456, 456, 458, 458,
1574 458, 1052, 437, 466, 466, 466, 1051, 1075, 455, 427,
1575 1115, 456, 1256, 1075, 458, 467, 467, 467, 466, 468,
1576 468, 468, 1051, 433, 1114, 470, 470, 470, 552, 552,
1577 552, 467, 479, 479, 479, 468, 458, 480, 480, 480,
1578 437, 470, 472, 472, 472, 1256, 472, 1390, 479, 472,
1579 482, 482, 482, 480, 484, 484, 484, 1155, 484, 1390,
1580 1081, 484, 488, 488, 488, 470, 482, 489, 489, 489,
1582 491, 491, 491, 492, 492, 492, 1081, 492, 488, 1079,
1583 492, 1113, 1074, 489, 1078, 1079, 491, 495, 495, 495,
1584 496, 496, 496, 498, 498, 498, 1155, 500, 500, 500,
1585 1074, 500, 1078, 495, 500, 482, 496, 1102, 1109, 498,
1586 506, 506, 506, 507, 507, 507, 509, 509, 509, 1109,
1587 1128, 491, 510, 510, 510, 1102, 506, 1184, 1146, 507,
1588 1106, 1128, 509, 1107, 511, 511, 511, 510, 511, 1146,
1589 1104, 511, 513, 513, 513, 514, 514, 514, 1106, 514,
1590 498, 1107, 514, 515, 515, 515, 1104, 513, 516, 516,
1591 516, 518, 518, 518, 1110, 1157, 509, 1215, 1184, 515,
1593 1110, 520, 520, 520, 516, 520, 1157, 518, 520, 523,
1594 523, 523, 524, 524, 524, 526, 526, 526, 528, 528,
1595 528, 531, 531, 531, 1215, 523, 1257, 1101, 524, 1218,
1596 1111, 526, 1122, 528, 532, 532, 532, 531, 534, 534,
1597 534, 537, 537, 537, 538, 538, 538, 1111, 518, 1122,
1598 532, 540, 540, 540, 534, 1100, 1218, 537, 1129, 1257,
1599 538, 543, 543, 543, 1129, 526, 1108, 540, 551, 551,
1600 551, 554, 554, 554, 568, 568, 568, 543, 543, 559,
1601 559, 559, 1108, 1260, 551, 1139, 560, 560, 560, 534,
1602 560, 1139, 1099, 560, 559, 540, 561, 561, 561, 565,
1604 565, 565, 566, 566, 566, 567, 567, 567, 569, 569,
1605 569, 1098, 561, 1279, 565, 1156, 1260, 566, 570, 570,
1606 570, 567, 1120, 569, 551, 571, 571, 571, 575, 575,
1607 575, 576, 576, 576, 570, 584, 584, 584, 1120, 566,
1608 1158, 571, 1126, 575, 561, 1279, 1124, 576, 577, 577,
1609 577, 584, 577, 1125, 1156, 577, 581, 581, 581, 1126,
1610 581, 567, 1124, 581, 1097, 575, 586, 586, 586, 1125,
1611 570, 588, 588, 588, 594, 594, 594, 1162, 576, 1158,
1612 1219, 571, 586, 589, 589, 589, 588, 589, 1162, 594,
1613 589, 584, 592, 592, 592, 595, 595, 595, 599, 599,
1615 599, 607, 607, 607, 608, 608, 608, 1219, 592, 1143,
1616 1096, 595, 1224, 586, 599, 1143, 1137, 607, 610, 610,
1617 610, 612, 612, 612, 613, 613, 613, 615, 615, 615,
1618 1185, 615, 592, 1137, 615, 618, 618, 618, 1092, 1224,
1619 599, 628, 628, 628, 607, 622, 622, 622, 624, 624,
1620 624, 618, 595, 629, 629, 629, 599, 623, 623, 623,
1621 622, 623, 1175, 624, 623, 625, 625, 625, 629, 625,
1622 1154, 1185, 625, 1175, 1141, 612, 1154, 627, 627, 627,
1623 630, 630, 630, 1142, 630, 1207, 1082, 630, 631, 631,
1624 631, 1141, 618, 627, 632, 632, 632, 636, 636, 636,
1626 1142, 637, 637, 637, 631, 637, 1225, 1159, 637, 1071,
1627 632, 1208, 636, 639, 639, 639, 641, 641, 641, 643,
1628 643, 643, 1160, 645, 645, 645, 1207, 645, 1160, 639,
1629 645, 643, 641, 1225, 1235, 643, 632, 650, 650, 650,
1630 652, 652, 652, 653, 653, 653, 1159, 653, 1161, 1163,
1631 653, 1164, 1208, 650, 1161, 652, 1070, 1186, 641, 654,
1632 654, 654, 661, 661, 661, 664, 664, 664, 667, 667,
1633 667, 668, 668, 668, 1069, 654, 1068, 661, 1235, 650,
1634 1181, 664, 669, 669, 669, 673, 673, 673, 1163, 673,
1635 1164, 1181, 673, 676, 676, 676, 1186, 676, 669, 1182,
1637 676, 680, 680, 680, 1282, 682, 682, 682, 654, 682,
1638 1182, 1228, 682, 685, 685, 685, 664, 680, 687, 687,
1639 687, 1301, 1229, 669, 689, 689, 689, 1067, 1301, 685,
1640 1066, 691, 691, 691, 687, 691, 1282, 1187, 691, 689,
1641 695, 695, 695, 698, 698, 698, 700, 700, 700, 704,
1642 704, 704, 1228, 706, 706, 706, 695, 706, 1236, 698,
1643 706, 689, 700, 1229, 1063, 704, 709, 709, 709, 715,
1644 715, 715, 687, 716, 716, 716, 1187, 716, 1055, 1209,
1645 716, 1197, 709, 1210, 715, 1198, 700, 719, 719, 719,
1646 720, 720, 720, 721, 721, 721, 722, 722, 722, 1236,
1648 723, 723, 723, 719, 704, 730, 730, 730, 709, 732,
1649 732, 732, 1248, 733, 733, 733, 723, 733, 1209, 1197,
1650 733, 730, 1210, 1198, 732, 1054, 1200, 740, 740, 740,
1651 743, 743, 743, 744, 744, 744, 747, 747, 747, 1248,
1652 1249, 719, 723, 740, 1053, 1042, 743, 1041, 744, 749,
1653 749, 749, 747, 751, 751, 751, 754, 754, 754, 755,
1654 755, 755, 1201, 755, 1200, 749, 755, 1249, 1205, 751,
1655 1272, 760, 760, 760, 761, 761, 761, 762, 762, 762,
1656 763, 763, 763, 786, 786, 786, 743, 760, 772, 772,
1657 772, 747, 774, 774, 774, 1261, 763, 1272, 1324, 749,
1659 1201, 775, 775, 775, 772, 775, 1205, 774, 775, 787,
1660 787, 787, 788, 788, 788, 789, 789, 789, 1040, 789,
1661 760, 1216, 789, 1324, 1039, 787, 1238, 788, 1261, 774,
1662 790, 790, 790, 792, 792, 792, 793, 793, 793, 794,
1663 794, 794, 799, 799, 799, 790, 800, 800, 800, 792,
1664 802, 802, 802, 1038, 1217, 794, 803, 803, 803, 787,
1665 1216, 800, 812, 812, 812, 1206, 802, 813, 813, 813,
1666 1238, 1037, 803, 1226, 814, 814, 814, 812, 814, 1222,
1667 1223, 814, 813, 1227, 822, 822, 822, 824, 824, 824,
1668 825, 825, 825, 1217, 1232, 794, 796, 796, 796, 822,
1670 826, 826, 826, 1206, 826, 1239, 825, 826, 829, 829,
1671 829, 1226, 796, 830, 830, 830, 1233, 830, 1222, 1223,
1672 830, 1227, 1031, 829, 831, 831, 831, 832, 832, 832,
1673 834, 834, 834, 1232, 796, 835, 835, 835, 1237, 831,
1674 1244, 796, 796, 832, 796, 844, 844, 844, 796, 1239,
1675 796, 835, 845, 845, 845, 1233, 845, 1283, 1240, 845,
1676 844, 846, 846, 846, 847, 847, 847, 854, 854, 854,
1677 855, 855, 855, 1241, 855, 1250, 846, 855, 1273, 1237,
1678 847, 1244, 854, 856, 856, 856, 1242, 856, 1394, 1283,
1679 856, 864, 864, 864, 865, 865, 865, 1240, 865, 1251,
1681 1394, 865, 868, 868, 868, 1273, 864, 870, 870, 870,
1682 1243, 870, 1241, 1250, 870, 873, 873, 873, 868, 874,
1683 874, 874, 1245, 874, 1350, 1242, 874, 875, 875, 875,
1684 873, 886, 886, 886, 1029, 886, 1246, 1251, 886, 889,
1685 889, 889, 1016, 875, 890, 890, 890, 1247, 890, 1243,
1686 1258, 890, 1259, 1015, 889, 891, 891, 891, 894, 894,
1687 894, 1254, 894, 1245, 1350, 894, 898, 898, 898, 1266,
1688 891, 900, 900, 900, 1255, 900, 1008, 1262, 900, 1007,
1689 1246, 898, 905, 905, 905, 1263, 905, 1264, 1258, 905,
1690 1259, 1247, 891, 916, 916, 916, 917, 917, 917, 1006,
1692 917, 1268, 1254, 917, 920, 920, 920, 1266, 916, 916,
1693 921, 921, 921, 1005, 921, 1255, 1265, 921, 1262, 920,
1694 926, 926, 926, 927, 927, 927, 1263, 927, 1264, 1267,
1695 927, 929, 929, 929, 1268, 926, 930, 930, 930, 932,
1696 932, 932, 934, 934, 934, 1280, 929, 937, 937, 937,
1697 1270, 930, 989, 1269, 934, 932, 985, 1265, 934, 939,
1698 939, 939, 977, 937, 940, 940, 940, 1267, 929, 949,
1699 949, 949, 1280, 930, 939, 939, 999, 999, 999, 940,
1700 940, 941, 941, 941, 949, 941, 1269, 1271, 941, 942,
1701 942, 942, 999, 942, 1270, 1276, 942, 941, 950, 950,
1703 950, 1277, 950, 976, 975, 950, 953, 953, 953, 954,
1704 954, 954, 955, 955, 955, 1284, 955, 1294, 974, 955,
1705 1285, 953, 959, 1281, 954, 957, 957, 957, 958, 958,
1706 958, 1271, 958, 1276, 1286, 958, 961, 961, 961, 1277,
1707 957, 963, 963, 963, 967, 967, 967, 968, 968, 968,
1708 1281, 1290, 961, 1284, 969, 969, 969, 963, 1285, 1288,
1709 967, 1294, 1287, 968, 956, 978, 978, 978, 961, 969,
1710 969, 1289, 1286, 963, 948, 947, 967, 970, 970, 970,
1711 978, 970, 1291, 1290, 970, 1295, 1288, 971, 971, 971,
1712 1298, 971, 1351, 970, 971, 979, 979, 979, 1289, 979,
1714 1287, 968, 979, 971, 972, 972, 972, 972, 972, 972,
1715 972, 972, 972, 946, 1291, 972, 945, 1298, 972, 972,
1716 972, 972, 972, 980, 980, 980, 981, 981, 981, 1295,
1717 981, 1292, 1351, 981, 928, 998, 998, 998, 980, 1293,
1718 972, 972, 973, 973, 973, 973, 973, 973, 973, 973,
1719 973, 998, 1316, 973, 1314, 925, 973, 973, 973, 973,
1720 973, 982, 982, 982, 1292, 982, 1299, 998, 982, 986,
1721 986, 986, 1293, 986, 1315, 1302, 986, 1303, 973, 973,
1722 1000, 1000, 1000, 1306, 1000, 1316, 1314, 1000, 1009, 1009,
1723 1009, 924, 1009, 1299, 1317, 1009, 1000, 1003, 1003, 1003,
1725 1003, 1003, 1003, 1003, 1003, 1003, 1315, 922, 1003, 904,
1726 1306, 1003, 1003, 1003, 1003, 1003, 1012, 1012, 1012, 1302,
1727 1012, 1303, 903, 1012, 1304, 1305, 899, 1317, 1019, 1019,
1728 1019, 1304, 1305, 1003, 1003, 1004, 1004, 1004, 1004, 1004,
1729 1004, 1004, 1004, 1004, 1019, 897, 1004, 1307, 1308, 1004,
1730 1004, 1004, 1004, 1004, 1023, 1023, 1023, 1026, 1026, 1026,
1731 1032, 1032, 1032, 1033, 1033, 1033, 1034, 1034, 1034, 1309,
1732 1023, 1004, 1004, 1026, 1307, 1308, 1032, 1032, 1033, 1310,
1733 1311, 1034, 1035, 1035, 1035, 1036, 1036, 1036, 893, 1026,
1734 1043, 1043, 1043, 1045, 1045, 1045, 1309, 1035, 1312, 1322,
1736 1036, 1047, 1047, 1047, 1402, 1312, 1043, 1326, 892, 1045,
1737 1048, 1048, 1048, 1049, 1049, 1049, 1402, 1047, 1421, 1035,
1738 1056, 1056, 1056, 1310, 1311, 1045, 1048, 1313, 1323, 1049,
1739 1421, 1057, 1057, 1057, 1313, 867, 1056, 1058, 1058, 1058,
1740 1326, 1058, 1325, 1322, 1058, 1049, 1057, 1338, 1059, 1059,
1741 1059, 1060, 1060, 1060, 1338, 1060, 1327, 1442, 1060, 1061,
1742 1061, 1061, 1056, 1059, 1062, 1062, 1062, 1325, 1062, 1442,
1743 1334, 1062, 1323, 1330, 1061, 1064, 1064, 1064, 1065, 1065,
1744 1065, 1328, 1065, 1329, 1336, 1065, 1072, 1072, 1072, 1327,
1745 1064, 1076, 1076, 1076, 1077, 1077, 1077, 1083, 1083, 1083,
1747 1335, 1083, 1072, 1334, 1083, 1331, 1328, 1076, 1329, 1336,
1748 1077, 1354, 1086, 1086, 1086, 866, 1086, 1330, 1072, 1086,
1749 1089, 1089, 1089, 1076, 1089, 1355, 1077, 1089, 1093, 1093,
1750 1093, 1337, 1093, 1335, 861, 1093, 1121, 1121, 1121, 1123,
1751 1123, 1123, 1127, 1127, 1127, 1332, 1138, 1138, 1138, 1331,
1752 1138, 1354, 1121, 1138, 1333, 1123, 1337, 1339, 1127, 1140,
1753 1140, 1140, 1138, 1140, 1339, 1355, 1140, 1144, 1144, 1144,
1754 1362, 1144, 1340, 1391, 1144, 1140, 1145, 1145, 1145, 1147,
1755 1147, 1147, 1391, 1144, 1165, 1165, 1165, 860, 1165, 1332,
1756 1348, 1165, 1145, 1341, 1147, 1166, 1166, 1166, 1333, 1395,
1758 1165, 1167, 1167, 1167, 1340, 1168, 1168, 1168, 1395, 1168,
1759 1362, 1166, 1168, 1178, 1178, 1178, 1167, 1183, 1183, 1183,
1760 1188, 1188, 1188, 1348, 1188, 1341, 859, 1188, 1349, 1178,
1761 1189, 1189, 1189, 1183, 1189, 1352, 1188, 1189, 1196, 1196,
1762 1196, 1199, 1199, 1199, 851, 1199, 1366, 1356, 1199, 1202,
1763 1202, 1202, 1363, 1366, 1196, 850, 1353, 1199, 1203, 1203,
1764 1203, 1349, 1204, 1204, 1204, 1202, 1204, 1352, 849, 1204,
1765 820, 1296, 1296, 1296, 1203, 1213, 1213, 1213, 1204, 1213,
1766 1356, 818, 1213, 1220, 1220, 1220, 1296, 1220, 1353, 817,
1767 1220, 1213, 1363, 1221, 1221, 1221, 1357, 1221, 1358, 1220,
1769 1221, 1297, 1297, 1297, 1318, 1318, 1318, 816, 1367, 1221,
1770 1319, 1319, 1319, 1359, 1319, 1367, 1297, 1319, 1360, 1318,
1771 1320, 1320, 1320, 1321, 1321, 1321, 1361, 1321, 1364, 1357,
1772 1321, 1358, 1342, 1342, 1342, 1320, 1342, 1365, 1368, 1342,
1773 1345, 1345, 1345, 1369, 1345, 1372, 1359, 1345, 1370, 1371,
1774 1360, 1374, 1372, 1364, 1373, 1375, 1376, 1377, 1361, 1378,
1775 1379, 1373, 1365, 1384, 1380, 1381, 1385, 815, 1382, 1383,
1776 1368, 1380, 1381, 1370, 1371, 1369, 1374, 1386, 1388, 1387,
1777 1375, 810, 1392, 1389, 1393, 1388, 1406, 1400, 1376, 1377,
1778 1389, 1378, 1379, 1382, 1383, 1401, 1404, 1407, 1396, 1405,
1780 1408, 1397, 1386, 1384, 1387, 1396, 1385, 1392, 1397, 1393,
1781 1398, 1399, 1400, 1403, 1409, 1411, 1412, 1398, 1399, 1414,
1782 1401, 1404, 1403, 1415, 1405, 1408, 1406, 1410, 1410, 1410,
1783 1413, 1413, 1413, 1416, 1417, 1418, 1419, 1407, 1422, 1409,
1784 1425, 1423, 1424, 1410, 1414, 1426, 1413, 1422, 1415, 1420,
1785 1420, 1420, 1427, 1427, 1427, 1411, 1412, 1429, 1416, 1417,
1786 1433, 1430, 1431, 1431, 1431, 1420, 1423, 1424, 1427, 1434,
1787 1435, 1436, 1437, 1438, 1443, 1418, 1419, 1444, 1431, 1445,
1788 1425, 1446, 1429, 1443, 808, 1426, 1430, 1439, 1439, 1439,
1789 1441, 1441, 1441, 1446, 1448, 1449, 1447, 1437, 1438, 1450,
1791 1433, 1451, 1444, 1439, 1445, 1447, 1441, 1453, 1458, 1434,
1792 1435, 1436, 807, 1452, 806, 805, 1453, 1458, 1457, 1448,
1793 1449, 1454, 1454, 1454, 1450, 1452, 1451, 1456, 1456, 1456,
1794 1457, 1459, 1459, 1459, 1460, 1461, 1462, 1454, 801, 791,
1795 1463, 785, 784, 1456, 1461, 783, 1460, 1459, 1462, 1463,
1796 1464, 1464, 1464, 1465, 1465, 1465, 1467, 1467, 1467, 1468,
1797 1468, 1468, 1470, 1470, 1470, 782, 1464, 781, 780, 1465,
1798 779, 778, 1467, 771, 770, 1468, 769, 768, 1470, 1471,
1799 1471, 1471, 1472, 1472, 1472, 1474, 1474, 1474, 1476, 1476,
1800 1476, 1478, 1478, 1478, 767, 1471, 766, 765, 1472, 764,
1802 759, 1474, 758, 750, 1476, 748, 746, 1478, 1481, 1481,
1803 1481, 1481, 1481, 1481, 1481, 1482, 1482, 1482, 1482, 1482,
1804 1482, 1482, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1484,
1805 1484, 1484, 1484, 1484, 1484, 1484, 1485, 1485, 1485, 1485,
1806 1485, 1485, 1485, 1486, 1486, 1486, 1486, 1486, 1486, 1486,
1807 1487, 1487, 1487, 1487, 1487, 1487, 1487, 1488, 1488, 1488,
1808 1488, 1488, 1488, 1488, 1489, 1489, 1489, 1489, 1489, 1489,
1809 1489, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1491, 1491,
1810 1491, 1491, 1491, 1491, 1491, 1492, 1492, 1492, 1492, 1492,
1811 1492, 1492, 1493, 1493, 1493, 1493, 1493, 1493, 1493, 1494,
1813 1494, 1494, 1494, 1494, 1494, 1494, 1495, 1495, 1495, 1495,
1814 1495, 1495, 1495, 1496, 1496, 1496, 1496, 1496, 1496, 1496,
1815 1497, 1497, 1497, 1497, 1497, 1497, 1497, 1498, 1498, 1498,
1816 1498, 1498, 1498, 1498, 1499, 1499, 1499, 1499, 1499, 1499,
1817 1499, 1500, 1500, 1500, 1500, 1500, 1500, 1500, 1501, 1501,
1818 1501, 1501, 1501, 1501, 1501, 1502, 1502, 1502, 1502, 1502,
1819 1502, 1502, 1503, 1503, 1503, 1503, 1503, 1503, 1503, 1504,
1820 1504, 1504, 1504, 1504, 1504, 1504, 1505, 1505, 1505, 1505,
1821 1505, 1505, 1505, 1506, 1506, 1506, 1506, 1506, 1506, 1506,
1822 1507, 1507, 1507, 1507, 1507, 1507, 1507, 1508, 1508, 1508,
1824 1508, 1508, 1508, 1508, 1509, 1509, 1509, 745, 1509, 1510,
1825 1510, 1510, 742, 1510, 1511, 1511, 1511, 739, 1511, 1512,
1826 1512, 1512, 738, 1512, 1513, 1513, 1513, 735, 1513, 1514,
1827 1514, 1514, 734, 1514, 1515, 1515, 1515, 731, 1515, 1516,
1828 1516, 1516, 729, 1516, 1517, 1517, 1517, 726, 1517, 1518,
1829 1518, 1518, 725, 1518, 1519, 1519, 1519, 1519, 1519, 724,
1830 1519, 1520, 718, 1520, 1521, 717, 1521, 1522, 714, 1522,
1831 1523, 710, 1523, 1524, 705, 1524, 1525, 703, 1525, 1526,
1832 702, 1526, 1527, 701, 1527, 1528, 699, 1528, 1529, 697,
1833 1529, 1530, 1530, 1530, 1530, 1530, 1530, 1530, 1531, 694,
1835 693, 1531, 1532, 1532, 1532, 1532, 1532, 1532, 1533, 1533,
1836 1533, 1533, 1533, 1533, 1534, 1534, 1534, 1534, 1534, 1534,
1837 1535, 1535, 1535, 1535, 1535, 1535, 1536, 1536, 1536, 1536,
1838 1536, 1536, 1537, 1537, 1537, 1537, 1537, 1537, 1538, 1538,
1839 1538, 1538, 1538, 1538, 1539, 1539, 1539, 1539, 1539, 1539,
1840 1540, 1540, 1540, 1540, 1540, 1540, 1541, 1541, 1541, 1541,
1841 1541, 1541, 1542, 1542, 1542, 1542, 1542, 1542, 1542, 1543,
1842 1543, 1543, 1543, 1543, 1543, 1543, 1544, 1544, 1544, 1544,
1843 1544, 1544, 1544, 1545, 1545, 1545, 1545, 1545, 1545, 1545,
1844 1546, 1546, 1546, 1546, 1546, 1546, 1546, 1547, 1547, 1547,
1846 1547, 1547, 1547, 1547, 1548, 1548, 1548, 1548, 1548, 1548,
1847 1548, 692, 690, 688, 679, 678, 677, 672, 671, 670,
1848 666, 665, 663, 662, 660, 655, 651, 649, 648, 644,
1849 642, 640, 638, 635, 634, 633, 626, 621, 620, 619,
1850 614, 611, 609, 605, 604, 601, 598, 596, 593, 591,
1851 590, 587, 585, 580, 574, 573, 572, 564, 563, 562,
1852 558, 557, 556, 555, 553, 550, 549, 548, 547, 546,
1853 541, 536, 535, 530, 529, 527, 519, 512, 505, 504,
1854 503, 499, 487, 483, 478, 477, 476, 475, 471, 465,
1855 464, 463, 462, 461, 460, 459, 454, 453, 452, 451,
1857 448, 447, 446, 444, 440, 438, 435, 434, 431, 430,
1858 429, 428, 423, 419, 415, 414, 413, 410, 403, 400,
1859 397, 396, 395, 394, 391, 388, 387, 386, 385, 384,
1860 383, 382, 381, 378, 377, 376, 374, 373, 372, 371,
1861 370, 366, 364, 363, 362, 361, 360, 359, 356, 355,
1862 354, 353, 352, 351, 348, 344, 343, 342, 341, 340,
1863 337, 336, 335, 334, 332, 329, 325, 324, 320, 319,
1864 318, 317, 316, 315, 313, 310, 309, 306, 305, 304,
1865 303, 302, 301, 300, 299, 298, 297, 294, 293, 292,
1866 291, 290, 284, 283, 281, 278, 277, 273, 269, 260,
1868 259, 258, 257, 253, 246, 242, 234, 233, 232, 228,
1869 219, 218, 217, 213, 206, 202, 195, 194, 190, 182,
1870 181, 180, 178, 174, 167, 163, 152, 151, 147, 143,
1871 142, 141, 135, 134, 132, 129, 117, 1480, 1480, 1480,
1872 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
1873 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
1874 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
1875 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
1876 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
1877 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480, 1480,
1882 /* Table of booleans, true if rule could match eol. */
1883 static yyconst flex_int32_t yy_rule_can_match_eol[207] =
1885 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1886 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1,
1887 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1888 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1,
1889 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1890 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1891 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1892 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1,
1893 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0,
1894 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0,
1895 0, 1, 0, 0, 0, 1, 0, };
1897 static yy_state_type yy_last_accepting_state;
1898 static char *yy_last_accepting_cpos;
1900 extern int surf_parse__flex_debug;
1901 int surf_parse__flex_debug = 0;
1903 /* The intent behind this definition is that it'll catch
1904 * any uses of REJECT which flex missed.
1906 #define REJECT reject_used_but_not_detected
1907 #define yymore() yymore_used_but_not_detected
1908 #define YY_MORE_ADJ 0
1909 #define YY_RESTORE_YY_MORE_OFFSET
1910 char *surf_parse_text;
1911 /* Validating XML processor for surf/surfxml.dtd.
1912 * Generated 2007/10/31 10:34:28.
1914 * This program was generated with the FleXML XML processor generator.
1915 * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved.
1916 * FleXML is Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1917 * (Id: flexml.pl,v 1.61 2006/09/13 16:34:33 wdowling Exp).
1919 * There are two, intertwined parts to this program, part A and part B.
1924 * Some parts, here collectively called "Part A", are found in the
1925 * FleXML package. They are Copyright (C) 1999-2005 Kristoffer Rose
1926 * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1928 * You can redistribute, use, perform, display and/or modify "Part A"
1929 * provided the following two conditions hold:
1931 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1932 * FleXML; without even the implied warranty of MERCHANTABILITY or
1933 * FITNESS FOR A PARTICULAR PURPOSE.
1935 * 2. The program distribution conditions do not in any way affect the
1936 * distribution conditions of the FleXML system used to generate this
1937 * file or any version of FleXML derived from that system.
1939 * Notice that these are explicit rights granted to you for files
1940 * generated by the FleXML system. For your rights in connection with
1941 * the FleXML system itself please consult the GNU General Public License.
1946 * The other parts, here collectively called "Part B", and which came
1947 * from the DTD used by FleXML to generate this program, can be
1948 * distributed (or not, as the case may be) under the terms of whoever
1949 * wrote them, provided these terms respect and obey the two conditions
1950 * above under the heading "Part A".
1952 * The author of and contributors to FleXML specifically disclaim
1953 * any copyright interest in "Part B", unless "Part B" was written
1954 * by the author of or contributors to FleXML.
1958 /* Version strings. */
1959 const char rcs_surfxml_flexml_skeleton[] =
1960 "$" "Id: skel,v 1.38 2006/09/12 18:05:45 wdowling Exp $";
1961 const char rcs_surfxml_flexml[] =
1962 "$" "Id: flexml.pl,v 1.61 2006/09/13 16:34:33 wdowling Exp $";
1965 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
1966 # ifndef __STRICT_ANSI__
1968 # include <process.h>
1971 # include <unistd.h>
1979 #ifndef FLEXML_INDEXSTACKSIZE
1980 #define FLEXML_INDEXSTACKSIZE 1000
1983 /* Generated definitions. */
1984 #define FLEXML_yylineno
1985 #ifndef FLEXML_BUFFERSTACKSIZE
1986 #define FLEXML_BUFFERSTACKSIZE 1000000
1988 #define FLEXML_NEED_BUFFERLIT
1990 /* XML processor api. */
1991 /* FleXML-provided data. */
1992 int surfxml_pcdata_ix;
1993 extern char *surfxml_bufferstack;
1994 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
1995 AT_surfxml_link_id AX_surfxml_link_id;
1996 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
1997 AT_surfxml_prop_id AX_surfxml_prop_id;
1998 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
1999 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
2000 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
2001 AT_surfxml_host_id AX_surfxml_host_id;
2002 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2003 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2004 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2005 AT_surfxml_process_host AX_surfxml_process_host;
2006 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2007 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2008 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2009 AT_surfxml_host_state AX_surfxml_host_state;
2010 #define A_surfxml_host_state AX_surfxml_host_state
2011 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
2012 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
2013 AT_surfxml_route_impact_on_dst_with_other_send AX_surfxml_route_impact_on_dst_with_other_send;
2014 #define A_surfxml_route_impact_on_dst_with_other_send (surfxml_bufferstack + AX_surfxml_route_impact_on_dst_with_other_send)
2015 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
2016 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
2017 AT_surfxml_route_impact_on_dst AX_surfxml_route_impact_on_dst;
2018 #define A_surfxml_route_impact_on_dst (surfxml_bufferstack + AX_surfxml_route_impact_on_dst)
2019 AT_surfxml_prop_value AX_surfxml_prop_value;
2020 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2021 AT_surfxml_route_impact_on_src_with_other_recv AX_surfxml_route_impact_on_src_with_other_recv;
2022 #define A_surfxml_route_impact_on_src_with_other_recv (surfxml_bufferstack + AX_surfxml_route_impact_on_src_with_other_recv)
2023 AT_surfxml_host_power AX_surfxml_host_power;
2024 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2025 AT_surfxml_link_state_file AX_surfxml_link_state_file;
2026 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
2027 AT_surfxml_router_id AX_surfxml_router_id;
2028 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2029 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2030 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2031 AT_surfxml_platform_xmlns_c_route AX_surfxml_platform_xmlns_c_route;
2032 #define A_surfxml_platform_xmlns_c_route (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_route)
2033 AT_surfxml_process_function AX_surfxml_process_function;
2034 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
2035 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
2036 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
2037 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2038 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2039 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
2040 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
2041 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2042 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2043 AT_surfxml_host_availability AX_surfxml_host_availability;
2044 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
2045 AT_surfxml_argument_value AX_surfxml_argument_value;
2046 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2047 AT_surfxml_link_state AX_surfxml_link_state;
2048 #define A_surfxml_link_state AX_surfxml_link_state
2049 AT_surfxml_route_src AX_surfxml_route_src;
2050 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
2051 AT_surfxml_route_impact_on_src AX_surfxml_route_impact_on_src;
2052 #define A_surfxml_route_impact_on_src (surfxml_bufferstack + AX_surfxml_route_impact_on_src)
2053 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2054 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2055 AT_surfxml_link_latency AX_surfxml_link_latency;
2056 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2057 AT_surfxml_platform_xmlns_c_link AX_surfxml_platform_xmlns_c_link;
2058 #define A_surfxml_platform_xmlns_c_link (surfxml_bufferstack + AX_surfxml_platform_xmlns_c_link)
2059 AT_surfxml_include_file AX_surfxml_include_file;
2060 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
2061 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2062 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2063 AT_surfxml_host_state_file AX_surfxml_host_state_file;
2064 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
2065 AT_surfxml_route_dst AX_surfxml_route_dst;
2066 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
2067 AT_surfxml_platform_version AX_surfxml_platform_version;
2068 #define A_surfxml_platform_version (surfxml_bufferstack + AX_surfxml_platform_version)
2072 # define ENTER(state) debug_enter(state,#state)
2073 # define LEAVE debug_leave()
2074 # define SET(state) debug_set(state,#state)
2075 static void debug_enter(int, const char*);
2076 static void debug_leave(void);
2077 static void debug_set(int, const char*);
2079 # define ENTER(state) (yy_push_state(state))
2080 # define LEAVE (yy_pop_state())
2081 # define SET(state) BEGIN(state)
2084 /* Generic actions. */
2085 #define SKIP /*skip*/
2086 #define SUCCEED CLEANUP; return 0
2088 #define FAIL return fail
2089 static int fail(const char*, ...);
2091 enum {flexml_max_err_msg_size = 512};
2092 static char flexml_err_msg[flexml_max_err_msg_size];
2093 const char * surfxml_parse_err_msg()
2095 return flexml_err_msg;
2097 static void reset_surfxml_parse_err_msg()
2099 flexml_err_msg[0] = '\0';
2103 static void cleanup(void);
2104 #define CLEANUP cleanup()
2106 /* Text buffer stack handling. */
2107 char *surfxml_bufferstack = NULL;
2108 static int blimit = FLEXML_BUFFERSTACKSIZE;
2109 static int bnext = 1;
2111 static int *indexstack = NULL;
2112 static int ilimit = FLEXML_INDEXSTACKSIZE;
2113 static int inext = 1;
2115 #define BUFFERSET(P) (P = bnext)
2116 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
2117 #define BUFFERDONE (BUFFERPUTC('\0'))
2119 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
2121 /* after this is called, there are at least 2 slots left in the stack */
2122 static int ck_blimit()
2124 if (bnext >= blimit) {
2125 blimit += FLEXML_BUFFERSTACKSIZE + 2;
2127 char *temp = (char *) realloc(surfxml_bufferstack, blimit);
2129 surfxml_bufferstack = temp;
2135 /* after this is called, there are at least 2 slots left in the stack */
2136 static int ck_ilimit()
2138 if (inext >= ilimit) {
2139 ilimit += FLEXML_INDEXSTACKSIZE + 2;
2141 int *temp = (int *) realloc(indexstack, ilimit);
2149 #ifdef FLEXML_NEED_BUFFERLIT
2150 static void surfxml_bufferliteral(char c, int* pp, const char* text)
2152 const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
2153 assert(s <= e); BUFFERSET(*pp);
2155 if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
2156 else BUFFERPUTC(*s);
2162 static void pushbuffer(int p)
2165 indexstack[inext++] = p;
2166 indexstack[inext++] = bnext;
2169 static int popbuffer(void)
2172 bnext = indexstack[--inext];
2173 return indexstack[--inext];
2176 /* General internal entities are `unput' back onto the input stream... */
2177 #define ENTITYTEXT(T) \
2178 { char *s = (T), *e = s+strlen(s);\
2179 while (--e >= s) { unput(*e); }}
2181 /* Flex standard options. */
2182 #define YY_NO_INPUT 1
2183 /* Flex user-requested options. */
2184 /* XML character classes (currently restricted to ASCII). */
2185 /* "Common syntactic structures." */
2186 /* "Names and Tokens." */
2187 /* Miscellaneous. */
2188 /* Parser states (flex `exclusive start conditions'):
2190 * PROLOG the XML prolog of the document before <?xml...>
2191 * DOCTYPE the XML prolog of the document after <?xml...>
2192 * EPILOG after the root element
2193 * INCOMMENT inside an XML comment <!--....-->
2194 * INPI inside an XML PI <?...?>
2195 * VALUE1 inside a '...'-delimited literal
2196 * VALUE2 inside a "..."-delimited literal
2197 * CDATA inside a <![CDATA[...] ]> section.
2198 * ROOT_<tag> expect root element <tag>
2199 * AL_<tag> inside the attribute list for <tag>
2200 * IN_<tag> inside a <tag> with element contents (ready for end tag)
2201 * IMPOSSIBLE dummy to permit disabling rules; must be last
2205 const char* *surfxml_statenames=NULL;
2216 #define ROOT_surfxml_platform 9
2217 #define AL_surfxml_platform 10
2218 #define S_surfxml_platform 11
2219 #define S_surfxml_platform_1 12
2220 #define S_surfxml_platform_2 13
2221 #define S_surfxml_platform_3 14
2222 #define S_surfxml_platform_4 15
2223 #define S_surfxml_platform_5 16
2224 #define E_surfxml_platform 17
2225 #define ROOT_surfxml_include 18
2226 #define AL_surfxml_include 19
2227 #define E_surfxml_include 20
2228 #define ROOT_surfxml_host 21
2229 #define AL_surfxml_host 22
2230 #define S_surfxml_host 23
2231 #define S_surfxml_host_1 24
2232 #define S_surfxml_host_2 25
2233 #define E_surfxml_host 26
2234 #define ROOT_surfxml_prop 27
2235 #define AL_surfxml_prop 28
2236 #define E_surfxml_prop 29
2237 #define ROOT_surfxml_router 30
2238 #define AL_surfxml_router 31
2239 #define E_surfxml_router 32
2240 #define ROOT_surfxml_link 33
2241 #define AL_surfxml_link 34
2242 #define S_surfxml_link 35
2243 #define S_surfxml_link_1 36
2244 #define S_surfxml_link_2 37
2245 #define E_surfxml_link 38
2246 #define ROOT_surfxml_route 39
2247 #define AL_surfxml_route 40
2248 #define S_surfxml_route 41
2249 #define S_surfxml_route_1 42
2250 #define S_surfxml_route_2 43
2251 #define E_surfxml_route 44
2252 #define ROOT_surfxml_link_c_ctn 45
2253 #define AL_surfxml_link_c_ctn 46
2254 #define E_surfxml_link_c_ctn 47
2255 #define ROOT_surfxml_process 48
2256 #define AL_surfxml_process 49
2257 #define S_surfxml_process 50
2258 #define S_surfxml_process_1 51
2259 #define S_surfxml_process_2 52
2260 #define E_surfxml_process 53
2261 #define ROOT_surfxml_argument 54
2262 #define AL_surfxml_argument 55
2263 #define E_surfxml_argument 56
2264 #define IMPOSSIBLE 57
2266 #ifndef YY_NO_UNISTD_H
2267 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2268 * down here because we want the user's section 1 to have been scanned first.
2269 * The user has a chance to override it with an option.
2271 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2272 # ifndef __STRICT_ANSI__
2274 # include <process.h>
2277 # include <unistd.h>
2281 #ifndef YY_EXTRA_TYPE
2282 #define YY_EXTRA_TYPE void *
2285 static int yy_init_globals (void );
2287 /* Macros after this point can all be overridden by user definitions in
2291 #ifndef YY_SKIP_YYWRAP
2293 extern "C" int surf_parse_wrap (void );
2295 extern int surf_parse_wrap (void );
2300 static void yy_flex_strncpy (char *,yyconst char *,int );
2303 #ifdef YY_NEED_STRLEN
2304 static int yy_flex_strlen (yyconst char * );
2310 static int yyinput (void );
2312 static int input (void );
2317 static int yy_start_stack_ptr = 0;
2318 static int yy_start_stack_depth = 0;
2319 static int *yy_start_stack = NULL;
2321 static void yy_push_state (int new_state );
2323 static void yy_pop_state (void );
2325 /* Amount of stuff to slurp up with each read. */
2326 #ifndef YY_READ_BUF_SIZE
2327 #define YY_READ_BUF_SIZE 8192
2330 /* Copy whatever the last rule matched to the standard output. */
2332 /* This used to be an fputs(), but since the string might contain NUL's,
2333 * we now use fwrite().
2335 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
2338 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2339 * is returned in "result".
2342 #define YY_INPUT(buf,result,max_size) \
2343 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2347 for ( n = 0; n < max_size && \
2348 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
2349 buf[n] = (char) c; \
2351 buf[n++] = (char) c; \
2352 if ( c == EOF && ferror( surf_parse_in ) ) \
2353 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2359 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2361 if( errno != EINTR) \
2363 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2367 clearerr(surf_parse_in); \
2374 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2375 * we don't want an extra ';' after the "return" because that will cause
2376 * some compilers to complain about unreachable statements.
2379 #define yyterminate() return YY_NULL
2382 /* Number of entries by which start-condition stack grows. */
2383 #ifndef YY_START_STACK_INCR
2384 #define YY_START_STACK_INCR 25
2387 /* Report a fatal error. */
2388 #ifndef YY_FATAL_ERROR
2389 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2392 /* end tables serialization structures and prototypes */
2394 /* Default declaration of generated scanner - a define so the user can
2395 * easily add parameters.
2398 #define YY_DECL_IS_OURS 1
2400 extern int surf_parse_lex (void);
2402 #define YY_DECL int surf_parse_lex (void)
2403 #endif /* !YY_DECL */
2405 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2408 #ifndef YY_USER_ACTION
2409 #define YY_USER_ACTION
2412 /* Code executed at the end of each rule. */
2414 #define YY_BREAK break;
2417 #define YY_RULE_SETUP \
2420 /** The main scanner function which does all the work.
2424 register yy_state_type yy_current_state;
2425 register char *yy_cp, *yy_bp;
2426 register int yy_act;
2428 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
2430 reset_surfxml_parse_err_msg();
2431 surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
2432 assert(surfxml_bufferstack);
2436 for (i = 0; i < blimit; i++) {
2437 surfxml_bufferstack[i] = '\377';
2441 surfxml_bufferstack[0] = '\0';
2442 indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
2448 surfxml_bufferliteral('\0', &bnext, "0.0");
2449 surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
2450 surfxml_bufferliteral('\0', &bnext, "http://simgrid.gforge.inria.fr/");
2451 surfxml_bufferliteral('\0', &bnext, "1.0");
2452 surfxml_bufferliteral('\0', &bnext, "1.0");
2453 surfxml_bufferliteral('\0', &bnext, "1.0");
2454 surfxml_bufferliteral('\0', &bnext, "1.0");
2455 surfxml_bufferliteral('\0', &bnext, "-1.0");
2456 surfxml_bufferliteral('\0', &bnext, "0.0");
2457 surfxml_bufferliteral('\0', &bnext, "0.0");
2458 surfxml_bufferliteral('\0', &bnext, "0.0");
2459 surfxml_bufferliteral('\0', &bnext, "0.0");
2460 surfxml_bufferliteral('\0', &bnext, "0.0");
2461 surfxml_bufferliteral('\0', &bnext, "-1.0");
2462 surfxml_bufferliteral('\0', &bnext, "-1.0");
2463 if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
2464 surfxml_statenames[PROLOG] = NULL;
2465 surfxml_statenames[DOCTYPE] = NULL;
2466 surfxml_statenames[EPILOG] = NULL;
2467 surfxml_statenames[INCOMMENT] = NULL;
2468 surfxml_statenames[INPI] = NULL;
2469 surfxml_statenames[VALUE1] = NULL;
2470 surfxml_statenames[VALUE2] = NULL;
2471 surfxml_statenames[CDATA] = NULL;
2472 surfxml_statenames[ROOT_surfxml_platform] = NULL;
2473 surfxml_statenames[AL_surfxml_platform] = NULL;
2474 surfxml_statenames[S_surfxml_platform] = "platform";
2475 surfxml_statenames[S_surfxml_platform_1] = "platform";
2476 surfxml_statenames[S_surfxml_platform_2] = "platform";
2477 surfxml_statenames[S_surfxml_platform_3] = "platform";
2478 surfxml_statenames[S_surfxml_platform_4] = "platform";
2479 surfxml_statenames[S_surfxml_platform_5] = "platform";
2480 surfxml_statenames[E_surfxml_platform] = "platform";
2481 surfxml_statenames[ROOT_surfxml_include] = NULL;
2482 surfxml_statenames[AL_surfxml_include] = NULL;
2483 surfxml_statenames[E_surfxml_include] = "include";
2484 surfxml_statenames[ROOT_surfxml_host] = NULL;
2485 surfxml_statenames[AL_surfxml_host] = NULL;
2486 surfxml_statenames[S_surfxml_host] = "host";
2487 surfxml_statenames[S_surfxml_host_1] = "host";
2488 surfxml_statenames[S_surfxml_host_2] = "host";
2489 surfxml_statenames[E_surfxml_host] = "host";
2490 surfxml_statenames[ROOT_surfxml_prop] = NULL;
2491 surfxml_statenames[AL_surfxml_prop] = NULL;
2492 surfxml_statenames[E_surfxml_prop] = "prop";
2493 surfxml_statenames[ROOT_surfxml_router] = NULL;
2494 surfxml_statenames[AL_surfxml_router] = NULL;
2495 surfxml_statenames[E_surfxml_router] = "router";
2496 surfxml_statenames[ROOT_surfxml_link] = NULL;
2497 surfxml_statenames[AL_surfxml_link] = NULL;
2498 surfxml_statenames[S_surfxml_link] = "link";
2499 surfxml_statenames[S_surfxml_link_1] = "link";
2500 surfxml_statenames[S_surfxml_link_2] = "link";
2501 surfxml_statenames[E_surfxml_link] = "link";
2502 surfxml_statenames[ROOT_surfxml_route] = NULL;
2503 surfxml_statenames[AL_surfxml_route] = NULL;
2504 surfxml_statenames[S_surfxml_route] = "route";
2505 surfxml_statenames[S_surfxml_route_1] = "route";
2506 surfxml_statenames[S_surfxml_route_2] = "route";
2507 surfxml_statenames[E_surfxml_route] = "route";
2508 surfxml_statenames[ROOT_surfxml_link_c_ctn] = NULL;
2509 surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
2510 surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
2511 surfxml_statenames[ROOT_surfxml_process] = NULL;
2512 surfxml_statenames[AL_surfxml_process] = NULL;
2513 surfxml_statenames[S_surfxml_process] = "process";
2514 surfxml_statenames[S_surfxml_process_1] = "process";
2515 surfxml_statenames[S_surfxml_process_2] = "process";
2516 surfxml_statenames[E_surfxml_process] = "process";
2517 surfxml_statenames[ROOT_surfxml_argument] = NULL;
2518 surfxml_statenames[AL_surfxml_argument] = NULL;
2519 surfxml_statenames[E_surfxml_argument] = "argument";
2522 /* COMMENTS and PIs: handled uniformly for efficiency. */
2533 (yy_start) = 1; /* first start state */
2535 if ( ! surf_parse_in )
2536 surf_parse_in = stdin;
2538 if ( ! surf_parse_out )
2539 surf_parse_out = stdout;
2541 if ( ! YY_CURRENT_BUFFER ) {
2542 surf_parse_ensure_buffer_stack ();
2543 YY_CURRENT_BUFFER_LVALUE =
2544 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
2547 surf_parse__load_buffer_state( );
2550 while ( 1 ) /* loops until end-of-file is reached */
2552 yy_cp = (yy_c_buf_p);
2554 /* Support of surf_parse_text. */
2555 *yy_cp = (yy_hold_char);
2557 /* yy_bp points to the position in yy_ch_buf of the start of
2562 yy_current_state = (yy_start);
2566 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2567 if ( yy_accept[yy_current_state] )
2569 (yy_last_accepting_state) = yy_current_state;
2570 (yy_last_accepting_cpos) = yy_cp;
2572 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2574 yy_current_state = (int) yy_def[yy_current_state];
2575 if ( yy_current_state >= 1481 )
2576 yy_c = yy_meta[(unsigned int) yy_c];
2578 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2581 while ( yy_base[yy_current_state] != 4138 );
2584 yy_act = yy_accept[yy_current_state];
2586 { /* have to back up */
2587 yy_cp = (yy_last_accepting_cpos);
2588 yy_current_state = (yy_last_accepting_state);
2589 yy_act = yy_accept[yy_current_state];
2592 YY_DO_BEFORE_ACTION;
2594 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2597 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
2598 if ( surf_parse_text[yyl] == '\n' )
2600 surf_parse_lineno++;
2604 do_action: /* This label is used only to access EOF actions. */
2607 { /* beginning of action switch */
2608 case 0: /* must back up */
2609 /* undo the effects of YY_DO_BEFORE_ACTION */
2610 *yy_cp = (yy_hold_char);
2611 yy_cp = (yy_last_accepting_cpos);
2612 yy_current_state = (yy_last_accepting_state);
2613 goto yy_find_action;
2631 /* rule 6 can match eol */
2635 case YY_STATE_EOF(INCOMMENT):
2636 FAIL("EOF in comment.");
2645 /* rule 9 can match eol */
2649 case YY_STATE_EOF(INPI):
2650 FAIL("EOF in PI (processing instruction).");
2653 /* SPACES: skipped uniformly */
2655 /* rule 10 can match eol */
2659 /* PROLOG: determine root element and process it. */
2662 /* rule 11 can match eol */
2667 /* rule 12 can match eol */
2669 FAIL("Bad declaration %s.",surf_parse_text);
2673 /* rule 13 can match eol */
2675 SET(ROOT_surfxml_link);
2678 /* rule 14 can match eol */
2680 SET(ROOT_surfxml_include);
2683 /* rule 15 can match eol */
2685 SET(ROOT_surfxml_route);
2688 /* rule 16 can match eol */
2690 SET(ROOT_surfxml_process);
2693 /* rule 17 can match eol */
2695 SET(ROOT_surfxml_link_c_ctn);
2698 /* rule 18 can match eol */
2700 SET(ROOT_surfxml_router);
2703 /* rule 19 can match eol */
2705 SET(ROOT_surfxml_host);
2708 /* rule 20 can match eol */
2710 SET(ROOT_surfxml_argument);
2713 /* rule 21 can match eol */
2715 SET(ROOT_surfxml_prop);
2718 /* rule 22 can match eol */
2720 SET(ROOT_surfxml_platform);
2723 /* rule 23 can match eol */
2725 FAIL("Bad declaration %s.",surf_parse_text);
2729 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
2731 case YY_STATE_EOF(PROLOG):
2732 case YY_STATE_EOF(DOCTYPE):
2733 FAIL("EOF in prolog.");
2736 /* RULES DERIVED FROM DTD. */
2737 /* <!-- Small DTD for SURF based tools. --> */
2739 /* rule 25 can match eol */
2742 AX_surfxml_platform_version = 1;
2743 AX_surfxml_platform_xmlns_c_link = 5;
2744 AX_surfxml_platform_xmlns_c_route = 37;
2745 ENTER(AL_surfxml_platform); pushbuffer(0);
2750 /* rule 26 can match eol */
2752 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_version);
2755 /* rule 27 can match eol */
2757 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_version);
2760 /* rule 28 can match eol */
2762 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
2765 /* rule 29 can match eol */
2767 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_link);
2770 /* rule 30 can match eol */
2772 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
2775 /* rule 31 can match eol */
2777 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_xmlns_c_route);
2782 LEAVE; STag_surfxml_platform();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform);
2788 LEAVE; STag_surfxml_platform(); surfxml_pcdata_ix = 0; ETag_surfxml_platform(); popbuffer(); /* attribute */
2790 case ROOT_surfxml_platform: SET(EPILOG); break;
2796 FAIL("Unexpected character `%c' in attribute list of platform element.", surf_parse_text[0]);
2800 FAIL("Bad attribute `%s' in `platform' element start tag.",surf_parse_text);
2802 case YY_STATE_EOF(AL_surfxml_platform):
2803 FAIL("EOF in attribute list of `platform' element.");
2807 /* rule 36 can match eol */
2811 ETag_surfxml_platform();
2812 popbuffer(); /* attribute */
2814 case ROOT_surfxml_platform: SET(EPILOG); break;
2819 /* rule 37 can match eol */
2821 FAIL("Unexpected end-tag `%s': `</platform>' expected.",surf_parse_text);
2825 FAIL("Unexpected character `%c': `</platform>' expected.",surf_parse_text[0]);
2827 case YY_STATE_EOF(S_surfxml_platform_5):
2828 case YY_STATE_EOF(S_surfxml_platform_1):
2829 case YY_STATE_EOF(S_surfxml_platform_3):
2830 case YY_STATE_EOF(S_surfxml_platform):
2831 case YY_STATE_EOF(E_surfxml_platform):
2832 FAIL("Premature EOF: `</platform>' expected.");
2836 /* rule 39 can match eol */
2839 AX_surfxml_include_file = 0;
2840 ENTER(AL_surfxml_include); pushbuffer(0);
2845 /* rule 40 can match eol */
2847 ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
2850 /* rule 41 can match eol */
2852 ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
2857 if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2858 LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(E_surfxml_include);
2864 if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2865 LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
2867 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;
2868 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
2869 case ROOT_surfxml_include: SET(EPILOG); break;
2875 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
2879 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
2881 case YY_STATE_EOF(AL_surfxml_include):
2882 FAIL("EOF in attribute list of `include' element.");
2886 /* rule 46 can match eol */
2890 ETag_surfxml_include();
2891 popbuffer(); /* attribute */
2893 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;
2894 case S_surfxml_platform_2: SET(S_surfxml_platform_3); break;
2895 case ROOT_surfxml_include: SET(EPILOG); break;
2900 /* rule 47 can match eol */
2902 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
2906 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
2908 case YY_STATE_EOF(E_surfxml_include):
2909 FAIL("Premature EOF: `</include>' expected.");
2913 /* rule 49 can match eol */
2916 AX_surfxml_host_id = 0;
2917 AX_surfxml_host_power = 0;
2918 AX_surfxml_host_availability = 69;
2919 AX_surfxml_host_availability_file = 0;
2920 AX_surfxml_host_state = A_surfxml_host_state_ON;
2921 AX_surfxml_host_state_file = 0;
2922 AX_surfxml_host_interference_send = 73;
2923 AX_surfxml_host_interference_recv = 77;
2924 AX_surfxml_host_interference_send_recv = 81;
2925 AX_surfxml_host_max_outgoing_rate = 85;
2926 ENTER(AL_surfxml_host); pushbuffer(0);
2931 /* rule 50 can match eol */
2933 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
2936 /* rule 51 can match eol */
2938 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
2941 /* rule 52 can match eol */
2943 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
2946 /* rule 53 can match eol */
2948 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
2951 /* rule 54 can match eol */
2953 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
2956 /* rule 55 can match eol */
2958 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
2961 /* rule 56 can match eol */
2963 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
2966 /* rule 57 can match eol */
2968 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
2971 /* rule 58 can match eol */
2973 /* rule 59 can match eol */
2975 A_surfxml_host_state = A_surfxml_host_state_ON;
2978 /* rule 60 can match eol */
2980 /* rule 61 can match eol */
2982 A_surfxml_host_state = A_surfxml_host_state_OFF;
2985 /* rule 62 can match eol */
2987 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
2990 /* rule 63 can match eol */
2992 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
2995 /* rule 64 can match eol */
2997 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send);
3000 /* rule 65 can match eol */
3002 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send);
3005 /* rule 66 can match eol */
3007 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_recv);
3010 /* rule 67 can match eol */
3012 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_recv);
3015 /* rule 68 can match eol */
3017 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send_recv);
3020 /* rule 69 can match eol */
3022 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send_recv);
3025 /* rule 70 can match eol */
3027 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
3030 /* rule 71 can match eol */
3032 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
3037 if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
3038 if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
3039 LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
3045 if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
3046 if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
3047 LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
3049 case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
3050 case ROOT_surfxml_host: SET(EPILOG); break;
3056 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
3060 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
3062 case YY_STATE_EOF(AL_surfxml_host):
3063 FAIL("EOF in attribute list of `host' element.");
3067 /* rule 76 can match eol */
3071 ETag_surfxml_host();
3072 popbuffer(); /* attribute */
3074 case S_surfxml_platform_2: case S_surfxml_platform_3: case S_surfxml_platform: SET(S_surfxml_platform_3); break;
3075 case ROOT_surfxml_host: SET(EPILOG); break;
3080 /* rule 77 can match eol */
3082 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
3086 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
3088 case YY_STATE_EOF(S_surfxml_host):
3089 case YY_STATE_EOF(E_surfxml_host):
3090 case YY_STATE_EOF(S_surfxml_host_2):
3091 FAIL("Premature EOF: `</host>' expected.");
3095 /* rule 79 can match eol */
3098 AX_surfxml_prop_id = 0;
3099 AX_surfxml_prop_value = 0;
3100 ENTER(AL_surfxml_prop); pushbuffer(0);
3105 /* rule 80 can match eol */
3107 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
3110 /* rule 81 can match eol */
3112 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
3115 /* rule 82 can match eol */
3117 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
3120 /* rule 83 can match eol */
3122 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
3127 if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
3128 if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
3129 LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
3135 if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
3136 if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
3137 LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
3139 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3140 case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
3141 case ROOT_surfxml_prop: SET(EPILOG); break;
3142 case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
3148 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
3152 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
3154 case YY_STATE_EOF(AL_surfxml_prop):
3155 FAIL("EOF in attribute list of `prop' element.");
3159 /* rule 88 can match eol */
3163 ETag_surfxml_prop();
3164 popbuffer(); /* attribute */
3166 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3167 case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
3168 case ROOT_surfxml_prop: SET(EPILOG); break;
3169 case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
3174 /* rule 89 can match eol */
3176 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
3180 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
3182 case YY_STATE_EOF(E_surfxml_prop):
3183 FAIL("Premature EOF: `</prop>' expected.");
3187 /* rule 91 can match eol */
3190 AX_surfxml_router_id = 0;
3191 ENTER(AL_surfxml_router); pushbuffer(0);
3196 /* rule 92 can match eol */
3198 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
3201 /* rule 93 can match eol */
3203 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
3208 if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
3209 LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
3215 if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
3216 LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
3218 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
3219 case ROOT_surfxml_router: SET(EPILOG); break;
3225 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
3229 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
3231 case YY_STATE_EOF(AL_surfxml_router):
3232 FAIL("EOF in attribute list of `router' element.");
3236 /* rule 98 can match eol */
3240 ETag_surfxml_router();
3241 popbuffer(); /* attribute */
3243 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
3244 case ROOT_surfxml_router: SET(EPILOG); break;
3249 /* rule 99 can match eol */
3251 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
3255 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
3257 case YY_STATE_EOF(E_surfxml_router):
3258 FAIL("Premature EOF: `</router>' expected.");
3262 /* rule 101 can match eol */
3265 AX_surfxml_link_id = 0;
3266 AX_surfxml_link_bandwidth = 0;
3267 AX_surfxml_link_bandwidth_file = 0;
3268 AX_surfxml_link_latency = 90;
3269 AX_surfxml_link_latency_file = 0;
3270 AX_surfxml_link_state = A_surfxml_link_state_ON;
3271 AX_surfxml_link_state_file = 0;
3272 AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
3273 ENTER(AL_surfxml_link); pushbuffer(0);
3278 /* rule 102 can match eol */
3280 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
3283 /* rule 103 can match eol */
3285 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
3288 /* rule 104 can match eol */
3290 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
3293 /* rule 105 can match eol */
3295 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
3298 /* rule 106 can match eol */
3300 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
3303 /* rule 107 can match eol */
3305 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
3308 /* rule 108 can match eol */
3310 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
3313 /* rule 109 can match eol */
3315 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
3318 /* rule 110 can match eol */
3320 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
3323 /* rule 111 can match eol */
3325 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
3328 /* rule 112 can match eol */
3330 /* rule 113 can match eol */
3332 A_surfxml_link_state = A_surfxml_link_state_ON;
3335 /* rule 114 can match eol */
3337 /* rule 115 can match eol */
3339 A_surfxml_link_state = A_surfxml_link_state_OFF;
3342 /* rule 116 can match eol */
3344 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
3347 /* rule 117 can match eol */
3349 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
3352 /* rule 118 can match eol */
3354 /* rule 119 can match eol */
3356 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
3359 /* rule 120 can match eol */
3361 /* rule 121 can match eol */
3363 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
3368 if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
3369 if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
3370 LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
3376 if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
3377 if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
3378 LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
3380 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
3381 case ROOT_surfxml_link: SET(EPILOG); break;
3387 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
3391 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
3393 case YY_STATE_EOF(AL_surfxml_link):
3394 FAIL("EOF in attribute list of `link' element.");
3398 /* rule 126 can match eol */
3402 ETag_surfxml_link();
3403 popbuffer(); /* attribute */
3405 case S_surfxml_platform_2: case S_surfxml_platform: case S_surfxml_platform_3: SET(S_surfxml_platform_3); break;
3406 case ROOT_surfxml_link: SET(EPILOG); break;
3411 /* rule 127 can match eol */
3413 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
3417 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
3419 case YY_STATE_EOF(S_surfxml_link_2):
3420 case YY_STATE_EOF(E_surfxml_link):
3421 case YY_STATE_EOF(S_surfxml_link):
3422 FAIL("Premature EOF: `</link>' expected.");
3426 /* rule 129 can match eol */
3429 AX_surfxml_route_src = 0;
3430 AX_surfxml_route_dst = 0;
3431 AX_surfxml_route_impact_on_src = 94;
3432 AX_surfxml_route_impact_on_dst = 98;
3433 AX_surfxml_route_impact_on_src_with_other_recv = 102;
3434 AX_surfxml_route_impact_on_dst_with_other_send = 106;
3435 ENTER(AL_surfxml_route); pushbuffer(0);
3440 /* rule 130 can match eol */
3442 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
3445 /* rule 131 can match eol */
3447 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
3450 /* rule 132 can match eol */
3452 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
3455 /* rule 133 can match eol */
3457 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
3460 /* rule 134 can match eol */
3462 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src);
3465 /* rule 135 can match eol */
3467 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src);
3470 /* rule 136 can match eol */
3472 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst);
3475 /* rule 137 can match eol */
3477 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst);
3480 /* rule 138 can match eol */
3482 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
3485 /* rule 139 can match eol */
3487 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
3490 /* rule 140 can match eol */
3492 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
3495 /* rule 141 can match eol */
3497 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
3502 if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3503 if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3504 LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
3510 if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3511 if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3512 LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
3514 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;
3515 case ROOT_surfxml_route: SET(EPILOG); break;
3521 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
3525 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
3527 case YY_STATE_EOF(AL_surfxml_route):
3528 FAIL("EOF in attribute list of `route' element.");
3532 /* rule 146 can match eol */
3536 ETag_surfxml_route();
3537 popbuffer(); /* attribute */
3539 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;
3540 case ROOT_surfxml_route: SET(EPILOG); break;
3545 /* rule 147 can match eol */
3547 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
3551 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
3553 case YY_STATE_EOF(S_surfxml_route):
3554 case YY_STATE_EOF(S_surfxml_route_2):
3555 case YY_STATE_EOF(E_surfxml_route):
3556 FAIL("Premature EOF: `</route>' expected.");
3560 /* rule 149 can match eol */
3563 AX_surfxml_link_c_ctn_id = 0;
3564 ENTER(AL_surfxml_link_c_ctn); pushbuffer(0);
3569 /* rule 150 can match eol */
3571 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_c_ctn_id);
3574 /* rule 151 can match eol */
3576 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_c_ctn_id);
3581 if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
3582 LEAVE; STag_surfxml_link_c_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_c_ctn);
3588 if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
3589 LEAVE; STag_surfxml_link_c_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_c_ctn(); popbuffer(); /* attribute */
3591 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3592 case ROOT_surfxml_link_c_ctn: SET(EPILOG); break;
3598 FAIL("Unexpected character `%c' in attribute list of link:ctn element.", surf_parse_text[0]);
3602 FAIL("Bad attribute `%s' in `link:ctn' element start tag.",surf_parse_text);
3604 case YY_STATE_EOF(AL_surfxml_link_c_ctn):
3605 FAIL("EOF in attribute list of `link:ctn' element.");
3609 /* rule 156 can match eol */
3613 ETag_surfxml_link_c_ctn();
3614 popbuffer(); /* attribute */
3616 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3617 case ROOT_surfxml_link_c_ctn: SET(EPILOG); break;
3622 /* rule 157 can match eol */
3624 FAIL("Unexpected end-tag `%s': `</link:ctn>' expected.",surf_parse_text);
3628 FAIL("Unexpected character `%c': `</link:ctn>' expected.",surf_parse_text[0]);
3630 case YY_STATE_EOF(E_surfxml_link_c_ctn):
3631 FAIL("Premature EOF: `</link:ctn>' expected.");
3635 /* rule 159 can match eol */
3638 AX_surfxml_process_host = 0;
3639 AX_surfxml_process_function = 0;
3640 AX_surfxml_process_start_time = 110;
3641 AX_surfxml_process_kill_time = 115;
3642 ENTER(AL_surfxml_process); pushbuffer(0);
3647 /* rule 160 can match eol */
3649 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
3652 /* rule 161 can match eol */
3654 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
3657 /* rule 162 can match eol */
3659 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
3662 /* rule 163 can match eol */
3664 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
3667 /* rule 164 can match eol */
3669 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
3672 /* rule 165 can match eol */
3674 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
3677 /* rule 166 can match eol */
3679 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
3682 /* rule 167 can match eol */
3684 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
3689 if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3690 if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3691 LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
3697 if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3698 if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3699 LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
3701 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;
3702 case ROOT_surfxml_process: SET(EPILOG); break;
3708 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
3712 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
3714 case YY_STATE_EOF(AL_surfxml_process):
3715 FAIL("EOF in attribute list of `process' element.");
3719 /* rule 172 can match eol */
3723 ETag_surfxml_process();
3724 popbuffer(); /* attribute */
3726 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;
3727 case ROOT_surfxml_process: SET(EPILOG); break;
3732 /* rule 173 can match eol */
3734 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
3738 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
3740 case YY_STATE_EOF(S_surfxml_process):
3741 case YY_STATE_EOF(E_surfxml_process):
3742 case YY_STATE_EOF(S_surfxml_process_2):
3743 FAIL("Premature EOF: `</process>' expected.");
3747 /* rule 175 can match eol */
3750 AX_surfxml_argument_value = 0;
3751 ENTER(AL_surfxml_argument); pushbuffer(0);
3756 /* rule 176 can match eol */
3758 ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
3761 /* rule 177 can match eol */
3763 ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
3768 if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3769 LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
3775 if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3776 LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
3778 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3779 case ROOT_surfxml_argument: SET(EPILOG); break;
3785 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
3789 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
3791 case YY_STATE_EOF(AL_surfxml_argument):
3792 FAIL("EOF in attribute list of `argument' element.");
3796 /* rule 182 can match eol */
3800 ETag_surfxml_argument();
3801 popbuffer(); /* attribute */
3803 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3804 case ROOT_surfxml_argument: SET(EPILOG); break;
3809 /* rule 183 can match eol */
3811 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
3815 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
3817 case YY_STATE_EOF(E_surfxml_argument):
3818 FAIL("Premature EOF: `</argument>' expected.");
3821 /* EPILOG: after the root element. */
3825 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
3827 case YY_STATE_EOF(EPILOG):
3831 /* CHARACTER DATA. */
3833 /* Non-defined standard entities... */
3854 /* Character entities. */
3857 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
3861 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
3865 /* rule 193 can match eol */
3867 /* rule 194 can match eol */
3869 /* rule 195 can match eol */
3871 /* rule 196 can match eol */
3882 FAIL("Unexpected `]""]>' in character data.");
3889 case YY_STATE_EOF(VALUE1):
3890 FAIL("EOF in literal (\"'\" expected).");
3897 case YY_STATE_EOF(VALUE2):
3898 FAIL("EOF in literal (`\"' expected).");
3902 /* rule 201 can match eol */
3904 BUFFERPUTC(surf_parse_text[0]);
3908 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
3915 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
3918 BUFFERPUTC(surf_parse_text[0]);
3920 case YY_STATE_EOF(CDATA):
3921 FAIL("EOF in CDATA section.");
3924 /* Impossible rules to avoid warnings from flex(1). */
3925 /* Ideally, this should be replaced by code in flexml.pl that
3926 generates just the states not covered by other rules. */
3929 /* rule 205 can match eol */
3931 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
3938 case YY_STATE_EOF(INITIAL):
3939 case YY_STATE_EOF(ROOT_surfxml_platform):
3940 case YY_STATE_EOF(S_surfxml_platform_2):
3941 case YY_STATE_EOF(S_surfxml_platform_4):
3942 case YY_STATE_EOF(ROOT_surfxml_include):
3943 case YY_STATE_EOF(ROOT_surfxml_host):
3944 case YY_STATE_EOF(S_surfxml_host_1):
3945 case YY_STATE_EOF(ROOT_surfxml_prop):
3946 case YY_STATE_EOF(ROOT_surfxml_router):
3947 case YY_STATE_EOF(ROOT_surfxml_link):
3948 case YY_STATE_EOF(S_surfxml_link_1):
3949 case YY_STATE_EOF(ROOT_surfxml_route):
3950 case YY_STATE_EOF(S_surfxml_route_1):
3951 case YY_STATE_EOF(ROOT_surfxml_link_c_ctn):
3952 case YY_STATE_EOF(ROOT_surfxml_process):
3953 case YY_STATE_EOF(S_surfxml_process_1):
3954 case YY_STATE_EOF(ROOT_surfxml_argument):
3955 case YY_STATE_EOF(IMPOSSIBLE):
3958 case YY_END_OF_BUFFER:
3960 /* Amount of text matched not including the EOB char. */
3961 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3963 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3964 *yy_cp = (yy_hold_char);
3965 YY_RESTORE_YY_MORE_OFFSET
3967 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3969 /* We're scanning a new file or input source. It's
3970 * possible that this happened because the user
3971 * just pointed surf_parse_in at a new source and called
3972 * surf_parse_lex(). If so, then we have to assure
3973 * consistency between YY_CURRENT_BUFFER and our
3974 * globals. Here is the right place to do so, because
3975 * this is the first action (other than possibly a
3976 * back-up) that will match for the new input source.
3978 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3979 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
3980 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3983 /* Note that here we test for yy_c_buf_p "<=" to the position
3984 * of the first EOB in the buffer, since yy_c_buf_p will
3985 * already have been incremented past the NUL character
3986 * (since all states make transitions on EOB to the
3987 * end-of-buffer state). Contrast this with the test
3990 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3991 { /* This was really a NUL. */
3992 yy_state_type yy_next_state;
3994 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3996 yy_current_state = yy_get_previous_state( );
3998 /* Okay, we're now positioned to make the NUL
3999 * transition. We couldn't have
4000 * yy_get_previous_state() go ahead and do it
4001 * for us because it doesn't know how to deal
4002 * with the possibility of jamming (and we don't
4003 * want to build jamming into it because then it
4004 * will run more slowly).
4007 yy_next_state = yy_try_NUL_trans( yy_current_state );
4009 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4011 if ( yy_next_state )
4013 /* Consume the NUL. */
4014 yy_cp = ++(yy_c_buf_p);
4015 yy_current_state = yy_next_state;
4021 yy_cp = (yy_c_buf_p);
4022 goto yy_find_action;
4026 else switch ( yy_get_next_buffer( ) )
4028 case EOB_ACT_END_OF_FILE:
4030 (yy_did_buffer_switch_on_eof) = 0;
4032 if ( surf_parse_wrap( ) )
4034 /* Note: because we've taken care in
4035 * yy_get_next_buffer() to have set up
4036 * surf_parse_text, we can now set up
4037 * yy_c_buf_p so that if some total
4038 * hoser (like flex itself) wants to
4039 * call the scanner after we return the
4040 * YY_NULL, it'll still work - another
4041 * YY_NULL will get returned.
4043 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
4045 yy_act = YY_STATE_EOF(YY_START);
4051 if ( ! (yy_did_buffer_switch_on_eof) )
4057 case EOB_ACT_CONTINUE_SCAN:
4059 (yytext_ptr) + yy_amount_of_matched_text;
4061 yy_current_state = yy_get_previous_state( );
4063 yy_cp = (yy_c_buf_p);
4064 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4067 case EOB_ACT_LAST_MATCH:
4069 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
4071 yy_current_state = yy_get_previous_state( );
4073 yy_cp = (yy_c_buf_p);
4074 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4075 goto yy_find_action;
4082 "fatal flex scanner internal error--no action found" );
4083 } /* end of action switch */
4084 } /* end of scanning one token */
4085 } /* end of surf_parse_lex */
4087 /* yy_get_next_buffer - try to read in a new buffer
4089 * Returns a code representing an action:
4090 * EOB_ACT_LAST_MATCH -
4091 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4092 * EOB_ACT_END_OF_FILE - end of file
4094 static int yy_get_next_buffer (void)
4096 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4097 register char *source = (yytext_ptr);
4098 register int number_to_move, i;
4101 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
4103 "fatal flex scanner internal error--end of buffer missed" );
4105 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4106 { /* Don't try to fill the buffer, so this is an EOF. */
4107 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
4109 /* We matched a single character, the EOB, so
4110 * treat this as a final EOF.
4112 return EOB_ACT_END_OF_FILE;
4117 /* We matched some text prior to the EOB, first
4120 return EOB_ACT_LAST_MATCH;
4124 /* Try to read more data. */
4126 /* First move last chars to start of buffer. */
4127 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
4129 for ( i = 0; i < number_to_move; ++i )
4130 *(dest++) = *(source++);
4132 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4133 /* don't do the read, it's not guaranteed to return an EOF,
4136 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
4141 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4143 while ( num_to_read <= 0 )
4144 { /* Not enough room in the buffer - grow it. */
4146 /* just a shorter name for the current buffer */
4147 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
4149 int yy_c_buf_p_offset =
4150 (int) ((yy_c_buf_p) - b->yy_ch_buf);
4152 if ( b->yy_is_our_buffer )
4154 int new_size = b->yy_buf_size * 2;
4156 if ( new_size <= 0 )
4157 b->yy_buf_size += b->yy_buf_size / 8;
4159 b->yy_buf_size *= 2;
4161 b->yy_ch_buf = (char *)
4162 /* Include room in for 2 EOB chars. */
4163 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
4166 /* Can't grow it, we don't own it. */
4169 if ( ! b->yy_ch_buf )
4171 "fatal error - scanner input buffer overflow" );
4173 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
4175 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4180 if ( num_to_read > YY_READ_BUF_SIZE )
4181 num_to_read = YY_READ_BUF_SIZE;
4183 /* Read in more data. */
4184 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4185 (yy_n_chars), (size_t) num_to_read );
4187 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4190 if ( (yy_n_chars) == 0 )
4192 if ( number_to_move == YY_MORE_ADJ )
4194 ret_val = EOB_ACT_END_OF_FILE;
4195 surf_parse_restart(surf_parse_in );
4200 ret_val = EOB_ACT_LAST_MATCH;
4201 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4202 YY_BUFFER_EOF_PENDING;
4207 ret_val = EOB_ACT_CONTINUE_SCAN;
4209 (yy_n_chars) += number_to_move;
4210 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
4211 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
4213 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4218 /* yy_get_previous_state - get the state just before the EOB char was reached */
4220 static yy_state_type yy_get_previous_state (void)
4222 register yy_state_type yy_current_state;
4223 register char *yy_cp;
4225 yy_current_state = (yy_start);
4227 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
4229 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4230 if ( yy_accept[yy_current_state] )
4232 (yy_last_accepting_state) = yy_current_state;
4233 (yy_last_accepting_cpos) = yy_cp;
4235 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4237 yy_current_state = (int) yy_def[yy_current_state];
4238 if ( yy_current_state >= 1481 )
4239 yy_c = yy_meta[(unsigned int) yy_c];
4241 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4244 return yy_current_state;
4247 /* yy_try_NUL_trans - try to make a transition on the NUL character
4250 * next_state = yy_try_NUL_trans( current_state );
4252 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
4254 register int yy_is_jam;
4255 register char *yy_cp = (yy_c_buf_p);
4257 register YY_CHAR yy_c = 1;
4258 if ( yy_accept[yy_current_state] )
4260 (yy_last_accepting_state) = yy_current_state;
4261 (yy_last_accepting_cpos) = yy_cp;
4263 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4265 yy_current_state = (int) yy_def[yy_current_state];
4266 if ( yy_current_state >= 1481 )
4267 yy_c = yy_meta[(unsigned int) yy_c];
4269 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4270 yy_is_jam = (yy_current_state == 1480);
4272 return yy_is_jam ? 0 : yy_current_state;
4277 static int yyinput (void)
4279 static int input (void)
4285 *(yy_c_buf_p) = (yy_hold_char);
4287 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4289 /* yy_c_buf_p now points to the character we want to return.
4290 * If this occurs *before* the EOB characters, then it's a
4291 * valid NUL; if not, then we've hit the end of the buffer.
4293 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4294 /* This was really a NUL. */
4295 *(yy_c_buf_p) = '\0';
4298 { /* need more input */
4299 int offset = (yy_c_buf_p) - (yytext_ptr);
4302 switch ( yy_get_next_buffer( ) )
4304 case EOB_ACT_LAST_MATCH:
4305 /* This happens because yy_g_n_b()
4306 * sees that we've accumulated a
4307 * token and flags that we need to
4308 * try matching the token before
4309 * proceeding. But for input(),
4310 * there's no matching to consider.
4311 * So convert the EOB_ACT_LAST_MATCH
4312 * to EOB_ACT_END_OF_FILE.
4315 /* Reset buffer status. */
4316 surf_parse_restart(surf_parse_in );
4320 case EOB_ACT_END_OF_FILE:
4322 if ( surf_parse_wrap( ) )
4325 if ( ! (yy_did_buffer_switch_on_eof) )
4334 case EOB_ACT_CONTINUE_SCAN:
4335 (yy_c_buf_p) = (yytext_ptr) + offset;
4341 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
4342 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
4343 (yy_hold_char) = *++(yy_c_buf_p);
4347 surf_parse_lineno++;
4352 #endif /* ifndef YY_NO_INPUT */
4354 /** Immediately switch to a different input stream.
4355 * @param input_file A readable stream.
4357 * @note This function does not reset the start condition to @c INITIAL .
4359 void surf_parse_restart (FILE * input_file )
4362 if ( ! YY_CURRENT_BUFFER ){
4363 surf_parse_ensure_buffer_stack ();
4364 YY_CURRENT_BUFFER_LVALUE =
4365 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4368 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
4369 surf_parse__load_buffer_state( );
4372 /** Switch to a different input buffer.
4373 * @param new_buffer The new input buffer.
4376 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
4379 /* TODO. We should be able to replace this entire function body
4381 * surf_parse_pop_buffer_state();
4382 * surf_parse_push_buffer_state(new_buffer);
4384 surf_parse_ensure_buffer_stack ();
4385 if ( YY_CURRENT_BUFFER == new_buffer )
4388 if ( YY_CURRENT_BUFFER )
4390 /* Flush out information for old buffer. */
4391 *(yy_c_buf_p) = (yy_hold_char);
4392 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4393 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4396 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4397 surf_parse__load_buffer_state( );
4399 /* We don't actually know whether we did this switch during
4400 * EOF (surf_parse_wrap()) processing, but the only time this flag
4401 * is looked at is after surf_parse_wrap() is called, so it's safe
4402 * to go ahead and always set it.
4404 (yy_did_buffer_switch_on_eof) = 1;
4407 static void surf_parse__load_buffer_state (void)
4409 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4410 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4411 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4412 (yy_hold_char) = *(yy_c_buf_p);
4415 /** Allocate and initialize an input buffer state.
4416 * @param file A readable stream.
4417 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4419 * @return the allocated buffer state.
4421 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
4425 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4427 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4429 b->yy_buf_size = size;
4431 /* yy_ch_buf has to be 2 characters longer than the size given because
4432 * we need to put in 2 end-of-buffer characters.
4434 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
4435 if ( ! b->yy_ch_buf )
4436 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4438 b->yy_is_our_buffer = 1;
4440 surf_parse__init_buffer(b,file );
4445 /** Destroy the buffer.
4446 * @param b a buffer created with surf_parse__create_buffer()
4449 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
4455 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4456 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4458 if ( b->yy_is_our_buffer )
4459 surf_parse_free((void *) b->yy_ch_buf );
4461 surf_parse_free((void *) b );
4465 extern int isatty (int );
4466 #endif /* __cplusplus */
4468 /* Initializes or reinitializes a buffer.
4469 * This function is sometimes called more than once on the same buffer,
4470 * such as during a surf_parse_restart() or at EOF.
4472 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
4477 surf_parse__flush_buffer(b );
4479 b->yy_input_file = file;
4480 b->yy_fill_buffer = 1;
4482 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
4483 * called from surf_parse_restart() or through yy_get_next_buffer.
4484 * In that case, we don't want to reset the lineno or column.
4486 if (b != YY_CURRENT_BUFFER){
4487 b->yy_bs_lineno = 1;
4488 b->yy_bs_column = 0;
4491 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4496 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4497 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4500 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
4507 /* We always need two end-of-buffer characters. The first causes
4508 * a transition to the end-of-buffer state. The second causes
4509 * a jam in that state.
4511 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4512 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4514 b->yy_buf_pos = &b->yy_ch_buf[0];
4517 b->yy_buffer_status = YY_BUFFER_NEW;
4519 if ( b == YY_CURRENT_BUFFER )
4520 surf_parse__load_buffer_state( );
4523 /** Pushes the new state onto the stack. The new state becomes
4524 * the current state. This function will allocate the stack
4526 * @param new_buffer The new state.
4529 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
4531 if (new_buffer == NULL)
4534 surf_parse_ensure_buffer_stack();
4536 /* This block is copied from surf_parse__switch_to_buffer. */
4537 if ( YY_CURRENT_BUFFER )
4539 /* Flush out information for old buffer. */
4540 *(yy_c_buf_p) = (yy_hold_char);
4541 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4542 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4545 /* Only push if top exists. Otherwise, replace top. */
4546 if (YY_CURRENT_BUFFER)
4547 (yy_buffer_stack_top)++;
4548 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4550 /* copied from surf_parse__switch_to_buffer. */
4551 surf_parse__load_buffer_state( );
4552 (yy_did_buffer_switch_on_eof) = 1;
4555 /** Removes and deletes the top of the stack, if present.
4556 * The next element becomes the new top.
4559 void surf_parse_pop_buffer_state (void)
4561 if (!YY_CURRENT_BUFFER)
4564 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4565 YY_CURRENT_BUFFER_LVALUE = NULL;
4566 if ((yy_buffer_stack_top) > 0)
4567 --(yy_buffer_stack_top);
4569 if (YY_CURRENT_BUFFER) {
4570 surf_parse__load_buffer_state( );
4571 (yy_did_buffer_switch_on_eof) = 1;
4575 /* Allocates the stack if it does not exist.
4576 * Guarantees space for at least one push.
4578 static void surf_parse_ensure_buffer_stack (void)
4582 if (!(yy_buffer_stack)) {
4584 /* First allocation is just for 2 elements, since we don't know if this
4585 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4586 * immediate realloc on the next call.
4589 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
4590 (num_to_alloc * sizeof(struct yy_buffer_state*)
4593 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4595 (yy_buffer_stack_max) = num_to_alloc;
4596 (yy_buffer_stack_top) = 0;
4600 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4602 /* Increase the buffer to prepare for a possible push. */
4603 int grow_size = 8 /* arbitrary grow size */;
4605 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4606 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
4608 num_to_alloc * sizeof(struct yy_buffer_state*)
4611 /* zero only the new slots.*/
4612 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4613 (yy_buffer_stack_max) = num_to_alloc;
4617 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4618 * @param base the character buffer
4619 * @param size the size in bytes of the character buffer
4621 * @return the newly allocated buffer state object.
4623 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
4628 base[size-2] != YY_END_OF_BUFFER_CHAR ||
4629 base[size-1] != YY_END_OF_BUFFER_CHAR )
4630 /* They forgot to leave room for the EOB's. */
4633 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4635 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
4637 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4638 b->yy_buf_pos = b->yy_ch_buf = base;
4639 b->yy_is_our_buffer = 0;
4640 b->yy_input_file = 0;
4641 b->yy_n_chars = b->yy_buf_size;
4642 b->yy_is_interactive = 0;
4644 b->yy_fill_buffer = 0;
4645 b->yy_buffer_status = YY_BUFFER_NEW;
4647 surf_parse__switch_to_buffer(b );
4652 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
4653 * scan from a @e copy of @a str.
4654 * @param yystr a NUL-terminated string to scan
4656 * @return the newly allocated buffer state object.
4657 * @note If you want to scan bytes that may contain NUL values, then use
4658 * surf_parse__scan_bytes() instead.
4660 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
4663 return surf_parse__scan_bytes(yystr,strlen(yystr) );
4666 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
4667 * scan from a @e copy of @a bytes.
4668 * @param bytes the byte buffer to scan
4669 * @param len the number of bytes in the buffer pointed to by @a bytes.
4671 * @return the newly allocated buffer state object.
4673 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * yybytes, int _yybytes_len )
4680 /* Get memory for full buffer, including space for trailing EOB's. */
4681 n = _yybytes_len + 2;
4682 buf = (char *) surf_parse_alloc(n );
4684 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
4686 for ( i = 0; i < _yybytes_len; ++i )
4687 buf[i] = yybytes[i];
4689 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4691 b = surf_parse__scan_buffer(buf,n );
4693 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
4695 /* It's okay to grow etc. this buffer, and we should throw it
4696 * away when we're done.
4698 b->yy_is_our_buffer = 1;
4703 static void yy_push_state (int new_state )
4705 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4709 (yy_start_stack_depth) += YY_START_STACK_INCR;
4710 new_size = (yy_start_stack_depth) * sizeof( int );
4712 if ( ! (yy_start_stack) )
4713 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
4716 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
4718 if ( ! (yy_start_stack) )
4720 "out of memory expanding start-condition stack" );
4723 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4728 static void yy_pop_state (void)
4730 if ( --(yy_start_stack_ptr) < 0 )
4731 YY_FATAL_ERROR( "start-condition stack underflow" );
4733 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4736 #ifndef YY_EXIT_FAILURE
4737 #define YY_EXIT_FAILURE 2
4740 static void yy_fatal_error (yyconst char* msg )
4742 (void) fprintf( stderr, "%s\n", msg );
4743 exit( YY_EXIT_FAILURE );
4746 /* Redefine yyless() so it works in section 3 code. */
4752 /* Undo effects of setting up surf_parse_text. */ \
4753 int yyless_macro_arg = (n); \
4754 YY_LESS_LINENO(yyless_macro_arg);\
4755 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
4756 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
4757 (yy_hold_char) = *(yy_c_buf_p); \
4758 *(yy_c_buf_p) = '\0'; \
4759 surf_parse_leng = yyless_macro_arg; \
4763 /* Accessor methods (get/set functions) to struct members. */
4765 /** Get the current line number.
4768 int surf_parse_get_lineno (void)
4771 return surf_parse_lineno;
4774 /** Get the input stream.
4777 FILE *surf_parse_get_in (void)
4779 return surf_parse_in;
4782 /** Get the output stream.
4785 FILE *surf_parse_get_out (void)
4787 return surf_parse_out;
4790 /** Get the length of the current token.
4793 int surf_parse_get_leng (void)
4795 return surf_parse_leng;
4798 /** Get the current token.
4802 char *surf_parse_get_text (void)
4804 return surf_parse_text;
4807 /** Set the current line number.
4808 * @param line_number
4811 void surf_parse_set_lineno (int line_number )
4814 surf_parse_lineno = line_number;
4817 /** Set the input stream. This does not discard the current
4819 * @param in_str A readable stream.
4821 * @see surf_parse__switch_to_buffer
4823 void surf_parse_set_in (FILE * in_str )
4825 surf_parse_in = in_str ;
4828 void surf_parse_set_out (FILE * out_str )
4830 surf_parse_out = out_str ;
4833 int surf_parse_get_debug (void)
4835 return surf_parse__flex_debug;
4838 void surf_parse_set_debug (int bdebug )
4840 surf_parse__flex_debug = bdebug ;
4843 static int yy_init_globals (void)
4845 /* Initialization is the same as for the non-reentrant scanner.
4846 * This function is called from surf_parse_lex_destroy(), so don't allocate here.
4849 /* We do not touch surf_parse_lineno unless the option is enabled. */
4850 surf_parse_lineno = 1;
4852 (yy_buffer_stack) = 0;
4853 (yy_buffer_stack_top) = 0;
4854 (yy_buffer_stack_max) = 0;
4855 (yy_c_buf_p) = (char *) 0;
4859 (yy_start_stack_ptr) = 0;
4860 (yy_start_stack_depth) = 0;
4861 (yy_start_stack) = NULL;
4863 /* Defined in main.c */
4865 surf_parse_in = stdin;
4866 surf_parse_out = stdout;
4868 surf_parse_in = (FILE *) 0;
4869 surf_parse_out = (FILE *) 0;
4872 /* For future reference: Set errno on error, since we are called by
4873 * surf_parse_lex_init()
4878 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
4879 int surf_parse_lex_destroy (void)
4882 /* Pop the buffer stack, destroying each element. */
4883 while(YY_CURRENT_BUFFER){
4884 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4885 YY_CURRENT_BUFFER_LVALUE = NULL;
4886 surf_parse_pop_buffer_state();
4889 /* Destroy the stack itself. */
4890 surf_parse_free((yy_buffer_stack) );
4891 (yy_buffer_stack) = NULL;
4893 /* Destroy the start condition stack. */
4894 surf_parse_free((yy_start_stack) );
4895 (yy_start_stack) = NULL;
4897 /* Reset the globals. This is important in a non-reentrant scanner so the next time
4898 * surf_parse_lex() is called, initialization will occur. */
4905 * Internal utility routines.
4909 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4912 for ( i = 0; i < n; ++i )
4917 #ifdef YY_NEED_STRLEN
4918 static int yy_flex_strlen (yyconst char * s )
4921 for ( n = 0; s[n]; ++n )
4928 void *surf_parse_alloc (yy_size_t size )
4930 return (void *) malloc( size );
4933 void *surf_parse_realloc (void * ptr, yy_size_t size )
4935 /* The cast to (char *) in the following accommodates both
4936 * implementations that use char* generic pointers, and those
4937 * that use void* generic pointers. It works with the latter
4938 * because both ANSI C and C++ allow castless assignment from
4939 * any pointer type to void*, and deal with argument conversions
4940 * as though doing an assignment.
4942 return (void *) realloc( (char *) ptr, size );
4945 void surf_parse_free (void * ptr )
4947 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
4950 #define YYTABLES_NAME "yytables"
4952 /* Element context stack lookup. */
4953 int surfxml_element_context(int i)
4955 return (0<i && i<yy_start_stack_depth
4956 ? yy_start_stack[yy_start_stack_ptr - i]
4961 void print_yy_stack(char* fmt, ...)
4963 int i = 0; va_list ap; va_start(ap, fmt);
4964 vfprintf(stderr, fmt, ap);
4965 if (surfxml_statenames) {
4966 for (i=1; i<yy_start_stack_ptr; i++) {
4967 fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
4969 fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
4974 void print_surfxml_bufferstack()
4977 fputs("Buffer: ", stderr);
4978 for (i = 0; i < blimit; i++) {
4979 if ( surfxml_bufferstack[i] == '\377' ) break;
4980 putc(surfxml_bufferstack[i], stderr);
4985 static void debug_enter(int state, const char* statename) {
4986 yy_push_state(state);
4987 if (surf_parse__flex_debug) {
4988 print_yy_stack("--ENTER(%s) : ",statename);
4989 print_surfxml_bufferstack();
4993 static void debug_leave(void) {
4994 if (surf_parse__flex_debug) {
4995 print_yy_stack("--LEAVE : ");
4996 print_surfxml_bufferstack();
5001 static void debug_set(int state, const char* statename) {
5003 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
5007 static void cleanup(void)
5009 if (surfxml_statenames) {
5010 free(surfxml_statenames);
5011 surfxml_statenames = NULL;
5013 free(surfxml_bufferstack);
5014 surfxml_bufferstack = NULL;
5020 static int fail(const char* fmt, ...)
5022 int chars_left, used;
5023 va_list ap; va_start(ap, fmt);
5024 #ifdef FLEXML_yylineno
5025 used = sprintf(flexml_err_msg,
5026 "Invalid XML (XML input line %d, state %d): ",
5027 surf_parse_lineno, YY_START);
5029 used = sprintf(flexml_err_msg,
5030 "Invalid XML (state %d): ",
5033 chars_left = flexml_max_err_msg_size - used - 1;
5034 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
5037 #ifndef FLEXML_quiet_parser
5038 /* print directly to sdterr */
5039 fprintf(stderr, "%s\n", flexml_err_msg);
5040 flexml_err_msg[0] = '\0';