4 #include "surf/surfxml.h"
6 #line 3 "surf/surfxml.c"
8 #define YY_INT_ALIGNED short int
10 /* A lexical scanner generated by flex */
13 #define YY_FLEX_MAJOR_VERSION 2
14 #define YY_FLEX_MINOR_VERSION 5
15 #define YY_FLEX_SUBMINOR_VERSION 31
16 #if YY_FLEX_SUBMINOR_VERSION > 0
20 /* First, we deal with platform-specific or compiler-specific issues. */
22 /* begin standard C headers. */
28 /* end standard C headers. */
30 /* flex integer type definitions */
35 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
37 #if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
39 typedef int8_t flex_int8_t;
40 typedef uint8_t flex_uint8_t;
41 typedef int16_t flex_int16_t;
42 typedef uint16_t flex_uint16_t;
43 typedef int32_t flex_int32_t;
44 typedef uint32_t flex_uint32_t;
46 typedef signed char flex_int8_t;
47 typedef short int flex_int16_t;
48 typedef int flex_int32_t;
49 typedef unsigned char flex_uint8_t;
50 typedef unsigned short int flex_uint16_t;
51 typedef unsigned int flex_uint32_t;
54 /* Limits of integral types. */
56 #define INT8_MIN (-128)
59 #define INT16_MIN (-32767-1)
62 #define INT32_MIN (-2147483647-1)
65 #define INT8_MAX (127)
68 #define INT16_MAX (32767)
71 #define INT32_MAX (2147483647)
74 #define UINT8_MAX (255U)
77 #define UINT16_MAX (65535U)
80 #define UINT32_MAX (4294967295U)
83 #endif /* ! FLEXINT_H */
87 /* The "const" storage-class-modifier is valid. */
90 #else /* ! __cplusplus */
97 #endif /* ! __cplusplus */
100 #define yyconst const
105 /* Returned upon end-of-file. */
108 /* Promotes a possibly negative, possibly signed char to an unsigned
109 * integer for use as an array index. If the signed char is negative,
110 * we want to instead treat it as an 8-bit unsigned char, hence the
113 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
115 /* Enter a start condition. This macro really ought to take a parameter,
116 * but we do it the disgusting crufty way forced on us by the ()-less
117 * definition of BEGIN.
119 #define BEGIN (yy_start) = 1 + 2 *
121 /* Translate the current start state into a value that can be later handed
122 * to BEGIN to return to the state. The YYSTATE alias is for lex
125 #define YY_START (((yy_start) - 1) / 2)
126 #define YYSTATE YY_START
128 /* Action number for EOF rule of a given start state. */
129 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
131 /* Special action meaning "start processing a new file". */
132 #define YY_NEW_FILE surf_parse_restart(surf_parse_in )
134 #define YY_END_OF_BUFFER_CHAR 0
136 /* Size of default input buffer. */
138 #define YY_BUF_SIZE 16384
141 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
142 #define YY_TYPEDEF_YY_BUFFER_STATE
143 typedef struct yy_buffer_state *YY_BUFFER_STATE;
146 extern int surf_parse_leng;
148 extern FILE *surf_parse_in, *surf_parse_out;
150 #define EOB_ACT_CONTINUE_SCAN 0
151 #define EOB_ACT_END_OF_FILE 1
152 #define EOB_ACT_LAST_MATCH 2
154 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
155 * access to the local variable yy_act. Since yyless() is a macro, it would break
156 * existing scanners that call yyless() from OUTSIDE surf_parse_lex.
157 * One obvious solution it to make yy_act a global. I tried that, and saw
158 * a 5% performance hit in a non-surf_parse_lineno scanner, because yy_act is
159 * normally declared as a register variable-- so it is not worth it.
161 #define YY_LESS_LINENO(n) \
164 for ( yyl = n; yyl < surf_parse_leng; ++yyl )\
165 if ( surf_parse_text[yyl] == '\n' )\
166 --surf_parse_lineno;\
169 /* Return all but the first "n" matched characters back to the input stream. */
173 /* Undo effects of setting up surf_parse_text. */ \
174 int yyless_macro_arg = (n); \
175 YY_LESS_LINENO(yyless_macro_arg);\
176 *yy_cp = (yy_hold_char); \
177 YY_RESTORE_YY_MORE_OFFSET \
178 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
179 YY_DO_BEFORE_ACTION; /* set up surf_parse_text again */ \
183 #define unput(c) yyunput( c, (yytext_ptr) )
185 /* The following is because we cannot portably get our hands on size_t
186 * (without autoconf's help, which isn't available because we want
187 * flex-generated scanners to compile on their own).
190 #ifndef YY_TYPEDEF_YY_SIZE_T
191 #define YY_TYPEDEF_YY_SIZE_T
192 typedef unsigned int yy_size_t;
195 #ifndef YY_STRUCT_YY_BUFFER_STATE
196 #define YY_STRUCT_YY_BUFFER_STATE
197 struct yy_buffer_state
201 char *yy_ch_buf; /* input buffer */
202 char *yy_buf_pos; /* current position in input buffer */
204 /* Size of input buffer in bytes, not including room for EOB
207 yy_size_t yy_buf_size;
209 /* Number of characters read into yy_ch_buf, not including EOB
214 /* Whether we "own" the buffer - i.e., we know we created it,
215 * and can realloc() it to grow it, and should free() it to
218 int yy_is_our_buffer;
220 /* Whether this is an "interactive" input source; if so, and
221 * if we're using stdio for input, then we want to use getc()
222 * instead of fread(), to make sure we stop fetching input after
225 int yy_is_interactive;
227 /* Whether we're considered to be at the beginning of a line.
228 * If so, '^' rules will be active on the next match, otherwise
233 int yy_bs_lineno; /**< The line count. */
234 int yy_bs_column; /**< The column count. */
236 /* Whether to try to fill the input buffer when we reach the
241 int yy_buffer_status;
243 #define YY_BUFFER_NEW 0
244 #define YY_BUFFER_NORMAL 1
245 /* When an EOF's been seen but there's still some text to process
246 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
247 * shouldn't try reading from the input source any more. We might
248 * still have a bunch of tokens to match, though, because of
249 * possible backing-up.
251 * When we actually see the EOF, we change the status to "new"
252 * (via surf_parse_restart()), so that the user can continue scanning by
253 * just pointing surf_parse_in at a new input file.
255 #define YY_BUFFER_EOF_PENDING 2
258 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
260 /* Stack of input buffers. */
261 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
262 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
263 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
265 /* We provide macros for accessing buffer states in case in the
266 * future we want to put the buffer states in a more general
269 * Returns the top of the stack, or NULL.
271 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
272 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
275 /* Same as previous macro, but useful when we know that the buffer stack is not
276 * NULL or when we need an lvalue. For internal use only.
278 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
280 /* yy_hold_char holds the character lost when surf_parse_text is formed. */
281 static char yy_hold_char;
282 static int yy_n_chars; /* number of characters read into yy_ch_buf */
285 /* Points to current character in buffer. */
286 static char *yy_c_buf_p = (char *) 0;
287 static int yy_init = 1; /* whether we need to initialize */
288 static int yy_start = 0; /* start state number */
290 /* Flag which is used to allow surf_parse_wrap()'s to do buffer switches
291 * instead of setting up a fresh surf_parse_in. A bit of a hack ...
293 static int yy_did_buffer_switch_on_eof;
295 void surf_parse_restart (FILE *input_file );
296 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer );
297 YY_BUFFER_STATE surf_parse__create_buffer (FILE *file,int size );
298 void surf_parse__delete_buffer (YY_BUFFER_STATE b );
299 void surf_parse__flush_buffer (YY_BUFFER_STATE b );
300 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer );
301 void surf_parse_pop_buffer_state (void );
303 static void surf_parse_ensure_buffer_stack (void );
304 static void surf_parse__load_buffer_state (void );
305 static void surf_parse__init_buffer (YY_BUFFER_STATE b,FILE *file );
307 #define YY_FLUSH_BUFFER surf_parse__flush_buffer(YY_CURRENT_BUFFER )
309 YY_BUFFER_STATE surf_parse__scan_buffer (char *base,yy_size_t size );
310 YY_BUFFER_STATE surf_parse__scan_string (yyconst char *yy_str );
311 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char *bytes,int len );
313 void *surf_parse_alloc (yy_size_t );
314 void *surf_parse_realloc (void *,yy_size_t );
315 void surf_parse_free (void * );
317 #define yy_new_buffer surf_parse__create_buffer
319 #define yy_set_interactive(is_interactive) \
321 if ( ! YY_CURRENT_BUFFER ){ \
322 surf_parse_ensure_buffer_stack (); \
323 YY_CURRENT_BUFFER_LVALUE = \
324 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
326 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
329 #define yy_set_bol(at_bol) \
331 if ( ! YY_CURRENT_BUFFER ){\
332 surf_parse_ensure_buffer_stack (); \
333 YY_CURRENT_BUFFER_LVALUE = \
334 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE ); \
336 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
339 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
341 /* Begin user sect3 */
343 #define surf_parse_wrap() 1
344 #define YY_SKIP_YYWRAP
346 typedef unsigned char YY_CHAR;
348 FILE *surf_parse_in = (FILE *) 0, *surf_parse_out = (FILE *) 0;
350 typedef int yy_state_type;
352 extern int surf_parse_lineno;
354 int surf_parse_lineno = 1;
356 extern char *surf_parse_text;
357 #define yytext_ptr surf_parse_text
359 static yy_state_type yy_get_previous_state (void );
360 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
361 static int yy_get_next_buffer (void );
362 static void yy_fatal_error (yyconst char msg[] );
364 /* Done after the current pattern has been matched and before the
365 * corresponding action - sets up surf_parse_text.
367 #define YY_DO_BEFORE_ACTION \
368 (yytext_ptr) = yy_bp; \
369 surf_parse_leng = (size_t) (yy_cp - yy_bp); \
370 (yy_hold_char) = *yy_cp; \
372 (yy_c_buf_p) = yy_cp;
374 #define YY_NUM_RULES 178
375 #define YY_END_OF_BUFFER 179
376 /* This struct is not used in this scanner,
377 but its presence is necessary. */
380 flex_int32_t yy_verify;
383 static yyconst flex_int16_t yy_accept[1345] =
385 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
386 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
387 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
390 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
391 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
394 0, 0, 179, 177, 22, 10, 10, 22, 22, 157,
396 10, 157, 5, 6, 5, 8, 9, 8, 173, 165,
397 166, 174, 171, 174, 172, 176, 165, 166, 176, 177,
398 28, 10, 28, 28, 28, 26, 28, 32, 10, 32,
399 177, 32, 177, 38, 10, 38, 38, 38, 36, 38,
400 42, 10, 42, 42, 177, 68, 10, 68, 68, 68,
401 66, 68, 68, 68, 68, 68, 68, 72, 10, 72,
402 177, 96, 10, 96, 96, 96, 94, 96, 96, 96,
403 96, 100, 10, 100, 177, 116, 10, 116, 116, 116,
404 114, 116, 116, 116, 120, 10, 120, 177, 120, 126,
405 10, 126, 126, 126, 124, 126, 130, 10, 130, 177,
407 142, 10, 142, 142, 142, 140, 142, 142, 142, 142,
408 146, 10, 146, 177, 146, 152, 10, 152, 152, 152,
409 150, 152, 156, 10, 156, 174, 173, 10, 0, 2,
410 2, 0, 4, 7, 168, 167, 0, 0, 0, 0,
411 0, 0, 0, 27, 29, 29, 0, 0, 0, 0,
412 0, 0, 37, 39, 39, 0, 67, 69, 69, 69,
413 69, 69, 69, 69, 0, 95, 97, 97, 97, 97,
414 97, 97, 0, 115, 117, 117, 117, 117, 0, 0,
415 125, 127, 127, 0, 141, 143, 143, 143, 143, 143,
416 0, 0, 151, 153, 153, 0, 0, 0, 0, 0,
418 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
419 175, 0, 29, 0, 0, 0, 0, 0, 0, 0,
420 39, 0, 0, 69, 69, 69, 69, 69, 69, 0,
421 0, 97, 97, 97, 97, 97, 0, 0, 117, 117,
422 117, 0, 0, 0, 127, 0, 0, 143, 143, 143,
423 143, 0, 0, 0, 153, 0, 0, 0, 170, 0,
424 21, 1, 0, 0, 163, 0, 0, 0, 160, 159,
425 0, 0, 29, 0, 0, 31, 0, 43, 0, 0,
426 0, 0, 39, 0, 0, 41, 0, 69, 69, 69,
427 69, 69, 69, 0, 0, 71, 0, 97, 97, 97,
429 97, 97, 0, 0, 99, 0, 0, 0, 117, 0,
430 0, 0, 0, 119, 0, 0, 127, 0, 0, 129,
431 0, 143, 143, 143, 143, 0, 0, 145, 0, 0,
432 153, 0, 0, 155, 0, 0, 0, 0, 164, 158,
433 0, 0, 0, 29, 0, 43, 0, 0, 0, 0,
434 0, 0, 0, 69, 69, 69, 0, 0, 69, 69,
435 0, 97, 97, 0, 0, 97, 97, 0, 0, 105,
436 104, 117, 0, 103, 102, 0, 0, 0, 0, 0,
437 143, 0, 0, 143, 143, 0, 0, 153, 0, 0,
438 0, 0, 0, 12, 0, 161, 162, 0, 29, 0,
440 0, 0, 0, 101, 0, 35, 34, 0, 69, 69,
441 69, 0, 45, 44, 0, 0, 0, 0, 69, 0,
442 70, 97, 97, 0, 75, 74, 97, 0, 0, 97,
443 0, 117, 0, 0, 0, 123, 122, 0, 143, 0,
444 133, 132, 143, 143, 0, 0, 0, 0, 0, 0,
445 0, 0, 0, 11, 0, 29, 0, 0, 0, 0,
446 101, 0, 69, 69, 69, 0, 47, 46, 0, 0,
447 0, 69, 97, 97, 97, 0, 0, 0, 97, 0,
448 117, 0, 0, 0, 143, 143, 143, 0, 0, 0,
449 149, 148, 0, 0, 0, 0, 0, 0, 0, 0,
451 0, 33, 0, 131, 0, 69, 69, 69, 0, 0,
452 69, 97, 0, 0, 97, 97, 0, 0, 97, 0,
453 117, 0, 118, 0, 0, 143, 143, 143, 0, 0,
454 0, 0, 0, 0, 0, 0, 0, 25, 24, 0,
455 33, 0, 131, 0, 69, 69, 69, 0, 0, 0,
456 0, 69, 97, 0, 81, 80, 97, 97, 0, 0,
457 0, 0, 97, 0, 117, 0, 0, 0, 0, 143,
458 143, 0, 147, 0, 169, 0, 0, 0, 0, 0,
459 0, 0, 40, 69, 69, 69, 0, 53, 0, 52,
460 69, 0, 0, 97, 97, 97, 0, 85, 0, 84,
462 97, 0, 117, 0, 0, 0, 135, 134, 0, 0,
463 143, 0, 144, 147, 0, 0, 0, 0, 0, 0,
464 0, 0, 0, 0, 0, 0, 69, 69, 69, 55,
465 54, 0, 0, 0, 77, 76, 97, 97, 97, 87,
466 86, 0, 0, 0, 117, 117, 0, 0, 0, 139,
467 138, 0, 0, 0, 154, 0, 0, 0, 0, 0,
468 0, 0, 0, 0, 0, 0, 0, 69, 69, 69,
469 0, 57, 56, 97, 97, 97, 0, 89, 88, 0,
470 117, 117, 0, 0, 0, 137, 136, 0, 0, 0,
471 0, 0, 0, 0, 0, 0, 0, 0, 73, 0,
473 0, 69, 69, 69, 97, 0, 0, 97, 0, 117,
474 117, 0, 0, 0, 0, 0, 0, 0, 0, 0,
475 0, 0, 0, 0, 0, 73, 0, 49, 48, 69,
476 69, 69, 69, 97, 0, 83, 82, 97, 0, 0,
477 0, 117, 0, 0, 117, 121, 0, 0, 0, 0,
478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
479 0, 69, 69, 69, 69, 0, 0, 0, 0, 0,
480 98, 0, 109, 108, 117, 0, 107, 106, 117, 121,
481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
482 0, 0, 0, 0, 0, 0, 69, 69, 69, 69,
484 0, 79, 78, 0, 0, 0, 117, 117, 0, 128,
485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
486 12, 0, 12, 0, 0, 0, 69, 69, 69, 69,
487 0, 0, 0, 0, 117, 117, 0, 0, 0, 0,
488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
489 0, 0, 0, 0, 0, 0, 69, 0, 0, 0,
490 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
491 0, 0, 0, 0, 0, 0, 0, 51, 50, 0,
492 61, 60, 0, 59, 58, 69, 0, 65, 64, 0,
493 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
495 0, 0, 0, 11, 0, 0, 69, 0, 0, 0,
496 0, 117, 117, 0, 0, 0, 0, 0, 0, 0,
497 0, 23, 0, 69, 0, 0, 0, 0, 117, 117,
498 0, 0, 0, 0, 0, 0, 0, 0, 0, 23,
499 0, 69, 0, 0, 0, 0, 117, 117, 0, 0,
500 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,
501 0, 0, 91, 0, 90, 117, 117, 0, 0, 0,
502 0, 0, 0, 0, 0, 0, 0, 0, 63, 62,
503 93, 92, 117, 117, 0, 0, 0, 0, 0, 0,
504 0, 0, 0, 0, 117, 117, 0, 0, 0, 0,
506 0, 0, 0, 0, 0, 0, 0, 0, 117, 117,
507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
508 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
509 0, 0, 0, 0, 0, 0, 0, 0, 117, 117,
510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
511 0, 0, 0, 117, 117, 0, 0, 0, 0, 0,
512 0, 0, 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, 113, 112, 0,
515 111, 110, 0, 0, 0, 0, 0, 0, 0, 0,
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, 0, 0, 0, 0, 0, 0, 15,
521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
522 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
523 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
524 0, 0, 0, 17, 0, 0, 0, 0, 0, 0,
525 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
526 0, 0, 0, 20, 0, 0, 0, 13, 0, 0,
528 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
530 0, 0, 19, 0, 0, 0, 0, 0, 0, 14,
531 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
535 static yyconst flex_int32_t yy_ec[256] =
537 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
538 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
539 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
540 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
541 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
542 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
543 17, 18, 19, 1, 20, 21, 22, 23, 24, 25,
544 14, 26, 27, 14, 14, 14, 28, 29, 30, 31,
545 14, 32, 33, 34, 14, 14, 14, 14, 35, 14,
546 36, 1, 37, 1, 38, 1, 39, 40, 41, 42,
548 43, 44, 45, 46, 47, 14, 48, 49, 50, 51,
549 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
550 62, 14, 1, 1, 1, 1, 1, 1, 1, 1,
551 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
552 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
553 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
554 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
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,
559 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
560 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
561 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
562 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
563 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
567 static yyconst flex_int32_t yy_meta[63] =
569 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
570 3, 1, 4, 5, 1, 1, 1, 6, 1, 7,
571 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
572 5, 5, 5, 5, 5, 1, 1, 5, 7, 7,
573 7, 7, 7, 7, 5, 5, 5, 5, 5, 5,
574 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
578 static yyconst flex_int16_t yy_base[1401] =
580 0, 0, 0, 3, 6, 9, 24, 27, 11, 14,
581 15, 17, 29, 38, 45, 52, 59, 61, 67, 70,
582 98, 157, 73, 76, 116, 120, 123, 126, 175, 179,
583 182, 185, 216, 260, 234, 238, 241, 278, 282, 285,
584 289, 304, 307, 310, 326, 0, 387, 390, 393, 396,
585 412, 468, 430, 434, 437, 440, 524, 580, 486, 490,
586 493, 496, 542, 546, 549, 552, 598, 602, 636, 687,
587 605, 608, 654, 658, 738, 794, 661, 664, 705, 709,
588 712, 715, 756, 760, 763, 767, 850, 909, 812, 816,
589 833, 868, 3674, 3675, 3675, 91, 141, 47, 62, 3675,
591 144, 132, 3675, 3675, 3663, 3675, 3675, 3654, 3675, 3667,
592 3667, 836, 3675, 3675, 3675, 3675, 3665, 3665, 3630, 194,
593 3675, 150, 3648, 0, 136, 3675, 3622, 3675, 200, 888,
594 889, 195, 192, 3675, 206, 3646, 0, 187, 3675, 3616,
595 3675, 313, 942, 446, 803, 3675, 511, 3644, 0, 440,
596 3675, 3602, 3609, 3620, 3619, 3605, 3599, 3675, 518, 558,
597 717, 3675, 570, 3637, 0, 559, 3675, 3615, 3614, 3613,
598 92, 3675, 626, 614, 768, 3675, 679, 3633, 0, 615,
599 3675, 3594, 3599, 3593, 3675, 682, 877, 772, 715, 3675,
600 786, 3629, 0, 773, 3675, 3607, 3675, 822, 883, 878,
602 3675, 831, 3627, 0, 859, 3675, 3586, 3591, 3595, 3584,
603 3675, 843, 943, 918, 887, 3675, 947, 3622, 0, 872,
604 3675, 3600, 3675, 956, 951, 3633, 3600, 962, 34, 3575,
605 3675, 3625, 3616, 3675, 3675, 3675, 26, 32, 3576, 3575,
606 3573, 3612, 3580, 3675, 0, 3573, 3574, 3573, 3574, 3581,
607 3568, 3570, 3675, 0, 3572, 3573, 3675, 0, 3580, 3561,
608 3556, 3566, 3555, 3575, 3572, 3675, 0, 3561, 3554, 3560,
609 3570, 3569, 3556, 3675, 0, 3549, 3552, 3563, 3548, 3550,
610 3675, 0, 3551, 3545, 3675, 0, 3548, 3542, 3548, 3557,
611 3542, 3539, 3675, 0, 3544, 3553, 3555, 3572, 3571, 3578,
613 5, 3537, 3675, 75, 0, 3533, 3533, 3569, 3568, 3530,
614 3675, 3542, 3524, 969, 972, 3521, 3537, 3520, 3524, 3517,
615 3531, 976, 982, 3526, 3529, 3533, 3527, 3526, 3511, 999,
616 1002, 3525, 3523, 3522, 3509, 3506, 1005, 1008, 1011, 3523,
617 1027, 1032, 1035, 3503, 3517, 1038, 1043, 3518, 3501, 3508,
618 3501, 1055, 1060, 3510, 3496, 1063, 1066, 3531, 3675, 3534,
619 3675, 3675, 233, 3502, 3675, 3535, 3534, 3492, 3675, 3675,
620 3490, 3489, 3498, 1072, 1089, 3675, 1094, 1097, 3495, 3483,
621 3501, 3484, 1100, 1106, 1116, 3675, 1123, 3491, 3484, 3486,
622 1126, 3482, 3493, 1133, 1136, 3675, 1142, 3475, 3483, 1145,
624 3486, 3489, 1153, 1163, 3675, 1166, 1170, 1173, 3490, 1186,
625 1189, 1202, 1206, 3675, 1209, 3473, 1212, 1215, 1228, 3675,
626 1232, 3472, 1235, 3490, 3470, 1238, 1241, 3675, 1245, 3468,
627 3482, 1251, 1258, 3675, 1262, 3501, 122, 1268, 3675, 3675,
628 3508, 3507, 3477, 3468, 1271, 1275, 3461, 3466, 3474, 3473,
629 1279, 1289, 1297, 3476, 3470, 3455, 1300, 1307, 1316, 1319,
630 1322, 3465, 3470, 1327, 1339, 3459, 1335, 1347, 1352, 3675,
631 3675, 3452, 1360, 3675, 3675, 1368, 3465, 1372, 1375, 1388,
632 3460, 1391, 1394, 3449, 3467, 1408, 3454, 1411, 1414, 3483,
633 115, 3484, 1417, 3675, 3483, 3675, 3675, 3448, 3448, 1420,
635 3456, 3442, 3440, 1427, 1437, 3675, 3675, 1448, 3455, 3451,
636 3436, 1452, 3675, 3675, 1465, 1471, 1481, 1484, 3448, 1492,
637 3675, 3449, 3428, 1498, 3675, 3675, 3444, 1509, 1512, 3444,
638 1520, 3449, 1525, 3448, 1528, 3675, 3675, 1537, 3433, 1542,
639 3675, 3675, 3437, 3426, 1555, 3439, 1550, 1560, 1572, 3447,
640 66, 197, 153, 3675, 3425, 1575, 1579, 3436, 3430, 3421,
641 1582, 1585, 3429, 3420, 3429, 1598, 3675, 3675, 1606, 3443,
642 3442, 3424, 3413, 1615, 3431, 1631, 3438, 3437, 3419, 1621,
643 3413, 1626, 3421, 1639, 3412, 3412, 3414, 1643, 3409, 1646,
644 3675, 3675, 1660, 3439, 300, 281, 194, 3408, 1656, 1663,
646 1677, 1591, 3419, 1680, 1683, 3407, 3412, 3402, 296, 376,
647 3404, 3406, 1687, 1703, 3407, 3397, 379, 382, 3400, 1690,
648 3397, 1711, 3675, 3398, 1715, 1694, 3403, 3395, 1718, 3387,
649 1721, 3407, 1738, 238, 408, 3404, 1741, 3675, 3675, 1749,
650 1757, 3392, 1760, 1766, 3393, 3388, 3391, 3412, 3430, 3410,
651 3425, 3390, 1773, 1776, 3675, 3675, 3385, 3379, 3405, 3423,
652 3403, 3418, 3383, 1784, 3387, 3381, 1789, 1792, 1810, 1801,
653 3380, 1821, 1824, 1827, 3675, 1883, 241, 256, 3380, 1830,
654 3374, 1833, 3675, 3363, 3378, 3367, 3411, 3675, 3407, 3675,
655 1838, 1850, 1854, 3371, 3365, 3364, 3406, 3675, 3402, 3675,
657 1862, 1870, 896, 3360, 1873, 1890, 3675, 3675, 1878, 1900,
658 1908, 1911, 3675, 1867, 1924, 240, 429, 384, 162, 520,
659 439, 500, 449, 3366, 1929, 3357, 3345, 3363, 3360, 3675,
660 3675, 1937, 1942, 1953, 3675, 3675, 3357, 3360, 3355, 3675,
661 3675, 1961, 1964, 1972, 3345, 3345, 3356, 1977, 1980, 3675,
662 3675, 1989, 1994, 2005, 3675, 549, 73, 660, 558, 632,
663 505, 172, 734, 883, 3342, 2008, 3349, 2011, 3358, 3357,
664 2027, 3675, 3675, 3345, 2018, 3352, 2035, 3675, 3675, 2014,
665 3335, 3350, 3339, 2043, 2050, 3675, 3675, 617, 2060, 661,
666 959, 935, 862, 970, 614, 2064, 3348, 2067, 2070, 2073,
668 2085, 3344, 399, 3332, 3245, 2093, 2096, 3225, 2104, 2109,
669 2112, 3220, 2115, 711, 2128, 763, 561, 830, 855, 861,
670 2136, 2139, 2156, 3219, 2165, 2132, 2169, 3675, 3675, 3224,
671 3225, 3222, 3223, 2177, 2182, 3675, 3675, 2193, 2196, 2199,
672 2209, 3199, 2205, 2217, 3196, 2225, 2228, 973, 284, 775,
673 448, 915, 613, 2231, 2234, 2238, 2255, 2285, 2322, 3206,
674 2263, 3197, 3200, 3185, 3174, 2251, 2268, 2303, 2306, 2280,
675 3675, 2340, 3675, 3675, 3179, 2348, 3675, 3675, 3174, 2276,
676 2358, 981, 963, 1000, 1004, 1030, 1076, 2361, 1006, 2364,
677 1054, 41, 2394, 2431, 3163, 2423, 3168, 2993, 3009, 3006,
679 2381, 3675, 3675, 2412, 1046, 1055, 2991, 2990, 2389, 3675,
680 1059, 1071, 2451, 585, 1036, 2454, 1088, 1064, 1179, 492,
681 3040, 103, 3036, 2457, 2985, 2460, 2477, 2480, 2483, 2486,
682 3021, 3014, 3012, 3000, 2979, 2977, 2489, 708, 2502, 1065,
683 1093, 2506, 1145, 1140, 3000, 2986, 2979, 2512, 2857, 2515,
684 2523, 2539, 2534, 2550, 2558, 2561, 2845, 2574, 2577, 2791,
685 2791, 2766, 2729, 2678, 2665, 2585, 811, 1124, 951, 1183,
686 1233, 1162, 1176, 2670, 2564, 2590, 2593, 3675, 3675, 2603,
687 3675, 3675, 2611, 3675, 3675, 2539, 2619, 3675, 3675, 2538,
688 2496, 2481, 2434, 2281, 2267, 1270, 2627, 1189, 1135, 1316,
690 1294, 1290, 1317, 3675, 2266, 2630, 2198, 2177, 2169, 2163,
691 2124, 2046, 2000, 1314, 2637, 1349, 1104, 1143, 1367, 1266,
692 1386, 2420, 2647, 1901, 1877, 1884, 1639, 1603, 1560, 1503,
693 1429, 1409, 1415, 1364, 2650, 1416, 1381, 2654, 1391, 2657,
694 2660, 2667, 1512, 1483, 1420, 1371, 1263, 1242, 1418, 1441,
695 1461, 1463, 2671, 1203, 1507, 2677, 2688, 2697, 3675, 2705,
696 2708, 1196, 3675, 1141, 3675, 970, 680, 1532, 1487, 1515,
697 2716, 1435, 1210, 2721, 1491, 1543, 2724, 2727, 3675, 3675,
698 3675, 3675, 695, 692, 2741, 1547, 1656, 2744, 1335, 1444,
699 2752, 1538, 1553, 1485, 620, 570, 2762, 498, 719, 1595,
701 1598, 1474, 1460, 1692, 1698, 1620, 1710, 1369, 464, 419,
702 1717, 1765, 1618, 1638, 1713, 1731, 1596, 1719, 1739, 1788,
703 1737, 1799, 1587, 409, 369, 1792, 1831, 1653, 1829, 1843,
704 1865, 1780, 1900, 1882, 1903, 1783, 1844, 1899, 258, 187,
705 1917, 1932, 1716, 1879, 1925, 1981, 2770, 1943, 2006, 2016,
706 1935, 2030, 2065, 2773, 2779, 2040, 2083, 1959, 2037, 2102,
707 2103, 2783, 2791, 2126, 2131, 2106, 2127, 2795, 2800, 2812,
708 2803, 2820, 2164, 2187, 1802, 1931, 2225, 2245, 1984, 1986,
709 2828, 2295, 2298, 2159, 2206, 2831, 2839, 3675, 3675, 2848,
710 3675, 3675, 2338, 2354, 2086, 2293, 2227, 2329, 2278, 2359,
712 2074, 2337, 2356, 2402, 2410, 1987, 2133, 2424, 2447, 2119,
713 2362, 2484, 2511, 2244, 2314, 1782, 2539, 2555, 2296, 2514,
714 2371, 2453, 2593, 2608, 2856, 2456, 2459, 2401, 2505, 1712,
715 2516, 2526, 2556, 2582, 2529, 2572, 2624, 2679, 2860, 3675,
716 2528, 2620, 2390, 2583, 2357, 2675, 2678, 2629, 2658, 2592,
717 2669, 2684, 2722, 2742, 2749, 2481, 2687, 2232, 2794, 2826,
718 2863, 2792, 2809, 2829, 2837, 2745, 2676, 2720, 2790, 2873,
719 2866, 2810, 2883, 3675, 2838, 2855, 2874, 2880, 2891, 2872,
720 2885, 2904, 2912, 2820, 2879, 2915, 2921, 3675, 2884, 2893,
721 2864, 2881, 2938, 3675, 2916, 2918, 2941, 3675, 2894, 2903,
723 2913, 2914, 2920, 2928, 2931, 2932, 2929, 2930, 2934, 2935,
724 2948, 2946, 2734, 2939, 2940, 2945, 2975, 2943, 2947, 2962,
725 2958, 2992, 3675, 2951, 2957, 2995, 2963, 2968, 3012, 3675,
726 2991, 3000, 2982, 2985, 2971, 2972, 3001, 3002, 3015, 3013,
727 3032, 3035, 3675, 3675, 3053, 3060, 3067, 3074, 3081, 3088,
728 3095, 3102, 3109, 3116, 3123, 3130, 3137, 3144, 3151, 3158,
729 3165, 3172, 3179, 3186, 3193, 3200, 3205, 3210, 3215, 3220,
730 3225, 3230, 3235, 3240, 3247, 3250, 3253, 3256, 3259, 3262,
731 3265, 3268, 3271, 3278, 3282, 3288, 3294, 3300, 3306, 3312,
732 3318, 3324, 3330, 3337, 3344, 3351, 3358, 3365, 3372, 3379
736 static yyconst flex_int16_t yy_def[1401] =
738 1345, 1345, 1346, 1346, 1346, 1346, 1347, 1347, 1348, 1348,
739 1349, 1349, 1350, 1350, 1350, 1350, 1351, 1351, 1345, 1345,
740 1352, 1352, 1353, 1353, 1345, 1345, 1353, 1353, 1353, 1353,
741 1345, 1345, 1354, 1354, 1355, 1355, 1345, 1345, 1355, 1355,
742 1355, 1355, 1345, 1345, 1344, 45, 1356, 1356, 1345, 1345,
743 1357, 1357, 1358, 1358, 1345, 1345, 1359, 1359, 1360, 1360,
744 1345, 1345, 1360, 1360, 1360, 1360, 1345, 1345, 1361, 1361,
745 1362, 1362, 1345, 1345, 1363, 1363, 1364, 1364, 1345, 1345,
746 1364, 1364, 1364, 1364, 1345, 1345, 1365, 1365, 1366, 1366,
747 1350, 1350, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
749 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
750 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
751 1344, 1344, 1344, 1367, 1344, 1344, 1367, 1344, 1344, 1344,
752 1344, 1344, 1344, 1344, 1344, 1344, 1368, 1344, 1344, 1368,
753 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344,
754 1344, 1369, 1369, 1369, 1369, 1369, 1369, 1344, 1344, 1344,
755 1344, 1344, 1344, 1344, 1370, 1344, 1344, 1370, 1370, 1370,
756 1370, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1371, 1344,
757 1344, 1371, 1371, 1371, 1344, 1344, 1344, 1344, 1344, 1344,
758 1344, 1344, 1372, 1344, 1344, 1372, 1344, 1344, 1344, 1344,
760 1344, 1344, 1344, 1373, 1344, 1344, 1373, 1373, 1373, 1373,
761 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1374, 1344,
762 1344, 1374, 1344, 1344, 1344, 1344, 1344, 1344, 1375, 1344,
763 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
764 1344, 1344, 1344, 1344, 1367, 1367, 1376, 1344, 1344, 1344,
765 1344, 1344, 1344, 1368, 1368, 1377, 1344, 1369, 1369, 1369,
766 1369, 1369, 1369, 1369, 1378, 1344, 1370, 1370, 1370, 1370,
767 1370, 1370, 1379, 1344, 1371, 1371, 1371, 1371, 1380, 1344,
768 1344, 1372, 1372, 1381, 1344, 1373, 1373, 1373, 1373, 1373,
769 1382, 1344, 1344, 1374, 1374, 1383, 1344, 1344, 1384, 1344,
771 1384, 1344, 1344, 1344, 1385, 1344, 1344, 1344, 1344, 1344,
772 1344, 1344, 1367, 1386, 1386, 1344, 1344, 1344, 1344, 1344,
773 1368, 1387, 1387, 1369, 1369, 1369, 1369, 1369, 1369, 1388,
774 1388, 1370, 1370, 1370, 1370, 1370, 1389, 1389, 1371, 1371,
775 1371, 1390, 1390, 1344, 1372, 1391, 1391, 1373, 1373, 1373,
776 1373, 1392, 1392, 1344, 1374, 1393, 1393, 1344, 1344, 1384,
777 1344, 1344, 1384, 1344, 1344, 1385, 1344, 1344, 1344, 1344,
778 1344, 1344, 1367, 1344, 1386, 1344, 1386, 1344, 1344, 1344,
779 1344, 1344, 1368, 1344, 1387, 1344, 1387, 1369, 1369, 1369,
780 1369, 1369, 1369, 1344, 1388, 1344, 1388, 1370, 1370, 1370,
782 1370, 1370, 1344, 1389, 1344, 1389, 1344, 1344, 1371, 1344,
783 1344, 1344, 1390, 1344, 1390, 1344, 1372, 1344, 1391, 1344,
784 1391, 1373, 1373, 1373, 1373, 1344, 1392, 1344, 1392, 1344,
785 1374, 1344, 1393, 1344, 1393, 1344, 1384, 1394, 1344, 1344,
786 1344, 1344, 1344, 1367, 1386, 1344, 1344, 1344, 1344, 1344,
787 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1369, 1369,
788 1388, 1370, 1370, 1344, 1344, 1370, 1370, 1389, 1344, 1344,
789 1344, 1371, 1344, 1344, 1344, 1390, 1344, 1344, 1344, 1391,
790 1373, 1344, 1344, 1373, 1373, 1392, 1344, 1374, 1393, 1344,
791 1384, 1394, 1394, 1344, 1394, 1344, 1344, 1344, 1367, 1386,
793 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1387, 1369, 1369,
794 1369, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344,
795 1344, 1370, 1370, 1344, 1344, 1344, 1370, 1344, 1344, 1370,
796 1389, 1371, 1390, 1344, 1344, 1344, 1344, 1391, 1373, 1344,
797 1344, 1344, 1373, 1373, 1392, 1344, 1344, 1344, 1393, 1344,
798 1384, 1394, 1394, 1344, 1344, 1367, 1386, 1344, 1344, 1344,
799 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1344, 1344, 1344,
800 1344, 1369, 1370, 1370, 1370, 1344, 1344, 1344, 1370, 1389,
801 1371, 1390, 1344, 1391, 1373, 1373, 1373, 1392, 1344, 1344,
802 1344, 1344, 1393, 1344, 1384, 1394, 1394, 1344, 1344, 1344,
804 1386, 1344, 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344,
805 1369, 1370, 1344, 1344, 1370, 1370, 1344, 1344, 1370, 1389,
806 1371, 1344, 1344, 1344, 1391, 1373, 1373, 1373, 1392, 1344,
807 1393, 1344, 1384, 1394, 1394, 1344, 1344, 1344, 1344, 1386,
808 1344, 1344, 1344, 1387, 1369, 1369, 1369, 1344, 1344, 1344,
809 1344, 1369, 1370, 1344, 1344, 1344, 1370, 1370, 1344, 1344,
810 1344, 1344, 1370, 1389, 1371, 1344, 1391, 1344, 1344, 1373,
811 1373, 1392, 1344, 1393, 1344, 1384, 1394, 1394, 1344, 1386,
812 1344, 1344, 1344, 1369, 1369, 1369, 1344, 1344, 1344, 1344,
813 1369, 1344, 1344, 1370, 1370, 1370, 1344, 1344, 1344, 1344,
815 1370, 1389, 1371, 1344, 1391, 1344, 1344, 1344, 1344, 1344,
816 1373, 1344, 1344, 1344, 1393, 1384, 1384, 1384, 1384, 1384,
817 1384, 1394, 1394, 1344, 1386, 1344, 1369, 1369, 1369, 1344,
818 1344, 1344, 1344, 1344, 1344, 1344, 1370, 1370, 1370, 1344,
819 1344, 1344, 1344, 1389, 1371, 1371, 1344, 1391, 1344, 1344,
820 1344, 1344, 1344, 1344, 1344, 1384, 1384, 1384, 1384, 1384,
821 1384, 1384, 1394, 1394, 1344, 1386, 1344, 1369, 1369, 1369,
822 1344, 1344, 1344, 1370, 1370, 1370, 1344, 1344, 1344, 1389,
823 1371, 1371, 1344, 1391, 1344, 1344, 1344, 1384, 1384, 1384,
824 1384, 1384, 1384, 1384, 1394, 1394, 1344, 1386, 1344, 1344,
826 1344, 1369, 1369, 1369, 1370, 1344, 1344, 1370, 1389, 1371,
827 1371, 1344, 1391, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
828 1394, 1394, 1394, 1344, 1386, 1344, 1344, 1344, 1344, 1369,
829 1369, 1369, 1369, 1370, 1344, 1344, 1344, 1370, 1389, 1344,
830 1344, 1371, 1344, 1344, 1371, 1344, 1391, 1384, 1384, 1384,
831 1384, 1384, 1384, 1384, 1394, 1394, 1394, 1395, 1396, 1344,
832 1386, 1369, 1369, 1369, 1369, 1344, 1344, 1344, 1344, 1344,
833 1344, 1344, 1344, 1344, 1371, 1344, 1344, 1344, 1371, 1344,
834 1391, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1394,
835 1397, 1398, 1395, 1396, 1344, 1386, 1369, 1369, 1369, 1369,
837 1344, 1344, 1344, 1344, 1344, 1344, 1371, 1371, 1344, 1344,
838 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1397, 1394,
839 1399, 1398, 1400, 1394, 1344, 1386, 1369, 1369, 1369, 1369,
840 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384,
841 1384, 1384, 1384, 1384, 1399, 1344, 1400, 1394, 1344, 1386,
842 1344, 1344, 1344, 1344, 1344, 1344, 1369, 1344, 1344, 1344,
843 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
844 1384, 1384, 1384, 1344, 1344, 1386, 1344, 1344, 1344, 1344,
845 1344, 1344, 1344, 1344, 1344, 1369, 1344, 1344, 1344, 1344,
846 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
848 1384, 1384, 1384, 1344, 1344, 1386, 1369, 1344, 1344, 1344,
849 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
850 1384, 1344, 1386, 1369, 1344, 1344, 1344, 1344, 1371, 1371,
851 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
852 1386, 1369, 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384,
853 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344,
854 1344, 1344, 1344, 1344, 1344, 1371, 1371, 1384, 1384, 1384,
855 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344,
856 1344, 1344, 1371, 1371, 1384, 1384, 1384, 1384, 1384, 1384,
857 1384, 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384,
859 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1371, 1371,
860 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
861 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
862 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1371, 1371,
863 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
864 1384, 1384, 1384, 1371, 1371, 1384, 1384, 1384, 1384, 1384,
865 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344,
866 1344, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
867 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1344, 1344, 1344,
868 1344, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
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, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
874 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
875 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
876 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
877 1384, 1384, 1384, 1344, 1384, 1384, 1384, 1384, 1384, 1384,
878 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1344, 1384, 1384,
879 1384, 1384, 1384, 1344, 1384, 1384, 1384, 1344, 1384, 1384,
881 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
882 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
883 1384, 1384, 1344, 1384, 1384, 1384, 1384, 1384, 1384, 1344,
884 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384,
885 1384, 1384, 1344, 0, 1344, 1344, 1344, 1344, 1344, 1344,
886 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
887 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
888 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
889 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
890 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344
894 static yyconst flex_int16_t yy_nxt[3738] =
896 1344, 96, 97, 96, 96, 97, 96, 96, 97, 96,
897 96, 97, 96, 104, 1344, 98, 104, 107, 98, 107,
898 105, 99, 361, 105, 99, 101, 97, 101, 101, 97,
899 101, 110, 111, 108, 363, 108, 112, 113, 304, 102,
900 110, 111, 102, 300, 114, 112, 113, 110, 111, 920,
901 115, 229, 112, 114, 110, 111, 301, 115, 923, 112,
902 114, 117, 118, 117, 118, 230, 229, 114, 97, 97,
903 97, 97, 97, 97, 129, 97, 129, 129, 97, 129,
904 231, 306, 120, 361, 307, 120, 305, 304, 130, 365,
905 361, 130, 228, 228, 228, 119, 595, 119, 121, 122,
907 97, 122, 121, 121, 121, 121, 121, 121, 121, 123,
908 121, 920, 121, 125, 121, 126, 121, 97, 97, 97,
909 923, 97, 97, 97, 129, 97, 129, 129, 97, 129,
910 789, 131, 361, 121, 121, 131, 232, 271, 130, 361,
911 232, 130, 228, 228, 228, 228, 228, 228, 272, 551,
912 231, 228, 228, 228, 231, 491, 127, 121, 122, 97,
913 122, 121, 121, 121, 121, 121, 121, 121, 123, 121,
914 494, 121, 125, 121, 126, 121, 129, 97, 129, 361,
915 129, 97, 129, 97, 97, 97, 97, 97, 97, 361,
916 132, 232, 121, 121, 132, 597, 232, 133, 232, 232,
918 133, 228, 228, 228, 759, 231, 247, 228, 228, 228,
919 231, 494, 231, 231, 494, 127, 134, 135, 97, 135,
920 134, 134, 134, 134, 134, 134, 134, 136, 134, 794,
921 134, 138, 134, 139, 134, 142, 97, 142, 249, 142,
922 97, 142, 97, 97, 97, 1155, 243, 596, 635, 143,
923 361, 134, 134, 143, 437, 494, 131, 361, 494, 140,
924 134, 135, 97, 135, 134, 134, 134, 134, 134, 134,
925 134, 136, 134, 494, 134, 138, 134, 139, 134, 97,
926 97, 97, 722, 142, 97, 142, 142, 97, 142, 677,
927 142, 97, 142, 131, 756, 134, 134, 143, 494, 1154,
929 143, 361, 723, 140, 144, 142, 97, 142, 97, 97,
930 97, 97, 97, 97, 228, 228, 228, 361, 883, 144,
931 648, 634, 145, 633, 649, 145, 146, 147, 97, 147,
932 146, 146, 146, 146, 146, 146, 146, 148, 146, 149,
933 146, 150, 146, 151, 146, 149, 149, 149, 149, 149,
934 149, 149, 149, 149, 149, 149, 149, 149, 149, 149,
935 149, 146, 146, 149, 152, 149, 149, 149, 149, 149,
936 149, 149, 153, 149, 149, 154, 155, 149, 156, 149,
937 149, 157, 149, 149, 149, 149, 149, 149, 159, 97,
938 159, 159, 97, 159, 97, 97, 97, 97, 97, 97,
940 650, 361, 160, 659, 651, 160, 661, 660, 161, 1140,
941 662, 161, 162, 163, 97, 163, 162, 162, 162, 162,
942 162, 162, 162, 164, 162, 494, 162, 166, 162, 167,
943 162, 173, 97, 173, 758, 173, 97, 173, 97, 97,
944 97, 97, 97, 97, 232, 174, 361, 162, 162, 174,
945 232, 168, 175, 831, 832, 175, 361, 256, 231, 1139,
946 169, 1125, 170, 678, 231, 361, 494, 171, 162, 163,
947 97, 163, 162, 162, 162, 162, 162, 162, 162, 164,
948 162, 757, 162, 166, 162, 167, 162, 186, 97, 186,
949 762, 186, 97, 186, 97, 97, 97, 97, 97, 97,
951 764, 187, 885, 162, 162, 187, 1124, 168, 188, 494,
952 495, 188, 228, 228, 228, 361, 169, 494, 170, 228,
953 228, 228, 361, 171, 176, 177, 97, 177, 176, 176,
954 176, 176, 176, 176, 176, 178, 176, 361, 176, 180,
955 176, 181, 176, 186, 97, 186, 763, 186, 97, 186,
956 186, 97, 186, 186, 97, 186, 793, 187, 1113, 176,
957 176, 187, 232, 232, 189, 182, 361, 189, 760, 265,
958 183, 228, 228, 228, 761, 361, 231, 231, 361, 184,
959 176, 177, 97, 177, 176, 176, 176, 176, 176, 176,
960 176, 178, 176, 788, 176, 180, 176, 181, 176, 97,
962 97, 97, 361, 97, 97, 97, 198, 97, 198, 198,
963 97, 198, 851, 188, 791, 176, 176, 188, 232, 232,
964 199, 182, 940, 199, 1110, 273, 183, 228, 228, 228,
965 361, 494, 231, 231, 361, 184, 190, 191, 97, 191,
966 190, 190, 190, 190, 190, 190, 190, 192, 190, 361,
967 190, 194, 190, 195, 190, 97, 97, 97, 821, 97,
968 97, 97, 212, 97, 212, 212, 97, 212, 887, 200,
969 792, 190, 190, 200, 814, 1109, 213, 361, 361, 213,
970 228, 228, 228, 228, 228, 228, 196, 190, 191, 97,
971 191, 190, 190, 190, 190, 190, 190, 190, 192, 190,
973 790, 190, 194, 190, 195, 190, 97, 97, 97, 816,
974 97, 97, 97, 212, 97, 212, 212, 97, 212, 232,
975 214, 232, 190, 190, 214, 361, 279, 213, 361, 1096,
976 213, 967, 1095, 231, 1084, 231, 361, 196, 201, 202,
977 97, 202, 201, 201, 201, 201, 201, 201, 201, 203,
978 201, 494, 201, 205, 201, 206, 201, 212, 97, 212,
979 848, 212, 97, 212, 97, 97, 97, 250, 97, 97,
980 97, 215, 232, 201, 201, 215, 232, 232, 214, 1114,
981 361, 207, 214, 208, 795, 209, 231, 228, 228, 228,
982 231, 231, 361, 210, 201, 202, 97, 202, 201, 201,
984 201, 201, 201, 201, 201, 203, 201, 232, 201, 205,
985 201, 206, 201, 224, 97, 224, 884, 224, 97, 224,
986 850, 231, 252, 228, 228, 228, 280, 225, 361, 201,
987 201, 225, 228, 228, 228, 110, 111, 207, 997, 208,
988 112, 209, 237, 248, 228, 228, 228, 361, 226, 210,
989 216, 217, 97, 217, 216, 216, 216, 216, 216, 216,
990 216, 218, 216, 232, 216, 220, 216, 221, 216, 227,
991 110, 111, 361, 852, 238, 112, 232, 231, 361, 361,
992 239, 232, 232, 226, 240, 216, 216, 232, 279, 241,
993 231, 232, 232, 232, 284, 231, 231, 853, 291, 247,
995 494, 231, 819, 854, 227, 231, 231, 231, 222, 216,
996 217, 97, 217, 216, 216, 216, 216, 216, 216, 216,
997 218, 216, 232, 216, 220, 216, 221, 216, 248, 248,
998 251, 280, 361, 796, 249, 249, 231, 745, 250, 250,
999 251, 251, 252, 252, 216, 216, 232, 232, 228, 228,
1000 228, 746, 361, 256, 291, 232, 292, 228, 228, 228,
1001 231, 231, 296, 228, 228, 228, 886, 222, 361, 231,
1002 374, 374, 374, 374, 374, 374, 361, 384, 384, 384,
1003 361, 292, 248, 384, 384, 384, 376, 361, 249, 376,
1004 361, 818, 250, 386, 251, 912, 252, 999, 361, 386,
1006 394, 394, 394, 394, 394, 394, 403, 403, 403, 403,
1007 403, 403, 407, 407, 407, 882, 396, 361, 817, 396,
1008 377, 361, 405, 361, 1083, 405, 820, 408, 410, 410,
1009 410, 911, 387, 412, 412, 412, 412, 412, 412, 418,
1010 418, 418, 913, 411, 418, 418, 418, 361, 918, 414,
1011 406, 914, 414, 361, 397, 420, 426, 426, 426, 920,
1012 420, 426, 426, 426, 432, 432, 432, 432, 432, 432,
1013 931, 921, 428, 374, 374, 374, 361, 428, 932, 933,
1014 434, 361, 361, 434, 915, 941, 415, 934, 361, 376,
1015 374, 374, 374, 361, 421, 374, 374, 374, 446, 446,
1017 446, 451, 451, 451, 938, 361, 376, 384, 384, 384,
1018 361, 376, 944, 969, 429, 937, 452, 384, 384, 384,
1019 435, 361, 943, 386, 384, 384, 384, 457, 457, 457,
1020 970, 916, 445, 386, 394, 394, 394, 394, 394, 394,
1021 386, 361, 458, 394, 394, 394, 464, 464, 464, 1082,
1022 396, 1035, 361, 396, 403, 403, 403, 361, 998, 396,
1023 361, 465, 361, 453, 403, 403, 403, 403, 403, 403,
1024 405, 407, 407, 407, 469, 469, 469, 972, 470, 361,
1025 405, 471, 973, 405, 920, 1017, 408, 410, 410, 410,
1026 473, 473, 473, 361, 474, 1002, 921, 475, 1036, 461,
1028 361, 1081, 411, 412, 412, 412, 361, 412, 412, 412,
1029 412, 412, 412, 478, 478, 478, 418, 418, 418, 414,
1030 361, 1016, 468, 414, 1000, 1003, 414, 361, 479, 418,
1031 418, 418, 420, 418, 418, 418, 482, 482, 482, 426,
1032 426, 426, 426, 426, 426, 420, 426, 426, 426, 420,
1033 361, 483, 432, 432, 432, 428, 1090, 1073, 428, 432,
1034 432, 432, 428, 432, 432, 432, 476, 1001, 434, 493,
1035 493, 493, 374, 374, 374, 434, 446, 446, 446, 434,
1036 451, 451, 451, 361, 1067, 494, 495, 361, 376, 480,
1037 505, 505, 505, 1038, 506, 452, 486, 507, 384, 384,
1039 384, 457, 457, 457, 1014, 1066, 489, 361, 512, 512,
1040 512, 361, 513, 1020, 386, 514, 458, 515, 515, 515,
1041 517, 517, 517, 520, 520, 520, 1019, 500, 464, 464,
1042 464, 361, 516, 361, 361, 518, 528, 528, 528, 521,
1043 524, 524, 524, 465, 525, 508, 1031, 526, 403, 403,
1044 403, 529, 361, 469, 469, 469, 519, 470, 1018, 1021,
1045 471, 473, 473, 473, 405, 474, 361, 1102, 475, 412,
1046 412, 412, 530, 478, 478, 478, 535, 535, 535, 1065,
1047 536, 361, 1034, 537, 361, 414, 361, 1052, 479, 418,
1048 418, 418, 482, 482, 482, 540, 540, 540, 361, 541,
1050 1037, 1123, 542, 361, 1055, 420, 531, 483, 361, 426,
1051 426, 426, 547, 547, 547, 432, 432, 432, 493, 493,
1052 493, 374, 374, 374, 533, 428, 361, 548, 561, 561,
1053 561, 434, 361, 361, 494, 361, 1039, 376, 505, 505,
1054 505, 1068, 506, 1064, 538, 507, 361, 1057, 545, 384,
1055 384, 384, 361, 512, 512, 512, 1054, 513, 361, 552,
1056 514, 361, 1049, 557, 1050, 386, 515, 515, 515, 1089,
1057 1051, 549, 566, 566, 566, 553, 567, 361, 361, 568,
1058 361, 516, 517, 517, 517, 569, 569, 569, 1063, 570,
1059 1071, 361, 571, 520, 520, 520, 1103, 518, 1069, 524,
1061 524, 524, 361, 525, 361, 562, 526, 1117, 361, 521,
1062 528, 528, 528, 576, 576, 576, 1118, 577, 1070, 1108,
1063 578, 403, 403, 403, 361, 529, 412, 412, 412, 535,
1064 535, 535, 361, 536, 1074, 1062, 537, 405, 418, 418,
1065 418, 1086, 414, 540, 540, 540, 1092, 541, 1048, 361,
1066 542, 547, 547, 547, 420, 361, 426, 426, 426, 1085,
1067 361, 590, 590, 590, 361, 591, 548, 582, 592, 1087,
1068 361, 580, 428, 432, 432, 432, 599, 599, 599, 584,
1069 374, 374, 374, 561, 561, 561, 384, 384, 384, 434,
1070 1098, 600, 641, 641, 641, 1106, 376, 588, 1093, 566,
1072 566, 566, 386, 567, 361, 1047, 568, 569, 569, 569,
1073 1107, 570, 361, 361, 571, 361, 613, 613, 613, 1132,
1074 1138, 593, 403, 403, 403, 1046, 605, 622, 622, 622,
1075 601, 614, 576, 576, 576, 361, 577, 361, 405, 578,
1076 418, 418, 418, 623, 426, 426, 426, 590, 590, 590,
1077 1115, 591, 615, 1116, 592, 361, 420, 599, 599, 599,
1078 428, 432, 432, 432, 637, 637, 637, 1128, 638, 1045,
1079 361, 639, 600, 361, 1121, 620, 625, 434, 374, 374,
1080 374, 643, 643, 643, 384, 384, 384, 1129, 613, 613,
1081 613, 403, 403, 403, 376, 668, 668, 668, 629, 1099,
1083 386, 1143, 631, 614, 654, 654, 654, 405, 655, 361,
1084 669, 656, 622, 622, 622, 361, 418, 418, 418, 426,
1085 426, 426, 432, 432, 432, 644, 1158, 361, 623, 361,
1086 361, 640, 420, 361, 361, 428, 361, 664, 434, 676,
1087 676, 676, 637, 637, 637, 1245, 638, 1119, 361, 639,
1088 374, 374, 374, 1120, 361, 361, 361, 667, 641, 641,
1089 641, 643, 643, 643, 1122, 1133, 376, 682, 682, 682,
1090 1130, 674, 1126, 672, 692, 692, 692, 654, 654, 654,
1091 1136, 655, 361, 683, 656, 403, 403, 403, 1131, 693,
1092 418, 418, 418, 668, 668, 668, 1134, 361, 680, 361,
1094 361, 405, 709, 709, 709, 361, 420, 1147, 669, 361,
1095 694, 706, 706, 706, 1230, 707, 361, 710, 708, 361,
1096 1127, 702, 712, 712, 712, 714, 714, 714, 432, 432,
1097 432, 374, 374, 374, 682, 682, 682, 705, 713, 732,
1098 732, 732, 1137, 1151, 434, 1135, 361, 376, 361, 1141,
1099 683, 692, 692, 692, 733, 734, 734, 734, 1195, 735,
1100 361, 361, 736, 742, 742, 742, 693, 725, 714, 714,
1101 714, 403, 403, 403, 418, 418, 418, 1144, 743, 709,
1102 709, 709, 361, 715, 676, 676, 676, 405, 1142, 1159,
1103 420, 706, 706, 706, 710, 707, 361, 1145, 708, 361,
1105 361, 749, 749, 749, 1152, 750, 1044, 1043, 751, 752,
1106 752, 752, 712, 712, 712, 748, 361, 361, 744, 1146,
1107 361, 716, 1153, 717, 753, 754, 754, 754, 713, 718,
1108 374, 374, 374, 719, 361, 720, 1149, 721, 732, 732,
1109 732, 755, 361, 771, 771, 771, 376, 772, 361, 361,
1110 773, 1148, 361, 733, 734, 734, 734, 1150, 735, 1042,
1111 361, 736, 742, 742, 742, 777, 777, 777, 1160, 778,
1112 766, 1156, 779, 403, 403, 403, 361, 743, 418, 418,
1113 418, 749, 749, 749, 1166, 750, 1157, 1196, 751, 405,
1114 752, 752, 752, 1163, 420, 785, 785, 785, 361, 786,
1116 1175, 361, 787, 361, 361, 753, 754, 754, 754, 374,
1117 374, 374, 800, 800, 800, 403, 403, 403, 780, 806,
1118 806, 806, 755, 361, 1161, 376, 784, 801, 771, 771,
1119 771, 405, 772, 361, 807, 773, 777, 777, 777, 1199,
1120 778, 1200, 1221, 779, 418, 418, 418, 361, 802, 1164,
1121 798, 785, 785, 785, 361, 786, 1030, 361, 787, 1165,
1122 420, 815, 815, 815, 809, 822, 822, 822, 374, 374,
1123 374, 826, 826, 826, 800, 800, 800, 361, 1176, 1167,
1124 823, 494, 361, 1173, 376, 813, 827, 827, 827, 801,
1125 828, 361, 1168, 829, 806, 806, 806, 835, 835, 835,
1127 361, 836, 1029, 361, 837, 403, 403, 403, 1216, 807,
1128 840, 840, 840, 843, 843, 843, 418, 418, 418, 361,
1129 361, 405, 825, 361, 1225, 841, 1174, 1210, 844, 815,
1130 815, 815, 420, 826, 826, 826, 361, 855, 855, 855,
1131 822, 822, 822, 361, 361, 361, 842, 1028, 361, 845,
1132 361, 839, 856, 494, 1184, 823, 494, 857, 857, 857,
1133 849, 858, 1177, 1178, 859, 847, 374, 374, 374, 1204,
1134 827, 827, 827, 494, 828, 1185, 361, 829, 866, 866,
1135 866, 361, 376, 835, 835, 835, 1182, 836, 1222, 1027,
1136 837, 1183, 1026, 867, 868, 868, 868, 870, 870, 870,
1138 840, 840, 840, 1025, 361, 861, 843, 843, 843, 869,
1139 872, 872, 872, 871, 873, 841, 1205, 874, 876, 876,
1140 876, 844, 877, 361, 1193, 878, 880, 880, 880, 418,
1141 418, 418, 888, 888, 888, 855, 855, 855, 1024, 890,
1142 890, 890, 361, 891, 361, 420, 892, 1194, 361, 361,
1143 856, 494, 866, 866, 866, 494, 857, 857, 857, 1270,
1144 858, 361, 361, 859, 374, 374, 374, 867, 889, 901,
1145 901, 901, 494, 902, 1197, 1212, 903, 880, 880, 880,
1146 376, 870, 870, 870, 881, 492, 492, 492, 492, 492,
1147 492, 492, 492, 492, 1198, 361, 492, 871, 1228, 492,
1149 492, 492, 494, 492, 868, 868, 868, 904, 904, 904,
1150 361, 905, 361, 361, 906, 361, 1022, 896, 1013, 869,
1151 492, 492, 492, 492, 492, 492, 492, 492, 492, 492,
1152 492, 361, 1012, 492, 1211, 1214, 492, 492, 492, 494,
1153 492, 872, 872, 872, 1202, 873, 361, 1203, 874, 876,
1154 876, 876, 1233, 877, 361, 361, 878, 492, 492, 909,
1155 909, 909, 888, 888, 888, 890, 890, 890, 1229, 891,
1156 1225, 361, 892, 361, 361, 910, 361, 1213, 361, 361,
1157 1258, 494, 901, 901, 901, 1217, 902, 1208, 361, 903,
1158 909, 909, 909, 917, 492, 492, 492, 492, 492, 924,
1160 492, 492, 492, 1209, 1218, 492, 910, 361, 492, 492,
1161 492, 494, 492, 904, 904, 904, 1215, 905, 361, 361,
1162 906, 1040, 1040, 1040, 374, 374, 374, 361, 1235, 492,
1163 492, 492, 492, 492, 492, 492, 492, 492, 492, 924,
1164 376, 361, 492, 1219, 1243, 492, 492, 492, 494, 492,
1165 1256, 1220, 939, 939, 939, 942, 942, 942, 948, 948,
1166 948, 374, 374, 374, 361, 1011, 492, 492, 361, 926,
1167 361, 361, 1223, 361, 494, 495, 361, 376, 951, 951,
1168 951, 953, 953, 953, 955, 955, 955, 958, 958, 958,
1169 966, 966, 966, 952, 1226, 1224, 954, 1241, 361, 956,
1171 1242, 361, 959, 939, 939, 939, 361, 942, 942, 942,
1172 1236, 1010, 950, 948, 948, 948, 374, 374, 374, 361,
1173 957, 1227, 361, 361, 951, 951, 951, 1009, 361, 494,
1174 1268, 361, 376, 361, 968, 953, 953, 953, 971, 952,
1175 977, 977, 977, 361, 978, 361, 361, 979, 1244, 1231,
1176 954, 980, 980, 980, 552, 981, 361, 1246, 982, 955,
1177 955, 955, 983, 983, 983, 1232, 984, 1247, 1008, 985,
1178 1234, 976, 361, 361, 956, 958, 958, 958, 987, 987,
1179 987, 1007, 988, 1250, 1254, 989, 966, 966, 966, 361,
1180 959, 374, 374, 374, 977, 977, 977, 1248, 978, 361,
1182 361, 979, 361, 1237, 980, 980, 980, 376, 981, 361,
1183 361, 982, 983, 983, 983, 1005, 984, 996, 1238, 985,
1184 987, 987, 987, 1249, 988, 361, 1251, 989, 1015, 1015,
1185 1015, 374, 374, 374, 1261, 1262, 1006, 361, 1015, 1015,
1186 1015, 361, 1032, 1257, 361, 1033, 361, 376, 374, 374,
1187 374, 1053, 1053, 1053, 361, 1056, 1056, 1056, 1040, 1040,
1188 1040, 1058, 1058, 1058, 376, 1252, 1261, 361, 1060, 1060,
1189 1060, 361, 1053, 1053, 1053, 361, 1255, 1059, 1056, 1056,
1190 1056, 1023, 1075, 1061, 1279, 1076, 361, 1004, 361, 1077,
1191 1077, 1077, 361, 361, 361, 361, 361, 1041, 1058, 1058,
1193 1058, 361, 995, 1072, 361, 361, 1060, 1060, 1060, 1078,
1194 1078, 1078, 1263, 1079, 1059, 994, 1080, 1088, 1088, 1088,
1195 1253, 1061, 1091, 1091, 1091, 1077, 1077, 1077, 1078, 1078,
1196 1078, 1259, 1079, 361, 1260, 1080, 1269, 361, 361, 361,
1197 1264, 361, 1097, 1097, 1097, 1088, 1088, 1088, 993, 1100,
1198 1279, 361, 1101, 1091, 1091, 1091, 1094, 1104, 361, 361,
1199 1105, 361, 361, 1097, 1097, 1097, 361, 1111, 1280, 361,
1200 1112, 1162, 1162, 1162, 1169, 1169, 1169, 1318, 1265, 361,
1201 1171, 1171, 1171, 1266, 1162, 1162, 1162, 361, 1179, 1170,
1202 1267, 1180, 1181, 1181, 1181, 1172, 1186, 1186, 1186, 992,
1204 361, 1169, 1169, 1169, 1171, 1171, 1171, 361, 361, 361,
1205 991, 361, 361, 1187, 1187, 1187, 1170, 1188, 1283, 1172,
1206 1189, 1190, 1190, 1190, 990, 1191, 361, 361, 1192, 1181,
1207 1181, 1181, 1186, 1186, 1186, 1271, 1206, 361, 1281, 1207,
1208 1187, 1187, 1187, 361, 1188, 361, 361, 1189, 361, 1190,
1209 1190, 1190, 1275, 1191, 361, 361, 1192, 1239, 1239, 1239,
1210 1201, 1239, 1239, 1239, 1273, 1273, 1273, 1272, 1295, 1276,
1211 1277, 1283, 361, 1240, 1282, 1282, 1282, 1240, 1278, 1286,
1212 1274, 361, 1289, 361, 1273, 1273, 1273, 1284, 1286, 361,
1213 361, 361, 1287, 1287, 1287, 1290, 361, 361, 361, 986,
1215 1274, 361, 361, 975, 1285, 1282, 1282, 1282, 1288, 1291,
1216 361, 361, 1292, 1293, 1293, 1293, 1297, 1297, 1297, 1301,
1217 361, 361, 1287, 1287, 1287, 1299, 1303, 1296, 1304, 1294,
1218 361, 361, 1298, 361, 1300, 361, 1302, 361, 1288, 1293,
1219 1293, 1293, 1297, 1297, 1297, 361, 361, 361, 361, 361,
1220 1305, 361, 361, 1317, 1317, 1294, 361, 361, 1298, 1306,
1221 361, 1309, 361, 361, 361, 361, 1326, 1326, 361, 1310,
1222 1307, 1308, 1311, 1312, 361, 361, 1322, 1322, 1322, 361,
1223 361, 1320, 1319, 1313, 1314, 361, 1321, 946, 361, 361,
1224 1315, 1316, 1323, 1322, 1322, 1322, 1329, 1329, 1329, 361,
1226 1327, 1333, 361, 1324, 974, 946, 1328, 1325, 361, 1323,
1227 1334, 1331, 1330, 1329, 1329, 1329, 1332, 361, 361, 361,
1228 1341, 1341, 965, 1335, 964, 963, 1336, 1337, 1338, 1330,
1229 361, 962, 361, 1342, 1342, 1342, 1342, 1342, 1342, 961,
1230 960, 949, 1339, 1340, 946, 946, 936, 935, 930, 1343,
1231 929, 928, 1343, 94, 94, 94, 94, 94, 94, 94,
1232 95, 95, 95, 95, 95, 95, 95, 100, 100, 100,
1233 100, 100, 100, 100, 103, 103, 103, 103, 103, 103,
1234 103, 106, 106, 106, 106, 106, 106, 106, 109, 109,
1235 109, 109, 109, 109, 109, 116, 116, 116, 116, 116,
1237 116, 116, 124, 124, 124, 124, 124, 124, 124, 128,
1238 128, 128, 128, 128, 128, 128, 137, 137, 137, 137,
1239 137, 137, 137, 141, 141, 141, 141, 141, 141, 141,
1240 158, 158, 158, 158, 158, 158, 158, 165, 165, 165,
1241 165, 165, 165, 165, 172, 172, 172, 172, 172, 172,
1242 172, 179, 179, 179, 179, 179, 179, 179, 185, 185,
1243 185, 185, 185, 185, 185, 193, 193, 193, 193, 193,
1244 193, 193, 197, 197, 197, 197, 197, 197, 197, 204,
1245 204, 204, 204, 204, 204, 204, 211, 211, 211, 211,
1246 211, 211, 211, 219, 219, 219, 219, 219, 219, 219,
1248 223, 223, 223, 223, 223, 223, 223, 245, 245, 245,
1249 927, 245, 254, 254, 254, 925, 254, 258, 258, 258,
1250 908, 258, 267, 267, 267, 907, 267, 275, 275, 275,
1251 900, 275, 282, 282, 282, 899, 282, 286, 286, 286,
1252 898, 286, 294, 294, 294, 897, 294, 299, 299, 299,
1253 299, 299, 895, 299, 314, 879, 314, 322, 875, 322,
1254 330, 865, 330, 337, 864, 337, 342, 863, 342, 346,
1255 862, 346, 352, 860, 352, 356, 846, 356, 360, 360,
1256 360, 360, 360, 360, 360, 366, 838, 834, 366, 375,
1257 375, 375, 375, 375, 375, 385, 385, 385, 385, 385,
1259 385, 395, 395, 395, 395, 395, 395, 404, 404, 404,
1260 404, 404, 404, 413, 413, 413, 413, 413, 413, 419,
1261 419, 419, 419, 419, 419, 427, 427, 427, 427, 427,
1262 427, 433, 433, 433, 433, 433, 433, 492, 492, 492,
1263 492, 492, 492, 492, 893, 893, 893, 893, 893, 893,
1264 893, 894, 894, 894, 894, 894, 894, 894, 919, 919,
1265 919, 919, 919, 919, 919, 922, 922, 922, 922, 922,
1266 922, 922, 945, 945, 945, 945, 945, 945, 945, 947,
1267 947, 947, 947, 947, 947, 947, 833, 830, 824, 812,
1268 811, 810, 808, 805, 804, 803, 799, 797, 783, 782,
1270 781, 776, 775, 774, 770, 769, 768, 767, 765, 747,
1271 741, 740, 739, 738, 737, 731, 730, 729, 728, 727,
1272 726, 724, 711, 704, 703, 701, 700, 699, 698, 697,
1273 696, 695, 691, 690, 689, 688, 687, 686, 685, 684,
1274 681, 679, 675, 673, 671, 670, 666, 665, 663, 658,
1275 657, 653, 652, 647, 646, 645, 642, 636, 632, 630,
1276 628, 627, 626, 624, 621, 619, 618, 617, 616, 612,
1277 611, 610, 609, 608, 607, 606, 604, 603, 602, 598,
1278 594, 589, 587, 586, 585, 583, 581, 579, 575, 574,
1279 573, 572, 565, 564, 563, 560, 559, 558, 556, 555,
1281 554, 494, 550, 546, 544, 543, 539, 534, 532, 527,
1282 523, 522, 511, 510, 509, 504, 503, 502, 501, 499,
1283 498, 497, 496, 490, 488, 487, 485, 484, 481, 477,
1284 472, 467, 466, 463, 462, 460, 459, 456, 455, 454,
1285 450, 449, 448, 447, 444, 443, 442, 441, 440, 439,
1286 438, 361, 436, 431, 430, 425, 424, 423, 422, 417,
1287 416, 409, 402, 401, 400, 399, 398, 393, 392, 391,
1288 390, 389, 388, 383, 382, 381, 380, 379, 378, 373,
1289 372, 371, 370, 369, 368, 367, 364, 362, 361, 359,
1290 358, 357, 355, 354, 353, 351, 350, 349, 348, 347,
1292 345, 344, 343, 341, 340, 339, 338, 336, 335, 334,
1293 333, 332, 331, 329, 328, 327, 326, 325, 324, 323,
1294 321, 320, 319, 318, 317, 316, 315, 313, 312, 311,
1295 310, 309, 308, 303, 300, 302, 298, 297, 295, 293,
1296 290, 289, 288, 287, 285, 283, 281, 278, 277, 276,
1297 274, 270, 269, 268, 266, 264, 263, 262, 261, 260,
1298 259, 257, 255, 253, 246, 244, 242, 236, 235, 236,
1299 235, 234, 233, 1344, 93, 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,
1303 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1304 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1305 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1306 1344, 1344, 1344, 1344, 1344, 1344, 1344
1309 static yyconst flex_int16_t yy_chk[3738] =
1311 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
1312 6, 6, 6, 9, 0, 3, 10, 11, 4, 12,
1313 9, 5, 301, 10, 6, 7, 7, 7, 8, 8,
1314 8, 13, 13, 11, 301, 12, 13, 13, 237, 7,
1315 14, 14, 8, 229, 13, 14, 14, 15, 15, 892,
1316 15, 98, 15, 14, 16, 16, 229, 16, 892, 16,
1317 15, 17, 17, 18, 18, 98, 99, 16, 19, 19,
1318 19, 20, 20, 20, 23, 23, 23, 24, 24, 24,
1319 99, 238, 19, 551, 238, 20, 237, 304, 23, 304,
1320 757, 24, 96, 96, 96, 17, 551, 18, 21, 21,
1322 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
1323 21, 922, 21, 21, 21, 21, 21, 25, 25, 25,
1324 922, 26, 26, 26, 27, 27, 27, 28, 28, 28,
1325 757, 25, 491, 21, 21, 26, 102, 171, 27, 437,
1326 125, 28, 97, 97, 97, 101, 101, 101, 171, 491,
1327 102, 122, 122, 122, 125, 437, 21, 22, 22, 22,
1328 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
1329 553, 22, 22, 22, 22, 22, 29, 29, 29, 719,
1330 30, 30, 30, 31, 31, 31, 32, 32, 32, 762,
1331 29, 138, 22, 22, 30, 553, 133, 31, 120, 132,
1333 32, 129, 129, 129, 719, 138, 132, 135, 135, 135,
1334 133, 597, 120, 132, 552, 22, 33, 33, 33, 33,
1335 33, 33, 33, 33, 33, 33, 33, 33, 33, 762,
1336 33, 33, 33, 33, 33, 35, 35, 35, 133, 36,
1337 36, 36, 37, 37, 37, 1140, 120, 552, 597, 35,
1338 363, 33, 33, 36, 363, 634, 37, 716, 677, 33,
1339 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
1340 34, 34, 34, 678, 34, 34, 34, 34, 34, 38,
1341 38, 38, 677, 39, 39, 39, 40, 40, 40, 634,
1342 41, 41, 41, 38, 716, 34, 34, 39, 596, 1139,
1344 40, 849, 678, 34, 41, 42, 42, 42, 43, 43,
1345 43, 44, 44, 44, 142, 142, 142, 595, 849, 42,
1346 609, 596, 43, 595, 609, 44, 45, 45, 45, 45,
1347 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1348 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1349 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1350 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1351 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1352 45, 45, 45, 45, 45, 45, 45, 45, 47, 47,
1353 47, 48, 48, 48, 49, 49, 49, 50, 50, 50,
1355 610, 718, 47, 617, 610, 48, 618, 617, 49, 1125,
1356 618, 50, 51, 51, 51, 51, 51, 51, 51, 51,
1357 51, 51, 51, 51, 51, 635, 51, 51, 51, 51,
1358 51, 53, 53, 53, 718, 54, 54, 54, 55, 55,
1359 55, 56, 56, 56, 150, 53, 717, 51, 51, 54,
1360 144, 51, 55, 803, 803, 56, 721, 144, 150, 1124,
1361 51, 1110, 51, 635, 144, 851, 723, 51, 52, 52,
1362 52, 52, 52, 52, 52, 52, 52, 52, 52, 52,
1363 52, 717, 52, 52, 52, 52, 52, 59, 59, 59,
1364 721, 60, 60, 60, 61, 61, 61, 62, 62, 62,
1366 723, 59, 851, 52, 52, 60, 1109, 52, 61, 920,
1367 920, 62, 147, 147, 147, 1098, 52, 722, 52, 159,
1368 159, 159, 761, 52, 57, 57, 57, 57, 57, 57,
1369 57, 57, 57, 57, 57, 57, 57, 720, 57, 57,
1370 57, 57, 57, 63, 63, 63, 722, 64, 64, 64,
1371 65, 65, 65, 66, 66, 66, 761, 63, 1098, 57,
1372 57, 64, 160, 166, 65, 57, 756, 66, 720, 160,
1373 57, 163, 163, 163, 720, 759, 160, 166, 817, 57,
1374 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
1375 58, 58, 58, 756, 58, 58, 58, 58, 58, 67,
1377 67, 67, 914, 68, 68, 68, 71, 71, 71, 72,
1378 72, 72, 817, 67, 759, 58, 58, 68, 174, 180,
1379 71, 58, 914, 72, 1096, 174, 58, 173, 173, 173,
1380 853, 795, 174, 180, 788, 58, 69, 69, 69, 69,
1381 69, 69, 69, 69, 69, 69, 69, 69, 69, 760,
1382 69, 69, 69, 69, 69, 73, 73, 73, 795, 74,
1383 74, 74, 77, 77, 77, 78, 78, 78, 853, 73,
1384 760, 69, 69, 74, 788, 1095, 77, 758, 790, 78,
1385 177, 177, 177, 186, 186, 186, 69, 70, 70, 70,
1386 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
1388 758, 70, 70, 70, 70, 70, 79, 79, 79, 790,
1389 80, 80, 80, 81, 81, 81, 82, 82, 82, 189,
1390 79, 161, 70, 70, 80, 938, 189, 81, 814, 1084,
1391 82, 938, 1083, 189, 1067, 161, 1099, 70, 75, 75,
1392 75, 75, 75, 75, 75, 75, 75, 75, 75, 75,
1393 75, 763, 75, 75, 75, 75, 75, 83, 83, 83,
1394 814, 84, 84, 84, 85, 85, 85, 161, 86, 86,
1395 86, 83, 175, 75, 75, 84, 188, 194, 85, 1099,
1396 816, 75, 86, 75, 763, 75, 175, 191, 191, 191,
1397 188, 194, 850, 75, 76, 76, 76, 76, 76, 76,
1399 76, 76, 76, 76, 76, 76, 76, 145, 76, 76,
1400 76, 76, 76, 89, 89, 89, 850, 90, 90, 90,
1401 816, 145, 175, 198, 198, 198, 188, 89, 967, 76,
1402 76, 90, 202, 202, 202, 91, 91, 76, 967, 76,
1403 91, 76, 112, 145, 212, 212, 212, 818, 91, 76,
1404 87, 87, 87, 87, 87, 87, 87, 87, 87, 87,
1405 87, 87, 87, 205, 87, 87, 87, 87, 87, 91,
1406 92, 92, 819, 818, 112, 92, 220, 205, 820, 793,
1407 112, 187, 200, 92, 112, 87, 87, 199, 187, 112,
1408 220, 215, 130, 131, 199, 187, 200, 819, 215, 130,
1410 764, 199, 793, 820, 92, 215, 130, 131, 87, 88,
1411 88, 88, 88, 88, 88, 88, 88, 88, 88, 88,
1412 88, 88, 214, 88, 88, 88, 88, 88, 130, 131,
1413 200, 187, 852, 764, 130, 131, 214, 703, 130, 131,
1414 130, 131, 130, 131, 88, 88, 143, 213, 217, 217,
1415 217, 703, 792, 143, 213, 225, 214, 224, 224, 224,
1416 143, 213, 225, 228, 228, 228, 852, 88, 969, 225,
1417 314, 314, 314, 315, 315, 315, 791, 322, 322, 322,
1418 883, 213, 143, 323, 323, 323, 314, 794, 143, 315,
1419 848, 792, 143, 322, 143, 883, 143, 969, 882, 323,
1421 330, 330, 330, 331, 331, 331, 337, 337, 337, 338,
1422 338, 338, 339, 339, 339, 848, 330, 884, 791, 331,
1423 315, 885, 337, 889, 1066, 338, 794, 339, 341, 341,
1424 341, 882, 323, 342, 342, 342, 343, 343, 343, 346,
1425 346, 346, 884, 341, 347, 347, 347, 886, 889, 342,
1426 338, 885, 343, 915, 331, 346, 352, 352, 352, 891,
1427 347, 353, 353, 353, 356, 356, 356, 357, 357, 357,
1428 905, 891, 352, 374, 374, 374, 911, 353, 905, 906,
1429 356, 918, 940, 357, 886, 915, 343, 906, 912, 374,
1430 375, 375, 375, 887, 347, 377, 377, 377, 378, 378,
1432 378, 383, 383, 383, 912, 917, 375, 384, 384, 384,
1433 941, 377, 918, 940, 353, 911, 383, 385, 385, 385,
1434 357, 1017, 917, 384, 387, 387, 387, 391, 391, 391,
1435 941, 887, 377, 385, 394, 394, 394, 395, 395, 395,
1436 387, 968, 391, 397, 397, 397, 400, 400, 400, 1064,
1437 394, 1017, 999, 395, 403, 403, 403, 944, 968, 397,
1438 1018, 400, 943, 387, 404, 404, 404, 406, 406, 406,
1439 403, 407, 407, 407, 408, 408, 408, 943, 408, 972,
1440 404, 408, 944, 406, 919, 999, 407, 410, 410, 410,
1441 411, 411, 411, 973, 411, 972, 919, 411, 1018, 397,
1443 970, 1062, 410, 412, 412, 412, 998, 413, 413, 413,
1444 415, 415, 415, 417, 417, 417, 418, 418, 418, 412,
1445 1054, 998, 406, 413, 970, 973, 415, 1073, 417, 419,
1446 419, 419, 418, 421, 421, 421, 423, 423, 423, 426,
1447 426, 426, 427, 427, 427, 419, 429, 429, 429, 421,
1448 971, 423, 432, 432, 432, 426, 1073, 1054, 427, 433,
1449 433, 433, 429, 435, 435, 435, 415, 971, 432, 438,
1450 438, 438, 445, 445, 445, 433, 446, 446, 446, 435,
1451 451, 451, 451, 1020, 1048, 438, 438, 996, 445, 421,
1452 452, 452, 452, 1020, 452, 451, 429, 452, 453, 453,
1454 453, 457, 457, 457, 996, 1047, 435, 1002, 458, 458,
1455 458, 1001, 458, 1002, 453, 458, 457, 459, 459, 459,
1456 460, 460, 460, 461, 461, 461, 1001, 445, 464, 464,
1457 464, 1014, 459, 1000, 1003, 460, 467, 467, 467, 461,
1458 465, 465, 465, 464, 465, 453, 1014, 465, 468, 468,
1459 468, 467, 1089, 469, 469, 469, 460, 469, 1000, 1003,
1460 469, 473, 473, 473, 468, 473, 1016, 1089, 473, 476,
1461 476, 476, 467, 478, 478, 478, 479, 479, 479, 1046,
1462 479, 1034, 1016, 479, 1019, 476, 1108, 1034, 478, 480,
1463 480, 480, 482, 482, 482, 483, 483, 483, 1037, 483,
1465 1019, 1108, 483, 1021, 1037, 480, 468, 482, 1039, 486,
1466 486, 486, 488, 488, 488, 489, 489, 489, 493, 493,
1467 493, 500, 500, 500, 476, 486, 1032, 488, 504, 504,
1468 504, 489, 1033, 1036, 493, 1049, 1021, 500, 505, 505,
1469 505, 1049, 505, 1045, 480, 505, 1031, 1039, 486, 508,
1470 508, 508, 1072, 512, 512, 512, 1036, 512, 1050, 493,
1471 512, 1090, 1031, 500, 1032, 508, 515, 515, 515, 1072,
1472 1033, 489, 516, 516, 516, 493, 516, 1103, 1051, 516,
1473 1052, 515, 517, 517, 517, 518, 518, 518, 1044, 518,
1474 1052, 1102, 518, 520, 520, 520, 1090, 517, 1050, 524,
1476 524, 524, 1094, 524, 1069, 508, 524, 1102, 1075, 520,
1477 528, 528, 528, 529, 529, 529, 1103, 529, 1051, 1094,
1478 529, 531, 531, 531, 1055, 528, 533, 533, 533, 535,
1479 535, 535, 1070, 535, 1055, 1043, 535, 531, 538, 538,
1480 538, 1069, 533, 540, 540, 540, 1075, 540, 1030, 1068,
1481 540, 547, 547, 547, 538, 1092, 545, 545, 545, 1068,
1482 1076, 548, 548, 548, 1086, 548, 547, 533, 548, 1070,
1483 1093, 531, 545, 549, 549, 549, 556, 556, 556, 538,
1484 557, 557, 557, 561, 561, 561, 562, 562, 562, 549,
1485 1086, 556, 602, 602, 602, 1092, 557, 545, 1076, 566,
1487 566, 566, 562, 566, 1123, 1029, 566, 569, 569, 569,
1488 1093, 569, 1100, 1117, 569, 1101, 574, 574, 574, 1117,
1489 1123, 549, 580, 580, 580, 1028, 562, 582, 582, 582,
1490 557, 574, 576, 576, 576, 1113, 576, 1106, 580, 576,
1491 584, 584, 584, 582, 588, 588, 588, 590, 590, 590,
1492 1100, 590, 574, 1101, 590, 1114, 584, 599, 599, 599,
1493 588, 593, 593, 593, 600, 600, 600, 1113, 600, 1027,
1494 1128, 600, 599, 1087, 1106, 580, 584, 593, 601, 601,
1495 601, 604, 604, 604, 605, 605, 605, 1114, 613, 613,
1496 613, 620, 620, 620, 601, 626, 626, 626, 588, 1087,
1498 605, 1128, 593, 613, 614, 614, 614, 620, 614, 1104,
1499 626, 614, 622, 622, 622, 1105, 625, 625, 625, 629,
1500 629, 629, 631, 631, 631, 605, 1143, 1107, 622, 1230,
1501 1115, 601, 625, 1143, 1111, 629, 1118, 620, 631, 633,
1502 633, 633, 637, 637, 637, 1230, 637, 1104, 1116, 637,
1503 640, 640, 640, 1105, 1121, 633, 1119, 625, 641, 641,
1504 641, 643, 643, 643, 1107, 1118, 640, 644, 644, 644,
1505 1115, 631, 1111, 629, 653, 653, 653, 654, 654, 654,
1506 1121, 654, 1112, 644, 654, 664, 664, 664, 1116, 653,
1507 667, 667, 667, 668, 668, 668, 1119, 1132, 640, 1216,
1509 1136, 664, 670, 670, 670, 1120, 667, 1132, 668, 1126,
1510 653, 669, 669, 669, 1216, 669, 1122, 670, 669, 1175,
1511 1112, 664, 672, 672, 672, 673, 673, 673, 674, 674,
1512 674, 680, 680, 680, 682, 682, 682, 667, 672, 691,
1513 691, 691, 1122, 1136, 674, 1120, 1129, 680, 1127, 1126,
1514 682, 692, 692, 692, 691, 693, 693, 693, 1175, 693,
1515 1130, 1137, 693, 701, 701, 701, 692, 680, 714, 714,
1516 714, 702, 702, 702, 705, 705, 705, 1129, 701, 709,
1517 709, 709, 1131, 674, 676, 676, 676, 702, 1127, 1144,
1518 705, 706, 706, 706, 709, 706, 1144, 1130, 706, 1134,
1520 676, 710, 710, 710, 1137, 710, 1026, 1025, 710, 711,
1521 711, 711, 712, 712, 712, 705, 1138, 1133, 702, 1131,
1522 1135, 676, 1138, 676, 711, 715, 715, 715, 712, 676,
1523 725, 725, 725, 676, 1141, 676, 1134, 676, 732, 732,
1524 732, 715, 1145, 733, 733, 733, 725, 733, 1176, 1142,
1525 733, 1133, 1151, 732, 734, 734, 734, 1135, 734, 1024,
1526 1148, 734, 742, 742, 742, 743, 743, 743, 1145, 743,
1527 725, 1141, 743, 744, 744, 744, 1158, 742, 748, 748,
1528 748, 749, 749, 749, 1151, 749, 1142, 1176, 749, 744,
1529 752, 752, 752, 1148, 748, 753, 753, 753, 1146, 753,
1531 1158, 1179, 753, 1180, 1206, 752, 754, 754, 754, 766,
1532 766, 766, 768, 768, 768, 780, 780, 780, 744, 775,
1533 775, 775, 754, 1149, 1146, 766, 748, 768, 771, 771,
1534 771, 780, 771, 1150, 775, 771, 777, 777, 777, 1179,
1535 777, 1180, 1206, 777, 784, 784, 784, 1152, 768, 1149,
1536 766, 785, 785, 785, 1159, 785, 1013, 1156, 785, 1150,
1537 784, 789, 789, 789, 780, 796, 796, 796, 798, 798,
1538 798, 799, 799, 799, 800, 800, 800, 789, 1159, 1152,
1539 796, 796, 1153, 1156, 798, 784, 801, 801, 801, 800,
1540 801, 1201, 1153, 801, 806, 806, 806, 807, 807, 807,
1542 1157, 807, 1012, 1195, 807, 809, 809, 809, 1201, 806,
1543 810, 810, 810, 811, 811, 811, 813, 813, 813, 1160,
1544 1161, 809, 798, 1166, 1210, 810, 1157, 1195, 811, 815,
1545 815, 815, 813, 826, 826, 826, 1210, 821, 821, 821,
1546 822, 822, 822, 1164, 1167, 815, 810, 1011, 1165, 811,
1547 1207, 809, 821, 821, 1166, 822, 822, 823, 823, 823,
1548 815, 823, 1160, 1161, 823, 813, 825, 825, 825, 1184,
1549 827, 827, 827, 823, 827, 1167, 1184, 827, 834, 834,
1550 834, 1173, 825, 835, 835, 835, 1164, 835, 1207, 1010,
1551 835, 1165, 1009, 834, 838, 838, 838, 839, 839, 839,
1553 840, 840, 840, 1008, 1174, 825, 843, 843, 843, 838,
1554 841, 841, 841, 839, 841, 840, 1185, 841, 844, 844,
1555 844, 843, 844, 1185, 1173, 844, 846, 846, 846, 847,
1556 847, 847, 854, 854, 854, 855, 855, 855, 1007, 856,
1557 856, 856, 1177, 856, 1197, 847, 856, 1174, 854, 1258,
1558 855, 855, 866, 866, 866, 856, 857, 857, 857, 1258,
1559 857, 1214, 1178, 857, 861, 861, 861, 866, 854, 867,
1560 867, 867, 857, 867, 1177, 1197, 867, 880, 880, 880,
1561 861, 870, 870, 870, 847, 858, 858, 858, 858, 858,
1562 858, 858, 858, 858, 1178, 1199, 858, 870, 1214, 858,
1564 858, 858, 858, 858, 868, 868, 868, 869, 869, 869,
1565 1196, 869, 1182, 1219, 869, 1183, 1005, 861, 995, 868,
1566 858, 858, 859, 859, 859, 859, 859, 859, 859, 859,
1567 859, 1215, 994, 859, 1196, 1199, 859, 859, 859, 859,
1568 859, 872, 872, 872, 1182, 872, 1198, 1183, 872, 876,
1569 876, 876, 1219, 876, 1202, 1193, 876, 859, 859, 881,
1570 881, 881, 888, 888, 888, 890, 890, 890, 1215, 890,
1571 1211, 1194, 890, 1203, 1245, 881, 1200, 1198, 888, 1211,
1572 1245, 890, 901, 901, 901, 1202, 901, 1193, 1221, 901,
1573 909, 909, 909, 888, 893, 893, 893, 893, 893, 893,
1575 893, 893, 893, 1194, 1203, 893, 909, 1243, 893, 893,
1576 893, 893, 893, 904, 904, 904, 1200, 904, 1228, 1204,
1577 904, 1022, 1022, 1022, 896, 896, 896, 1205, 1221, 893,
1578 893, 894, 894, 894, 894, 894, 894, 894, 894, 894,
1579 896, 1208, 894, 1204, 1228, 894, 894, 894, 894, 894,
1580 1243, 1205, 913, 913, 913, 916, 916, 916, 924, 924,
1581 924, 926, 926, 926, 1209, 993, 894, 894, 913, 896,
1582 1222, 916, 1208, 1226, 924, 924, 1227, 926, 927, 927,
1583 927, 928, 928, 928, 929, 929, 929, 930, 930, 930,
1584 937, 937, 937, 927, 1212, 1209, 928, 1226, 1256, 929,
1586 1227, 1212, 930, 939, 939, 939, 937, 942, 942, 942,
1587 1222, 992, 926, 948, 948, 948, 950, 950, 950, 939,
1588 929, 1213, 1229, 942, 951, 951, 951, 991, 1213, 948,
1589 1256, 1220, 950, 1231, 939, 953, 953, 953, 942, 951,
1590 952, 952, 952, 1232, 952, 1241, 1235, 952, 1229, 1217,
1591 953, 954, 954, 954, 948, 954, 1217, 1231, 954, 955,
1592 955, 955, 956, 956, 956, 1218, 956, 1232, 990, 956,
1593 1220, 950, 1218, 1233, 955, 958, 958, 958, 959, 959,
1594 959, 986, 959, 1235, 1241, 959, 966, 966, 966, 1236,
1595 958, 976, 976, 976, 977, 977, 977, 1233, 977, 1234,
1597 1244, 977, 966, 1223, 980, 980, 980, 976, 980, 1250,
1598 1223, 980, 983, 983, 983, 975, 983, 966, 1224, 983,
1599 987, 987, 987, 1234, 987, 1224, 1236, 987, 997, 997,
1600 997, 1006, 1006, 1006, 1248, 1250, 976, 1242, 1015, 1015,
1601 1015, 1237, 1015, 1244, 997, 1015, 1248, 1006, 1023, 1023,
1602 1023, 1035, 1035, 1035, 1015, 1038, 1038, 1038, 1040, 1040,
1603 1040, 1041, 1041, 1041, 1023, 1237, 1249, 1035, 1042, 1042,
1604 1042, 1038, 1053, 1053, 1053, 1249, 1242, 1041, 1056, 1056,
1605 1056, 1006, 1056, 1042, 1267, 1056, 1251, 974, 1053, 1057,
1606 1057, 1057, 1246, 1267, 1056, 1247, 1238, 1023, 1058, 1058,
1608 1058, 1252, 965, 1053, 1257, 1057, 1060, 1060, 1060, 1061,
1609 1061, 1061, 1251, 1061, 1058, 964, 1061, 1071, 1071, 1071,
1610 1238, 1060, 1074, 1074, 1074, 1077, 1077, 1077, 1078, 1078,
1611 1078, 1246, 1078, 1071, 1247, 1078, 1257, 1268, 1074, 1253,
1612 1252, 1077, 1085, 1085, 1085, 1088, 1088, 1088, 963, 1088,
1613 1266, 1313, 1088, 1091, 1091, 1091, 1077, 1091, 1085, 1254,
1614 1091, 1088, 1266, 1097, 1097, 1097, 1255, 1097, 1268, 1091,
1615 1097, 1147, 1147, 1147, 1154, 1154, 1154, 1313, 1253, 1097,
1616 1155, 1155, 1155, 1254, 1162, 1162, 1162, 1147, 1162, 1154,
1617 1255, 1162, 1163, 1163, 1163, 1155, 1168, 1168, 1168, 962,
1619 1162, 1169, 1169, 1169, 1171, 1171, 1171, 1269, 1163, 1262,
1620 961, 1259, 1168, 1170, 1170, 1170, 1169, 1170, 1272, 1171,
1621 1170, 1172, 1172, 1172, 960, 1172, 1263, 1272, 1172, 1181,
1622 1181, 1181, 1186, 1186, 1186, 1259, 1186, 1284, 1269, 1186,
1623 1187, 1187, 1187, 1260, 1187, 1181, 1264, 1187, 1186, 1190,
1624 1190, 1190, 1262, 1190, 1265, 1275, 1190, 1225, 1225, 1225,
1625 1181, 1239, 1239, 1239, 1261, 1261, 1261, 1260, 1284, 1263,
1626 1264, 1271, 1276, 1225, 1270, 1270, 1270, 1239, 1265, 1277,
1627 1261, 1291, 1280, 1271, 1273, 1273, 1273, 1275, 1278, 1280,
1628 1270, 1277, 1279, 1279, 1279, 1281, 1285, 1278, 1292, 957,
1630 1273, 1289, 1281, 949, 1276, 1282, 1282, 1282, 1279, 1282,
1631 1290, 1299, 1282, 1283, 1283, 1283, 1286, 1286, 1286, 1291,
1632 1300, 1282, 1287, 1287, 1287, 1289, 1295, 1285, 1296, 1283,
1633 1301, 1302, 1286, 1295, 1290, 1296, 1292, 1303, 1287, 1293,
1634 1293, 1293, 1297, 1297, 1297, 1304, 1307, 1308, 1305, 1306,
1635 1299, 1309, 1310, 1311, 1312, 1293, 1314, 1315, 1297, 1300,
1636 1318, 1303, 1316, 1312, 1319, 1311, 1321, 1320, 1324, 1304,
1637 1301, 1302, 1305, 1306, 1325, 1321, 1317, 1317, 1317, 1320,
1638 1327, 1315, 1314, 1307, 1308, 1328, 1316, 947, 1335, 1336,
1639 1309, 1310, 1317, 1322, 1322, 1322, 1326, 1326, 1326, 1333,
1641 1324, 1331, 1334, 1318, 946, 945, 1325, 1319, 1331, 1322,
1642 1332, 1327, 1326, 1329, 1329, 1329, 1328, 1332, 1337, 1338,
1643 1339, 1340, 936, 1333, 935, 934, 1334, 1335, 1336, 1329,
1644 1340, 933, 1339, 1341, 1341, 1341, 1342, 1342, 1342, 932,
1645 931, 925, 1337, 1338, 923, 921, 908, 907, 900, 1341,
1646 899, 898, 1342, 1345, 1345, 1345, 1345, 1345, 1345, 1345,
1647 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1347, 1347, 1347,
1648 1347, 1347, 1347, 1347, 1348, 1348, 1348, 1348, 1348, 1348,
1649 1348, 1349, 1349, 1349, 1349, 1349, 1349, 1349, 1350, 1350,
1650 1350, 1350, 1350, 1350, 1350, 1351, 1351, 1351, 1351, 1351,
1652 1351, 1351, 1352, 1352, 1352, 1352, 1352, 1352, 1352, 1353,
1653 1353, 1353, 1353, 1353, 1353, 1353, 1354, 1354, 1354, 1354,
1654 1354, 1354, 1354, 1355, 1355, 1355, 1355, 1355, 1355, 1355,
1655 1356, 1356, 1356, 1356, 1356, 1356, 1356, 1357, 1357, 1357,
1656 1357, 1357, 1357, 1357, 1358, 1358, 1358, 1358, 1358, 1358,
1657 1358, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1360, 1360,
1658 1360, 1360, 1360, 1360, 1360, 1361, 1361, 1361, 1361, 1361,
1659 1361, 1361, 1362, 1362, 1362, 1362, 1362, 1362, 1362, 1363,
1660 1363, 1363, 1363, 1363, 1363, 1363, 1364, 1364, 1364, 1364,
1661 1364, 1364, 1364, 1365, 1365, 1365, 1365, 1365, 1365, 1365,
1663 1366, 1366, 1366, 1366, 1366, 1366, 1366, 1367, 1367, 1367,
1664 897, 1367, 1368, 1368, 1368, 895, 1368, 1369, 1369, 1369,
1665 879, 1369, 1370, 1370, 1370, 875, 1370, 1371, 1371, 1371,
1666 865, 1371, 1372, 1372, 1372, 864, 1372, 1373, 1373, 1373,
1667 863, 1373, 1374, 1374, 1374, 862, 1374, 1375, 1375, 1375,
1668 1375, 1375, 860, 1375, 1376, 845, 1376, 1377, 842, 1377,
1669 1378, 833, 1378, 1379, 832, 1379, 1380, 831, 1380, 1381,
1670 830, 1381, 1382, 824, 1382, 1383, 812, 1383, 1384, 1384,
1671 1384, 1384, 1384, 1384, 1384, 1385, 808, 805, 1385, 1386,
1672 1386, 1386, 1386, 1386, 1386, 1387, 1387, 1387, 1387, 1387,
1674 1387, 1388, 1388, 1388, 1388, 1388, 1388, 1389, 1389, 1389,
1675 1389, 1389, 1389, 1390, 1390, 1390, 1390, 1390, 1390, 1391,
1676 1391, 1391, 1391, 1391, 1391, 1392, 1392, 1392, 1392, 1392,
1677 1392, 1393, 1393, 1393, 1393, 1393, 1393, 1394, 1394, 1394,
1678 1394, 1394, 1394, 1394, 1395, 1395, 1395, 1395, 1395, 1395,
1679 1395, 1396, 1396, 1396, 1396, 1396, 1396, 1396, 1397, 1397,
1680 1397, 1397, 1397, 1397, 1397, 1398, 1398, 1398, 1398, 1398,
1681 1398, 1398, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1400,
1682 1400, 1400, 1400, 1400, 1400, 1400, 804, 802, 797, 783,
1683 782, 781, 776, 774, 770, 769, 767, 765, 747, 746,
1685 745, 739, 738, 737, 729, 728, 727, 726, 724, 704,
1686 699, 697, 696, 695, 694, 689, 687, 686, 685, 684,
1687 681, 679, 671, 666, 665, 663, 662, 661, 660, 659,
1688 658, 657, 652, 651, 650, 649, 648, 647, 646, 645,
1689 642, 636, 632, 630, 628, 627, 624, 621, 619, 616,
1690 615, 612, 611, 608, 607, 606, 603, 598, 594, 589,
1691 587, 586, 585, 583, 581, 579, 578, 577, 575, 573,
1692 572, 571, 570, 565, 564, 563, 560, 559, 558, 555,
1693 550, 546, 544, 543, 539, 534, 532, 530, 527, 523,
1694 522, 519, 511, 510, 509, 503, 502, 501, 499, 498,
1696 495, 492, 490, 487, 485, 484, 481, 477, 472, 466,
1697 463, 462, 456, 455, 454, 450, 449, 448, 447, 444,
1698 443, 442, 441, 436, 431, 430, 425, 424, 422, 416,
1699 409, 402, 401, 399, 398, 393, 392, 390, 389, 388,
1700 382, 381, 380, 379, 373, 372, 371, 368, 367, 366,
1701 364, 360, 358, 355, 354, 351, 350, 349, 348, 345,
1702 344, 340, 336, 335, 334, 333, 332, 329, 328, 327,
1703 326, 325, 324, 321, 320, 319, 318, 317, 316, 313,
1704 312, 310, 309, 308, 307, 306, 302, 300, 299, 298,
1705 297, 296, 295, 292, 291, 290, 289, 288, 287, 284,
1707 283, 280, 279, 278, 277, 276, 273, 272, 271, 270,
1708 269, 268, 265, 264, 263, 262, 261, 260, 259, 256,
1709 255, 252, 251, 250, 249, 248, 247, 246, 243, 242,
1710 241, 240, 239, 233, 232, 230, 227, 226, 222, 218,
1711 210, 209, 208, 207, 203, 196, 192, 184, 183, 182,
1712 178, 170, 169, 168, 164, 157, 156, 155, 154, 153,
1713 152, 148, 140, 136, 127, 123, 119, 118, 117, 111,
1714 110, 108, 105, 93, 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,
1718 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1719 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1720 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344,
1721 1344, 1344, 1344, 1344, 1344, 1344, 1344
1724 /* Table of booleans, true if rule could match eol. */
1725 static yyconst flex_int32_t yy_rule_can_match_eol[179] =
1727 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1728 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0,
1729 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1730 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,
1731 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1732 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1,
1733 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1734 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
1735 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, };
1737 static yy_state_type yy_last_accepting_state;
1738 static char *yy_last_accepting_cpos;
1740 extern int surf_parse__flex_debug;
1741 int surf_parse__flex_debug = 0;
1743 /* The intent behind this definition is that it'll catch
1744 * any uses of REJECT which flex missed.
1746 #define REJECT reject_used_but_not_detected
1747 #define yymore() yymore_used_but_not_detected
1748 #define YY_MORE_ADJ 0
1749 #define YY_RESTORE_YY_MORE_OFFSET
1750 char *surf_parse_text;
1751 /* Validating XML processor for surf/surfxml.dtd.
1752 * Generated 2006/07/18 21:02:15.
1754 * This program was generated with the FleXML XML processor generator.
1755 * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved.
1756 * FleXML is Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1757 * (Id: flexml.pl,v 1.53 2006/07/18 12:12:06 mquinson Exp).
1759 * There are two, intertwined parts to this program, part A and part B.
1764 * Some parts, here collectively called "Part A", are found in the
1765 * FleXML package. They are Copyright (C) 1999-2005 Kristoffer Rose
1766 * and Copyright (C) 2003-2006 Martin Quinson. All rights reserved.
1768 * You can redistribute, use, perform, display and/or modify "Part A"
1769 * provided the following two conditions hold:
1771 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1772 * FleXML; without even the implied warranty of MERCHANTABILITY or
1773 * FITNESS FOR A PARTICULAR PURPOSE.
1775 * 2. The program distribution conditions do not in any way affect the
1776 * distribution conditions of the FleXML system used to generate this
1777 * file or any version of FleXML derived from that system.
1779 * Notice that these are explicit rights granted to you for files
1780 * generated by the FleXML system. For your rights in connection with
1781 * the FleXML system itself please consult the GNU General Public License.
1786 * The other parts, here collectively called "Part B", and which came
1787 * from the DTD used by FleXML to generate this program, can be
1788 * distributed (or not, as the case may be) under the terms of whoever
1789 * wrote them, provided these terms respect and obey the two conditions
1790 * above under the heading "Part A".
1792 * The author of and contributors to FleXML specifically disclaim
1793 * any copyright interest in "Part B", unless "Part B" was written
1794 * by the author of or contributors to FleXML.
1798 /* Version strings. */
1799 const char rcs_surfxml_flexml_skeleton[] =
1800 "$" "Id: skel,v 1.31 2006/07/18 18:21:13 mquinson Exp $";
1801 const char rcs_surfxml_flexml[] =
1802 "$" "Id: flexml.pl,v 1.53 2006/07/18 12:12:06 mquinson Exp $";
1806 #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
1807 # ifndef _STRICT_ANSI_
1809 # include <process.h>
1813 # include <unistd.h>
1822 /* Generated definitions. */
1823 #define FLEXML_yylineno
1824 #define FLEXML_BUFFERSTACKSIZE 1000000
1826 /* XML processor api. */
1827 /* FleXML-provided data. */
1828 const char* surfxml_pcdata;
1829 AT_surfxml_network_link_bandwidth A_surfxml_network_link_bandwidth;
1830 AT_surfxml_process_host A_surfxml_process_host;
1831 AT_surfxml_network_link_latency_file A_surfxml_network_link_latency_file;
1832 AT_surfxml_route_impact_on_dst_with_other_send A_surfxml_route_impact_on_dst_with_other_send;
1833 AT_surfxml_cpu_interference_send_recv A_surfxml_cpu_interference_send_recv;
1834 AT_surfxml_route_impact_on_dst A_surfxml_route_impact_on_dst;
1835 AT_surfxml_platform_description_version A_surfxml_platform_description_version;
1836 AT_surfxml_route_impact_on_src_with_other_recv A_surfxml_route_impact_on_src_with_other_recv;
1837 AT_surfxml_route_element_name A_surfxml_route_element_name;
1838 AT_surfxml_process_start_time A_surfxml_process_start_time;
1839 AT_surfxml_process_function A_surfxml_process_function;
1840 AT_surfxml_cpu_state A_surfxml_cpu_state;
1841 AT_surfxml_cpu_interference_send A_surfxml_cpu_interference_send;
1842 AT_surfxml_network_link_bandwidth_file A_surfxml_network_link_bandwidth_file;
1843 AT_surfxml_cpu_name A_surfxml_cpu_name;
1844 AT_surfxml_process_kill_time A_surfxml_process_kill_time;
1845 AT_surfxml_network_link_state A_surfxml_network_link_state;
1846 AT_surfxml_cpu_availability_file A_surfxml_cpu_availability_file;
1847 AT_surfxml_argument_value A_surfxml_argument_value;
1848 AT_surfxml_route_src A_surfxml_route_src;
1849 AT_surfxml_route_impact_on_src A_surfxml_route_impact_on_src;
1850 AT_surfxml_cpu_max_outgoing_rate A_surfxml_cpu_max_outgoing_rate;
1851 AT_surfxml_cpu_availability A_surfxml_cpu_availability;
1852 AT_surfxml_cpu_interference_recv A_surfxml_cpu_interference_recv;
1853 AT_surfxml_network_link_name A_surfxml_network_link_name;
1854 AT_surfxml_cpu_power A_surfxml_cpu_power;
1855 AT_surfxml_include_file A_surfxml_include_file;
1856 AT_surfxml_network_link_sharing_policy A_surfxml_network_link_sharing_policy;
1857 AT_surfxml_route_dst A_surfxml_route_dst;
1858 AT_surfxml_network_link_latency A_surfxml_network_link_latency;
1859 AT_surfxml_cpu_state_file A_surfxml_cpu_state_file;
1860 AT_surfxml_network_link_state_file A_surfxml_network_link_state_file;
1864 # define ENTER(state) debug_enter(state,#state)
1865 # define LEAVE debug_leave()
1866 # define SET(state) debug_set(state,#state)
1867 static void debug_enter(int, const char*);
1868 static void debug_leave(void);
1869 static void debug_set(int, const char*);
1871 # define ENTER(state) (yy_push_state(state))
1872 # define LEAVE (yy_pop_state())
1873 # define SET(state) BEGIN(state)
1876 /* Generic actions. */
1877 #define SKIP /*skip*/
1878 #define SUCCEED CLEANUP; return 0
1880 #define FAIL return fail
1881 static int fail(const char*, ...);
1882 const char * surfxml_parse_err_msg(void);
1885 static void cleanup(void);
1886 #define CLEANUP cleanup()
1888 /* Text buffer stack handling. */
1889 static char bufferstack[FLEXML_BUFFERSTACKSIZE];
1890 static char* limit = bufferstack + FLEXML_BUFFERSTACKSIZE;
1891 typedef struct BufferLast_s {
1892 struct BufferLast_s *old; const char* saved; char new1[1];
1894 #ifdef FLEXML_HasMixed
1895 static BufferLast* last = (BufferLast*)0;
1897 static char* next = bufferstack;
1899 #define BUFFERSET(P) (P = next)
1900 #define BUFFERPUTC(C) (assert(next<limit), *(next++) = (C))
1901 #define BUFFERDONE (BUFFERPUTC('\0'))
1903 #define BUFFERLITERAL(C,P) bufferliteral(C,&(P),surf_parse_text)
1904 static void bufferliteral(char c, const char** pp, char* text)
1906 char *s = strchr(text,c), *e = strrchr(text,c);
1907 assert(s <= e); BUFFERSET(*pp);
1909 if (isspace(*s)) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
1910 else BUFFERPUTC(*s);
1915 #ifdef FLEXML_HasMixed
1916 static void pushbuffer(const char* p)
1918 BufferLast* l = (BufferLast*)next;
1919 assert(next < limit);
1926 static const char* popbuffer(void)
1928 BufferLast* l = last;
1929 assert(last != (BufferLast*)0);
1936 /* General internal entities are `unput' back onto the input stream... */
1937 #define ENTITYTEXT(T) \
1938 { char *s = (T), *e = s+strlen(s);\
1939 while (--e >= s) { unput(*e); }}
1940 /* Flex standard options. */
1941 #define YY_NO_INPUT 1
1942 /* Flex user-requested options. */
1943 /* XML character classes (currently restricted to ASCII). */
1944 /* "Common syntactic structures." */
1945 /* "Names and Tokens." */
1946 /* Miscellaneous. */
1947 /* Parser states (flex `exclusive start conditions'):
1949 * PROLOG the XML prolog of the document before <?xml...>
1950 * DOCTYPE the XML prolog of the document after <?xml...>
1951 * EPILOG after the root element
1952 * INCOMMENT inside an XML comment <!--....-->
1953 * INPI inside an XML PI <?...?>
1954 * VALUE1 inside a '...'-delimited literal
1955 * VALUE2 inside a "..."-delimited literal
1956 * CDATA inside a <![CDATA[...] ]> section.
1957 * ROOT_<tag> expect root element <tag>
1958 * AL_<tag> inside the attribute list for <tag>
1959 * IN_<tag> inside a <tag> with element contents (ready for end tag)
1960 * IMPOSSIBLE dummy to permit disabling rules; must be last
1964 const char* *surfxml_statenames=NULL;
1975 #define ROOT_surfxml_platform_description 9
1976 #define AL_surfxml_platform_description 10
1977 #define S_surfxml_platform_description 11
1978 #define S_surfxml_platform_description_1 12
1979 #define S_surfxml_platform_description_2 13
1980 #define E_surfxml_platform_description 14
1981 #define ROOT_surfxml_include 15
1982 #define AL_surfxml_include 16
1983 #define S_surfxml_include 17
1984 #define S_surfxml_include_1 18
1985 #define S_surfxml_include_2 19
1986 #define E_surfxml_include 20
1987 #define ROOT_surfxml_cpu 21
1988 #define AL_surfxml_cpu 22
1989 #define E_surfxml_cpu 23
1990 #define ROOT_surfxml_network_link 24
1991 #define AL_surfxml_network_link 25
1992 #define E_surfxml_network_link 26
1993 #define ROOT_surfxml_route 27
1994 #define AL_surfxml_route 28
1995 #define S_surfxml_route 29
1996 #define S_surfxml_route_1 30
1997 #define S_surfxml_route_2 31
1998 #define E_surfxml_route 32
1999 #define ROOT_surfxml_route_element 33
2000 #define AL_surfxml_route_element 34
2001 #define E_surfxml_route_element 35
2002 #define ROOT_surfxml_process 36
2003 #define AL_surfxml_process 37
2004 #define S_surfxml_process 38
2005 #define S_surfxml_process_1 39
2006 #define S_surfxml_process_2 40
2007 #define E_surfxml_process 41
2008 #define ROOT_surfxml_argument 42
2009 #define AL_surfxml_argument 43
2010 #define E_surfxml_argument 44
2011 #define IMPOSSIBLE 45
2013 #ifndef YY_NO_UNISTD_H
2014 /* Special case for "unistd.h", since it is non-ANSI. We include it way
2015 * down here because we want the user's section 1 to have been scanned first.
2016 * The user has a chance to override it with an option.
2021 #ifndef YY_EXTRA_TYPE
2022 #define YY_EXTRA_TYPE void *
2025 /* Macros after this point can all be overridden by user definitions in
2029 #ifndef YY_SKIP_YYWRAP
2031 extern "C" int surf_parse_wrap (void );
2033 extern int surf_parse_wrap (void );
2038 static void yy_flex_strncpy (char *,yyconst char *,int );
2041 #ifdef YY_NEED_STRLEN
2042 static int yy_flex_strlen (yyconst char * );
2048 static int yyinput (void );
2050 static int input (void );
2055 static int yy_start_stack_ptr = 0;
2056 static int yy_start_stack_depth = 0;
2057 static int *yy_start_stack = 0;
2059 static void yy_push_state (int new_state );
2061 static void yy_pop_state (void );
2063 /* Amount of stuff to slurp up with each read. */
2064 #ifndef YY_READ_BUF_SIZE
2065 #define YY_READ_BUF_SIZE 8192
2068 /* Copy whatever the last rule matched to the standard output. */
2070 /* This used to be an fputs(), but since the string might contain NUL's,
2071 * we now use fwrite().
2073 #define ECHO (void) fwrite( surf_parse_text, surf_parse_leng, 1, surf_parse_out )
2076 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
2077 * is returned in "result".
2080 #define YY_INPUT(buf,result,max_size) \
2081 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
2085 for ( n = 0; n < max_size && \
2086 (c = getc( surf_parse_in )) != EOF && c != '\n'; ++n ) \
2087 buf[n] = (char) c; \
2089 buf[n++] = (char) c; \
2090 if ( c == EOF && ferror( surf_parse_in ) ) \
2091 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2097 while ( (result = fread(buf, 1, max_size, surf_parse_in))==0 && ferror(surf_parse_in)) \
2099 if( errno != EINTR) \
2101 YY_FATAL_ERROR( "input in flex scanner failed" ); \
2105 clearerr(surf_parse_in); \
2112 /* No semi-colon after return; correct usage is to write "yyterminate();" -
2113 * we don't want an extra ';' after the "return" because that will cause
2114 * some compilers to complain about unreachable statements.
2117 #define yyterminate() return YY_NULL
2120 /* Number of entries by which start-condition stack grows. */
2121 #ifndef YY_START_STACK_INCR
2122 #define YY_START_STACK_INCR 25
2125 /* Report a fatal error. */
2126 #ifndef YY_FATAL_ERROR
2127 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
2130 /* end tables serialization structures and prototypes */
2132 /* Default declaration of generated scanner - a define so the user can
2133 * easily add parameters.
2136 #define YY_DECL_IS_OURS 1
2138 extern int surf_parse_lex (void);
2140 #define YY_DECL int surf_parse_lex (void)
2141 #endif /* !YY_DECL */
2143 /* Code executed at the beginning of each rule, after surf_parse_text and surf_parse_leng
2146 #ifndef YY_USER_ACTION
2147 #define YY_USER_ACTION
2150 /* Code executed at the end of each rule. */
2152 #define YY_BREAK break;
2155 #define YY_RULE_SETUP \
2158 /** The main scanner function which does all the work.
2162 register yy_state_type yy_current_state;
2163 register char *yy_cp, *yy_bp;
2164 register int yy_act;
2166 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
2170 if(!surfxml_statenames) {surfxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
2171 surfxml_statenames[PROLOG] = NULL;
2172 surfxml_statenames[DOCTYPE] = NULL;
2173 surfxml_statenames[EPILOG] = NULL;
2174 surfxml_statenames[INCOMMENT] = NULL;
2175 surfxml_statenames[INPI] = NULL;
2176 surfxml_statenames[VALUE1] = NULL;
2177 surfxml_statenames[VALUE2] = NULL;
2178 surfxml_statenames[CDATA] = NULL;
2179 surfxml_statenames[ROOT_surfxml_platform_description] = NULL;
2180 surfxml_statenames[AL_surfxml_platform_description] = NULL;
2181 surfxml_statenames[S_surfxml_platform_description] = "platform_description";
2182 surfxml_statenames[S_surfxml_platform_description_1] = "platform_description";
2183 surfxml_statenames[S_surfxml_platform_description_2] = "platform_description";
2184 surfxml_statenames[E_surfxml_platform_description] = "platform_description";
2185 surfxml_statenames[ROOT_surfxml_include] = NULL;
2186 surfxml_statenames[AL_surfxml_include] = NULL;
2187 surfxml_statenames[S_surfxml_include] = "include";
2188 surfxml_statenames[S_surfxml_include_1] = "include";
2189 surfxml_statenames[S_surfxml_include_2] = "include";
2190 surfxml_statenames[E_surfxml_include] = "include";
2191 surfxml_statenames[ROOT_surfxml_cpu] = NULL;
2192 surfxml_statenames[AL_surfxml_cpu] = NULL;
2193 surfxml_statenames[E_surfxml_cpu] = "cpu";
2194 surfxml_statenames[ROOT_surfxml_network_link] = NULL;
2195 surfxml_statenames[AL_surfxml_network_link] = NULL;
2196 surfxml_statenames[E_surfxml_network_link] = "network_link";
2197 surfxml_statenames[ROOT_surfxml_route] = NULL;
2198 surfxml_statenames[AL_surfxml_route] = NULL;
2199 surfxml_statenames[S_surfxml_route] = "route";
2200 surfxml_statenames[S_surfxml_route_1] = "route";
2201 surfxml_statenames[S_surfxml_route_2] = "route";
2202 surfxml_statenames[E_surfxml_route] = "route";
2203 surfxml_statenames[ROOT_surfxml_route_element] = NULL;
2204 surfxml_statenames[AL_surfxml_route_element] = NULL;
2205 surfxml_statenames[E_surfxml_route_element] = "route_element";
2206 surfxml_statenames[ROOT_surfxml_process] = NULL;
2207 surfxml_statenames[AL_surfxml_process] = NULL;
2208 surfxml_statenames[S_surfxml_process] = "process";
2209 surfxml_statenames[S_surfxml_process_1] = "process";
2210 surfxml_statenames[S_surfxml_process_2] = "process";
2211 surfxml_statenames[E_surfxml_process] = "process";
2212 surfxml_statenames[ROOT_surfxml_argument] = NULL;
2213 surfxml_statenames[AL_surfxml_argument] = NULL;
2214 surfxml_statenames[E_surfxml_argument] = "argument";
2217 /* COMMENTS and PIs: handled uniformly for efficiency. */
2228 (yy_start) = 1; /* first start state */
2230 if ( ! surf_parse_in )
2231 surf_parse_in = stdin;
2233 if ( ! surf_parse_out )
2234 surf_parse_out = stdout;
2236 if ( ! YY_CURRENT_BUFFER ) {
2237 surf_parse_ensure_buffer_stack ();
2238 YY_CURRENT_BUFFER_LVALUE =
2239 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
2242 surf_parse__load_buffer_state( );
2245 while ( 1 ) /* loops until end-of-file is reached */
2247 yy_cp = (yy_c_buf_p);
2249 /* Support of surf_parse_text. */
2250 *yy_cp = (yy_hold_char);
2252 /* yy_bp points to the position in yy_ch_buf of the start of
2257 yy_current_state = (yy_start);
2261 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
2262 if ( yy_accept[yy_current_state] )
2264 (yy_last_accepting_state) = yy_current_state;
2265 (yy_last_accepting_cpos) = yy_cp;
2267 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2269 yy_current_state = (int) yy_def[yy_current_state];
2270 if ( yy_current_state >= 1345 )
2271 yy_c = yy_meta[(unsigned int) yy_c];
2273 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2276 while ( yy_base[yy_current_state] != 3675 );
2279 yy_act = yy_accept[yy_current_state];
2281 { /* have to back up */
2282 yy_cp = (yy_last_accepting_cpos);
2283 yy_current_state = (yy_last_accepting_state);
2284 yy_act = yy_accept[yy_current_state];
2287 YY_DO_BEFORE_ACTION;
2289 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
2292 for ( yyl = 0; yyl < surf_parse_leng; ++yyl )
2293 if ( surf_parse_text[yyl] == '\n' )
2295 surf_parse_lineno++;
2299 do_action: /* This label is used only to access EOF actions. */
2302 { /* beginning of action switch */
2303 case 0: /* must back up */
2304 /* undo the effects of YY_DO_BEFORE_ACTION */
2305 *yy_cp = (yy_hold_char);
2306 yy_cp = (yy_last_accepting_cpos);
2307 yy_current_state = (yy_last_accepting_state);
2308 goto yy_find_action;
2326 /* rule 6 can match eol */
2330 case YY_STATE_EOF(INCOMMENT):
2331 FAIL("EOF in comment.");
2340 /* rule 9 can match eol */
2344 case YY_STATE_EOF(INPI):
2345 FAIL("EOF in PI (processing instruction).");
2348 /* SPACES: skipped uniformly */
2350 /* rule 10 can match eol */
2354 /* PROLOG: determine root element and process it. */
2357 /* rule 11 can match eol */
2362 /* rule 12 can match eol */
2364 FAIL("Bad declaration %s.",surf_parse_text);
2368 /* rule 13 can match eol */
2370 SET(ROOT_surfxml_argument);
2373 /* rule 14 can match eol */
2375 SET(ROOT_surfxml_route_element);
2378 /* rule 15 can match eol */
2380 SET(ROOT_surfxml_cpu);
2383 /* rule 16 can match eol */
2385 SET(ROOT_surfxml_include);
2388 /* rule 17 can match eol */
2390 SET(ROOT_surfxml_route);
2393 /* rule 18 can match eol */
2395 SET(ROOT_surfxml_platform_description);
2398 /* rule 19 can match eol */
2400 SET(ROOT_surfxml_network_link);
2403 /* rule 20 can match eol */
2405 SET(ROOT_surfxml_process);
2408 /* rule 21 can match eol */
2410 FAIL("Bad declaration %s.",surf_parse_text);
2414 FAIL("Unexpected character `%c' in prolog.", surf_parse_text[0]);
2416 case YY_STATE_EOF(PROLOG):
2417 case YY_STATE_EOF(DOCTYPE):
2418 FAIL("EOF in prolog.");
2421 /* RULES DERIVED FROM DTD. */
2422 /* <!-- Small DTD for SURF based tools. --> */
2424 /* rule 23 can match eol */
2427 A_surfxml_platform_description_version = "0.0";
2428 ENTER(AL_surfxml_platform_description);
2433 /* rule 24 can match eol */
2435 ENTER(VALUE1); BUFFERSET(A_surfxml_platform_description_version);
2438 /* rule 25 can match eol */
2440 ENTER(VALUE2); BUFFERSET(A_surfxml_platform_description_version);
2445 LEAVE; STag_surfxml_platform_description();surfxml_pcdata = NULL; ENTER(S_surfxml_platform_description);
2451 LEAVE; STag_surfxml_platform_description(); surfxml_pcdata = NULL; ETag_surfxml_platform_description();
2453 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2459 FAIL("Unexpected character `%c' in attribute list of platform_description element.", surf_parse_text[0]);
2463 FAIL("Bad attribute `%s' in `platform_description' element start tag.",surf_parse_text);
2465 case YY_STATE_EOF(AL_surfxml_platform_description):
2466 FAIL("EOF in attribute list of `platform_description' element.");
2470 /* rule 30 can match eol */
2474 ETag_surfxml_platform_description();
2476 case ROOT_surfxml_platform_description: SET(EPILOG); break;
2481 /* rule 31 can match eol */
2483 FAIL("Unexpected end-tag `%s': `</platform_description>' expected.",surf_parse_text);
2487 FAIL("Unexpected character `%c': `</platform_description>' expected.",surf_parse_text[0]);
2489 case YY_STATE_EOF(E_surfxml_platform_description):
2490 case YY_STATE_EOF(S_surfxml_platform_description_2):
2491 case YY_STATE_EOF(S_surfxml_platform_description):
2492 FAIL("Premature EOF: `</platform_description>' expected.");
2496 /* rule 33 can match eol */
2499 A_surfxml_include_file = NULL;
2500 ENTER(AL_surfxml_include);
2505 /* rule 34 can match eol */
2507 ENTER(VALUE1); BUFFERSET(A_surfxml_include_file);
2510 /* rule 35 can match eol */
2512 ENTER(VALUE2); BUFFERSET(A_surfxml_include_file);
2517 if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2518 LEAVE; STag_surfxml_include();surfxml_pcdata = NULL; ENTER(S_surfxml_include);
2524 if (!A_surfxml_include_file) FAIL("Required attribute `file' not set for `include' element.");
2525 LEAVE; STag_surfxml_include(); surfxml_pcdata = NULL; ETag_surfxml_include();
2527 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2528 case ROOT_surfxml_include: SET(EPILOG); break;
2529 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2535 FAIL("Unexpected character `%c' in attribute list of include element.", surf_parse_text[0]);
2539 FAIL("Bad attribute `%s' in `include' element start tag.",surf_parse_text);
2541 case YY_STATE_EOF(AL_surfxml_include):
2542 FAIL("EOF in attribute list of `include' element.");
2546 /* rule 40 can match eol */
2550 ETag_surfxml_include();
2552 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2553 case ROOT_surfxml_include: SET(EPILOG); break;
2554 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2559 /* rule 41 can match eol */
2561 FAIL("Unexpected end-tag `%s': `</include>' expected.",surf_parse_text);
2565 FAIL("Unexpected character `%c': `</include>' expected.",surf_parse_text[0]);
2567 case YY_STATE_EOF(E_surfxml_include):
2568 case YY_STATE_EOF(S_surfxml_include):
2569 case YY_STATE_EOF(S_surfxml_include_2):
2570 FAIL("Premature EOF: `</include>' expected.");
2574 /* rule 43 can match eol */
2577 A_surfxml_cpu_name = NULL;
2578 A_surfxml_cpu_power = NULL;
2579 A_surfxml_cpu_availability = "1.0";
2580 A_surfxml_cpu_availability_file = NULL;
2581 A_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2582 A_surfxml_cpu_state_file = NULL;
2583 A_surfxml_cpu_interference_send = "1.0";
2584 A_surfxml_cpu_interference_recv = "1.0";
2585 A_surfxml_cpu_interference_send_recv = "1.0";
2586 A_surfxml_cpu_max_outgoing_rate = "-1.0";
2587 ENTER(AL_surfxml_cpu);
2592 /* rule 44 can match eol */
2594 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_name);
2597 /* rule 45 can match eol */
2599 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_name);
2602 /* rule 46 can match eol */
2604 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_power);
2607 /* rule 47 can match eol */
2609 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_power);
2612 /* rule 48 can match eol */
2614 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability);
2617 /* rule 49 can match eol */
2619 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability);
2622 /* rule 50 can match eol */
2624 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_availability_file);
2627 /* rule 51 can match eol */
2629 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_availability_file);
2632 /* rule 52 can match eol */
2634 /* rule 53 can match eol */
2636 A_surfxml_cpu_state = A_surfxml_cpu_state_ON;
2639 /* rule 54 can match eol */
2641 /* rule 55 can match eol */
2643 A_surfxml_cpu_state = A_surfxml_cpu_state_OFF;
2646 /* rule 56 can match eol */
2648 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_state_file);
2651 /* rule 57 can match eol */
2653 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_state_file);
2656 /* rule 58 can match eol */
2658 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send);
2661 /* rule 59 can match eol */
2663 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send);
2666 /* rule 60 can match eol */
2668 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_recv);
2671 /* rule 61 can match eol */
2673 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_recv);
2676 /* rule 62 can match eol */
2678 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_interference_send_recv);
2681 /* rule 63 can match eol */
2683 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_interference_send_recv);
2686 /* rule 64 can match eol */
2688 ENTER(VALUE1); BUFFERSET(A_surfxml_cpu_max_outgoing_rate);
2691 /* rule 65 can match eol */
2693 ENTER(VALUE2); BUFFERSET(A_surfxml_cpu_max_outgoing_rate);
2698 if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2699 if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2700 LEAVE; STag_surfxml_cpu();surfxml_pcdata = NULL; ENTER(E_surfxml_cpu);
2706 if (!A_surfxml_cpu_name) FAIL("Required attribute `name' not set for `cpu' element.");
2707 if (!A_surfxml_cpu_power) FAIL("Required attribute `power' not set for `cpu' element.");
2708 LEAVE; STag_surfxml_cpu(); surfxml_pcdata = NULL; ETag_surfxml_cpu();
2710 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2711 case ROOT_surfxml_cpu: SET(EPILOG); break;
2712 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2718 FAIL("Unexpected character `%c' in attribute list of cpu element.", surf_parse_text[0]);
2722 FAIL("Bad attribute `%s' in `cpu' element start tag.",surf_parse_text);
2724 case YY_STATE_EOF(AL_surfxml_cpu):
2725 FAIL("EOF in attribute list of `cpu' element.");
2729 /* rule 70 can match eol */
2735 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2736 case ROOT_surfxml_cpu: SET(EPILOG); break;
2737 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2742 /* rule 71 can match eol */
2744 FAIL("Unexpected end-tag `%s': `</cpu>' expected.",surf_parse_text);
2748 FAIL("Unexpected character `%c': `</cpu>' expected.",surf_parse_text[0]);
2750 case YY_STATE_EOF(E_surfxml_cpu):
2751 FAIL("Premature EOF: `</cpu>' expected.");
2755 /* rule 73 can match eol */
2758 A_surfxml_network_link_name = NULL;
2759 A_surfxml_network_link_bandwidth = NULL;
2760 A_surfxml_network_link_bandwidth_file = NULL;
2761 A_surfxml_network_link_latency = "0.0";
2762 A_surfxml_network_link_latency_file = NULL;
2763 A_surfxml_network_link_state = A_surfxml_network_link_state_ON;
2764 A_surfxml_network_link_state_file = NULL;
2765 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
2766 ENTER(AL_surfxml_network_link);
2771 /* rule 74 can match eol */
2773 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_name);
2776 /* rule 75 can match eol */
2778 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_name);
2781 /* rule 76 can match eol */
2783 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth);
2786 /* rule 77 can match eol */
2788 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth);
2791 /* rule 78 can match eol */
2793 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_bandwidth_file);
2796 /* rule 79 can match eol */
2798 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_bandwidth_file);
2801 /* rule 80 can match eol */
2803 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency);
2806 /* rule 81 can match eol */
2808 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency);
2811 /* rule 82 can match eol */
2813 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_latency_file);
2816 /* rule 83 can match eol */
2818 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_latency_file);
2821 /* rule 84 can match eol */
2823 /* rule 85 can match eol */
2825 A_surfxml_network_link_state = A_surfxml_network_link_state_ON;
2828 /* rule 86 can match eol */
2830 /* rule 87 can match eol */
2832 A_surfxml_network_link_state = A_surfxml_network_link_state_OFF;
2835 /* rule 88 can match eol */
2837 ENTER(VALUE1); BUFFERSET(A_surfxml_network_link_state_file);
2840 /* rule 89 can match eol */
2842 ENTER(VALUE2); BUFFERSET(A_surfxml_network_link_state_file);
2845 /* rule 90 can match eol */
2847 /* rule 91 can match eol */
2849 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_SHARED;
2852 /* rule 92 can match eol */
2854 /* rule 93 can match eol */
2856 A_surfxml_network_link_sharing_policy = A_surfxml_network_link_sharing_policy_FATPIPE;
2861 if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2862 if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2863 LEAVE; STag_surfxml_network_link();surfxml_pcdata = NULL; ENTER(E_surfxml_network_link);
2869 if (!A_surfxml_network_link_name) FAIL("Required attribute `name' not set for `network_link' element.");
2870 if (!A_surfxml_network_link_bandwidth) FAIL("Required attribute `bandwidth' not set for `network_link' element.");
2871 LEAVE; STag_surfxml_network_link(); surfxml_pcdata = NULL; ETag_surfxml_network_link();
2873 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2874 case ROOT_surfxml_network_link: SET(EPILOG); break;
2875 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2881 FAIL("Unexpected character `%c' in attribute list of network_link element.", surf_parse_text[0]);
2885 FAIL("Bad attribute `%s' in `network_link' element start tag.",surf_parse_text);
2887 case YY_STATE_EOF(AL_surfxml_network_link):
2888 FAIL("EOF in attribute list of `network_link' element.");
2892 /* rule 98 can match eol */
2896 ETag_surfxml_network_link();
2898 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
2899 case ROOT_surfxml_network_link: SET(EPILOG); break;
2900 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
2905 /* rule 99 can match eol */
2907 FAIL("Unexpected end-tag `%s': `</network_link>' expected.",surf_parse_text);
2911 FAIL("Unexpected character `%c': `</network_link>' expected.",surf_parse_text[0]);
2913 case YY_STATE_EOF(E_surfxml_network_link):
2914 FAIL("Premature EOF: `</network_link>' expected.");
2918 /* rule 101 can match eol */
2921 A_surfxml_route_src = NULL;
2922 A_surfxml_route_dst = NULL;
2923 A_surfxml_route_impact_on_src = "0.0";
2924 A_surfxml_route_impact_on_dst = "0.0";
2925 A_surfxml_route_impact_on_src_with_other_recv = "0.0";
2926 A_surfxml_route_impact_on_dst_with_other_send = "0.0";
2927 ENTER(AL_surfxml_route);
2932 /* rule 102 can match eol */
2934 ENTER(VALUE1); BUFFERSET(A_surfxml_route_src);
2937 /* rule 103 can match eol */
2939 ENTER(VALUE2); BUFFERSET(A_surfxml_route_src);
2942 /* rule 104 can match eol */
2944 ENTER(VALUE1); BUFFERSET(A_surfxml_route_dst);
2947 /* rule 105 can match eol */
2949 ENTER(VALUE2); BUFFERSET(A_surfxml_route_dst);
2952 /* rule 106 can match eol */
2954 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src);
2957 /* rule 107 can match eol */
2959 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src);
2962 /* rule 108 can match eol */
2964 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst);
2967 /* rule 109 can match eol */
2969 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst);
2972 /* rule 110 can match eol */
2974 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv);
2977 /* rule 111 can match eol */
2979 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_src_with_other_recv);
2982 /* rule 112 can match eol */
2984 ENTER(VALUE1); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send);
2987 /* rule 113 can match eol */
2989 ENTER(VALUE2); BUFFERSET(A_surfxml_route_impact_on_dst_with_other_send);
2994 if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
2995 if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
2996 LEAVE; STag_surfxml_route();surfxml_pcdata = NULL; ENTER(S_surfxml_route);
3002 if (!A_surfxml_route_src) FAIL("Required attribute `src' not set for `route' element.");
3003 if (!A_surfxml_route_dst) FAIL("Required attribute `dst' not set for `route' element.");
3004 LEAVE; STag_surfxml_route(); surfxml_pcdata = NULL; ETag_surfxml_route();
3006 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3007 case ROOT_surfxml_route: SET(EPILOG); break;
3008 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3014 FAIL("Unexpected character `%c' in attribute list of route element.", surf_parse_text[0]);
3018 FAIL("Bad attribute `%s' in `route' element start tag.",surf_parse_text);
3020 case YY_STATE_EOF(AL_surfxml_route):
3021 FAIL("EOF in attribute list of `route' element.");
3025 /* rule 118 can match eol */
3029 ETag_surfxml_route();
3031 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3032 case ROOT_surfxml_route: SET(EPILOG); break;
3033 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3038 /* rule 119 can match eol */
3040 FAIL("Unexpected end-tag `%s': `</route>' expected.",surf_parse_text);
3044 FAIL("Unexpected character `%c': `</route>' expected.",surf_parse_text[0]);
3046 case YY_STATE_EOF(S_surfxml_route):
3047 case YY_STATE_EOF(S_surfxml_route_2):
3048 case YY_STATE_EOF(E_surfxml_route):
3049 FAIL("Premature EOF: `</route>' expected.");
3053 /* rule 121 can match eol */
3056 A_surfxml_route_element_name = NULL;
3057 ENTER(AL_surfxml_route_element);
3062 /* rule 122 can match eol */
3064 ENTER(VALUE1); BUFFERSET(A_surfxml_route_element_name);
3067 /* rule 123 can match eol */
3069 ENTER(VALUE2); BUFFERSET(A_surfxml_route_element_name);
3074 if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3075 LEAVE; STag_surfxml_route_element();surfxml_pcdata = NULL; ENTER(E_surfxml_route_element);
3081 if (!A_surfxml_route_element_name) FAIL("Required attribute `name' not set for `route_element' element.");
3082 LEAVE; STag_surfxml_route_element(); surfxml_pcdata = NULL; ETag_surfxml_route_element();
3084 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3085 case ROOT_surfxml_route_element: SET(EPILOG); break;
3091 FAIL("Unexpected character `%c' in attribute list of route_element element.", surf_parse_text[0]);
3095 FAIL("Bad attribute `%s' in `route_element' element start tag.",surf_parse_text);
3097 case YY_STATE_EOF(AL_surfxml_route_element):
3098 FAIL("EOF in attribute list of `route_element' element.");
3102 /* rule 128 can match eol */
3106 ETag_surfxml_route_element();
3108 case S_surfxml_route_1: case S_surfxml_route: case S_surfxml_route_2: SET(S_surfxml_route_2); break;
3109 case ROOT_surfxml_route_element: SET(EPILOG); break;
3114 /* rule 129 can match eol */
3116 FAIL("Unexpected end-tag `%s': `</route_element>' expected.",surf_parse_text);
3120 FAIL("Unexpected character `%c': `</route_element>' expected.",surf_parse_text[0]);
3122 case YY_STATE_EOF(E_surfxml_route_element):
3123 FAIL("Premature EOF: `</route_element>' expected.");
3127 /* rule 131 can match eol */
3130 A_surfxml_process_host = NULL;
3131 A_surfxml_process_function = NULL;
3132 A_surfxml_process_start_time = "-1.0";
3133 A_surfxml_process_kill_time = "-1.0";
3134 ENTER(AL_surfxml_process);
3139 /* rule 132 can match eol */
3141 ENTER(VALUE1); BUFFERSET(A_surfxml_process_host);
3144 /* rule 133 can match eol */
3146 ENTER(VALUE2); BUFFERSET(A_surfxml_process_host);
3149 /* rule 134 can match eol */
3151 ENTER(VALUE1); BUFFERSET(A_surfxml_process_function);
3154 /* rule 135 can match eol */
3156 ENTER(VALUE2); BUFFERSET(A_surfxml_process_function);
3159 /* rule 136 can match eol */
3161 ENTER(VALUE1); BUFFERSET(A_surfxml_process_start_time);
3164 /* rule 137 can match eol */
3166 ENTER(VALUE2); BUFFERSET(A_surfxml_process_start_time);
3169 /* rule 138 can match eol */
3171 ENTER(VALUE1); BUFFERSET(A_surfxml_process_kill_time);
3174 /* rule 139 can match eol */
3176 ENTER(VALUE2); BUFFERSET(A_surfxml_process_kill_time);
3181 if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3182 if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3183 LEAVE; STag_surfxml_process();surfxml_pcdata = NULL; ENTER(S_surfxml_process);
3189 if (!A_surfxml_process_host) FAIL("Required attribute `host' not set for `process' element.");
3190 if (!A_surfxml_process_function) FAIL("Required attribute `function' not set for `process' element.");
3191 LEAVE; STag_surfxml_process(); surfxml_pcdata = NULL; ETag_surfxml_process();
3193 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3194 case ROOT_surfxml_process: SET(EPILOG); break;
3195 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3201 FAIL("Unexpected character `%c' in attribute list of process element.", surf_parse_text[0]);
3205 FAIL("Bad attribute `%s' in `process' element start tag.",surf_parse_text);
3207 case YY_STATE_EOF(AL_surfxml_process):
3208 FAIL("EOF in attribute list of `process' element.");
3212 /* rule 144 can match eol */
3216 ETag_surfxml_process();
3218 case S_surfxml_platform_description_2: case S_surfxml_platform_description_1: case S_surfxml_platform_description: SET(S_surfxml_platform_description_2); break;
3219 case ROOT_surfxml_process: SET(EPILOG); break;
3220 case S_surfxml_include: case S_surfxml_include_2: case S_surfxml_include_1: SET(S_surfxml_include_2); break;
3225 /* rule 145 can match eol */
3227 FAIL("Unexpected end-tag `%s': `</process>' expected.",surf_parse_text);
3231 FAIL("Unexpected character `%c': `</process>' expected.",surf_parse_text[0]);
3233 case YY_STATE_EOF(S_surfxml_process):
3234 case YY_STATE_EOF(E_surfxml_process):
3235 case YY_STATE_EOF(S_surfxml_process_2):
3236 FAIL("Premature EOF: `</process>' expected.");
3240 /* rule 147 can match eol */
3243 A_surfxml_argument_value = NULL;
3244 ENTER(AL_surfxml_argument);
3249 /* rule 148 can match eol */
3251 ENTER(VALUE1); BUFFERSET(A_surfxml_argument_value);
3254 /* rule 149 can match eol */
3256 ENTER(VALUE2); BUFFERSET(A_surfxml_argument_value);
3261 if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3262 LEAVE; STag_surfxml_argument();surfxml_pcdata = NULL; ENTER(E_surfxml_argument);
3268 if (!A_surfxml_argument_value) FAIL("Required attribute `value' not set for `argument' element.");
3269 LEAVE; STag_surfxml_argument(); surfxml_pcdata = NULL; ETag_surfxml_argument();
3271 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3272 case ROOT_surfxml_argument: SET(EPILOG); break;
3278 FAIL("Unexpected character `%c' in attribute list of argument element.", surf_parse_text[0]);
3282 FAIL("Bad attribute `%s' in `argument' element start tag.",surf_parse_text);
3284 case YY_STATE_EOF(AL_surfxml_argument):
3285 FAIL("EOF in attribute list of `argument' element.");
3289 /* rule 154 can match eol */
3293 ETag_surfxml_argument();
3295 case S_surfxml_process_1: case S_surfxml_process: case S_surfxml_process_2: SET(S_surfxml_process_2); break;
3296 case ROOT_surfxml_argument: SET(EPILOG); break;
3301 /* rule 155 can match eol */
3303 FAIL("Unexpected end-tag `%s': `</argument>' expected.",surf_parse_text);
3307 FAIL("Unexpected character `%c': `</argument>' expected.",surf_parse_text[0]);
3309 case YY_STATE_EOF(E_surfxml_argument):
3310 FAIL("Premature EOF: `</argument>' expected.");
3313 /* EPILOG: after the root element. */
3317 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
3319 case YY_STATE_EOF(EPILOG):
3323 /* CHARACTER DATA. */
3325 /* Non-defined standard entities... */
3346 /* Character entities. */
3349 BUFFERPUTC((unsigned char)atoi(surf_parse_text+2));
3353 BUFFERPUTC((unsigned char)strtol(surf_parse_text+3,NULL,16));
3357 /* rule 165 can match eol */
3359 /* rule 166 can match eol */
3361 /* rule 167 can match eol */
3363 /* rule 168 can match eol */
3374 FAIL("Unexpected `]""]>' in character data.");
3381 case YY_STATE_EOF(VALUE1):
3382 FAIL("EOF in literal (\"'\" expected).");
3389 case YY_STATE_EOF(VALUE2):
3390 FAIL("EOF in literal (`\"' expected).");
3394 /* rule 173 can match eol */
3396 BUFFERPUTC(surf_parse_text[0]);
3400 FAIL("Spurious `%c' in character data.",surf_parse_text[0]);
3407 /* "]""]" BUFFERPUTC(surf_parse_text[0]); BUFFERPUTC(surf_parse_text[1]); */
3410 BUFFERPUTC(surf_parse_text[0]);
3412 case YY_STATE_EOF(CDATA):
3413 FAIL("EOF in CDATA section.");
3416 /* Impossible rules to avoid warnings from flex(1). */
3417 /* Ideally, this should be replaced by code in flexml.pl that
3418 generates just the states not covered by other rules. */
3421 /* rule 177 can match eol */
3423 FAIL("Syntax error on character `%c'.", surf_parse_text[0]);
3430 case YY_STATE_EOF(INITIAL):
3431 case YY_STATE_EOF(ROOT_surfxml_platform_description):
3432 case YY_STATE_EOF(S_surfxml_platform_description_1):
3433 case YY_STATE_EOF(ROOT_surfxml_include):
3434 case YY_STATE_EOF(S_surfxml_include_1):
3435 case YY_STATE_EOF(ROOT_surfxml_cpu):
3436 case YY_STATE_EOF(ROOT_surfxml_network_link):
3437 case YY_STATE_EOF(ROOT_surfxml_route):
3438 case YY_STATE_EOF(S_surfxml_route_1):
3439 case YY_STATE_EOF(ROOT_surfxml_route_element):
3440 case YY_STATE_EOF(ROOT_surfxml_process):
3441 case YY_STATE_EOF(S_surfxml_process_1):
3442 case YY_STATE_EOF(ROOT_surfxml_argument):
3443 case YY_STATE_EOF(IMPOSSIBLE):
3446 case YY_END_OF_BUFFER:
3448 /* Amount of text matched not including the EOB char. */
3449 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
3451 /* Undo the effects of YY_DO_BEFORE_ACTION. */
3452 *yy_cp = (yy_hold_char);
3453 YY_RESTORE_YY_MORE_OFFSET
3455 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
3457 /* We're scanning a new file or input source. It's
3458 * possible that this happened because the user
3459 * just pointed surf_parse_in at a new source and called
3460 * surf_parse_lex(). If so, then we have to assure
3461 * consistency between YY_CURRENT_BUFFER and our
3462 * globals. Here is the right place to do so, because
3463 * this is the first action (other than possibly a
3464 * back-up) that will match for the new input source.
3466 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3467 YY_CURRENT_BUFFER_LVALUE->yy_input_file = surf_parse_in;
3468 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
3471 /* Note that here we test for yy_c_buf_p "<=" to the position
3472 * of the first EOB in the buffer, since yy_c_buf_p will
3473 * already have been incremented past the NUL character
3474 * (since all states make transitions on EOB to the
3475 * end-of-buffer state). Contrast this with the test
3478 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3479 { /* This was really a NUL. */
3480 yy_state_type yy_next_state;
3482 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
3484 yy_current_state = yy_get_previous_state( );
3486 /* Okay, we're now positioned to make the NUL
3487 * transition. We couldn't have
3488 * yy_get_previous_state() go ahead and do it
3489 * for us because it doesn't know how to deal
3490 * with the possibility of jamming (and we don't
3491 * want to build jamming into it because then it
3492 * will run more slowly).
3495 yy_next_state = yy_try_NUL_trans( yy_current_state );
3497 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3499 if ( yy_next_state )
3501 /* Consume the NUL. */
3502 yy_cp = ++(yy_c_buf_p);
3503 yy_current_state = yy_next_state;
3509 yy_cp = (yy_c_buf_p);
3510 goto yy_find_action;
3514 else switch ( yy_get_next_buffer( ) )
3516 case EOB_ACT_END_OF_FILE:
3518 (yy_did_buffer_switch_on_eof) = 0;
3520 if ( surf_parse_wrap( ) )
3522 /* Note: because we've taken care in
3523 * yy_get_next_buffer() to have set up
3524 * surf_parse_text, we can now set up
3525 * yy_c_buf_p so that if some total
3526 * hoser (like flex itself) wants to
3527 * call the scanner after we return the
3528 * YY_NULL, it'll still work - another
3529 * YY_NULL will get returned.
3531 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
3533 yy_act = YY_STATE_EOF(YY_START);
3539 if ( ! (yy_did_buffer_switch_on_eof) )
3545 case EOB_ACT_CONTINUE_SCAN:
3547 (yytext_ptr) + yy_amount_of_matched_text;
3549 yy_current_state = yy_get_previous_state( );
3551 yy_cp = (yy_c_buf_p);
3552 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3555 case EOB_ACT_LAST_MATCH:
3557 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
3559 yy_current_state = yy_get_previous_state( );
3561 yy_cp = (yy_c_buf_p);
3562 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
3563 goto yy_find_action;
3570 "fatal flex scanner internal error--no action found" );
3571 } /* end of action switch */
3572 } /* end of scanning one token */
3573 } /* end of surf_parse_lex */
3575 /* yy_get_next_buffer - try to read in a new buffer
3577 * Returns a code representing an action:
3578 * EOB_ACT_LAST_MATCH -
3579 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
3580 * EOB_ACT_END_OF_FILE - end of file
3582 static int yy_get_next_buffer (void)
3584 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
3585 register char *source = (yytext_ptr);
3586 register int number_to_move, i;
3589 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
3591 "fatal flex scanner internal error--end of buffer missed" );
3593 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
3594 { /* Don't try to fill the buffer, so this is an EOF. */
3595 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
3597 /* We matched a single character, the EOB, so
3598 * treat this as a final EOF.
3600 return EOB_ACT_END_OF_FILE;
3605 /* We matched some text prior to the EOB, first
3608 return EOB_ACT_LAST_MATCH;
3612 /* Try to read more data. */
3614 /* First move last chars to start of buffer. */
3615 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
3617 for ( i = 0; i < number_to_move; ++i )
3618 *(dest++) = *(source++);
3620 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
3621 /* don't do the read, it's not guaranteed to return an EOF,
3624 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
3629 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
3631 while ( num_to_read <= 0 )
3632 { /* Not enough room in the buffer - grow it. */
3634 /* just a shorter name for the current buffer */
3635 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
3637 int yy_c_buf_p_offset =
3638 (int) ((yy_c_buf_p) - b->yy_ch_buf);
3640 if ( b->yy_is_our_buffer )
3642 int new_size = b->yy_buf_size * 2;
3644 if ( new_size <= 0 )
3645 b->yy_buf_size += b->yy_buf_size / 8;
3647 b->yy_buf_size *= 2;
3649 b->yy_ch_buf = (char *)
3650 /* Include room in for 2 EOB chars. */
3651 surf_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
3654 /* Can't grow it, we don't own it. */
3657 if ( ! b->yy_ch_buf )
3659 "fatal error - scanner input buffer overflow" );
3661 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
3663 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
3668 if ( num_to_read > YY_READ_BUF_SIZE )
3669 num_to_read = YY_READ_BUF_SIZE;
3671 /* Read in more data. */
3672 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
3673 (yy_n_chars), num_to_read );
3675 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3678 if ( (yy_n_chars) == 0 )
3680 if ( number_to_move == YY_MORE_ADJ )
3682 ret_val = EOB_ACT_END_OF_FILE;
3683 surf_parse_restart(surf_parse_in );
3688 ret_val = EOB_ACT_LAST_MATCH;
3689 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
3690 YY_BUFFER_EOF_PENDING;
3695 ret_val = EOB_ACT_CONTINUE_SCAN;
3697 (yy_n_chars) += number_to_move;
3698 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
3699 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
3701 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
3706 /* yy_get_previous_state - get the state just before the EOB char was reached */
3708 static yy_state_type yy_get_previous_state (void)
3710 register yy_state_type yy_current_state;
3711 register char *yy_cp;
3713 yy_current_state = (yy_start);
3715 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
3717 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
3718 if ( yy_accept[yy_current_state] )
3720 (yy_last_accepting_state) = yy_current_state;
3721 (yy_last_accepting_cpos) = yy_cp;
3723 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3725 yy_current_state = (int) yy_def[yy_current_state];
3726 if ( yy_current_state >= 1345 )
3727 yy_c = yy_meta[(unsigned int) yy_c];
3729 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3732 return yy_current_state;
3735 /* yy_try_NUL_trans - try to make a transition on the NUL character
3738 * next_state = yy_try_NUL_trans( current_state );
3740 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
3742 register int yy_is_jam;
3743 register char *yy_cp = (yy_c_buf_p);
3745 register YY_CHAR yy_c = 1;
3746 if ( yy_accept[yy_current_state] )
3748 (yy_last_accepting_state) = yy_current_state;
3749 (yy_last_accepting_cpos) = yy_cp;
3751 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
3753 yy_current_state = (int) yy_def[yy_current_state];
3754 if ( yy_current_state >= 1345 )
3755 yy_c = yy_meta[(unsigned int) yy_c];
3757 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
3758 yy_is_jam = (yy_current_state == 1344);
3760 return yy_is_jam ? 0 : yy_current_state;
3765 static int yyinput (void)
3767 static int input (void)
3773 *(yy_c_buf_p) = (yy_hold_char);
3775 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
3777 /* yy_c_buf_p now points to the character we want to return.
3778 * If this occurs *before* the EOB characters, then it's a
3779 * valid NUL; if not, then we've hit the end of the buffer.
3781 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
3782 /* This was really a NUL. */
3783 *(yy_c_buf_p) = '\0';
3786 { /* need more input */
3787 int offset = (yy_c_buf_p) - (yytext_ptr);
3790 switch ( yy_get_next_buffer( ) )
3792 case EOB_ACT_LAST_MATCH:
3793 /* This happens because yy_g_n_b()
3794 * sees that we've accumulated a
3795 * token and flags that we need to
3796 * try matching the token before
3797 * proceeding. But for input(),
3798 * there's no matching to consider.
3799 * So convert the EOB_ACT_LAST_MATCH
3800 * to EOB_ACT_END_OF_FILE.
3803 /* Reset buffer status. */
3804 surf_parse_restart(surf_parse_in );
3808 case EOB_ACT_END_OF_FILE:
3810 if ( surf_parse_wrap( ) )
3813 if ( ! (yy_did_buffer_switch_on_eof) )
3822 case EOB_ACT_CONTINUE_SCAN:
3823 (yy_c_buf_p) = (yytext_ptr) + offset;
3829 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
3830 *(yy_c_buf_p) = '\0'; /* preserve surf_parse_text */
3831 (yy_hold_char) = *++(yy_c_buf_p);
3835 surf_parse_lineno++;
3840 #endif /* ifndef YY_NO_INPUT */
3842 /** Immediately switch to a different input stream.
3843 * @param input_file A readable stream.
3845 * @note This function does not reset the start condition to @c INITIAL .
3847 void surf_parse_restart (FILE * input_file )
3850 if ( ! YY_CURRENT_BUFFER ){
3851 surf_parse_ensure_buffer_stack ();
3852 YY_CURRENT_BUFFER_LVALUE =
3853 surf_parse__create_buffer(surf_parse_in,YY_BUF_SIZE );
3856 surf_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
3857 surf_parse__load_buffer_state( );
3860 /** Switch to a different input buffer.
3861 * @param new_buffer The new input buffer.
3864 void surf_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
3867 /* TODO. We should be able to replace this entire function body
3869 * surf_parse_pop_buffer_state();
3870 * surf_parse_push_buffer_state(new_buffer);
3872 surf_parse_ensure_buffer_stack ();
3873 if ( YY_CURRENT_BUFFER == new_buffer )
3876 if ( YY_CURRENT_BUFFER )
3878 /* Flush out information for old buffer. */
3879 *(yy_c_buf_p) = (yy_hold_char);
3880 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
3881 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
3884 YY_CURRENT_BUFFER_LVALUE = new_buffer;
3885 surf_parse__load_buffer_state( );
3887 /* We don't actually know whether we did this switch during
3888 * EOF (surf_parse_wrap()) processing, but the only time this flag
3889 * is looked at is after surf_parse_wrap() is called, so it's safe
3890 * to go ahead and always set it.
3892 (yy_did_buffer_switch_on_eof) = 1;
3895 static void surf_parse__load_buffer_state (void)
3897 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
3898 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
3899 surf_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
3900 (yy_hold_char) = *(yy_c_buf_p);
3903 /** Allocate and initialize an input buffer state.
3904 * @param file A readable stream.
3905 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3907 * @return the allocated buffer state.
3909 YY_BUFFER_STATE surf_parse__create_buffer (FILE * file, int size )
3913 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
3915 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
3917 b->yy_buf_size = size;
3919 /* yy_ch_buf has to be 2 characters longer than the size given because
3920 * we need to put in 2 end-of-buffer characters.
3922 b->yy_ch_buf = (char *) surf_parse_alloc(b->yy_buf_size + 2 );
3923 if ( ! b->yy_ch_buf )
3924 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__create_buffer()" );
3926 b->yy_is_our_buffer = 1;
3928 surf_parse__init_buffer(b,file );
3933 /** Destroy the buffer.
3934 * @param b a buffer created with surf_parse__create_buffer()
3937 void surf_parse__delete_buffer (YY_BUFFER_STATE b )
3943 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
3944 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
3946 if ( b->yy_is_our_buffer )
3947 surf_parse_free((void *) b->yy_ch_buf );
3949 surf_parse_free((void *) b );
3954 extern int isatty (int );
3956 #endif /* __cplusplus */
3958 /* Initializes or reinitializes a buffer.
3959 * This function is sometimes called more than once on the same buffer,
3960 * such as during a surf_parse_restart() or at EOF.
3962 static void surf_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
3967 surf_parse__flush_buffer(b );
3969 b->yy_input_file = file;
3970 b->yy_fill_buffer = 1;
3972 /* If b is the current buffer, then surf_parse__init_buffer was _probably_
3973 * called from surf_parse_restart() or through yy_get_next_buffer.
3974 * In that case, we don't want to reset the lineno or column.
3976 if (b != YY_CURRENT_BUFFER){
3977 b->yy_bs_lineno = 1;
3978 b->yy_bs_column = 0;
3981 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
3986 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3987 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3990 void surf_parse__flush_buffer (YY_BUFFER_STATE b )
3997 /* We always need two end-of-buffer characters. The first causes
3998 * a transition to the end-of-buffer state. The second causes
3999 * a jam in that state.
4001 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
4002 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
4004 b->yy_buf_pos = &b->yy_ch_buf[0];
4007 b->yy_buffer_status = YY_BUFFER_NEW;
4009 if ( b == YY_CURRENT_BUFFER )
4010 surf_parse__load_buffer_state( );
4013 /** Pushes the new state onto the stack. The new state becomes
4014 * the current state. This function will allocate the stack
4016 * @param new_buffer The new state.
4019 void surf_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
4021 if (new_buffer == NULL)
4024 surf_parse_ensure_buffer_stack();
4026 /* This block is copied from surf_parse__switch_to_buffer. */
4027 if ( YY_CURRENT_BUFFER )
4029 /* Flush out information for old buffer. */
4030 *(yy_c_buf_p) = (yy_hold_char);
4031 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
4032 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
4035 /* Only push if top exists. Otherwise, replace top. */
4036 if (YY_CURRENT_BUFFER)
4037 (yy_buffer_stack_top)++;
4038 YY_CURRENT_BUFFER_LVALUE = new_buffer;
4040 /* copied from surf_parse__switch_to_buffer. */
4041 surf_parse__load_buffer_state( );
4042 (yy_did_buffer_switch_on_eof) = 1;
4045 /** Removes and deletes the top of the stack, if present.
4046 * The next element becomes the new top.
4049 void surf_parse_pop_buffer_state (void)
4051 if (!YY_CURRENT_BUFFER)
4054 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4055 YY_CURRENT_BUFFER_LVALUE = NULL;
4056 if ((yy_buffer_stack_top) > 0)
4057 --(yy_buffer_stack_top);
4059 if (YY_CURRENT_BUFFER) {
4060 surf_parse__load_buffer_state( );
4061 (yy_did_buffer_switch_on_eof) = 1;
4065 /* Allocates the stack if it does not exist.
4066 * Guarantees space for at least one push.
4068 static void surf_parse_ensure_buffer_stack (void)
4072 if (!(yy_buffer_stack)) {
4074 /* First allocation is just for 2 elements, since we don't know if this
4075 * scanner will even need a stack. We use 2 instead of 1 to avoid an
4076 * immediate realloc on the next call.
4079 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_alloc
4080 (num_to_alloc * sizeof(struct yy_buffer_state*)
4083 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
4085 (yy_buffer_stack_max) = num_to_alloc;
4086 (yy_buffer_stack_top) = 0;
4090 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
4092 /* Increase the buffer to prepare for a possible push. */
4093 int grow_size = 8 /* arbitrary grow size */;
4095 num_to_alloc = (yy_buffer_stack_max) + grow_size;
4096 (yy_buffer_stack) = (struct yy_buffer_state**)surf_parse_realloc
4098 num_to_alloc * sizeof(struct yy_buffer_state*)
4101 /* zero only the new slots.*/
4102 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
4103 (yy_buffer_stack_max) = num_to_alloc;
4107 /** Setup the input buffer state to scan directly from a user-specified character buffer.
4108 * @param base the character buffer
4109 * @param size the size in bytes of the character buffer
4111 * @return the newly allocated buffer state object.
4113 YY_BUFFER_STATE surf_parse__scan_buffer (char * base, yy_size_t size )
4118 base[size-2] != YY_END_OF_BUFFER_CHAR ||
4119 base[size-1] != YY_END_OF_BUFFER_CHAR )
4120 /* They forgot to leave room for the EOB's. */
4123 b = (YY_BUFFER_STATE) surf_parse_alloc(sizeof( struct yy_buffer_state ) );
4125 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_buffer()" );
4127 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
4128 b->yy_buf_pos = b->yy_ch_buf = base;
4129 b->yy_is_our_buffer = 0;
4130 b->yy_input_file = 0;
4131 b->yy_n_chars = b->yy_buf_size;
4132 b->yy_is_interactive = 0;
4134 b->yy_fill_buffer = 0;
4135 b->yy_buffer_status = YY_BUFFER_NEW;
4137 surf_parse__switch_to_buffer(b );
4142 /** Setup the input buffer state to scan a string. The next call to surf_parse_lex() will
4143 * scan from a @e copy of @a str.
4144 * @param str a NUL-terminated string to scan
4146 * @return the newly allocated buffer state object.
4147 * @note If you want to scan bytes that may contain NUL values, then use
4148 * surf_parse__scan_bytes() instead.
4150 YY_BUFFER_STATE surf_parse__scan_string (yyconst char * yy_str )
4153 return surf_parse__scan_bytes(yy_str,strlen(yy_str) );
4156 /** Setup the input buffer state to scan the given bytes. The next call to surf_parse_lex() will
4157 * scan from a @e copy of @a bytes.
4158 * @param bytes the byte buffer to scan
4159 * @param len the number of bytes in the buffer pointed to by @a bytes.
4161 * @return the newly allocated buffer state object.
4163 YY_BUFFER_STATE surf_parse__scan_bytes (yyconst char * bytes, int len )
4170 /* Get memory for full buffer, including space for trailing EOB's. */
4172 buf = (char *) surf_parse_alloc(n );
4174 YY_FATAL_ERROR( "out of dynamic memory in surf_parse__scan_bytes()" );
4176 for ( i = 0; i < len; ++i )
4179 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
4181 b = surf_parse__scan_buffer(buf,n );
4183 YY_FATAL_ERROR( "bad buffer in surf_parse__scan_bytes()" );
4185 /* It's okay to grow etc. this buffer, and we should throw it
4186 * away when we're done.
4188 b->yy_is_our_buffer = 1;
4193 static void yy_push_state (int new_state )
4195 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
4199 (yy_start_stack_depth) += YY_START_STACK_INCR;
4200 new_size = (yy_start_stack_depth) * sizeof( int );
4202 if ( ! (yy_start_stack) )
4203 (yy_start_stack) = (int *) surf_parse_alloc(new_size );
4206 (yy_start_stack) = (int *) surf_parse_realloc((void *) (yy_start_stack),new_size );
4208 if ( ! (yy_start_stack) )
4210 "out of memory expanding start-condition stack" );
4213 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
4218 static void yy_pop_state (void)
4220 if ( --(yy_start_stack_ptr) < 0 )
4221 YY_FATAL_ERROR( "start-condition stack underflow" );
4223 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
4226 #ifndef YY_EXIT_FAILURE
4227 #define YY_EXIT_FAILURE 2
4230 static void yy_fatal_error (yyconst char* msg )
4232 (void) fprintf( stderr, "%s\n", msg );
4233 exit( YY_EXIT_FAILURE );
4236 /* Redefine yyless() so it works in section 3 code. */
4242 /* Undo effects of setting up surf_parse_text. */ \
4243 int yyless_macro_arg = (n); \
4244 YY_LESS_LINENO(yyless_macro_arg);\
4245 surf_parse_text[surf_parse_leng] = (yy_hold_char); \
4246 (yy_c_buf_p) = surf_parse_text + yyless_macro_arg; \
4247 (yy_hold_char) = *(yy_c_buf_p); \
4248 *(yy_c_buf_p) = '\0'; \
4249 surf_parse_leng = yyless_macro_arg; \
4253 /* Accessor methods (get/set functions) to struct members. */
4255 /** Get the current line number.
4258 int surf_parse_get_lineno (void)
4261 return surf_parse_lineno;
4264 /** Get the input stream.
4267 FILE *surf_parse_get_in (void)
4269 return surf_parse_in;
4272 /** Get the output stream.
4275 FILE *surf_parse_get_out (void)
4277 return surf_parse_out;
4280 /** Get the length of the current token.
4283 int surf_parse_get_leng (void)
4285 return surf_parse_leng;
4288 /** Get the current token.
4292 char *surf_parse_get_text (void)
4294 return surf_parse_text;
4297 /** Set the current line number.
4298 * @param line_number
4301 void surf_parse_set_lineno (int line_number )
4304 surf_parse_lineno = line_number;
4307 /** Set the input stream. This does not discard the current
4309 * @param in_str A readable stream.
4311 * @see surf_parse__switch_to_buffer
4313 void surf_parse_set_in (FILE * in_str )
4315 surf_parse_in = in_str ;
4318 void surf_parse_set_out (FILE * out_str )
4320 surf_parse_out = out_str ;
4323 int surf_parse_get_debug (void)
4325 return surf_parse__flex_debug;
4328 void surf_parse_set_debug (int bdebug )
4330 surf_parse__flex_debug = bdebug ;
4333 /* surf_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
4334 int surf_parse_lex_destroy (void)
4337 /* Pop the buffer stack, destroying each element. */
4338 while(YY_CURRENT_BUFFER){
4339 surf_parse__delete_buffer(YY_CURRENT_BUFFER );
4340 YY_CURRENT_BUFFER_LVALUE = NULL;
4341 surf_parse_pop_buffer_state();
4344 /* Destroy the stack itself. */
4345 surf_parse_free((yy_buffer_stack) );
4346 (yy_buffer_stack) = NULL;
4348 /* Destroy the start condition stack. */
4349 surf_parse_free((yy_start_stack) );
4350 (yy_start_stack) = NULL;
4356 * Internal utility routines.
4360 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
4363 for ( i = 0; i < n; ++i )
4368 #ifdef YY_NEED_STRLEN
4369 static int yy_flex_strlen (yyconst char * s )
4372 for ( n = 0; s[n]; ++n )
4379 void *surf_parse_alloc (yy_size_t size )
4381 return (void *) malloc( size );
4384 void *surf_parse_realloc (void * ptr, yy_size_t size )
4386 /* The cast to (char *) in the following accommodates both
4387 * implementations that use char* generic pointers, and those
4388 * that use void* generic pointers. It works with the latter
4389 * because both ANSI C and C++ allow castless assignment from
4390 * any pointer type to void*, and deal with argument conversions
4391 * as though doing an assignment.
4393 return (void *) realloc( (char *) ptr, size );
4396 void surf_parse_free (void * ptr )
4398 free( (char *) ptr ); /* see surf_parse_realloc() for (char *) cast */
4401 #define YYTABLES_NAME "yytables"
4404 #undef YY_FLUSH_BUFFER
4406 #undef yy_new_buffer
4407 #undef yy_set_interactive
4409 #undef YY_DO_BEFORE_ACTION
4411 #ifdef YY_DECL_IS_OURS
4412 #undef YY_DECL_IS_OURS
4416 /* Element context stack lookup. */
4417 int surfxml_element_context(int i)
4419 return (0<i && i<yy_start_stack_depth
4420 ? yy_start_stack[yy_start_stack_ptr - i]
4425 void print_yy_stack(char* fmt, ...)
4427 int i = 0; va_list ap; va_start(ap, fmt);
4428 vfprintf(stderr, fmt, ap);
4429 for (i=1; i<yy_start_stack_ptr; i++)
4430 fprintf(stderr, "%s/", surfxml_statenames[yy_start_stack[i] ]);
4431 fprintf(stderr,"%s\n", surfxml_statenames[YY_START]);
4435 static void debug_enter(int state, const char* statename) {
4436 yy_push_state(state);
4437 if (surf_parse__flex_debug) print_yy_stack("--ENTER(%s) : ",statename);
4440 static void debug_leave(void) {
4441 if (surf_parse__flex_debug) print_yy_stack("--LEAVE : ");
4445 static void debug_set(int state, const char* statename) {
4447 if (surf_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
4451 enum {flexml_max_err_msg_size = 512};
4453 static char flexml_err_msg[flexml_max_err_msg_size];
4454 const char * surfxml_parse_err_msg()
4456 return flexml_err_msg;
4459 static void reset_surfxml_parse_err_msg()
4461 flexml_err_msg[0] = '\0';
4464 static void cleanup(void)
4466 if (surfxml_statenames) {
4467 free(surfxml_statenames);
4468 surfxml_statenames = NULL;
4472 static int fail(const char* fmt, ...)
4474 int chars_left, used;
4475 va_list ap; va_start(ap, fmt);
4476 #ifdef FLEXML_yylineno
4477 used = sprintf(flexml_err_msg,
4478 "Invalid XML (XML input line %d, state %d): ",
4479 surf_parse_lineno, YY_START);
4481 used = sprintf(flexml_err_msg,
4482 "Invalid XML (state %d): ",
4485 chars_left = flexml_max_err_msg_size - used - 1;
4486 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
4489 #ifndef FLEXML_quiet_parser
4490 /* print directly to sdterr */
4491 fprintf(stderr, "%s\n", flexml_err_msg);
4492 flexml_err_msg[0] = '\0';