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 202
383 #define YY_END_OF_BUFFER 203
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[1492] =
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, 203, 201, 24, 10,
406 10, 24, 24, 181, 10, 181, 5, 6, 5, 8,
407 9, 8, 197, 189, 190, 198, 195, 198, 196, 200,
408 189, 190, 200, 201, 30, 10, 30, 30, 30, 28,
409 30, 34, 10, 34, 34, 201, 201, 34, 201, 40,
410 10, 40, 40, 40, 38, 40, 44, 10, 44, 201,
411 70, 10, 70, 70, 70, 68, 70, 70, 70, 70,
412 70, 74, 10, 74, 201, 74, 82, 10, 82, 82,
413 82, 80, 82, 82, 86, 10, 86, 201, 92, 10,
415 92, 92, 92, 90, 92, 96, 10, 96, 201, 120,
416 10, 120, 120, 120, 118, 120, 120, 120, 120, 124,
417 10, 124, 124, 201, 140, 10, 140, 140, 140, 138,
418 140, 140, 140, 144, 10, 144, 201, 144, 150, 10,
419 150, 150, 150, 148, 150, 154, 10, 154, 201, 166,
420 10, 166, 166, 166, 164, 166, 166, 166, 166, 170,
421 10, 170, 201, 170, 201, 176, 10, 176, 176, 176,
422 174, 176, 180, 10, 180, 198, 197, 10, 0, 2,
423 2, 0, 4, 7, 192, 191, 0, 0, 0, 0,
424 0, 0, 0, 29, 31, 31, 0, 0, 0, 0,
426 0, 0, 0, 0, 39, 41, 41, 0, 69, 71,
427 71, 71, 71, 71, 71, 71, 0, 0, 81, 83,
428 83, 83, 0, 91, 93, 93, 0, 119, 121, 121,
429 121, 121, 121, 121, 0, 139, 141, 141, 141, 141,
430 0, 0, 149, 151, 151, 0, 165, 167, 167, 167,
431 167, 167, 0, 0, 175, 177, 177, 0, 0, 0,
432 0, 0, 0, 0, 3, 0, 0, 0, 0, 0,
433 0, 0, 199, 0, 31, 0, 0, 0, 0, 0,
434 0, 0, 0, 0, 41, 0, 0, 71, 0, 0,
435 71, 71, 71, 71, 0, 0, 0, 0, 0, 83,
437 0, 0, 0, 0, 0, 0, 121, 0, 0, 121,
438 121, 121, 0, 0, 141, 141, 141, 0, 0, 0,
439 0, 0, 0, 0, 167, 167, 167, 167, 0, 0,
440 0, 177, 0, 0, 0, 194, 0, 23, 1, 0,
441 0, 187, 0, 0, 0, 184, 183, 0, 0, 31,
442 0, 0, 33, 0, 0, 0, 0, 0, 0, 0,
443 0, 41, 0, 0, 43, 0, 71, 0, 47, 46,
444 71, 71, 71, 71, 0, 0, 73, 0, 0, 0,
445 77, 76, 83, 0, 0, 85, 0, 0, 89, 88,
446 0, 0, 95, 0, 121, 0, 99, 98, 121, 121,
448 121, 0, 0, 123, 0, 0, 0, 141, 0, 0,
449 0, 0, 143, 0, 0, 0, 147, 146, 0, 0,
450 153, 0, 167, 167, 167, 167, 0, 0, 169, 0,
451 0, 177, 0, 0, 179, 0, 0, 0, 0, 188,
452 182, 0, 0, 0, 31, 0, 45, 0, 97, 0,
453 0, 0, 0, 0, 0, 0, 71, 71, 71, 71,
454 71, 0, 75, 83, 0, 0, 121, 121, 121, 121,
455 0, 0, 129, 128, 141, 0, 127, 126, 0, 0,
456 0, 167, 0, 0, 167, 167, 0, 0, 177, 0,
457 0, 0, 0, 0, 12, 0, 185, 186, 0, 31,
459 0, 45, 0, 97, 0, 125, 125, 0, 0, 37,
460 36, 0, 71, 71, 71, 0, 0, 0, 0, 71,
461 0, 75, 0, 0, 0, 0, 121, 121, 121, 0,
462 0, 121, 0, 141, 0, 0, 0, 167, 0, 157,
463 156, 167, 167, 0, 0, 0, 0, 0, 0, 0,
464 0, 0, 11, 0, 31, 0, 0, 0, 125, 87,
465 0, 71, 71, 71, 0, 49, 48, 0, 0, 0,
466 71, 0, 72, 0, 79, 78, 0, 84, 0, 121,
467 121, 121, 0, 0, 0, 121, 0, 122, 141, 0,
468 0, 0, 167, 167, 167, 0, 0, 0, 173, 172,
470 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,
471 155, 87, 0, 71, 71, 71, 0, 0, 71, 0,
472 121, 0, 0, 121, 121, 0, 0, 121, 141, 0,
473 142, 0, 0, 167, 167, 167, 0, 0, 0, 0,
474 0, 0, 0, 0, 0, 27, 26, 0, 35, 155,
475 0, 71, 71, 71, 0, 0, 0, 0, 71, 0,
476 94, 121, 0, 105, 104, 121, 121, 0, 0, 0,
477 0, 121, 141, 145, 0, 0, 0, 167, 167, 0,
478 171, 0, 193, 0, 0, 0, 0, 0, 0, 42,
479 71, 71, 71, 0, 55, 0, 54, 71, 0, 0,
481 121, 121, 121, 0, 109, 0, 108, 121, 141, 145,
482 0, 0, 159, 158, 0, 0, 167, 0, 168, 171,
483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
484 0, 71, 71, 71, 57, 56, 0, 0, 0, 101,
485 100, 121, 121, 121, 111, 110, 0, 0, 141, 141,
486 0, 152, 0, 163, 162, 0, 0, 0, 178, 0,
487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
488 71, 71, 71, 0, 59, 58, 121, 121, 121, 0,
489 113, 112, 141, 141, 0, 161, 160, 0, 0, 0,
490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
492 71, 71, 71, 121, 0, 0, 121, 141, 141, 0,
493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
494 0, 0, 0, 51, 50, 71, 71, 71, 71, 121,
495 0, 107, 106, 121, 0, 0, 141, 0, 0, 141,
496 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
497 0, 0, 0, 0, 0, 0, 71, 71, 71, 71,
498 0, 0, 0, 0, 0, 133, 132, 141, 0, 131,
499 130, 141, 0, 0, 0, 0, 0, 0, 0, 0,
500 0, 0, 0, 0, 0, 0, 0, 0, 0, 71,
501 71, 71, 71, 0, 103, 102, 0, 0, 0, 141,
503 141, 0, 0, 0, 0, 0, 0, 0, 0, 0,
504 0, 0, 0, 12, 0, 12, 0, 0, 0, 71,
505 71, 71, 71, 0, 0, 0, 0, 141, 141, 0,
506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
508 0, 71, 0, 0, 0, 0, 0, 0, 141, 141,
509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
510 0, 0, 0, 0, 53, 52, 0, 63, 62, 0,
511 61, 60, 71, 0, 67, 66, 0, 0, 0, 0,
512 141, 141, 0, 0, 0, 0, 0, 0, 0, 0,
514 0, 0, 11, 0, 0, 71, 0, 0, 0, 0,
515 141, 141, 0, 0, 0, 0, 0, 0, 0, 0,
516 0, 0, 25, 0, 71, 0, 0, 0, 0, 141,
517 141, 0, 0, 0, 0, 0, 0, 0, 0, 0,
518 0, 25, 0, 71, 0, 0, 0, 0, 141, 141,
519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520 0, 0, 0, 0, 32, 0, 0, 0, 115, 0,
521 114, 141, 141, 0, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 0, 0, 0, 0, 0, 65, 64,
523 117, 116, 141, 141, 0, 0, 0, 0, 0, 0,
525 0, 0, 0, 0, 0, 0, 0, 0, 0, 141,
526 141, 0, 0, 0, 0, 0, 0, 0, 0, 0,
527 0, 0, 0, 0, 0, 0, 0, 0, 141, 141,
528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
529 0, 0, 0, 0, 0, 0, 0, 0, 0, 141,
530 141, 0, 0, 0, 0, 0, 0, 0, 0, 0,
531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
532 141, 141, 0, 0, 0, 0, 0, 0, 0, 0,
533 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
534 0, 141, 141, 0, 0, 0, 0, 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, 137, 136, 0, 135,
540 134, 0, 0, 0, 0, 0, 0, 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, 19, 0, 0,
549 0, 13, 0, 0, 0, 0, 0, 0, 21, 0,
550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
551 0, 0, 15, 0, 0, 0, 0, 0, 0, 0,
552 0, 0, 18, 0, 0, 14, 0, 0, 0, 0,
553 16, 0, 20, 0, 17, 0, 0, 0, 0, 0,
554 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
555 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,
560 static yyconst flex_int32_t yy_ec[256] =
562 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
563 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
564 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
565 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
566 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
567 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
568 17, 18, 19, 1, 20, 21, 22, 23, 24, 25,
569 26, 27, 28, 26, 26, 26, 29, 30, 31, 32,
570 26, 33, 34, 35, 26, 26, 26, 26, 36, 26,
571 37, 1, 38, 1, 39, 1, 40, 41, 42, 43,
573 44, 45, 46, 47, 48, 26, 49, 50, 51, 52,
574 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
575 63, 26, 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,
580 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,
584 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
585 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
586 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
587 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
588 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
592 static yyconst flex_int32_t yy_meta[64] =
594 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
595 3, 1, 4, 5, 1, 1, 1, 6, 1, 7,
596 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
597 5, 5, 5, 5, 5, 5, 1, 1, 5, 7,
598 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
599 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
603 static yyconst flex_int16_t yy_base[1560] =
605 0, 0, 0, 3, 6, 9, 24, 27, 11, 14,
606 15, 17, 29, 38, 45, 52, 59, 61, 67, 70,
607 99, 159, 73, 76, 117, 122, 125, 128, 177, 182,
608 185, 188, 204, 207, 210, 213, 228, 231, 247, 292,
609 265, 270, 273, 310, 337, 394, 315, 318, 355, 360,
610 363, 366, 412, 417, 420, 423, 451, 511, 469, 474,
611 477, 480, 571, 619, 529, 534, 537, 540, 667, 724,
612 589, 594, 597, 600, 637, 642, 645, 648, 685, 690,
613 781, 838, 693, 696, 742, 747, 750, 753, 799, 804,
614 807, 810, 895, 943, 856, 861, 864, 867, 991, 1048,
616 913, 918, 921, 924, 961, 966, 969, 972, 1009, 1014,
617 1105, 1165, 1017, 1066, 1088, 1124, 4181, 4182, 4182, 91,
618 143, 47, 62, 4182, 146, 77, 4182, 4182, 4170, 4182,
619 4182, 4161, 4182, 4174, 4174, 1034, 4182, 4182, 4182, 4182,
620 4172, 4172, 4136, 217, 4182, 149, 4155, 0, 79, 4182,
621 4128, 4182, 152, 1139, 1027, 1083, 1140, 368, 222, 4182,
622 235, 4153, 0, 138, 4182, 4122, 4182, 276, 425, 487,
623 4182, 321, 4151, 0, 223, 4182, 4108, 7, 4127, 4113,
624 4107, 4182, 498, 1082, 541, 486, 4182, 505, 4146, 0,
625 367, 4182, 4120, 4122, 4182, 559, 546, 373, 4182, 564,
627 4143, 0, 430, 4182, 4117, 4182, 716, 702, 697, 4182,
628 773, 4141, 0, 550, 4182, 4118, 4114, 4116, 76, 4182,
629 776, 1136, 816, 817, 4182, 828, 4137, 0, 754, 4182,
630 4097, 4102, 4096, 4182, 885, 1141, 1026, 873, 4182, 1020,
631 4133, 0, 874, 4182, 4107, 4182, 1040, 1142, 1144, 4182,
632 1069, 4131, 0, 1133, 4182, 4089, 4094, 4098, 4087, 4182,
633 1075, 1145, 1187, 1192, 1195, 4182, 1096, 4126, 0, 1196,
634 4182, 4103, 4182, 1205, 1200, 4137, 4103, 1214, 34, 4078,
635 4182, 4129, 4120, 4182, 4182, 4182, 26, 36, 4079, 4078,
636 4076, 4116, 4083, 4182, 0, 4076, 4077, 4077, 4077, 4080,
638 4071, 4073, 4072, 4071, 4182, 0, 4073, 4074, 4182, 0,
639 4081, 1219, 4062, 4057, 4057, 4077, 4069, 4059, 4182, 0,
640 1226, 4064, 4059, 4182, 0, 1229, 4056, 4182, 0, 4059,
641 1235, 4052, 4069, 4068, 4057, 4182, 0, 4048, 4051, 4062,
642 4047, 4054, 4182, 0, 1245, 4051, 4182, 0, 4048, 4042,
643 4048, 4057, 4042, 4039, 4182, 0, 4044, 4053, 4055, 4073,
644 4072, 4079, 104, 4037, 4182, 127, 0, 4033, 4033, 4070,
645 4069, 4030, 4182, 4042, 4024, 1251, 1254, 4023, 4037, 4026,
646 4024, 4017, 4016, 4015, 4029, 1257, 1261, 4024, 1264, 1274,
647 4027, 4031, 4025, 4010, 1282, 1285, 4014, 1288, 1292, 4007,
649 1304, 1307, 1312, 1315, 1324, 1328, 4022, 1331, 1341, 4020,
650 4007, 4004, 1337, 1349, 1354, 4021, 1357, 1362, 1366, 4008,
651 1373, 1383, 1391, 1396, 4017, 4000, 4007, 4000, 1399, 1402,
652 4009, 3995, 1408, 1419, 4031, 4182, 4034, 4182, 4182, 177,
653 4001, 4182, 4035, 4034, 3991, 4182, 4182, 3989, 3988, 3997,
654 1425, 1428, 4182, 1431, 3986, 3993, 3993, 3999, 3982, 3981,
655 3980, 1436, 1448, 1452, 4182, 1458, 3987, 1475, 4182, 4182,
656 3980, 3982, 3978, 3989, 1465, 1470, 4182, 1483, 3978, 1487,
657 4182, 4182, 3987, 1495, 1500, 4182, 1503, 1506, 4182, 4182,
658 1520, 1523, 4182, 1526, 3969, 1530, 4182, 4182, 3977, 3980,
660 3983, 1543, 1546, 4182, 1549, 1555, 1567, 3984, 1575, 1578,
661 1586, 1591, 4182, 1594, 3976, 1604, 4182, 4182, 1612, 1615,
662 4182, 1618, 3966, 1621, 3984, 3964, 1624, 1637, 4182, 1641,
663 3962, 3976, 1644, 1647, 4182, 1654, 3996, 165, 1664, 4182,
664 4182, 4003, 4002, 3971, 3962, 1671, 1461, 3955, 1674, 3969,
665 3968, 3967, 3966, 1682, 1689, 1699, 3969, 3963, 3948, 1702,
666 1705, 1708, 1677, 1711, 1721, 1728, 3958, 3963, 3952, 1731,
667 1734, 1751, 4182, 4182, 3945, 1759, 4182, 4182, 1738, 3988,
668 1769, 3953, 1774, 1786, 3942, 3960, 1795, 3947, 1777, 1798,
669 3977, 185, 3978, 1801, 4182, 3977, 4182, 4182, 3941, 3941,
671 1804, 1807, 3949, 1821, 3934, 1824, 1827, 3934, 1830, 4182,
672 4182, 1838, 3948, 3944, 3929, 1848, 1860, 1851, 1868, 3941,
673 1880, 1844, 1856, 1883, 1891, 1897, 3942, 3921, 3937, 1900,
674 1904, 3937, 1916, 3942, 1919, 3938, 1922, 3926, 1926, 4182,
675 4182, 3930, 3919, 1940, 3932, 1943, 1946, 1962, 3940, 1192,
676 121, 243, 4182, 3918, 1965, 1968, 3929, 3915, 1971, 1974,
677 1985, 3923, 3914, 3923, 1988, 4182, 4182, 1996, 3937, 3936,
678 3918, 2004, 4182, 2008, 4182, 4182, 2016, 4182, 2021, 3907,
679 2027, 3925, 2034, 3932, 3931, 3913, 2043, 4182, 3907, 2046,
680 3901, 2049, 3906, 3906, 3908, 2052, 3903, 2056, 4182, 4182,
682 2069, 3934, 67, 140, 184, 3902, 2072, 2076, 2090, 2093,
683 2096, 2099, 2103, 3902, 3907, 3897, 258, 302, 3899, 2108,
684 3901, 2112, 2116, 3902, 3892, 303, 359, 3895, 3892, 2130,
685 4182, 3891, 2133, 2136, 3898, 3890, 2139, 3882, 2152, 3902,
686 2156, 298, 225, 3899, 2159, 4182, 4182, 2169, 2173, 2176,
687 2179, 3889, 3884, 3887, 3909, 3927, 3907, 3922, 3886, 2182,
688 4182, 2186, 2203, 4182, 4182, 3881, 3875, 3902, 3920, 3900,
689 3915, 3879, 3883, 2190, 2211, 2214, 2224, 2219, 3877, 2235,
690 2238, 2241, 4182, 2298, 272, 176, 3877, 2244, 2247, 4182,
691 3861, 3876, 3865, 3910, 4182, 3906, 4182, 2252, 2264, 2268,
693 3869, 3863, 3862, 3795, 4182, 3791, 4182, 2276, 1177, 2282,
694 2285, 2288, 4182, 4182, 2302, 2305, 2318, 2321, 4182, 2324,
695 2329, 390, 365, 422, 288, 447, 457, 342, 517, 3746,
696 2338, 3724, 3740, 3735, 4182, 4182, 2347, 2356, 2364, 4182,
697 4182, 3730, 3731, 3724, 4182, 4182, 2372, 2376, 3712, 3710,
698 2384, 4182, 2388, 4182, 4182, 2396, 2401, 2412, 4182, 200,
699 429, 375, 752, 507, 589, 596, 753, 809, 3706, 2415,
700 2418, 3721, 3714, 2422, 4182, 4182, 3698, 2434, 3701, 2437,
701 4182, 4182, 3680, 3691, 2446, 4182, 4182, 600, 187, 567,
702 594, 536, 876, 645, 644, 2458, 3686, 2461, 2464, 2468,
704 3678, 438, 3662, 3669, 2480, 2483, 3645, 2491, 2496, 615,
705 2499, 663, 2502, 693, 317, 2507, 647, 2519, 2524, 2541,
706 3451, 2530, 2549, 4182, 4182, 3458, 3461, 3460, 3462, 2558,
707 2561, 4182, 4182, 2574, 2577, 2580, 3440, 2593, 2596, 3439,
708 891, 2604, 705, 2609, 924, 742, 597, 2612, 2536, 2615,
709 2622, 2633, 2651, 2689, 3451, 2646, 3448, 3454, 3443, 3432,
710 2669, 2672, 2707, 2710, 2719, 4182, 4182, 3437, 2727, 4182,
711 4182, 3436, 1085, 798, 913, 969, 920, 834, 1072, 1208,
712 2681, 2735, 2738, 17, 432, 2756, 2794, 3423, 2774, 3374,
713 3335, 3333, 3153, 2746, 4182, 4182, 2777, 857, 1001, 3118,
715 3084, 921, 799, 2786, 949, 1161, 996, 2812, 1101, 1284,
716 2815, 546, 749, 3128, 1116, 3122, 2821, 2980, 2824, 2833,
717 2841, 2844, 2849, 2964, 2939, 2944, 2861, 2810, 2774, 2852,
718 469, 2861, 901, 2869, 1232, 2872, 1264, 1344, 1318, 2763,
719 2732, 2737, 2878, 2669, 2882, 2890, 2895, 2906, 2909, 2917,
720 2922, 2609, 2933, 2939, 2609, 2495, 2479, 2388, 2333, 2222,
721 2949, 966, 1355, 1227, 2952, 819, 1389, 1364, 1361, 1390,
722 2242, 2148, 2955, 2959, 4182, 4182, 2972, 4182, 4182, 2985,
723 4182, 4182, 2154, 2993, 4182, 4182, 2118, 2116, 2098, 2050,
724 1982, 1980, 1400, 1294, 1423, 1354, 1499, 971, 1477, 1430,
726 1496, 1519, 4182, 1980, 3002, 1919, 1931, 1909, 1868, 1867,
727 1754, 1706, 1557, 3005, 1525, 3008, 1565, 1462, 1568, 3011,
728 1513, 1544, 2865, 3014, 1571, 1597, 1577, 1484, 1471, 1445,
729 1369, 1617, 3031, 1587, 3039, 1619, 1255, 1645, 3050, 3058,
730 1537, 3061, 3067, 3070, 1325, 1150, 1010, 932, 840, 830,
731 1672, 1545, 1614, 1698, 1702, 1725, 1727, 1729, 1740, 1857,
732 1870, 3075, 3086, 3092, 4182, 3095, 3099, 819, 4182, 755,
733 4182, 657, 654, 1849, 968, 1756, 3111, 1817, 1820, 1887,
734 1222, 3114, 1872, 1894, 1936, 1938, 3117, 3134, 4182, 4182,
735 4182, 4182, 621, 572, 3142, 1825, 1986, 3145, 2068, 2072,
737 3153, 1643, 3163, 2113, 2146, 1920, 1967, 1939, 1944, 549,
738 501, 3171, 1397, 1642, 2066, 2070, 1775, 1799, 3181, 1893,
739 2177, 2201, 2023, 2099, 2217, 2239, 1998, 2045, 399, 394,
740 2258, 2280, 1275, 1921, 2149, 2193, 2148, 2295, 2312, 2326,
741 1616, 2294, 2318, 2299, 2383, 2366, 2378, 2278, 2337, 329,
742 249, 2353, 2388, 1670, 2181, 2424, 2435, 2292, 2478, 2414,
743 2460, 1429, 2451, 2513, 2506, 2550, 2426, 2494, 2409, 2411,
744 182, 53, 2531, 2548, 1224, 1395, 2528, 2575, 1700, 2345,
745 2553, 2567, 1963, 2616, 2700, 2440, 2627, 2570, 2611, 2585,
746 2725, 3189, 3192, 2789, 2844, 1803, 2134, 2767, 2841, 2264,
748 2669, 2884, 2887, 3198, 2898, 2909, 2773, 2928, 2682, 2685,
749 2716, 2787, 3201, 3208, 3217, 3220, 2915, 2920, 1019, 2391,
750 2790, 2896, 2926, 2982, 2931, 2962, 3228, 2980, 3029, 3001,
751 3003, 2961, 2974, 2972, 3032, 3233, 4182, 4182, 3241, 4182,
752 4182, 3040, 3049, 2206, 2802, 3033, 3057, 2859, 3104, 3074,
753 3088, 1991, 3091, 3109, 3106, 3110, 3068, 3115, 3168, 3197,
754 3132, 3207, 3135, 3170, 3222, 3230, 3209, 3210, 3220, 3231,
755 2556, 3240, 3243, 3237, 3241, 3112, 3238, 3242, 3245, 3253,
756 3254, 2063, 1556, 3248, 3249, 2748, 3018, 3257, 3258, 1749,
757 3255, 3256, 2764, 3021, 3259, 3260, 3261, 3264, 3265, 3268,
759 3291, 3269, 3271, 3302, 3272, 3282, 3283, 3279, 3292, 3310,
760 3312, 3143, 3298, 3299, 3303, 3305, 3329, 4182, 3306, 3308,
761 3336, 4182, 3316, 3317, 2300, 3325, 3326, 3353, 4182, 3362,
762 3330, 3189, 3327, 3334, 3340, 3344, 3341, 3342, 3379, 3361,
763 3369, 3386, 4182, 3389, 3380, 3385, 3397, 3390, 3393, 3410,
764 3418, 3421, 4182, 3427, 3430, 4182, 3438, 2873, 3387, 3447,
765 4182, 3450, 4182, 3455, 4182, 2623, 2661, 3354, 3391, 2983,
766 3417, 3355, 3408, 3409, 3420, 3419, 3425, 3456, 3461, 3437,
767 3443, 3388, 3445, 3446, 3448, 3470, 3469, 3479, 3490, 4182,
768 4182, 3508, 3515, 3522, 3529, 3536, 3543, 3550, 3557, 3564,
770 3571, 3578, 3585, 3592, 3599, 3606, 3613, 3620, 3627, 3634,
771 3641, 3648, 3655, 3662, 3669, 3676, 3683, 3690, 3697, 3702,
772 3707, 3712, 3717, 3722, 3727, 3732, 3737, 3742, 3747, 3754,
773 3757, 3760, 3763, 3766, 3769, 3772, 3775, 3778, 3781, 3784,
774 3791, 3795, 3801, 3807, 3813, 3819, 3825, 3831, 3837, 3843,
775 3849, 3855, 3862, 3869, 3876, 3883, 3890, 3897, 3904
778 static yyconst flex_int16_t yy_def[1560] =
780 1492, 1492, 1493, 1493, 1493, 1493, 1494, 1494, 1495, 1495,
781 1496, 1496, 1497, 1497, 1497, 1497, 1498, 1498, 1492, 1492,
782 1499, 1499, 1500, 1500, 1500, 1500, 1492, 1492, 1500, 1500,
783 1492, 1492, 1500, 1500, 1500, 1500, 1492, 1492, 1501, 1501,
784 1502, 1502, 1492, 1492, 1503, 1503, 1504, 1504, 1492, 1492,
785 1504, 1504, 1504, 1504, 1492, 1492, 1505, 1505, 1506, 1506,
786 1492, 1492, 1507, 1507, 1508, 1508, 1492, 1492, 1509, 1509,
787 1510, 1510, 1492, 1492, 1510, 1510, 1510, 1510, 1492, 1492,
788 1511, 1511, 1512, 1512, 1492, 1492, 1512, 1512, 1512, 1512,
789 1492, 1492, 1513, 1513, 1514, 1514, 1492, 1492, 1515, 1515,
791 1516, 1516, 1492, 1492, 1516, 1516, 1516, 1516, 1492, 1492,
792 1517, 1517, 1518, 1518, 1519, 1519, 1491, 1491, 1491, 1491,
793 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
794 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
795 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1520, 1491, 1491,
796 1520, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
797 1491, 1491, 1521, 1491, 1491, 1521, 1491, 1491, 1491, 1491,
798 1491, 1491, 1491, 1522, 1491, 1491, 1522, 1522, 1522, 1522,
799 1522, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1523,
800 1491, 1491, 1523, 1523, 1491, 1491, 1491, 1491, 1491, 1491,
802 1491, 1524, 1491, 1491, 1524, 1491, 1491, 1491, 1491, 1491,
803 1491, 1491, 1525, 1491, 1491, 1525, 1525, 1525, 1525, 1491,
804 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1526, 1491, 1491,
805 1526, 1526, 1526, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
806 1491, 1527, 1491, 1491, 1527, 1491, 1491, 1491, 1491, 1491,
807 1491, 1491, 1528, 1491, 1491, 1528, 1528, 1528, 1528, 1491,
808 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1529, 1491,
809 1491, 1529, 1491, 1491, 1491, 1491, 1491, 1491, 1530, 1491,
810 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
811 1491, 1491, 1491, 1491, 1520, 1520, 1531, 1491, 1491, 1491,
813 1491, 1491, 1491, 1491, 1491, 1521, 1521, 1532, 1491, 1522,
814 1522, 1522, 1522, 1522, 1522, 1522, 1533, 1491, 1491, 1523,
815 1523, 1523, 1534, 1491, 1524, 1524, 1535, 1491, 1525, 1525,
816 1525, 1525, 1525, 1525, 1536, 1491, 1526, 1526, 1526, 1526,
817 1537, 1491, 1491, 1527, 1527, 1538, 1491, 1528, 1528, 1528,
818 1528, 1528, 1539, 1491, 1491, 1529, 1529, 1540, 1491, 1491,
819 1541, 1491, 1541, 1491, 1491, 1491, 1542, 1491, 1491, 1491,
820 1491, 1491, 1491, 1491, 1520, 1543, 1543, 1491, 1491, 1491,
821 1491, 1491, 1491, 1491, 1521, 1544, 1544, 1522, 1491, 1491,
822 1522, 1522, 1522, 1522, 1545, 1545, 1491, 1491, 1491, 1523,
824 1546, 1546, 1491, 1491, 1547, 1547, 1525, 1491, 1491, 1525,
825 1525, 1525, 1548, 1548, 1526, 1526, 1526, 1549, 1549, 1491,
826 1491, 1491, 1550, 1550, 1528, 1528, 1528, 1528, 1551, 1551,
827 1491, 1529, 1552, 1552, 1491, 1491, 1541, 1491, 1491, 1541,
828 1491, 1491, 1542, 1491, 1491, 1491, 1491, 1491, 1491, 1520,
829 1491, 1543, 1491, 1543, 1491, 1491, 1491, 1491, 1491, 1491,
830 1491, 1521, 1491, 1544, 1491, 1544, 1522, 1491, 1491, 1491,
831 1522, 1522, 1522, 1522, 1491, 1545, 1491, 1545, 1491, 1491,
832 1491, 1491, 1523, 1491, 1546, 1491, 1546, 1491, 1491, 1491,
833 1491, 1547, 1491, 1547, 1525, 1491, 1491, 1491, 1525, 1525,
835 1525, 1491, 1548, 1491, 1548, 1491, 1491, 1526, 1491, 1491,
836 1491, 1549, 1491, 1549, 1491, 1491, 1491, 1491, 1491, 1550,
837 1491, 1550, 1528, 1528, 1528, 1528, 1491, 1551, 1491, 1551,
838 1491, 1529, 1491, 1552, 1491, 1552, 1491, 1541, 1553, 1491,
839 1491, 1491, 1491, 1491, 1520, 1543, 1491, 1491, 1491, 1491,
840 1491, 1491, 1491, 1491, 1491, 1544, 1522, 1522, 1522, 1522,
841 1522, 1545, 1491, 1523, 1546, 1547, 1525, 1525, 1525, 1525,
842 1548, 1491, 1491, 1491, 1526, 1491, 1491, 1491, 1549, 1491,
843 1550, 1528, 1491, 1491, 1528, 1528, 1551, 1491, 1529, 1552,
844 1491, 1541, 1553, 1553, 1491, 1553, 1491, 1491, 1491, 1520,
846 1543, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
847 1491, 1544, 1522, 1522, 1522, 1491, 1491, 1491, 1491, 1522,
848 1545, 1491, 1491, 1491, 1546, 1547, 1525, 1525, 1525, 1491,
849 1491, 1525, 1548, 1526, 1549, 1491, 1550, 1528, 1491, 1491,
850 1491, 1528, 1528, 1551, 1491, 1491, 1491, 1552, 1491, 1541,
851 1553, 1553, 1491, 1491, 1520, 1543, 1491, 1491, 1491, 1491,
852 1544, 1522, 1522, 1522, 1491, 1491, 1491, 1491, 1491, 1491,
853 1522, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1547, 1525,
854 1525, 1525, 1491, 1491, 1491, 1525, 1491, 1491, 1526, 1549,
855 1491, 1550, 1528, 1528, 1528, 1551, 1491, 1491, 1491, 1491,
857 1552, 1491, 1541, 1553, 1553, 1491, 1491, 1491, 1543, 1491,
858 1491, 1491, 1544, 1522, 1522, 1522, 1491, 1491, 1522, 1547,
859 1525, 1491, 1491, 1525, 1525, 1491, 1491, 1525, 1526, 1491,
860 1491, 1491, 1550, 1528, 1528, 1528, 1551, 1491, 1552, 1491,
861 1541, 1553, 1553, 1491, 1491, 1491, 1491, 1543, 1491, 1491,
862 1544, 1522, 1522, 1522, 1491, 1491, 1491, 1491, 1522, 1491,
863 1491, 1525, 1491, 1491, 1491, 1525, 1525, 1491, 1491, 1491,
864 1491, 1525, 1526, 1491, 1550, 1491, 1491, 1528, 1528, 1551,
865 1491, 1552, 1491, 1541, 1553, 1553, 1491, 1543, 1491, 1491,
866 1522, 1522, 1522, 1491, 1491, 1491, 1491, 1522, 1491, 1491,
868 1525, 1525, 1525, 1491, 1491, 1491, 1491, 1525, 1526, 1491,
869 1550, 1491, 1491, 1491, 1491, 1491, 1528, 1491, 1491, 1491,
870 1552, 1541, 1541, 1541, 1541, 1541, 1541, 1553, 1553, 1491,
871 1543, 1522, 1522, 1522, 1491, 1491, 1491, 1491, 1491, 1491,
872 1491, 1525, 1525, 1525, 1491, 1491, 1491, 1491, 1526, 1526,
873 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1541,
874 1541, 1541, 1541, 1541, 1541, 1541, 1553, 1553, 1491, 1543,
875 1522, 1522, 1522, 1491, 1491, 1491, 1525, 1525, 1525, 1491,
876 1491, 1491, 1526, 1526, 1491, 1491, 1491, 1541, 1541, 1541,
877 1541, 1541, 1541, 1541, 1553, 1553, 1491, 1543, 1491, 1491,
879 1522, 1522, 1522, 1525, 1491, 1491, 1525, 1526, 1526, 1541,
880 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1553, 1553, 1553,
881 1491, 1543, 1491, 1491, 1491, 1522, 1522, 1522, 1522, 1525,
882 1491, 1491, 1491, 1525, 1491, 1491, 1526, 1491, 1491, 1526,
883 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1553,
884 1553, 1553, 1554, 1555, 1491, 1543, 1522, 1522, 1522, 1522,
885 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1526, 1491, 1491,
886 1491, 1526, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
887 1541, 1541, 1553, 1556, 1557, 1554, 1555, 1491, 1543, 1522,
888 1522, 1522, 1522, 1491, 1491, 1491, 1491, 1491, 1491, 1526,
890 1526, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
891 1541, 1556, 1553, 1558, 1557, 1559, 1553, 1491, 1543, 1522,
892 1522, 1522, 1522, 1491, 1491, 1491, 1491, 1526, 1526, 1541,
893 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1558,
894 1491, 1559, 1553, 1491, 1543, 1491, 1491, 1491, 1491, 1491,
895 1491, 1522, 1491, 1491, 1491, 1491, 1491, 1491, 1526, 1526,
896 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
897 1491, 1491, 1543, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
898 1491, 1491, 1522, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
899 1526, 1526, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
901 1541, 1541, 1491, 1491, 1543, 1522, 1491, 1491, 1491, 1491,
902 1526, 1526, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
903 1541, 1541, 1491, 1543, 1522, 1491, 1491, 1491, 1491, 1526,
904 1526, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
905 1541, 1491, 1543, 1522, 1491, 1491, 1491, 1491, 1526, 1526,
906 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
907 1541, 1541, 1541, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
908 1491, 1526, 1526, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
909 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1491, 1491, 1491,
910 1491, 1491, 1526, 1526, 1541, 1541, 1541, 1541, 1541, 1541,
912 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1526,
913 1526, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
914 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1526, 1526,
915 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
916 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1526,
917 1526, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
918 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
919 1526, 1526, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
920 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
921 1541, 1526, 1526, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
923 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
924 1541, 1541, 1491, 1491, 1491, 1491, 1541, 1541, 1541, 1541,
925 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
926 1541, 1541, 1541, 1541, 1541, 1491, 1491, 1491, 1491, 1491,
927 1491, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
928 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
929 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
930 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
931 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
932 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
934 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
935 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1491, 1541, 1541,
936 1541, 1491, 1541, 1541, 1541, 1541, 1541, 1541, 1491, 1541,
937 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
938 1541, 1541, 1491, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
939 1541, 1541, 1491, 1541, 1541, 1491, 1541, 1541, 1541, 1541,
940 1491, 1541, 1491, 1541, 1491, 1541, 1541, 1541, 1541, 1541,
941 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541,
942 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1491,
943 0, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
945 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
946 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
947 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
948 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
949 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
950 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491
953 static yyconst flex_int16_t yy_nxt[4246] =
955 1491, 120, 121, 120, 120, 121, 120, 120, 121, 120,
956 120, 121, 120, 128, 1491, 122, 128, 131, 122, 131,
957 129, 123, 1013, 129, 123, 125, 121, 125, 125, 121,
958 125, 134, 135, 132, 1014, 132, 136, 137, 366, 126,
959 134, 135, 126, 362, 138, 136, 137, 134, 135, 312,
960 139, 279, 136, 138, 134, 135, 363, 139, 313, 136,
961 138, 141, 142, 141, 142, 280, 279, 138, 121, 121,
962 121, 121, 121, 121, 153, 121, 153, 153, 121, 153,
963 281, 282, 144, 282, 438, 144, 368, 367, 154, 369,
964 741, 154, 278, 278, 278, 281, 143, 281, 143, 145,
966 146, 121, 146, 145, 145, 145, 145, 145, 145, 145,
967 147, 145, 1293, 145, 149, 145, 150, 145, 153, 121,
968 153, 438, 333, 153, 121, 153, 121, 121, 121, 121,
969 121, 121, 155, 334, 440, 145, 145, 155, 595, 366,
970 156, 442, 282, 156, 278, 278, 278, 278, 278, 278,
971 278, 278, 278, 278, 278, 278, 281, 595, 151, 145,
972 146, 121, 146, 145, 145, 145, 145, 145, 145, 145,
973 147, 145, 704, 145, 149, 145, 150, 145, 153, 121,
974 153, 742, 438, 153, 121, 153, 121, 121, 121, 121,
975 121, 121, 154, 595, 438, 145, 145, 154, 538, 592,
977 157, 595, 438, 157, 438, 153, 121, 153, 153, 121,
978 153, 153, 121, 153, 153, 121, 153, 438, 151, 155,
979 650, 282, 155, 829, 1292, 158, 282, 282, 158, 121,
980 121, 121, 121, 121, 121, 281, 278, 278, 278, 743,
981 281, 281, 595, 159, 911, 888, 159, 160, 161, 121,
982 161, 160, 160, 160, 160, 160, 160, 160, 162, 160,
983 595, 160, 164, 160, 165, 160, 168, 121, 168, 299,
984 293, 168, 121, 168, 121, 121, 121, 278, 278, 278,
985 169, 786, 755, 160, 160, 169, 705, 756, 170, 595,
986 1272, 166, 160, 161, 121, 161, 160, 160, 160, 160,
988 160, 160, 160, 162, 160, 438, 160, 164, 160, 165,
989 160, 121, 121, 121, 828, 595, 183, 121, 183, 183,
990 121, 183, 278, 278, 278, 170, 757, 768, 160, 160,
991 184, 758, 769, 184, 438, 863, 166, 171, 172, 121,
992 172, 171, 171, 171, 171, 171, 171, 171, 173, 171,
993 785, 171, 175, 171, 176, 171, 121, 121, 121, 595,
994 947, 121, 121, 121, 183, 121, 183, 183, 121, 183,
995 185, 282, 282, 171, 171, 185, 177, 282, 184, 297,
996 1271, 184, 438, 770, 178, 281, 281, 179, 771, 867,
997 180, 281, 438, 181, 171, 172, 121, 172, 171, 171,
999 171, 171, 171, 171, 171, 173, 171, 438, 171, 175,
1000 171, 176, 171, 183, 121, 183, 890, 861, 183, 121,
1001 183, 121, 121, 121, 121, 121, 121, 186, 304, 282,
1002 171, 171, 186, 177, 282, 185, 308, 1251, 185, 438,
1003 1013, 178, 1250, 281, 179, 860, 438, 180, 281, 1016,
1004 181, 187, 188, 121, 188, 187, 187, 187, 187, 187,
1005 187, 187, 189, 187, 438, 187, 191, 187, 192, 187,
1006 196, 121, 196, 862, 438, 196, 121, 196, 121, 121,
1007 121, 121, 121, 121, 197, 889, 438, 187, 187, 197,
1008 282, 282, 198, 927, 928, 198, 864, 317, 193, 278,
1010 278, 278, 865, 1062, 281, 281, 278, 278, 278, 866,
1011 194, 187, 188, 121, 188, 187, 187, 187, 187, 187,
1012 187, 187, 189, 187, 438, 187, 191, 187, 192, 187,
1013 207, 121, 207, 298, 595, 207, 121, 207, 121, 121,
1014 121, 121, 121, 121, 208, 282, 892, 187, 187, 208,
1015 282, 1013, 209, 438, 282, 209, 1230, 323, 193, 281,
1016 278, 278, 278, 1014, 281, 278, 278, 278, 281, 868,
1017 194, 199, 200, 121, 200, 199, 199, 199, 199, 199,
1018 199, 199, 201, 199, 438, 199, 203, 199, 204, 199,
1019 221, 121, 221, 914, 318, 221, 121, 221, 121, 121,
1021 121, 121, 121, 121, 222, 1229, 438, 199, 199, 222,
1022 1211, 438, 185, 438, 438, 185, 912, 438, 205, 199,
1023 200, 121, 200, 199, 199, 199, 199, 199, 199, 199,
1024 201, 199, 438, 199, 203, 199, 204, 199, 221, 121,
1025 221, 893, 913, 221, 121, 221, 221, 121, 221, 221,
1026 121, 221, 222, 979, 894, 199, 199, 222, 910, 1210,
1027 223, 595, 438, 223, 438, 941, 205, 210, 211, 121,
1028 211, 210, 210, 210, 210, 210, 210, 210, 212, 210,
1029 438, 210, 214, 210, 215, 210, 121, 121, 121, 918,
1030 949, 121, 121, 121, 235, 121, 235, 235, 121, 235,
1032 224, 282, 917, 210, 210, 224, 282, 216, 236, 1194,
1033 438, 236, 1193, 327, 217, 281, 218, 278, 278, 278,
1034 281, 943, 438, 219, 210, 211, 121, 211, 210, 210,
1035 210, 210, 210, 210, 210, 212, 210, 946, 210, 214,
1036 210, 215, 210, 121, 121, 121, 300, 975, 121, 121,
1037 121, 235, 121, 235, 235, 121, 235, 237, 282, 438,
1038 210, 210, 237, 1192, 216, 236, 595, 596, 236, 438,
1039 595, 217, 281, 218, 278, 278, 278, 278, 278, 278,
1040 219, 225, 226, 121, 226, 225, 225, 225, 225, 225,
1041 225, 225, 227, 225, 978, 225, 229, 225, 230, 225,
1043 235, 121, 235, 891, 895, 235, 121, 235, 121, 121,
1044 121, 121, 121, 121, 238, 438, 438, 225, 225, 238,
1045 282, 282, 237, 231, 1191, 237, 595, 335, 232, 278,
1046 278, 278, 1031, 1003, 281, 281, 438, 233, 225, 226,
1047 121, 226, 225, 225, 225, 225, 225, 225, 225, 227,
1048 225, 438, 225, 229, 225, 230, 225, 247, 121, 247,
1049 896, 1098, 247, 121, 247, 121, 121, 121, 121, 121,
1050 121, 248, 303, 1173, 225, 225, 248, 282, 282, 249,
1051 231, 1024, 249, 1172, 341, 232, 278, 278, 278, 1007,
1052 1025, 281, 281, 438, 233, 239, 240, 121, 240, 239,
1054 239, 239, 239, 239, 239, 239, 241, 239, 438, 239,
1055 243, 239, 244, 239, 261, 121, 261, 915, 438, 261,
1056 121, 261, 121, 121, 121, 121, 121, 121, 262, 916,
1057 438, 239, 239, 262, 973, 1064, 263, 438, 438, 263,
1058 1171, 438, 245, 239, 240, 121, 240, 239, 239, 239,
1059 239, 239, 239, 239, 241, 239, 1004, 239, 243, 239,
1060 244, 239, 261, 121, 261, 977, 438, 261, 121, 261,
1061 261, 121, 261, 261, 121, 261, 262, 1006, 1030, 239,
1062 239, 262, 1033, 438, 264, 438, 438, 264, 438, 1094,
1063 245, 250, 251, 121, 251, 250, 250, 250, 250, 250,
1065 250, 250, 252, 250, 1005, 250, 254, 250, 255, 250,
1066 121, 121, 121, 438, 1118, 121, 121, 121, 274, 121,
1067 274, 278, 278, 278, 265, 1026, 1196, 250, 250, 265,
1068 282, 282, 275, 1170, 1027, 256, 438, 257, 297, 258,
1069 287, 278, 278, 278, 281, 281, 1035, 259, 250, 251,
1070 121, 251, 250, 250, 250, 250, 250, 250, 250, 252,
1071 250, 1344, 250, 254, 250, 255, 250, 274, 121, 274,
1072 278, 278, 278, 288, 299, 342, 278, 278, 278, 289,
1073 301, 275, 303, 290, 250, 250, 282, 282, 291, 438,
1074 134, 135, 256, 317, 257, 136, 258, 278, 278, 278,
1076 281, 281, 438, 276, 259, 266, 267, 121, 267, 266,
1077 266, 266, 266, 266, 266, 266, 268, 266, 438, 266,
1078 270, 266, 271, 266, 1013, 277, 134, 135, 1008, 298,
1079 299, 136, 300, 1016, 1037, 318, 1002, 282, 304, 276,
1080 282, 266, 266, 282, 282, 282, 282, 335, 282, 282,
1081 297, 281, 341, 346, 281, 1169, 353, 281, 281, 281,
1082 281, 277, 281, 281, 272, 266, 267, 121, 267, 266,
1083 266, 266, 266, 266, 266, 266, 268, 266, 438, 266,
1084 270, 266, 271, 266, 354, 298, 299, 299, 300, 318,
1085 342, 282, 301, 301, 302, 303, 282, 301, 318, 282,
1087 282, 266, 266, 353, 282, 281, 278, 278, 278, 438,
1088 281, 358, 1034, 281, 281, 278, 278, 278, 281, 849,
1089 389, 389, 389, 703, 272, 438, 354, 398, 398, 398,
1090 403, 403, 403, 850, 354, 390, 408, 408, 408, 438,
1091 318, 438, 399, 1009, 438, 404, 421, 421, 421, 438,
1092 1096, 409, 451, 451, 451, 451, 451, 451, 463, 463,
1093 463, 422, 463, 463, 463, 389, 389, 389, 453, 1202,
1094 1066, 453, 438, 1296, 465, 468, 468, 468, 465, 469,
1095 390, 438, 470, 475, 475, 475, 475, 475, 475, 398,
1096 398, 398, 438, 480, 480, 480, 1158, 481, 1068, 477,
1098 482, 438, 477, 454, 399, 484, 484, 484, 484, 484,
1099 484, 438, 466, 403, 403, 403, 488, 488, 488, 1038,
1100 489, 486, 1114, 490, 486, 491, 491, 491, 404, 491,
1101 491, 491, 408, 408, 408, 438, 1254, 478, 502, 502,
1102 502, 493, 496, 496, 496, 493, 497, 409, 1168, 498,
1103 502, 502, 502, 1070, 504, 506, 506, 506, 509, 509,
1104 509, 438, 487, 511, 511, 511, 504, 511, 511, 511,
1105 507, 438, 438, 510, 421, 421, 421, 1069, 438, 513,
1106 494, 438, 1116, 513, 516, 516, 516, 1100, 517, 422,
1107 1095, 518, 519, 519, 519, 1101, 505, 519, 519, 519,
1109 527, 527, 527, 527, 527, 527, 438, 438, 521, 533,
1110 533, 533, 438, 521, 438, 1150, 529, 438, 514, 529,
1111 533, 533, 533, 1102, 1099, 535, 451, 451, 451, 451,
1112 451, 451, 451, 451, 451, 1113, 535, 554, 554, 554,
1113 438, 1233, 453, 522, 1297, 453, 438, 438, 453, 463,
1114 463, 463, 555, 463, 463, 463, 1115, 530, 1120, 463,
1115 463, 463, 602, 602, 602, 465, 475, 475, 475, 465,
1116 546, 475, 475, 475, 536, 465, 468, 468, 468, 438,
1117 469, 1283, 477, 470, 475, 475, 475, 477, 480, 480,
1118 480, 1149, 481, 1148, 438, 482, 484, 484, 484, 556,
1120 477, 484, 484, 484, 484, 484, 484, 488, 488, 488,
1121 1119, 489, 486, 438, 490, 1147, 438, 486, 1137, 1121,
1122 486, 491, 491, 491, 491, 491, 491, 491, 491, 491,
1123 438, 496, 496, 496, 1117, 497, 438, 493, 498, 562,
1124 493, 1140, 438, 493, 502, 502, 502, 502, 502, 502,
1125 502, 502, 502, 1122, 438, 565, 506, 506, 506, 1134,
1126 504, 438, 438, 504, 1401, 1163, 504, 1141, 572, 572,
1127 572, 507, 573, 438, 438, 574, 509, 509, 509, 576,
1128 576, 576, 438, 577, 566, 438, 578, 511, 511, 511,
1129 1132, 510, 511, 511, 511, 511, 511, 511, 1136, 1146,
1131 571, 1175, 1138, 513, 438, 516, 516, 516, 513, 517,
1132 1154, 513, 518, 519, 519, 519, 519, 519, 519, 519,
1133 519, 519, 583, 583, 583, 527, 527, 527, 1145, 521,
1134 1144, 438, 521, 438, 438, 521, 438, 584, 527, 527,
1135 527, 529, 527, 527, 527, 533, 533, 533, 533, 533,
1136 533, 1151, 579, 1157, 529, 533, 533, 533, 529, 438,
1137 438, 535, 438, 1262, 535, 594, 594, 594, 1159, 581,
1138 1176, 535, 451, 451, 451, 604, 604, 604, 622, 622,
1139 622, 595, 596, 554, 554, 554, 1234, 438, 453, 438,
1140 609, 609, 609, 587, 610, 1174, 1220, 611, 555, 590,
1142 463, 463, 463, 616, 616, 616, 618, 618, 618, 475,
1143 475, 475, 623, 623, 623, 438, 465, 438, 617, 438,
1144 1275, 619, 484, 484, 484, 477, 1177, 624, 601, 491,
1145 491, 491, 630, 630, 630, 502, 502, 502, 486, 511,
1146 511, 511, 438, 620, 438, 493, 438, 631, 612, 1300,
1147 1180, 504, 572, 572, 572, 513, 573, 438, 1178, 574,
1148 576, 576, 576, 1131, 577, 621, 438, 578, 1182, 632,
1149 519, 519, 519, 438, 625, 583, 583, 583, 646, 646,
1150 646, 1179, 633, 1407, 1181, 626, 521, 639, 639, 639,
1151 584, 640, 438, 647, 641, 635, 527, 527, 527, 533,
1153 533, 533, 594, 594, 594, 451, 451, 451, 602, 602,
1154 602, 1130, 529, 1319, 1197, 535, 438, 637, 595, 1237,
1155 438, 453, 604, 604, 604, 659, 659, 659, 659, 659,
1156 659, 609, 609, 609, 438, 610, 644, 438, 611, 463,
1157 463, 463, 438, 1238, 651, 622, 622, 622, 656, 616,
1158 616, 616, 618, 618, 618, 465, 648, 623, 623, 623,
1159 652, 665, 665, 665, 617, 666, 438, 619, 667, 668,
1160 668, 668, 624, 669, 438, 1199, 670, 1195, 1200, 660,
1161 1213, 672, 672, 672, 674, 674, 674, 438, 675, 438,
1162 1129, 676, 677, 677, 677, 1128, 661, 673, 491, 491,
1164 491, 630, 630, 630, 438, 683, 683, 683, 678, 684,
1165 438, 438, 685, 1183, 493, 1201, 631, 687, 687, 687,
1166 511, 511, 511, 519, 519, 519, 1184, 639, 639, 639,
1167 1204, 640, 1127, 688, 641, 692, 513, 438, 438, 521,
1168 679, 527, 527, 527, 646, 646, 646, 698, 698, 698,
1169 1241, 699, 1205, 438, 700, 438, 438, 529, 1126, 647,
1170 1125, 438, 690, 533, 533, 533, 707, 707, 707, 451,
1171 451, 451, 659, 659, 659, 712, 712, 712, 1225, 535,
1172 438, 708, 1255, 696, 438, 453, 463, 463, 463, 665,
1173 665, 665, 1206, 666, 1207, 1227, 667, 668, 668, 668,
1175 1228, 669, 465, 438, 670, 672, 672, 672, 438, 674,
1176 674, 674, 701, 675, 1304, 438, 676, 677, 677, 677,
1177 709, 673, 491, 491, 491, 1226, 1371, 713, 722, 722,
1178 722, 1123, 1112, 678, 1111, 683, 683, 683, 493, 684,
1179 438, 1214, 685, 723, 687, 687, 687, 730, 730, 730,
1180 519, 519, 519, 527, 527, 527, 1248, 698, 698, 698,
1181 688, 699, 438, 731, 700, 724, 521, 1244, 1401, 529,
1182 533, 533, 533, 707, 707, 707, 720, 745, 745, 745,
1183 438, 746, 1110, 438, 747, 438, 535, 438, 708, 438,
1184 733, 451, 451, 451, 749, 749, 749, 750, 750, 750,
1186 712, 712, 712, 1249, 463, 463, 463, 453, 737, 760,
1187 760, 760, 739, 722, 722, 722, 438, 763, 763, 763,
1188 465, 764, 1235, 1217, 765, 761, 1236, 1218, 723, 1109,
1189 438, 730, 730, 730, 519, 519, 519, 776, 776, 776,
1190 527, 527, 527, 1245, 1320, 748, 751, 731, 1108, 1107,
1191 521, 438, 777, 533, 533, 533, 529, 784, 784, 784,
1192 745, 745, 745, 438, 746, 438, 438, 747, 1223, 535,
1193 451, 451, 451, 438, 749, 749, 749, 750, 750, 750,
1194 789, 789, 789, 760, 760, 760, 453, 799, 799, 799,
1195 775, 810, 810, 810, 438, 780, 790, 1106, 438, 761,
1197 1104, 1224, 800, 782, 763, 763, 763, 1256, 764, 1258,
1198 438, 765, 519, 519, 519, 776, 776, 776, 438, 788,
1199 815, 815, 815, 438, 801, 812, 812, 812, 521, 813,
1200 777, 1276, 814, 1242, 438, 816, 818, 818, 818, 820,
1201 820, 820, 533, 533, 533, 451, 451, 451, 789, 789,
1202 789, 1257, 819, 837, 837, 837, 438, 1243, 535, 1103,
1203 1092, 453, 811, 1363, 790, 799, 799, 799, 838, 839,
1204 839, 839, 1246, 840, 1323, 438, 841, 847, 847, 847,
1205 800, 438, 831, 810, 810, 810, 851, 851, 851, 812,
1206 812, 812, 848, 813, 1247, 438, 814, 438, 821, 784,
1208 784, 784, 852, 815, 815, 815, 853, 853, 853, 438,
1209 854, 438, 438, 855, 1252, 438, 438, 438, 816, 856,
1210 856, 856, 818, 818, 818, 820, 820, 820, 1439, 438,
1211 858, 858, 858, 1269, 857, 438, 1253, 822, 819, 451,
1212 451, 451, 1279, 438, 823, 824, 859, 825, 837, 837,
1213 837, 826, 1263, 827, 438, 453, 1259, 874, 874, 874,
1214 1265, 875, 438, 838, 876, 839, 839, 839, 1260, 840,
1215 438, 1091, 841, 847, 847, 847, 1264, 880, 880, 880,
1216 870, 881, 1261, 438, 882, 851, 851, 851, 848, 853,
1217 853, 853, 1270, 854, 1301, 438, 855, 856, 856, 856,
1219 438, 852, 885, 885, 885, 438, 886, 1090, 438, 887,
1220 1267, 1273, 857, 858, 858, 858, 451, 451, 451, 899,
1221 899, 899, 1268, 874, 874, 874, 438, 875, 438, 859,
1222 876, 438, 453, 1345, 900, 905, 905, 905, 880, 880,
1223 880, 438, 881, 438, 1266, 882, 1274, 885, 885, 885,
1224 906, 886, 438, 1290, 887, 1291, 901, 438, 898, 919,
1225 919, 919, 451, 451, 451, 899, 899, 899, 438, 923,
1226 923, 923, 1281, 924, 920, 595, 925, 438, 453, 1277,
1227 900, 905, 905, 905, 931, 931, 931, 1288, 932, 1307,
1228 1278, 933, 935, 935, 935, 438, 906, 938, 938, 938,
1230 942, 942, 942, 944, 944, 944, 1284, 936, 948, 948,
1231 948, 438, 939, 1089, 1088, 945, 438, 922, 1282, 438,
1232 950, 950, 950, 438, 438, 919, 919, 919, 1280, 937,
1233 438, 451, 451, 451, 940, 951, 595, 981, 981, 981,
1234 920, 595, 952, 952, 952, 438, 953, 453, 438, 954,
1235 923, 923, 923, 438, 924, 1289, 1286, 925, 595, 961,
1236 961, 961, 931, 931, 931, 438, 932, 438, 1285, 933,
1237 438, 956, 1298, 438, 962, 963, 963, 963, 935, 935,
1238 935, 965, 965, 965, 438, 966, 1294, 438, 967, 1390,
1239 964, 982, 438, 936, 938, 938, 938, 969, 969, 969,
1241 1287, 970, 438, 1295, 971, 942, 942, 942, 1302, 939,
1242 944, 944, 944, 948, 948, 948, 950, 950, 950, 1299,
1243 1309, 438, 1303, 983, 983, 983, 438, 984, 438, 438,
1244 985, 951, 595, 438, 952, 952, 952, 974, 953, 595,
1245 438, 954, 976, 1087, 438, 980, 1311, 451, 451, 451,
1246 595, 593, 593, 593, 593, 593, 593, 593, 593, 593,
1247 1305, 1310, 593, 453, 1083, 593, 593, 593, 595, 593,
1248 961, 961, 961, 994, 994, 994, 1308, 995, 438, 1324,
1249 996, 1468, 981, 981, 981, 962, 438, 593, 593, 593,
1250 593, 593, 593, 593, 593, 593, 593, 593, 438, 438,
1252 593, 989, 438, 593, 593, 593, 595, 593, 963, 963,
1253 963, 997, 997, 997, 1010, 998, 1072, 438, 999, 1469,
1254 965, 965, 965, 964, 966, 593, 593, 967, 969, 969,
1255 969, 1332, 970, 438, 1333, 971, 1011, 1011, 1011, 983,
1256 983, 983, 438, 984, 1306, 1041, 985, 994, 994, 994,
1257 1071, 995, 438, 1404, 996, 595, 593, 593, 593, 593,
1258 593, 1017, 593, 593, 593, 438, 1334, 593, 1041, 1410,
1259 593, 593, 593, 595, 593, 451, 451, 451, 997, 997,
1260 997, 438, 998, 1330, 438, 999, 1312, 1032, 1032, 1032,
1261 438, 453, 593, 593, 593, 593, 593, 593, 593, 593,
1263 593, 593, 1017, 438, 438, 593, 438, 438, 593, 593,
1264 593, 595, 593, 1036, 1036, 1036, 1011, 1011, 1011, 438,
1265 1060, 1019, 1043, 1043, 1043, 451, 451, 451, 1321, 438,
1266 593, 593, 438, 1317, 1046, 1046, 1046, 1335, 595, 596,
1267 1346, 453, 1048, 1048, 1048, 1050, 1050, 1050, 1039, 1047,
1268 1053, 1053, 1053, 1061, 1061, 1061, 1059, 1049, 438, 1364,
1269 1051, 438, 1032, 1032, 1032, 1054, 1142, 1142, 1142, 438,
1270 1065, 1065, 1065, 1036, 1036, 1036, 438, 1045, 438, 1043,
1271 1043, 1043, 1052, 451, 451, 451, 438, 1058, 1318, 438,
1272 438, 1046, 1046, 1046, 1063, 595, 1074, 1074, 1074, 453,
1274 1075, 438, 1322, 1076, 438, 1067, 1047, 1048, 1048, 1048,
1275 1077, 1077, 1077, 438, 1078, 438, 1367, 1079, 1050, 1050,
1276 1050, 651, 1049, 1080, 1080, 1080, 438, 1081, 1325, 1466,
1277 1082, 1326, 438, 1051, 1053, 1053, 1053, 438, 1331, 1073,
1278 1084, 1084, 1084, 438, 1085, 438, 1347, 1086, 438, 1054,
1279 1061, 1061, 1061, 1065, 1065, 1065, 451, 451, 451, 1328,
1280 1074, 1074, 1074, 1057, 1075, 1056, 438, 1076, 1348, 438,
1281 1329, 1357, 453, 1077, 1077, 1077, 1342, 1078, 438, 438,
1282 1079, 1343, 1093, 1055, 1358, 1097, 1080, 1080, 1080, 438,
1283 1081, 438, 1350, 1082, 1084, 1084, 1084, 438, 1085, 438,
1285 438, 1086, 1105, 451, 451, 451, 1133, 1133, 1133, 1135,
1286 1135, 1135, 1139, 1139, 1139, 451, 451, 451, 438, 453,
1287 438, 1359, 438, 1351, 1349, 438, 1404, 1472, 438, 1410,
1288 1353, 453, 1133, 1133, 1133, 438, 1152, 1044, 438, 1153,
1289 1135, 1135, 1135, 1355, 1155, 1356, 438, 1156, 438, 438,
1290 438, 1139, 1139, 1139, 1124, 1160, 438, 438, 1161, 1162,
1291 1162, 1162, 1142, 1142, 1142, 1143, 438, 438, 1164, 1164,
1292 1164, 1166, 1166, 1166, 438, 438, 1162, 1162, 1162, 1354,
1293 1185, 1360, 1365, 1186, 1165, 438, 1167, 1187, 1187, 1187,
1294 1361, 438, 438, 1164, 1164, 1164, 1166, 1166, 1166, 1362,
1296 1188, 1188, 1188, 438, 1189, 438, 1366, 1190, 438, 1165,
1297 1376, 1167, 1198, 1198, 1198, 1203, 1203, 1203, 1187, 1187,
1298 1187, 438, 1208, 438, 1369, 1209, 438, 438, 438, 438,
1299 1041, 438, 438, 1041, 438, 1188, 1188, 1188, 1370, 1189,
1300 1372, 1029, 1190, 1212, 1212, 1212, 1198, 1198, 1198, 438,
1301 1215, 1430, 438, 1216, 1219, 1219, 1219, 1377, 1373, 438,
1302 438, 1368, 438, 1374, 1203, 1203, 1203, 1375, 1221, 1395,
1303 438, 1222, 1212, 1212, 1212, 1028, 1231, 1382, 1378, 1232,
1304 438, 1380, 1219, 1219, 1219, 438, 1239, 438, 438, 1240,
1305 1313, 1313, 1313, 1315, 1315, 1315, 1023, 1444, 438, 1327,
1307 1327, 1327, 1313, 1313, 1313, 1314, 438, 1379, 1316, 1336,
1308 1336, 1336, 1383, 1337, 438, 438, 1338, 1314, 1315, 1315,
1309 1315, 1339, 1339, 1339, 438, 1340, 438, 438, 1341, 1327,
1310 1327, 1327, 1384, 1316, 1336, 1336, 1336, 438, 1337, 438,
1311 1385, 1338, 1339, 1339, 1339, 438, 1340, 438, 438, 1341,
1312 1391, 1386, 1387, 1392, 438, 438, 1381, 438, 438, 438,
1313 438, 1352, 438, 1399, 1400, 438, 438, 1405, 1406, 1388,
1314 438, 438, 438, 438, 438, 438, 438, 438, 438, 1393,
1315 1389, 438, 438, 1394, 1397, 438, 438, 1398, 438, 438,
1316 1402, 1403, 1417, 1417, 1417, 1396, 438, 1408, 1409, 438,
1318 438, 1411, 1412, 1421, 1421, 1421, 1425, 1415, 1418, 438,
1319 1416, 1428, 1428, 1428, 1423, 438, 438, 1430, 1413, 1422,
1320 438, 1414, 438, 438, 1424, 438, 1419, 1429, 1420, 438,
1321 1417, 1417, 1417, 438, 438, 1444, 1426, 1421, 1421, 1421,
1322 1431, 1432, 438, 438, 438, 1447, 1418, 438, 1435, 1427,
1323 1436, 438, 1447, 1422, 1428, 1428, 1428, 438, 438, 438,
1324 1433, 438, 1434, 1442, 1442, 1442, 1451, 1440, 1441, 1445,
1325 1429, 438, 438, 1437, 1438, 1022, 1446, 1451, 438, 1443,
1326 1450, 1450, 1450, 1448, 1449, 1454, 438, 1442, 1442, 1442,
1327 1452, 1452, 1452, 1454, 1021, 1457, 438, 438, 1455, 1455,
1329 1455, 1457, 438, 1443, 438, 438, 1453, 438, 438, 1470,
1330 438, 1450, 1450, 1450, 1456, 1458, 1474, 1020, 1459, 1460,
1331 1460, 1460, 1452, 1452, 1452, 438, 438, 438, 1462, 1462,
1332 1462, 1455, 1455, 1455, 438, 1461, 438, 438, 1453, 1464,
1333 1464, 1464, 438, 1467, 1463, 1484, 1471, 1456, 1460, 1460,
1334 1460, 1462, 1462, 1462, 438, 1465, 1464, 1464, 1464, 1476,
1335 438, 1473, 438, 438, 1461, 438, 1480, 1463, 1478, 1475,
1336 1477, 1481, 1465, 438, 1479, 1488, 1018, 1488, 438, 1482,
1337 1489, 1489, 1489, 1001, 1000, 1483, 438, 438, 1486, 993,
1338 1487, 1489, 1489, 1489, 992, 991, 1490, 990, 988, 972,
1340 968, 960, 1485, 959, 958, 957, 955, 1490, 118, 118,
1341 118, 118, 118, 118, 118, 119, 119, 119, 119, 119,
1342 119, 119, 124, 124, 124, 124, 124, 124, 124, 127,
1343 127, 127, 127, 127, 127, 127, 130, 130, 130, 130,
1344 130, 130, 130, 133, 133, 133, 133, 133, 133, 133,
1345 140, 140, 140, 140, 140, 140, 140, 148, 148, 148,
1346 148, 148, 148, 148, 152, 152, 152, 152, 152, 152,
1347 152, 163, 163, 163, 163, 163, 163, 163, 167, 167,
1348 167, 167, 167, 167, 167, 174, 174, 174, 174, 174,
1349 174, 174, 182, 182, 182, 182, 182, 182, 182, 190,
1351 190, 190, 190, 190, 190, 190, 195, 195, 195, 195,
1352 195, 195, 195, 202, 202, 202, 202, 202, 202, 202,
1353 206, 206, 206, 206, 206, 206, 206, 213, 213, 213,
1354 213, 213, 213, 213, 220, 220, 220, 220, 220, 220,
1355 220, 228, 228, 228, 228, 228, 228, 228, 234, 234,
1356 234, 234, 234, 234, 234, 242, 242, 242, 242, 242,
1357 242, 242, 246, 246, 246, 246, 246, 246, 246, 253,
1358 253, 253, 253, 253, 253, 253, 260, 260, 260, 260,
1359 260, 260, 260, 269, 269, 269, 269, 269, 269, 269,
1360 273, 273, 273, 273, 273, 273, 273, 133, 133, 133,
1362 133, 133, 133, 133, 295, 295, 295, 934, 295, 306,
1363 306, 306, 930, 306, 310, 310, 310, 929, 310, 320,
1364 320, 320, 926, 320, 325, 325, 325, 921, 325, 329,
1365 329, 329, 909, 329, 337, 337, 337, 908, 337, 344,
1366 344, 344, 907, 344, 348, 348, 348, 904, 348, 356,
1367 356, 356, 903, 356, 361, 361, 361, 361, 361, 902,
1368 361, 376, 897, 376, 386, 884, 386, 395, 883, 395,
1369 401, 879, 401, 405, 878, 405, 413, 877, 413, 418,
1370 873, 418, 423, 872, 423, 429, 871, 429, 433, 869,
1371 433, 437, 437, 437, 437, 437, 437, 437, 443, 846,
1373 845, 443, 452, 452, 452, 452, 452, 452, 464, 464,
1374 464, 464, 464, 464, 476, 476, 476, 476, 476, 476,
1375 485, 485, 485, 485, 485, 485, 492, 492, 492, 492,
1376 492, 492, 503, 503, 503, 503, 503, 503, 512, 512,
1377 512, 512, 512, 512, 520, 520, 520, 520, 520, 520,
1378 528, 528, 528, 528, 528, 528, 534, 534, 534, 534,
1379 534, 534, 593, 593, 593, 593, 593, 593, 593, 986,
1380 986, 986, 986, 986, 986, 986, 987, 987, 987, 987,
1381 987, 987, 987, 1012, 1012, 1012, 1012, 1012, 1012, 1012,
1382 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1040, 1040, 1040,
1384 1040, 1040, 1040, 1040, 1042, 1042, 1042, 1042, 1042, 1042,
1385 1042, 844, 843, 842, 836, 835, 834, 833, 832, 830,
1386 817, 809, 808, 807, 806, 805, 804, 803, 802, 798,
1387 797, 796, 795, 794, 793, 792, 791, 787, 783, 781,
1388 779, 778, 774, 773, 772, 767, 766, 762, 759, 754,
1389 753, 752, 744, 740, 738, 736, 735, 734, 732, 729,
1390 728, 727, 726, 725, 721, 719, 718, 717, 716, 715,
1391 714, 711, 710, 706, 702, 697, 695, 694, 693, 691,
1392 689, 686, 682, 681, 680, 671, 664, 663, 662, 660,
1393 658, 657, 655, 654, 653, 595, 649, 645, 643, 642,
1395 638, 636, 634, 629, 628, 627, 615, 614, 613, 608,
1396 607, 606, 605, 603, 600, 599, 598, 597, 591, 589,
1397 588, 586, 585, 582, 580, 575, 570, 569, 568, 567,
1398 564, 563, 561, 560, 559, 558, 557, 553, 552, 551,
1399 550, 549, 548, 547, 545, 544, 543, 542, 541, 540,
1400 539, 438, 537, 532, 531, 526, 525, 524, 523, 515,
1401 508, 501, 500, 499, 495, 483, 479, 474, 473, 472,
1402 471, 467, 462, 461, 460, 459, 458, 457, 456, 455,
1403 450, 449, 448, 447, 446, 445, 444, 441, 439, 438,
1404 436, 435, 434, 432, 431, 430, 428, 427, 426, 425,
1406 424, 420, 419, 417, 416, 415, 414, 412, 411, 410,
1407 407, 406, 402, 400, 397, 396, 394, 393, 392, 391,
1408 388, 387, 385, 384, 383, 382, 381, 380, 379, 378,
1409 377, 375, 374, 373, 372, 371, 370, 365, 362, 364,
1410 360, 359, 357, 355, 352, 351, 350, 349, 347, 345,
1411 343, 340, 339, 338, 336, 332, 331, 330, 328, 326,
1412 324, 322, 321, 319, 316, 315, 314, 311, 309, 307,
1413 305, 296, 294, 292, 286, 285, 286, 285, 284, 283,
1414 1491, 117, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
1415 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
1417 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
1418 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
1419 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
1420 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
1421 1491, 1491, 1491, 1491, 1491
1424 static yyconst flex_int16_t yy_chk[4246] =
1426 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1427 6, 6, 6, 9, 0, 3, 10, 11, 4, 12,
1428 9, 5, 984, 10, 6, 7, 7, 7, 8, 8,
1429 8, 13, 13, 11, 984, 12, 13, 13, 287, 7,
1430 14, 14, 8, 279, 13, 14, 14, 15, 15, 178,
1431 15, 122, 15, 14, 16, 16, 279, 16, 178, 16,
1432 15, 17, 17, 18, 18, 122, 123, 16, 19, 19,
1433 19, 20, 20, 20, 23, 23, 23, 24, 24, 24,
1434 123, 126, 19, 149, 703, 20, 288, 287, 23, 288,
1435 703, 24, 120, 120, 120, 126, 17, 149, 18, 21,
1437 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1438 21, 21, 1272, 21, 21, 21, 21, 21, 25, 25,
1439 25, 363, 219, 26, 26, 26, 27, 27, 27, 28,
1440 28, 28, 25, 219, 363, 21, 21, 26, 651, 366,
1441 27, 366, 164, 28, 121, 121, 121, 125, 125, 125,
1442 146, 146, 146, 153, 153, 153, 164, 704, 21, 22,
1443 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1444 22, 22, 651, 22, 22, 22, 22, 22, 29, 29,
1445 29, 704, 538, 30, 30, 30, 31, 31, 31, 32,
1446 32, 32, 29, 786, 440, 22, 22, 30, 440, 538,
1448 31, 705, 592, 32, 889, 33, 33, 33, 34, 34,
1449 34, 35, 35, 35, 36, 36, 36, 860, 22, 33,
1450 592, 144, 34, 786, 1271, 35, 159, 175, 36, 37,
1451 37, 37, 38, 38, 38, 144, 161, 161, 161, 705,
1452 159, 175, 743, 37, 889, 860, 38, 39, 39, 39,
1453 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
1454 652, 39, 39, 39, 39, 39, 41, 41, 41, 159,
1455 144, 42, 42, 42, 43, 43, 43, 168, 168, 168,
1456 41, 743, 717, 39, 39, 42, 652, 717, 43, 785,
1457 1251, 39, 40, 40, 40, 40, 40, 40, 40, 40,
1459 40, 40, 40, 40, 40, 825, 40, 40, 40, 40,
1460 40, 44, 44, 44, 785, 742, 47, 47, 47, 48,
1461 48, 48, 172, 172, 172, 44, 718, 726, 40, 40,
1462 47, 718, 726, 48, 915, 825, 40, 45, 45, 45,
1463 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1464 742, 45, 45, 45, 45, 45, 49, 49, 49, 828,
1465 915, 50, 50, 50, 51, 51, 51, 52, 52, 52,
1466 49, 191, 158, 45, 45, 50, 45, 198, 51, 158,
1467 1250, 52, 823, 727, 45, 191, 158, 45, 727, 828,
1468 45, 198, 862, 45, 46, 46, 46, 46, 46, 46,
1470 46, 46, 46, 46, 46, 46, 46, 822, 46, 46,
1471 46, 46, 46, 53, 53, 53, 862, 823, 54, 54,
1472 54, 55, 55, 55, 56, 56, 56, 53, 198, 169,
1473 46, 46, 54, 46, 203, 55, 169, 1230, 56, 824,
1474 985, 46, 1229, 169, 46, 822, 861, 46, 203, 985,
1475 46, 57, 57, 57, 57, 57, 57, 57, 57, 57,
1476 57, 57, 57, 57, 826, 57, 57, 57, 57, 57,
1477 59, 59, 59, 824, 827, 60, 60, 60, 61, 61,
1478 61, 62, 62, 62, 59, 861, 1031, 57, 57, 60,
1479 186, 170, 61, 902, 902, 62, 826, 186, 57, 183,
1481 183, 183, 826, 1031, 186, 170, 188, 188, 188, 827,
1482 57, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1483 58, 58, 58, 58, 864, 58, 58, 58, 58, 58,
1484 65, 65, 65, 170, 829, 66, 66, 66, 67, 67,
1485 67, 68, 68, 68, 65, 185, 864, 58, 58, 66,
1486 197, 1012, 67, 892, 214, 68, 1211, 197, 58, 185,
1487 196, 196, 196, 1012, 197, 200, 200, 200, 214, 829,
1488 58, 63, 63, 63, 63, 63, 63, 63, 63, 63,
1489 63, 63, 63, 63, 890, 63, 63, 63, 63, 63,
1490 71, 71, 71, 892, 185, 72, 72, 72, 73, 73,
1492 73, 74, 74, 74, 71, 1210, 865, 63, 63, 72,
1493 1194, 891, 73, 866, 947, 74, 890, 888, 63, 64,
1494 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
1495 64, 64, 910, 64, 64, 64, 64, 64, 75, 75,
1496 75, 865, 891, 76, 76, 76, 77, 77, 77, 78,
1497 78, 78, 75, 947, 866, 64, 64, 76, 888, 1193,
1498 77, 895, 894, 78, 917, 910, 64, 69, 69, 69,
1499 69, 69, 69, 69, 69, 69, 69, 69, 69, 69,
1500 912, 69, 69, 69, 69, 69, 79, 79, 79, 895,
1501 917, 80, 80, 80, 83, 83, 83, 84, 84, 84,
1503 79, 209, 894, 69, 69, 80, 208, 69, 83, 1173,
1504 914, 84, 1172, 208, 69, 209, 69, 207, 207, 207,
1505 208, 912, 943, 69, 70, 70, 70, 70, 70, 70,
1506 70, 70, 70, 70, 70, 70, 70, 914, 70, 70,
1507 70, 70, 70, 85, 85, 85, 209, 943, 86, 86,
1508 86, 87, 87, 87, 88, 88, 88, 85, 229, 946,
1509 70, 70, 86, 1170, 70, 87, 1013, 1013, 88, 863,
1510 867, 70, 229, 70, 211, 211, 211, 221, 221, 221,
1511 70, 81, 81, 81, 81, 81, 81, 81, 81, 81,
1512 81, 81, 81, 81, 946, 81, 81, 81, 81, 81,
1514 89, 89, 89, 863, 867, 90, 90, 90, 91, 91,
1515 91, 92, 92, 92, 89, 974, 1003, 81, 81, 90,
1516 223, 224, 91, 81, 1168, 92, 868, 223, 81, 226,
1517 226, 226, 1003, 974, 223, 224, 1066, 81, 82, 82,
1518 82, 82, 82, 82, 82, 82, 82, 82, 82, 82,
1519 82, 978, 82, 82, 82, 82, 82, 95, 95, 95,
1520 868, 1066, 96, 96, 96, 97, 97, 97, 98, 98,
1521 98, 95, 224, 1150, 82, 82, 96, 238, 243, 97,
1522 82, 998, 98, 1149, 238, 82, 235, 235, 235, 978,
1523 998, 238, 243, 893, 82, 93, 93, 93, 93, 93,
1525 93, 93, 93, 93, 93, 93, 93, 93, 941, 93,
1526 93, 93, 93, 93, 101, 101, 101, 893, 1033, 102,
1527 102, 102, 103, 103, 103, 104, 104, 104, 101, 893,
1528 975, 93, 93, 102, 941, 1033, 103, 977, 1002, 104,
1529 1148, 945, 93, 94, 94, 94, 94, 94, 94, 94,
1530 94, 94, 94, 94, 94, 94, 975, 94, 94, 94,
1531 94, 94, 105, 105, 105, 945, 1005, 106, 106, 106,
1532 107, 107, 107, 108, 108, 108, 105, 977, 1002, 94,
1533 94, 106, 1005, 1062, 107, 1175, 976, 108, 1098, 1062,
1534 94, 99, 99, 99, 99, 99, 99, 99, 99, 99,
1536 99, 99, 99, 99, 976, 99, 99, 99, 99, 99,
1537 109, 109, 109, 1007, 1098, 110, 110, 110, 113, 113,
1538 113, 240, 240, 240, 109, 999, 1175, 99, 99, 110,
1539 237, 155, 113, 1147, 999, 99, 1319, 99, 155, 99,
1540 136, 247, 247, 247, 237, 155, 1007, 99, 100, 100,
1541 100, 100, 100, 100, 100, 100, 100, 100, 100, 100,
1542 100, 1319, 100, 100, 100, 100, 100, 114, 114, 114,
1543 251, 251, 251, 136, 155, 237, 261, 261, 261, 136,
1544 155, 114, 155, 136, 100, 100, 184, 156, 136, 979,
1545 115, 115, 100, 184, 100, 115, 100, 267, 267, 267,
1547 184, 156, 973, 115, 100, 111, 111, 111, 111, 111,
1548 111, 111, 111, 111, 111, 111, 111, 111, 1009, 111,
1549 111, 111, 111, 111, 1015, 115, 116, 116, 979, 156,
1550 156, 116, 156, 1015, 1009, 184, 973, 254, 156, 116,
1551 222, 111, 111, 154, 157, 236, 248, 222, 249, 262,
1552 154, 254, 236, 248, 222, 1146, 262, 154, 157, 236,
1553 248, 116, 249, 262, 111, 112, 112, 112, 112, 112,
1554 112, 112, 112, 112, 112, 112, 112, 112, 1006, 112,
1555 112, 112, 112, 112, 262, 154, 154, 157, 154, 222,
1556 236, 263, 154, 157, 154, 157, 264, 249, 262, 265,
1558 270, 112, 112, 264, 275, 263, 274, 274, 274, 650,
1559 264, 275, 1006, 265, 270, 278, 278, 278, 275, 809,
1560 312, 312, 312, 650, 112, 980, 263, 321, 321, 321,
1561 326, 326, 326, 809, 265, 312, 331, 331, 331, 1181,
1562 263, 1275, 321, 980, 1064, 326, 345, 345, 345, 1035,
1563 1064, 331, 376, 376, 376, 377, 377, 377, 386, 386,
1564 386, 345, 387, 387, 387, 389, 389, 389, 376, 1181,
1565 1035, 377, 1137, 1275, 386, 390, 390, 390, 387, 390,
1566 389, 1037, 390, 395, 395, 395, 396, 396, 396, 398,
1567 398, 398, 1233, 399, 399, 399, 1137, 399, 1037, 395,
1569 399, 1010, 396, 377, 398, 401, 401, 401, 402, 402,
1570 402, 1094, 387, 403, 403, 403, 404, 404, 404, 1010,
1571 404, 401, 1094, 404, 402, 405, 405, 405, 403, 406,
1572 406, 406, 408, 408, 408, 1039, 1233, 396, 413, 413,
1573 413, 405, 409, 409, 409, 406, 409, 408, 1145, 409,
1574 414, 414, 414, 1039, 413, 415, 415, 415, 417, 417,
1575 417, 1038, 402, 418, 418, 418, 414, 419, 419, 419,
1576 415, 1096, 1063, 417, 421, 421, 421, 1038, 1069, 418,
1577 406, 1068, 1096, 419, 422, 422, 422, 1068, 422, 421,
1578 1063, 422, 423, 423, 423, 1069, 414, 424, 424, 424,
1580 429, 429, 429, 430, 430, 430, 1067, 1070, 423, 433,
1581 433, 433, 1276, 424, 1213, 1131, 429, 1093, 419, 430,
1582 434, 434, 434, 1070, 1067, 433, 451, 451, 451, 452,
1583 452, 452, 454, 454, 454, 1093, 434, 462, 462, 462,
1584 1095, 1213, 451, 424, 1276, 452, 1262, 1100, 454, 463,
1585 463, 463, 462, 464, 464, 464, 1095, 430, 1100, 466,
1586 466, 466, 547, 547, 547, 463, 475, 475, 475, 464,
1587 454, 476, 476, 476, 434, 466, 468, 468, 468, 1118,
1588 468, 1262, 475, 468, 478, 478, 478, 476, 480, 480,
1589 480, 1130, 480, 1129, 1099, 480, 484, 484, 484, 466,
1591 478, 485, 485, 485, 487, 487, 487, 488, 488, 488,
1592 1099, 488, 484, 1101, 488, 1128, 1097, 485, 1118, 1101,
1593 487, 491, 491, 491, 492, 492, 492, 494, 494, 494,
1594 1121, 496, 496, 496, 1097, 496, 1102, 491, 496, 478,
1595 492, 1121, 1115, 494, 502, 502, 502, 503, 503, 503,
1596 505, 505, 505, 1102, 1141, 487, 506, 506, 506, 1115,
1597 502, 1122, 1152, 503, 1383, 1141, 505, 1122, 507, 507,
1598 507, 506, 507, 1383, 1113, 507, 509, 509, 509, 510,
1599 510, 510, 1117, 510, 494, 1119, 510, 511, 511, 511,
1600 1113, 509, 512, 512, 512, 514, 514, 514, 1117, 1127,
1602 505, 1152, 1119, 511, 1134, 516, 516, 516, 512, 516,
1603 1134, 514, 516, 519, 519, 519, 520, 520, 520, 522,
1604 522, 522, 524, 524, 524, 527, 527, 527, 1126, 519,
1605 1125, 1153, 520, 1241, 1132, 522, 1136, 524, 528, 528,
1606 528, 527, 530, 530, 530, 533, 533, 533, 534, 534,
1607 534, 1132, 514, 1136, 528, 536, 536, 536, 530, 1214,
1608 1202, 533, 1138, 1241, 534, 539, 539, 539, 1138, 522,
1609 1153, 536, 546, 546, 546, 549, 549, 549, 563, 563,
1610 563, 539, 539, 554, 554, 554, 1214, 1254, 546, 1151,
1611 555, 555, 555, 530, 555, 1151, 1202, 555, 554, 536,
1613 556, 556, 556, 560, 560, 560, 561, 561, 561, 562,
1614 562, 562, 564, 564, 564, 1154, 556, 1279, 560, 1155,
1615 1254, 561, 565, 565, 565, 562, 1154, 564, 546, 566,
1616 566, 566, 570, 570, 570, 571, 571, 571, 565, 579,
1617 579, 579, 1156, 561, 1157, 566, 1158, 570, 556, 1279,
1618 1157, 571, 572, 572, 572, 579, 572, 1159, 1155, 572,
1619 576, 576, 576, 1112, 576, 562, 1390, 576, 1159, 570,
1620 581, 581, 581, 1176, 565, 583, 583, 583, 589, 589,
1621 589, 1156, 571, 1390, 1158, 566, 581, 584, 584, 584,
1622 583, 584, 1217, 589, 584, 579, 587, 587, 587, 590,
1624 590, 590, 594, 594, 594, 601, 601, 601, 602, 602,
1625 602, 1111, 587, 1296, 1176, 590, 1218, 581, 594, 1217,
1626 1296, 601, 604, 604, 604, 606, 606, 606, 607, 607,
1627 607, 609, 609, 609, 1178, 609, 587, 1179, 609, 612,
1628 612, 612, 1196, 1218, 594, 622, 622, 622, 601, 616,
1629 616, 616, 618, 618, 618, 612, 590, 623, 623, 623,
1630 594, 617, 617, 617, 616, 617, 1174, 618, 617, 619,
1631 619, 619, 623, 619, 1160, 1178, 619, 1174, 1179, 606,
1632 1196, 621, 621, 621, 624, 624, 624, 1161, 624, 1183,
1633 1110, 624, 625, 625, 625, 1109, 612, 621, 626, 626,
1635 626, 630, 630, 630, 1180, 631, 631, 631, 625, 631,
1636 1220, 1184, 631, 1160, 626, 1180, 630, 633, 633, 633,
1637 635, 635, 635, 637, 637, 637, 1161, 639, 639, 639,
1638 1183, 639, 1108, 633, 639, 637, 635, 1206, 1234, 637,
1639 626, 644, 644, 644, 646, 646, 646, 647, 647, 647,
1640 1220, 647, 1184, 1185, 647, 1186, 1208, 644, 1107, 646,
1641 1106, 1209, 635, 648, 648, 648, 655, 655, 655, 656,
1642 656, 656, 659, 659, 659, 660, 660, 660, 1206, 648,
1643 1283, 655, 1234, 644, 1207, 656, 661, 661, 661, 665,
1644 665, 665, 1185, 665, 1186, 1208, 665, 668, 668, 668,
1646 1209, 668, 661, 1197, 668, 672, 672, 672, 1352, 674,
1647 674, 674, 648, 674, 1283, 1227, 674, 677, 677, 677,
1648 656, 672, 679, 679, 679, 1207, 1352, 661, 681, 681,
1649 681, 1104, 1092, 677, 1091, 683, 683, 683, 679, 683,
1650 1223, 1197, 683, 681, 687, 687, 687, 690, 690, 690,
1651 692, 692, 692, 696, 696, 696, 1227, 698, 698, 698,
1652 687, 698, 1228, 690, 698, 681, 692, 1223, 1382, 696,
1653 701, 701, 701, 707, 707, 707, 679, 708, 708, 708,
1654 1382, 708, 1090, 1215, 708, 1199, 701, 1216, 707, 1200,
1655 692, 709, 709, 709, 710, 710, 710, 711, 711, 711,
1657 712, 712, 712, 1228, 713, 713, 713, 709, 696, 720,
1658 720, 720, 701, 722, 722, 722, 1224, 723, 723, 723,
1659 713, 723, 1215, 1199, 723, 720, 1216, 1200, 722, 1089,
1660 1204, 730, 730, 730, 733, 733, 733, 734, 734, 734,
1661 737, 737, 737, 1224, 1297, 709, 713, 730, 1088, 1087,
1662 733, 1297, 734, 739, 739, 739, 737, 741, 741, 741,
1663 745, 745, 745, 1205, 745, 1237, 1235, 745, 1204, 739,
1664 748, 748, 748, 741, 749, 749, 749, 750, 750, 750,
1665 751, 751, 751, 760, 760, 760, 748, 762, 762, 762,
1666 733, 774, 774, 774, 1221, 737, 751, 1083, 1255, 760,
1668 1072, 1205, 762, 739, 763, 763, 763, 1235, 763, 1237,
1669 1236, 763, 775, 775, 775, 776, 776, 776, 1222, 748,
1670 778, 778, 778, 1344, 762, 777, 777, 777, 775, 777,
1671 776, 1255, 777, 1221, 1225, 778, 780, 780, 780, 781,
1672 781, 781, 782, 782, 782, 788, 788, 788, 789, 789,
1673 789, 1236, 780, 798, 798, 798, 1226, 1222, 782, 1071,
1674 1060, 788, 775, 1344, 789, 799, 799, 799, 798, 800,
1675 800, 800, 1225, 800, 1300, 1231, 800, 808, 808, 808,
1676 799, 1300, 788, 810, 810, 810, 811, 811, 811, 812,
1677 812, 812, 808, 812, 1226, 1248, 812, 1232, 782, 784,
1679 784, 784, 811, 815, 815, 815, 816, 816, 816, 1258,
1680 816, 1242, 1238, 816, 1231, 784, 1244, 1425, 815, 817,
1681 817, 817, 818, 818, 818, 820, 820, 820, 1425, 1239,
1682 821, 821, 821, 1248, 817, 1243, 1232, 784, 818, 831,
1683 831, 831, 1258, 1240, 784, 784, 821, 784, 837, 837,
1684 837, 784, 1242, 784, 1249, 831, 1238, 838, 838, 838,
1685 1244, 838, 1280, 837, 838, 839, 839, 839, 1239, 839,
1686 1252, 1059, 839, 847, 847, 847, 1243, 848, 848, 848,
1687 831, 848, 1240, 1246, 848, 851, 851, 851, 847, 853,
1688 853, 853, 1249, 853, 1280, 1247, 853, 856, 856, 856,
1690 1245, 851, 857, 857, 857, 1253, 857, 1058, 1320, 857,
1691 1246, 1252, 856, 858, 858, 858, 870, 870, 870, 871,
1692 871, 871, 1247, 874, 874, 874, 1269, 874, 1270, 858,
1693 874, 1260, 870, 1320, 871, 878, 878, 878, 880, 880,
1694 880, 1256, 880, 1267, 1245, 880, 1253, 885, 885, 885,
1695 878, 885, 1257, 1269, 885, 1270, 871, 1286, 870, 896,
1696 896, 896, 898, 898, 898, 899, 899, 899, 1263, 900,
1697 900, 900, 1260, 900, 896, 896, 900, 1261, 898, 1256,
1698 899, 905, 905, 905, 906, 906, 906, 1267, 906, 1286,
1699 1257, 906, 908, 908, 908, 1259, 905, 909, 909, 909,
1701 911, 911, 911, 913, 913, 913, 1263, 908, 916, 916,
1702 916, 1268, 909, 1057, 1056, 913, 911, 898, 1261, 913,
1703 918, 918, 918, 1265, 916, 919, 919, 919, 1259, 908,
1704 1264, 922, 922, 922, 909, 918, 918, 949, 949, 949,
1705 919, 919, 920, 920, 920, 1277, 920, 922, 1273, 920,
1706 923, 923, 923, 949, 923, 1268, 1265, 923, 920, 930,
1707 930, 930, 931, 931, 931, 1274, 931, 1266, 1264, 931,
1708 1281, 922, 1277, 1371, 930, 934, 934, 934, 935, 935,
1709 935, 936, 936, 936, 1282, 936, 1273, 1288, 936, 1371,
1710 934, 949, 1278, 935, 938, 938, 938, 939, 939, 939,
1712 1266, 939, 1290, 1274, 939, 942, 942, 942, 1281, 938,
1713 944, 944, 944, 948, 948, 948, 950, 950, 950, 1278,
1714 1288, 942, 1282, 951, 951, 951, 944, 951, 1289, 948,
1715 951, 950, 950, 1284, 952, 952, 952, 942, 952, 951,
1716 1466, 952, 944, 1055, 1287, 948, 1290, 956, 956, 956,
1717 952, 953, 953, 953, 953, 953, 953, 953, 953, 953,
1718 1284, 1289, 953, 956, 1052, 953, 953, 953, 953, 953,
1719 961, 961, 961, 962, 962, 962, 1287, 962, 1467, 1301,
1720 962, 1466, 981, 981, 981, 961, 1301, 953, 953, 954,
1721 954, 954, 954, 954, 954, 954, 954, 954, 981, 1309,
1723 954, 956, 1310, 954, 954, 954, 954, 954, 963, 963,
1724 963, 964, 964, 964, 981, 964, 1044, 1285, 964, 1467,
1725 965, 965, 965, 963, 965, 954, 954, 965, 969, 969,
1726 969, 1309, 969, 1311, 1310, 969, 982, 982, 982, 983,
1727 983, 983, 1291, 983, 1285, 1042, 983, 994, 994, 994,
1728 1041, 994, 982, 1386, 994, 983, 986, 986, 986, 986,
1729 986, 986, 986, 986, 986, 1386, 1311, 986, 1040, 1393,
1730 986, 986, 986, 986, 986, 989, 989, 989, 997, 997,
1731 997, 1393, 997, 1307, 1298, 997, 1291, 1004, 1004, 1004,
1732 1307, 989, 986, 986, 987, 987, 987, 987, 987, 987,
1734 987, 987, 987, 1004, 1312, 987, 1294, 1321, 987, 987,
1735 987, 987, 987, 1008, 1008, 1008, 1011, 1011, 1011, 1345,
1736 1029, 989, 1017, 1017, 1017, 1019, 1019, 1019, 1298, 1008,
1737 987, 987, 1011, 1294, 1020, 1020, 1020, 1312, 1017, 1017,
1738 1321, 1019, 1021, 1021, 1021, 1022, 1022, 1022, 1011, 1020,
1739 1023, 1023, 1023, 1030, 1030, 1030, 1028, 1021, 1299, 1345,
1740 1022, 1295, 1032, 1032, 1032, 1023, 1123, 1123, 1123, 1030,
1741 1034, 1034, 1034, 1036, 1036, 1036, 1348, 1019, 1032, 1043,
1742 1043, 1043, 1022, 1045, 1045, 1045, 1034, 1027, 1295, 1036,
1743 1458, 1046, 1046, 1046, 1032, 1043, 1047, 1047, 1047, 1045,
1745 1047, 1302, 1299, 1047, 1303, 1036, 1046, 1048, 1048, 1048,
1746 1049, 1049, 1049, 1322, 1049, 1305, 1348, 1049, 1050, 1050,
1747 1050, 1043, 1048, 1051, 1051, 1051, 1306, 1051, 1302, 1458,
1748 1051, 1303, 1317, 1050, 1053, 1053, 1053, 1318, 1308, 1045,
1749 1054, 1054, 1054, 1323, 1054, 1308, 1322, 1054, 1325, 1053,
1750 1061, 1061, 1061, 1065, 1065, 1065, 1073, 1073, 1073, 1305,
1751 1074, 1074, 1074, 1026, 1074, 1025, 1061, 1074, 1323, 1065,
1752 1306, 1332, 1073, 1077, 1077, 1077, 1317, 1077, 1332, 1326,
1753 1077, 1318, 1061, 1024, 1333, 1065, 1080, 1080, 1080, 1334,
1754 1080, 1333, 1325, 1080, 1084, 1084, 1084, 1328, 1084, 1324,
1756 1470, 1084, 1073, 1105, 1105, 1105, 1114, 1114, 1114, 1116,
1757 1116, 1116, 1120, 1120, 1120, 1124, 1124, 1124, 1330, 1105,
1758 1331, 1334, 1114, 1326, 1324, 1116, 1387, 1470, 1120, 1394,
1759 1328, 1124, 1133, 1133, 1133, 1387, 1133, 1018, 1394, 1133,
1760 1135, 1135, 1135, 1330, 1135, 1331, 1329, 1135, 1133, 1335,
1761 1346, 1139, 1139, 1139, 1105, 1139, 1135, 1342, 1139, 1140,
1762 1140, 1140, 1142, 1142, 1142, 1124, 1343, 1139, 1143, 1143,
1763 1143, 1144, 1144, 1144, 1347, 1140, 1162, 1162, 1162, 1329,
1764 1162, 1335, 1346, 1162, 1143, 1357, 1144, 1163, 1163, 1163,
1765 1342, 1350, 1162, 1164, 1164, 1164, 1166, 1166, 1166, 1343,
1767 1167, 1167, 1167, 1163, 1167, 1351, 1347, 1167, 1353, 1164,
1768 1357, 1166, 1177, 1177, 1177, 1182, 1182, 1182, 1187, 1187,
1769 1187, 1349, 1187, 1355, 1350, 1187, 1354, 1356, 1177, 1376,
1770 1016, 1182, 1358, 1014, 1187, 1188, 1188, 1188, 1351, 1188,
1771 1353, 1001, 1188, 1195, 1195, 1195, 1198, 1198, 1198, 1361,
1772 1198, 1412, 1363, 1198, 1201, 1201, 1201, 1358, 1354, 1195,
1773 1412, 1349, 1198, 1355, 1203, 1203, 1203, 1356, 1203, 1376,
1774 1201, 1203, 1212, 1212, 1212, 1000, 1212, 1363, 1359, 1212,
1775 1203, 1361, 1219, 1219, 1219, 1359, 1219, 1364, 1212, 1219,
1776 1292, 1292, 1292, 1293, 1293, 1293, 993, 1432, 1219, 1304,
1778 1304, 1304, 1313, 1313, 1313, 1292, 1432, 1360, 1293, 1314,
1779 1314, 1314, 1364, 1314, 1360, 1304, 1314, 1313, 1315, 1315,
1780 1315, 1316, 1316, 1316, 1362, 1316, 1367, 1368, 1316, 1327,
1781 1327, 1327, 1365, 1315, 1336, 1336, 1336, 1369, 1336, 1365,
1782 1366, 1336, 1339, 1339, 1339, 1327, 1339, 1366, 1370, 1339,
1783 1372, 1367, 1368, 1373, 1374, 1377, 1362, 1372, 1375, 1378,
1784 1373, 1327, 1379, 1380, 1381, 1384, 1385, 1388, 1389, 1369,
1785 1380, 1381, 1391, 1392, 1388, 1389, 1395, 1396, 1397, 1374,
1786 1370, 1398, 1399, 1375, 1378, 1400, 1402, 1379, 1403, 1405,
1787 1384, 1385, 1401, 1401, 1401, 1377, 1408, 1391, 1392, 1406,
1789 1407, 1395, 1396, 1404, 1404, 1404, 1407, 1399, 1401, 1409,
1790 1400, 1410, 1410, 1410, 1405, 1413, 1414, 1411, 1397, 1404,
1791 1415, 1398, 1416, 1419, 1406, 1420, 1402, 1410, 1403, 1411,
1792 1417, 1417, 1417, 1423, 1424, 1431, 1408, 1421, 1421, 1421,
1793 1413, 1414, 1426, 1427, 1433, 1435, 1417, 1431, 1419, 1409,
1794 1420, 1434, 1436, 1421, 1428, 1428, 1428, 1435, 1437, 1438,
1795 1415, 1436, 1416, 1430, 1430, 1430, 1440, 1426, 1427, 1433,
1796 1428, 1468, 1472, 1423, 1424, 992, 1434, 1441, 1440, 1430,
1797 1439, 1439, 1439, 1437, 1438, 1445, 1441, 1442, 1442, 1442,
1798 1444, 1444, 1444, 1446, 991, 1448, 1439, 1445, 1447, 1447,
1800 1447, 1449, 1446, 1442, 1459, 1482, 1444, 1448, 1469, 1468,
1801 1449, 1450, 1450, 1450, 1447, 1450, 1472, 990, 1450, 1451,
1802 1451, 1451, 1452, 1452, 1452, 1473, 1474, 1450, 1454, 1454,
1803 1454, 1455, 1455, 1455, 1471, 1451, 1476, 1475, 1452, 1457,
1804 1457, 1457, 1477, 1459, 1454, 1482, 1469, 1455, 1460, 1460,
1805 1460, 1462, 1462, 1462, 1480, 1457, 1464, 1464, 1464, 1474,
1806 1481, 1471, 1483, 1484, 1460, 1485, 1478, 1462, 1476, 1473,
1807 1475, 1479, 1464, 1478, 1477, 1486, 988, 1487, 1479, 1480,
1808 1488, 1488, 1488, 972, 968, 1481, 1487, 1486, 1484, 960,
1809 1485, 1489, 1489, 1489, 959, 958, 1488, 957, 955, 940,
1811 937, 929, 1483, 928, 927, 926, 921, 1489, 1492, 1492,
1812 1492, 1492, 1492, 1492, 1492, 1493, 1493, 1493, 1493, 1493,
1813 1493, 1493, 1494, 1494, 1494, 1494, 1494, 1494, 1494, 1495,
1814 1495, 1495, 1495, 1495, 1495, 1495, 1496, 1496, 1496, 1496,
1815 1496, 1496, 1496, 1497, 1497, 1497, 1497, 1497, 1497, 1497,
1816 1498, 1498, 1498, 1498, 1498, 1498, 1498, 1499, 1499, 1499,
1817 1499, 1499, 1499, 1499, 1500, 1500, 1500, 1500, 1500, 1500,
1818 1500, 1501, 1501, 1501, 1501, 1501, 1501, 1501, 1502, 1502,
1819 1502, 1502, 1502, 1502, 1502, 1503, 1503, 1503, 1503, 1503,
1820 1503, 1503, 1504, 1504, 1504, 1504, 1504, 1504, 1504, 1505,
1822 1505, 1505, 1505, 1505, 1505, 1505, 1506, 1506, 1506, 1506,
1823 1506, 1506, 1506, 1507, 1507, 1507, 1507, 1507, 1507, 1507,
1824 1508, 1508, 1508, 1508, 1508, 1508, 1508, 1509, 1509, 1509,
1825 1509, 1509, 1509, 1509, 1510, 1510, 1510, 1510, 1510, 1510,
1826 1510, 1511, 1511, 1511, 1511, 1511, 1511, 1511, 1512, 1512,
1827 1512, 1512, 1512, 1512, 1512, 1513, 1513, 1513, 1513, 1513,
1828 1513, 1513, 1514, 1514, 1514, 1514, 1514, 1514, 1514, 1515,
1829 1515, 1515, 1515, 1515, 1515, 1515, 1516, 1516, 1516, 1516,
1830 1516, 1516, 1516, 1517, 1517, 1517, 1517, 1517, 1517, 1517,
1831 1518, 1518, 1518, 1518, 1518, 1518, 1518, 1519, 1519, 1519,
1833 1519, 1519, 1519, 1519, 1520, 1520, 1520, 907, 1520, 1521,
1834 1521, 1521, 904, 1521, 1522, 1522, 1522, 903, 1522, 1523,
1835 1523, 1523, 901, 1523, 1524, 1524, 1524, 897, 1524, 1525,
1836 1525, 1525, 884, 1525, 1526, 1526, 1526, 883, 1526, 1527,
1837 1527, 1527, 879, 1527, 1528, 1528, 1528, 877, 1528, 1529,
1838 1529, 1529, 873, 1529, 1530, 1530, 1530, 1530, 1530, 872,
1839 1530, 1531, 869, 1531, 1532, 850, 1532, 1533, 849, 1533,
1840 1534, 844, 1534, 1535, 843, 1535, 1536, 842, 1536, 1537,
1841 834, 1537, 1538, 833, 1538, 1539, 832, 1539, 1540, 830,
1842 1540, 1541, 1541, 1541, 1541, 1541, 1541, 1541, 1542, 806,
1844 804, 1542, 1543, 1543, 1543, 1543, 1543, 1543, 1544, 1544,
1845 1544, 1544, 1544, 1544, 1545, 1545, 1545, 1545, 1545, 1545,
1846 1546, 1546, 1546, 1546, 1546, 1546, 1547, 1547, 1547, 1547,
1847 1547, 1547, 1548, 1548, 1548, 1548, 1548, 1548, 1549, 1549,
1848 1549, 1549, 1549, 1549, 1550, 1550, 1550, 1550, 1550, 1550,
1849 1551, 1551, 1551, 1551, 1551, 1551, 1552, 1552, 1552, 1552,
1850 1552, 1552, 1553, 1553, 1553, 1553, 1553, 1553, 1553, 1554,
1851 1554, 1554, 1554, 1554, 1554, 1554, 1555, 1555, 1555, 1555,
1852 1555, 1555, 1555, 1556, 1556, 1556, 1556, 1556, 1556, 1556,
1853 1557, 1557, 1557, 1557, 1557, 1557, 1557, 1558, 1558, 1558,
1855 1558, 1558, 1558, 1558, 1559, 1559, 1559, 1559, 1559, 1559,
1856 1559, 803, 802, 801, 796, 794, 793, 792, 791, 787,
1857 779, 773, 772, 771, 770, 769, 768, 767, 766, 759,
1858 758, 757, 756, 755, 754, 753, 752, 744, 740, 738,
1859 736, 735, 732, 729, 728, 725, 724, 721, 719, 716,
1860 715, 714, 706, 702, 697, 695, 694, 693, 691, 689,
1861 686, 685, 684, 682, 680, 671, 670, 669, 664, 663,
1862 662, 658, 657, 654, 649, 645, 643, 642, 638, 636,
1863 634, 632, 629, 628, 627, 620, 615, 614, 613, 608,
1864 605, 603, 600, 599, 596, 593, 591, 588, 586, 585,
1866 582, 580, 575, 569, 568, 567, 559, 558, 557, 553,
1867 552, 551, 550, 548, 545, 544, 543, 542, 537, 532,
1868 531, 526, 525, 523, 515, 508, 501, 500, 499, 495,
1869 483, 479, 474, 473, 472, 471, 467, 461, 460, 459,
1870 458, 457, 456, 455, 450, 449, 448, 445, 444, 443,
1871 441, 437, 435, 432, 431, 428, 427, 426, 425, 420,
1872 416, 412, 411, 410, 407, 400, 397, 394, 393, 392,
1873 391, 388, 385, 384, 383, 382, 381, 380, 379, 378,
1874 375, 374, 372, 371, 370, 369, 368, 364, 362, 361,
1875 360, 359, 358, 357, 354, 353, 352, 351, 350, 349,
1877 346, 342, 341, 340, 339, 338, 335, 334, 333, 332,
1878 330, 327, 323, 322, 318, 317, 316, 315, 314, 313,
1879 311, 308, 307, 304, 303, 302, 301, 300, 299, 298,
1880 297, 296, 293, 292, 291, 290, 289, 283, 282, 280,
1881 277, 276, 272, 268, 259, 258, 257, 256, 252, 245,
1882 241, 233, 232, 231, 227, 218, 217, 216, 212, 205,
1883 201, 194, 193, 189, 181, 180, 179, 177, 173, 166,
1884 162, 151, 147, 143, 142, 141, 135, 134, 132, 129,
1885 117, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
1886 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
1888 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
1889 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
1890 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
1891 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491, 1491,
1892 1491, 1491, 1491, 1491, 1491
1895 /* Table of booleans, true if rule could match eol. */
1896 static yyconst flex_int32_t yy_rule_can_match_eol[203] =
1898 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1899 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0,
1900 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1901 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1,
1902 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1,
1903 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
1904 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,
1905 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1,
1906 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1907 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0,
1910 static yy_state_type yy_last_accepting_state;
1911 static char *yy_last_accepting_cpos;
1913 extern int surf_parse__flex_debug;
1914 int surf_parse__flex_debug = 0;
1916 /* The intent behind this definition is that it'll catch
1917 * any uses of REJECT which flex missed.
1919 #define REJECT reject_used_but_not_detected
1920 #define yymore() yymore_used_but_not_detected
1921 #define YY_MORE_ADJ 0
1922 #define YY_RESTORE_YY_MORE_OFFSET
1923 char *surf_parse_text;
1924 /* Validating XML processor for surf/surfxml.dtd.
1925 * Generated 2007/10/26 19:58:25.
1927 * This program was generated with the FleXML XML processor generator.
1928 * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved.
1929 * FleXML is Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1930 * (Id: flexml.pl,v 1.61 2006/09/13 16:34:33 wdowling Exp).
1932 * There are two, intertwined parts to this program, part A and part B.
1937 * Some parts, here collectively called "Part A", are found in the
1938 * FleXML package. They are Copyright (C) 1999-2005 Kristoffer Rose
1939 * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1941 * You can redistribute, use, perform, display and/or modify "Part A"
1942 * provided the following two conditions hold:
1944 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1945 * FleXML; without even the implied warranty of MERCHANTABILITY or
1946 * FITNESS FOR A PARTICULAR PURPOSE.
1948 * 2. The program distribution conditions do not in any way affect the
1949 * distribution conditions of the FleXML system used to generate this
1950 * file or any version of FleXML derived from that system.
1952 * Notice that these are explicit rights granted to you for files
1953 * generated by the FleXML system. For your rights in connection with
1954 * the FleXML system itself please consult the GNU General Public License.
1959 * The other parts, here collectively called "Part B", and which came
1960 * from the DTD used by FleXML to generate this program, can be
1961 * distributed (or not, as the case may be) under the terms of whoever
1962 * wrote them, provided these terms respect and obey the two conditions
1963 * above under the heading "Part A".
1965 * The author of and contributors to FleXML specifically disclaim
1966 * any copyright interest in "Part B", unless "Part B" was written
1967 * by the author of or contributors to FleXML.
1971 /* Version strings. */
1972 const char rcs_surfxml_flexml_skeleton[] =
1973 "$" "Id: skel,v 1.38 2006/09/12 18:05:45 wdowling Exp $";
1974 const char rcs_surfxml_flexml[] =
1975 "$" "Id: flexml.pl,v 1.61 2006/09/13 16:34:33 wdowling Exp $";
1978 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
1979 # ifndef __STRICT_ANSI__
1981 # include <process.h>
1984 # include <unistd.h>
1992 #ifndef FLEXML_INDEXSTACKSIZE
1993 #define FLEXML_INDEXSTACKSIZE 1000
1996 /* Generated definitions. */
1997 #define FLEXML_yylineno
1998 #ifndef FLEXML_BUFFERSTACKSIZE
1999 #define FLEXML_BUFFERSTACKSIZE 1000000
2001 #define FLEXML_NEED_BUFFERLIT
2003 /* XML processor api. */
2004 /* FleXML-provided data. */
2005 int surfxml_pcdata_ix;
2006 extern char *surfxml_bufferstack;
2007 #define surfxml_pcdata (surfxml_bufferstack + surfxml_pcdata_ix)
2008 AT_surfxml_link_id AX_surfxml_link_id;
2009 #define A_surfxml_link_id (surfxml_bufferstack + AX_surfxml_link_id)
2010 AT_surfxml_prop_id AX_surfxml_prop_id;
2011 #define A_surfxml_prop_id (surfxml_bufferstack + AX_surfxml_prop_id)
2012 AT_surfxml_host_interference_recv AX_surfxml_host_interference_recv;
2013 #define A_surfxml_host_interference_recv (surfxml_bufferstack + AX_surfxml_host_interference_recv)
2014 AT_surfxml_host_id AX_surfxml_host_id;
2015 #define A_surfxml_host_id (surfxml_bufferstack + AX_surfxml_host_id)
2016 AT_surfxml_link_latency_file AX_surfxml_link_latency_file;
2017 #define A_surfxml_link_latency_file (surfxml_bufferstack + AX_surfxml_link_latency_file)
2018 AT_surfxml_process_host AX_surfxml_process_host;
2019 #define A_surfxml_process_host (surfxml_bufferstack + AX_surfxml_process_host)
2020 AT_surfxml_host_availability_file AX_surfxml_host_availability_file;
2021 #define A_surfxml_host_availability_file (surfxml_bufferstack + AX_surfxml_host_availability_file)
2022 AT_surfxml_host_state AX_surfxml_host_state;
2023 #define A_surfxml_host_state AX_surfxml_host_state
2024 AT_surfxml_host_interference_send_recv AX_surfxml_host_interference_send_recv;
2025 #define A_surfxml_host_interference_send_recv (surfxml_bufferstack + AX_surfxml_host_interference_send_recv)
2026 AT_surfxml_route_impact_on_dst_with_other_send AX_surfxml_route_impact_on_dst_with_other_send;
2027 #define A_surfxml_route_impact_on_dst_with_other_send (surfxml_bufferstack + AX_surfxml_route_impact_on_dst_with_other_send)
2028 AT_surfxml_host_interference_send AX_surfxml_host_interference_send;
2029 #define A_surfxml_host_interference_send (surfxml_bufferstack + AX_surfxml_host_interference_send)
2030 AT_surfxml_route_impact_on_dst AX_surfxml_route_impact_on_dst;
2031 #define A_surfxml_route_impact_on_dst (surfxml_bufferstack + AX_surfxml_route_impact_on_dst)
2032 AT_surfxml_platform_description_version AX_surfxml_platform_description_version;
2033 #define A_surfxml_platform_description_version (surfxml_bufferstack + AX_surfxml_platform_description_version)
2034 AT_surfxml_prop_value AX_surfxml_prop_value;
2035 #define A_surfxml_prop_value (surfxml_bufferstack + AX_surfxml_prop_value)
2036 AT_surfxml_route_impact_on_src_with_other_recv AX_surfxml_route_impact_on_src_with_other_recv;
2037 #define A_surfxml_route_impact_on_src_with_other_recv (surfxml_bufferstack + AX_surfxml_route_impact_on_src_with_other_recv)
2038 AT_surfxml_host_power AX_surfxml_host_power;
2039 #define A_surfxml_host_power (surfxml_bufferstack + AX_surfxml_host_power)
2040 AT_surfxml_link_state_file AX_surfxml_link_state_file;
2041 #define A_surfxml_link_state_file (surfxml_bufferstack + AX_surfxml_link_state_file)
2042 AT_surfxml_router_id AX_surfxml_router_id;
2043 #define A_surfxml_router_id (surfxml_bufferstack + AX_surfxml_router_id)
2044 AT_surfxml_process_start_time AX_surfxml_process_start_time;
2045 #define A_surfxml_process_start_time (surfxml_bufferstack + AX_surfxml_process_start_time)
2046 AT_surfxml_process_function AX_surfxml_process_function;
2047 #define A_surfxml_process_function (surfxml_bufferstack + AX_surfxml_process_function)
2048 AT_surfxml_host_max_outgoing_rate AX_surfxml_host_max_outgoing_rate;
2049 #define A_surfxml_host_max_outgoing_rate (surfxml_bufferstack + AX_surfxml_host_max_outgoing_rate)
2050 AT_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy;
2051 #define A_surfxml_link_sharing_policy AX_surfxml_link_sharing_policy
2052 AT_surfxml_link_c_ctn_id AX_surfxml_link_c_ctn_id;
2053 #define A_surfxml_link_c_ctn_id (surfxml_bufferstack + AX_surfxml_link_c_ctn_id)
2054 AT_surfxml_process_kill_time AX_surfxml_process_kill_time;
2055 #define A_surfxml_process_kill_time (surfxml_bufferstack + AX_surfxml_process_kill_time)
2056 AT_surfxml_host_availability AX_surfxml_host_availability;
2057 #define A_surfxml_host_availability (surfxml_bufferstack + AX_surfxml_host_availability)
2058 AT_surfxml_argument_value AX_surfxml_argument_value;
2059 #define A_surfxml_argument_value (surfxml_bufferstack + AX_surfxml_argument_value)
2060 AT_surfxml_link_state AX_surfxml_link_state;
2061 #define A_surfxml_link_state AX_surfxml_link_state
2062 AT_surfxml_route_src AX_surfxml_route_src;
2063 #define A_surfxml_route_src (surfxml_bufferstack + AX_surfxml_route_src)
2064 AT_surfxml_route_impact_on_src AX_surfxml_route_impact_on_src;
2065 #define A_surfxml_route_impact_on_src (surfxml_bufferstack + AX_surfxml_route_impact_on_src)
2066 AT_surfxml_link_bandwidth AX_surfxml_link_bandwidth;
2067 #define A_surfxml_link_bandwidth (surfxml_bufferstack + AX_surfxml_link_bandwidth)
2068 AT_surfxml_link_latency AX_surfxml_link_latency;
2069 #define A_surfxml_link_latency (surfxml_bufferstack + AX_surfxml_link_latency)
2070 AT_surfxml_include_file AX_surfxml_include_file;
2071 #define A_surfxml_include_file (surfxml_bufferstack + AX_surfxml_include_file)
2072 AT_surfxml_link_bandwidth_file AX_surfxml_link_bandwidth_file;
2073 #define A_surfxml_link_bandwidth_file (surfxml_bufferstack + AX_surfxml_link_bandwidth_file)
2074 AT_surfxml_host_state_file AX_surfxml_host_state_file;
2075 #define A_surfxml_host_state_file (surfxml_bufferstack + AX_surfxml_host_state_file)
2076 AT_surfxml_route_dst AX_surfxml_route_dst;
2077 #define A_surfxml_route_dst (surfxml_bufferstack + AX_surfxml_route_dst)
2081 # define ENTER(state) debug_enter(state,#state)
2082 # define LEAVE debug_leave()
2083 # define SET(state) debug_set(state,#state)
2084 static void debug_enter(int, const char*);
2085 static void debug_leave(void);
2086 static void debug_set(int, const char*);
2088 # define ENTER(state) (yy_push_state(state))
2089 # define LEAVE (yy_pop_state())
2090 # define SET(state) BEGIN(state)
2093 /* Generic actions. */
2094 #define SKIP /*skip*/
2095 #define SUCCEED CLEANUP; return 0
2097 #define FAIL return fail
2098 static int fail(const char*, ...);
2100 enum {flexml_max_err_msg_size = 512};
2101 static char flexml_err_msg[flexml_max_err_msg_size];
2102 const char * surfxml_parse_err_msg()
2104 return flexml_err_msg;
2106 static void reset_surfxml_parse_err_msg()
2108 flexml_err_msg[0] = '\0';
2112 static void cleanup(void);
2113 #define CLEANUP cleanup()
2115 /* Text buffer stack handling. */
2116 char *surfxml_bufferstack = NULL;
2117 static int blimit = FLEXML_BUFFERSTACKSIZE;
2118 static int bnext = 1;
2120 static int *indexstack = NULL;
2121 static int ilimit = FLEXML_INDEXSTACKSIZE;
2122 static int inext = 1;
2124 #define BUFFERSET(P) (P = bnext)
2125 #define BUFFERPUTC(C) (ck_blimit(), surfxml_bufferstack[bnext++] = (C))
2126 #define BUFFERDONE (BUFFERPUTC('\0'))
2128 #define BUFFERLITERAL(C, P) surfxml_bufferliteral(C, &(P), surf_parse_text)
2130 /* after this is called, there are at least 2 slots left in the stack */
2131 static int ck_blimit()
2133 if (bnext >= blimit) {
2134 blimit += FLEXML_BUFFERSTACKSIZE + 2;
2136 char *temp = (char *) realloc(surfxml_bufferstack, blimit);
2138 surfxml_bufferstack = temp;
2144 /* after this is called, there are at least 2 slots left in the stack */
2145 static int ck_ilimit()
2147 if (inext >= ilimit) {
2148 ilimit += FLEXML_INDEXSTACKSIZE + 2;
2150 int *temp = (int *) realloc(indexstack, ilimit);
2158 #ifdef FLEXML_NEED_BUFFERLIT
2159 static void surfxml_bufferliteral(char c, int* pp, const char* text)
2161 const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
2162 assert(s <= e); BUFFERSET(*pp);
2164 if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
2165 else BUFFERPUTC(*s);
2171 static void pushbuffer(int p)
2174 indexstack[inext++] = p;
2175 indexstack[inext++] = bnext;
2178 static int popbuffer(void)
2181 bnext = indexstack[--inext];
2182 return indexstack[--inext];
2185 /* General internal entities are `unput' back onto the input stream... */
2186 #define ENTITYTEXT(T) \
2187 { char *s = (T), *e = s+strlen(s);\
2188 while (--e >= s) { unput(*e); }}
2190 /* Flex standard options. */
2191 #define YY_NO_INPUT 1
2192 /* Flex user-requested options. */
2193 /* XML character classes (currently restricted to ASCII). */
2194 /* "Common syntactic structures." */
2195 /* "Names and Tokens." */
2196 /* Miscellaneous. */
2197 /* Parser states (flex `exclusive start conditions'):
2199 * PROLOG the XML prolog of the document before <?xml...>
2200 * DOCTYPE the XML prolog of the document after <?xml...>
2201 * EPILOG after the root element
2202 * INCOMMENT inside an XML comment <!--....-->
2203 * INPI inside an XML PI <?...?>
2204 * VALUE1 inside a '...'-delimited literal
2205 * VALUE2 inside a "..."-delimited literal
2206 * CDATA inside a <![CDATA[...] ]> section.
2207 * ROOT_<tag> expect root element <tag>
2208 * AL_<tag> inside the attribute list for <tag>
2209 * IN_<tag> inside a <tag> with element contents (ready for end tag)
2210 * IMPOSSIBLE dummy to permit disabling rules; must be last
2214 const char* *surfxml_statenames=NULL;
2225 #define ROOT_surfxml_platform_description 9
2226 #define AL_surfxml_platform_description 10
2227 #define S_surfxml_platform_description 11
2228 #define S_surfxml_platform_description_1 12
2229 #define S_surfxml_platform_description_2 13
2230 #define S_surfxml_platform_description_3 14
2231 #define S_surfxml_platform_description_4 15
2232 #define S_surfxml_platform_description_5 16
2233 #define E_surfxml_platform_description 17
2234 #define ROOT_surfxml_include 18
2235 #define AL_surfxml_include 19
2236 #define E_surfxml_include 20
2237 #define ROOT_surfxml_host 21
2238 #define AL_surfxml_host 22
2239 #define S_surfxml_host 23
2240 #define S_surfxml_host_1 24
2241 #define S_surfxml_host_2 25
2242 #define E_surfxml_host 26
2243 #define ROOT_surfxml_prop 27
2244 #define AL_surfxml_prop 28
2245 #define E_surfxml_prop 29
2246 #define ROOT_surfxml_router 30
2247 #define AL_surfxml_router 31
2248 #define E_surfxml_router 32
2249 #define ROOT_surfxml_link 33
2250 #define AL_surfxml_link 34
2251 #define S_surfxml_link 35
2252 #define S_surfxml_link_1 36
2253 #define S_surfxml_link_2 37
2254 #define E_surfxml_link 38
2255 #define ROOT_surfxml_route 39
2256 #define AL_surfxml_route 40
2257 #define S_surfxml_route 41
2258 #define S_surfxml_route_1 42
2259 #define S_surfxml_route_2 43
2260 #define E_surfxml_route 44
2261 #define ROOT_surfxml_link_c_ctn 45
2262 #define AL_surfxml_link_c_ctn 46
2263 #define E_surfxml_link_c_ctn 47
2264 #define ROOT_surfxml_process 48
2265 #define AL_surfxml_process 49
2266 #define S_surfxml_process 50
2267 #define S_surfxml_process_1 51
2268 #define S_surfxml_process_2 52
2269 #define E_surfxml_process 53
2270 #define ROOT_surfxml_argument 54
2271 #define AL_surfxml_argument 55
2272 #define E_surfxml_argument 56
2273 #define IMPOSSIBLE 57
2275 #ifndef YY_NO_UNISTD_H
2276 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2277 * down here because we want the user's section 1 to have been scanned first.
2278 * The user has a chance to override it with an option.
2280 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
2281 # ifndef __STRICT_ANSI__
2283 # include <process.h>
2286 # include <unistd.h>
2290 #ifndef YY_EXTRA_TYPE
2291 #define YY_EXTRA_TYPE void *
2294 static int yy_init_globals (void );
2296 /* Macros after this point can all be overridden by user definitions in
2300 #ifndef YY_SKIP_YYWRAP
2302 extern "C" int surf_parse_wrap (void );
2304 extern int surf_parse_wrap (void );
2309 static void yy_flex_strncpy (char *,yyconst char *,int );
2312 #ifdef YY_NEED_STRLEN
2313 static int yy_flex_strlen (yyconst char * );
2319 static int yyinput (void );
2321 static int input (void );
2326 static int yy_start_stack_ptr = 0;
2327 static int yy_start_stack_depth = 0;
2328 static int *yy_start_stack = NULL;
2330 static void yy_push_state (int new_state );
2332 static void yy_pop_state (void );
2334 /* Amount of stuff to slurp up with each read. */
2335 #ifndef YY_READ_BUF_SIZE
2336 #define YY_READ_BUF_SIZE 8192
2339 /* Copy whatever the last rule matched to the standard output. */
2341 /* This used to be an fputs(), but since the string might contain NUL's,
2342 * we now use fwrite().
2344 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
2347 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2348 * is returned in "result".
2351 #define YY_INPUT(buf,result,max_size) \
2352 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2356 for ( n = 0; n < max_size && \
2357 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
2358 buf[n] = (char) c; \
2360 buf[n++] = (char) c; \
2361 if ( c == EOF && ferror( surf_parse_in ) ) \
2362 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2368 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2370 if( errno != EINTR) \
2372 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2376 clearerr(surf_parse_in); \
2383 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2384 * we don't want an extra ';' after the "return" because that will cause
2385 * some compilers to complain about unreachable statements.
2388 #define yyterminate() return YY_NULL
2391 /* Number of entries by which start-condition stack grows. */
2392 #ifndef YY_START_STACK_INCR
2393 #define YY_START_STACK_INCR 25
2396 /* Report a fatal error. */
2397 #ifndef YY_FATAL_ERROR
2398 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2401 /* end tables serialization structures and prototypes */
2403 /* Default declaration of generated scanner - a define so the user can
2404 * easily add parameters.
2407 #define YY_DECL_IS_OURS 1
2409 extern int surf_parse_lex (void);
2411 #define YY_DECL int surf_parse_lex (void)
2412 #endif /* !YY_DECL */
2414 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2417 #ifndef YY_USER_ACTION
2418 #define YY_USER_ACTION
2421 /* Code executed at the end of each rule. */
2423 #define YY_BREAK break;
2426 #define YY_RULE_SETUP \
2429 /** The main scanner function which does all the work.
2433 register yy_state_type yy_current_state;
2434 register char *yy_cp, *yy_bp;
2435 register int yy_act;
2437 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
2439 reset_surfxml_parse_err_msg();
2440 surfxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
2441 assert(surfxml_bufferstack);
2445 for (i = 0; i < blimit; i++) {
2446 surfxml_bufferstack[i] = '\377';
2450 surfxml_bufferstack[0] = '\0';
2451 indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
2457 surfxml_bufferliteral('\0', &bnext, "0.0");
2458 surfxml_bufferliteral('\0', &bnext, "1.0");
2459 surfxml_bufferliteral('\0', &bnext, "1.0");
2460 surfxml_bufferliteral('\0', &bnext, "1.0");
2461 surfxml_bufferliteral('\0', &bnext, "1.0");
2462 surfxml_bufferliteral('\0', &bnext, "-1.0");
2463 surfxml_bufferliteral('\0', &bnext, "0.0");
2464 surfxml_bufferliteral('\0', &bnext, "0.0");
2465 surfxml_bufferliteral('\0', &bnext, "0.0");
2466 surfxml_bufferliteral('\0', &bnext, "0.0");
2467 surfxml_bufferliteral('\0', &bnext, "0.0");
2468 surfxml_bufferliteral('\0', &bnext, "-1.0");
2469 surfxml_bufferliteral('\0', &bnext, "-1.0");
2470 if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
2471 surfxml_statenames[PROLOG] = NULL;
2472 surfxml_statenames[DOCTYPE] = NULL;
2473 surfxml_statenames[EPILOG] = NULL;
2474 surfxml_statenames[INCOMMENT] = NULL;
2475 surfxml_statenames[INPI] = NULL;
2476 surfxml_statenames[VALUE1] = NULL;
2477 surfxml_statenames[VALUE2] = NULL;
2478 surfxml_statenames[CDATA] = NULL;
2479 surfxml_statenames[ROOT_surfxml_platform_description] = NULL;
2480 surfxml_statenames[AL_surfxml_platform_description] = NULL;
2481 surfxml_statenames[S_surfxml_platform_description] = "platform_description";
2482 surfxml_statenames[S_surfxml_platform_description_1] = "platform_description";
2483 surfxml_statenames[S_surfxml_platform_description_2] = "platform_description";
2484 surfxml_statenames[S_surfxml_platform_description_3] = "platform_description";
2485 surfxml_statenames[S_surfxml_platform_description_4] = "platform_description";
2486 surfxml_statenames[S_surfxml_platform_description_5] = "platform_description";
2487 surfxml_statenames[E_surfxml_platform_description] = "platform_description";
2488 surfxml_statenames[ROOT_surfxml_include] = NULL;
2489 surfxml_statenames[AL_surfxml_include] = NULL;
2490 surfxml_statenames[E_surfxml_include] = "include";
2491 surfxml_statenames[ROOT_surfxml_host] = NULL;
2492 surfxml_statenames[AL_surfxml_host] = NULL;
2493 surfxml_statenames[S_surfxml_host] = "host";
2494 surfxml_statenames[S_surfxml_host_1] = "host";
2495 surfxml_statenames[S_surfxml_host_2] = "host";
2496 surfxml_statenames[E_surfxml_host] = "host";
2497 surfxml_statenames[ROOT_surfxml_prop] = NULL;
2498 surfxml_statenames[AL_surfxml_prop] = NULL;
2499 surfxml_statenames[E_surfxml_prop] = "prop";
2500 surfxml_statenames[ROOT_surfxml_router] = NULL;
2501 surfxml_statenames[AL_surfxml_router] = NULL;
2502 surfxml_statenames[E_surfxml_router] = "router";
2503 surfxml_statenames[ROOT_surfxml_link] = NULL;
2504 surfxml_statenames[AL_surfxml_link] = NULL;
2505 surfxml_statenames[S_surfxml_link] = "link";
2506 surfxml_statenames[S_surfxml_link_1] = "link";
2507 surfxml_statenames[S_surfxml_link_2] = "link";
2508 surfxml_statenames[E_surfxml_link] = "link";
2509 surfxml_statenames[ROOT_surfxml_route] = NULL;
2510 surfxml_statenames[AL_surfxml_route] = NULL;
2511 surfxml_statenames[S_surfxml_route] = "route";
2512 surfxml_statenames[S_surfxml_route_1] = "route";
2513 surfxml_statenames[S_surfxml_route_2] = "route";
2514 surfxml_statenames[E_surfxml_route] = "route";
2515 surfxml_statenames[ROOT_surfxml_link_c_ctn] = NULL;
2516 surfxml_statenames[AL_surfxml_link_c_ctn] = NULL;
2517 surfxml_statenames[E_surfxml_link_c_ctn] = "link:ctn";
2518 surfxml_statenames[ROOT_surfxml_process] = NULL;
2519 surfxml_statenames[AL_surfxml_process] = NULL;
2520 surfxml_statenames[S_surfxml_process] = "process";
2521 surfxml_statenames[S_surfxml_process_1] = "process";
2522 surfxml_statenames[S_surfxml_process_2] = "process";
2523 surfxml_statenames[E_surfxml_process] = "process";
2524 surfxml_statenames[ROOT_surfxml_argument] = NULL;
2525 surfxml_statenames[AL_surfxml_argument] = NULL;
2526 surfxml_statenames[E_surfxml_argument] = "argument";
2529 /* COMMENTS and PIs: handled uniformly for efficiency. */
2540 (yy_start) = 1; /* first start state */
2542 if ( ! surf_parse_in )
2543 surf_parse_in = stdin;
2545 if ( ! surf_parse_out )
2546 surf_parse_out = stdout;
2548 if ( ! YY_CURRENT_BUFFER ) {
2549 surf_parse_ensure_buffer_stack ();
2550 YY_CURRENT_BUFFER_LVALUE =
2551 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
2554 surf_parse__load_buffer_state( );
2557 while ( 1 ) /* loops until end-of-file is reached */
2559 yy_cp = (yy_c_buf_p);
2561 /* Support of surf_parse_text. */
2562 *yy_cp = (yy_hold_char);
2564 /* yy_bp points to the position in yy_ch_buf of the start of
2569 yy_current_state = (yy_start);
2573 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2574 if ( yy_accept[yy_current_state] )
2576 (yy_last_accepting_state) = yy_current_state;
2577 (yy_last_accepting_cpos) = yy_cp;
2579 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2581 yy_current_state = (int) yy_def[yy_current_state];
2582 if ( yy_current_state >= 1492 )
2583 yy_c = yy_meta[(unsigned int) yy_c];
2585 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2588 while ( yy_base[yy_current_state] != 4182 );
2591 yy_act = yy_accept[yy_current_state];
2593 { /* have to back up */
2594 yy_cp = (yy_last_accepting_cpos);
2595 yy_current_state = (yy_last_accepting_state);
2596 yy_act = yy_accept[yy_current_state];
2599 YY_DO_BEFORE_ACTION;
2601 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2604 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
2605 if ( surf_parse_text[yyl] == '\n' )
2607 surf_parse_lineno++;
2611 do_action: /* This label is used only to access EOF actions. */
2614 { /* beginning of action switch */
2615 case 0: /* must back up */
2616 /* undo the effects of YY_DO_BEFORE_ACTION */
2617 *yy_cp = (yy_hold_char);
2618 yy_cp = (yy_last_accepting_cpos);
2619 yy_current_state = (yy_last_accepting_state);
2620 goto yy_find_action;
2638 /* rule 6 can match eol */
2642 case YY_STATE_EOF(INCOMMENT):
2643 FAIL("EOF in comment.");
2652 /* rule 9 can match eol */
2656 case YY_STATE_EOF(INPI):
2657 FAIL("EOF in PI (processing instruction).");
2660 /* SPACES: skipped uniformly */
2662 /* rule 10 can match eol */
2666 /* PROLOG: determine root element and process it. */
2669 /* rule 11 can match eol */
2674 /* rule 12 can match eol */
2676 FAIL("Bad declaration %s.",surf_parse_text);
2680 /* rule 13 can match eol */
2682 SET(ROOT_surfxml_link);
2685 /* rule 14 can match eol */
2687 SET(ROOT_surfxml_include);
2690 /* rule 15 can match eol */
2692 SET(ROOT_surfxml_route);
2695 /* rule 16 can match eol */
2697 SET(ROOT_surfxml_process);
2700 /* rule 17 can match eol */
2702 SET(ROOT_surfxml_link_c_ctn);
2705 /* rule 18 can match eol */
2707 SET(ROOT_surfxml_router);
2710 /* rule 19 can match eol */
2712 SET(ROOT_surfxml_host);
2715 /* rule 20 can match eol */
2717 SET(ROOT_surfxml_argument);
2720 /* rule 21 can match eol */
2722 SET(ROOT_surfxml_prop);
2725 /* rule 22 can match eol */
2727 SET(ROOT_surfxml_platform_description);
2730 /* rule 23 can match eol */
2732 FAIL("Bad declaration %s.",surf_parse_text);
2736 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
2738 case YY_STATE_EOF(PROLOG):
2739 case YY_STATE_EOF(DOCTYPE):
2740 FAIL("EOF in prolog.");
2743 /* RULES DERIVED FROM DTD. */
2744 /* <!-- Small DTD for SURF based tools. --> */
2746 /* rule 25 can match eol */
2749 AX_surfxml_platform_description_version = 1;
2750 ENTER(AL_surfxml_platform_description); pushbuffer(0);
2755 /* rule 26 can match eol */
2757 ENTER(VALUE1); BUFFERSET(AX_surfxml_platform_description_version);
2760 /* rule 27 can match eol */
2762 ENTER(VALUE2); BUFFERSET(AX_surfxml_platform_description_version);
2767 LEAVE; STag_surfxml_platform_description();surfxml_pcdata_ix = 0; ENTER(S_surfxml_platform_description);
2773 LEAVE; STag_surfxml_platform_description(); surfxml_pcdata_ix = 0; ETag_surfxml_platform_description(); popbuffer(); /* attribute */
2775 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2781 FAIL("Unexpected character `%c' in attribute list of platform_description element.", surf_parse_text[0]);
2785 FAIL("Bad attribute `%s' in `platform_description' element start tag.",surf_parse_text);
2787 case YY_STATE_EOF(AL_surfxml_platform_description):
2788 FAIL("EOF in attribute list of `platform_description' element.");
2792 /* rule 32 can match eol */
2796 ETag_surfxml_platform_description();
2797 popbuffer(); /* attribute */
2799 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2804 /* rule 33 can match eol */
2806 FAIL("Unexpected end-tag `%s': `</platform_description>' expected.",surf_parse_text);
2810 FAIL("Unexpected character `%c': `</platform_description>' expected.",surf_parse_text[0]);
2812 case YY_STATE_EOF(E_surfxml_platform_description):
2813 case YY_STATE_EOF(S_surfxml_platform_description_5):
2814 case YY_STATE_EOF(S_surfxml_platform_description_3):
2815 case YY_STATE_EOF(S_surfxml_platform_description_1):
2816 case YY_STATE_EOF(S_surfxml_platform_description):
2817 FAIL("Premature EOF: `</platform_description>' expected.");
2821 /* rule 35 can match eol */
2824 AX_surfxml_include_file = 0;
2825 ENTER(AL_surfxml_include); pushbuffer(0);
2830 /* rule 36 can match eol */
2832 ENTER(VALUE1); BUFFERSET(AX_surfxml_include_file);
2835 /* rule 37 can match eol */
2837 ENTER(VALUE2); BUFFERSET(AX_surfxml_include_file);
2842 if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2843 LEAVE; STag_surfxml_include();surfxml_pcdata_ix = 0; ENTER(E_surfxml_include);
2849 if (!AX_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2850 LEAVE; STag_surfxml_include(); surfxml_pcdata_ix = 0; ETag_surfxml_include(); popbuffer(); /* attribute */
2852 case S_surfxml_platform_description_2: SET(S_surfxml_platform_description_3); break;
2853 case ROOT_surfxml_include: SET(EPILOG); break;
2854 case S_surfxml_platform_description_5: case S_surfxml_platform_description_3: case S_surfxml_platform_description_1: case S_surfxml_platform_description: case S_surfxml_platform_description_4: SET(S_surfxml_platform_description_5); break;
2860 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
2864 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
2866 case YY_STATE_EOF(AL_surfxml_include):
2867 FAIL("EOF in attribute list of `include' element.");
2871 /* rule 42 can match eol */
2875 ETag_surfxml_include();
2876 popbuffer(); /* attribute */
2878 case S_surfxml_platform_description_2: SET(S_surfxml_platform_description_3); break;
2879 case ROOT_surfxml_include: SET(EPILOG); break;
2880 case S_surfxml_platform_description_5: case S_surfxml_platform_description_3: case S_surfxml_platform_description_1: case S_surfxml_platform_description: case S_surfxml_platform_description_4: SET(S_surfxml_platform_description_5); break;
2885 /* rule 43 can match eol */
2887 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
2891 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
2893 case YY_STATE_EOF(E_surfxml_include):
2894 FAIL("Premature EOF: `</include>' expected.");
2898 /* rule 45 can match eol */
2901 AX_surfxml_host_id = 0;
2902 AX_surfxml_host_power = 0;
2903 AX_surfxml_host_availability = 5;
2904 AX_surfxml_host_availability_file = 0;
2905 AX_surfxml_host_state = A_surfxml_host_state_ON;
2906 AX_surfxml_host_state_file = 0;
2907 AX_surfxml_host_interference_send = 9;
2908 AX_surfxml_host_interference_recv = 13;
2909 AX_surfxml_host_interference_send_recv = 17;
2910 AX_surfxml_host_max_outgoing_rate = 21;
2911 ENTER(AL_surfxml_host); pushbuffer(0);
2916 /* rule 46 can match eol */
2918 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_id);
2921 /* rule 47 can match eol */
2923 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_id);
2926 /* rule 48 can match eol */
2928 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_power);
2931 /* rule 49 can match eol */
2933 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_power);
2936 /* rule 50 can match eol */
2938 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability);
2941 /* rule 51 can match eol */
2943 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability);
2946 /* rule 52 can match eol */
2948 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_availability_file);
2951 /* rule 53 can match eol */
2953 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_availability_file);
2956 /* rule 54 can match eol */
2958 /* rule 55 can match eol */
2960 A_surfxml_host_state = A_surfxml_host_state_ON;
2963 /* rule 56 can match eol */
2965 /* rule 57 can match eol */
2967 A_surfxml_host_state = A_surfxml_host_state_OFF;
2970 /* rule 58 can match eol */
2972 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_state_file);
2975 /* rule 59 can match eol */
2977 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_state_file);
2980 /* rule 60 can match eol */
2982 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send);
2985 /* rule 61 can match eol */
2987 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send);
2990 /* rule 62 can match eol */
2992 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_recv);
2995 /* rule 63 can match eol */
2997 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_recv);
3000 /* rule 64 can match eol */
3002 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_interference_send_recv);
3005 /* rule 65 can match eol */
3007 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_interference_send_recv);
3010 /* rule 66 can match eol */
3012 ENTER(VALUE1); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
3015 /* rule 67 can match eol */
3017 ENTER(VALUE2); BUFFERSET(AX_surfxml_host_max_outgoing_rate);
3022 if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
3023 if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
3024 LEAVE; STag_surfxml_host();surfxml_pcdata_ix = 0; ENTER(S_surfxml_host);
3030 if (!AX_surfxml_host_id) FAIL("Required attribute `id' not set for `host' element.");
3031 if (!AX_surfxml_host_power) FAIL("Required attribute `power' not set for `host' element.");
3032 LEAVE; STag_surfxml_host(); surfxml_pcdata_ix = 0; ETag_surfxml_host(); popbuffer(); /* attribute */
3034 case S_surfxml_platform_description_2: case S_surfxml_platform_description_3: case S_surfxml_platform_description: SET(S_surfxml_platform_description_3); break;
3035 case ROOT_surfxml_host: SET(EPILOG); break;
3041 FAIL("Unexpected character `%c' in attribute list of host element.", surf_parse_text[0]);
3045 FAIL("Bad attribute `%s' in `host' element start tag.",surf_parse_text);
3047 case YY_STATE_EOF(AL_surfxml_host):
3048 FAIL("EOF in attribute list of `host' element.");
3052 /* rule 72 can match eol */
3056 ETag_surfxml_host();
3057 popbuffer(); /* attribute */
3059 case S_surfxml_platform_description_2: case S_surfxml_platform_description_3: case S_surfxml_platform_description: SET(S_surfxml_platform_description_3); break;
3060 case ROOT_surfxml_host: SET(EPILOG); break;
3065 /* rule 73 can match eol */
3067 FAIL("Unexpected end-tag `%s': `</host>' expected.",surf_parse_text);
3071 FAIL("Unexpected character `%c': `</host>' expected.",surf_parse_text[0]);
3073 case YY_STATE_EOF(S_surfxml_host):
3074 case YY_STATE_EOF(E_surfxml_host):
3075 case YY_STATE_EOF(S_surfxml_host_2):
3076 FAIL("Premature EOF: `</host>' expected.");
3080 /* rule 75 can match eol */
3083 AX_surfxml_prop_id = 0;
3084 AX_surfxml_prop_value = 0;
3085 ENTER(AL_surfxml_prop); pushbuffer(0);
3090 /* rule 76 can match eol */
3092 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_id);
3095 /* rule 77 can match eol */
3097 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_id);
3100 /* rule 78 can match eol */
3102 ENTER(VALUE1); BUFFERSET(AX_surfxml_prop_value);
3105 /* rule 79 can match eol */
3107 ENTER(VALUE2); BUFFERSET(AX_surfxml_prop_value);
3112 if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
3113 if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
3114 LEAVE; STag_surfxml_prop();surfxml_pcdata_ix = 0; ENTER(E_surfxml_prop);
3120 if (!AX_surfxml_prop_id) FAIL("Required attribute `id' not set for `prop' element.");
3121 if (!AX_surfxml_prop_value) FAIL("Required attribute `value' not set for `prop' element.");
3122 LEAVE; STag_surfxml_prop(); surfxml_pcdata_ix = 0; ETag_surfxml_prop(); popbuffer(); /* attribute */
3124 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3125 case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
3126 case ROOT_surfxml_prop: SET(EPILOG); break;
3127 case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
3133 FAIL("Unexpected character `%c' in attribute list of prop element.", surf_parse_text[0]);
3137 FAIL("Bad attribute `%s' in `prop' element start tag.",surf_parse_text);
3139 case YY_STATE_EOF(AL_surfxml_prop):
3140 FAIL("EOF in attribute list of `prop' element.");
3144 /* rule 84 can match eol */
3148 ETag_surfxml_prop();
3149 popbuffer(); /* attribute */
3151 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3152 case S_surfxml_host: case S_surfxml_host_1: case S_surfxml_host_2: SET(S_surfxml_host_2); break;
3153 case ROOT_surfxml_prop: SET(EPILOG); break;
3154 case S_surfxml_link_1: case S_surfxml_link_2: case S_surfxml_link: SET(S_surfxml_link_2); break;
3159 /* rule 85 can match eol */
3161 FAIL("Unexpected end-tag `%s': `</prop>' expected.",surf_parse_text);
3165 FAIL("Unexpected character `%c': `</prop>' expected.",surf_parse_text[0]);
3167 case YY_STATE_EOF(E_surfxml_prop):
3168 FAIL("Premature EOF: `</prop>' expected.");
3172 /* rule 87 can match eol */
3175 AX_surfxml_router_id = 0;
3176 ENTER(AL_surfxml_router); pushbuffer(0);
3181 /* rule 88 can match eol */
3183 ENTER(VALUE1); BUFFERSET(AX_surfxml_router_id);
3186 /* rule 89 can match eol */
3188 ENTER(VALUE2); BUFFERSET(AX_surfxml_router_id);
3193 if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
3194 LEAVE; STag_surfxml_router();surfxml_pcdata_ix = 0; ENTER(E_surfxml_router);
3200 if (!AX_surfxml_router_id) FAIL("Required attribute `id' not set for `router' element.");
3201 LEAVE; STag_surfxml_router(); surfxml_pcdata_ix = 0; ETag_surfxml_router(); popbuffer(); /* attribute */
3203 case S_surfxml_platform_description_2: case S_surfxml_platform_description_3: case S_surfxml_platform_description: SET(S_surfxml_platform_description_3); break;
3204 case ROOT_surfxml_router: SET(EPILOG); break;
3210 FAIL("Unexpected character `%c' in attribute list of router element.", surf_parse_text[0]);
3214 FAIL("Bad attribute `%s' in `router' element start tag.",surf_parse_text);
3216 case YY_STATE_EOF(AL_surfxml_router):
3217 FAIL("EOF in attribute list of `router' element.");
3221 /* rule 94 can match eol */
3225 ETag_surfxml_router();
3226 popbuffer(); /* attribute */
3228 case S_surfxml_platform_description_2: case S_surfxml_platform_description_3: case S_surfxml_platform_description: SET(S_surfxml_platform_description_3); break;
3229 case ROOT_surfxml_router: SET(EPILOG); break;
3234 /* rule 95 can match eol */
3236 FAIL("Unexpected end-tag `%s': `</router>' expected.",surf_parse_text);
3240 FAIL("Unexpected character `%c': `</router>' expected.",surf_parse_text[0]);
3242 case YY_STATE_EOF(E_surfxml_router):
3243 FAIL("Premature EOF: `</router>' expected.");
3247 /* rule 97 can match eol */
3250 AX_surfxml_link_id = 0;
3251 AX_surfxml_link_bandwidth = 0;
3252 AX_surfxml_link_bandwidth_file = 0;
3253 AX_surfxml_link_latency = 26;
3254 AX_surfxml_link_latency_file = 0;
3255 AX_surfxml_link_state = A_surfxml_link_state_ON;
3256 AX_surfxml_link_state_file = 0;
3257 AX_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
3258 ENTER(AL_surfxml_link); pushbuffer(0);
3263 /* rule 98 can match eol */
3265 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_id);
3268 /* rule 99 can match eol */
3270 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_id);
3273 /* rule 100 can match eol */
3275 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth);
3278 /* rule 101 can match eol */
3280 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth);
3283 /* rule 102 can match eol */
3285 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_bandwidth_file);
3288 /* rule 103 can match eol */
3290 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_bandwidth_file);
3293 /* rule 104 can match eol */
3295 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency);
3298 /* rule 105 can match eol */
3300 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency);
3303 /* rule 106 can match eol */
3305 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_latency_file);
3308 /* rule 107 can match eol */
3310 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_latency_file);
3313 /* rule 108 can match eol */
3315 /* rule 109 can match eol */
3317 A_surfxml_link_state = A_surfxml_link_state_ON;
3320 /* rule 110 can match eol */
3322 /* rule 111 can match eol */
3324 A_surfxml_link_state = A_surfxml_link_state_OFF;
3327 /* rule 112 can match eol */
3329 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_state_file);
3332 /* rule 113 can match eol */
3334 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_state_file);
3337 /* rule 114 can match eol */
3339 /* rule 115 can match eol */
3341 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_SHARED;
3344 /* rule 116 can match eol */
3346 /* rule 117 can match eol */
3348 A_surfxml_link_sharing_policy = A_surfxml_link_sharing_policy_FATPIPE;
3353 if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
3354 if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
3355 LEAVE; STag_surfxml_link();surfxml_pcdata_ix = 0; ENTER(S_surfxml_link);
3361 if (!AX_surfxml_link_id) FAIL("Required attribute `id' not set for `link' element.");
3362 if (!AX_surfxml_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `link' element.");
3363 LEAVE; STag_surfxml_link(); surfxml_pcdata_ix = 0; ETag_surfxml_link(); popbuffer(); /* attribute */
3365 case S_surfxml_platform_description_2: case S_surfxml_platform_description_3: case S_surfxml_platform_description: SET(S_surfxml_platform_description_3); break;
3366 case ROOT_surfxml_link: SET(EPILOG); break;
3372 FAIL("Unexpected character `%c' in attribute list of link element.", surf_parse_text[0]);
3376 FAIL("Bad attribute `%s' in `link' element start tag.",surf_parse_text);
3378 case YY_STATE_EOF(AL_surfxml_link):
3379 FAIL("EOF in attribute list of `link' element.");
3383 /* rule 122 can match eol */
3387 ETag_surfxml_link();
3388 popbuffer(); /* attribute */
3390 case S_surfxml_platform_description_2: case S_surfxml_platform_description_3: case S_surfxml_platform_description: SET(S_surfxml_platform_description_3); break;
3391 case ROOT_surfxml_link: SET(EPILOG); break;
3396 /* rule 123 can match eol */
3398 FAIL("Unexpected end-tag `%s': `</link>' expected.",surf_parse_text);
3402 FAIL("Unexpected character `%c': `</link>' expected.",surf_parse_text[0]);
3404 case YY_STATE_EOF(S_surfxml_link_2):
3405 case YY_STATE_EOF(E_surfxml_link):
3406 case YY_STATE_EOF(S_surfxml_link):
3407 FAIL("Premature EOF: `</link>' expected.");
3411 /* rule 125 can match eol */
3414 AX_surfxml_route_src = 0;
3415 AX_surfxml_route_dst = 0;
3416 AX_surfxml_route_impact_on_src = 30;
3417 AX_surfxml_route_impact_on_dst = 34;
3418 AX_surfxml_route_impact_on_src_with_other_recv = 38;
3419 AX_surfxml_route_impact_on_dst_with_other_send = 42;
3420 ENTER(AL_surfxml_route); pushbuffer(0);
3425 /* rule 126 can match eol */
3427 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_src);
3430 /* rule 127 can match eol */
3432 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_src);
3435 /* rule 128 can match eol */
3437 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_dst);
3440 /* rule 129 can match eol */
3442 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_dst);
3445 /* rule 130 can match eol */
3447 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src);
3450 /* rule 131 can match eol */
3452 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src);
3455 /* rule 132 can match eol */
3457 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst);
3460 /* rule 133 can match eol */
3462 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst);
3465 /* rule 134 can match eol */
3467 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
3470 /* rule 135 can match eol */
3472 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_src_with_other_recv);
3475 /* rule 136 can match eol */
3477 ENTER(VALUE1); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
3480 /* rule 137 can match eol */
3482 ENTER(VALUE2); BUFFERSET(AX_surfxml_route_impact_on_dst_with_other_send);
3487 if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3488 if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3489 LEAVE; STag_surfxml_route();surfxml_pcdata_ix = 0; ENTER(S_surfxml_route);
3495 if (!AX_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3496 if (!AX_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3497 LEAVE; STag_surfxml_route(); surfxml_pcdata_ix = 0; ETag_surfxml_route(); popbuffer(); /* attribute */
3499 case S_surfxml_platform_description_5: case S_surfxml_platform_description_4: case S_surfxml_platform_description_3: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_5); break;
3500 case ROOT_surfxml_route: SET(EPILOG); break;
3506 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
3510 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
3512 case YY_STATE_EOF(AL_surfxml_route):
3513 FAIL("EOF in attribute list of `route' element.");
3517 /* rule 142 can match eol */
3521 ETag_surfxml_route();
3522 popbuffer(); /* attribute */
3524 case S_surfxml_platform_description_5: case S_surfxml_platform_description_4: case S_surfxml_platform_description_3: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_5); break;
3525 case ROOT_surfxml_route: SET(EPILOG); break;
3530 /* rule 143 can match eol */
3532 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
3536 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
3538 case YY_STATE_EOF(S_surfxml_route):
3539 case YY_STATE_EOF(S_surfxml_route_2):
3540 case YY_STATE_EOF(E_surfxml_route):
3541 FAIL("Premature EOF: `</route>' expected.");
3545 /* rule 145 can match eol */
3548 AX_surfxml_link_c_ctn_id = 0;
3549 ENTER(AL_surfxml_link_c_ctn); pushbuffer(0);
3554 /* rule 146 can match eol */
3556 ENTER(VALUE1); BUFFERSET(AX_surfxml_link_c_ctn_id);
3559 /* rule 147 can match eol */
3561 ENTER(VALUE2); BUFFERSET(AX_surfxml_link_c_ctn_id);
3566 if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
3567 LEAVE; STag_surfxml_link_c_ctn();surfxml_pcdata_ix = 0; ENTER(E_surfxml_link_c_ctn);
3573 if (!AX_surfxml_link_c_ctn_id) FAIL("Required attribute `id' not set for `link:ctn' element.");
3574 LEAVE; STag_surfxml_link_c_ctn(); surfxml_pcdata_ix = 0; ETag_surfxml_link_c_ctn(); popbuffer(); /* attribute */
3576 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3577 case ROOT_surfxml_link_c_ctn: SET(EPILOG); break;
3583 FAIL("Unexpected character `%c' in attribute list of link:ctn element.", surf_parse_text[0]);
3587 FAIL("Bad attribute `%s' in `link:ctn' element start tag.",surf_parse_text);
3589 case YY_STATE_EOF(AL_surfxml_link_c_ctn):
3590 FAIL("EOF in attribute list of `link:ctn' element.");
3594 /* rule 152 can match eol */
3598 ETag_surfxml_link_c_ctn();
3599 popbuffer(); /* attribute */
3601 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3602 case ROOT_surfxml_link_c_ctn: SET(EPILOG); break;
3607 /* rule 153 can match eol */
3609 FAIL("Unexpected end-tag `%s': `</link:ctn>' expected.",surf_parse_text);
3613 FAIL("Unexpected character `%c': `</link:ctn>' expected.",surf_parse_text[0]);
3615 case YY_STATE_EOF(E_surfxml_link_c_ctn):
3616 FAIL("Premature EOF: `</link:ctn>' expected.");
3620 /* rule 155 can match eol */
3623 AX_surfxml_process_host = 0;
3624 AX_surfxml_process_function = 0;
3625 AX_surfxml_process_start_time = 46;
3626 AX_surfxml_process_kill_time = 51;
3627 ENTER(AL_surfxml_process); pushbuffer(0);
3632 /* rule 156 can match eol */
3634 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_host);
3637 /* rule 157 can match eol */
3639 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_host);
3642 /* rule 158 can match eol */
3644 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_function);
3647 /* rule 159 can match eol */
3649 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_function);
3652 /* rule 160 can match eol */
3654 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_start_time);
3657 /* rule 161 can match eol */
3659 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_start_time);
3662 /* rule 162 can match eol */
3664 ENTER(VALUE1); BUFFERSET(AX_surfxml_process_kill_time);
3667 /* rule 163 can match eol */
3669 ENTER(VALUE2); BUFFERSET(AX_surfxml_process_kill_time);
3674 if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3675 if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3676 LEAVE; STag_surfxml_process();surfxml_pcdata_ix = 0; ENTER(S_surfxml_process);
3682 if (!AX_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3683 if (!AX_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3684 LEAVE; STag_surfxml_process(); surfxml_pcdata_ix = 0; ETag_surfxml_process(); popbuffer(); /* attribute */
3686 case S_surfxml_platform_description_5: case S_surfxml_platform_description_4: case S_surfxml_platform_description_3: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_5); break;
3687 case ROOT_surfxml_process: SET(EPILOG); break;
3693 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
3697 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
3699 case YY_STATE_EOF(AL_surfxml_process):
3700 FAIL("EOF in attribute list of `process' element.");
3704 /* rule 168 can match eol */
3708 ETag_surfxml_process();
3709 popbuffer(); /* attribute */
3711 case S_surfxml_platform_description_5: case S_surfxml_platform_description_4: case S_surfxml_platform_description_3: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_5); break;
3712 case ROOT_surfxml_process: SET(EPILOG); break;
3717 /* rule 169 can match eol */
3719 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
3723 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
3725 case YY_STATE_EOF(S_surfxml_process):
3726 case YY_STATE_EOF(E_surfxml_process):
3727 case YY_STATE_EOF(S_surfxml_process_2):
3728 FAIL("Premature EOF: `</process>' expected.");
3732 /* rule 171 can match eol */
3735 AX_surfxml_argument_value = 0;
3736 ENTER(AL_surfxml_argument); pushbuffer(0);
3741 /* rule 172 can match eol */
3743 ENTER(VALUE1); BUFFERSET(AX_surfxml_argument_value);
3746 /* rule 173 can match eol */
3748 ENTER(VALUE2); BUFFERSET(AX_surfxml_argument_value);
3753 if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3754 LEAVE; STag_surfxml_argument();surfxml_pcdata_ix = 0; ENTER(E_surfxml_argument);
3760 if (!AX_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3761 LEAVE; STag_surfxml_argument(); surfxml_pcdata_ix = 0; ETag_surfxml_argument(); popbuffer(); /* attribute */
3763 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3764 case ROOT_surfxml_argument: SET(EPILOG); break;
3770 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
3774 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
3776 case YY_STATE_EOF(AL_surfxml_argument):
3777 FAIL("EOF in attribute list of `argument' element.");
3781 /* rule 178 can match eol */
3785 ETag_surfxml_argument();
3786 popbuffer(); /* attribute */
3788 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3789 case ROOT_surfxml_argument: SET(EPILOG); break;
3794 /* rule 179 can match eol */
3796 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
3800 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
3802 case YY_STATE_EOF(E_surfxml_argument):
3803 FAIL("Premature EOF: `</argument>' expected.");
3806 /* EPILOG: after the root element. */
3810 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
3812 case YY_STATE_EOF(EPILOG):
3816 /* CHARACTER DATA. */
3818 /* Non-defined standard entities... */
3839 /* Character entities. */
3842 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
3846 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
3850 /* rule 189 can match eol */
3852 /* rule 190 can match eol */
3854 /* rule 191 can match eol */
3856 /* rule 192 can match eol */
3867 FAIL("Unexpected `]""]>' in character data.");
3874 case YY_STATE_EOF(VALUE1):
3875 FAIL("EOF in literal (\"'\" expected).");
3882 case YY_STATE_EOF(VALUE2):
3883 FAIL("EOF in literal (`\"' expected).");
3887 /* rule 197 can match eol */
3889 BUFFERPUTC(surf_parse_text[0]);
3893 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
3900 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
3903 BUFFERPUTC(surf_parse_text[0]);
3905 case YY_STATE_EOF(CDATA):
3906 FAIL("EOF in CDATA section.");
3909 /* Impossible rules to avoid warnings from flex(1). */
3910 /* Ideally, this should be replaced by code in flexml.pl that
3911 generates just the states not covered by other rules. */
3914 /* rule 201 can match eol */
3916 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
3923 case YY_STATE_EOF(INITIAL):
3924 case YY_STATE_EOF(ROOT_surfxml_platform_description):
3925 case YY_STATE_EOF(S_surfxml_platform_description_2):
3926 case YY_STATE_EOF(S_surfxml_platform_description_4):
3927 case YY_STATE_EOF(ROOT_surfxml_include):
3928 case YY_STATE_EOF(ROOT_surfxml_host):
3929 case YY_STATE_EOF(S_surfxml_host_1):
3930 case YY_STATE_EOF(ROOT_surfxml_prop):
3931 case YY_STATE_EOF(ROOT_surfxml_router):
3932 case YY_STATE_EOF(ROOT_surfxml_link):
3933 case YY_STATE_EOF(S_surfxml_link_1):
3934 case YY_STATE_EOF(ROOT_surfxml_route):
3935 case YY_STATE_EOF(S_surfxml_route_1):
3936 case YY_STATE_EOF(ROOT_surfxml_link_c_ctn):
3937 case YY_STATE_EOF(ROOT_surfxml_process):
3938 case YY_STATE_EOF(S_surfxml_process_1):
3939 case YY_STATE_EOF(ROOT_surfxml_argument):
3940 case YY_STATE_EOF(IMPOSSIBLE):
3943 case YY_END_OF_BUFFER:
3945 /* Amount of text matched not including the EOB char. */
3946 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3948 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3949 *yy_cp = (yy_hold_char);
3950 YY_RESTORE_YY_MORE_OFFSET
3952 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3954 /* We're scanning a new file or input source. It's
3955 * possible that this happened because the user
3956 * just pointed surf_parse_in at a new source and called
3957 * surf_parse_lex(). If so, then we have to assure
3958 * consistency between YY_CURRENT_BUFFER and our
3959 * globals. Here is the right place to do so, because
3960 * this is the first action (other than possibly a
3961 * back-up) that will match for the new input source.
3963 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3964 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
3965 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3968 /* Note that here we test for yy_c_buf_p "<=" to the position
3969 * of the first EOB in the buffer, since yy_c_buf_p will
3970 * already have been incremented past the NUL character
3971 * (since all states make transitions on EOB to the
3972 * end-of-buffer state). Contrast this with the test
3975 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3976 { /* This was really a NUL. */
3977 yy_state_type yy_next_state;
3979 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3981 yy_current_state = yy_get_previous_state( );
3983 /* Okay, we're now positioned to make the NUL
3984 * transition. We couldn't have
3985 * yy_get_previous_state() go ahead and do it
3986 * for us because it doesn't know how to deal
3987 * with the possibility of jamming (and we don't
3988 * want to build jamming into it because then it
3989 * will run more slowly).
3992 yy_next_state = yy_try_NUL_trans( yy_current_state );
3994 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3996 if ( yy_next_state )
3998 /* Consume the NUL. */
3999 yy_cp = ++(yy_c_buf_p);
4000 yy_current_state = yy_next_state;
4006 yy_cp = (yy_c_buf_p);
4007 goto yy_find_action;
4011 else switch ( yy_get_next_buffer( ) )
4013 case EOB_ACT_END_OF_FILE:
4015 (yy_did_buffer_switch_on_eof) = 0;
4017 if ( surf_parse_wrap( ) )
4019 /* Note: because we've taken care in
4020 * yy_get_next_buffer() to have set up
4021 * surf_parse_text, we can now set up
4022 * yy_c_buf_p so that if some total
4023 * hoser (like flex itself) wants to
4024 * call the scanner after we return the
4025 * YY_NULL, it'll still work - another
4026 * YY_NULL will get returned.
4028 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
4030 yy_act = YY_STATE_EOF(YY_START);
4036 if ( ! (yy_did_buffer_switch_on_eof) )
4042 case EOB_ACT_CONTINUE_SCAN:
4044 (yytext_ptr) + yy_amount_of_matched_text;
4046 yy_current_state = yy_get_previous_state( );
4048 yy_cp = (yy_c_buf_p);
4049 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4052 case EOB_ACT_LAST_MATCH:
4054 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
4056 yy_current_state = yy_get_previous_state( );
4058 yy_cp = (yy_c_buf_p);
4059 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
4060 goto yy_find_action;
4067 "fatal flex scanner internal error--no action found" );
4068 } /* end of action switch */
4069 } /* end of scanning one token */
4070 } /* end of surf_parse_lex */
4072 /* yy_get_next_buffer - try to read in a new buffer
4074 * Returns a code representing an action:
4075 * EOB_ACT_LAST_MATCH -
4076 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
4077 * EOB_ACT_END_OF_FILE - end of file
4079 static int yy_get_next_buffer (void)
4081 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
4082 register char *source = (yytext_ptr);
4083 register int number_to_move, i;
4086 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
4088 "fatal flex scanner internal error--end of buffer missed" );
4090 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
4091 { /* Don't try to fill the buffer, so this is an EOF. */
4092 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
4094 /* We matched a single character, the EOB, so
4095 * treat this as a final EOF.
4097 return EOB_ACT_END_OF_FILE;
4102 /* We matched some text prior to the EOB, first
4105 return EOB_ACT_LAST_MATCH;
4109 /* Try to read more data. */
4111 /* First move last chars to start of buffer. */
4112 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
4114 for ( i = 0; i < number_to_move; ++i )
4115 *(dest++) = *(source++);
4117 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
4118 /* don't do the read, it's not guaranteed to return an EOF,
4121 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
4126 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
4128 while ( num_to_read <= 0 )
4129 { /* Not enough room in the buffer - grow it. */
4131 /* just a shorter name for the current buffer */
4132 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
4134 int yy_c_buf_p_offset =
4135 (int) ((yy_c_buf_p) - b->yy_ch_buf);
4137 if ( b->yy_is_our_buffer )
4139 int new_size = b->yy_buf_size * 2;
4141 if ( new_size <= 0 )
4142 b->yy_buf_size += b->yy_buf_size / 8;
4144 b->yy_buf_size *= 2;
4146 b->yy_ch_buf = (char *)
4147 /* Include room in for 2 EOB chars. */
4148 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
4151 /* Can't grow it, we don't own it. */
4154 if ( ! b->yy_ch_buf )
4156 "fatal error - scanner input buffer overflow" );
4158 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
4160 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
4165 if ( num_to_read > YY_READ_BUF_SIZE )
4166 num_to_read = YY_READ_BUF_SIZE;
4168 /* Read in more data. */
4169 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
4170 (yy_n_chars), (size_t) num_to_read );
4172 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4175 if ( (yy_n_chars) == 0 )
4177 if ( number_to_move == YY_MORE_ADJ )
4179 ret_val = EOB_ACT_END_OF_FILE;
4180 surf_parse_restart(surf_parse_in );
4185 ret_val = EOB_ACT_LAST_MATCH;
4186 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
4187 YY_BUFFER_EOF_PENDING;
4192 ret_val = EOB_ACT_CONTINUE_SCAN;
4194 (yy_n_chars) += number_to_move;
4195 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
4196 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
4198 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
4203 /* yy_get_previous_state - get the state just before the EOB char was reached */
4205 static yy_state_type yy_get_previous_state (void)
4207 register yy_state_type yy_current_state;
4208 register char *yy_cp;
4210 yy_current_state = (yy_start);
4212 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
4214 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
4215 if ( yy_accept[yy_current_state] )
4217 (yy_last_accepting_state) = yy_current_state;
4218 (yy_last_accepting_cpos) = yy_cp;
4220 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4222 yy_current_state = (int) yy_def[yy_current_state];
4223 if ( yy_current_state >= 1492 )
4224 yy_c = yy_meta[(unsigned int) yy_c];
4226 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4229 return yy_current_state;
4232 /* yy_try_NUL_trans - try to make a transition on the NUL character
4235 * next_state = yy_try_NUL_trans( current_state );
4237 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
4239 register int yy_is_jam;
4240 register char *yy_cp = (yy_c_buf_p);
4242 register YY_CHAR yy_c = 1;
4243 if ( yy_accept[yy_current_state] )
4245 (yy_last_accepting_state) = yy_current_state;
4246 (yy_last_accepting_cpos) = yy_cp;
4248 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
4250 yy_current_state = (int) yy_def[yy_current_state];
4251 if ( yy_current_state >= 1492 )
4252 yy_c = yy_meta[(unsigned int) yy_c];
4254 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
4255 yy_is_jam = (yy_current_state == 1491);
4257 return yy_is_jam ? 0 : yy_current_state;
4262 static int yyinput (void)
4264 static int input (void)
4270 *(yy_c_buf_p) = (yy_hold_char);
4272 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
4274 /* yy_c_buf_p now points to the character we want to return.
4275 * If this occurs *before* the EOB characters, then it's a
4276 * valid NUL; if not, then we've hit the end of the buffer.
4278 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
4279 /* This was really a NUL. */
4280 *(yy_c_buf_p) = '\0';
4283 { /* need more input */
4284 int offset = (yy_c_buf_p) - (yytext_ptr);
4287 switch ( yy_get_next_buffer( ) )
4289 case EOB_ACT_LAST_MATCH:
4290 /* This happens because yy_g_n_b()
4291 * sees that we've accumulated a
4292 * token and flags that we need to
4293 * try matching the token before
4294 * proceeding. But for input(),
4295 * there's no matching to consider.
4296 * So convert the EOB_ACT_LAST_MATCH
4297 * to EOB_ACT_END_OF_FILE.
4300 /* Reset buffer status. */
4301 surf_parse_restart(surf_parse_in );
4305 case EOB_ACT_END_OF_FILE:
4307 if ( surf_parse_wrap( ) )
4310 if ( ! (yy_did_buffer_switch_on_eof) )
4319 case EOB_ACT_CONTINUE_SCAN:
4320 (yy_c_buf_p) = (yytext_ptr) + offset;
4326 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
4327 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
4328 (yy_hold_char) = *++(yy_c_buf_p);
4332 surf_parse_lineno++;
4337 #endif /* ifndef YY_NO_INPUT */
4339 /** Immediately switch to a different input stream.
4340 * @param input_file A readable stream.
4342 * @note This function does not reset the start condition to @c INITIAL .
4344 void surf_parse_restart (FILE * input_file )
4347 if ( ! YY_CURRENT_BUFFER ){
4348 surf_parse_ensure_buffer_stack ();
4349 YY_CURRENT_BUFFER_LVALUE =
4350 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
4353 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
4354 surf_parse__load_buffer_state( );
4357 /** Switch to a different input buffer.
4358 * @param new_buffer The new input buffer.
4361 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
4364 /* TODO. We should be able to replace this entire function body
4366 * surf_parse_pop_buffer_state();
4367 * surf_parse_push_buffer_state(new_buffer);
4369 surf_parse_ensure_buffer_stack ();
4370 if ( YY_CURRENT_BUFFER == new_buffer )
4373 if ( YY_CURRENT_BUFFER )
4375 /* Flush out information for old buffer. */
4376 *(yy_c_buf_p) = (yy_hold_char);
4377 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4378 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4381 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4382 surf_parse__load_buffer_state( );
4384 /* We don't actually know whether we did this switch during
4385 * EOF (surf_parse_wrap()) processing, but the only time this flag
4386 * is looked at is after surf_parse_wrap() is called, so it's safe
4387 * to go ahead and always set it.
4389 (yy_did_buffer_switch_on_eof) = 1;
4392 static void surf_parse__load_buffer_state (void)
4394 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
4395 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
4396 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
4397 (yy_hold_char) = *(yy_c_buf_p);
4400 /** Allocate and initialize an input buffer state.
4401 * @param file A readable stream.
4402 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
4404 * @return the allocated buffer state.
4406 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
4410 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4412 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4414 b->yy_buf_size = size;
4416 /* yy_ch_buf has to be 2 characters longer than the size given because
4417 * we need to put in 2 end-of-buffer characters.
4419 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
4420 if ( ! b->yy_ch_buf )
4421 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
4423 b->yy_is_our_buffer = 1;
4425 surf_parse__init_buffer(b,file );
4430 /** Destroy the buffer.
4431 * @param b a buffer created with surf_parse__create_buffer()
4434 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
4440 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
4441 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
4443 if ( b->yy_is_our_buffer )
4444 surf_parse_free((void *) b->yy_ch_buf );
4446 surf_parse_free((void *) b );
4450 extern int isatty (int );
4451 #endif /* __cplusplus */
4453 /* Initializes or reinitializes a buffer.
4454 * This function is sometimes called more than once on the same buffer,
4455 * such as during a surf_parse_restart() or at EOF.
4457 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
4462 surf_parse__flush_buffer(b );
4464 b->yy_input_file = file;
4465 b->yy_fill_buffer = 1;
4467 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
4468 * called from surf_parse_restart() or through yy_get_next_buffer.
4469 * In that case, we don't want to reset the lineno or column.
4471 if (b != YY_CURRENT_BUFFER){
4472 b->yy_bs_lineno = 1;
4473 b->yy_bs_column = 0;
4476 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
4481 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
4482 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
4485 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
4492 /* We always need two end-of-buffer characters. The first causes
4493 * a transition to the end-of-buffer state. The second causes
4494 * a jam in that state.
4496 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4497 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4499 b->yy_buf_pos = &b->yy_ch_buf[0];
4502 b->yy_buffer_status = YY_BUFFER_NEW;
4504 if ( b == YY_CURRENT_BUFFER )
4505 surf_parse__load_buffer_state( );
4508 /** Pushes the new state onto the stack. The new state becomes
4509 * the current state. This function will allocate the stack
4511 * @param new_buffer The new state.
4514 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
4516 if (new_buffer == NULL)
4519 surf_parse_ensure_buffer_stack();
4521 /* This block is copied from surf_parse__switch_to_buffer. */
4522 if ( YY_CURRENT_BUFFER )
4524 /* Flush out information for old buffer. */
4525 *(yy_c_buf_p) = (yy_hold_char);
4526 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4527 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4530 /* Only push if top exists. Otherwise, replace top. */
4531 if (YY_CURRENT_BUFFER)
4532 (yy_buffer_stack_top)++;
4533 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4535 /* copied from surf_parse__switch_to_buffer. */
4536 surf_parse__load_buffer_state( );
4537 (yy_did_buffer_switch_on_eof) = 1;
4540 /** Removes and deletes the top of the stack, if present.
4541 * The next element becomes the new top.
4544 void surf_parse_pop_buffer_state (void)
4546 if (!YY_CURRENT_BUFFER)
4549 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4550 YY_CURRENT_BUFFER_LVALUE = NULL;
4551 if ((yy_buffer_stack_top) > 0)
4552 --(yy_buffer_stack_top);
4554 if (YY_CURRENT_BUFFER) {
4555 surf_parse__load_buffer_state( );
4556 (yy_did_buffer_switch_on_eof) = 1;
4560 /* Allocates the stack if it does not exist.
4561 * Guarantees space for at least one push.
4563 static void surf_parse_ensure_buffer_stack (void)
4567 if (!(yy_buffer_stack)) {
4569 /* First allocation is just for 2 elements, since we don't know if this
4570 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4571 * immediate realloc on the next call.
4574 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
4575 (num_to_alloc * sizeof(struct yy_buffer_state*)
4578 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4580 (yy_buffer_stack_max) = num_to_alloc;
4581 (yy_buffer_stack_top) = 0;
4585 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4587 /* Increase the buffer to prepare for a possible push. */
4588 int grow_size = 8 /* arbitrary grow size */;
4590 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4591 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
4593 num_to_alloc * sizeof(struct yy_buffer_state*)
4596 /* zero only the new slots.*/
4597 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4598 (yy_buffer_stack_max) = num_to_alloc;
4602 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4603 * @param base the character buffer
4604 * @param size the size in bytes of the character buffer
4606 * @return the newly allocated buffer state object.
4608 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
4613 base[size-2] != YY_END_OF_BUFFER_CHAR ||
4614 base[size-1] != YY_END_OF_BUFFER_CHAR )
4615 /* They forgot to leave room for the EOB's. */
4618 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4620 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
4622 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4623 b->yy_buf_pos = b->yy_ch_buf = base;
4624 b->yy_is_our_buffer = 0;
4625 b->yy_input_file = 0;
4626 b->yy_n_chars = b->yy_buf_size;
4627 b->yy_is_interactive = 0;
4629 b->yy_fill_buffer = 0;
4630 b->yy_buffer_status = YY_BUFFER_NEW;
4632 surf_parse__switch_to_buffer(b );
4637 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
4638 * scan from a @e copy of @a str.
4639 * @param yystr a NUL-terminated string to scan
4641 * @return the newly allocated buffer state object.
4642 * @note If you want to scan bytes that may contain NUL values, then use
4643 * surf_parse__scan_bytes() instead.
4645 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yystr )
4648 return surf_parse__scan_bytes(yystr,strlen(yystr) );
4651 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
4652 * scan from a @e copy of @a bytes.
4653 * @param bytes the byte buffer to scan
4654 * @param len the number of bytes in the buffer pointed to by @a bytes.
4656 * @return the newly allocated buffer state object.
4658 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * yybytes, int _yybytes_len )
4665 /* Get memory for full buffer, including space for trailing EOB's. */
4666 n = _yybytes_len + 2;
4667 buf = (char *) surf_parse_alloc(n );
4669 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
4671 for ( i = 0; i < _yybytes_len; ++i )
4672 buf[i] = yybytes[i];
4674 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
4676 b = surf_parse__scan_buffer(buf,n );
4678 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
4680 /* It's okay to grow etc. this buffer, and we should throw it
4681 * away when we're done.
4683 b->yy_is_our_buffer = 1;
4688 static void yy_push_state (int new_state )
4690 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4694 (yy_start_stack_depth) += YY_START_STACK_INCR;
4695 new_size = (yy_start_stack_depth) * sizeof( int );
4697 if ( ! (yy_start_stack) )
4698 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
4701 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
4703 if ( ! (yy_start_stack) )
4705 "out of memory expanding start-condition stack" );
4708 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4713 static void yy_pop_state (void)
4715 if ( --(yy_start_stack_ptr) < 0 )
4716 YY_FATAL_ERROR( "start-condition stack underflow" );
4718 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4721 #ifndef YY_EXIT_FAILURE
4722 #define YY_EXIT_FAILURE 2
4725 static void yy_fatal_error (yyconst char* msg )
4727 (void) fprintf( stderr, "%s\n", msg );
4728 exit( YY_EXIT_FAILURE );
4731 /* Redefine yyless() so it works in section 3 code. */
4737 /* Undo effects of setting up surf_parse_text. */ \
4738 int yyless_macro_arg = (n); \
4739 YY_LESS_LINENO(yyless_macro_arg);\
4740 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
4741 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
4742 (yy_hold_char) = *(yy_c_buf_p); \
4743 *(yy_c_buf_p) = '\0'; \
4744 surf_parse_leng = yyless_macro_arg; \
4748 /* Accessor methods (get/set functions) to struct members. */
4750 /** Get the current line number.
4753 int surf_parse_get_lineno (void)
4756 return surf_parse_lineno;
4759 /** Get the input stream.
4762 FILE *surf_parse_get_in (void)
4764 return surf_parse_in;
4767 /** Get the output stream.
4770 FILE *surf_parse_get_out (void)
4772 return surf_parse_out;
4775 /** Get the length of the current token.
4778 int surf_parse_get_leng (void)
4780 return surf_parse_leng;
4783 /** Get the current token.
4787 char *surf_parse_get_text (void)
4789 return surf_parse_text;
4792 /** Set the current line number.
4793 * @param line_number
4796 void surf_parse_set_lineno (int line_number )
4799 surf_parse_lineno = line_number;
4802 /** Set the input stream. This does not discard the current
4804 * @param in_str A readable stream.
4806 * @see surf_parse__switch_to_buffer
4808 void surf_parse_set_in (FILE * in_str )
4810 surf_parse_in = in_str ;
4813 void surf_parse_set_out (FILE * out_str )
4815 surf_parse_out = out_str ;
4818 int surf_parse_get_debug (void)
4820 return surf_parse__flex_debug;
4823 void surf_parse_set_debug (int bdebug )
4825 surf_parse__flex_debug = bdebug ;
4828 static int yy_init_globals (void)
4830 /* Initialization is the same as for the non-reentrant scanner.
4831 * This function is called from surf_parse_lex_destroy(), so don't allocate here.
4834 /* We do not touch surf_parse_lineno unless the option is enabled. */
4835 surf_parse_lineno = 1;
4837 (yy_buffer_stack) = 0;
4838 (yy_buffer_stack_top) = 0;
4839 (yy_buffer_stack_max) = 0;
4840 (yy_c_buf_p) = (char *) 0;
4844 (yy_start_stack_ptr) = 0;
4845 (yy_start_stack_depth) = 0;
4846 (yy_start_stack) = NULL;
4848 /* Defined in main.c */
4850 surf_parse_in = stdin;
4851 surf_parse_out = stdout;
4853 surf_parse_in = (FILE *) 0;
4854 surf_parse_out = (FILE *) 0;
4857 /* For future reference: Set errno on error, since we are called by
4858 * surf_parse_lex_init()
4863 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
4864 int surf_parse_lex_destroy (void)
4867 /* Pop the buffer stack, destroying each element. */
4868 while(YY_CURRENT_BUFFER){
4869 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4870 YY_CURRENT_BUFFER_LVALUE = NULL;
4871 surf_parse_pop_buffer_state();
4874 /* Destroy the stack itself. */
4875 surf_parse_free((yy_buffer_stack) );
4876 (yy_buffer_stack) = NULL;
4878 /* Destroy the start condition stack. */
4879 surf_parse_free((yy_start_stack) );
4880 (yy_start_stack) = NULL;
4882 /* Reset the globals. This is important in a non-reentrant scanner so the next time
4883 * surf_parse_lex() is called, initialization will occur. */
4890 * Internal utility routines.
4894 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4897 for ( i = 0; i < n; ++i )
4902 #ifdef YY_NEED_STRLEN
4903 static int yy_flex_strlen (yyconst char * s )
4906 for ( n = 0; s[n]; ++n )
4913 void *surf_parse_alloc (yy_size_t size )
4915 return (void *) malloc( size );
4918 void *surf_parse_realloc (void * ptr, yy_size_t size )
4920 /* The cast to (char *) in the following accommodates both
4921 * implementations that use char* generic pointers, and those
4922 * that use void* generic pointers. It works with the latter
4923 * because both ANSI C and C++ allow castless assignment from
4924 * any pointer type to void*, and deal with argument conversions
4925 * as though doing an assignment.
4927 return (void *) realloc( (char *) ptr, size );
4930 void surf_parse_free (void * ptr )
4932 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
4935 #define YYTABLES_NAME "yytables"
4937 /* Element context stack lookup. */
4938 int surfxml_element_context(int i)
4940 return (0<i && i<yy_start_stack_depth
4941 ? yy_start_stack[yy_start_stack_ptr - i]
4946 void print_yy_stack(char* fmt, ...)
4948 int i = 0; va_list ap; va_start(ap, fmt);
4949 vfprintf(stderr, fmt, ap);
4950 if (surfxml_statenames) {
4951 for (i=1; i<yy_start_stack_ptr; i++) {
4952 fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
4954 fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
4959 void print_surfxml_bufferstack()
4962 fputs("Buffer: ", stderr);
4963 for (i = 0; i < blimit; i++) {
4964 if ( surfxml_bufferstack[i] == '\377' ) break;
4965 putc(surfxml_bufferstack[i], stderr);
4970 static void debug_enter(int state, const char* statename) {
4971 yy_push_state(state);
4972 if (surf_parse__flex_debug) {
4973 print_yy_stack("--ENTER(%s) : ",statename);
4974 print_surfxml_bufferstack();
4978 static void debug_leave(void) {
4979 if (surf_parse__flex_debug) {
4980 print_yy_stack("--LEAVE : ");
4981 print_surfxml_bufferstack();
4986 static void debug_set(int state, const char* statename) {
4988 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
4992 static void cleanup(void)
4994 if (surfxml_statenames) {
4995 free(surfxml_statenames);
4996 surfxml_statenames = NULL;
4998 free(surfxml_bufferstack);
4999 surfxml_bufferstack = NULL;
5005 static int fail(const char* fmt, ...)
5007 int chars_left, used;
5008 va_list ap; va_start(ap, fmt);
5009 #ifdef FLEXML_yylineno
5010 used = sprintf(flexml_err_msg,
5011 "Invalid XML (XML input line %d, state %d): ",
5012 surf_parse_lineno, YY_START);
5014 used = sprintf(flexml_err_msg,
5015 "Invalid XML (state %d): ",
5018 chars_left = flexml_max_err_msg_size - used - 1;
5019 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
5022 #ifndef FLEXML_quiet_parser
5023 /* print directly to sdterr */
5024 fprintf(stderr, "%s\n", flexml_err_msg);
5025 flexml_err_msg[0] = '\0';