2 #line 3 "src/xbt/graphxml.c"
4 #define YY_INT_ALIGNED short int
6 /* A lexical scanner generated by flex */
8 #define yy_create_buffer xbt_graph_parse__create_buffer
9 #define yy_delete_buffer xbt_graph_parse__delete_buffer
10 #define yy_flex_debug xbt_graph_parse__flex_debug
11 #define yy_init_buffer xbt_graph_parse__init_buffer
12 #define yy_flush_buffer xbt_graph_parse__flush_buffer
13 #define yy_load_buffer_state xbt_graph_parse__load_buffer_state
14 #define yy_switch_to_buffer xbt_graph_parse__switch_to_buffer
15 #define yyin xbt_graph_parse_in
16 #define yyleng xbt_graph_parse_leng
17 #define yylex xbt_graph_parse_lex
18 #define yylineno xbt_graph_parse_lineno
19 #define yyout xbt_graph_parse_out
20 #define yyrestart xbt_graph_parse_restart
21 #define yytext xbt_graph_parse_text
22 #define yywrap xbt_graph_parse_wrap
23 #define yyalloc xbt_graph_parse_alloc
24 #define yyrealloc xbt_graph_parse_realloc
25 #define yyfree xbt_graph_parse_free
28 #define YY_FLEX_MAJOR_VERSION 2
29 #define YY_FLEX_MINOR_VERSION 5
30 #define YY_FLEX_SUBMINOR_VERSION 35
31 #if YY_FLEX_SUBMINOR_VERSION > 0
35 /* First, we deal with platform-specific or compiler-specific issues. */
37 /* begin standard C headers. */
43 /* end standard C headers. */
45 /* flex integer type definitions */
50 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
52 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
54 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55 * if you want the limit (max/min) macros for int types.
57 #ifndef __STDC_LIMIT_MACROS
58 #define __STDC_LIMIT_MACROS 1
62 typedef int8_t flex_int8_t;
63 typedef uint8_t flex_uint8_t;
64 typedef int16_t flex_int16_t;
65 typedef uint16_t flex_uint16_t;
66 typedef int32_t flex_int32_t;
67 typedef uint32_t flex_uint32_t;
69 typedef signed char flex_int8_t;
70 typedef short int flex_int16_t;
71 typedef int flex_int32_t;
72 typedef unsigned char flex_uint8_t;
73 typedef unsigned short int flex_uint16_t;
74 typedef unsigned int flex_uint32_t;
76 /* Limits of integral types. */
78 #define INT8_MIN (-128)
81 #define INT16_MIN (-32767-1)
84 #define INT32_MIN (-2147483647-1)
87 #define INT8_MAX (127)
90 #define INT16_MAX (32767)
93 #define INT32_MAX (2147483647)
96 #define UINT8_MAX (255U)
99 #define UINT16_MAX (65535U)
102 #define UINT32_MAX (4294967295U)
107 #endif /* ! FLEXINT_H */
111 /* The "const" storage-class-modifier is valid. */
114 #else /* ! __cplusplus */
116 /* C99 requires __STDC__ to be defined as 1. */
117 #if defined (__STDC__)
121 #endif /* defined (__STDC__) */
122 #endif /* ! __cplusplus */
125 #define yyconst const
130 /* Returned upon end-of-file. */
133 /* Promotes a possibly negative, possibly signed char to an unsigned
134 * integer for use as an array index. If the signed char is negative,
135 * we want to instead treat it as an 8-bit unsigned char, hence the
138 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
140 /* Enter a start condition. This macro really ought to take a parameter,
141 * but we do it the disgusting crufty way forced on us by the ()-less
142 * definition of BEGIN.
144 #define BEGIN (yy_start) = 1 + 2 *
146 /* Translate the current start state into a value that can be later handed
147 * to BEGIN to return to the state. The YYSTATE alias is for lex
150 #define YY_START (((yy_start) - 1) / 2)
151 #define YYSTATE YY_START
153 /* Action number for EOF rule of a given start state. */
154 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
156 /* Special action meaning "start processing a new file". */
157 #define YY_NEW_FILE xbt_graph_parse_restart(xbt_graph_parse_in )
159 #define YY_END_OF_BUFFER_CHAR 0
161 /* Size of default input buffer. */
164 /* On IA-64, the buffer size is 16k, not 8k.
165 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
166 * Ditto for the __ia64__ case accordingly.
168 #define YY_BUF_SIZE 32768
170 #define YY_BUF_SIZE 16384
171 #endif /* __ia64__ */
174 /* The state buf must be large enough to hold one state per character in the main buffer.
176 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
178 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
179 #define YY_TYPEDEF_YY_BUFFER_STATE
180 typedef struct yy_buffer_state *YY_BUFFER_STATE;
183 extern int xbt_graph_parse_leng;
185 extern FILE *xbt_graph_parse_in, *xbt_graph_parse_out;
187 #define EOB_ACT_CONTINUE_SCAN 0
188 #define EOB_ACT_END_OF_FILE 1
189 #define EOB_ACT_LAST_MATCH 2
191 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
192 * access to the local variable yy_act. Since yyless() is a macro, it would break
193 * existing scanners that call yyless() from OUTSIDE xbt_graph_parse_lex.
194 * One obvious solution it to make yy_act a global. I tried that, and saw
195 * a 5% performance hit in a non-xbt_graph_parse_lineno scanner, because yy_act is
196 * normally declared as a register variable-- so it is not worth it.
198 #define YY_LESS_LINENO(n) \
201 for ( yyl = n; yyl < xbt_graph_parse_leng; ++yyl )\
202 if ( xbt_graph_parse_text[yyl] == '\n' )\
203 --xbt_graph_parse_lineno;\
206 /* Return all but the first "n" matched characters back to the input stream. */
210 /* Undo effects of setting up xbt_graph_parse_text. */ \
211 int yyless_macro_arg = (n); \
212 YY_LESS_LINENO(yyless_macro_arg);\
213 *yy_cp = (yy_hold_char); \
214 YY_RESTORE_YY_MORE_OFFSET \
215 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
216 YY_DO_BEFORE_ACTION; /* set up xbt_graph_parse_text again */ \
220 #define unput(c) yyunput( c, (yytext_ptr) )
222 #ifndef YY_TYPEDEF_YY_SIZE_T
223 #define YY_TYPEDEF_YY_SIZE_T
224 typedef size_t yy_size_t;
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
233 char *yy_ch_buf; /* input buffer */
234 char *yy_buf_pos; /* current position in input buffer */
236 /* Size of input buffer in bytes, not including room for EOB
239 yy_size_t yy_buf_size;
241 /* Number of characters read into yy_ch_buf, not including EOB
246 /* Whether we "own" the buffer - i.e., we know we created it,
247 * and can realloc() it to grow it, and should free() it to
250 int yy_is_our_buffer;
252 /* Whether this is an "interactive" input source; if so, and
253 * if we're using stdio for input, then we want to use getc()
254 * instead of fread(), to make sure we stop fetching input after
257 int yy_is_interactive;
259 /* Whether we're considered to be at the beginning of a line.
260 * If so, '^' rules will be active on the next match, otherwise
265 int yy_bs_lineno; /**< The line count. */
266 int yy_bs_column; /**< The column count. */
268 /* Whether to try to fill the input buffer when we reach the
273 int yy_buffer_status;
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277 /* When an EOF's been seen but there's still some text to process
278 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279 * shouldn't try reading from the input source any more. We might
280 * still have a bunch of tokens to match, though, because of
281 * possible backing-up.
283 * When we actually see the EOF, we change the status to "new"
284 * (via xbt_graph_parse_restart()), so that the user can continue scanning by
285 * just pointing xbt_graph_parse_in at a new input file.
287 #define YY_BUFFER_EOF_PENDING 2
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
297 /* We provide macros for accessing buffer states in case in the
298 * future we want to put the buffer states in a more general
301 * Returns the top of the stack, or NULL.
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308 * NULL or when we need an lvalue. For internal use only.
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
312 /* yy_hold_char holds the character lost when xbt_graph_parse_text is formed. */
313 static char yy_hold_char;
314 static int yy_n_chars; /* number of characters read into yy_ch_buf */
315 int xbt_graph_parse_leng;
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0; /* whether we need to initialize */
320 static int yy_start = 0; /* start state number */
322 /* Flag which is used to allow xbt_graph_parse_wrap()'s to do buffer switches
323 * instead of setting up a fresh xbt_graph_parse_in. A bit of a hack ...
325 static int yy_did_buffer_switch_on_eof;
327 void xbt_graph_parse_restart (FILE *input_file );
328 void xbt_graph_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer );
329 YY_BUFFER_STATE xbt_graph_parse__create_buffer (FILE *file,int size );
330 void xbt_graph_parse__delete_buffer (YY_BUFFER_STATE b );
331 void xbt_graph_parse__flush_buffer (YY_BUFFER_STATE b );
332 void xbt_graph_parse_push_buffer_state (YY_BUFFER_STATE new_buffer );
333 void xbt_graph_parse_pop_buffer_state (void );
335 static void xbt_graph_parse_ensure_buffer_stack (void );
336 static void xbt_graph_parse__load_buffer_state (void );
337 static void xbt_graph_parse__init_buffer (YY_BUFFER_STATE b,FILE *file );
339 #define YY_FLUSH_BUFFER xbt_graph_parse__flush_buffer(YY_CURRENT_BUFFER )
341 YY_BUFFER_STATE xbt_graph_parse__scan_buffer (char *base,yy_size_t size );
342 YY_BUFFER_STATE xbt_graph_parse__scan_string (yyconst char *yy_str );
343 YY_BUFFER_STATE xbt_graph_parse__scan_bytes (yyconst char *bytes,int len );
345 void *xbt_graph_parse_alloc (yy_size_t );
346 void *xbt_graph_parse_realloc (void *,yy_size_t );
347 void xbt_graph_parse_free (void * );
349 #define yy_new_buffer xbt_graph_parse__create_buffer
351 #define yy_set_interactive(is_interactive) \
353 if ( ! YY_CURRENT_BUFFER ){ \
354 xbt_graph_parse_ensure_buffer_stack (); \
355 YY_CURRENT_BUFFER_LVALUE = \
356 xbt_graph_parse__create_buffer(xbt_graph_parse_in,YY_BUF_SIZE ); \
358 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
361 #define yy_set_bol(at_bol) \
363 if ( ! YY_CURRENT_BUFFER ){\
364 xbt_graph_parse_ensure_buffer_stack (); \
365 YY_CURRENT_BUFFER_LVALUE = \
366 xbt_graph_parse__create_buffer(xbt_graph_parse_in,YY_BUF_SIZE ); \
368 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
373 /* Begin user sect3 */
375 #define xbt_graph_parse_wrap(n) 1
376 #define YY_SKIP_YYWRAP
378 typedef unsigned char YY_CHAR;
380 FILE *xbt_graph_parse_in = (FILE *) 0, *xbt_graph_parse_out = (FILE *) 0;
382 typedef int yy_state_type;
384 extern int xbt_graph_parse_lineno;
386 int xbt_graph_parse_lineno = 1;
388 extern char *xbt_graph_parse_text;
389 #define yytext_ptr xbt_graph_parse_text
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[] );
396 /* Done after the current pattern has been matched and before the
397 * corresponding action - sets up xbt_graph_parse_text.
399 #define YY_DO_BEFORE_ACTION \
400 (yytext_ptr) = yy_bp; \
401 xbt_graph_parse_leng = (size_t) (yy_cp - yy_bp); \
402 (yy_hold_char) = *yy_cp; \
404 (yy_c_buf_p) = yy_cp;
406 #define YY_NUM_RULES 92
407 #define YY_END_OF_BUFFER 93
408 /* This struct is not used in this scanner,
409 but its presence is necessary. */
412 flex_int32_t yy_verify;
415 static yyconst flex_int16_t yy_accept[564] =
417 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
421 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
422 93, 91, 17, 10, 10, 17, 17, 71, 10, 71,
423 5, 6, 5, 8, 9, 8, 87, 79, 80, 88,
424 85, 88, 86, 90, 79, 80, 90, 91, 26, 10,
425 26, 26, 26, 24, 26, 30, 10, 30, 30, 91,
426 91, 30, 91, 45, 10, 45, 45, 45, 43, 45,
428 45, 45, 45, 49, 10, 49, 91, 66, 10, 66,
429 66, 66, 64, 66, 66, 66, 66, 66, 70, 10,
430 70, 88, 87, 10, 0, 2, 2, 0, 4, 7,
431 82, 81, 0, 0, 0, 0, 0, 0, 0, 25,
432 27, 27, 0, 0, 0, 0, 0, 0, 44, 46,
433 46, 46, 46, 46, 0, 65, 67, 67, 67, 67,
434 67, 67, 67, 0, 0, 0, 0, 0, 0, 0,
435 3, 0, 0, 0, 0, 0, 0, 0, 89, 0,
436 27, 0, 0, 0, 0, 0, 0, 0, 46, 46,
437 46, 46, 0, 0, 67, 67, 67, 67, 67, 67,
439 0, 0, 0, 84, 0, 16, 1, 0, 0, 77,
440 0, 0, 0, 74, 73, 0, 0, 27, 0, 0,
441 29, 0, 0, 0, 0, 0, 0, 46, 46, 46,
442 46, 0, 0, 48, 0, 67, 67, 67, 67, 67,
443 67, 0, 0, 69, 0, 0, 0, 0, 78, 72,
444 0, 0, 0, 27, 0, 51, 0, 32, 31, 50,
445 0, 0, 46, 0, 0, 46, 0, 0, 0, 67,
446 67, 0, 0, 67, 67, 0, 0, 0, 0, 0,
447 12, 0, 75, 76, 19, 27, 0, 51, 18, 32,
448 31, 50, 0, 38, 37, 0, 0, 0, 36, 35,
450 46, 0, 0, 63, 62, 0, 0, 67, 0, 55,
451 54, 67, 67, 0, 0, 0, 0, 0, 11, 19,
452 27, 0, 18, 0, 34, 33, 46, 0, 47, 0,
453 53, 52, 0, 0, 0, 0, 0, 0, 0, 68,
454 0, 0, 0, 0, 27, 0, 28, 46, 0, 61,
455 60, 0, 57, 56, 0, 59, 58, 0, 0, 0,
456 0, 27, 46, 83, 0, 0, 0, 27, 46, 46,
457 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
458 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
459 40, 39, 0, 42, 41, 0, 0, 0, 0, 0,
461 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
465 0, 0, 0, 12, 0, 12, 0, 0, 21, 0,
466 20, 0, 0, 0, 0, 0, 0, 0, 23, 22,
467 0, 0, 0, 0, 0, 0, 0, 11, 0, 0,
468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
470 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
472 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
473 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
477 0, 0, 0, 0, 0, 0, 13, 0, 0, 14,
481 static yyconst flex_int32_t yy_ec[256] =
483 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
484 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
485 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
486 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
487 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
488 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
489 17, 18, 19, 1, 20, 21, 22, 23, 24, 21,
490 14, 14, 14, 14, 14, 14, 25, 14, 26, 27,
491 14, 14, 28, 29, 14, 14, 14, 14, 30, 14,
492 31, 1, 32, 1, 33, 1, 34, 35, 36, 37,
494 38, 39, 40, 41, 42, 14, 14, 43, 44, 45,
495 46, 47, 48, 49, 50, 51, 52, 53, 14, 54,
496 55, 14, 1, 1, 1, 1, 1, 1, 1, 1,
497 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
498 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
499 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
500 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
501 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
502 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
503 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
505 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
506 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
507 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
508 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
509 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
513 static yyconst flex_int32_t yy_meta[56] =
515 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
516 3, 1, 4, 5, 1, 1, 1, 6, 1, 7,
517 7, 7, 7, 7, 5, 5, 5, 5, 5, 5,
518 1, 1, 5, 7, 7, 7, 7, 7, 7, 5,
519 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
523 static yyconst flex_int16_t yy_base[594] =
525 0, 0, 0, 3, 6, 9, 24, 27, 11, 14,
526 15, 17, 29, 38, 45, 52, 59, 61, 67, 70,
527 93, 135, 73, 76, 111, 114, 117, 153, 156, 159,
528 176, 179, 182, 185, 200, 203, 206, 209, 225, 0,
529 279, 282, 285, 288, 304, 0, 358, 361, 363, 365,
530 1585, 1586, 1586, 380, 383, 47, 62, 1586, 386, 171,
531 1586, 1586, 1574, 1586, 1586, 1565, 1586, 1578, 1578, 365,
532 1586, 1586, 1586, 1586, 1576, 1576, 1546, 375, 1586, 389,
533 1559, 0, 195, 1586, 1526, 1586, 398, 391, 399, 402,
534 411, 414, 393, 1586, 420, 1557, 0, 401, 1586, 1540,
536 1539, 1538, 1525, 1586, 458, 422, 427, 1586, 464, 1552,
537 0, 409, 1586, 1535, 1, 1534, 1521, 1532, 1586, 467,
538 438, 1560, 1532, 470, 34, 1509, 1586, 1552, 1543, 1586,
539 1586, 1586, 69, 40, 1509, 1508, 1506, 1539, 1507, 1586,
540 0, 1532, 1514, 1516, 1503, 1505, 1504, 1512, 1586, 0,
541 1497, 1512, 1502, 1495, 1499, 1586, 0, 1492, 1507, 1496,
542 1496, 1487, 1489, 1499, 1505, 1517, 1516, 1523, 108, 1488,
543 1586, 75, 0, 1484, 1484, 1514, 1513, 1481, 1586, 1492,
544 1483, 473, 476, 1484, 1489, 1485, 1484, 1480, 1485, 1480,
545 1479, 1474, 479, 482, 1481, 1476, 1473, 1474, 1462, 1470,
547 485, 502, 1487, 1586, 1490, 1586, 1586, 110, 1464, 1586,
548 1491, 1490, 1454, 1586, 1586, 1452, 1455, 1452, 505, 508,
549 1586, 511, 1462, 1452, 1460, 1459, 1458, 514, 1452, 530,
550 1443, 533, 538, 1586, 546, 550, 1450, 1373, 555, 1387,
551 1375, 558, 566, 1586, 571, 1387, 435, 575, 1586, 1586,
552 1392, 1389, 1356, 1354, 578, 583, 1346, 588, 595, 598,
553 601, 604, 612, 617, 624, 1263, 620, 633, 637, 645,
554 1263, 649, 661, 1264, 1250, 653, 1280, 472, 1280, 657,
555 1586, 1279, 1586, 1586, 670, 1260, 674, 677, 680, 683,
556 686, 694, 697, 1586, 1586, 705, 710, 721, 1586, 1586,
558 1248, 729, 732, 1586, 1586, 740, 746, 756, 759, 1586,
559 1586, 767, 772, 775, 1264, 32, 104, 153, 1586, 778,
560 1226, 783, 788, 793, 1586, 1586, 1230, 801, 1586, 804,
561 1586, 1586, 812, 818, 828, 831, 839, 844, 855, 1586,
562 1234, 146, 179, 147, 1212, 858, 1586, 1215, 861, 1586,
563 1586, 875, 1586, 1586, 883, 1586, 1586, 1111, 891, 175,
564 445, 1066, 119, 1586, 894, 181, 89, 897, 900, 903,
565 501, 360, 399, 480, 475, 919, 922, 938, 941, 949,
566 954, 506, 509, 526, 599, 624, 965, 654, 678, 973,
567 1586, 1586, 981, 1586, 1586, 417, 176, 594, 548, 989,
569 1058, 1003, 1016, 937, 992, 407, 995, 998, 1001, 1018,
570 930, 918, 922, 910, 1026, 1029, 1035, 1038, 1055, 1063,
571 1081, 1113, 819, 790, 733, 616, 710, 1073, 721, 1131,
572 748, 284, 1149, 1181, 557, 565, 458, 449, 537, 770,
573 676, 805, 278, 369, 285, 291, 1076, 293, 1586, 211,
574 1586, 708, 693, 727, 162, 110, 76, 1105, 1586, 1586,
575 352, 735, 794, 5, 199, 820, 474, 1586, 1144, 850,
576 1173, 1199, 1207, 1212, 591, 754, 1220, 799, 831, 749,
577 833, 834, 848, 862, 897, 684, 791, 900, 912, 895,
578 901, 483, 808, 920, 930, 836, 890, 627, 892, 941,
580 962, 971, 993, 818, 873, 1005, 1007, 954, 960, 702,
581 872, 963, 1008, 1027, 1092, 1017, 1025, 1151, 1160, 1031,
582 1084, 1093, 1152, 1176, 1188, 1161, 1209, 1033, 1087, 1217,
583 1221, 1123, 1155, 1088, 1108, 1215, 1216, 1120, 1156, 1218,
584 1219, 1222, 1223, 1224, 1225, 1239, 1240, 1226, 1228, 1241,
585 1242, 1264, 1258, 1260, 1268, 1277, 1586, 1281, 1285, 1586,
586 1288, 1586, 1586, 1306, 1313, 1320, 1327, 1334, 1341, 1348,
587 1355, 1362, 1369, 1376, 1381, 1386, 1391, 1398, 1401, 1404,
588 1407, 1414, 1418, 1424, 1430, 1436, 1443, 1450, 1457, 1464,
593 static yyconst flex_int16_t yy_def[594] =
595 564, 564, 565, 565, 565, 565, 566, 566, 567, 567,
596 568, 568, 569, 569, 569, 569, 570, 570, 564, 564,
597 571, 571, 572, 572, 572, 572, 564, 564, 572, 572,
598 564, 564, 572, 572, 572, 572, 564, 564, 563, 39,
599 573, 573, 564, 564, 563, 45, 574, 574, 569, 569,
600 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
601 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
602 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
603 563, 575, 563, 563, 575, 563, 563, 563, 563, 563,
604 563, 563, 563, 563, 563, 563, 576, 563, 563, 576,
606 576, 576, 576, 563, 563, 563, 563, 563, 563, 563,
607 577, 563, 563, 577, 577, 577, 577, 577, 563, 563,
608 563, 563, 563, 563, 578, 563, 563, 563, 563, 563,
609 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
610 575, 575, 579, 563, 563, 563, 563, 563, 563, 576,
611 576, 576, 576, 576, 580, 563, 577, 577, 577, 577,
612 577, 577, 577, 581, 563, 563, 582, 563, 582, 563,
613 563, 563, 583, 563, 563, 563, 563, 563, 563, 563,
614 575, 584, 584, 563, 563, 563, 563, 563, 576, 576,
615 576, 576, 585, 585, 577, 577, 577, 577, 577, 577,
617 586, 586, 563, 563, 582, 563, 563, 582, 563, 563,
618 583, 563, 563, 563, 563, 563, 563, 575, 563, 584,
619 563, 584, 563, 563, 563, 563, 563, 576, 576, 576,
620 576, 563, 585, 563, 585, 577, 577, 577, 577, 577,
621 577, 563, 586, 563, 586, 563, 582, 587, 563, 563,
622 563, 563, 563, 575, 584, 563, 563, 563, 563, 563,
623 563, 563, 576, 563, 563, 576, 585, 563, 563, 577,
624 577, 563, 563, 577, 577, 586, 563, 582, 587, 587,
625 563, 587, 563, 563, 563, 575, 584, 563, 563, 563,
626 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
628 576, 585, 563, 563, 563, 563, 563, 577, 563, 563,
629 563, 577, 577, 586, 563, 582, 587, 587, 563, 563,
630 575, 584, 563, 563, 563, 563, 576, 563, 563, 563,
631 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
632 563, 582, 587, 587, 575, 563, 563, 576, 563, 563,
633 563, 563, 563, 563, 563, 563, 563, 563, 582, 587,
634 587, 575, 576, 563, 582, 587, 587, 575, 576, 576,
635 582, 582, 582, 587, 587, 563, 563, 563, 563, 563,
636 563, 582, 582, 582, 587, 587, 563, 563, 563, 563,
637 563, 563, 563, 563, 563, 582, 582, 582, 587, 587,
639 563, 563, 563, 563, 582, 582, 582, 587, 587, 587,
640 563, 563, 563, 563, 582, 582, 582, 587, 587, 587,
641 588, 589, 563, 563, 563, 563, 582, 582, 582, 587,
642 590, 591, 588, 589, 563, 563, 563, 563, 582, 582,
643 582, 590, 587, 592, 591, 593, 587, 563, 563, 563,
644 563, 582, 582, 582, 592, 563, 593, 587, 563, 563,
645 582, 582, 582, 563, 582, 582, 582, 563, 582, 582,
646 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
647 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
648 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
650 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
651 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
652 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
653 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
654 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
655 582, 582, 582, 582, 582, 582, 563, 582, 582, 563,
656 582, 563, 0, 563, 563, 563, 563, 563, 563, 563,
657 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
658 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
663 static yyconst flex_int16_t yy_nxt[1642] =
665 563, 54, 55, 54, 54, 55, 54, 54, 55, 54,
666 54, 55, 54, 62, 563, 56, 62, 65, 56, 65,
667 63, 57, 468, 63, 57, 59, 55, 59, 59, 55,
668 59, 68, 69, 66, 159, 66, 70, 71, 160, 60,
669 68, 69, 60, 168, 72, 70, 71, 68, 69, 206,
670 73, 125, 70, 72, 68, 69, 169, 73, 342, 70,
671 72, 75, 76, 75, 76, 126, 125, 72, 55, 55,
672 55, 55, 55, 55, 87, 55, 87, 87, 55, 87,
673 127, 172, 78, 174, 456, 78, 175, 172, 88, 210,
674 77, 88, 77, 79, 80, 55, 80, 79, 79, 79,
676 79, 79, 79, 79, 81, 79, 281, 79, 83, 79,
677 84, 79, 87, 55, 87, 87, 55, 87, 55, 55,
678 55, 281, 173, 79, 79, 206, 89, 206, 464, 89,
679 375, 247, 90, 208, 85, 79, 80, 55, 80, 79,
680 79, 79, 79, 79, 79, 79, 81, 79, 343, 79,
681 83, 79, 84, 79, 55, 55, 55, 87, 55, 87,
682 87, 55, 87, 206, 281, 79, 79, 456, 90, 359,
683 281, 88, 369, 370, 88, 128, 85, 55, 55, 55,
684 55, 55, 55, 87, 55, 87, 87, 55, 87, 127,
685 344, 91, 281, 206, 91, 361, 281, 89, 281, 128,
687 89, 87, 55, 87, 87, 55, 87, 55, 55, 55,
688 55, 55, 55, 127, 360, 92, 206, 374, 92, 460,
689 366, 93, 406, 469, 93, 94, 95, 55, 95, 94,
690 94, 94, 94, 94, 94, 94, 96, 94, 97, 94,
691 98, 94, 99, 94, 97, 97, 97, 97, 97, 97,
692 97, 97, 97, 97, 97, 94, 94, 97, 97, 97,
693 97, 100, 97, 97, 97, 97, 97, 101, 97, 102,
694 97, 103, 97, 97, 97, 97, 97, 97, 97, 97,
695 105, 55, 105, 105, 55, 105, 55, 55, 55, 55,
696 55, 55, 443, 443, 106, 281, 282, 106, 459, 456,
698 107, 446, 446, 107, 108, 109, 55, 109, 108, 108,
699 108, 108, 108, 108, 108, 110, 108, 111, 108, 112,
700 108, 113, 108, 111, 111, 111, 111, 111, 111, 111,
701 111, 111, 111, 111, 108, 108, 111, 111, 111, 111,
702 114, 111, 111, 111, 111, 111, 115, 111, 116, 111,
703 111, 111, 111, 117, 118, 111, 111, 111, 111, 120,
704 55, 120, 120, 55, 120, 68, 69, 68, 69, 206,
705 70, 133, 70, 121, 456, 465, 121, 206, 122, 128,
706 122, 124, 124, 124, 124, 124, 124, 124, 124, 124,
707 124, 124, 124, 127, 123, 128, 123, 128, 134, 124,
709 124, 124, 143, 128, 135, 128, 128, 136, 383, 127,
710 143, 127, 137, 128, 139, 128, 206, 127, 128, 127,
711 127, 124, 124, 124, 206, 143, 128, 127, 144, 127,
712 145, 128, 127, 155, 206, 146, 144, 146, 145, 148,
713 127, 145, 128, 147, 384, 127, 146, 416, 144, 164,
714 145, 148, 206, 145, 405, 147, 127, 451, 147, 124,
715 124, 124, 281, 278, 144, 124, 124, 124, 124, 124,
716 124, 124, 124, 124, 219, 219, 219, 219, 219, 219,
717 232, 232, 232, 232, 232, 232, 242, 242, 242, 206,
718 221, 206, 281, 221, 367, 450, 234, 281, 471, 234,
720 206, 316, 244, 242, 242, 242, 219, 219, 219, 219,
721 219, 219, 219, 219, 219, 261, 261, 261, 206, 244,
722 386, 385, 221, 206, 222, 221, 206, 235, 221, 498,
723 262, 264, 264, 264, 232, 232, 232, 382, 245, 232,
724 232, 232, 397, 206, 255, 396, 265, 232, 232, 232,
725 234, 268, 268, 268, 206, 234, 272, 272, 272, 242,
726 242, 242, 398, 234, 452, 281, 269, 242, 242, 242,
727 449, 273, 242, 242, 242, 244, 280, 280, 280, 219,
728 219, 219, 267, 244, 288, 288, 288, 408, 244, 290,
729 290, 290, 281, 282, 448, 221, 291, 291, 291, 292,
731 292, 292, 261, 261, 261, 293, 293, 293, 206, 294,
732 276, 206, 295, 296, 296, 296, 281, 262, 264, 264,
733 264, 232, 232, 232, 287, 298, 298, 298, 297, 299,
734 480, 407, 300, 265, 268, 268, 268, 234, 303, 303,
735 303, 281, 304, 399, 206, 305, 306, 306, 306, 269,
736 272, 272, 272, 438, 242, 242, 242, 302, 280, 280,
737 280, 307, 309, 309, 309, 273, 310, 504, 400, 311,
738 244, 320, 320, 320, 281, 219, 219, 219, 288, 288,
739 288, 323, 323, 323, 290, 290, 290, 291, 291, 291,
740 314, 221, 401, 206, 317, 292, 292, 292, 293, 293,
742 293, 206, 294, 454, 402, 295, 296, 296, 296, 318,
743 206, 324, 324, 324, 322, 325, 403, 492, 326, 206,
744 462, 297, 298, 298, 298, 206, 299, 206, 404, 300,
745 328, 328, 328, 303, 303, 303, 461, 304, 206, 439,
746 305, 306, 306, 306, 206, 516, 329, 330, 330, 330,
747 441, 331, 206, 443, 332, 463, 307, 333, 333, 333,
748 309, 309, 309, 466, 310, 444, 206, 311, 335, 335,
749 335, 206, 334, 337, 337, 337, 339, 339, 339, 320,
750 320, 320, 437, 336, 346, 346, 346, 206, 338, 323,
751 323, 323, 340, 481, 324, 324, 324, 486, 325, 453,
753 347, 326, 328, 328, 328, 330, 330, 330, 206, 331,
754 443, 206, 332, 333, 333, 333, 206, 467, 329, 349,
755 349, 349, 444, 350, 493, 206, 351, 436, 334, 335,
756 335, 335, 352, 352, 352, 206, 353, 206, 484, 354,
757 337, 337, 337, 470, 336, 355, 355, 355, 206, 356,
758 206, 206, 357, 206, 499, 338, 339, 339, 339, 346,
759 346, 346, 349, 349, 349, 206, 350, 206, 435, 351,
760 485, 510, 340, 488, 473, 347, 352, 352, 352, 206,
761 353, 487, 502, 354, 355, 355, 355, 489, 356, 206,
762 206, 357, 365, 365, 365, 365, 365, 365, 376, 376,
764 376, 378, 378, 378, 380, 380, 380, 206, 206, 206,
765 490, 206, 206, 377, 206, 517, 379, 206, 206, 381,
766 376, 376, 376, 387, 387, 387, 511, 388, 496, 206,
767 389, 371, 505, 372, 497, 377, 503, 206, 373, 378,
768 378, 378, 390, 390, 390, 491, 391, 206, 494, 392,
769 380, 380, 380, 500, 379, 393, 393, 393, 206, 394,
770 495, 426, 395, 501, 425, 381, 387, 387, 387, 424,
771 388, 206, 423, 389, 390, 390, 390, 206, 391, 206,
772 206, 392, 393, 393, 393, 414, 394, 506, 206, 395,
773 409, 409, 409, 415, 415, 415, 417, 417, 417, 418,
775 418, 418, 409, 409, 409, 410, 281, 514, 507, 206,
776 206, 508, 206, 515, 419, 281, 518, 410, 281, 420,
777 420, 420, 206, 421, 206, 206, 422, 415, 415, 415,
778 428, 428, 428, 509, 206, 281, 417, 417, 417, 418,
779 418, 418, 206, 206, 206, 512, 206, 513, 206, 413,
780 206, 412, 206, 427, 419, 281, 430, 430, 430, 522,
781 431, 519, 429, 432, 420, 420, 420, 523, 421, 534,
782 520, 422, 281, 526, 428, 428, 428, 458, 458, 458,
783 281, 279, 279, 279, 279, 279, 279, 279, 279, 279,
784 206, 411, 279, 281, 282, 279, 279, 279, 281, 279,
786 440, 206, 368, 528, 206, 206, 458, 458, 458, 206,
787 206, 279, 279, 279, 279, 279, 279, 279, 279, 279,
788 279, 279, 281, 535, 279, 206, 527, 279, 279, 279,
789 281, 279, 430, 430, 430, 521, 431, 206, 540, 432,
790 206, 364, 317, 279, 279, 472, 472, 472, 281, 279,
791 279, 279, 279, 279, 447, 279, 279, 279, 541, 538,
792 279, 206, 529, 279, 279, 279, 281, 279, 206, 206,
793 544, 532, 206, 206, 474, 474, 474, 206, 206, 279,
794 279, 279, 279, 279, 279, 279, 279, 279, 279, 447,
795 206, 539, 279, 206, 524, 279, 279, 279, 281, 279,
797 472, 472, 472, 525, 475, 206, 545, 476, 477, 477,
798 477, 279, 279, 474, 474, 474, 206, 478, 530, 533,
799 479, 477, 477, 477, 206, 482, 206, 536, 483, 206,
800 531, 537, 206, 206, 206, 206, 206, 206, 206, 206,
801 206, 206, 206, 206, 552, 206, 555, 363, 552, 362,
802 555, 542, 543, 358, 546, 547, 206, 206, 206, 206,
803 550, 551, 553, 558, 554, 556, 556, 556, 558, 559,
804 559, 559, 548, 549, 348, 206, 345, 206, 556, 556,
805 556, 557, 561, 561, 561, 560, 559, 559, 559, 561,
806 561, 561, 341, 327, 557, 321, 319, 281, 562, 315,
808 313, 312, 560, 308, 301, 562, 52, 52, 52, 52,
809 52, 52, 52, 53, 53, 53, 53, 53, 53, 53,
810 58, 58, 58, 58, 58, 58, 58, 61, 61, 61,
811 61, 61, 61, 61, 64, 64, 64, 64, 64, 64,
812 64, 67, 67, 67, 67, 67, 67, 67, 74, 74,
813 74, 74, 74, 74, 74, 82, 82, 82, 82, 82,
814 82, 82, 86, 86, 86, 86, 86, 86, 86, 104,
815 104, 104, 104, 104, 104, 104, 119, 119, 119, 119,
816 119, 119, 119, 141, 141, 141, 289, 141, 150, 150,
817 150, 286, 150, 157, 157, 157, 285, 157, 167, 167,
819 167, 167, 167, 284, 167, 182, 283, 182, 193, 277,
820 193, 201, 275, 201, 205, 205, 205, 205, 205, 205,
821 205, 211, 274, 271, 211, 220, 220, 220, 220, 220,
822 220, 233, 233, 233, 233, 233, 233, 243, 243, 243,
823 243, 243, 243, 279, 279, 279, 279, 279, 279, 279,
824 433, 433, 433, 433, 433, 433, 433, 434, 434, 434,
825 434, 434, 434, 434, 442, 442, 442, 442, 442, 442,
826 442, 445, 445, 445, 445, 445, 445, 445, 455, 455,
827 455, 455, 455, 455, 455, 457, 457, 457, 457, 457,
828 457, 457, 270, 266, 263, 260, 259, 258, 257, 256,
830 254, 253, 252, 251, 250, 249, 248, 206, 246, 241,
831 240, 239, 238, 237, 236, 231, 230, 229, 228, 227,
832 226, 225, 224, 223, 218, 217, 216, 215, 214, 213,
833 212, 209, 207, 206, 204, 203, 202, 200, 199, 198,
834 197, 196, 195, 194, 192, 191, 190, 189, 188, 187,
835 186, 185, 184, 183, 181, 180, 179, 178, 177, 176,
836 171, 168, 170, 166, 165, 163, 162, 161, 158, 156,
837 154, 153, 152, 151, 149, 142, 140, 138, 132, 131,
838 132, 131, 130, 129, 563, 51, 563, 563, 563, 563,
839 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
841 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
842 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
843 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
844 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
848 static yyconst flex_int16_t yy_chk[1642] =
850 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
851 6, 6, 6, 9, 0, 3, 10, 11, 4, 12,
852 9, 5, 464, 10, 6, 7, 7, 7, 8, 8,
853 8, 13, 13, 11, 115, 12, 13, 13, 115, 7,
854 14, 14, 8, 125, 13, 14, 14, 15, 15, 316,
855 15, 56, 15, 14, 16, 16, 125, 16, 316, 16,
856 15, 17, 17, 18, 18, 56, 57, 16, 19, 19,
857 19, 20, 20, 20, 23, 23, 23, 24, 24, 24,
858 57, 133, 19, 134, 457, 20, 134, 172, 23, 172,
859 17, 24, 18, 21, 21, 21, 21, 21, 21, 21,
861 21, 21, 21, 21, 21, 21, 367, 21, 21, 21,
862 21, 21, 25, 25, 25, 26, 26, 26, 27, 27,
863 27, 317, 133, 21, 21, 169, 25, 208, 456, 26,
864 367, 208, 27, 169, 21, 22, 22, 22, 22, 22,
865 22, 22, 22, 22, 22, 22, 22, 22, 317, 22,
866 22, 22, 22, 22, 28, 28, 28, 29, 29, 29,
867 30, 30, 30, 342, 344, 22, 22, 455, 28, 342,
868 318, 29, 363, 363, 30, 60, 22, 31, 31, 31,
869 32, 32, 32, 33, 33, 33, 34, 34, 34, 60,
870 318, 31, 360, 397, 32, 344, 343, 33, 366, 83,
872 34, 35, 35, 35, 36, 36, 36, 37, 37, 37,
873 38, 38, 38, 83, 343, 35, 465, 366, 36, 450,
874 360, 37, 397, 465, 38, 39, 39, 39, 39, 39,
875 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
876 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
877 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
878 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
879 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
880 41, 41, 41, 42, 42, 42, 43, 43, 43, 44,
881 44, 44, 432, 445, 41, 443, 443, 42, 448, 446,
883 43, 432, 445, 44, 45, 45, 45, 45, 45, 45,
884 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
885 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
886 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
887 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
888 45, 45, 45, 45, 45, 45, 45, 45, 45, 47,
889 47, 47, 48, 48, 48, 49, 49, 50, 50, 461,
890 49, 70, 50, 47, 444, 461, 48, 372, 49, 78,
891 50, 54, 54, 54, 55, 55, 55, 59, 59, 59,
892 80, 80, 80, 78, 49, 88, 50, 93, 70, 87,
894 87, 87, 88, 89, 70, 98, 90, 70, 372, 88,
895 89, 93, 70, 112, 78, 91, 373, 89, 92, 98,
896 90, 95, 95, 95, 406, 92, 106, 112, 88, 91,
897 88, 107, 92, 106, 396, 88, 89, 93, 89, 90,
898 106, 90, 121, 89, 373, 107, 90, 406, 91, 121,
899 91, 92, 247, 92, 396, 91, 121, 438, 92, 105,
900 105, 105, 361, 247, 107, 109, 109, 109, 120, 120,
901 120, 124, 124, 124, 182, 182, 182, 183, 183, 183,
902 193, 193, 193, 194, 194, 194, 201, 201, 201, 278,
903 182, 467, 375, 183, 361, 437, 193, 374, 467, 194,
905 492, 278, 201, 202, 202, 202, 219, 219, 219, 220,
906 220, 220, 222, 222, 222, 228, 228, 228, 371, 202,
907 375, 374, 219, 382, 183, 220, 383, 194, 222, 492,
908 228, 230, 230, 230, 232, 232, 232, 371, 202, 233,
909 233, 233, 383, 384, 222, 382, 230, 235, 235, 235,
910 232, 236, 236, 236, 439, 233, 239, 239, 239, 242,
911 242, 242, 384, 235, 439, 399, 236, 243, 243, 243,
912 436, 239, 245, 245, 245, 242, 248, 248, 248, 255,
913 255, 255, 235, 243, 256, 256, 256, 399, 245, 258,
914 258, 258, 248, 248, 435, 255, 259, 259, 259, 260,
916 260, 260, 261, 261, 261, 262, 262, 262, 475, 262,
917 245, 398, 262, 263, 263, 263, 385, 261, 264, 264,
918 264, 267, 267, 267, 255, 265, 265, 265, 263, 265,
919 475, 398, 265, 264, 268, 268, 268, 267, 269, 269,
920 269, 386, 269, 385, 498, 269, 270, 270, 270, 268,
921 272, 272, 272, 426, 276, 276, 276, 267, 280, 280,
922 280, 270, 273, 273, 273, 272, 273, 498, 386, 273,
923 276, 285, 285, 285, 280, 287, 287, 287, 288, 288,
924 288, 289, 289, 289, 290, 290, 290, 291, 291, 291,
925 276, 287, 388, 441, 280, 292, 292, 292, 293, 293,
927 293, 486, 293, 441, 388, 293, 296, 296, 296, 280,
928 453, 297, 297, 297, 287, 297, 389, 486, 297, 510,
929 453, 296, 298, 298, 298, 452, 298, 427, 389, 298,
930 302, 302, 302, 303, 303, 303, 452, 303, 429, 427,
931 303, 306, 306, 306, 454, 510, 302, 307, 307, 307,
932 429, 307, 462, 431, 307, 454, 306, 308, 308, 308,
933 309, 309, 309, 462, 309, 431, 480, 309, 312, 312,
934 312, 476, 308, 313, 313, 313, 314, 314, 314, 320,
935 320, 320, 425, 312, 322, 322, 322, 440, 313, 323,
936 323, 323, 314, 476, 324, 324, 324, 480, 324, 440,
938 322, 324, 328, 328, 328, 330, 330, 330, 487, 330,
939 442, 463, 330, 333, 333, 333, 478, 463, 328, 334,
940 334, 334, 442, 334, 487, 493, 334, 424, 333, 335,
941 335, 335, 336, 336, 336, 504, 336, 466, 478, 336,
942 337, 337, 337, 466, 335, 338, 338, 338, 479, 338,
943 481, 482, 338, 496, 493, 337, 339, 339, 339, 346,
944 346, 346, 349, 349, 349, 483, 349, 470, 423, 349,
945 479, 504, 339, 482, 470, 346, 352, 352, 352, 484,
946 352, 481, 496, 352, 355, 355, 355, 483, 355, 511,
947 505, 355, 359, 359, 359, 365, 365, 365, 368, 368,
949 368, 369, 369, 369, 370, 370, 370, 497, 359, 499,
950 484, 365, 490, 368, 485, 511, 369, 488, 491, 370,
951 376, 376, 376, 377, 377, 377, 505, 377, 490, 489,
952 377, 365, 499, 365, 491, 376, 497, 494, 365, 378,
953 378, 378, 379, 379, 379, 485, 379, 495, 488, 379,
954 380, 380, 380, 494, 378, 381, 381, 381, 500, 381,
955 489, 414, 381, 495, 413, 380, 387, 387, 387, 412,
956 387, 508, 411, 387, 390, 390, 390, 509, 390, 501,
957 512, 390, 393, 393, 393, 404, 393, 500, 502, 393,
958 400, 400, 400, 405, 405, 405, 407, 407, 407, 408,
960 408, 408, 409, 409, 409, 400, 400, 508, 501, 405,
961 503, 502, 407, 509, 408, 408, 512, 409, 409, 410,
962 410, 410, 506, 410, 507, 513, 410, 415, 415, 415,
963 416, 416, 416, 503, 516, 410, 417, 417, 417, 418,
964 418, 418, 517, 415, 514, 506, 416, 507, 520, 403,
965 528, 402, 417, 415, 418, 418, 419, 419, 419, 516,
966 419, 513, 417, 419, 420, 420, 420, 517, 420, 528,
967 514, 420, 419, 520, 428, 428, 428, 447, 447, 447,
968 420, 421, 421, 421, 421, 421, 421, 421, 421, 421,
969 428, 401, 421, 447, 447, 421, 421, 421, 421, 421,
971 428, 521, 362, 522, 529, 534, 458, 458, 458, 515,
972 522, 421, 421, 422, 422, 422, 422, 422, 422, 422,
973 422, 422, 458, 529, 422, 535, 521, 422, 422, 422,
974 422, 422, 430, 430, 430, 515, 430, 538, 534, 430,
975 532, 358, 458, 422, 422, 469, 469, 469, 430, 433,
976 433, 433, 433, 433, 433, 433, 433, 433, 535, 532,
977 433, 469, 523, 433, 433, 433, 433, 433, 518, 523,
978 538, 526, 533, 539, 471, 471, 471, 519, 526, 433,
979 433, 434, 434, 434, 434, 434, 434, 434, 434, 434,
980 471, 533, 434, 524, 518, 434, 434, 434, 434, 434,
982 472, 472, 472, 519, 472, 525, 539, 472, 473, 473,
983 473, 434, 434, 474, 474, 474, 472, 474, 524, 527,
984 474, 477, 477, 477, 473, 477, 527, 530, 477, 474,
985 525, 531, 536, 537, 530, 540, 541, 477, 531, 542,
986 543, 544, 545, 548, 546, 549, 550, 348, 547, 345,
987 551, 536, 537, 341, 540, 541, 546, 547, 550, 551,
988 544, 545, 548, 553, 549, 552, 552, 552, 554, 555,
989 555, 555, 542, 543, 327, 553, 321, 554, 556, 556,
990 556, 552, 558, 558, 558, 555, 559, 559, 559, 561,
991 561, 561, 315, 301, 556, 286, 282, 279, 558, 277,
993 275, 274, 559, 271, 266, 561, 564, 564, 564, 564,
994 564, 564, 564, 565, 565, 565, 565, 565, 565, 565,
995 566, 566, 566, 566, 566, 566, 566, 567, 567, 567,
996 567, 567, 567, 567, 568, 568, 568, 568, 568, 568,
997 568, 569, 569, 569, 569, 569, 569, 569, 570, 570,
998 570, 570, 570, 570, 570, 571, 571, 571, 571, 571,
999 571, 571, 572, 572, 572, 572, 572, 572, 572, 573,
1000 573, 573, 573, 573, 573, 573, 574, 574, 574, 574,
1001 574, 574, 574, 575, 575, 575, 257, 575, 576, 576,
1002 576, 254, 576, 577, 577, 577, 253, 577, 578, 578,
1004 578, 578, 578, 252, 578, 579, 251, 579, 580, 246,
1005 580, 581, 241, 581, 582, 582, 582, 582, 582, 582,
1006 582, 583, 240, 238, 583, 584, 584, 584, 584, 584,
1007 584, 585, 585, 585, 585, 585, 585, 586, 586, 586,
1008 586, 586, 586, 587, 587, 587, 587, 587, 587, 587,
1009 588, 588, 588, 588, 588, 588, 588, 589, 589, 589,
1010 589, 589, 589, 589, 590, 590, 590, 590, 590, 590,
1011 590, 591, 591, 591, 591, 591, 591, 591, 592, 592,
1012 592, 592, 592, 592, 592, 593, 593, 593, 593, 593,
1013 593, 593, 237, 231, 229, 227, 226, 225, 224, 223,
1015 218, 217, 216, 213, 212, 211, 209, 205, 203, 200,
1016 199, 198, 197, 196, 195, 192, 191, 190, 189, 188,
1017 187, 186, 185, 184, 181, 180, 178, 177, 176, 175,
1018 174, 170, 168, 167, 166, 165, 164, 163, 162, 161,
1019 160, 159, 158, 155, 154, 153, 152, 151, 148, 147,
1020 146, 145, 144, 143, 142, 139, 138, 137, 136, 135,
1021 129, 128, 126, 123, 122, 118, 117, 116, 114, 110,
1022 103, 102, 101, 100, 96, 85, 81, 77, 76, 75,
1023 69, 68, 66, 63, 51, 563, 563, 563, 563, 563,
1024 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
1026 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
1027 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
1028 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
1029 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
1033 /* Table of booleans, true if rule could match eol. */
1034 static yyconst flex_int32_t yy_rule_can_match_eol[93] =
1036 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
1037 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1038 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1039 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
1040 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, };
1042 static yy_state_type yy_last_accepting_state;
1043 static char *yy_last_accepting_cpos;
1045 extern int xbt_graph_parse__flex_debug;
1046 int xbt_graph_parse__flex_debug = 0;
1048 /* The intent behind this definition is that it'll catch
1049 * any uses of REJECT which flex missed.
1051 #define REJECT reject_used_but_not_detected
1052 #define yymore() yymore_used_but_not_detected
1053 #define YY_MORE_ADJ 0
1054 #define YY_RESTORE_YY_MORE_OFFSET
1055 char *xbt_graph_parse_text;
1056 /* Validating XML processor for src/xbt/graphxml.dtd.
1058 * This program was generated with the FleXML XML processor generator.
1059 * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved.
1060 * FleXML is Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
1061 * (Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp).
1063 * There are two, intertwined parts to this program, part A and part B.
1068 * Some parts, here collectively called "Part A", are found in the
1069 * FleXML package. They are Copyright (C) 1999-2005 Kristoffer Rose
1070 * and Copyright (C) 2003-2011 Martin Quinson. All rights reserved.
1072 * You can redistribute, use, perform, display and/or modify "Part A"
1073 * provided the following two conditions hold:
1075 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1076 * FleXML; without even the implied warranty of MERCHANTABILITY or
1077 * FITNESS FOR A PARTICULAR PURPOSE.
1079 * 2. The program distribution conditions do not in any way affect the
1080 * distribution conditions of the FleXML system used to generate this
1081 * file or any version of FleXML derived from that system.
1083 * Notice that these are explicit rights granted to you for files
1084 * generated by the FleXML system. For your rights in connection with
1085 * the FleXML system itself please consult the GNU General Public License.
1090 * The other parts, here collectively called "Part B", and which came
1091 * from the DTD used by FleXML to generate this program, can be
1092 * distributed (or not, as the case may be) under the terms of whoever
1093 * wrote them, provided these terms respect and obey the two conditions
1094 * above under the heading "Part A".
1096 * The author of and contributors to FleXML specifically disclaim
1097 * any copyright interest in "Part B", unless "Part B" was written
1098 * by the author of or contributors to FleXML.
1102 /* Version strings. */
1103 const char rcs_graphxml_flexml_skeleton[] =
1104 "$" "Id: skel,v 1.40 2007/10/11 09:57:24 mquinson Exp $";
1105 const char rcs_graphxml_flexml[] =
1106 "$" "Id: flexml.pl,v 1.67 2011/11/01 20:49:21 mquinson Exp $";
1109 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
1116 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
1117 # ifndef __STRICT_ANSI__
1119 # include <process.h>
1122 # include <unistd.h>
1125 #ifndef FLEXML_INDEXSTACKSIZE
1126 #define FLEXML_INDEXSTACKSIZE 1000
1129 /* Generated definitions. */
1130 #define FLEXML_yylineno
1131 #ifndef FLEXML_BUFFERSTACKSIZE
1132 #define FLEXML_BUFFERSTACKSIZE 1000000
1134 #define FLEXML_NEED_BUFFERLIT
1136 /* XML processor api. */
1137 /* FleXML-provided data. */
1138 int graphxml_pcdata_ix;
1139 extern char *graphxml_bufferstack;
1140 #define graphxml_pcdata (graphxml_bufferstack + graphxml_pcdata_ix)
1141 AT_graphxml_node_name AX_graphxml_node_name;
1142 #define A_graphxml_node_name (graphxml_bufferstack + AX_graphxml_node_name)
1143 short int graphxml_node_name_isset;
1144 AT_graphxml_edge_source AX_graphxml_edge_source;
1145 #define A_graphxml_edge_source (graphxml_bufferstack + AX_graphxml_edge_source)
1146 short int graphxml_edge_source_isset;
1147 AT_graphxml_node_position_y AX_graphxml_node_position_y;
1148 #define A_graphxml_node_position_y (graphxml_bufferstack + AX_graphxml_node_position_y)
1149 short int graphxml_node_position_y_isset;
1150 AT_graphxml_node_position_x AX_graphxml_node_position_x;
1151 #define A_graphxml_node_position_x (graphxml_bufferstack + AX_graphxml_node_position_x)
1152 short int graphxml_node_position_x_isset;
1153 AT_graphxml_edge_data AX_graphxml_edge_data;
1154 #define A_graphxml_edge_data (graphxml_bufferstack + AX_graphxml_edge_data)
1155 short int graphxml_edge_data_isset;
1156 AT_graphxml_edge_target AX_graphxml_edge_target;
1157 #define A_graphxml_edge_target (graphxml_bufferstack + AX_graphxml_edge_target)
1158 short int graphxml_edge_target_isset;
1159 AT_graphxml_graph_isDirected AX_graphxml_graph_isDirected;
1160 #define A_graphxml_graph_isDirected AX_graphxml_graph_isDirected
1161 short int graphxml_graph_isDirected_isset;
1162 AT_graphxml_node_label AX_graphxml_node_label;
1163 #define A_graphxml_node_label (graphxml_bufferstack + AX_graphxml_node_label)
1164 short int graphxml_node_label_isset;
1165 AT_graphxml_node_data AX_graphxml_node_data;
1166 #define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data)
1167 short int graphxml_node_data_isset;
1168 AT_graphxml_edge_label AX_graphxml_edge_label;
1169 #define A_graphxml_edge_label (graphxml_bufferstack + AX_graphxml_edge_label)
1170 short int graphxml_edge_label_isset;
1171 AT_graphxml_edge_length AX_graphxml_edge_length;
1172 #define A_graphxml_edge_length (graphxml_bufferstack + AX_graphxml_edge_length)
1173 short int graphxml_edge_length_isset;
1174 AT_graphxml_edge_name AX_graphxml_edge_name;
1175 #define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name)
1176 short int graphxml_edge_name_isset;
1180 # define ENTER(state) debug_enter(state,#state)
1181 # define LEAVE debug_leave()
1182 # define SET(state) debug_set(state,#state)
1183 static void debug_enter(int, const char*);
1184 static void debug_leave(void);
1185 static void debug_set(int, const char*);
1187 # define ENTER(state) (yy_push_state(state))
1188 # define LEAVE (yy_pop_state())
1189 # define SET(state) BEGIN(state)
1192 /* Generic actions. */
1193 #define SKIP /*skip*/
1194 #define SUCCEED CLEANUP; return 0
1196 #define FAIL return fail
1197 static int fail(const char*, ...);
1199 enum {flexml_max_err_msg_size = 512};
1200 static char flexml_err_msg[flexml_max_err_msg_size];
1201 const char * graphxml_parse_err_msg()
1203 return flexml_err_msg;
1205 static void reset_graphxml_parse_err_msg()
1207 flexml_err_msg[0] = '\0';
1211 static void cleanup(void);
1212 #define CLEANUP cleanup()
1214 /* Text buffer stack handling. */
1215 char *graphxml_bufferstack = NULL;
1216 static int blimit = FLEXML_BUFFERSTACKSIZE;
1217 static int bnext = 1;
1219 static int *indexstack = NULL;
1220 static int ilimit = FLEXML_INDEXSTACKSIZE;
1221 static int inext = 1;
1223 #define BUFFERSET(P) (P = bnext)
1224 #define BUFFERPUTC(C) (ck_blimit(), graphxml_bufferstack[bnext++] = (C))
1225 #define BUFFERDONE (BUFFERPUTC('\0'))
1227 #define BUFFERLITERAL(C, P) graphxml_bufferliteral(C, &(P), xbt_graph_parse_text)
1229 /* after this is called, there are at least 2 slots left in the stack */
1230 static int ck_blimit()
1232 if (bnext >= blimit) {
1233 blimit += FLEXML_BUFFERSTACKSIZE + 2;
1235 char *temp = (char *) realloc(graphxml_bufferstack, blimit);
1237 graphxml_bufferstack = temp;
1243 /* after this is called, there are at least 2 slots left in the stack */
1244 static int ck_ilimit()
1246 if (inext >= ilimit) {
1247 ilimit += FLEXML_INDEXSTACKSIZE + 2;
1249 int *temp = (int *) realloc(indexstack, ilimit);
1257 #ifdef FLEXML_NEED_BUFFERLIT
1258 static void graphxml_bufferliteral(char c, int* pp, const char* text)
1260 const char *s = (c ? strchr(text,c) : text-1), *e = strrchr(text,c);
1261 assert(s <= e); BUFFERSET(*pp);
1263 if (isspace(*s) && c) { BUFFERPUTC(' '); while (isspace(*s)) ++s; }
1264 else BUFFERPUTC(*s);
1270 static void pushbuffer(int p)
1273 indexstack[inext++] = p;
1274 indexstack[inext++] = bnext;
1277 static int popbuffer(void)
1280 bnext = indexstack[--inext];
1281 return indexstack[--inext];
1284 /* General internal entities are `unput' back onto the input stream... */
1285 #define ENTITYTEXT(T) \
1286 { char *s = (T), *e = s+strlen(s);\
1287 while (--e >= s) { unput(*e); }}
1289 /* Flex standard options. */
1290 #define YY_NO_INPUT 1
1291 /* Flex user-requested options. */
1292 /* XML character classes (currently restricted to ASCII). */
1293 /* "Common syntactic structures." */
1294 /* "Names and Tokens." */
1295 /* Miscellaneous. */
1296 /* Parser states (flex `exclusive start conditions'):
1298 * PROLOG the XML prolog of the document before <?xml...>
1299 * DOCTYPE the XML prolog of the document after <?xml...>
1300 * EPILOG after the root element
1301 * INCOMMENT inside an XML comment <!--....-->
1302 * INPI inside an XML PI <?...?>
1303 * VALUE1 inside a '...'-delimited literal
1304 * VALUE2 inside a "..."-delimited literal
1305 * CDATA inside a <![CDATA[...] ]> section.
1306 * ROOT_<tag> expect root element <tag>
1307 * AL_<tag> inside the attribute list for <tag>
1308 * IN_<tag> inside a <tag> with element contents (ready for end tag)
1309 * IMPOSSIBLE dummy to permit disabling rules; must be last
1313 const char* *graphxml_statenames=NULL;
1324 #define ROOT_graphxml_graph 9
1325 #define AL_graphxml_graph 10
1326 #define S_graphxml_graph 11
1327 #define S_graphxml_graph_1 12
1328 #define S_graphxml_graph_2 13
1329 #define S_graphxml_graph_3 14
1330 #define S_graphxml_graph_4 15
1331 #define S_graphxml_graph_5 16
1332 #define E_graphxml_graph 17
1333 #define ROOT_graphxml_node 18
1334 #define AL_graphxml_node 19
1335 #define E_graphxml_node 20
1336 #define ROOT_graphxml_edge 21
1337 #define AL_graphxml_edge 22
1338 #define E_graphxml_edge 23
1339 #define IMPOSSIBLE 24
1341 #ifndef YY_NO_UNISTD_H
1342 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1343 * down here because we want the user's section 1 to have been scanned first.
1344 * The user has a chance to override it with an option.
1346 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
1347 # ifndef __STRICT_ANSI__
1349 # include <process.h>
1352 # include <unistd.h>
1356 #ifndef YY_EXTRA_TYPE
1357 #define YY_EXTRA_TYPE void *
1360 static int yy_init_globals (void );
1362 /* Accessor methods to globals.
1363 These are made visible to non-reentrant scanners for convenience. */
1365 int xbt_graph_parse_lex_destroy (void );
1367 int xbt_graph_parse_get_debug (void );
1369 void xbt_graph_parse_set_debug (int debug_flag );
1371 YY_EXTRA_TYPE xbt_graph_parse_get_extra (void );
1373 void xbt_graph_parse_set_extra (YY_EXTRA_TYPE user_defined );
1375 FILE *xbt_graph_parse_get_in (void );
1377 void xbt_graph_parse_set_in (FILE * in_str );
1379 FILE *xbt_graph_parse_get_out (void );
1381 void xbt_graph_parse_set_out (FILE * out_str );
1383 int xbt_graph_parse_get_leng (void );
1385 char *xbt_graph_parse_get_text (void );
1387 int xbt_graph_parse_get_lineno (void );
1389 void xbt_graph_parse_set_lineno (int line_number );
1391 /* Macros after this point can all be overridden by user definitions in
1395 #ifndef YY_SKIP_YYWRAP
1397 extern "C" int xbt_graph_parse_wrap (void );
1399 extern int xbt_graph_parse_wrap (void );
1404 static void yy_flex_strncpy (char *,yyconst char *,int );
1407 #ifdef YY_NEED_STRLEN
1408 static int yy_flex_strlen (yyconst char * );
1414 static int yyinput (void );
1416 static int input (void );
1421 static int yy_start_stack_ptr = 0;
1422 static int yy_start_stack_depth = 0;
1423 static int *yy_start_stack = NULL;
1425 static void yy_push_state (int new_state );
1427 static void yy_pop_state (void );
1429 /* Amount of stuff to slurp up with each read. */
1430 #ifndef YY_READ_BUF_SIZE
1432 /* On IA-64, the buffer size is 16k, not 8k */
1433 #define YY_READ_BUF_SIZE 16384
1435 #define YY_READ_BUF_SIZE 8192
1436 #endif /* __ia64__ */
1439 /* Copy whatever the last rule matched to the standard output. */
1441 /* This used to be an fputs(), but since the string might contain NUL's,
1442 * we now use fwrite().
1444 #define ECHO do { if (fwrite( xbt_graph_parse_text, xbt_graph_parse_leng, 1, xbt_graph_parse_out )) {} } while (0)
1447 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1448 * is returned in "result".
1451 #define YY_INPUT(buf,result,max_size) \
1452 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1456 for ( n = 0; n < max_size && \
1457 (c = getc( xbt_graph_parse_in )) != EOF && c != '\n'; ++n ) \
1458 buf[n] = (char) c; \
1460 buf[n++] = (char) c; \
1461 if ( c == EOF && ferror( xbt_graph_parse_in ) ) \
1462 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1468 while ( (result = fread(buf, 1, max_size, xbt_graph_parse_in))==0 && ferror(xbt_graph_parse_in)) \
1470 if( errno != EINTR) \
1472 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1476 clearerr(xbt_graph_parse_in); \
1483 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1484 * we don't want an extra ';' after the "return" because that will cause
1485 * some compilers to complain about unreachable statements.
1488 #define yyterminate() return YY_NULL
1491 /* Number of entries by which start-condition stack grows. */
1492 #ifndef YY_START_STACK_INCR
1493 #define YY_START_STACK_INCR 25
1496 /* Report a fatal error. */
1497 #ifndef YY_FATAL_ERROR
1498 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1501 /* end tables serialization structures and prototypes */
1503 /* Default declaration of generated scanner - a define so the user can
1504 * easily add parameters.
1507 #define YY_DECL_IS_OURS 1
1509 extern int xbt_graph_parse_lex (void);
1511 #define YY_DECL int xbt_graph_parse_lex (void)
1512 #endif /* !YY_DECL */
1514 /* Code executed at the beginning of each rule, after xbt_graph_parse_text and xbt_graph_parse_leng
1517 #ifndef YY_USER_ACTION
1518 #define YY_USER_ACTION
1521 /* Code executed at the end of each rule. */
1523 #define YY_BREAK break;
1526 #define YY_RULE_SETUP \
1529 /** The main scanner function which does all the work.
1533 register yy_state_type yy_current_state;
1534 register char *yy_cp, *yy_bp;
1535 register int yy_act;
1537 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
1539 reset_graphxml_parse_err_msg();
1540 graphxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
1541 assert(graphxml_bufferstack);
1545 for (i = 0; i < blimit; i++) {
1546 graphxml_bufferstack[i] = '\377';
1550 graphxml_bufferstack[0] = '\0';
1551 indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
1557 graphxml_bufferliteral('\0', &bnext, "-1.0");
1558 graphxml_bufferliteral('\0', &bnext, "-1.0");
1559 graphxml_bufferliteral('\0', &bnext, "-1.0");
1560 if(!graphxml_statenames) {graphxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
1561 graphxml_statenames[PROLOG] = NULL;
1562 graphxml_statenames[DOCTYPE] = NULL;
1563 graphxml_statenames[EPILOG] = NULL;
1564 graphxml_statenames[INCOMMENT] = NULL;
1565 graphxml_statenames[INPI] = NULL;
1566 graphxml_statenames[VALUE1] = NULL;
1567 graphxml_statenames[VALUE2] = NULL;
1568 graphxml_statenames[CDATA] = NULL;
1569 graphxml_statenames[ROOT_graphxml_graph] = NULL;
1570 graphxml_statenames[AL_graphxml_graph] = NULL;
1571 graphxml_statenames[S_graphxml_graph] = "graph";
1572 graphxml_statenames[S_graphxml_graph_1] = "graph";
1573 graphxml_statenames[S_graphxml_graph_2] = "graph";
1574 graphxml_statenames[S_graphxml_graph_3] = "graph";
1575 graphxml_statenames[S_graphxml_graph_4] = "graph";
1576 graphxml_statenames[S_graphxml_graph_5] = "graph";
1577 graphxml_statenames[E_graphxml_graph] = "graph";
1578 graphxml_statenames[ROOT_graphxml_node] = NULL;
1579 graphxml_statenames[AL_graphxml_node] = NULL;
1580 graphxml_statenames[E_graphxml_node] = "node";
1581 graphxml_statenames[ROOT_graphxml_edge] = NULL;
1582 graphxml_statenames[AL_graphxml_edge] = NULL;
1583 graphxml_statenames[E_graphxml_edge] = "edge";
1586 /* COMMENTS and PIs: handled uniformly for efficiency. */
1597 (yy_start) = 1; /* first start state */
1599 if ( ! xbt_graph_parse_in )
1600 xbt_graph_parse_in = stdin;
1602 if ( ! xbt_graph_parse_out )
1603 xbt_graph_parse_out = stdout;
1605 if ( ! YY_CURRENT_BUFFER ) {
1606 xbt_graph_parse_ensure_buffer_stack ();
1607 YY_CURRENT_BUFFER_LVALUE =
1608 xbt_graph_parse__create_buffer(xbt_graph_parse_in,YY_BUF_SIZE );
1611 xbt_graph_parse__load_buffer_state( );
1614 while ( 1 ) /* loops until end-of-file is reached */
1616 yy_cp = (yy_c_buf_p);
1618 /* Support of xbt_graph_parse_text. */
1619 *yy_cp = (yy_hold_char);
1621 /* yy_bp points to the position in yy_ch_buf of the start of
1626 yy_current_state = (yy_start);
1630 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1631 if ( yy_accept[yy_current_state] )
1633 (yy_last_accepting_state) = yy_current_state;
1634 (yy_last_accepting_cpos) = yy_cp;
1636 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1638 yy_current_state = (int) yy_def[yy_current_state];
1639 if ( yy_current_state >= 564 )
1640 yy_c = yy_meta[(unsigned int) yy_c];
1642 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1645 while ( yy_base[yy_current_state] != 1586 );
1648 yy_act = yy_accept[yy_current_state];
1650 { /* have to back up */
1651 yy_cp = (yy_last_accepting_cpos);
1652 yy_current_state = (yy_last_accepting_state);
1653 yy_act = yy_accept[yy_current_state];
1656 YY_DO_BEFORE_ACTION;
1658 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
1661 for ( yyl = 0; yyl < xbt_graph_parse_leng; ++yyl )
1662 if ( xbt_graph_parse_text[yyl] == '\n' )
1664 xbt_graph_parse_lineno++;
1668 do_action: /* This label is used only to access EOF actions. */
1671 { /* beginning of action switch */
1672 case 0: /* must back up */
1673 /* undo the effects of YY_DO_BEFORE_ACTION */
1674 *yy_cp = (yy_hold_char);
1675 yy_cp = (yy_last_accepting_cpos);
1676 yy_current_state = (yy_last_accepting_state);
1677 goto yy_find_action;
1695 /* rule 6 can match eol */
1699 case YY_STATE_EOF(INCOMMENT):
1700 FAIL("EOF in comment.");
1709 /* rule 9 can match eol */
1713 case YY_STATE_EOF(INPI):
1714 FAIL("EOF in PI (processing instruction).");
1717 /* SPACES: skipped uniformly */
1719 /* rule 10 can match eol */
1723 /* PROLOG: determine root element and process it. */
1726 /* rule 11 can match eol */
1731 /* rule 12 can match eol */
1733 FAIL("Bad declaration %s.",xbt_graph_parse_text);
1737 /* rule 13 can match eol */
1739 SET(ROOT_graphxml_edge);
1742 /* rule 14 can match eol */
1744 SET(ROOT_graphxml_node);
1747 /* rule 15 can match eol */
1749 SET(ROOT_graphxml_graph);
1752 /* rule 16 can match eol */
1754 FAIL("Bad declaration %s.",xbt_graph_parse_text);
1758 FAIL("Unexpected character `%c' in prolog.", xbt_graph_parse_text[0]);
1760 case YY_STATE_EOF(PROLOG):
1761 case YY_STATE_EOF(DOCTYPE):
1762 FAIL("EOF in prolog.");
1765 /* RULES DERIVED FROM DTD. */
1766 /* <!-- Small DTD for xbt graphs. --> */
1767 /* isDirected (true|false) "true"
1770 /* rule 18 can match eol */
1772 FAIL("Starting tag <graph> is not allowed here.");
1775 /* rule 19 can match eol */
1778 AX_graphxml_graph_isDirected = A_graphxml_graph_isDirected_true;
1779 graphxml_graph_isDirected_isset = 0;
1780 ENTER(AL_graphxml_graph); pushbuffer(0);
1785 /* rule 20 can match eol */
1787 /* rule 21 can match eol */
1789 A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_true;
1792 /* rule 22 can match eol */
1794 /* rule 23 can match eol */
1796 A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_false;
1801 LEAVE; STag_graphxml_graph();graphxml_pcdata_ix = 0; ENTER(S_graphxml_graph);
1807 LEAVE; STag_graphxml_graph(); graphxml_pcdata_ix = 0; ETag_graphxml_graph(); popbuffer(); /* attribute */
1809 case ROOT_graphxml_graph: SET(EPILOG); break;
1815 FAIL("Unexpected character `%c' in attribute list of graph element.", xbt_graph_parse_text[0]);
1819 FAIL("Bad attribute `%s' in `graph' element start tag.",xbt_graph_parse_text);
1821 case YY_STATE_EOF(AL_graphxml_graph):
1822 FAIL("EOF in attribute list of `graph' element.");
1826 /* rule 28 can match eol */
1830 ETag_graphxml_graph();
1831 popbuffer(); /* attribute */
1833 case ROOT_graphxml_graph: SET(EPILOG); break;
1838 /* rule 29 can match eol */
1840 FAIL("Unexpected end-tag `%s': `</graph>' expected.",xbt_graph_parse_text);
1844 FAIL("Unexpected character `%c': `</graph>' expected.",xbt_graph_parse_text[0]);
1846 case YY_STATE_EOF(S_graphxml_graph_1):
1847 case YY_STATE_EOF(E_graphxml_graph):
1848 case YY_STATE_EOF(S_graphxml_graph_3):
1849 case YY_STATE_EOF(S_graphxml_graph_5):
1850 case YY_STATE_EOF(S_graphxml_graph):
1851 FAIL("Premature EOF: `</graph>' expected.");
1855 * name CDATA #REQUIRED
1857 * position_x CDATA "-1.0"
1858 * position_y CDATA "-1.0"
1861 /* rule 31 can match eol */
1863 FAIL("Starting tag <node> is not allowed here.");
1866 /* rule 32 can match eol */
1869 AX_graphxml_node_label = 0;
1870 graphxml_node_label_isset = 0;
1871 AX_graphxml_node_name = 0;
1872 graphxml_node_name_isset = 0;
1873 AX_graphxml_node_data = 0;
1874 graphxml_node_data_isset = 0;
1875 AX_graphxml_node_position_x = 1;
1876 graphxml_node_position_x_isset = 0;
1877 AX_graphxml_node_position_y = 6;
1878 graphxml_node_position_y_isset = 0;
1879 ENTER(AL_graphxml_node); pushbuffer(0);
1884 /* rule 33 can match eol */
1886 if (graphxml_node_label_isset != 0) {FAIL("Multiple definition of attribute label in <graphxml_node>");} graphxml_node_label_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_label);
1889 /* rule 34 can match eol */
1891 if (graphxml_node_label_isset != 0) {FAIL("Multiple definition of attribute label in <graphxml_node>");} graphxml_node_label_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_label);
1894 /* rule 35 can match eol */
1896 if (graphxml_node_name_isset != 0) {FAIL("Multiple definition of attribute name in <graphxml_node>");} graphxml_node_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_name);
1899 /* rule 36 can match eol */
1901 if (graphxml_node_name_isset != 0) {FAIL("Multiple definition of attribute name in <graphxml_node>");} graphxml_node_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_name);
1904 /* rule 37 can match eol */
1906 if (graphxml_node_data_isset != 0) {FAIL("Multiple definition of attribute data in <graphxml_node>");} graphxml_node_data_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_data);
1909 /* rule 38 can match eol */
1911 if (graphxml_node_data_isset != 0) {FAIL("Multiple definition of attribute data in <graphxml_node>");} graphxml_node_data_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_data);
1914 /* rule 39 can match eol */
1916 if (graphxml_node_position_x_isset != 0) {FAIL("Multiple definition of attribute position_x in <graphxml_node>");} graphxml_node_position_x_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_position_x);
1919 /* rule 40 can match eol */
1921 if (graphxml_node_position_x_isset != 0) {FAIL("Multiple definition of attribute position_x in <graphxml_node>");} graphxml_node_position_x_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_position_x);
1924 /* rule 41 can match eol */
1926 if (graphxml_node_position_y_isset != 0) {FAIL("Multiple definition of attribute position_y in <graphxml_node>");} graphxml_node_position_y_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_node_position_y);
1929 /* rule 42 can match eol */
1931 if (graphxml_node_position_y_isset != 0) {FAIL("Multiple definition of attribute position_y in <graphxml_node>");} graphxml_node_position_y_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_node_position_y);
1936 if (!AX_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element.");
1937 LEAVE; STag_graphxml_node();graphxml_pcdata_ix = 0; ENTER(E_graphxml_node);
1943 if (!AX_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element.");
1944 LEAVE; STag_graphxml_node(); graphxml_pcdata_ix = 0; ETag_graphxml_node(); popbuffer(); /* attribute */
1946 case S_graphxml_graph_2: case S_graphxml_graph_3: case S_graphxml_graph: SET(S_graphxml_graph_3); break;
1947 case ROOT_graphxml_node: SET(EPILOG); break;
1953 FAIL("Unexpected character `%c' in attribute list of node element.", xbt_graph_parse_text[0]);
1957 FAIL("Bad attribute `%s' in `node' element start tag.",xbt_graph_parse_text);
1959 case YY_STATE_EOF(AL_graphxml_node):
1960 FAIL("EOF in attribute list of `node' element.");
1964 /* rule 47 can match eol */
1968 ETag_graphxml_node();
1969 popbuffer(); /* attribute */
1971 case S_graphxml_graph_2: case S_graphxml_graph_3: case S_graphxml_graph: SET(S_graphxml_graph_3); break;
1972 case ROOT_graphxml_node: SET(EPILOG); break;
1977 /* rule 48 can match eol */
1979 FAIL("Unexpected end-tag `%s': `</node>' expected.",xbt_graph_parse_text);
1983 FAIL("Unexpected character `%c': `</node>' expected.",xbt_graph_parse_text[0]);
1985 case YY_STATE_EOF(E_graphxml_node):
1986 FAIL("Premature EOF: `</node>' expected.");
1990 * name CDATA #IMPLIED
1991 * source CDATA #REQUIRED
1992 * target CDATA #REQUIRED
1993 * length CDATA "-1.0"
1997 /* rule 50 can match eol */
1999 FAIL("Starting tag <edge> is not allowed here.");
2002 /* rule 51 can match eol */
2005 AX_graphxml_edge_label = 0;
2006 graphxml_edge_label_isset = 0;
2007 AX_graphxml_edge_name = 0;
2008 graphxml_edge_name_isset = 0;
2009 AX_graphxml_edge_source = 0;
2010 graphxml_edge_source_isset = 0;
2011 AX_graphxml_edge_target = 0;
2012 graphxml_edge_target_isset = 0;
2013 AX_graphxml_edge_length = 11;
2014 graphxml_edge_length_isset = 0;
2015 AX_graphxml_edge_data = 0;
2016 graphxml_edge_data_isset = 0;
2017 ENTER(AL_graphxml_edge); pushbuffer(0);
2022 /* rule 52 can match eol */
2024 if (graphxml_edge_label_isset != 0) {FAIL("Multiple definition of attribute label in <graphxml_edge>");} graphxml_edge_label_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_label);
2027 /* rule 53 can match eol */
2029 if (graphxml_edge_label_isset != 0) {FAIL("Multiple definition of attribute label in <graphxml_edge>");} graphxml_edge_label_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_label);
2032 /* rule 54 can match eol */
2034 if (graphxml_edge_name_isset != 0) {FAIL("Multiple definition of attribute name in <graphxml_edge>");} graphxml_edge_name_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_name);
2037 /* rule 55 can match eol */
2039 if (graphxml_edge_name_isset != 0) {FAIL("Multiple definition of attribute name in <graphxml_edge>");} graphxml_edge_name_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_name);
2042 /* rule 56 can match eol */
2044 if (graphxml_edge_source_isset != 0) {FAIL("Multiple definition of attribute source in <graphxml_edge>");} graphxml_edge_source_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_source);
2047 /* rule 57 can match eol */
2049 if (graphxml_edge_source_isset != 0) {FAIL("Multiple definition of attribute source in <graphxml_edge>");} graphxml_edge_source_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_source);
2052 /* rule 58 can match eol */
2054 if (graphxml_edge_target_isset != 0) {FAIL("Multiple definition of attribute target in <graphxml_edge>");} graphxml_edge_target_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_target);
2057 /* rule 59 can match eol */
2059 if (graphxml_edge_target_isset != 0) {FAIL("Multiple definition of attribute target in <graphxml_edge>");} graphxml_edge_target_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_target);
2062 /* rule 60 can match eol */
2064 if (graphxml_edge_length_isset != 0) {FAIL("Multiple definition of attribute length in <graphxml_edge>");} graphxml_edge_length_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_length);
2067 /* rule 61 can match eol */
2069 if (graphxml_edge_length_isset != 0) {FAIL("Multiple definition of attribute length in <graphxml_edge>");} graphxml_edge_length_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_length);
2072 /* rule 62 can match eol */
2074 if (graphxml_edge_data_isset != 0) {FAIL("Multiple definition of attribute data in <graphxml_edge>");} graphxml_edge_data_isset = 1; ENTER(VALUE1); BUFFERSET(AX_graphxml_edge_data);
2077 /* rule 63 can match eol */
2079 if (graphxml_edge_data_isset != 0) {FAIL("Multiple definition of attribute data in <graphxml_edge>");} graphxml_edge_data_isset = 1; ENTER(VALUE2); BUFFERSET(AX_graphxml_edge_data);
2084 if (!AX_graphxml_edge_source) FAIL("Required attribute `source' not set for `edge' element.");
2085 if (!AX_graphxml_edge_target) FAIL("Required attribute `target' not set for `edge' element.");
2086 LEAVE; STag_graphxml_edge();graphxml_pcdata_ix = 0; ENTER(E_graphxml_edge);
2092 if (!AX_graphxml_edge_source) FAIL("Required attribute `source' not set for `edge' element.");
2093 if (!AX_graphxml_edge_target) FAIL("Required attribute `target' not set for `edge' element.");
2094 LEAVE; STag_graphxml_edge(); graphxml_pcdata_ix = 0; ETag_graphxml_edge(); popbuffer(); /* attribute */
2096 case S_graphxml_graph_1: case S_graphxml_graph_3: case S_graphxml_graph_5: case S_graphxml_graph_4: case S_graphxml_graph: SET(S_graphxml_graph_5); break;
2097 case ROOT_graphxml_edge: SET(EPILOG); break;
2103 FAIL("Unexpected character `%c' in attribute list of edge element.", xbt_graph_parse_text[0]);
2107 FAIL("Bad attribute `%s' in `edge' element start tag.",xbt_graph_parse_text);
2109 case YY_STATE_EOF(AL_graphxml_edge):
2110 FAIL("EOF in attribute list of `edge' element.");
2114 /* rule 68 can match eol */
2118 ETag_graphxml_edge();
2119 popbuffer(); /* attribute */
2121 case S_graphxml_graph_1: case S_graphxml_graph_3: case S_graphxml_graph_5: case S_graphxml_graph_4: case S_graphxml_graph: SET(S_graphxml_graph_5); break;
2122 case ROOT_graphxml_edge: SET(EPILOG); break;
2127 /* rule 69 can match eol */
2129 FAIL("Unexpected end-tag `%s': `</edge>' expected.",xbt_graph_parse_text);
2133 FAIL("Unexpected character `%c': `</edge>' expected.",xbt_graph_parse_text[0]);
2135 case YY_STATE_EOF(E_graphxml_edge):
2136 FAIL("Premature EOF: `</edge>' expected.");
2139 /* EPILOG: after the root element. */
2143 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
2145 case YY_STATE_EOF(EPILOG):
2149 /* CHARACTER DATA. */
2151 /* Non-defined standard entities... */
2172 /* Character entities. */
2175 BUFFERPUTC((unsigned char)atoi(xbt_graph_parse_text+2));
2179 BUFFERPUTC((unsigned char)strtol(xbt_graph_parse_text+3,NULL,16));
2183 /* rule 79 can match eol */
2185 /* rule 80 can match eol */
2187 /* rule 81 can match eol */
2189 /* rule 82 can match eol */
2200 FAIL("Unexpected `]""]>' in character data.");
2207 case YY_STATE_EOF(VALUE1):
2208 FAIL("EOF in literal (\"'\" expected).");
2215 case YY_STATE_EOF(VALUE2):
2216 FAIL("EOF in literal (`\"' expected).");
2220 /* rule 87 can match eol */
2222 BUFFERPUTC(xbt_graph_parse_text[0]);
2226 FAIL("Spurious `%c' in character data.",xbt_graph_parse_text[0]);
2233 /* "]""]" BUFFERPUTC(xbt_graph_parse_text[0]); BUFFERPUTC(xbt_graph_parse_text[1]); */
2236 BUFFERPUTC(xbt_graph_parse_text[0]);
2238 case YY_STATE_EOF(CDATA):
2239 FAIL("EOF in CDATA section.");
2242 /* Impossible rules to avoid warnings from flex(1). */
2243 /* Ideally, this should be replaced by code in flexml.pl that
2244 generates just the states not covered by other rules. */
2247 /* rule 91 can match eol */
2249 FAIL("Syntax error on character `%c'.", xbt_graph_parse_text[0]);
2256 case YY_STATE_EOF(INITIAL):
2257 case YY_STATE_EOF(ROOT_graphxml_graph):
2258 case YY_STATE_EOF(S_graphxml_graph_2):
2259 case YY_STATE_EOF(S_graphxml_graph_4):
2260 case YY_STATE_EOF(ROOT_graphxml_node):
2261 case YY_STATE_EOF(ROOT_graphxml_edge):
2262 case YY_STATE_EOF(IMPOSSIBLE):
2265 case YY_END_OF_BUFFER:
2267 /* Amount of text matched not including the EOB char. */
2268 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2270 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2271 *yy_cp = (yy_hold_char);
2272 YY_RESTORE_YY_MORE_OFFSET
2274 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2276 /* We're scanning a new file or input source. It's
2277 * possible that this happened because the user
2278 * just pointed xbt_graph_parse_in at a new source and called
2279 * xbt_graph_parse_lex(). If so, then we have to assure
2280 * consistency between YY_CURRENT_BUFFER and our
2281 * globals. Here is the right place to do so, because
2282 * this is the first action (other than possibly a
2283 * back-up) that will match for the new input source.
2285 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2286 YY_CURRENT_BUFFER_LVALUE->yy_input_file = xbt_graph_parse_in;
2287 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2290 /* Note that here we test for yy_c_buf_p "<=" to the position
2291 * of the first EOB in the buffer, since yy_c_buf_p will
2292 * already have been incremented past the NUL character
2293 * (since all states make transitions on EOB to the
2294 * end-of-buffer state). Contrast this with the test
2297 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2298 { /* This was really a NUL. */
2299 yy_state_type yy_next_state;
2301 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2303 yy_current_state = yy_get_previous_state( );
2305 /* Okay, we're now positioned to make the NUL
2306 * transition. We couldn't have
2307 * yy_get_previous_state() go ahead and do it
2308 * for us because it doesn't know how to deal
2309 * with the possibility of jamming (and we don't
2310 * want to build jamming into it because then it
2311 * will run more slowly).
2314 yy_next_state = yy_try_NUL_trans( yy_current_state );
2316 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2318 if ( yy_next_state )
2320 /* Consume the NUL. */
2321 yy_cp = ++(yy_c_buf_p);
2322 yy_current_state = yy_next_state;
2328 yy_cp = (yy_c_buf_p);
2329 goto yy_find_action;
2333 else switch ( yy_get_next_buffer( ) )
2335 case EOB_ACT_END_OF_FILE:
2337 (yy_did_buffer_switch_on_eof) = 0;
2339 if ( xbt_graph_parse_wrap( ) )
2341 /* Note: because we've taken care in
2342 * yy_get_next_buffer() to have set up
2343 * xbt_graph_parse_text, we can now set up
2344 * yy_c_buf_p so that if some total
2345 * hoser (like flex itself) wants to
2346 * call the scanner after we return the
2347 * YY_NULL, it'll still work - another
2348 * YY_NULL will get returned.
2350 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2352 yy_act = YY_STATE_EOF(YY_START);
2358 if ( ! (yy_did_buffer_switch_on_eof) )
2364 case EOB_ACT_CONTINUE_SCAN:
2366 (yytext_ptr) + yy_amount_of_matched_text;
2368 yy_current_state = yy_get_previous_state( );
2370 yy_cp = (yy_c_buf_p);
2371 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2374 case EOB_ACT_LAST_MATCH:
2376 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2378 yy_current_state = yy_get_previous_state( );
2380 yy_cp = (yy_c_buf_p);
2381 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2382 goto yy_find_action;
2389 "fatal flex scanner internal error--no action found" );
2390 } /* end of action switch */
2391 } /* end of scanning one token */
2392 } /* end of xbt_graph_parse_lex */
2394 /* yy_get_next_buffer - try to read in a new buffer
2396 * Returns a code representing an action:
2397 * EOB_ACT_LAST_MATCH -
2398 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2399 * EOB_ACT_END_OF_FILE - end of file
2401 static int yy_get_next_buffer (void)
2403 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2404 register char *source = (yytext_ptr);
2405 register int number_to_move, i;
2408 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2410 "fatal flex scanner internal error--end of buffer missed" );
2412 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2413 { /* Don't try to fill the buffer, so this is an EOF. */
2414 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2416 /* We matched a single character, the EOB, so
2417 * treat this as a final EOF.
2419 return EOB_ACT_END_OF_FILE;
2424 /* We matched some text prior to the EOB, first
2427 return EOB_ACT_LAST_MATCH;
2431 /* Try to read more data. */
2433 /* First move last chars to start of buffer. */
2434 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2436 for ( i = 0; i < number_to_move; ++i )
2437 *(dest++) = *(source++);
2439 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2440 /* don't do the read, it's not guaranteed to return an EOF,
2443 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2448 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2450 while ( num_to_read <= 0 )
2451 { /* Not enough room in the buffer - grow it. */
2453 /* just a shorter name for the current buffer */
2454 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2456 int yy_c_buf_p_offset =
2457 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2459 if ( b->yy_is_our_buffer )
2461 int new_size = b->yy_buf_size * 2;
2463 if ( new_size <= 0 )
2464 b->yy_buf_size += b->yy_buf_size / 8;
2466 b->yy_buf_size *= 2;
2468 b->yy_ch_buf = (char *)
2469 /* Include room in for 2 EOB chars. */
2470 xbt_graph_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2473 /* Can't grow it, we don't own it. */
2476 if ( ! b->yy_ch_buf )
2478 "fatal error - scanner input buffer overflow" );
2480 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2482 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2487 if ( num_to_read > YY_READ_BUF_SIZE )
2488 num_to_read = YY_READ_BUF_SIZE;
2490 /* Read in more data. */
2491 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2492 (yy_n_chars), (size_t) num_to_read );
2494 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2497 if ( (yy_n_chars) == 0 )
2499 if ( number_to_move == YY_MORE_ADJ )
2501 ret_val = EOB_ACT_END_OF_FILE;
2502 xbt_graph_parse_restart(xbt_graph_parse_in );
2507 ret_val = EOB_ACT_LAST_MATCH;
2508 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2509 YY_BUFFER_EOF_PENDING;
2514 ret_val = EOB_ACT_CONTINUE_SCAN;
2516 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2517 /* Extend the array by 50%, plus the number we really need. */
2518 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2519 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) xbt_graph_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
2520 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2521 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2524 (yy_n_chars) += number_to_move;
2525 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2526 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2528 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2533 /* yy_get_previous_state - get the state just before the EOB char was reached */
2535 static yy_state_type yy_get_previous_state (void)
2537 register yy_state_type yy_current_state;
2538 register char *yy_cp;
2540 yy_current_state = (yy_start);
2542 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2544 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2545 if ( yy_accept[yy_current_state] )
2547 (yy_last_accepting_state) = yy_current_state;
2548 (yy_last_accepting_cpos) = yy_cp;
2550 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2552 yy_current_state = (int) yy_def[yy_current_state];
2553 if ( yy_current_state >= 564 )
2554 yy_c = yy_meta[(unsigned int) yy_c];
2556 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2559 return yy_current_state;
2562 /* yy_try_NUL_trans - try to make a transition on the NUL character
2565 * next_state = yy_try_NUL_trans( current_state );
2567 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2569 register int yy_is_jam;
2570 register char *yy_cp = (yy_c_buf_p);
2572 register YY_CHAR yy_c = 1;
2573 if ( yy_accept[yy_current_state] )
2575 (yy_last_accepting_state) = yy_current_state;
2576 (yy_last_accepting_cpos) = yy_cp;
2578 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2580 yy_current_state = (int) yy_def[yy_current_state];
2581 if ( yy_current_state >= 564 )
2582 yy_c = yy_meta[(unsigned int) yy_c];
2584 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2585 yy_is_jam = (yy_current_state == 563);
2587 return yy_is_jam ? 0 : yy_current_state;
2592 static int yyinput (void)
2594 static int input (void)
2600 *(yy_c_buf_p) = (yy_hold_char);
2602 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2604 /* yy_c_buf_p now points to the character we want to return.
2605 * If this occurs *before* the EOB characters, then it's a
2606 * valid NUL; if not, then we've hit the end of the buffer.
2608 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2609 /* This was really a NUL. */
2610 *(yy_c_buf_p) = '\0';
2613 { /* need more input */
2614 int offset = (yy_c_buf_p) - (yytext_ptr);
2617 switch ( yy_get_next_buffer( ) )
2619 case EOB_ACT_LAST_MATCH:
2620 /* This happens because yy_g_n_b()
2621 * sees that we've accumulated a
2622 * token and flags that we need to
2623 * try matching the token before
2624 * proceeding. But for input(),
2625 * there's no matching to consider.
2626 * So convert the EOB_ACT_LAST_MATCH
2627 * to EOB_ACT_END_OF_FILE.
2630 /* Reset buffer status. */
2631 xbt_graph_parse_restart(xbt_graph_parse_in );
2635 case EOB_ACT_END_OF_FILE:
2637 if ( xbt_graph_parse_wrap( ) )
2640 if ( ! (yy_did_buffer_switch_on_eof) )
2649 case EOB_ACT_CONTINUE_SCAN:
2650 (yy_c_buf_p) = (yytext_ptr) + offset;
2656 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2657 *(yy_c_buf_p) = '\0'; /* preserve xbt_graph_parse_text */
2658 (yy_hold_char) = *++(yy_c_buf_p);
2662 xbt_graph_parse_lineno++;
2667 #endif /* ifndef YY_NO_INPUT */
2669 /** Immediately switch to a different input stream.
2670 * @param input_file A readable stream.
2672 * @note This function does not reset the start condition to @c INITIAL .
2674 void xbt_graph_parse_restart (FILE * input_file )
2677 if ( ! YY_CURRENT_BUFFER ){
2678 xbt_graph_parse_ensure_buffer_stack ();
2679 YY_CURRENT_BUFFER_LVALUE =
2680 xbt_graph_parse__create_buffer(xbt_graph_parse_in,YY_BUF_SIZE );
2683 xbt_graph_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
2684 xbt_graph_parse__load_buffer_state( );
2687 /** Switch to a different input buffer.
2688 * @param new_buffer The new input buffer.
2691 void xbt_graph_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
2694 /* TODO. We should be able to replace this entire function body
2696 * xbt_graph_parse_pop_buffer_state();
2697 * xbt_graph_parse_push_buffer_state(new_buffer);
2699 xbt_graph_parse_ensure_buffer_stack ();
2700 if ( YY_CURRENT_BUFFER == new_buffer )
2703 if ( YY_CURRENT_BUFFER )
2705 /* Flush out information for old buffer. */
2706 *(yy_c_buf_p) = (yy_hold_char);
2707 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2708 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2711 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2712 xbt_graph_parse__load_buffer_state( );
2714 /* We don't actually know whether we did this switch during
2715 * EOF (xbt_graph_parse_wrap()) processing, but the only time this flag
2716 * is looked at is after xbt_graph_parse_wrap() is called, so it's safe
2717 * to go ahead and always set it.
2719 (yy_did_buffer_switch_on_eof) = 1;
2722 static void xbt_graph_parse__load_buffer_state (void)
2724 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2725 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2726 xbt_graph_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2727 (yy_hold_char) = *(yy_c_buf_p);
2730 /** Allocate and initialize an input buffer state.
2731 * @param file A readable stream.
2732 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2734 * @return the allocated buffer state.
2736 YY_BUFFER_STATE xbt_graph_parse__create_buffer (FILE * file, int size )
2740 b = (YY_BUFFER_STATE) xbt_graph_parse_alloc(sizeof( struct yy_buffer_state ) );
2742 YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse__create_buffer()" );
2744 b->yy_buf_size = size;
2746 /* yy_ch_buf has to be 2 characters longer than the size given because
2747 * we need to put in 2 end-of-buffer characters.
2749 b->yy_ch_buf = (char *) xbt_graph_parse_alloc(b->yy_buf_size + 2 );
2750 if ( ! b->yy_ch_buf )
2751 YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse__create_buffer()" );
2753 b->yy_is_our_buffer = 1;
2755 xbt_graph_parse__init_buffer(b,file );
2760 /** Destroy the buffer.
2761 * @param b a buffer created with xbt_graph_parse__create_buffer()
2764 void xbt_graph_parse__delete_buffer (YY_BUFFER_STATE b )
2770 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2771 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2773 if ( b->yy_is_our_buffer )
2774 xbt_graph_parse_free((void *) b->yy_ch_buf );
2776 xbt_graph_parse_free((void *) b );
2780 extern int isatty (int );
2781 #endif /* __cplusplus */
2783 /* Initializes or reinitializes a buffer.
2784 * This function is sometimes called more than once on the same buffer,
2785 * such as during a xbt_graph_parse_restart() or at EOF.
2787 static void xbt_graph_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
2792 xbt_graph_parse__flush_buffer(b );
2794 b->yy_input_file = file;
2795 b->yy_fill_buffer = 1;
2797 /* If b is the current buffer, then xbt_graph_parse__init_buffer was _probably_
2798 * called from xbt_graph_parse_restart() or through yy_get_next_buffer.
2799 * In that case, we don't want to reset the lineno or column.
2801 if (b != YY_CURRENT_BUFFER){
2802 b->yy_bs_lineno = 1;
2803 b->yy_bs_column = 0;
2806 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2811 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2812 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2815 void xbt_graph_parse__flush_buffer (YY_BUFFER_STATE b )
2822 /* We always need two end-of-buffer characters. The first causes
2823 * a transition to the end-of-buffer state. The second causes
2824 * a jam in that state.
2826 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2827 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2829 b->yy_buf_pos = &b->yy_ch_buf[0];
2832 b->yy_buffer_status = YY_BUFFER_NEW;
2834 if ( b == YY_CURRENT_BUFFER )
2835 xbt_graph_parse__load_buffer_state( );
2838 /** Pushes the new state onto the stack. The new state becomes
2839 * the current state. This function will allocate the stack
2841 * @param new_buffer The new state.
2844 void xbt_graph_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
2846 if (new_buffer == NULL)
2849 xbt_graph_parse_ensure_buffer_stack();
2851 /* This block is copied from xbt_graph_parse__switch_to_buffer. */
2852 if ( YY_CURRENT_BUFFER )
2854 /* Flush out information for old buffer. */
2855 *(yy_c_buf_p) = (yy_hold_char);
2856 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2857 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2860 /* Only push if top exists. Otherwise, replace top. */
2861 if (YY_CURRENT_BUFFER)
2862 (yy_buffer_stack_top)++;
2863 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2865 /* copied from xbt_graph_parse__switch_to_buffer. */
2866 xbt_graph_parse__load_buffer_state( );
2867 (yy_did_buffer_switch_on_eof) = 1;
2870 /** Removes and deletes the top of the stack, if present.
2871 * The next element becomes the new top.
2874 void xbt_graph_parse_pop_buffer_state (void)
2876 if (!YY_CURRENT_BUFFER)
2879 xbt_graph_parse__delete_buffer(YY_CURRENT_BUFFER );
2880 YY_CURRENT_BUFFER_LVALUE = NULL;
2881 if ((yy_buffer_stack_top) > 0)
2882 --(yy_buffer_stack_top);
2884 if (YY_CURRENT_BUFFER) {
2885 xbt_graph_parse__load_buffer_state( );
2886 (yy_did_buffer_switch_on_eof) = 1;
2890 /* Allocates the stack if it does not exist.
2891 * Guarantees space for at least one push.
2893 static void xbt_graph_parse_ensure_buffer_stack (void)
2897 if (!(yy_buffer_stack)) {
2899 /* First allocation is just for 2 elements, since we don't know if this
2900 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2901 * immediate realloc on the next call.
2904 (yy_buffer_stack) = (struct yy_buffer_state**)xbt_graph_parse_alloc
2905 (num_to_alloc * sizeof(struct yy_buffer_state*)
2907 if ( ! (yy_buffer_stack) )
2908 YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse_ensure_buffer_stack()" );
2910 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2912 (yy_buffer_stack_max) = num_to_alloc;
2913 (yy_buffer_stack_top) = 0;
2917 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2919 /* Increase the buffer to prepare for a possible push. */
2920 int grow_size = 8 /* arbitrary grow size */;
2922 num_to_alloc = (yy_buffer_stack_max) + grow_size;
2923 (yy_buffer_stack) = (struct yy_buffer_state**)xbt_graph_parse_realloc
2925 num_to_alloc * sizeof(struct yy_buffer_state*)
2927 if ( ! (yy_buffer_stack) )
2928 YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse_ensure_buffer_stack()" );
2930 /* zero only the new slots.*/
2931 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2932 (yy_buffer_stack_max) = num_to_alloc;
2936 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2937 * @param base the character buffer
2938 * @param size the size in bytes of the character buffer
2940 * @return the newly allocated buffer state object.
2942 YY_BUFFER_STATE xbt_graph_parse__scan_buffer (char * base, yy_size_t size )
2947 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2948 base[size-1] != YY_END_OF_BUFFER_CHAR )
2949 /* They forgot to leave room for the EOB's. */
2952 b = (YY_BUFFER_STATE) xbt_graph_parse_alloc(sizeof( struct yy_buffer_state ) );
2954 YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse__scan_buffer()" );
2956 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2957 b->yy_buf_pos = b->yy_ch_buf = base;
2958 b->yy_is_our_buffer = 0;
2959 b->yy_input_file = 0;
2960 b->yy_n_chars = b->yy_buf_size;
2961 b->yy_is_interactive = 0;
2963 b->yy_fill_buffer = 0;
2964 b->yy_buffer_status = YY_BUFFER_NEW;
2966 xbt_graph_parse__switch_to_buffer(b );
2971 /** Setup the input buffer state to scan a string. The next call to xbt_graph_parse_lex() will
2972 * scan from a @e copy of @a str.
2973 * @param yystr a NUL-terminated string to scan
2975 * @return the newly allocated buffer state object.
2976 * @note If you want to scan bytes that may contain NUL values, then use
2977 * xbt_graph_parse__scan_bytes() instead.
2979 YY_BUFFER_STATE xbt_graph_parse__scan_string (yyconst char * yystr )
2982 return xbt_graph_parse__scan_bytes(yystr,strlen(yystr) );
2985 /** Setup the input buffer state to scan the given bytes. The next call to xbt_graph_parse_lex() will
2986 * scan from a @e copy of @a bytes.
2987 * @param yybytes the byte buffer to scan
2988 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2990 * @return the newly allocated buffer state object.
2992 YY_BUFFER_STATE xbt_graph_parse__scan_bytes (yyconst char * yybytes, int _yybytes_len )
2999 /* Get memory for full buffer, including space for trailing EOB's. */
3000 n = _yybytes_len + 2;
3001 buf = (char *) xbt_graph_parse_alloc(n );
3003 YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse__scan_bytes()" );
3005 for ( i = 0; i < _yybytes_len; ++i )
3006 buf[i] = yybytes[i];
3008 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3010 b = xbt_graph_parse__scan_buffer(buf,n );
3012 YY_FATAL_ERROR( "bad buffer in xbt_graph_parse__scan_bytes()" );
3014 /* It's okay to grow etc. this buffer, and we should throw it
3015 * away when we're done.
3017 b->yy_is_our_buffer = 1;
3022 static void yy_push_state (int new_state )
3024 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
3028 (yy_start_stack_depth) += YY_START_STACK_INCR;
3029 new_size = (yy_start_stack_depth) * sizeof( int );
3031 if ( ! (yy_start_stack) )
3032 (yy_start_stack) = (int *) xbt_graph_parse_alloc(new_size );
3035 (yy_start_stack) = (int *) xbt_graph_parse_realloc((void *) (yy_start_stack),new_size );
3037 if ( ! (yy_start_stack) )
3038 YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
3041 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
3046 static void yy_pop_state (void)
3048 if ( --(yy_start_stack_ptr) < 0 )
3049 YY_FATAL_ERROR( "start-condition stack underflow" );
3051 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
3054 #ifndef YY_EXIT_FAILURE
3055 #define YY_EXIT_FAILURE 2
3058 static void yy_fatal_error (yyconst char* msg )
3060 (void) fprintf( stderr, "%s\n", msg );
3061 exit( YY_EXIT_FAILURE );
3064 /* Redefine yyless() so it works in section 3 code. */
3070 /* Undo effects of setting up xbt_graph_parse_text. */ \
3071 int yyless_macro_arg = (n); \
3072 YY_LESS_LINENO(yyless_macro_arg);\
3073 xbt_graph_parse_text[xbt_graph_parse_leng] = (yy_hold_char); \
3074 (yy_c_buf_p) = xbt_graph_parse_text + yyless_macro_arg; \
3075 (yy_hold_char) = *(yy_c_buf_p); \
3076 *(yy_c_buf_p) = '\0'; \
3077 xbt_graph_parse_leng = yyless_macro_arg; \
3081 /* Accessor methods (get/set functions) to struct members. */
3083 /** Get the current line number.
3086 int xbt_graph_parse_get_lineno (void)
3089 return xbt_graph_parse_lineno;
3092 /** Get the input stream.
3095 FILE *xbt_graph_parse_get_in (void)
3097 return xbt_graph_parse_in;
3100 /** Get the output stream.
3103 FILE *xbt_graph_parse_get_out (void)
3105 return xbt_graph_parse_out;
3108 /** Get the length of the current token.
3111 int xbt_graph_parse_get_leng (void)
3113 return xbt_graph_parse_leng;
3116 /** Get the current token.
3120 char *xbt_graph_parse_get_text (void)
3122 return xbt_graph_parse_text;
3125 /** Set the current line number.
3126 * @param line_number
3129 void xbt_graph_parse_set_lineno (int line_number )
3132 xbt_graph_parse_lineno = line_number;
3135 /** Set the input stream. This does not discard the current
3137 * @param in_str A readable stream.
3139 * @see xbt_graph_parse__switch_to_buffer
3141 void xbt_graph_parse_set_in (FILE * in_str )
3143 xbt_graph_parse_in = in_str ;
3146 void xbt_graph_parse_set_out (FILE * out_str )
3148 xbt_graph_parse_out = out_str ;
3151 int xbt_graph_parse_get_debug (void)
3153 return xbt_graph_parse__flex_debug;
3156 void xbt_graph_parse_set_debug (int bdebug )
3158 xbt_graph_parse__flex_debug = bdebug ;
3161 static int yy_init_globals (void)
3163 /* Initialization is the same as for the non-reentrant scanner.
3164 * This function is called from xbt_graph_parse_lex_destroy(), so don't allocate here.
3167 /* We do not touch xbt_graph_parse_lineno unless the option is enabled. */
3168 xbt_graph_parse_lineno = 1;
3170 (yy_buffer_stack) = 0;
3171 (yy_buffer_stack_top) = 0;
3172 (yy_buffer_stack_max) = 0;
3173 (yy_c_buf_p) = (char *) 0;
3177 (yy_start_stack_ptr) = 0;
3178 (yy_start_stack_depth) = 0;
3179 (yy_start_stack) = NULL;
3181 /* Defined in main.c */
3183 xbt_graph_parse_in = stdin;
3184 xbt_graph_parse_out = stdout;
3186 xbt_graph_parse_in = (FILE *) 0;
3187 xbt_graph_parse_out = (FILE *) 0;
3190 /* For future reference: Set errno on error, since we are called by
3191 * xbt_graph_parse_lex_init()
3196 /* xbt_graph_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
3197 int xbt_graph_parse_lex_destroy (void)
3200 /* Pop the buffer stack, destroying each element. */
3201 while(YY_CURRENT_BUFFER){
3202 xbt_graph_parse__delete_buffer(YY_CURRENT_BUFFER );
3203 YY_CURRENT_BUFFER_LVALUE = NULL;
3204 xbt_graph_parse_pop_buffer_state();
3207 /* Destroy the stack itself. */
3208 xbt_graph_parse_free((yy_buffer_stack) );
3209 (yy_buffer_stack) = NULL;
3211 /* Destroy the start condition stack. */
3212 xbt_graph_parse_free((yy_start_stack) );
3213 (yy_start_stack) = NULL;
3215 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3216 * xbt_graph_parse_lex() is called, initialization will occur. */
3223 * Internal utility routines.
3227 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3230 for ( i = 0; i < n; ++i )
3235 #ifdef YY_NEED_STRLEN
3236 static int yy_flex_strlen (yyconst char * s )
3239 for ( n = 0; s[n]; ++n )
3246 void *xbt_graph_parse_alloc (yy_size_t size )
3248 return (void *) malloc( size );
3251 void *xbt_graph_parse_realloc (void * ptr, yy_size_t size )
3253 /* The cast to (char *) in the following accommodates both
3254 * implementations that use char* generic pointers, and those
3255 * that use void* generic pointers. It works with the latter
3256 * because both ANSI C and C++ allow castless assignment from
3257 * any pointer type to void*, and deal with argument conversions
3258 * as though doing an assignment.
3260 return (void *) realloc( (char *) ptr, size );
3263 void xbt_graph_parse_free (void * ptr )
3265 free( (char *) ptr ); /* see xbt_graph_parse_realloc() for (char *) cast */
3268 #define YYTABLES_NAME "yytables"
3270 /* Element context stack lookup. */
3271 int graphxml_element_context(int i)
3273 return (0<i && i<yy_start_stack_depth
3274 ? yy_start_stack[yy_start_stack_ptr - i]
3279 void print_yy_stack(char* fmt, ...)
3281 int i = 0; va_list ap; va_start(ap, fmt);
3282 vfprintf(stderr, fmt, ap);
3283 if (graphxml_statenames) {
3284 for (i=1; i<yy_start_stack_ptr; i++) {
3285 fprintf(stderr, "%s/", graphxml_statenames[yy_start_stack[i] ]);
3287 fprintf(stderr,"%s\n", graphxml_statenames[YY_START]);
3292 void print_graphxml_bufferstack()
3295 fputs("Buffer: ", stderr);
3296 for (i = 0; i < blimit; i++) {
3297 if ( graphxml_bufferstack[i] == '\377' ) break;
3298 putc(graphxml_bufferstack[i], stderr);
3303 static void debug_enter(int state, const char* statename) {
3304 yy_push_state(state);
3305 if (xbt_graph_parse__flex_debug) {
3306 print_yy_stack("--ENTER(%s) : ",statename);
3307 print_graphxml_bufferstack();
3311 static void debug_leave(void) {
3312 if (xbt_graph_parse__flex_debug) {
3313 print_yy_stack("--LEAVE : ");
3314 print_graphxml_bufferstack();
3319 static void debug_set(int state, const char* statename) {
3321 if (xbt_graph_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
3325 static void cleanup(void)
3327 if (graphxml_statenames) {
3328 free(graphxml_statenames);
3329 graphxml_statenames = NULL;
3331 free(graphxml_bufferstack);
3332 graphxml_bufferstack = NULL;
3338 static int fail(const char* fmt, ...)
3340 int chars_left, used;
3341 va_list ap; va_start(ap, fmt);
3342 #ifdef FLEXML_yylineno
3343 used = sprintf(flexml_err_msg,
3344 "Invalid XML (XML input line %d, state %d): ",
3345 xbt_graph_parse_lineno, YY_START);
3347 used = sprintf(flexml_err_msg,
3348 "Invalid XML (state %d): ",
3351 chars_left = flexml_max_err_msg_size - used - 1;
3352 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
3355 #ifndef FLEXML_quiet_parser
3356 /* print directly to sdterr */
3357 fprintf(stderr, "%s\n", flexml_err_msg);
3358 flexml_err_msg[0] = '\0';