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 31
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 defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
35 typedef int8_t flex_int8_t;
36 typedef uint8_t flex_uint8_t;
37 typedef int16_t flex_int16_t;
38 typedef uint16_t flex_uint16_t;
39 typedef int32_t flex_int32_t;
40 typedef uint32_t flex_uint32_t;
42 typedef signed char flex_int8_t;
43 typedef short int flex_int16_t;
44 typedef int flex_int32_t;
45 typedef unsigned char flex_uint8_t;
46 typedef unsigned short int flex_uint16_t;
47 typedef unsigned int flex_uint32_t;
50 /* Limits of integral types. */
52 #define INT8_MIN (-128)
55 #define INT16_MIN (-32767-1)
58 #define INT32_MIN (-2147483647-1)
61 #define INT8_MAX (127)
64 #define INT16_MAX (32767)
67 #define INT32_MAX (2147483647)
70 #define UINT8_MAX (255U)
73 #define UINT16_MAX (65535U)
76 #define UINT32_MAX (4294967295U)
79 #endif /* ! FLEXINT_H */
83 /* The "const" storage-class-modifier is valid. */
86 #else /* ! __cplusplus */
93 #endif /* ! __cplusplus */
101 /* Returned upon end-of-file. */
104 /* Promotes a possibly negative, possibly signed char to an unsigned
105 * integer for use as an array index. If the signed char is negative,
106 * we want to instead treat it as an 8-bit unsigned char, hence the
109 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
111 /* Enter a start condition. This macro really ought to take a parameter,
112 * but we do it the disgusting crufty way forced on us by the ()-less
113 * definition of BEGIN.
115 #define BEGIN (yy_start) = 1 + 2 *
117 /* Translate the current start state into a value that can be later handed
118 * to BEGIN to return to the state. The YYSTATE alias is for lex
121 #define YY_START (((yy_start) - 1) / 2)
122 #define YYSTATE YY_START
124 /* Action number for EOF rule of a given start state. */
125 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
127 /* Special action meaning "start processing a new file". */
128 #define YY_NEW_FILE surf_parse_restart(surf_parse_in )
130 #define YY_END_OF_BUFFER_CHAR 0
132 /* Size of default input buffer. */
134 #define YY_BUF_SIZE 16384
137 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
138 #define YY_TYPEDEF_YY_BUFFER_STATE
139 typedef struct yy_buffer_state *YY_BUFFER_STATE;
142 extern int surf_parse_leng;
144 extern FILE *surf_parse_in, *surf_parse_out;
146 #define EOB_ACT_CONTINUE_SCAN 0
147 #define EOB_ACT_END_OF_FILE 1
148 #define EOB_ACT_LAST_MATCH 2
150 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
151 * access to the local variable yy_act. Since yyless() is a macro, it would break
152 * existing scanners that call yyless() from OUTSIDE surf_parse_lex.
153 * One obvious solution it to make yy_act a global. I tried that, and saw
154 * a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
155 * normally declared as a register variable-- so it is not worth it.
157 #define YY_LESS_LINENO(n) \
160 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
161 if ( surf_parse_text[yyl] == '\n' )\
162 --surf_parse_lineno;\
165 /* Return all but the first "n" matched characters back to the input stream. */
169 /* Undo effects of setting up surf_parse_text. */ \
170 int yyless_macro_arg = (n); \
171 YY_LESS_LINENO(yyless_macro_arg);\
172 *yy_cp = (yy_hold_char); \
173 YY_RESTORE_YY_MORE_OFFSET \
174 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
175 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
179 #define unput(c) yyunput( c, (yytext_ptr) )
181 /* The following is because we cannot portably get our hands on size_t
182 * (without autoconf's help, which isn't available because we want
183 * flex-generated scanners to compile on their own).
186 #ifndef YY_TYPEDEF_YY_SIZE_T
187 #define YY_TYPEDEF_YY_SIZE_T
188 typedef unsigned int yy_size_t;
191 #ifndef YY_STRUCT_YY_BUFFER_STATE
192 #define YY_STRUCT_YY_BUFFER_STATE
193 struct yy_buffer_state
197 char *yy_ch_buf; /* input buffer */
198 char *yy_buf_pos; /* current position in input buffer */
200 /* Size of input buffer in bytes, not including room for EOB
203 yy_size_t yy_buf_size;
205 /* Number of characters read into yy_ch_buf, not including EOB
210 /* Whether we "own" the buffer - i.e., we know we created it,
211 * and can realloc() it to grow it, and should free() it to
214 int yy_is_our_buffer;
216 /* Whether this is an "interactive" input source; if so, and
217 * if we're using stdio for input, then we want to use getc()
218 * instead of fread(), to make sure we stop fetching input after
221 int yy_is_interactive;
223 /* Whether we're considered to be at the beginning of a line.
224 * If so, '^' rules will be active on the next match, otherwise
229 int yy_bs_lineno; /**< The line count. */
230 int yy_bs_column; /**< The column count. */
232 /* Whether to try to fill the input buffer when we reach the
237 int yy_buffer_status;
239 #define YY_BUFFER_NEW 0
240 #define YY_BUFFER_NORMAL 1
241 /* When an EOF's been seen but there's still some text to process
242 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
243 * shouldn't try reading from the input source any more. We might
244 * still have a bunch of tokens to match, though, because of
245 * possible backing-up.
247 * When we actually see the EOF, we change the status to "new"
248 * (via surf_parse_restart()), so that the user can continue scanning by
249 * just pointing surf_parse_in at a new input file.
251 #define YY_BUFFER_EOF_PENDING 2
254 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
256 /* Stack of input buffers. */
257 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
258 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
259 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
261 /* We provide macros for accessing buffer states in case in the
262 * future we want to put the buffer states in a more general
265 * Returns the top of the stack, or NULL.
267 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
268 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
271 /* Same as previous macro, but useful when we know that the buffer stack is not
272 * NULL or when we need an lvalue. For internal use only.
274 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
276 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
277 static char yy_hold_char;
278 static int yy_n_chars; /* number of characters read into yy_ch_buf */
281 /* Points to current character in buffer. */
282 static char *yy_c_buf_p = (char *) 0;
283 static int yy_init = 1; /* whether we need to initialize */
284 static int yy_start = 0; /* start state number */
286 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
287 * instead of setting up a fresh surf_parse_in. A bit of a hack ...
289 static int yy_did_buffer_switch_on_eof;
291 void surf_parse_restart (FILE *input_file );
292 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer );
293 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size );
294 void surf_parse__delete_buffer (YY_BUFFER_STATE b );
295 void surf_parse__flush_buffer (YY_BUFFER_STATE b );
296 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer );
297 void surf_parse_pop_buffer_state (void );
299 static void surf_parse_ensure_buffer_stack (void );
300 static void surf_parse__load_buffer_state (void );
301 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file );
303 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
305 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size );
306 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str );
307 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len );
309 void *surf_parse_alloc (yy_size_t );
310 void *surf_parse_realloc (void *,yy_size_t );
311 void surf_parse_free (void * );
313 #define yy_new_buffer surf_parse__create_buffer
315 #define yy_set_interactive(is_interactive) \
317 if ( ! YY_CURRENT_BUFFER ){ \
318 surf_parse_ensure_buffer_stack (); \
319 YY_CURRENT_BUFFER_LVALUE = \
320 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
322 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
325 #define yy_set_bol(at_bol) \
327 if ( ! YY_CURRENT_BUFFER ){\
328 surf_parse_ensure_buffer_stack (); \
329 YY_CURRENT_BUFFER_LVALUE = \
330 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
332 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
335 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
337 /* Begin user sect3 */
339 #define surf_parse_wrap() 1
340 #define YY_SKIP_YYWRAP
342 typedef unsigned char YY_CHAR;
344 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
346 typedef int yy_state_type;
348 extern int surf_parse_lineno;
350 int surf_parse_lineno = 1;
352 extern char *surf_parse_text;
353 #define yytext_ptr surf_parse_text
355 static yy_state_type yy_get_previous_state (void );
356 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
357 static int yy_get_next_buffer (void );
358 static void yy_fatal_error (yyconst char msg[] );
360 /* Done after the current pattern has been matched and before the
361 * corresponding action - sets up surf_parse_text.
363 #define YY_DO_BEFORE_ACTION \
364 (yytext_ptr) = yy_bp; \
365 surf_parse_leng = (size_t) (yy_cp - yy_bp); \
366 (yy_hold_char) = *yy_cp; \
368 (yy_c_buf_p) = yy_cp;
370 #define YY_NUM_RULES 178
371 #define YY_END_OF_BUFFER 179
372 /* This struct is not used in this scanner,
373 but its presence is necessary. */
376 flex_int32_t yy_verify;
379 static yyconst flex_int16_t yy_accept[1345] =
381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
383 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
390 0, 0, 179, 177, 22, 10, 10, 22, 22, 157,
392 10, 157, 5, 6, 5, 8, 9, 8, 173, 165,
393 166, 174, 171, 174, 172, 176, 165, 166, 176, 177,
394 28, 10, 28, 28, 28, 26, 28, 32, 10, 32,
395 177, 32, 177, 38, 10, 38, 38, 38, 36, 38,
396 42, 10, 42, 42, 177, 68, 10, 68, 68, 68,
397 66, 68, 68, 68, 68, 68, 68, 72, 10, 72,
398 177, 96, 10, 96, 96, 96, 94, 96, 96, 96,
399 96, 100, 10, 100, 177, 116, 10, 116, 116, 116,
400 114, 116, 116, 116, 120, 10, 120, 177, 120, 126,
401 10, 126, 126, 126, 124, 126, 130, 10, 130, 177,
403 142, 10, 142, 142, 142, 140, 142, 142, 142, 142,
404 146, 10, 146, 177, 146, 152, 10, 152, 152, 152,
405 150, 152, 156, 10, 156, 174, 173, 10, 0, 2,
406 2, 0, 4, 7, 168, 167, 0, 0, 0, 0,
407 0, 0, 0, 27, 29, 29, 0, 0, 0, 0,
408 0, 0, 37, 39, 39, 0, 67, 69, 69, 69,
409 69, 69, 69, 69, 0, 95, 97, 97, 97, 97,
410 97, 97, 0, 115, 117, 117, 117, 117, 0, 0,
411 125, 127, 127, 0, 141, 143, 143, 143, 143, 143,
412 0, 0, 151, 153, 153, 0, 0, 0, 0, 0,
414 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
415 175, 0, 29, 0, 0, 0, 0, 0, 0, 0,
416 39, 0, 0, 69, 69, 69, 69, 69, 69, 0,
417 0, 97, 97, 97, 97, 97, 0, 0, 117, 117,
418 117, 0, 0, 0, 127, 0, 0, 143, 143, 143,
419 143, 0, 0, 0, 153, 0, 0, 0, 170, 0,
420 21, 1, 0, 0, 163, 0, 0, 0, 160, 159,
421 0, 0, 29, 0, 0, 31, 0, 43, 0, 0,
422 0, 0, 39, 0, 0, 41, 0, 69, 69, 69,
423 69, 69, 69, 0, 0, 71, 0, 97, 97, 97,
425 97, 97, 0, 0, 99, 0, 0, 0, 117, 0,
426 0, 0, 0, 119, 0, 0, 127, 0, 0, 129,
427 0, 143, 143, 143, 143, 0, 0, 145, 0, 0,
428 153, 0, 0, 155, 0, 0, 0, 0, 164, 158,
429 0, 0, 0, 29, 0, 43, 0, 0, 0, 0,
430 0, 0, 0, 69, 69, 69, 0, 0, 69, 69,
431 0, 97, 97, 0, 0, 97, 97, 0, 0, 105,
432 104, 117, 0, 103, 102, 0, 0, 0, 0, 0,
433 143, 0, 0, 143, 143, 0, 0, 153, 0, 0,
434 0, 0, 0, 12, 0, 161, 162, 0, 29, 0,
436 0, 0, 0, 101, 0, 35, 34, 0, 69, 69,
437 69, 0, 45, 44, 0, 0, 0, 0, 69, 0,
438 70, 97, 97, 0, 75, 74, 97, 0, 0, 97,
439 0, 117, 0, 0, 0, 123, 122, 0, 143, 0,
440 133, 132, 143, 143, 0, 0, 0, 0, 0, 0,
441 0, 0, 0, 11, 0, 29, 0, 0, 0, 0,
442 101, 0, 69, 69, 69, 0, 47, 46, 0, 0,
443 0, 69, 97, 97, 97, 0, 0, 0, 97, 0,
444 117, 0, 0, 0, 143, 143, 143, 0, 0, 0,
445 149, 148, 0, 0, 0, 0, 0, 0, 0, 0,
447 0, 33, 0, 131, 0, 69, 69, 69, 0, 0,
448 69, 97, 0, 0, 97, 97, 0, 0, 97, 0,
449 117, 0, 118, 0, 0, 143, 143, 143, 0, 0,
450 0, 0, 0, 0, 0, 0, 0, 25, 24, 0,
451 33, 0, 131, 0, 69, 69, 69, 0, 0, 0,
452 0, 69, 97, 0, 81, 80, 97, 97, 0, 0,
453 0, 0, 97, 0, 117, 0, 0, 0, 0, 143,
454 143, 0, 147, 0, 169, 0, 0, 0, 0, 0,
455 0, 0, 40, 69, 69, 69, 0, 53, 0, 52,
456 69, 0, 0, 97, 97, 97, 0, 85, 0, 84,
458 97, 0, 117, 0, 0, 0, 135, 134, 0, 0,
459 143, 0, 144, 147, 0, 0, 0, 0, 0, 0,
460 0, 0, 0, 0, 0, 0, 69, 69, 69, 55,
461 54, 0, 0, 0, 77, 76, 97, 97, 97, 87,
462 86, 0, 0, 0, 117, 117, 0, 0, 0, 139,
463 138, 0, 0, 0, 154, 0, 0, 0, 0, 0,
464 0, 0, 0, 0, 0, 0, 0, 69, 69, 69,
465 0, 57, 56, 97, 97, 97, 0, 89, 88, 0,
466 117, 117, 0, 0, 0, 137, 136, 0, 0, 0,
467 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
469 0, 69, 69, 69, 97, 0, 0, 97, 0, 117,
470 117, 0, 0, 0, 0, 0, 0, 0, 0, 0,
471 0, 0, 0, 0, 0, 73, 0, 49, 48, 69,
472 69, 69, 69, 97, 0, 83, 82, 97, 0, 0,
473 0, 117, 0, 0, 117, 121, 0, 0, 0, 0,
474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
475 0, 69, 69, 69, 69, 0, 0, 0, 0, 0,
476 98, 0, 109, 108, 117, 0, 107, 106, 117, 121,
477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
478 0, 0, 0, 0, 0, 0, 69, 69, 69, 69,
480 0, 79, 78, 0, 0, 0, 117, 117, 0, 128,
481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
482 12, 0, 12, 0, 0, 0, 69, 69, 69, 69,
483 0, 0, 0, 0, 117, 117, 0, 0, 0, 0,
484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
485 0, 0, 0, 0, 0, 0, 69, 0, 0, 0,
486 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
487 0, 0, 0, 0, 0, 0, 0, 51, 50, 0,
488 61, 60, 0, 59, 58, 69, 0, 65, 64, 0,
489 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
491 0, 0, 0, 11, 0, 0, 69, 0, 0, 0,
492 0, 117, 117, 0, 0, 0, 0, 0, 0, 0,
493 0, 23, 0, 69, 0, 0, 0, 0, 117, 117,
494 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,
495 0, 69, 0, 0, 0, 0, 117, 117, 0, 0,
496 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
497 0, 0, 91, 0, 90, 117, 117, 0, 0, 0,
498 0, 0, 0, 0, 0, 0, 0, 0, 63, 62,
499 93, 92, 117, 117, 0, 0, 0, 0, 0, 0,
500 0, 0, 0, 0, 117, 117, 0, 0, 0, 0,
502 0, 0, 0, 0, 0, 0, 0, 0, 117, 117,
503 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
504 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
505 0, 0, 0, 0, 0, 0, 0, 0, 117, 117,
506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
507 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
510 0, 0, 0, 0, 0, 0, 0, 113, 112, 0,
511 111, 110, 0, 0, 0, 0, 0, 0, 0, 0,
513 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
516 0, 0, 0, 0, 0, 0, 0, 0, 0, 15,
517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
520 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
521 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
522 0, 0, 0, 20, 0, 0, 0, 13, 0, 0,
524 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
525 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
526 0, 0, 19, 0, 0, 0, 0, 0, 0, 14,
527 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
531 static yyconst flex_int32_t yy_ec[256] =
533 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
534 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
535 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
536 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
537 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
538 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
539 17, 18, 19, 1, 20, 21, 22, 23, 24, 25,
540 14, 26, 27, 14, 14, 14, 28, 29, 30, 31,
541 14, 32, 33, 34, 14, 14, 14, 14, 35, 14,
542 36, 1, 37, 1, 38, 1, 39, 40, 41, 42,
544 43, 44, 45, 46, 47, 14, 48, 49, 50, 51,
545 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
546 62, 14, 1, 1, 1, 1, 1, 1, 1, 1,
547 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
548 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
549 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
550 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
551 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
552 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
553 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
555 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
556 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
557 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
558 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
559 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
563 static yyconst flex_int32_t yy_meta[63] =
565 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
566 3, 1, 4, 5, 1, 1, 1, 6, 1, 7,
567 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
568 5, 5, 5, 5, 5, 1, 1, 5, 7, 7,
569 7, 7, 7, 7, 5, 5, 5, 5, 5, 5,
570 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
574 static yyconst flex_int16_t yy_base[1401] =
576 0, 0, 0, 3, 6, 9, 24, 27, 11, 14,
577 15, 17, 29, 38, 45, 52, 59, 61, 67, 70,
578 98, 157, 73, 76, 116, 120, 123, 126, 175, 179,
579 182, 185, 216, 260, 234, 238, 241, 278, 282, 285,
580 289, 304, 307, 310, 326, 0, 387, 390, 393, 396,
581 412, 468, 430, 434, 437, 440, 524, 580, 486, 490,
582 493, 496, 542, 546, 549, 552, 598, 602, 636, 687,
583 605, 608, 654, 658, 738, 794, 661, 664, 705, 709,
584 712, 715, 756, 760, 763, 767, 850, 909, 812, 816,
585 833, 868, 3674, 3675, 3675, 91, 141, 47, 62, 3675,
587 144, 132, 3675, 3675, 3663, 3675, 3675, 3654, 3675, 3667,
588 3667, 836, 3675, 3675, 3675, 3675, 3665, 3665, 3630, 194,
589 3675, 150, 3648, 0, 136, 3675, 3622, 3675, 200, 888,
590 889, 195, 192, 3675, 206, 3646, 0, 187, 3675, 3616,
591 3675, 313, 942, 446, 803, 3675, 511, 3644, 0, 440,
592 3675, 3602, 3609, 3620, 3619, 3605, 3599, 3675, 518, 558,
593 717, 3675, 570, 3637, 0, 559, 3675, 3615, 3614, 3613,
594 92, 3675, 626, 614, 768, 3675, 679, 3633, 0, 615,
595 3675, 3594, 3599, 3593, 3675, 682, 877, 772, 715, 3675,
596 786, 3629, 0, 773, 3675, 3607, 3675, 822, 883, 878,
598 3675, 831, 3627, 0, 859, 3675, 3586, 3591, 3595, 3584,
599 3675, 843, 943, 918, 887, 3675, 947, 3622, 0, 872,
600 3675, 3600, 3675, 956, 951, 3633, 3600, 962, 34, 3575,
601 3675, 3625, 3616, 3675, 3675, 3675, 26, 32, 3576, 3575,
602 3573, 3612, 3580, 3675, 0, 3573, 3574, 3573, 3574, 3581,
603 3568, 3570, 3675, 0, 3572, 3573, 3675, 0, 3580, 3561,
604 3556, 3566, 3555, 3575, 3572, 3675, 0, 3561, 3554, 3560,
605 3570, 3569, 3556, 3675, 0, 3549, 3552, 3563, 3548, 3550,
606 3675, 0, 3551, 3545, 3675, 0, 3548, 3542, 3548, 3557,
607 3542, 3539, 3675, 0, 3544, 3553, 3555, 3572, 3571, 3578,
609 5, 3537, 3675, 75, 0, 3533, 3533, 3569, 3568, 3530,
610 3675, 3542, 3524, 969, 972, 3521, 3537, 3520, 3524, 3517,
611 3531, 976, 982, 3526, 3529, 3533, 3527, 3526, 3511, 999,
612 1002, 3525, 3523, 3522, 3509, 3506, 1005, 1008, 1011, 3523,
613 1027, 1032, 1035, 3503, 3517, 1038, 1043, 3518, 3501, 3508,
614 3501, 1055, 1060, 3510, 3496, 1063, 1066, 3531, 3675, 3534,
615 3675, 3675, 233, 3502, 3675, 3535, 3534, 3492, 3675, 3675,
616 3490, 3489, 3498, 1072, 1089, 3675, 1094, 1097, 3495, 3483,
617 3501, 3484, 1100, 1106, 1116, 3675, 1123, 3491, 3484, 3486,
618 1126, 3482, 3493, 1133, 1136, 3675, 1142, 3475, 3483, 1145,
620 3486, 3489, 1153, 1163, 3675, 1166, 1170, 1173, 3490, 1186,
621 1189, 1202, 1206, 3675, 1209, 3473, 1212, 1215, 1228, 3675,
622 1232, 3472, 1235, 3490, 3470, 1238, 1241, 3675, 1245, 3468,
623 3482, 1251, 1258, 3675, 1262, 3501, 122, 1268, 3675, 3675,
624 3508, 3507, 3477, 3468, 1271, 1275, 3461, 3466, 3474, 3473,
625 1279, 1289, 1297, 3476, 3470, 3455, 1300, 1307, 1316, 1319,
626 1322, 3465, 3470, 1327, 1339, 3459, 1335, 1347, 1352, 3675,
627 3675, 3452, 1360, 3675, 3675, 1368, 3465, 1372, 1375, 1388,
628 3460, 1391, 1394, 3449, 3467, 1408, 3454, 1411, 1414, 3483,
629 115, 3484, 1417, 3675, 3483, 3675, 3675, 3448, 3448, 1420,
631 3456, 3442, 3440, 1427, 1437, 3675, 3675, 1448, 3455, 3451,
632 3436, 1452, 3675, 3675, 1465, 1471, 1481, 1484, 3448, 1492,
633 3675, 3449, 3428, 1498, 3675, 3675, 3444, 1509, 1512, 3444,
634 1520, 3449, 1525, 3448, 1528, 3675, 3675, 1537, 3433, 1542,
635 3675, 3675, 3437, 3426, 1555, 3439, 1550, 1560, 1572, 3447,
636 66, 197, 153, 3675, 3425, 1575, 1579, 3436, 3430, 3421,
637 1582, 1585, 3429, 3420, 3429, 1598, 3675, 3675, 1606, 3443,
638 3442, 3424, 3413, 1615, 3431, 1631, 3438, 3437, 3419, 1621,
639 3413, 1626, 3421, 1639, 3412, 3412, 3414, 1643, 3409, 1646,
640 3675, 3675, 1660, 3439, 300, 281, 194, 3408, 1656, 1663,
642 1677, 1591, 3419, 1680, 1683, 3407, 3412, 3402, 296, 376,
643 3404, 3406, 1687, 1703, 3407, 3397, 379, 382, 3400, 1690,
644 3397, 1711, 3675, 3398, 1715, 1694, 3403, 3395, 1718, 3387,
645 1721, 3407, 1738, 238, 408, 3404, 1741, 3675, 3675, 1749,
646 1757, 3392, 1760, 1766, 3393, 3388, 3391, 3412, 3430, 3410,
647 3425, 3390, 1773, 1776, 3675, 3675, 3385, 3379, 3405, 3423,
648 3403, 3418, 3383, 1784, 3387, 3381, 1789, 1792, 1810, 1801,
649 3380, 1821, 1824, 1827, 3675, 1883, 241, 256, 3380, 1830,
650 3374, 1833, 3675, 3363, 3378, 3367, 3411, 3675, 3407, 3675,
651 1838, 1850, 1854, 3371, 3365, 3364, 3406, 3675, 3402, 3675,
653 1862, 1870, 896, 3360, 1873, 1890, 3675, 3675, 1878, 1900,
654 1908, 1911, 3675, 1867, 1924, 240, 429, 384, 162, 520,
655 439, 500, 449, 3366, 1929, 3357, 3345, 3363, 3360, 3675,
656 3675, 1937, 1942, 1953, 3675, 3675, 3357, 3360, 3355, 3675,
657 3675, 1961, 1964, 1972, 3345, 3345, 3356, 1977, 1980, 3675,
658 3675, 1989, 1994, 2005, 3675, 549, 73, 660, 558, 632,
659 505, 172, 734, 883, 3342, 2008, 3349, 2011, 3358, 3357,
660 2027, 3675, 3675, 3345, 2018, 3352, 2035, 3675, 3675, 2014,
661 3335, 3350, 3339, 2043, 2050, 3675, 3675, 617, 2060, 661,
662 959, 935, 862, 970, 614, 2064, 3348, 2067, 2070, 2073,
664 2085, 3344, 399, 3332, 3245, 2093, 2096, 3225, 2104, 2109,
665 2112, 3220, 2115, 711, 2128, 763, 561, 830, 855, 861,
666 2136, 2139, 2156, 3219, 2165, 2132, 2169, 3675, 3675, 3224,
667 3225, 3222, 3223, 2177, 2182, 3675, 3675, 2193, 2196, 2199,
668 2209, 3199, 2205, 2217, 3196, 2225, 2228, 973, 284, 775,
669 448, 915, 613, 2231, 2234, 2238, 2255, 2285, 2322, 3206,
670 2263, 3197, 3200, 3185, 3174, 2251, 2268, 2303, 2306, 2280,
671 3675, 2340, 3675, 3675, 3179, 2348, 3675, 3675, 3174, 2276,
672 2358, 981, 963, 1000, 1004, 1030, 1076, 2361, 1006, 2364,
673 1054, 41, 2394, 2431, 3163, 2423, 3168, 2993, 3009, 3006,
675 2381, 3675, 3675, 2412, 1046, 1055, 2991, 2990, 2389, 3675,
676 1059, 1071, 2451, 585, 1036, 2454, 1088, 1064, 1179, 492,
677 3040, 103, 3036, 2457, 2985, 2460, 2477, 2480, 2483, 2486,
678 3021, 3014, 3012, 3000, 2979, 2977, 2489, 708, 2502, 1065,
679 1093, 2506, 1145, 1140, 3000, 2986, 2979, 2512, 2857, 2515,
680 2523, 2539, 2534, 2550, 2558, 2561, 2845, 2574, 2577, 2791,
681 2791, 2766, 2729, 2678, 2665, 2585, 811, 1124, 951, 1183,
682 1233, 1162, 1176, 2670, 2564, 2590, 2593, 3675, 3675, 2603,
683 3675, 3675, 2611, 3675, 3675, 2539, 2619, 3675, 3675, 2538,
684 2496, 2481, 2434, 2281, 2267, 1270, 2627, 1189, 1135, 1316,
686 1294, 1290, 1317, 3675, 2266, 2630, 2198, 2177, 2169, 2163,
687 2124, 2046, 2000, 1314, 2637, 1349, 1104, 1143, 1367, 1266,
688 1386, 2420, 2647, 1901, 1877, 1884, 1639, 1603, 1560, 1503,
689 1429, 1409, 1415, 1364, 2650, 1416, 1381, 2654, 1391, 2657,
690 2660, 2667, 1512, 1483, 1420, 1371, 1263, 1242, 1418, 1441,
691 1461, 1463, 2671, 1203, 1507, 2677, 2688, 2697, 3675, 2705,
692 2708, 1196, 3675, 1141, 3675, 970, 680, 1532, 1487, 1515,
693 2716, 1435, 1210, 2721, 1491, 1543, 2724, 2727, 3675, 3675,
694 3675, 3675, 695, 692, 2741, 1547, 1656, 2744, 1335, 1444,
695 2752, 1538, 1553, 1485, 620, 570, 2762, 498, 719, 1595,
697 1598, 1474, 1460, 1692, 1698, 1620, 1710, 1369, 464, 419,
698 1717, 1765, 1618, 1638, 1713, 1731, 1596, 1719, 1739, 1788,
699 1737, 1799, 1587, 409, 369, 1792, 1831, 1653, 1829, 1843,
700 1865, 1780, 1900, 1882, 1903, 1783, 1844, 1899, 258, 187,
701 1917, 1932, 1716, 1879, 1925, 1981, 2770, 1943, 2006, 2016,
702 1935, 2030, 2065, 2773, 2779, 2040, 2083, 1959, 2037, 2102,
703 2103, 2783, 2791, 2126, 2131, 2106, 2127, 2795, 2800, 2812,
704 2803, 2820, 2164, 2187, 1802, 1931, 2225, 2245, 1984, 1986,
705 2828, 2295, 2298, 2159, 2206, 2831, 2839, 3675, 3675, 2848,
706 3675, 3675, 2338, 2354, 2086, 2293, 2227, 2329, 2278, 2359,
708 2074, 2337, 2356, 2402, 2410, 1987, 2133, 2424, 2447, 2119,
709 2362, 2484, 2511, 2244, 2314, 1782, 2539, 2555, 2296, 2514,
710 2371, 2453, 2593, 2608, 2856, 2456, 2459, 2401, 2505, 1712,
711 2516, 2526, 2556, 2582, 2529, 2572, 2624, 2679, 2860, 3675,
712 2528, 2620, 2390, 2583, 2357, 2675, 2678, 2629, 2658, 2592,
713 2669, 2684, 2722, 2742, 2749, 2481, 2687, 2232, 2794, 2826,
714 2863, 2792, 2809, 2829, 2837, 2745, 2676, 2720, 2790, 2873,
715 2866, 2810, 2883, 3675, 2838, 2855, 2874, 2880, 2891, 2872,
716 2885, 2904, 2912, 2820, 2879, 2915, 2921, 3675, 2884, 2893,
717 2864, 2881, 2938, 3675, 2916, 2918, 2941, 3675, 2894, 2903,
719 2913, 2914, 2920, 2928, 2931, 2932, 2929, 2930, 2934, 2935,
720 2948, 2946, 2734, 2939, 2940, 2945, 2975, 2943, 2947, 2962,
721 2958, 2992, 3675, 2951, 2957, 2995, 2963, 2968, 3012, 3675,
722 2991, 3000, 2982, 2985, 2971, 2972, 3001, 3002, 3015, 3013,
723 3032, 3035, 3675, 3675, 3053, 3060, 3067, 3074, 3081, 3088,
724 3095, 3102, 3109, 3116, 3123, 3130, 3137, 3144, 3151, 3158,
725 3165, 3172, 3179, 3186, 3193, 3200, 3205, 3210, 3215, 3220,
726 3225, 3230, 3235, 3240, 3247, 3250, 3253, 3256, 3259, 3262,
727 3265, 3268, 3271, 3278, 3282, 3288, 3294, 3300, 3306, 3312,
728 3318, 3324, 3330, 3337, 3344, 3351, 3358, 3365, 3372, 3379
732 static yyconst flex_int16_t yy_def[1401] =
734 1345, 1345, 1346, 1346, 1346, 1346, 1347, 1347, 1348, 1348,
735 1349, 1349, 1350, 1350, 1350, 1350, 1351, 1351, 1345, 1345,
736 1352, 1352, 1353, 1353, 1345, 1345, 1353, 1353, 1353, 1353,
737 1345, 1345, 1354, 1354, 1355, 1355, 1345, 1345, 1355, 1355,
738 1355, 1355, 1345, 1345, 1344, 45, 1356, 1356, 1345, 1345,
739 1357, 1357, 1358, 1358, 1345, 1345, 1359, 1359, 1360, 1360,
740 1345, 1345, 1360, 1360, 1360, 1360, 1345, 1345, 1361, 1361,
741 1362, 1362, 1345, 1345, 1363, 1363, 1364, 1364, 1345, 1345,
742 1364, 1364, 1364, 1364, 1345, 1345, 1365, 1365, 1366, 1366,
743 1350, 1350, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
745 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
746 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
747 1344, 1344, 1344, 1367, 1344, 1344, 1367, 1344, 1344, 1344,
748 1344, 1344, 1344, 1344, 1344, 1344, 1368, 1344, 1344, 1368,
749 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344,
750 1344, 1369, 1369, 1369, 1369, 1369, 1369, 1344, 1344, 1344,
751 1344, 1344, 1344, 1344, 1370, 1344, 1344, 1370, 1370, 1370,
752 1370, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1371, 1344,
753 1344, 1371, 1371, 1371, 1344, 1344, 1344, 1344, 1344, 1344,
754 1344, 1344, 1372, 1344, 1344, 1372, 1344, 1344, 1344, 1344,
756 1344, 1344, 1344, 1373, 1344, 1344, 1373, 1373, 1373, 1373,
757 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1374, 1344,
758 1344, 1374, 1344, 1344, 1344, 1344, 1344, 1344, 1375, 1344,
759 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
760 1344, 1344, 1344, 1344, 1367, 1367, 1376, 1344, 1344, 1344,
761 1344, 1344, 1344, 1368, 1368, 1377, 1344, 1369, 1369, 1369,
762 1369, 1369, 1369, 1369, 1378, 1344, 1370, 1370, 1370, 1370,
763 1370, 1370, 1379, 1344, 1371, 1371, 1371, 1371, 1380, 1344,
764 1344, 1372, 1372, 1381, 1344, 1373, 1373, 1373, 1373, 1373,
765 1382, 1344, 1344, 1374, 1374, 1383, 1344, 1344, 1384, 1344,
767 1384, 1344, 1344, 1344, 1385, 1344, 1344, 1344, 1344, 1344,
768 1344, 1344, 1367, 1386, 1386, 1344, 1344, 1344, 1344, 1344,
769 1368, 1387, 1387, 1369, 1369, 1369, 1369, 1369, 1369, 1388,
770 1388, 1370, 1370, 1370, 1370, 1370, 1389, 1389, 1371, 1371,
771 1371, 1390, 1390, 1344, 1372, 1391, 1391, 1373, 1373, 1373,
772 1373, 1392, 1392, 1344, 1374, 1393, 1393, 1344, 1344, 1384,
773 1344, 1344, 1384, 1344, 1344, 1385, 1344, 1344, 1344, 1344,
774 1344, 1344, 1367, 1344, 1386, 1344, 1386, 1344, 1344, 1344,
775 1344, 1344, 1368, 1344, 1387, 1344, 1387, 1369, 1369, 1369,
776 1369, 1369, 1369, 1344, 1388, 1344, 1388, 1370, 1370, 1370,
778 1370, 1370, 1344, 1389, 1344, 1389, 1344, 1344, 1371, 1344,
779 1344, 1344, 1390, 1344, 1390, 1344, 1372, 1344, 1391, 1344,
780 1391, 1373, 1373, 1373, 1373, 1344, 1392, 1344, 1392, 1344,
781 1374, 1344, 1393, 1344, 1393, 1344, 1384, 1394, 1344, 1344,
782 1344, 1344, 1344, 1367, 1386, 1344, 1344, 1344, 1344, 1344,
783 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1369, 1369,
784 1388, 1370, 1370, 1344, 1344, 1370, 1370, 1389, 1344, 1344,
785 1344, 1371, 1344, 1344, 1344, 1390, 1344, 1344, 1344, 1391,
786 1373, 1344, 1344, 1373, 1373, 1392, 1344, 1374, 1393, 1344,
787 1384, 1394, 1394, 1344, 1394, 1344, 1344, 1344, 1367, 1386,
789 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1387, 1369, 1369,
790 1369, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344,
791 1344, 1370, 1370, 1344, 1344, 1344, 1370, 1344, 1344, 1370,
792 1389, 1371, 1390, 1344, 1344, 1344, 1344, 1391, 1373, 1344,
793 1344, 1344, 1373, 1373, 1392, 1344, 1344, 1344, 1393, 1344,
794 1384, 1394, 1394, 1344, 1344, 1367, 1386, 1344, 1344, 1344,
795 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1344, 1344, 1344,
796 1344, 1369, 1370, 1370, 1370, 1344, 1344, 1344, 1370, 1389,
797 1371, 1390, 1344, 1391, 1373, 1373, 1373, 1392, 1344, 1344,
798 1344, 1344, 1393, 1344, 1384, 1394, 1394, 1344, 1344, 1344,
800 1386, 1344, 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344,
801 1369, 1370, 1344, 1344, 1370, 1370, 1344, 1344, 1370, 1389,
802 1371, 1344, 1344, 1344, 1391, 1373, 1373, 1373, 1392, 1344,
803 1393, 1344, 1384, 1394, 1394, 1344, 1344, 1344, 1344, 1386,
804 1344, 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1344,
805 1344, 1369, 1370, 1344, 1344, 1344, 1370, 1370, 1344, 1344,
806 1344, 1344, 1370, 1389, 1371, 1344, 1391, 1344, 1344, 1373,
807 1373, 1392, 1344, 1393, 1344, 1384, 1394, 1394, 1344, 1386,
808 1344, 1344, 1344, 1369, 1369, 1369, 1344, 1344, 1344, 1344,
809 1369, 1344, 1344, 1370, 1370, 1370, 1344, 1344, 1344, 1344,
811 1370, 1389, 1371, 1344, 1391, 1344, 1344, 1344, 1344, 1344,
812 1373, 1344, 1344, 1344, 1393, 1384, 1384, 1384, 1384, 1384,
813 1384, 1394, 1394, 1344, 1386, 1344, 1369, 1369, 1369, 1344,
814 1344, 1344, 1344, 1344, 1344, 1344, 1370, 1370, 1370, 1344,
815 1344, 1344, 1344, 1389, 1371, 1371, 1344, 1391, 1344, 1344,
816 1344, 1344, 1344, 1344, 1344, 1384, 1384, 1384, 1384, 1384,
817 1384, 1384, 1394, 1394, 1344, 1386, 1344, 1369, 1369, 1369,
818 1344, 1344, 1344, 1370, 1370, 1370, 1344, 1344, 1344, 1389,
819 1371, 1371, 1344, 1391, 1344, 1344, 1344, 1384, 1384, 1384,
820 1384, 1384, 1384, 1384, 1394, 1394, 1344, 1386, 1344, 1344,
822 1344, 1369, 1369, 1369, 1370, 1344, 1344, 1370, 1389, 1371,
823 1371, 1344, 1391, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
824 1394, 1394, 1394, 1344, 1386, 1344, 1344, 1344, 1344, 1369,
825 1369, 1369, 1369, 1370, 1344, 1344, 1344, 1370, 1389, 1344,
826 1344, 1371, 1344, 1344, 1371, 1344, 1391, 1384, 1384, 1384,
827 1384, 1384, 1384, 1384, 1394, 1394, 1394, 1395, 1396, 1344,
828 1386, 1369, 1369, 1369, 1369, 1344, 1344, 1344, 1344, 1344,
829 1344, 1344, 1344, 1344, 1371, 1344, 1344, 1344, 1371, 1344,
830 1391, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1394,
831 1397, 1398, 1395, 1396, 1344, 1386, 1369, 1369, 1369, 1369,
833 1344, 1344, 1344, 1344, 1344, 1344, 1371, 1371, 1344, 1344,
834 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1397, 1394,
835 1399, 1398, 1400, 1394, 1344, 1386, 1369, 1369, 1369, 1369,
836 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384,
837 1384, 1384, 1384, 1384, 1399, 1344, 1400, 1394, 1344, 1386,
838 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344, 1344, 1344,
839 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
840 1384, 1384, 1384, 1344, 1344, 1386, 1344, 1344, 1344, 1344,
841 1344, 1344, 1344, 1344, 1344, 1369, 1344, 1344, 1344, 1344,
842 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
844 1384, 1384, 1384, 1344, 1344, 1386, 1369, 1344, 1344, 1344,
845 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
846 1384, 1344, 1386, 1369, 1344, 1344, 1344, 1344, 1371, 1371,
847 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
848 1386, 1369, 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384,
849 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344,
850 1344, 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384,
851 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344,
852 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384, 1384,
853 1384, 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384,
855 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1371, 1371,
856 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
857 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
858 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1371, 1371,
859 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
860 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
861 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344,
862 1344, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
863 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344, 1344,
864 1344, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
866 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
867 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
868 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
869 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
870 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
871 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
872 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
873 1384, 1384, 1384, 1344, 1384, 1384, 1384, 1384, 1384, 1384,
874 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1384, 1384,
875 1384, 1384, 1384, 1344, 1384, 1384, 1384, 1344, 1384, 1384,
877 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
878 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
879 1384, 1384, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
880 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
881 1384, 1384, 1344, 0, 1344, 1344, 1344, 1344, 1344, 1344,
882 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
883 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
884 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
885 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
886 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344
890 static yyconst flex_int16_t yy_nxt[3738] =
892 1344, 96, 97, 96, 96, 97, 96, 96, 97, 96,
893 96, 97, 96, 104, 1344, 98, 104, 107, 98, 107,
894 105, 99, 361, 105, 99, 101, 97, 101, 101, 97,
895 101, 110, 111, 108, 363, 108, 112, 113, 304, 102,
896 110, 111, 102, 300, 114, 112, 113, 110, 111, 920,
897 115, 229, 112, 114, 110, 111, 301, 115, 923, 112,
898 114, 117, 118, 117, 118, 230, 229, 114, 97, 97,
899 97, 97, 97, 97, 129, 97, 129, 129, 97, 129,
900 231, 306, 120, 361, 307, 120, 305, 304, 130, 365,
901 361, 130, 228, 228, 228, 119, 595, 119, 121, 122,
903 97, 122, 121, 121, 121, 121, 121, 121, 121, 123,
904 121, 920, 121, 125, 121, 126, 121, 97, 97, 97,
905 923, 97, 97, 97, 129, 97, 129, 129, 97, 129,
906 789, 131, 361, 121, 121, 131, 232, 271, 130, 361,
907 232, 130, 228, 228, 228, 228, 228, 228, 272, 551,
908 231, 228, 228, 228, 231, 491, 127, 121, 122, 97,
909 122, 121, 121, 121, 121, 121, 121, 121, 123, 121,
910 494, 121, 125, 121, 126, 121, 129, 97, 129, 361,
911 129, 97, 129, 97, 97, 97, 97, 97, 97, 361,
912 132, 232, 121, 121, 132, 597, 232, 133, 232, 232,
914 133, 228, 228, 228, 759, 231, 247, 228, 228, 228,
915 231, 494, 231, 231, 494, 127, 134, 135, 97, 135,
916 134, 134, 134, 134, 134, 134, 134, 136, 134, 794,
917 134, 138, 134, 139, 134, 142, 97, 142, 249, 142,
918 97, 142, 97, 97, 97, 1155, 243, 596, 635, 143,
919 361, 134, 134, 143, 437, 494, 131, 361, 494, 140,
920 134, 135, 97, 135, 134, 134, 134, 134, 134, 134,
921 134, 136, 134, 494, 134, 138, 134, 139, 134, 97,
922 97, 97, 722, 142, 97, 142, 142, 97, 142, 677,
923 142, 97, 142, 131, 756, 134, 134, 143, 494, 1154,
925 143, 361, 723, 140, 144, 142, 97, 142, 97, 97,
926 97, 97, 97, 97, 228, 228, 228, 361, 883, 144,
927 648, 634, 145, 633, 649, 145, 146, 147, 97, 147,
928 146, 146, 146, 146, 146, 146, 146, 148, 146, 149,
929 146, 150, 146, 151, 146, 149, 149, 149, 149, 149,
930 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
931 149, 146, 146, 149, 152, 149, 149, 149, 149, 149,
932 149, 149, 153, 149, 149, 154, 155, 149, 156, 149,
933 149, 157, 149, 149, 149, 149, 149, 149, 159, 97,
934 159, 159, 97, 159, 97, 97, 97, 97, 97, 97,
936 650, 361, 160, 659, 651, 160, 661, 660, 161, 1140,
937 662, 161, 162, 163, 97, 163, 162, 162, 162, 162,
938 162, 162, 162, 164, 162, 494, 162, 166, 162, 167,
939 162, 173, 97, 173, 758, 173, 97, 173, 97, 97,
940 97, 97, 97, 97, 232, 174, 361, 162, 162, 174,
941 232, 168, 175, 831, 832, 175, 361, 256, 231, 1139,
942 169, 1125, 170, 678, 231, 361, 494, 171, 162, 163,
943 97, 163, 162, 162, 162, 162, 162, 162, 162, 164,
944 162, 757, 162, 166, 162, 167, 162, 186, 97, 186,
945 762, 186, 97, 186, 97, 97, 97, 97, 97, 97,
947 764, 187, 885, 162, 162, 187, 1124, 168, 188, 494,
948 495, 188, 228, 228, 228, 361, 169, 494, 170, 228,
949 228, 228, 361, 171, 176, 177, 97, 177, 176, 176,
950 176, 176, 176, 176, 176, 178, 176, 361, 176, 180,
951 176, 181, 176, 186, 97, 186, 763, 186, 97, 186,
952 186, 97, 186, 186, 97, 186, 793, 187, 1113, 176,
953 176, 187, 232, 232, 189, 182, 361, 189, 760, 265,
954 183, 228, 228, 228, 761, 361, 231, 231, 361, 184,
955 176, 177, 97, 177, 176, 176, 176, 176, 176, 176,
956 176, 178, 176, 788, 176, 180, 176, 181, 176, 97,
958 97, 97, 361, 97, 97, 97, 198, 97, 198, 198,
959 97, 198, 851, 188, 791, 176, 176, 188, 232, 232,
960 199, 182, 940, 199, 1110, 273, 183, 228, 228, 228,
961 361, 494, 231, 231, 361, 184, 190, 191, 97, 191,
962 190, 190, 190, 190, 190, 190, 190, 192, 190, 361,
963 190, 194, 190, 195, 190, 97, 97, 97, 821, 97,
964 97, 97, 212, 97, 212, 212, 97, 212, 887, 200,
965 792, 190, 190, 200, 814, 1109, 213, 361, 361, 213,
966 228, 228, 228, 228, 228, 228, 196, 190, 191, 97,
967 191, 190, 190, 190, 190, 190, 190, 190, 192, 190,
969 790, 190, 194, 190, 195, 190, 97, 97, 97, 816,
970 97, 97, 97, 212, 97, 212, 212, 97, 212, 232,
971 214, 232, 190, 190, 214, 361, 279, 213, 361, 1096,
972 213, 967, 1095, 231, 1084, 231, 361, 196, 201, 202,
973 97, 202, 201, 201, 201, 201, 201, 201, 201, 203,
974 201, 494, 201, 205, 201, 206, 201, 212, 97, 212,
975 848, 212, 97, 212, 97, 97, 97, 250, 97, 97,
976 97, 215, 232, 201, 201, 215, 232, 232, 214, 1114,
977 361, 207, 214, 208, 795, 209, 231, 228, 228, 228,
978 231, 231, 361, 210, 201, 202, 97, 202, 201, 201,
980 201, 201, 201, 201, 201, 203, 201, 232, 201, 205,
981 201, 206, 201, 224, 97, 224, 884, 224, 97, 224,
982 850, 231, 252, 228, 228, 228, 280, 225, 361, 201,
983 201, 225, 228, 228, 228, 110, 111, 207, 997, 208,
984 112, 209, 237, 248, 228, 228, 228, 361, 226, 210,
985 216, 217, 97, 217, 216, 216, 216, 216, 216, 216,
986 216, 218, 216, 232, 216, 220, 216, 221, 216, 227,
987 110, 111, 361, 852, 238, 112, 232, 231, 361, 361,
988 239, 232, 232, 226, 240, 216, 216, 232, 279, 241,
989 231, 232, 232, 232, 284, 231, 231, 853, 291, 247,
991 494, 231, 819, 854, 227, 231, 231, 231, 222, 216,
992 217, 97, 217, 216, 216, 216, 216, 216, 216, 216,
993 218, 216, 232, 216, 220, 216, 221, 216, 248, 248,
994 251, 280, 361, 796, 249, 249, 231, 745, 250, 250,
995 251, 251, 252, 252, 216, 216, 232, 232, 228, 228,
996 228, 746, 361, 256, 291, 232, 292, 228, 228, 228,
997 231, 231, 296, 228, 228, 228, 886, 222, 361, 231,
998 374, 374, 374, 374, 374, 374, 361, 384, 384, 384,
999 361, 292, 248, 384, 384, 384, 376, 361, 249, 376,
1000 361, 818, 250, 386, 251, 912, 252, 999, 361, 386,
1002 394, 394, 394, 394, 394, 394, 403, 403, 403, 403,
1003 403, 403, 407, 407, 407, 882, 396, 361, 817, 396,
1004 377, 361, 405, 361, 1083, 405, 820, 408, 410, 410,
1005 410, 911, 387, 412, 412, 412, 412, 412, 412, 418,
1006 418, 418, 913, 411, 418, 418, 418, 361, 918, 414,
1007 406, 914, 414, 361, 397, 420, 426, 426, 426, 920,
1008 420, 426, 426, 426, 432, 432, 432, 432, 432, 432,
1009 931, 921, 428, 374, 374, 374, 361, 428, 932, 933,
1010 434, 361, 361, 434, 915, 941, 415, 934, 361, 376,
1011 374, 374, 374, 361, 421, 374, 374, 374, 446, 446,
1013 446, 451, 451, 451, 938, 361, 376, 384, 384, 384,
1014 361, 376, 944, 969, 429, 937, 452, 384, 384, 384,
1015 435, 361, 943, 386, 384, 384, 384, 457, 457, 457,
1016 970, 916, 445, 386, 394, 394, 394, 394, 394, 394,
1017 386, 361, 458, 394, 394, 394, 464, 464, 464, 1082,
1018 396, 1035, 361, 396, 403, 403, 403, 361, 998, 396,
1019 361, 465, 361, 453, 403, 403, 403, 403, 403, 403,
1020 405, 407, 407, 407, 469, 469, 469, 972, 470, 361,
1021 405, 471, 973, 405, 920, 1017, 408, 410, 410, 410,
1022 473, 473, 473, 361, 474, 1002, 921, 475, 1036, 461,
1024 361, 1081, 411, 412, 412, 412, 361, 412, 412, 412,
1025 412, 412, 412, 478, 478, 478, 418, 418, 418, 414,
1026 361, 1016, 468, 414, 1000, 1003, 414, 361, 479, 418,
1027 418, 418, 420, 418, 418, 418, 482, 482, 482, 426,
1028 426, 426, 426, 426, 426, 420, 426, 426, 426, 420,
1029 361, 483, 432, 432, 432, 428, 1090, 1073, 428, 432,
1030 432, 432, 428, 432, 432, 432, 476, 1001, 434, 493,
1031 493, 493, 374, 374, 374, 434, 446, 446, 446, 434,
1032 451, 451, 451, 361, 1067, 494, 495, 361, 376, 480,
1033 505, 505, 505, 1038, 506, 452, 486, 507, 384, 384,
1035 384, 457, 457, 457, 1014, 1066, 489, 361, 512, 512,
1036 512, 361, 513, 1020, 386, 514, 458, 515, 515, 515,
1037 517, 517, 517, 520, 520, 520, 1019, 500, 464, 464,
1038 464, 361, 516, 361, 361, 518, 528, 528, 528, 521,
1039 524, 524, 524, 465, 525, 508, 1031, 526, 403, 403,
1040 403, 529, 361, 469, 469, 469, 519, 470, 1018, 1021,
1041 471, 473, 473, 473, 405, 474, 361, 1102, 475, 412,
1042 412, 412, 530, 478, 478, 478, 535, 535, 535, 1065,
1043 536, 361, 1034, 537, 361, 414, 361, 1052, 479, 418,
1044 418, 418, 482, 482, 482, 540, 540, 540, 361, 541,
1046 1037, 1123, 542, 361, 1055, 420, 531, 483, 361, 426,
1047 426, 426, 547, 547, 547, 432, 432, 432, 493, 493,
1048 493, 374, 374, 374, 533, 428, 361, 548, 561, 561,
1049 561, 434, 361, 361, 494, 361, 1039, 376, 505, 505,
1050 505, 1068, 506, 1064, 538, 507, 361, 1057, 545, 384,
1051 384, 384, 361, 512, 512, 512, 1054, 513, 361, 552,
1052 514, 361, 1049, 557, 1050, 386, 515, 515, 515, 1089,
1053 1051, 549, 566, 566, 566, 553, 567, 361, 361, 568,
1054 361, 516, 517, 517, 517, 569, 569, 569, 1063, 570,
1055 1071, 361, 571, 520, 520, 520, 1103, 518, 1069, 524,
1057 524, 524, 361, 525, 361, 562, 526, 1117, 361, 521,
1058 528, 528, 528, 576, 576, 576, 1118, 577, 1070, 1108,
1059 578, 403, 403, 403, 361, 529, 412, 412, 412, 535,
1060 535, 535, 361, 536, 1074, 1062, 537, 405, 418, 418,
1061 418, 1086, 414, 540, 540, 540, 1092, 541, 1048, 361,
1062 542, 547, 547, 547, 420, 361, 426, 426, 426, 1085,
1063 361, 590, 590, 590, 361, 591, 548, 582, 592, 1087,
1064 361, 580, 428, 432, 432, 432, 599, 599, 599, 584,
1065 374, 374, 374, 561, 561, 561, 384, 384, 384, 434,
1066 1098, 600, 641, 641, 641, 1106, 376, 588, 1093, 566,
1068 566, 566, 386, 567, 361, 1047, 568, 569, 569, 569,
1069 1107, 570, 361, 361, 571, 361, 613, 613, 613, 1132,
1070 1138, 593, 403, 403, 403, 1046, 605, 622, 622, 622,
1071 601, 614, 576, 576, 576, 361, 577, 361, 405, 578,
1072 418, 418, 418, 623, 426, 426, 426, 590, 590, 590,
1073 1115, 591, 615, 1116, 592, 361, 420, 599, 599, 599,
1074 428, 432, 432, 432, 637, 637, 637, 1128, 638, 1045,
1075 361, 639, 600, 361, 1121, 620, 625, 434, 374, 374,
1076 374, 643, 643, 643, 384, 384, 384, 1129, 613, 613,
1077 613, 403, 403, 403, 376, 668, 668, 668, 629, 1099,
1079 386, 1143, 631, 614, 654, 654, 654, 405, 655, 361,
1080 669, 656, 622, 622, 622, 361, 418, 418, 418, 426,
1081 426, 426, 432, 432, 432, 644, 1158, 361, 623, 361,
1082 361, 640, 420, 361, 361, 428, 361, 664, 434, 676,
1083 676, 676, 637, 637, 637, 1245, 638, 1119, 361, 639,
1084 374, 374, 374, 1120, 361, 361, 361, 667, 641, 641,
1085 641, 643, 643, 643, 1122, 1133, 376, 682, 682, 682,
1086 1130, 674, 1126, 672, 692, 692, 692, 654, 654, 654,
1087 1136, 655, 361, 683, 656, 403, 403, 403, 1131, 693,
1088 418, 418, 418, 668, 668, 668, 1134, 361, 680, 361,
1090 361, 405, 709, 709, 709, 361, 420, 1147, 669, 361,
1091 694, 706, 706, 706, 1230, 707, 361, 710, 708, 361,
1092 1127, 702, 712, 712, 712, 714, 714, 714, 432, 432,
1093 432, 374, 374, 374, 682, 682, 682, 705, 713, 732,
1094 732, 732, 1137, 1151, 434, 1135, 361, 376, 361, 1141,
1095 683, 692, 692, 692, 733, 734, 734, 734, 1195, 735,
1096 361, 361, 736, 742, 742, 742, 693, 725, 714, 714,
1097 714, 403, 403, 403, 418, 418, 418, 1144, 743, 709,
1098 709, 709, 361, 715, 676, 676, 676, 405, 1142, 1159,
1099 420, 706, 706, 706, 710, 707, 361, 1145, 708, 361,
1101 361, 749, 749, 749, 1152, 750, 1044, 1043, 751, 752,
1102 752, 752, 712, 712, 712, 748, 361, 361, 744, 1146,
1103 361, 716, 1153, 717, 753, 754, 754, 754, 713, 718,
1104 374, 374, 374, 719, 361, 720, 1149, 721, 732, 732,
1105 732, 755, 361, 771, 771, 771, 376, 772, 361, 361,
1106 773, 1148, 361, 733, 734, 734, 734, 1150, 735, 1042,
1107 361, 736, 742, 742, 742, 777, 777, 777, 1160, 778,
1108 766, 1156, 779, 403, 403, 403, 361, 743, 418, 418,
1109 418, 749, 749, 749, 1166, 750, 1157, 1196, 751, 405,
1110 752, 752, 752, 1163, 420, 785, 785, 785, 361, 786,
1112 1175, 361, 787, 361, 361, 753, 754, 754, 754, 374,
1113 374, 374, 800, 800, 800, 403, 403, 403, 780, 806,
1114 806, 806, 755, 361, 1161, 376, 784, 801, 771, 771,
1115 771, 405, 772, 361, 807, 773, 777, 777, 777, 1199,
1116 778, 1200, 1221, 779, 418, 418, 418, 361, 802, 1164,
1117 798, 785, 785, 785, 361, 786, 1030, 361, 787, 1165,
1118 420, 815, 815, 815, 809, 822, 822, 822, 374, 374,
1119 374, 826, 826, 826, 800, 800, 800, 361, 1176, 1167,
1120 823, 494, 361, 1173, 376, 813, 827, 827, 827, 801,
1121 828, 361, 1168, 829, 806, 806, 806, 835, 835, 835,
1123 361, 836, 1029, 361, 837, 403, 403, 403, 1216, 807,
1124 840, 840, 840, 843, 843, 843, 418, 418, 418, 361,
1125 361, 405, 825, 361, 1225, 841, 1174, 1210, 844, 815,
1126 815, 815, 420, 826, 826, 826, 361, 855, 855, 855,
1127 822, 822, 822, 361, 361, 361, 842, 1028, 361, 845,
1128 361, 839, 856, 494, 1184, 823, 494, 857, 857, 857,
1129 849, 858, 1177, 1178, 859, 847, 374, 374, 374, 1204,
1130 827, 827, 827, 494, 828, 1185, 361, 829, 866, 866,
1131 866, 361, 376, 835, 835, 835, 1182, 836, 1222, 1027,
1132 837, 1183, 1026, 867, 868, 868, 868, 870, 870, 870,
1134 840, 840, 840, 1025, 361, 861, 843, 843, 843, 869,
1135 872, 872, 872, 871, 873, 841, 1205, 874, 876, 876,
1136 876, 844, 877, 361, 1193, 878, 880, 880, 880, 418,
1137 418, 418, 888, 888, 888, 855, 855, 855, 1024, 890,
1138 890, 890, 361, 891, 361, 420, 892, 1194, 361, 361,
1139 856, 494, 866, 866, 866, 494, 857, 857, 857, 1270,
1140 858, 361, 361, 859, 374, 374, 374, 867, 889, 901,
1141 901, 901, 494, 902, 1197, 1212, 903, 880, 880, 880,
1142 376, 870, 870, 870, 881, 492, 492, 492, 492, 492,
1143 492, 492, 492, 492, 1198, 361, 492, 871, 1228, 492,
1145 492, 492, 494, 492, 868, 868, 868, 904, 904, 904,
1146 361, 905, 361, 361, 906, 361, 1022, 896, 1013, 869,
1147 492, 492, 492, 492, 492, 492, 492, 492, 492, 492,
1148 492, 361, 1012, 492, 1211, 1214, 492, 492, 492, 494,
1149 492, 872, 872, 872, 1202, 873, 361, 1203, 874, 876,
1150 876, 876, 1233, 877, 361, 361, 878, 492, 492, 909,
1151 909, 909, 888, 888, 888, 890, 890, 890, 1229, 891,
1152 1225, 361, 892, 361, 361, 910, 361, 1213, 361, 361,
1153 1258, 494, 901, 901, 901, 1217, 902, 1208, 361, 903,
1154 909, 909, 909, 917, 492, 492, 492, 492, 492, 924,
1156 492, 492, 492, 1209, 1218, 492, 910, 361, 492, 492,
1157 492, 494, 492, 904, 904, 904, 1215, 905, 361, 361,
1158 906, 1040, 1040, 1040, 374, 374, 374, 361, 1235, 492,
1159 492, 492, 492, 492, 492, 492, 492, 492, 492, 924,
1160 376, 361, 492, 1219, 1243, 492, 492, 492, 494, 492,
1161 1256, 1220, 939, 939, 939, 942, 942, 942, 948, 948,
1162 948, 374, 374, 374, 361, 1011, 492, 492, 361, 926,
1163 361, 361, 1223, 361, 494, 495, 361, 376, 951, 951,
1164 951, 953, 953, 953, 955, 955, 955, 958, 958, 958,
1165 966, 966, 966, 952, 1226, 1224, 954, 1241, 361, 956,
1167 1242, 361, 959, 939, 939, 939, 361, 942, 942, 942,
1168 1236, 1010, 950, 948, 948, 948, 374, 374, 374, 361,
1169 957, 1227, 361, 361, 951, 951, 951, 1009, 361, 494,
1170 1268, 361, 376, 361, 968, 953, 953, 953, 971, 952,
1171 977, 977, 977, 361, 978, 361, 361, 979, 1244, 1231,
1172 954, 980, 980, 980, 552, 981, 361, 1246, 982, 955,
1173 955, 955, 983, 983, 983, 1232, 984, 1247, 1008, 985,
1174 1234, 976, 361, 361, 956, 958, 958, 958, 987, 987,
1175 987, 1007, 988, 1250, 1254, 989, 966, 966, 966, 361,
1176 959, 374, 374, 374, 977, 977, 977, 1248, 978, 361,
1178 361, 979, 361, 1237, 980, 980, 980, 376, 981, 361,
1179 361, 982, 983, 983, 983, 1005, 984, 996, 1238, 985,
1180 987, 987, 987, 1249, 988, 361, 1251, 989, 1015, 1015,
1181 1015, 374, 374, 374, 1261, 1262, 1006, 361, 1015, 1015,
1182 1015, 361, 1032, 1257, 361, 1033, 361, 376, 374, 374,
1183 374, 1053, 1053, 1053, 361, 1056, 1056, 1056, 1040, 1040,
1184 1040, 1058, 1058, 1058, 376, 1252, 1261, 361, 1060, 1060,
1185 1060, 361, 1053, 1053, 1053, 361, 1255, 1059, 1056, 1056,
1186 1056, 1023, 1075, 1061, 1279, 1076, 361, 1004, 361, 1077,
1187 1077, 1077, 361, 361, 361, 361, 361, 1041, 1058, 1058,
1189 1058, 361, 995, 1072, 361, 361, 1060, 1060, 1060, 1078,
1190 1078, 1078, 1263, 1079, 1059, 994, 1080, 1088, 1088, 1088,
1191 1253, 1061, 1091, 1091, 1091, 1077, 1077, 1077, 1078, 1078,
1192 1078, 1259, 1079, 361, 1260, 1080, 1269, 361, 361, 361,
1193 1264, 361, 1097, 1097, 1097, 1088, 1088, 1088, 993, 1100,
1194 1279, 361, 1101, 1091, 1091, 1091, 1094, 1104, 361, 361,
1195 1105, 361, 361, 1097, 1097, 1097, 361, 1111, 1280, 361,
1196 1112, 1162, 1162, 1162, 1169, 1169, 1169, 1318, 1265, 361,
1197 1171, 1171, 1171, 1266, 1162, 1162, 1162, 361, 1179, 1170,
1198 1267, 1180, 1181, 1181, 1181, 1172, 1186, 1186, 1186, 992,
1200 361, 1169, 1169, 1169, 1171, 1171, 1171, 361, 361, 361,
1201 991, 361, 361, 1187, 1187, 1187, 1170, 1188, 1283, 1172,
1202 1189, 1190, 1190, 1190, 990, 1191, 361, 361, 1192, 1181,
1203 1181, 1181, 1186, 1186, 1186, 1271, 1206, 361, 1281, 1207,
1204 1187, 1187, 1187, 361, 1188, 361, 361, 1189, 361, 1190,
1205 1190, 1190, 1275, 1191, 361, 361, 1192, 1239, 1239, 1239,
1206 1201, 1239, 1239, 1239, 1273, 1273, 1273, 1272, 1295, 1276,
1207 1277, 1283, 361, 1240, 1282, 1282, 1282, 1240, 1278, 1286,
1208 1274, 361, 1289, 361, 1273, 1273, 1273, 1284, 1286, 361,
1209 361, 361, 1287, 1287, 1287, 1290, 361, 361, 361, 986,
1211 1274, 361, 361, 975, 1285, 1282, 1282, 1282, 1288, 1291,
1212 361, 361, 1292, 1293, 1293, 1293, 1297, 1297, 1297, 1301,
1213 361, 361, 1287, 1287, 1287, 1299, 1303, 1296, 1304, 1294,
1214 361, 361, 1298, 361, 1300, 361, 1302, 361, 1288, 1293,
1215 1293, 1293, 1297, 1297, 1297, 361, 361, 361, 361, 361,
1216 1305, 361, 361, 1317, 1317, 1294, 361, 361, 1298, 1306,
1217 361, 1309, 361, 361, 361, 361, 1326, 1326, 361, 1310,
1218 1307, 1308, 1311, 1312, 361, 361, 1322, 1322, 1322, 361,
1219 361, 1320, 1319, 1313, 1314, 361, 1321, 946, 361, 361,
1220 1315, 1316, 1323, 1322, 1322, 1322, 1329, 1329, 1329, 361,
1222 1327, 1333, 361, 1324, 974, 946, 1328, 1325, 361, 1323,
1223 1334, 1331, 1330, 1329, 1329, 1329, 1332, 361, 361, 361,
1224 1341, 1341, 965, 1335, 964, 963, 1336, 1337, 1338, 1330,
1225 361, 962, 361, 1342, 1342, 1342, 1342, 1342, 1342, 961,
1226 960, 949, 1339, 1340, 946, 946, 936, 935, 930, 1343,
1227 929, 928, 1343, 94, 94, 94, 94, 94, 94, 94,
1228 95, 95, 95, 95, 95, 95, 95, 100, 100, 100,
1229 100, 100, 100, 100, 103, 103, 103, 103, 103, 103,
1230 103, 106, 106, 106, 106, 106, 106, 106, 109, 109,
1231 109, 109, 109, 109, 109, 116, 116, 116, 116, 116,
1233 116, 116, 124, 124, 124, 124, 124, 124, 124, 128,
1234 128, 128, 128, 128, 128, 128, 137, 137, 137, 137,
1235 137, 137, 137, 141, 141, 141, 141, 141, 141, 141,
1236 158, 158, 158, 158, 158, 158, 158, 165, 165, 165,
1237 165, 165, 165, 165, 172, 172, 172, 172, 172, 172,
1238 172, 179, 179, 179, 179, 179, 179, 179, 185, 185,
1239 185, 185, 185, 185, 185, 193, 193, 193, 193, 193,
1240 193, 193, 197, 197, 197, 197, 197, 197, 197, 204,
1241 204, 204, 204, 204, 204, 204, 211, 211, 211, 211,
1242 211, 211, 211, 219, 219, 219, 219, 219, 219, 219,
1244 223, 223, 223, 223, 223, 223, 223, 245, 245, 245,
1245 927, 245, 254, 254, 254, 925, 254, 258, 258, 258,
1246 908, 258, 267, 267, 267, 907, 267, 275, 275, 275,
1247 900, 275, 282, 282, 282, 899, 282, 286, 286, 286,
1248 898, 286, 294, 294, 294, 897, 294, 299, 299, 299,
1249 299, 299, 895, 299, 314, 879, 314, 322, 875, 322,
1250 330, 865, 330, 337, 864, 337, 342, 863, 342, 346,
1251 862, 346, 352, 860, 352, 356, 846, 356, 360, 360,
1252 360, 360, 360, 360, 360, 366, 838, 834, 366, 375,
1253 375, 375, 375, 375, 375, 385, 385, 385, 385, 385,
1255 385, 395, 395, 395, 395, 395, 395, 404, 404, 404,
1256 404, 404, 404, 413, 413, 413, 413, 413, 413, 419,
1257 419, 419, 419, 419, 419, 427, 427, 427, 427, 427,
1258 427, 433, 433, 433, 433, 433, 433, 492, 492, 492,
1259 492, 492, 492, 492, 893, 893, 893, 893, 893, 893,
1260 893, 894, 894, 894, 894, 894, 894, 894, 919, 919,
1261 919, 919, 919, 919, 919, 922, 922, 922, 922, 922,
1262 922, 922, 945, 945, 945, 945, 945, 945, 945, 947,
1263 947, 947, 947, 947, 947, 947, 833, 830, 824, 812,
1264 811, 810, 808, 805, 804, 803, 799, 797, 783, 782,
1266 781, 776, 775, 774, 770, 769, 768, 767, 765, 747,
1267 741, 740, 739, 738, 737, 731, 730, 729, 728, 727,
1268 726, 724, 711, 704, 703, 701, 700, 699, 698, 697,
1269 696, 695, 691, 690, 689, 688, 687, 686, 685, 684,
1270 681, 679, 675, 673, 671, 670, 666, 665, 663, 658,
1271 657, 653, 652, 647, 646, 645, 642, 636, 632, 630,
1272 628, 627, 626, 624, 621, 619, 618, 617, 616, 612,
1273 611, 610, 609, 608, 607, 606, 604, 603, 602, 598,
1274 594, 589, 587, 586, 585, 583, 581, 579, 575, 574,
1275 573, 572, 565, 564, 563, 560, 559, 558, 556, 555,
1277 554, 494, 550, 546, 544, 543, 539, 534, 532, 527,
1278 523, 522, 511, 510, 509, 504, 503, 502, 501, 499,
1279 498, 497, 496, 490, 488, 487, 485, 484, 481, 477,
1280 472, 467, 466, 463, 462, 460, 459, 456, 455, 454,
1281 450, 449, 448, 447, 444, 443, 442, 441, 440, 439,
1282 438, 361, 436, 431, 430, 425, 424, 423, 422, 417,
1283 416, 409, 402, 401, 400, 399, 398, 393, 392, 391,
1284 390, 389, 388, 383, 382, 381, 380, 379, 378, 373,
1285 372, 371, 370, 369, 368, 367, 364, 362, 361, 359,
1286 358, 357, 355, 354, 353, 351, 350, 349, 348, 347,
1288 345, 344, 343, 341, 340, 339, 338, 336, 335, 334,
1289 333, 332, 331, 329, 328, 327, 326, 325, 324, 323,
1290 321, 320, 319, 318, 317, 316, 315, 313, 312, 311,
1291 310, 309, 308, 303, 300, 302, 298, 297, 295, 293,
1292 290, 289, 288, 287, 285, 283, 281, 278, 277, 276,
1293 274, 270, 269, 268, 266, 264, 263, 262, 261, 260,
1294 259, 257, 255, 253, 246, 244, 242, 236, 235, 236,
1295 235, 234, 233, 1344, 93, 1344, 1344, 1344, 1344, 1344,
1296 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1297 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1299 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1300 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1301 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1302 1344, 1344, 1344, 1344, 1344, 1344, 1344
1305 static yyconst flex_int16_t yy_chk[3738] =
1307 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1308 6, 6, 6, 9, 0, 3, 10, 11, 4, 12,
1309 9, 5, 301, 10, 6, 7, 7, 7, 8, 8,
1310 8, 13, 13, 11, 301, 12, 13, 13, 237, 7,
1311 14, 14, 8, 229, 13, 14, 14, 15, 15, 892,
1312 15, 98, 15, 14, 16, 16, 229, 16, 892, 16,
1313 15, 17, 17, 18, 18, 98, 99, 16, 19, 19,
1314 19, 20, 20, 20, 23, 23, 23, 24, 24, 24,
1315 99, 238, 19, 551, 238, 20, 237, 304, 23, 304,
1316 757, 24, 96, 96, 96, 17, 551, 18, 21, 21,
1318 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1319 21, 922, 21, 21, 21, 21, 21, 25, 25, 25,
1320 922, 26, 26, 26, 27, 27, 27, 28, 28, 28,
1321 757, 25, 491, 21, 21, 26, 102, 171, 27, 437,
1322 125, 28, 97, 97, 97, 101, 101, 101, 171, 491,
1323 102, 122, 122, 122, 125, 437, 21, 22, 22, 22,
1324 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1325 553, 22, 22, 22, 22, 22, 29, 29, 29, 719,
1326 30, 30, 30, 31, 31, 31, 32, 32, 32, 762,
1327 29, 138, 22, 22, 30, 553, 133, 31, 120, 132,
1329 32, 129, 129, 129, 719, 138, 132, 135, 135, 135,
1330 133, 597, 120, 132, 552, 22, 33, 33, 33, 33,
1331 33, 33, 33, 33, 33, 33, 33, 33, 33, 762,
1332 33, 33, 33, 33, 33, 35, 35, 35, 133, 36,
1333 36, 36, 37, 37, 37, 1140, 120, 552, 597, 35,
1334 363, 33, 33, 36, 363, 634, 37, 716, 677, 33,
1335 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
1336 34, 34, 34, 678, 34, 34, 34, 34, 34, 38,
1337 38, 38, 677, 39, 39, 39, 40, 40, 40, 634,
1338 41, 41, 41, 38, 716, 34, 34, 39, 596, 1139,
1340 40, 849, 678, 34, 41, 42, 42, 42, 43, 43,
1341 43, 44, 44, 44, 142, 142, 142, 595, 849, 42,
1342 609, 596, 43, 595, 609, 44, 45, 45, 45, 45,
1343 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1344 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1345 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1346 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1347 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1348 45, 45, 45, 45, 45, 45, 45, 45, 47, 47,
1349 47, 48, 48, 48, 49, 49, 49, 50, 50, 50,
1351 610, 718, 47, 617, 610, 48, 618, 617, 49, 1125,
1352 618, 50, 51, 51, 51, 51, 51, 51, 51, 51,
1353 51, 51, 51, 51, 51, 635, 51, 51, 51, 51,
1354 51, 53, 53, 53, 718, 54, 54, 54, 55, 55,
1355 55, 56, 56, 56, 150, 53, 717, 51, 51, 54,
1356 144, 51, 55, 803, 803, 56, 721, 144, 150, 1124,
1357 51, 1110, 51, 635, 144, 851, 723, 51, 52, 52,
1358 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
1359 52, 717, 52, 52, 52, 52, 52, 59, 59, 59,
1360 721, 60, 60, 60, 61, 61, 61, 62, 62, 62,
1362 723, 59, 851, 52, 52, 60, 1109, 52, 61, 920,
1363 920, 62, 147, 147, 147, 1098, 52, 722, 52, 159,
1364 159, 159, 761, 52, 57, 57, 57, 57, 57, 57,
1365 57, 57, 57, 57, 57, 57, 57, 720, 57, 57,
1366 57, 57, 57, 63, 63, 63, 722, 64, 64, 64,
1367 65, 65, 65, 66, 66, 66, 761, 63, 1098, 57,
1368 57, 64, 160, 166, 65, 57, 756, 66, 720, 160,
1369 57, 163, 163, 163, 720, 759, 160, 166, 817, 57,
1370 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1371 58, 58, 58, 756, 58, 58, 58, 58, 58, 67,
1373 67, 67, 914, 68, 68, 68, 71, 71, 71, 72,
1374 72, 72, 817, 67, 759, 58, 58, 68, 174, 180,
1375 71, 58, 914, 72, 1096, 174, 58, 173, 173, 173,
1376 853, 795, 174, 180, 788, 58, 69, 69, 69, 69,
1377 69, 69, 69, 69, 69, 69, 69, 69, 69, 760,
1378 69, 69, 69, 69, 69, 73, 73, 73, 795, 74,
1379 74, 74, 77, 77, 77, 78, 78, 78, 853, 73,
1380 760, 69, 69, 74, 788, 1095, 77, 758, 790, 78,
1381 177, 177, 177, 186, 186, 186, 69, 70, 70, 70,
1382 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
1384 758, 70, 70, 70, 70, 70, 79, 79, 79, 790,
1385 80, 80, 80, 81, 81, 81, 82, 82, 82, 189,
1386 79, 161, 70, 70, 80, 938, 189, 81, 814, 1084,
1387 82, 938, 1083, 189, 1067, 161, 1099, 70, 75, 75,
1388 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1389 75, 763, 75, 75, 75, 75, 75, 83, 83, 83,
1390 814, 84, 84, 84, 85, 85, 85, 161, 86, 86,
1391 86, 83, 175, 75, 75, 84, 188, 194, 85, 1099,
1392 816, 75, 86, 75, 763, 75, 175, 191, 191, 191,
1393 188, 194, 850, 75, 76, 76, 76, 76, 76, 76,
1395 76, 76, 76, 76, 76, 76, 76, 145, 76, 76,
1396 76, 76, 76, 89, 89, 89, 850, 90, 90, 90,
1397 816, 145, 175, 198, 198, 198, 188, 89, 967, 76,
1398 76, 90, 202, 202, 202, 91, 91, 76, 967, 76,
1399 91, 76, 112, 145, 212, 212, 212, 818, 91, 76,
1400 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1401 87, 87, 87, 205, 87, 87, 87, 87, 87, 91,
1402 92, 92, 819, 818, 112, 92, 220, 205, 820, 793,
1403 112, 187, 200, 92, 112, 87, 87, 199, 187, 112,
1404 220, 215, 130, 131, 199, 187, 200, 819, 215, 130,
1406 764, 199, 793, 820, 92, 215, 130, 131, 87, 88,
1407 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1408 88, 88, 214, 88, 88, 88, 88, 88, 130, 131,
1409 200, 187, 852, 764, 130, 131, 214, 703, 130, 131,
1410 130, 131, 130, 131, 88, 88, 143, 213, 217, 217,
1411 217, 703, 792, 143, 213, 225, 214, 224, 224, 224,
1412 143, 213, 225, 228, 228, 228, 852, 88, 969, 225,
1413 314, 314, 314, 315, 315, 315, 791, 322, 322, 322,
1414 883, 213, 143, 323, 323, 323, 314, 794, 143, 315,
1415 848, 792, 143, 322, 143, 883, 143, 969, 882, 323,
1417 330, 330, 330, 331, 331, 331, 337, 337, 337, 338,
1418 338, 338, 339, 339, 339, 848, 330, 884, 791, 331,
1419 315, 885, 337, 889, 1066, 338, 794, 339, 341, 341,
1420 341, 882, 323, 342, 342, 342, 343, 343, 343, 346,
1421 346, 346, 884, 341, 347, 347, 347, 886, 889, 342,
1422 338, 885, 343, 915, 331, 346, 352, 352, 352, 891,
1423 347, 353, 353, 353, 356, 356, 356, 357, 357, 357,
1424 905, 891, 352, 374, 374, 374, 911, 353, 905, 906,
1425 356, 918, 940, 357, 886, 915, 343, 906, 912, 374,
1426 375, 375, 375, 887, 347, 377, 377, 377, 378, 378,
1428 378, 383, 383, 383, 912, 917, 375, 384, 384, 384,
1429 941, 377, 918, 940, 353, 911, 383, 385, 385, 385,
1430 357, 1017, 917, 384, 387, 387, 387, 391, 391, 391,
1431 941, 887, 377, 385, 394, 394, 394, 395, 395, 395,
1432 387, 968, 391, 397, 397, 397, 400, 400, 400, 1064,
1433 394, 1017, 999, 395, 403, 403, 403, 944, 968, 397,
1434 1018, 400, 943, 387, 404, 404, 404, 406, 406, 406,
1435 403, 407, 407, 407, 408, 408, 408, 943, 408, 972,
1436 404, 408, 944, 406, 919, 999, 407, 410, 410, 410,
1437 411, 411, 411, 973, 411, 972, 919, 411, 1018, 397,
1439 970, 1062, 410, 412, 412, 412, 998, 413, 413, 413,
1440 415, 415, 415, 417, 417, 417, 418, 418, 418, 412,
1441 1054, 998, 406, 413, 970, 973, 415, 1073, 417, 419,
1442 419, 419, 418, 421, 421, 421, 423, 423, 423, 426,
1443 426, 426, 427, 427, 427, 419, 429, 429, 429, 421,
1444 971, 423, 432, 432, 432, 426, 1073, 1054, 427, 433,
1445 433, 433, 429, 435, 435, 435, 415, 971, 432, 438,
1446 438, 438, 445, 445, 445, 433, 446, 446, 446, 435,
1447 451, 451, 451, 1020, 1048, 438, 438, 996, 445, 421,
1448 452, 452, 452, 1020, 452, 451, 429, 452, 453, 453,
1450 453, 457, 457, 457, 996, 1047, 435, 1002, 458, 458,
1451 458, 1001, 458, 1002, 453, 458, 457, 459, 459, 459,
1452 460, 460, 460, 461, 461, 461, 1001, 445, 464, 464,
1453 464, 1014, 459, 1000, 1003, 460, 467, 467, 467, 461,
1454 465, 465, 465, 464, 465, 453, 1014, 465, 468, 468,
1455 468, 467, 1089, 469, 469, 469, 460, 469, 1000, 1003,
1456 469, 473, 473, 473, 468, 473, 1016, 1089, 473, 476,
1457 476, 476, 467, 478, 478, 478, 479, 479, 479, 1046,
1458 479, 1034, 1016, 479, 1019, 476, 1108, 1034, 478, 480,
1459 480, 480, 482, 482, 482, 483, 483, 483, 1037, 483,
1461 1019, 1108, 483, 1021, 1037, 480, 468, 482, 1039, 486,
1462 486, 486, 488, 488, 488, 489, 489, 489, 493, 493,
1463 493, 500, 500, 500, 476, 486, 1032, 488, 504, 504,
1464 504, 489, 1033, 1036, 493, 1049, 1021, 500, 505, 505,
1465 505, 1049, 505, 1045, 480, 505, 1031, 1039, 486, 508,
1466 508, 508, 1072, 512, 512, 512, 1036, 512, 1050, 493,
1467 512, 1090, 1031, 500, 1032, 508, 515, 515, 515, 1072,
1468 1033, 489, 516, 516, 516, 493, 516, 1103, 1051, 516,
1469 1052, 515, 517, 517, 517, 518, 518, 518, 1044, 518,
1470 1052, 1102, 518, 520, 520, 520, 1090, 517, 1050, 524,
1472 524, 524, 1094, 524, 1069, 508, 524, 1102, 1075, 520,
1473 528, 528, 528, 529, 529, 529, 1103, 529, 1051, 1094,
1474 529, 531, 531, 531, 1055, 528, 533, 533, 533, 535,
1475 535, 535, 1070, 535, 1055, 1043, 535, 531, 538, 538,
1476 538, 1069, 533, 540, 540, 540, 1075, 540, 1030, 1068,
1477 540, 547, 547, 547, 538, 1092, 545, 545, 545, 1068,
1478 1076, 548, 548, 548, 1086, 548, 547, 533, 548, 1070,
1479 1093, 531, 545, 549, 549, 549, 556, 556, 556, 538,
1480 557, 557, 557, 561, 561, 561, 562, 562, 562, 549,
1481 1086, 556, 602, 602, 602, 1092, 557, 545, 1076, 566,
1483 566, 566, 562, 566, 1123, 1029, 566, 569, 569, 569,
1484 1093, 569, 1100, 1117, 569, 1101, 574, 574, 574, 1117,
1485 1123, 549, 580, 580, 580, 1028, 562, 582, 582, 582,
1486 557, 574, 576, 576, 576, 1113, 576, 1106, 580, 576,
1487 584, 584, 584, 582, 588, 588, 588, 590, 590, 590,
1488 1100, 590, 574, 1101, 590, 1114, 584, 599, 599, 599,
1489 588, 593, 593, 593, 600, 600, 600, 1113, 600, 1027,
1490 1128, 600, 599, 1087, 1106, 580, 584, 593, 601, 601,
1491 601, 604, 604, 604, 605, 605, 605, 1114, 613, 613,
1492 613, 620, 620, 620, 601, 626, 626, 626, 588, 1087,
1494 605, 1128, 593, 613, 614, 614, 614, 620, 614, 1104,
1495 626, 614, 622, 622, 622, 1105, 625, 625, 625, 629,
1496 629, 629, 631, 631, 631, 605, 1143, 1107, 622, 1230,
1497 1115, 601, 625, 1143, 1111, 629, 1118, 620, 631, 633,
1498 633, 633, 637, 637, 637, 1230, 637, 1104, 1116, 637,
1499 640, 640, 640, 1105, 1121, 633, 1119, 625, 641, 641,
1500 641, 643, 643, 643, 1107, 1118, 640, 644, 644, 644,
1501 1115, 631, 1111, 629, 653, 653, 653, 654, 654, 654,
1502 1121, 654, 1112, 644, 654, 664, 664, 664, 1116, 653,
1503 667, 667, 667, 668, 668, 668, 1119, 1132, 640, 1216,
1505 1136, 664, 670, 670, 670, 1120, 667, 1132, 668, 1126,
1506 653, 669, 669, 669, 1216, 669, 1122, 670, 669, 1175,
1507 1112, 664, 672, 672, 672, 673, 673, 673, 674, 674,
1508 674, 680, 680, 680, 682, 682, 682, 667, 672, 691,
1509 691, 691, 1122, 1136, 674, 1120, 1129, 680, 1127, 1126,
1510 682, 692, 692, 692, 691, 693, 693, 693, 1175, 693,
1511 1130, 1137, 693, 701, 701, 701, 692, 680, 714, 714,
1512 714, 702, 702, 702, 705, 705, 705, 1129, 701, 709,
1513 709, 709, 1131, 674, 676, 676, 676, 702, 1127, 1144,
1514 705, 706, 706, 706, 709, 706, 1144, 1130, 706, 1134,
1516 676, 710, 710, 710, 1137, 710, 1026, 1025, 710, 711,
1517 711, 711, 712, 712, 712, 705, 1138, 1133, 702, 1131,
1518 1135, 676, 1138, 676, 711, 715, 715, 715, 712, 676,
1519 725, 725, 725, 676, 1141, 676, 1134, 676, 732, 732,
1520 732, 715, 1145, 733, 733, 733, 725, 733, 1176, 1142,
1521 733, 1133, 1151, 732, 734, 734, 734, 1135, 734, 1024,
1522 1148, 734, 742, 742, 742, 743, 743, 743, 1145, 743,
1523 725, 1141, 743, 744, 744, 744, 1158, 742, 748, 748,
1524 748, 749, 749, 749, 1151, 749, 1142, 1176, 749, 744,
1525 752, 752, 752, 1148, 748, 753, 753, 753, 1146, 753,
1527 1158, 1179, 753, 1180, 1206, 752, 754, 754, 754, 766,
1528 766, 766, 768, 768, 768, 780, 780, 780, 744, 775,
1529 775, 775, 754, 1149, 1146, 766, 748, 768, 771, 771,
1530 771, 780, 771, 1150, 775, 771, 777, 777, 777, 1179,
1531 777, 1180, 1206, 777, 784, 784, 784, 1152, 768, 1149,
1532 766, 785, 785, 785, 1159, 785, 1013, 1156, 785, 1150,
1533 784, 789, 789, 789, 780, 796, 796, 796, 798, 798,
1534 798, 799, 799, 799, 800, 800, 800, 789, 1159, 1152,
1535 796, 796, 1153, 1156, 798, 784, 801, 801, 801, 800,
1536 801, 1201, 1153, 801, 806, 806, 806, 807, 807, 807,
1538 1157, 807, 1012, 1195, 807, 809, 809, 809, 1201, 806,
1539 810, 810, 810, 811, 811, 811, 813, 813, 813, 1160,
1540 1161, 809, 798, 1166, 1210, 810, 1157, 1195, 811, 815,
1541 815, 815, 813, 826, 826, 826, 1210, 821, 821, 821,
1542 822, 822, 822, 1164, 1167, 815, 810, 1011, 1165, 811,
1543 1207, 809, 821, 821, 1166, 822, 822, 823, 823, 823,
1544 815, 823, 1160, 1161, 823, 813, 825, 825, 825, 1184,
1545 827, 827, 827, 823, 827, 1167, 1184, 827, 834, 834,
1546 834, 1173, 825, 835, 835, 835, 1164, 835, 1207, 1010,
1547 835, 1165, 1009, 834, 838, 838, 838, 839, 839, 839,
1549 840, 840, 840, 1008, 1174, 825, 843, 843, 843, 838,
1550 841, 841, 841, 839, 841, 840, 1185, 841, 844, 844,
1551 844, 843, 844, 1185, 1173, 844, 846, 846, 846, 847,
1552 847, 847, 854, 854, 854, 855, 855, 855, 1007, 856,
1553 856, 856, 1177, 856, 1197, 847, 856, 1174, 854, 1258,
1554 855, 855, 866, 866, 866, 856, 857, 857, 857, 1258,
1555 857, 1214, 1178, 857, 861, 861, 861, 866, 854, 867,
1556 867, 867, 857, 867, 1177, 1197, 867, 880, 880, 880,
1557 861, 870, 870, 870, 847, 858, 858, 858, 858, 858,
1558 858, 858, 858, 858, 1178, 1199, 858, 870, 1214, 858,
1560 858, 858, 858, 858, 868, 868, 868, 869, 869, 869,
1561 1196, 869, 1182, 1219, 869, 1183, 1005, 861, 995, 868,
1562 858, 858, 859, 859, 859, 859, 859, 859, 859, 859,
1563 859, 1215, 994, 859, 1196, 1199, 859, 859, 859, 859,
1564 859, 872, 872, 872, 1182, 872, 1198, 1183, 872, 876,
1565 876, 876, 1219, 876, 1202, 1193, 876, 859, 859, 881,
1566 881, 881, 888, 888, 888, 890, 890, 890, 1215, 890,
1567 1211, 1194, 890, 1203, 1245, 881, 1200, 1198, 888, 1211,
1568 1245, 890, 901, 901, 901, 1202, 901, 1193, 1221, 901,
1569 909, 909, 909, 888, 893, 893, 893, 893, 893, 893,
1571 893, 893, 893, 1194, 1203, 893, 909, 1243, 893, 893,
1572 893, 893, 893, 904, 904, 904, 1200, 904, 1228, 1204,
1573 904, 1022, 1022, 1022, 896, 896, 896, 1205, 1221, 893,
1574 893, 894, 894, 894, 894, 894, 894, 894, 894, 894,
1575 896, 1208, 894, 1204, 1228, 894, 894, 894, 894, 894,
1576 1243, 1205, 913, 913, 913, 916, 916, 916, 924, 924,
1577 924, 926, 926, 926, 1209, 993, 894, 894, 913, 896,
1578 1222, 916, 1208, 1226, 924, 924, 1227, 926, 927, 927,
1579 927, 928, 928, 928, 929, 929, 929, 930, 930, 930,
1580 937, 937, 937, 927, 1212, 1209, 928, 1226, 1256, 929,
1582 1227, 1212, 930, 939, 939, 939, 937, 942, 942, 942,
1583 1222, 992, 926, 948, 948, 948, 950, 950, 950, 939,
1584 929, 1213, 1229, 942, 951, 951, 951, 991, 1213, 948,
1585 1256, 1220, 950, 1231, 939, 953, 953, 953, 942, 951,
1586 952, 952, 952, 1232, 952, 1241, 1235, 952, 1229, 1217,
1587 953, 954, 954, 954, 948, 954, 1217, 1231, 954, 955,
1588 955, 955, 956, 956, 956, 1218, 956, 1232, 990, 956,
1589 1220, 950, 1218, 1233, 955, 958, 958, 958, 959, 959,
1590 959, 986, 959, 1235, 1241, 959, 966, 966, 966, 1236,
1591 958, 976, 976, 976, 977, 977, 977, 1233, 977, 1234,
1593 1244, 977, 966, 1223, 980, 980, 980, 976, 980, 1250,
1594 1223, 980, 983, 983, 983, 975, 983, 966, 1224, 983,
1595 987, 987, 987, 1234, 987, 1224, 1236, 987, 997, 997,
1596 997, 1006, 1006, 1006, 1248, 1250, 976, 1242, 1015, 1015,
1597 1015, 1237, 1015, 1244, 997, 1015, 1248, 1006, 1023, 1023,
1598 1023, 1035, 1035, 1035, 1015, 1038, 1038, 1038, 1040, 1040,
1599 1040, 1041, 1041, 1041, 1023, 1237, 1249, 1035, 1042, 1042,
1600 1042, 1038, 1053, 1053, 1053, 1249, 1242, 1041, 1056, 1056,
1601 1056, 1006, 1056, 1042, 1267, 1056, 1251, 974, 1053, 1057,
1602 1057, 1057, 1246, 1267, 1056, 1247, 1238, 1023, 1058, 1058,
1604 1058, 1252, 965, 1053, 1257, 1057, 1060, 1060, 1060, 1061,
1605 1061, 1061, 1251, 1061, 1058, 964, 1061, 1071, 1071, 1071,
1606 1238, 1060, 1074, 1074, 1074, 1077, 1077, 1077, 1078, 1078,
1607 1078, 1246, 1078, 1071, 1247, 1078, 1257, 1268, 1074, 1253,
1608 1252, 1077, 1085, 1085, 1085, 1088, 1088, 1088, 963, 1088,
1609 1266, 1313, 1088, 1091, 1091, 1091, 1077, 1091, 1085, 1254,
1610 1091, 1088, 1266, 1097, 1097, 1097, 1255, 1097, 1268, 1091,
1611 1097, 1147, 1147, 1147, 1154, 1154, 1154, 1313, 1253, 1097,
1612 1155, 1155, 1155, 1254, 1162, 1162, 1162, 1147, 1162, 1154,
1613 1255, 1162, 1163, 1163, 1163, 1155, 1168, 1168, 1168, 962,
1615 1162, 1169, 1169, 1169, 1171, 1171, 1171, 1269, 1163, 1262,
1616 961, 1259, 1168, 1170, 1170, 1170, 1169, 1170, 1272, 1171,
1617 1170, 1172, 1172, 1172, 960, 1172, 1263, 1272, 1172, 1181,
1618 1181, 1181, 1186, 1186, 1186, 1259, 1186, 1284, 1269, 1186,
1619 1187, 1187, 1187, 1260, 1187, 1181, 1264, 1187, 1186, 1190,
1620 1190, 1190, 1262, 1190, 1265, 1275, 1190, 1225, 1225, 1225,
1621 1181, 1239, 1239, 1239, 1261, 1261, 1261, 1260, 1284, 1263,
1622 1264, 1271, 1276, 1225, 1270, 1270, 1270, 1239, 1265, 1277,
1623 1261, 1291, 1280, 1271, 1273, 1273, 1273, 1275, 1278, 1280,
1624 1270, 1277, 1279, 1279, 1279, 1281, 1285, 1278, 1292, 957,
1626 1273, 1289, 1281, 949, 1276, 1282, 1282, 1282, 1279, 1282,
1627 1290, 1299, 1282, 1283, 1283, 1283, 1286, 1286, 1286, 1291,
1628 1300, 1282, 1287, 1287, 1287, 1289, 1295, 1285, 1296, 1283,
1629 1301, 1302, 1286, 1295, 1290, 1296, 1292, 1303, 1287, 1293,
1630 1293, 1293, 1297, 1297, 1297, 1304, 1307, 1308, 1305, 1306,
1631 1299, 1309, 1310, 1311, 1312, 1293, 1314, 1315, 1297, 1300,
1632 1318, 1303, 1316, 1312, 1319, 1311, 1321, 1320, 1324, 1304,
1633 1301, 1302, 1305, 1306, 1325, 1321, 1317, 1317, 1317, 1320,
1634 1327, 1315, 1314, 1307, 1308, 1328, 1316, 947, 1335, 1336,
1635 1309, 1310, 1317, 1322, 1322, 1322, 1326, 1326, 1326, 1333,
1637 1324, 1331, 1334, 1318, 946, 945, 1325, 1319, 1331, 1322,
1638 1332, 1327, 1326, 1329, 1329, 1329, 1328, 1332, 1337, 1338,
1639 1339, 1340, 936, 1333, 935, 934, 1334, 1335, 1336, 1329,
1640 1340, 933, 1339, 1341, 1341, 1341, 1342, 1342, 1342, 932,
1641 931, 925, 1337, 1338, 923, 921, 908, 907, 900, 1341,
1642 899, 898, 1342, 1345, 1345, 1345, 1345, 1345, 1345, 1345,
1643 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1347, 1347, 1347,
1644 1347, 1347, 1347, 1347, 1348, 1348, 1348, 1348, 1348, 1348,
1645 1348, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1350, 1350,
1646 1350, 1350, 1350, 1350, 1350, 1351, 1351, 1351, 1351, 1351,
1648 1351, 1351, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1353,
1649 1353, 1353, 1353, 1353, 1353, 1353, 1354, 1354, 1354, 1354,
1650 1354, 1354, 1354, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
1651 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1357, 1357, 1357,
1652 1357, 1357, 1357, 1357, 1358, 1358, 1358, 1358, 1358, 1358,
1653 1358, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1360, 1360,
1654 1360, 1360, 1360, 1360, 1360, 1361, 1361, 1361, 1361, 1361,
1655 1361, 1361, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1363,
1656 1363, 1363, 1363, 1363, 1363, 1363, 1364, 1364, 1364, 1364,
1657 1364, 1364, 1364, 1365, 1365, 1365, 1365, 1365, 1365, 1365,
1659 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1367, 1367, 1367,
1660 897, 1367, 1368, 1368, 1368, 895, 1368, 1369, 1369, 1369,
1661 879, 1369, 1370, 1370, 1370, 875, 1370, 1371, 1371, 1371,
1662 865, 1371, 1372, 1372, 1372, 864, 1372, 1373, 1373, 1373,
1663 863, 1373, 1374, 1374, 1374, 862, 1374, 1375, 1375, 1375,
1664 1375, 1375, 860, 1375, 1376, 845, 1376, 1377, 842, 1377,
1665 1378, 833, 1378, 1379, 832, 1379, 1380, 831, 1380, 1381,
1666 830, 1381, 1382, 824, 1382, 1383, 812, 1383, 1384, 1384,
1667 1384, 1384, 1384, 1384, 1384, 1385, 808, 805, 1385, 1386,
1668 1386, 1386, 1386, 1386, 1386, 1387, 1387, 1387, 1387, 1387,
1670 1387, 1388, 1388, 1388, 1388, 1388, 1388, 1389, 1389, 1389,
1671 1389, 1389, 1389, 1390, 1390, 1390, 1390, 1390, 1390, 1391,
1672 1391, 1391, 1391, 1391, 1391, 1392, 1392, 1392, 1392, 1392,
1673 1392, 1393, 1393, 1393, 1393, 1393, 1393, 1394, 1394, 1394,
1674 1394, 1394, 1394, 1394, 1395, 1395, 1395, 1395, 1395, 1395,
1675 1395, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1397, 1397,
1676 1397, 1397, 1397, 1397, 1397, 1398, 1398, 1398, 1398, 1398,
1677 1398, 1398, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1400,
1678 1400, 1400, 1400, 1400, 1400, 1400, 804, 802, 797, 783,
1679 782, 781, 776, 774, 770, 769, 767, 765, 747, 746,
1681 745, 739, 738, 737, 729, 728, 727, 726, 724, 704,
1682 699, 697, 696, 695, 694, 689, 687, 686, 685, 684,
1683 681, 679, 671, 666, 665, 663, 662, 661, 660, 659,
1684 658, 657, 652, 651, 650, 649, 648, 647, 646, 645,
1685 642, 636, 632, 630, 628, 627, 624, 621, 619, 616,
1686 615, 612, 611, 608, 607, 606, 603, 598, 594, 589,
1687 587, 586, 585, 583, 581, 579, 578, 577, 575, 573,
1688 572, 571, 570, 565, 564, 563, 560, 559, 558, 555,
1689 550, 546, 544, 543, 539, 534, 532, 530, 527, 523,
1690 522, 519, 511, 510, 509, 503, 502, 501, 499, 498,
1692 495, 492, 490, 487, 485, 484, 481, 477, 472, 466,
1693 463, 462, 456, 455, 454, 450, 449, 448, 447, 444,
1694 443, 442, 441, 436, 431, 430, 425, 424, 422, 416,
1695 409, 402, 401, 399, 398, 393, 392, 390, 389, 388,
1696 382, 381, 380, 379, 373, 372, 371, 368, 367, 366,
1697 364, 360, 358, 355, 354, 351, 350, 349, 348, 345,
1698 344, 340, 336, 335, 334, 333, 332, 329, 328, 327,
1699 326, 325, 324, 321, 320, 319, 318, 317, 316, 313,
1700 312, 310, 309, 308, 307, 306, 302, 300, 299, 298,
1701 297, 296, 295, 292, 291, 290, 289, 288, 287, 284,
1703 283, 280, 279, 278, 277, 276, 273, 272, 271, 270,
1704 269, 268, 265, 264, 263, 262, 261, 260, 259, 256,
1705 255, 252, 251, 250, 249, 248, 247, 246, 243, 242,
1706 241, 240, 239, 233, 232, 230, 227, 226, 222, 218,
1707 210, 209, 208, 207, 203, 196, 192, 184, 183, 182,
1708 178, 170, 169, 168, 164, 157, 156, 155, 154, 153,
1709 152, 148, 140, 136, 127, 123, 119, 118, 117, 111,
1710 110, 108, 105, 93, 1344, 1344, 1344, 1344, 1344, 1344,
1711 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1712 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1714 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1715 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1716 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1717 1344, 1344, 1344, 1344, 1344, 1344, 1344
1720 /* Table of booleans, true if rule could match eol. */
1721 static yyconst flex_int32_t yy_rule_can_match_eol[179] =
1723 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1724 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0,
1725 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1726 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1727 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1728 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1729 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1730 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
1731 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, };
1733 static yy_state_type yy_last_accepting_state;
1734 static char *yy_last_accepting_cpos;
1736 extern int surf_parse__flex_debug;
1737 int surf_parse__flex_debug = 0;
1739 /* The intent behind this definition is that it'll catch
1740 * any uses of REJECT which flex missed.
1742 #define REJECT reject_used_but_not_detected
1743 #define yymore() yymore_used_but_not_detected
1744 #define YY_MORE_ADJ 0
1745 #define YY_RESTORE_YY_MORE_OFFSET
1746 char *surf_parse_text;
1747 /* Validating XML processor for surf/surfxml.dtd.
1748 * Generated 2006/07/18 21:02:15.
1750 * This program was generated with the FleXML XML processor generator.
1751 * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved.
1752 * FleXML is Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1753 * (Id: flexml.pl,v 1.53 2006/07/18 12:12:06 mquinson Exp).
1755 * There are two, intertwined parts to this program, part A and part B.
1760 * Some parts, here collectively called "Part A", are found in the
1761 * FleXML package. They are Copyright (C) 1999-2005 Kristoffer Rose
1762 * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1764 * You can redistribute, use, perform, display and/or modify "Part A"
1765 * provided the following two conditions hold:
1767 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1768 * FleXML; without even the implied warranty of MERCHANTABILITY or
1769 * FITNESS FOR A PARTICULAR PURPOSE.
1771 * 2. The program distribution conditions do not in any way affect the
1772 * distribution conditions of the FleXML system used to generate this
1773 * file or any version of FleXML derived from that system.
1775 * Notice that these are explicit rights granted to you for files
1776 * generated by the FleXML system. For your rights in connection with
1777 * the FleXML system itself please consult the GNU General Public License.
1782 * The other parts, here collectively called "Part B", and which came
1783 * from the DTD used by FleXML to generate this program, can be
1784 * distributed (or not, as the case may be) under the terms of whoever
1785 * wrote them, provided these terms respect and obey the two conditions
1786 * above under the heading "Part A".
1788 * The author of and contributors to FleXML specifically disclaim
1789 * any copyright interest in "Part B", unless "Part B" was written
1790 * by the author of or contributors to FleXML.
1794 /* Version strings. */
1795 const char rcs_surfxml_flexml_skeleton[] =
1796 "$" "Id: skel,v 1.31 2006/07/18 18:21:13 mquinson Exp $";
1797 const char rcs_surfxml_flexml[] =
1798 "$" "Id: flexml.pl,v 1.53 2006/07/18 12:12:06 mquinson Exp $";
1808 /* Generated definitions. */
1809 #define FLEXML_yylineno
1810 #define FLEXML_BUFFERSTACKSIZE 1000000
1812 /* XML processor api. */
1813 /* FleXML-provided data. */
1814 const char* surfxml_pcdata;
1815 AT_surfxml_network_link_bandwidth A_surfxml_network_link_bandwidth;
1816 AT_surfxml_process_host A_surfxml_process_host;
1817 AT_surfxml_network_link_latency_file A_surfxml_network_link_latency_file;
1818 AT_surfxml_route_impact_on_dst_with_other_send A_surfxml_route_impact_on_dst_with_other_send;
1819 AT_surfxml_cpu_interference_send_recv A_surfxml_cpu_interference_send_recv;
1820 AT_surfxml_route_impact_on_dst A_surfxml_route_impact_on_dst;
1821 AT_surfxml_platform_description_version A_surfxml_platform_description_version;
1822 AT_surfxml_route_impact_on_src_with_other_recv A_surfxml_route_impact_on_src_with_other_recv;
1823 AT_surfxml_route_element_name A_surfxml_route_element_name;
1824 AT_surfxml_process_start_time A_surfxml_process_start_time;
1825 AT_surfxml_process_function A_surfxml_process_function;
1826 AT_surfxml_cpu_state A_surfxml_cpu_state;
1827 AT_surfxml_cpu_interference_send A_surfxml_cpu_interference_send;
1828 AT_surfxml_network_link_bandwidth_file A_surfxml_network_link_bandwidth_file;
1829 AT_surfxml_cpu_name A_surfxml_cpu_name;
1830 AT_surfxml_process_kill_time A_surfxml_process_kill_time;
1831 AT_surfxml_network_link_state A_surfxml_network_link_state;
1832 AT_surfxml_cpu_availability_file A_surfxml_cpu_availability_file;
1833 AT_surfxml_argument_value A_surfxml_argument_value;
1834 AT_surfxml_route_src A_surfxml_route_src;
1835 AT_surfxml_route_impact_on_src A_surfxml_route_impact_on_src;
1836 AT_surfxml_cpu_max_outgoing_rate A_surfxml_cpu_max_outgoing_rate;
1837 AT_surfxml_cpu_availability A_surfxml_cpu_availability;
1838 AT_surfxml_cpu_interference_recv A_surfxml_cpu_interference_recv;
1839 AT_surfxml_network_link_name A_surfxml_network_link_name;
1840 AT_surfxml_cpu_power A_surfxml_cpu_power;
1841 AT_surfxml_include_file A_surfxml_include_file;
1842 AT_surfxml_network_link_sharing_policy A_surfxml_network_link_sharing_policy;
1843 AT_surfxml_route_dst A_surfxml_route_dst;
1844 AT_surfxml_network_link_latency A_surfxml_network_link_latency;
1845 AT_surfxml_cpu_state_file A_surfxml_cpu_state_file;
1846 AT_surfxml_network_link_state_file A_surfxml_network_link_state_file;
1850 # define ENTER(state) debug_enter(state,#state)
1851 # define LEAVE debug_leave()
1852 # define SET(state) debug_set(state,#state)
1853 static void debug_enter(int, const char*);
1854 static void debug_leave(void);
1855 static void debug_set(int, const char*);
1857 # define ENTER(state) (yy_push_state(state))
1858 # define LEAVE (yy_pop_state())
1859 # define SET(state) BEGIN(state)
1862 /* Generic actions. */
1863 #define SKIP /*skip*/
1864 #define SUCCEED CLEANUP; return 0
1866 #define FAIL return fail
1867 static int fail(const char*, ...);
1868 const char * surfxml_parse_err_msg(void);
1871 static void cleanup(void);
1872 #define CLEANUP cleanup()
1874 /* Text buffer stack handling. */
1875 static char bufferstack[FLEXML_BUFFERSTACKSIZE];
1876 static char* limit = bufferstack + FLEXML_BUFFERSTACKSIZE;
1877 typedef struct BufferLast_s {
1878 struct BufferLast_s *old; const char* saved; char new1[1];
1880 #ifdef FLEXML_HasMixed
1881 static BufferLast* last = (BufferLast*)0;
1883 static char* next = bufferstack;
1885 #define BUFFERSET(P) (P = next)
1886 #define BUFFERPUTC(C) (assert(next<limit), *(next++) = (C))
1887 #define BUFFERDONE (BUFFERPUTC('\0'))
1889 #define BUFFERLITERAL(C,P) bufferliteral(C,&(P),surf_parse_text)
1890 static void bufferliteral(char c, const char** pp, char* text)
1892 char *s = strchr(text,c), *e = strrchr(text,c);
1893 assert(s <= e); BUFFERSET(*pp);
1895 if (isspace(*s)) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
1896 else BUFFERPUTC(*s);
1901 #ifdef FLEXML_HasMixed
1902 static void pushbuffer(const char* p)
1904 BufferLast* l = (BufferLast*)next;
1905 assert(next < limit);
1912 static const char* popbuffer(void)
1914 BufferLast* l = last;
1915 assert(last != (BufferLast*)0);
1922 /* General internal entities are `unput' back onto the input stream... */
1923 #define ENTITYTEXT(T) \
1924 { char *s = (T), *e = s+strlen(s);\
1925 while (--e >= s) { unput(*e); }}
1926 /* Flex standard options. */
1927 #define YY_NO_INPUT 1
1928 /* Flex user-requested options. */
1929 /* XML character classes (currently restricted to ASCII). */
1930 /* "Common syntactic structures." */
1931 /* "Names and Tokens." */
1932 /* Miscellaneous. */
1933 /* Parser states (flex `exclusive start conditions'):
1935 * PROLOG the XML prolog of the document before <?xml...>
1936 * DOCTYPE the XML prolog of the document after <?xml...>
1937 * EPILOG after the root element
1938 * INCOMMENT inside an XML comment <!--....-->
1939 * INPI inside an XML PI <?...?>
1940 * VALUE1 inside a '...'-delimited literal
1941 * VALUE2 inside a "..."-delimited literal
1942 * CDATA inside a <![CDATA[...] ]> section.
1943 * ROOT_<tag> expect root element <tag>
1944 * AL_<tag> inside the attribute list for <tag>
1945 * IN_<tag> inside a <tag> with element contents (ready for end tag)
1946 * IMPOSSIBLE dummy to permit disabling rules; must be last
1950 const char* *surfxml_statenames=NULL;
1961 #define ROOT_surfxml_platform_description 9
1962 #define AL_surfxml_platform_description 10
1963 #define S_surfxml_platform_description 11
1964 #define S_surfxml_platform_description_1 12
1965 #define S_surfxml_platform_description_2 13
1966 #define E_surfxml_platform_description 14
1967 #define ROOT_surfxml_include 15
1968 #define AL_surfxml_include 16
1969 #define S_surfxml_include 17
1970 #define S_surfxml_include_1 18
1971 #define S_surfxml_include_2 19
1972 #define E_surfxml_include 20
1973 #define ROOT_surfxml_cpu 21
1974 #define AL_surfxml_cpu 22
1975 #define E_surfxml_cpu 23
1976 #define ROOT_surfxml_network_link 24
1977 #define AL_surfxml_network_link 25
1978 #define E_surfxml_network_link 26
1979 #define ROOT_surfxml_route 27
1980 #define AL_surfxml_route 28
1981 #define S_surfxml_route 29
1982 #define S_surfxml_route_1 30
1983 #define S_surfxml_route_2 31
1984 #define E_surfxml_route 32
1985 #define ROOT_surfxml_route_element 33
1986 #define AL_surfxml_route_element 34
1987 #define E_surfxml_route_element 35
1988 #define ROOT_surfxml_process 36
1989 #define AL_surfxml_process 37
1990 #define S_surfxml_process 38
1991 #define S_surfxml_process_1 39
1992 #define S_surfxml_process_2 40
1993 #define E_surfxml_process 41
1994 #define ROOT_surfxml_argument 42
1995 #define AL_surfxml_argument 43
1996 #define E_surfxml_argument 44
1997 #define IMPOSSIBLE 45
1999 #ifndef YY_NO_UNISTD_H
2000 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2001 * down here because we want the user's section 1 to have been scanned first.
2002 * The user has a chance to override it with an option.
2007 #ifndef YY_EXTRA_TYPE
2008 #define YY_EXTRA_TYPE void *
2011 /* Macros after this point can all be overridden by user definitions in
2015 #ifndef YY_SKIP_YYWRAP
2017 extern "C" int surf_parse_wrap (void );
2019 extern int surf_parse_wrap (void );
2024 static void yy_flex_strncpy (char *,yyconst char *,int );
2027 #ifdef YY_NEED_STRLEN
2028 static int yy_flex_strlen (yyconst char * );
2034 static int yyinput (void );
2036 static int input (void );
2041 static int yy_start_stack_ptr = 0;
2042 static int yy_start_stack_depth = 0;
2043 static int *yy_start_stack = 0;
2045 static void yy_push_state (int new_state );
2047 static void yy_pop_state (void );
2049 /* Amount of stuff to slurp up with each read. */
2050 #ifndef YY_READ_BUF_SIZE
2051 #define YY_READ_BUF_SIZE 8192
2054 /* Copy whatever the last rule matched to the standard output. */
2056 /* This used to be an fputs(), but since the string might contain NUL's,
2057 * we now use fwrite().
2059 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
2062 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2063 * is returned in "result".
2066 #define YY_INPUT(buf,result,max_size) \
2067 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2071 for ( n = 0; n < max_size && \
2072 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
2073 buf[n] = (char) c; \
2075 buf[n++] = (char) c; \
2076 if ( c == EOF && ferror( surf_parse_in ) ) \
2077 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2083 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2085 if( errno != EINTR) \
2087 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2091 clearerr(surf_parse_in); \
2098 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2099 * we don't want an extra ';' after the "return" because that will cause
2100 * some compilers to complain about unreachable statements.
2103 #define yyterminate() return YY_NULL
2106 /* Number of entries by which start-condition stack grows. */
2107 #ifndef YY_START_STACK_INCR
2108 #define YY_START_STACK_INCR 25
2111 /* Report a fatal error. */
2112 #ifndef YY_FATAL_ERROR
2113 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2116 /* end tables serialization structures and prototypes */
2118 /* Default declaration of generated scanner - a define so the user can
2119 * easily add parameters.
2122 #define YY_DECL_IS_OURS 1
2124 extern int surf_parse_lex (void);
2126 #define YY_DECL int surf_parse_lex (void)
2127 #endif /* !YY_DECL */
2129 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2132 #ifndef YY_USER_ACTION
2133 #define YY_USER_ACTION
2136 /* Code executed at the end of each rule. */
2138 #define YY_BREAK break;
2141 #define YY_RULE_SETUP \
2144 /** The main scanner function which does all the work.
2148 register yy_state_type yy_current_state;
2149 register char *yy_cp, *yy_bp;
2150 register int yy_act;
2152 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
2156 if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
2157 surfxml_statenames[PROLOG] = NULL;
2158 surfxml_statenames[DOCTYPE] = NULL;
2159 surfxml_statenames[EPILOG] = NULL;
2160 surfxml_statenames[INCOMMENT] = NULL;
2161 surfxml_statenames[INPI] = NULL;
2162 surfxml_statenames[VALUE1] = NULL;
2163 surfxml_statenames[VALUE2] = NULL;
2164 surfxml_statenames[CDATA] = NULL;
2165 surfxml_statenames[ROOT_surfxml_platform_description] = NULL;
2166 surfxml_statenames[AL_surfxml_platform_description] = NULL;
2167 surfxml_statenames[S_surfxml_platform_description] = "platform_description";
2168 surfxml_statenames[S_surfxml_platform_description_1] = "platform_description";
2169 surfxml_statenames[S_surfxml_platform_description_2] = "platform_description";
2170 surfxml_statenames[E_surfxml_platform_description] = "platform_description";
2171 surfxml_statenames[ROOT_surfxml_include] = NULL;
2172 surfxml_statenames[AL_surfxml_include] = NULL;
2173 surfxml_statenames[S_surfxml_include] = "include";
2174 surfxml_statenames[S_surfxml_include_1] = "include";
2175 surfxml_statenames[S_surfxml_include_2] = "include";
2176 surfxml_statenames[E_surfxml_include] = "include";
2177 surfxml_statenames[ROOT_surfxml_cpu] = NULL;
2178 surfxml_statenames[AL_surfxml_cpu] = NULL;
2179 surfxml_statenames[E_surfxml_cpu] = "cpu";
2180 surfxml_statenames[ROOT_surfxml_network_link] = NULL;
2181 surfxml_statenames[AL_surfxml_network_link] = NULL;
2182 surfxml_statenames[E_surfxml_network_link] = "network_link";
2183 surfxml_statenames[ROOT_surfxml_route] = NULL;
2184 surfxml_statenames[AL_surfxml_route] = NULL;
2185 surfxml_statenames[S_surfxml_route] = "route";
2186 surfxml_statenames[S_surfxml_route_1] = "route";
2187 surfxml_statenames[S_surfxml_route_2] = "route";
2188 surfxml_statenames[E_surfxml_route] = "route";
2189 surfxml_statenames[ROOT_surfxml_route_element] = NULL;
2190 surfxml_statenames[AL_surfxml_route_element] = NULL;
2191 surfxml_statenames[E_surfxml_route_element] = "route_element";
2192 surfxml_statenames[ROOT_surfxml_process] = NULL;
2193 surfxml_statenames[AL_surfxml_process] = NULL;
2194 surfxml_statenames[S_surfxml_process] = "process";
2195 surfxml_statenames[S_surfxml_process_1] = "process";
2196 surfxml_statenames[S_surfxml_process_2] = "process";
2197 surfxml_statenames[E_surfxml_process] = "process";
2198 surfxml_statenames[ROOT_surfxml_argument] = NULL;
2199 surfxml_statenames[AL_surfxml_argument] = NULL;
2200 surfxml_statenames[E_surfxml_argument] = "argument";
2203 /* COMMENTS and PIs: handled uniformly for efficiency. */
2214 (yy_start) = 1; /* first start state */
2216 if ( ! surf_parse_in )
2217 surf_parse_in = stdin;
2219 if ( ! surf_parse_out )
2220 surf_parse_out = stdout;
2222 if ( ! YY_CURRENT_BUFFER ) {
2223 surf_parse_ensure_buffer_stack ();
2224 YY_CURRENT_BUFFER_LVALUE =
2225 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
2228 surf_parse__load_buffer_state( );
2231 while ( 1 ) /* loops until end-of-file is reached */
2233 yy_cp = (yy_c_buf_p);
2235 /* Support of surf_parse_text. */
2236 *yy_cp = (yy_hold_char);
2238 /* yy_bp points to the position in yy_ch_buf of the start of
2243 yy_current_state = (yy_start);
2247 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2248 if ( yy_accept[yy_current_state] )
2250 (yy_last_accepting_state) = yy_current_state;
2251 (yy_last_accepting_cpos) = yy_cp;
2253 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2255 yy_current_state = (int) yy_def[yy_current_state];
2256 if ( yy_current_state >= 1345 )
2257 yy_c = yy_meta[(unsigned int) yy_c];
2259 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2262 while ( yy_base[yy_current_state] != 3675 );
2265 yy_act = yy_accept[yy_current_state];
2267 { /* have to back up */
2268 yy_cp = (yy_last_accepting_cpos);
2269 yy_current_state = (yy_last_accepting_state);
2270 yy_act = yy_accept[yy_current_state];
2273 YY_DO_BEFORE_ACTION;
2275 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2278 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
2279 if ( surf_parse_text[yyl] == '\n' )
2281 surf_parse_lineno++;
2285 do_action: /* This label is used only to access EOF actions. */
2288 { /* beginning of action switch */
2289 case 0: /* must back up */
2290 /* undo the effects of YY_DO_BEFORE_ACTION */
2291 *yy_cp = (yy_hold_char);
2292 yy_cp = (yy_last_accepting_cpos);
2293 yy_current_state = (yy_last_accepting_state);
2294 goto yy_find_action;
2312 /* rule 6 can match eol */
2316 case YY_STATE_EOF(INCOMMENT):
2317 FAIL("EOF in comment.");
2326 /* rule 9 can match eol */
2330 case YY_STATE_EOF(INPI):
2331 FAIL("EOF in PI (processing instruction).");
2334 /* SPACES: skipped uniformly */
2336 /* rule 10 can match eol */
2340 /* PROLOG: determine root element and process it. */
2343 /* rule 11 can match eol */
2348 /* rule 12 can match eol */
2350 FAIL("Bad declaration %s.",surf_parse_text);
2354 /* rule 13 can match eol */
2356 SET(ROOT_surfxml_argument);
2359 /* rule 14 can match eol */
2361 SET(ROOT_surfxml_route_element);
2364 /* rule 15 can match eol */
2366 SET(ROOT_surfxml_cpu);
2369 /* rule 16 can match eol */
2371 SET(ROOT_surfxml_include);
2374 /* rule 17 can match eol */
2376 SET(ROOT_surfxml_route);
2379 /* rule 18 can match eol */
2381 SET(ROOT_surfxml_platform_description);
2384 /* rule 19 can match eol */
2386 SET(ROOT_surfxml_network_link);
2389 /* rule 20 can match eol */
2391 SET(ROOT_surfxml_process);
2394 /* rule 21 can match eol */
2396 FAIL("Bad declaration %s.",surf_parse_text);
2400 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
2402 case YY_STATE_EOF(PROLOG):
2403 case YY_STATE_EOF(DOCTYPE):
2404 FAIL("EOF in prolog.");
2407 /* RULES DERIVED FROM DTD. */
2408 /* <!-- Small DTD for SURF based tools. --> */
2410 /* rule 23 can match eol */
2413 A_surfxml_platform_description_version = "0.0";
2414 ENTER(AL_surfxml_platform_description);
2419 /* rule 24 can match eol */
2421 ENTER(VALUE1); BUFFERSET(A_surfxml_platform_description_version);
2424 /* rule 25 can match eol */
2426 ENTER(VALUE2); BUFFERSET(A_surfxml_platform_description_version);
2431 LEAVE; STag_surfxml_platform_description();surfxml_pcdata = NULL; ENTER(S_surfxml_platform_description);
2437 LEAVE; STag_surfxml_platform_description(); surfxml_pcdata = NULL; ETag_surfxml_platform_description();
2439 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2445 FAIL("Unexpected character `%c' in attribute list of platform_description element.", surf_parse_text[0]);
2449 FAIL("Bad attribute `%s' in `platform_description' element start tag.",surf_parse_text);
2451 case YY_STATE_EOF(AL_surfxml_platform_description):
2452 FAIL("EOF in attribute list of `platform_description' element.");
2456 /* rule 30 can match eol */
2460 ETag_surfxml_platform_description();
2462 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2467 /* rule 31 can match eol */
2469 FAIL("Unexpected end-tag `%s': `</platform_description>' expected.",surf_parse_text);
2473 FAIL("Unexpected character `%c': `</platform_description>' expected.",surf_parse_text[0]);
2475 case YY_STATE_EOF(E_surfxml_platform_description):
2476 case YY_STATE_EOF(S_surfxml_platform_description_2):
2477 case YY_STATE_EOF(S_surfxml_platform_description):
2478 FAIL("Premature EOF: `</platform_description>' expected.");
2482 /* rule 33 can match eol */
2485 A_surfxml_include_file = NULL;
2486 ENTER(AL_surfxml_include);
2491 /* rule 34 can match eol */
2493 ENTER(VALUE1); BUFFERSET(A_surfxml_include_file);
2496 /* rule 35 can match eol */
2498 ENTER(VALUE2); BUFFERSET(A_surfxml_include_file);
2503 if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2504 LEAVE; STag_surfxml_include();surfxml_pcdata = NULL; ENTER(S_surfxml_include);
2510 if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2511 LEAVE; STag_surfxml_include(); surfxml_pcdata = NULL; ETag_surfxml_include();
2513 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2514 case ROOT_surfxml_include: SET(EPILOG); break;
2515 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2521 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
2525 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
2527 case YY_STATE_EOF(AL_surfxml_include):
2528 FAIL("EOF in attribute list of `include' element.");
2532 /* rule 40 can match eol */
2536 ETag_surfxml_include();
2538 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2539 case ROOT_surfxml_include: SET(EPILOG); break;
2540 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2545 /* rule 41 can match eol */
2547 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
2551 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
2553 case YY_STATE_EOF(E_surfxml_include):
2554 case YY_STATE_EOF(S_surfxml_include):
2555 case YY_STATE_EOF(S_surfxml_include_2):
2556 FAIL("Premature EOF: `</include>' expected.");
2560 /* rule 43 can match eol */
2563 A_surfxml_cpu_name = NULL;
2564 A_surfxml_cpu_power = NULL;
2565 A_surfxml_cpu_availability = "1.0";
2566 A_surfxml_cpu_availability_file = NULL;
2567 A_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2568 A_surfxml_cpu_state_file = NULL;
2569 A_surfxml_cpu_interference_send = "1.0";
2570 A_surfxml_cpu_interference_recv = "1.0";
2571 A_surfxml_cpu_interference_send_recv = "1.0";
2572 A_surfxml_cpu_max_outgoing_rate = "-1.0";
2573 ENTER(AL_surfxml_cpu);
2578 /* rule 44 can match eol */
2580 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_name);
2583 /* rule 45 can match eol */
2585 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_name);
2588 /* rule 46 can match eol */
2590 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_power);
2593 /* rule 47 can match eol */
2595 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_power);
2598 /* rule 48 can match eol */
2600 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability);
2603 /* rule 49 can match eol */
2605 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability);
2608 /* rule 50 can match eol */
2610 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability_file);
2613 /* rule 51 can match eol */
2615 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability_file);
2618 /* rule 52 can match eol */
2620 /* rule 53 can match eol */
2622 A_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2625 /* rule 54 can match eol */
2627 /* rule 55 can match eol */
2629 A_surfxml_cpu_state = A_surfxml_cpu_state_OFF;
2632 /* rule 56 can match eol */
2634 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_state_file);
2637 /* rule 57 can match eol */
2639 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_state_file);
2642 /* rule 58 can match eol */
2644 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send);
2647 /* rule 59 can match eol */
2649 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send);
2652 /* rule 60 can match eol */
2654 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_recv);
2657 /* rule 61 can match eol */
2659 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_recv);
2662 /* rule 62 can match eol */
2664 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send_recv);
2667 /* rule 63 can match eol */
2669 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send_recv);
2672 /* rule 64 can match eol */
2674 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_max_outgoing_rate);
2677 /* rule 65 can match eol */
2679 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_max_outgoing_rate);
2684 if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2685 if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2686 LEAVE; STag_surfxml_cpu();surfxml_pcdata = NULL; ENTER(E_surfxml_cpu);
2692 if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2693 if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2694 LEAVE; STag_surfxml_cpu(); surfxml_pcdata = NULL; ETag_surfxml_cpu();
2696 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2697 case ROOT_surfxml_cpu: SET(EPILOG); break;
2698 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2704 FAIL("Unexpected character `%c' in attribute list of cpu element.", surf_parse_text[0]);
2708 FAIL("Bad attribute `%s' in `cpu' element start tag.",surf_parse_text);
2710 case YY_STATE_EOF(AL_surfxml_cpu):
2711 FAIL("EOF in attribute list of `cpu' element.");
2715 /* rule 70 can match eol */
2721 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2722 case ROOT_surfxml_cpu: SET(EPILOG); break;
2723 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2728 /* rule 71 can match eol */
2730 FAIL("Unexpected end-tag `%s': `</cpu>' expected.",surf_parse_text);
2734 FAIL("Unexpected character `%c': `</cpu>' expected.",surf_parse_text[0]);
2736 case YY_STATE_EOF(E_surfxml_cpu):
2737 FAIL("Premature EOF: `</cpu>' expected.");
2741 /* rule 73 can match eol */
2744 A_surfxml_network_link_name = NULL;
2745 A_surfxml_network_link_bandwidth = NULL;
2746 A_surfxml_network_link_bandwidth_file = NULL;
2747 A_surfxml_network_link_latency = "0.0";
2748 A_surfxml_network_link_latency_file = NULL;
2749 A_surfxml_network_link_state = A_surfxml_network_link_state_ON;
2750 A_surfxml_network_link_state_file = NULL;
2751 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
2752 ENTER(AL_surfxml_network_link);
2757 /* rule 74 can match eol */
2759 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_name);
2762 /* rule 75 can match eol */
2764 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_name);
2767 /* rule 76 can match eol */
2769 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth);
2772 /* rule 77 can match eol */
2774 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth);
2777 /* rule 78 can match eol */
2779 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth_file);
2782 /* rule 79 can match eol */
2784 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth_file);
2787 /* rule 80 can match eol */
2789 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency);
2792 /* rule 81 can match eol */
2794 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency);
2797 /* rule 82 can match eol */
2799 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency_file);
2802 /* rule 83 can match eol */
2804 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency_file);
2807 /* rule 84 can match eol */
2809 /* rule 85 can match eol */
2811 A_surfxml_network_link_state = A_surfxml_network_link_state_ON;
2814 /* rule 86 can match eol */
2816 /* rule 87 can match eol */
2818 A_surfxml_network_link_state = A_surfxml_network_link_state_OFF;
2821 /* rule 88 can match eol */
2823 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_state_file);
2826 /* rule 89 can match eol */
2828 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_state_file);
2831 /* rule 90 can match eol */
2833 /* rule 91 can match eol */
2835 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
2838 /* rule 92 can match eol */
2840 /* rule 93 can match eol */
2842 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_FATPIPE;
2847 if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2848 if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2849 LEAVE; STag_surfxml_network_link();surfxml_pcdata = NULL; ENTER(E_surfxml_network_link);
2855 if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2856 if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2857 LEAVE; STag_surfxml_network_link(); surfxml_pcdata = NULL; ETag_surfxml_network_link();
2859 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2860 case ROOT_surfxml_network_link: SET(EPILOG); break;
2861 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2867 FAIL("Unexpected character `%c' in attribute list of network_link element.", surf_parse_text[0]);
2871 FAIL("Bad attribute `%s' in `network_link' element start tag.",surf_parse_text);
2873 case YY_STATE_EOF(AL_surfxml_network_link):
2874 FAIL("EOF in attribute list of `network_link' element.");
2878 /* rule 98 can match eol */
2882 ETag_surfxml_network_link();
2884 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2885 case ROOT_surfxml_network_link: SET(EPILOG); break;
2886 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2891 /* rule 99 can match eol */
2893 FAIL("Unexpected end-tag `%s': `</network_link>' expected.",surf_parse_text);
2897 FAIL("Unexpected character `%c': `</network_link>' expected.",surf_parse_text[0]);
2899 case YY_STATE_EOF(E_surfxml_network_link):
2900 FAIL("Premature EOF: `</network_link>' expected.");
2904 /* rule 101 can match eol */
2907 A_surfxml_route_src = NULL;
2908 A_surfxml_route_dst = NULL;
2909 A_surfxml_route_impact_on_src = "0.0";
2910 A_surfxml_route_impact_on_dst = "0.0";
2911 A_surfxml_route_impact_on_src_with_other_recv = "0.0";
2912 A_surfxml_route_impact_on_dst_with_other_send = "0.0";
2913 ENTER(AL_surfxml_route);
2918 /* rule 102 can match eol */
2920 ENTER(VALUE1); BUFFERSET(A_surfxml_route_src);
2923 /* rule 103 can match eol */
2925 ENTER(VALUE2); BUFFERSET(A_surfxml_route_src);
2928 /* rule 104 can match eol */
2930 ENTER(VALUE1); BUFFERSET(A_surfxml_route_dst);
2933 /* rule 105 can match eol */
2935 ENTER(VALUE2); BUFFERSET(A_surfxml_route_dst);
2938 /* rule 106 can match eol */
2940 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src);
2943 /* rule 107 can match eol */
2945 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src);
2948 /* rule 108 can match eol */
2950 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst);
2953 /* rule 109 can match eol */
2955 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst);
2958 /* rule 110 can match eol */
2960 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv);
2963 /* rule 111 can match eol */
2965 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv);
2968 /* rule 112 can match eol */
2970 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send);
2973 /* rule 113 can match eol */
2975 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send);
2980 if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
2981 if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
2982 LEAVE; STag_surfxml_route();surfxml_pcdata = NULL; ENTER(S_surfxml_route);
2988 if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
2989 if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
2990 LEAVE; STag_surfxml_route(); surfxml_pcdata = NULL; ETag_surfxml_route();
2992 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2993 case ROOT_surfxml_route: SET(EPILOG); break;
2994 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3000 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
3004 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
3006 case YY_STATE_EOF(AL_surfxml_route):
3007 FAIL("EOF in attribute list of `route' element.");
3011 /* rule 118 can match eol */
3015 ETag_surfxml_route();
3017 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3018 case ROOT_surfxml_route: SET(EPILOG); break;
3019 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3024 /* rule 119 can match eol */
3026 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
3030 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
3032 case YY_STATE_EOF(S_surfxml_route):
3033 case YY_STATE_EOF(S_surfxml_route_2):
3034 case YY_STATE_EOF(E_surfxml_route):
3035 FAIL("Premature EOF: `</route>' expected.");
3039 /* rule 121 can match eol */
3042 A_surfxml_route_element_name = NULL;
3043 ENTER(AL_surfxml_route_element);
3048 /* rule 122 can match eol */
3050 ENTER(VALUE1); BUFFERSET(A_surfxml_route_element_name);
3053 /* rule 123 can match eol */
3055 ENTER(VALUE2); BUFFERSET(A_surfxml_route_element_name);
3060 if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3061 LEAVE; STag_surfxml_route_element();surfxml_pcdata = NULL; ENTER(E_surfxml_route_element);
3067 if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3068 LEAVE; STag_surfxml_route_element(); surfxml_pcdata = NULL; ETag_surfxml_route_element();
3070 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3071 case ROOT_surfxml_route_element: SET(EPILOG); break;
3077 FAIL("Unexpected character `%c' in attribute list of route_element element.", surf_parse_text[0]);
3081 FAIL("Bad attribute `%s' in `route_element' element start tag.",surf_parse_text);
3083 case YY_STATE_EOF(AL_surfxml_route_element):
3084 FAIL("EOF in attribute list of `route_element' element.");
3088 /* rule 128 can match eol */
3092 ETag_surfxml_route_element();
3094 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3095 case ROOT_surfxml_route_element: SET(EPILOG); break;
3100 /* rule 129 can match eol */
3102 FAIL("Unexpected end-tag `%s': `</route_element>' expected.",surf_parse_text);
3106 FAIL("Unexpected character `%c': `</route_element>' expected.",surf_parse_text[0]);
3108 case YY_STATE_EOF(E_surfxml_route_element):
3109 FAIL("Premature EOF: `</route_element>' expected.");
3113 /* rule 131 can match eol */
3116 A_surfxml_process_host = NULL;
3117 A_surfxml_process_function = NULL;
3118 A_surfxml_process_start_time = "-1.0";
3119 A_surfxml_process_kill_time = "-1.0";
3120 ENTER(AL_surfxml_process);
3125 /* rule 132 can match eol */
3127 ENTER(VALUE1); BUFFERSET(A_surfxml_process_host);
3130 /* rule 133 can match eol */
3132 ENTER(VALUE2); BUFFERSET(A_surfxml_process_host);
3135 /* rule 134 can match eol */
3137 ENTER(VALUE1); BUFFERSET(A_surfxml_process_function);
3140 /* rule 135 can match eol */
3142 ENTER(VALUE2); BUFFERSET(A_surfxml_process_function);
3145 /* rule 136 can match eol */
3147 ENTER(VALUE1); BUFFERSET(A_surfxml_process_start_time);
3150 /* rule 137 can match eol */
3152 ENTER(VALUE2); BUFFERSET(A_surfxml_process_start_time);
3155 /* rule 138 can match eol */
3157 ENTER(VALUE1); BUFFERSET(A_surfxml_process_kill_time);
3160 /* rule 139 can match eol */
3162 ENTER(VALUE2); BUFFERSET(A_surfxml_process_kill_time);
3167 if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3168 if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3169 LEAVE; STag_surfxml_process();surfxml_pcdata = NULL; ENTER(S_surfxml_process);
3175 if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3176 if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3177 LEAVE; STag_surfxml_process(); surfxml_pcdata = NULL; ETag_surfxml_process();
3179 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3180 case ROOT_surfxml_process: SET(EPILOG); break;
3181 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3187 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
3191 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
3193 case YY_STATE_EOF(AL_surfxml_process):
3194 FAIL("EOF in attribute list of `process' element.");
3198 /* rule 144 can match eol */
3202 ETag_surfxml_process();
3204 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3205 case ROOT_surfxml_process: SET(EPILOG); break;
3206 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3211 /* rule 145 can match eol */
3213 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
3217 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
3219 case YY_STATE_EOF(S_surfxml_process):
3220 case YY_STATE_EOF(E_surfxml_process):
3221 case YY_STATE_EOF(S_surfxml_process_2):
3222 FAIL("Premature EOF: `</process>' expected.");
3226 /* rule 147 can match eol */
3229 A_surfxml_argument_value = NULL;
3230 ENTER(AL_surfxml_argument);
3235 /* rule 148 can match eol */
3237 ENTER(VALUE1); BUFFERSET(A_surfxml_argument_value);
3240 /* rule 149 can match eol */
3242 ENTER(VALUE2); BUFFERSET(A_surfxml_argument_value);
3247 if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3248 LEAVE; STag_surfxml_argument();surfxml_pcdata = NULL; ENTER(E_surfxml_argument);
3254 if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3255 LEAVE; STag_surfxml_argument(); surfxml_pcdata = NULL; ETag_surfxml_argument();
3257 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3258 case ROOT_surfxml_argument: SET(EPILOG); break;
3264 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
3268 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
3270 case YY_STATE_EOF(AL_surfxml_argument):
3271 FAIL("EOF in attribute list of `argument' element.");
3275 /* rule 154 can match eol */
3279 ETag_surfxml_argument();
3281 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3282 case ROOT_surfxml_argument: SET(EPILOG); break;
3287 /* rule 155 can match eol */
3289 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
3293 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
3295 case YY_STATE_EOF(E_surfxml_argument):
3296 FAIL("Premature EOF: `</argument>' expected.");
3299 /* EPILOG: after the root element. */
3303 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
3305 case YY_STATE_EOF(EPILOG):
3309 /* CHARACTER DATA. */
3311 /* Non-defined standard entities... */
3332 /* Character entities. */
3335 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
3339 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
3343 /* rule 165 can match eol */
3345 /* rule 166 can match eol */
3347 /* rule 167 can match eol */
3349 /* rule 168 can match eol */
3360 FAIL("Unexpected `]""]>' in character data.");
3367 case YY_STATE_EOF(VALUE1):
3368 FAIL("EOF in literal (\"'\" expected).");
3375 case YY_STATE_EOF(VALUE2):
3376 FAIL("EOF in literal (`\"' expected).");
3380 /* rule 173 can match eol */
3382 BUFFERPUTC(surf_parse_text[0]);
3386 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
3393 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
3396 BUFFERPUTC(surf_parse_text[0]);
3398 case YY_STATE_EOF(CDATA):
3399 FAIL("EOF in CDATA section.");
3402 /* Impossible rules to avoid warnings from flex(1). */
3403 /* Ideally, this should be replaced by code in flexml.pl that
3404 generates just the states not covered by other rules. */
3407 /* rule 177 can match eol */
3409 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
3416 case YY_STATE_EOF(INITIAL):
3417 case YY_STATE_EOF(ROOT_surfxml_platform_description):
3418 case YY_STATE_EOF(S_surfxml_platform_description_1):
3419 case YY_STATE_EOF(ROOT_surfxml_include):
3420 case YY_STATE_EOF(S_surfxml_include_1):
3421 case YY_STATE_EOF(ROOT_surfxml_cpu):
3422 case YY_STATE_EOF(ROOT_surfxml_network_link):
3423 case YY_STATE_EOF(ROOT_surfxml_route):
3424 case YY_STATE_EOF(S_surfxml_route_1):
3425 case YY_STATE_EOF(ROOT_surfxml_route_element):
3426 case YY_STATE_EOF(ROOT_surfxml_process):
3427 case YY_STATE_EOF(S_surfxml_process_1):
3428 case YY_STATE_EOF(ROOT_surfxml_argument):
3429 case YY_STATE_EOF(IMPOSSIBLE):
3432 case YY_END_OF_BUFFER:
3434 /* Amount of text matched not including the EOB char. */
3435 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3437 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3438 *yy_cp = (yy_hold_char);
3439 YY_RESTORE_YY_MORE_OFFSET
3441 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3443 /* We're scanning a new file or input source. It's
3444 * possible that this happened because the user
3445 * just pointed surf_parse_in at a new source and called
3446 * surf_parse_lex(). If so, then we have to assure
3447 * consistency between YY_CURRENT_BUFFER and our
3448 * globals. Here is the right place to do so, because
3449 * this is the first action (other than possibly a
3450 * back-up) that will match for the new input source.
3452 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3453 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
3454 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3457 /* Note that here we test for yy_c_buf_p "<=" to the position
3458 * of the first EOB in the buffer, since yy_c_buf_p will
3459 * already have been incremented past the NUL character
3460 * (since all states make transitions on EOB to the
3461 * end-of-buffer state). Contrast this with the test
3464 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3465 { /* This was really a NUL. */
3466 yy_state_type yy_next_state;
3468 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3470 yy_current_state = yy_get_previous_state( );
3472 /* Okay, we're now positioned to make the NUL
3473 * transition. We couldn't have
3474 * yy_get_previous_state() go ahead and do it
3475 * for us because it doesn't know how to deal
3476 * with the possibility of jamming (and we don't
3477 * want to build jamming into it because then it
3478 * will run more slowly).
3481 yy_next_state = yy_try_NUL_trans( yy_current_state );
3483 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3485 if ( yy_next_state )
3487 /* Consume the NUL. */
3488 yy_cp = ++(yy_c_buf_p);
3489 yy_current_state = yy_next_state;
3495 yy_cp = (yy_c_buf_p);
3496 goto yy_find_action;
3500 else switch ( yy_get_next_buffer( ) )
3502 case EOB_ACT_END_OF_FILE:
3504 (yy_did_buffer_switch_on_eof) = 0;
3506 if ( surf_parse_wrap( ) )
3508 /* Note: because we've taken care in
3509 * yy_get_next_buffer() to have set up
3510 * surf_parse_text, we can now set up
3511 * yy_c_buf_p so that if some total
3512 * hoser (like flex itself) wants to
3513 * call the scanner after we return the
3514 * YY_NULL, it'll still work - another
3515 * YY_NULL will get returned.
3517 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3519 yy_act = YY_STATE_EOF(YY_START);
3525 if ( ! (yy_did_buffer_switch_on_eof) )
3531 case EOB_ACT_CONTINUE_SCAN:
3533 (yytext_ptr) + yy_amount_of_matched_text;
3535 yy_current_state = yy_get_previous_state( );
3537 yy_cp = (yy_c_buf_p);
3538 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3541 case EOB_ACT_LAST_MATCH:
3543 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3545 yy_current_state = yy_get_previous_state( );
3547 yy_cp = (yy_c_buf_p);
3548 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3549 goto yy_find_action;
3556 "fatal flex scanner internal error--no action found" );
3557 } /* end of action switch */
3558 } /* end of scanning one token */
3559 } /* end of surf_parse_lex */
3561 /* yy_get_next_buffer - try to read in a new buffer
3563 * Returns a code representing an action:
3564 * EOB_ACT_LAST_MATCH -
3565 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3566 * EOB_ACT_END_OF_FILE - end of file
3568 static int yy_get_next_buffer (void)
3570 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3571 register char *source = (yytext_ptr);
3572 register int number_to_move, i;
3575 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3577 "fatal flex scanner internal error--end of buffer missed" );
3579 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3580 { /* Don't try to fill the buffer, so this is an EOF. */
3581 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3583 /* We matched a single character, the EOB, so
3584 * treat this as a final EOF.
3586 return EOB_ACT_END_OF_FILE;
3591 /* We matched some text prior to the EOB, first
3594 return EOB_ACT_LAST_MATCH;
3598 /* Try to read more data. */
3600 /* First move last chars to start of buffer. */
3601 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3603 for ( i = 0; i < number_to_move; ++i )
3604 *(dest++) = *(source++);
3606 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3607 /* don't do the read, it's not guaranteed to return an EOF,
3610 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3615 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3617 while ( num_to_read <= 0 )
3618 { /* Not enough room in the buffer - grow it. */
3620 /* just a shorter name for the current buffer */
3621 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3623 int yy_c_buf_p_offset =
3624 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3626 if ( b->yy_is_our_buffer )
3628 int new_size = b->yy_buf_size * 2;
3630 if ( new_size <= 0 )
3631 b->yy_buf_size += b->yy_buf_size / 8;
3633 b->yy_buf_size *= 2;
3635 b->yy_ch_buf = (char *)
3636 /* Include room in for 2 EOB chars. */
3637 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
3640 /* Can't grow it, we don't own it. */
3643 if ( ! b->yy_ch_buf )
3645 "fatal error - scanner input buffer overflow" );
3647 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3649 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3654 if ( num_to_read > YY_READ_BUF_SIZE )
3655 num_to_read = YY_READ_BUF_SIZE;
3657 /* Read in more data. */
3658 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3659 (yy_n_chars), num_to_read );
3661 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3664 if ( (yy_n_chars) == 0 )
3666 if ( number_to_move == YY_MORE_ADJ )
3668 ret_val = EOB_ACT_END_OF_FILE;
3669 surf_parse_restart(surf_parse_in );
3674 ret_val = EOB_ACT_LAST_MATCH;
3675 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3676 YY_BUFFER_EOF_PENDING;
3681 ret_val = EOB_ACT_CONTINUE_SCAN;
3683 (yy_n_chars) += number_to_move;
3684 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3685 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3687 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3692 /* yy_get_previous_state - get the state just before the EOB char was reached */
3694 static yy_state_type yy_get_previous_state (void)
3696 register yy_state_type yy_current_state;
3697 register char *yy_cp;
3699 yy_current_state = (yy_start);
3701 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3703 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3704 if ( yy_accept[yy_current_state] )
3706 (yy_last_accepting_state) = yy_current_state;
3707 (yy_last_accepting_cpos) = yy_cp;
3709 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3711 yy_current_state = (int) yy_def[yy_current_state];
3712 if ( yy_current_state >= 1345 )
3713 yy_c = yy_meta[(unsigned int) yy_c];
3715 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3718 return yy_current_state;
3721 /* yy_try_NUL_trans - try to make a transition on the NUL character
3724 * next_state = yy_try_NUL_trans( current_state );
3726 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3728 register int yy_is_jam;
3729 register char *yy_cp = (yy_c_buf_p);
3731 register YY_CHAR yy_c = 1;
3732 if ( yy_accept[yy_current_state] )
3734 (yy_last_accepting_state) = yy_current_state;
3735 (yy_last_accepting_cpos) = yy_cp;
3737 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3739 yy_current_state = (int) yy_def[yy_current_state];
3740 if ( yy_current_state >= 1345 )
3741 yy_c = yy_meta[(unsigned int) yy_c];
3743 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3744 yy_is_jam = (yy_current_state == 1344);
3746 return yy_is_jam ? 0 : yy_current_state;
3751 static int yyinput (void)
3753 static int input (void)
3759 *(yy_c_buf_p) = (yy_hold_char);
3761 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3763 /* yy_c_buf_p now points to the character we want to return.
3764 * If this occurs *before* the EOB characters, then it's a
3765 * valid NUL; if not, then we've hit the end of the buffer.
3767 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3768 /* This was really a NUL. */
3769 *(yy_c_buf_p) = '\0';
3772 { /* need more input */
3773 int offset = (yy_c_buf_p) - (yytext_ptr);
3776 switch ( yy_get_next_buffer( ) )
3778 case EOB_ACT_LAST_MATCH:
3779 /* This happens because yy_g_n_b()
3780 * sees that we've accumulated a
3781 * token and flags that we need to
3782 * try matching the token before
3783 * proceeding. But for input(),
3784 * there's no matching to consider.
3785 * So convert the EOB_ACT_LAST_MATCH
3786 * to EOB_ACT_END_OF_FILE.
3789 /* Reset buffer status. */
3790 surf_parse_restart(surf_parse_in );
3794 case EOB_ACT_END_OF_FILE:
3796 if ( surf_parse_wrap( ) )
3799 if ( ! (yy_did_buffer_switch_on_eof) )
3808 case EOB_ACT_CONTINUE_SCAN:
3809 (yy_c_buf_p) = (yytext_ptr) + offset;
3815 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3816 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
3817 (yy_hold_char) = *++(yy_c_buf_p);
3821 surf_parse_lineno++;
3826 #endif /* ifndef YY_NO_INPUT */
3828 /** Immediately switch to a different input stream.
3829 * @param input_file A readable stream.
3831 * @note This function does not reset the start condition to @c INITIAL .
3833 void surf_parse_restart (FILE * input_file )
3836 if ( ! YY_CURRENT_BUFFER ){
3837 surf_parse_ensure_buffer_stack ();
3838 YY_CURRENT_BUFFER_LVALUE =
3839 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3842 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
3843 surf_parse__load_buffer_state( );
3846 /** Switch to a different input buffer.
3847 * @param new_buffer The new input buffer.
3850 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
3853 /* TODO. We should be able to replace this entire function body
3855 * surf_parse_pop_buffer_state();
3856 * surf_parse_push_buffer_state(new_buffer);
3858 surf_parse_ensure_buffer_stack ();
3859 if ( YY_CURRENT_BUFFER == new_buffer )
3862 if ( YY_CURRENT_BUFFER )
3864 /* Flush out information for old buffer. */
3865 *(yy_c_buf_p) = (yy_hold_char);
3866 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3867 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3870 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3871 surf_parse__load_buffer_state( );
3873 /* We don't actually know whether we did this switch during
3874 * EOF (surf_parse_wrap()) processing, but the only time this flag
3875 * is looked at is after surf_parse_wrap() is called, so it's safe
3876 * to go ahead and always set it.
3878 (yy_did_buffer_switch_on_eof) = 1;
3881 static void surf_parse__load_buffer_state (void)
3883 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3884 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3885 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3886 (yy_hold_char) = *(yy_c_buf_p);
3889 /** Allocate and initialize an input buffer state.
3890 * @param file A readable stream.
3891 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3893 * @return the allocated buffer state.
3895 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
3899 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
3901 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
3903 b->yy_buf_size = size;
3905 /* yy_ch_buf has to be 2 characters longer than the size given because
3906 * we need to put in 2 end-of-buffer characters.
3908 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
3909 if ( ! b->yy_ch_buf )
3910 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
3912 b->yy_is_our_buffer = 1;
3914 surf_parse__init_buffer(b,file );
3919 /** Destroy the buffer.
3920 * @param b a buffer created with surf_parse__create_buffer()
3923 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
3929 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3930 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3932 if ( b->yy_is_our_buffer )
3933 surf_parse_free((void *) b->yy_ch_buf );
3935 surf_parse_free((void *) b );
3939 extern int isatty (int );
3940 #endif /* __cplusplus */
3942 /* Initializes or reinitializes a buffer.
3943 * This function is sometimes called more than once on the same buffer,
3944 * such as during a surf_parse_restart() or at EOF.
3946 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
3951 surf_parse__flush_buffer(b );
3953 b->yy_input_file = file;
3954 b->yy_fill_buffer = 1;
3956 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
3957 * called from surf_parse_restart() or through yy_get_next_buffer.
3958 * In that case, we don't want to reset the lineno or column.
3960 if (b != YY_CURRENT_BUFFER){
3961 b->yy_bs_lineno = 1;
3962 b->yy_bs_column = 0;
3965 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3970 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3971 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3974 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
3981 /* We always need two end-of-buffer characters. The first causes
3982 * a transition to the end-of-buffer state. The second causes
3983 * a jam in that state.
3985 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
3986 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
3988 b->yy_buf_pos = &b->yy_ch_buf[0];
3991 b->yy_buffer_status = YY_BUFFER_NEW;
3993 if ( b == YY_CURRENT_BUFFER )
3994 surf_parse__load_buffer_state( );
3997 /** Pushes the new state onto the stack. The new state becomes
3998 * the current state. This function will allocate the stack
4000 * @param new_buffer The new state.
4003 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
4005 if (new_buffer == NULL)
4008 surf_parse_ensure_buffer_stack();
4010 /* This block is copied from surf_parse__switch_to_buffer. */
4011 if ( YY_CURRENT_BUFFER )
4013 /* Flush out information for old buffer. */
4014 *(yy_c_buf_p) = (yy_hold_char);
4015 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4016 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4019 /* Only push if top exists. Otherwise, replace top. */
4020 if (YY_CURRENT_BUFFER)
4021 (yy_buffer_stack_top)++;
4022 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4024 /* copied from surf_parse__switch_to_buffer. */
4025 surf_parse__load_buffer_state( );
4026 (yy_did_buffer_switch_on_eof) = 1;
4029 /** Removes and deletes the top of the stack, if present.
4030 * The next element becomes the new top.
4033 void surf_parse_pop_buffer_state (void)
4035 if (!YY_CURRENT_BUFFER)
4038 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4039 YY_CURRENT_BUFFER_LVALUE = NULL;
4040 if ((yy_buffer_stack_top) > 0)
4041 --(yy_buffer_stack_top);
4043 if (YY_CURRENT_BUFFER) {
4044 surf_parse__load_buffer_state( );
4045 (yy_did_buffer_switch_on_eof) = 1;
4049 /* Allocates the stack if it does not exist.
4050 * Guarantees space for at least one push.
4052 static void surf_parse_ensure_buffer_stack (void)
4056 if (!(yy_buffer_stack)) {
4058 /* First allocation is just for 2 elements, since we don't know if this
4059 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4060 * immediate realloc on the next call.
4063 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
4064 (num_to_alloc * sizeof(struct yy_buffer_state*)
4067 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4069 (yy_buffer_stack_max) = num_to_alloc;
4070 (yy_buffer_stack_top) = 0;
4074 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4076 /* Increase the buffer to prepare for a possible push. */
4077 int grow_size = 8 /* arbitrary grow size */;
4079 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4080 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
4082 num_to_alloc * sizeof(struct yy_buffer_state*)
4085 /* zero only the new slots.*/
4086 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4087 (yy_buffer_stack_max) = num_to_alloc;
4091 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4092 * @param base the character buffer
4093 * @param size the size in bytes of the character buffer
4095 * @return the newly allocated buffer state object.
4097 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
4102 base[size-2] != YY_END_OF_BUFFER_CHAR ||
4103 base[size-1] != YY_END_OF_BUFFER_CHAR )
4104 /* They forgot to leave room for the EOB's. */
4107 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4109 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
4111 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4112 b->yy_buf_pos = b->yy_ch_buf = base;
4113 b->yy_is_our_buffer = 0;
4114 b->yy_input_file = 0;
4115 b->yy_n_chars = b->yy_buf_size;
4116 b->yy_is_interactive = 0;
4118 b->yy_fill_buffer = 0;
4119 b->yy_buffer_status = YY_BUFFER_NEW;
4121 surf_parse__switch_to_buffer(b );
4126 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
4127 * scan from a @e copy of @a str.
4128 * @param str a NUL-terminated string to scan
4130 * @return the newly allocated buffer state object.
4131 * @note If you want to scan bytes that may contain NUL values, then use
4132 * surf_parse__scan_bytes() instead.
4134 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yy_str )
4137 return surf_parse__scan_bytes(yy_str,strlen(yy_str) );
4140 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
4141 * scan from a @e copy of @a bytes.
4142 * @param bytes the byte buffer to scan
4143 * @param len the number of bytes in the buffer pointed to by @a bytes.
4145 * @return the newly allocated buffer state object.
4147 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * bytes, int len )
4154 /* Get memory for full buffer, including space for trailing EOB's. */
4156 buf = (char *) surf_parse_alloc(n );
4158 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
4160 for ( i = 0; i < len; ++i )
4163 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
4165 b = surf_parse__scan_buffer(buf,n );
4167 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
4169 /* It's okay to grow etc. this buffer, and we should throw it
4170 * away when we're done.
4172 b->yy_is_our_buffer = 1;
4177 static void yy_push_state (int new_state )
4179 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4183 (yy_start_stack_depth) += YY_START_STACK_INCR;
4184 new_size = (yy_start_stack_depth) * sizeof( int );
4186 if ( ! (yy_start_stack) )
4187 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
4190 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
4192 if ( ! (yy_start_stack) )
4194 "out of memory expanding start-condition stack" );
4197 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4202 static void yy_pop_state (void)
4204 if ( --(yy_start_stack_ptr) < 0 )
4205 YY_FATAL_ERROR( "start-condition stack underflow" );
4207 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4210 #ifndef YY_EXIT_FAILURE
4211 #define YY_EXIT_FAILURE 2
4214 static void yy_fatal_error (yyconst char* msg )
4216 (void) fprintf( stderr, "%s\n", msg );
4217 exit( YY_EXIT_FAILURE );
4220 /* Redefine yyless() so it works in section 3 code. */
4226 /* Undo effects of setting up surf_parse_text. */ \
4227 int yyless_macro_arg = (n); \
4228 YY_LESS_LINENO(yyless_macro_arg);\
4229 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
4230 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
4231 (yy_hold_char) = *(yy_c_buf_p); \
4232 *(yy_c_buf_p) = '\0'; \
4233 surf_parse_leng = yyless_macro_arg; \
4237 /* Accessor methods (get/set functions) to struct members. */
4239 /** Get the current line number.
4242 int surf_parse_get_lineno (void)
4245 return surf_parse_lineno;
4248 /** Get the input stream.
4251 FILE *surf_parse_get_in (void)
4253 return surf_parse_in;
4256 /** Get the output stream.
4259 FILE *surf_parse_get_out (void)
4261 return surf_parse_out;
4264 /** Get the length of the current token.
4267 int surf_parse_get_leng (void)
4269 return surf_parse_leng;
4272 /** Get the current token.
4276 char *surf_parse_get_text (void)
4278 return surf_parse_text;
4281 /** Set the current line number.
4282 * @param line_number
4285 void surf_parse_set_lineno (int line_number )
4288 surf_parse_lineno = line_number;
4291 /** Set the input stream. This does not discard the current
4293 * @param in_str A readable stream.
4295 * @see surf_parse__switch_to_buffer
4297 void surf_parse_set_in (FILE * in_str )
4299 surf_parse_in = in_str ;
4302 void surf_parse_set_out (FILE * out_str )
4304 surf_parse_out = out_str ;
4307 int surf_parse_get_debug (void)
4309 return surf_parse__flex_debug;
4312 void surf_parse_set_debug (int bdebug )
4314 surf_parse__flex_debug = bdebug ;
4317 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
4318 int surf_parse_lex_destroy (void)
4321 /* Pop the buffer stack, destroying each element. */
4322 while(YY_CURRENT_BUFFER){
4323 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4324 YY_CURRENT_BUFFER_LVALUE = NULL;
4325 surf_parse_pop_buffer_state();
4328 /* Destroy the stack itself. */
4329 surf_parse_free((yy_buffer_stack) );
4330 (yy_buffer_stack) = NULL;
4332 /* Destroy the start condition stack. */
4333 surf_parse_free((yy_start_stack) );
4334 (yy_start_stack) = NULL;
4340 * Internal utility routines.
4344 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4347 for ( i = 0; i < n; ++i )
4352 #ifdef YY_NEED_STRLEN
4353 static int yy_flex_strlen (yyconst char * s )
4356 for ( n = 0; s[n]; ++n )
4363 void *surf_parse_alloc (yy_size_t size )
4365 return (void *) malloc( size );
4368 void *surf_parse_realloc (void * ptr, yy_size_t size )
4370 /* The cast to (char *) in the following accommodates both
4371 * implementations that use char* generic pointers, and those
4372 * that use void* generic pointers. It works with the latter
4373 * because both ANSI C and C++ allow castless assignment from
4374 * any pointer type to void*, and deal with argument conversions
4375 * as though doing an assignment.
4377 return (void *) realloc( (char *) ptr, size );
4380 void surf_parse_free (void * ptr )
4382 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
4385 #define YYTABLES_NAME "yytables"
4388 #undef YY_FLUSH_BUFFER
4390 #undef yy_new_buffer
4391 #undef yy_set_interactive
4393 #undef YY_DO_BEFORE_ACTION
4395 #ifdef YY_DECL_IS_OURS
4396 #undef YY_DECL_IS_OURS
4400 /* Element context stack lookup. */
4401 int surfxml_element_context(int i)
4403 return (0<i && i<yy_start_stack_depth
4404 ? yy_start_stack[yy_start_stack_ptr - i]
4409 void print_yy_stack(char* fmt, ...)
4411 int i = 0; va_list ap; va_start(ap, fmt);
4412 vfprintf(stderr, fmt, ap);
4413 for (i=1; i<yy_start_stack_ptr; i++)
4414 fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
4415 fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
4419 static void debug_enter(int state, const char* statename) {
4420 yy_push_state(state);
4421 if (surf_parse__flex_debug) print_yy_stack("--ENTER(%s) : ",statename);
4424 static void debug_leave(void) {
4425 if (surf_parse__flex_debug) print_yy_stack("--LEAVE : ");
4429 static void debug_set(int state, const char* statename) {
4431 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
4435 enum {flexml_max_err_msg_size = 512};
4437 static char flexml_err_msg[flexml_max_err_msg_size];
4438 const char * surfxml_parse_err_msg()
4440 return flexml_err_msg;
4443 static void reset_surfxml_parse_err_msg()
4445 flexml_err_msg[0] = '\0';
4448 static void cleanup(void)
4450 if (surfxml_statenames) {
4451 free(surfxml_statenames);
4452 surfxml_statenames = NULL;
4456 static int fail(const char* fmt, ...)
4458 int chars_left, used;
4459 va_list ap; va_start(ap, fmt);
4460 #ifdef FLEXML_yylineno
4461 used = sprintf(flexml_err_msg,
4462 "Invalid XML (XML input line %d, state %d): ",
4463 surf_parse_lineno, YY_START);
4465 used = sprintf(flexml_err_msg,
4466 "Invalid XML (state %d): ",
4469 chars_left = flexml_max_err_msg_size - used - 1;
4470 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
4473 #ifndef FLEXML_quiet_parser
4474 /* print directly to sdterr */
4475 fprintf(stderr, "%s\n", flexml_err_msg);
4476 flexml_err_msg[0] = '\0';