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 37
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. */
163 #define YY_BUF_SIZE 16384
166 /* The state buf must be large enough to hold one state per character in the main buffer.
168 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
170 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
171 #define YY_TYPEDEF_YY_BUFFER_STATE
172 typedef struct yy_buffer_state *YY_BUFFER_STATE;
175 #ifndef YY_TYPEDEF_YY_SIZE_T
176 #define YY_TYPEDEF_YY_SIZE_T
177 typedef size_t yy_size_t;
180 extern yy_size_t xbt_graph_parse_leng;
182 extern FILE *xbt_graph_parse_in, *xbt_graph_parse_out;
184 #define EOB_ACT_CONTINUE_SCAN 0
185 #define EOB_ACT_END_OF_FILE 1
186 #define EOB_ACT_LAST_MATCH 2
188 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
189 * access to the local variable yy_act. Since yyless() is a macro, it would break
190 * existing scanners that call yyless() from OUTSIDE xbt_graph_parse_lex.
191 * One obvious solution it to make yy_act a global. I tried that, and saw
192 * a 5% performance hit in a non-xbt_graph_parse_lineno scanner, because yy_act is
193 * normally declared as a register variable-- so it is not worth it.
195 #define YY_LESS_LINENO(n) \
198 for ( yyl = n; yyl < xbt_graph_parse_leng; ++yyl )\
199 if ( xbt_graph_parse_text[yyl] == '\n' )\
200 --xbt_graph_parse_lineno;\
203 /* Return all but the first "n" matched characters back to the input stream. */
207 /* Undo effects of setting up xbt_graph_parse_text. */ \
208 int yyless_macro_arg = (n); \
209 YY_LESS_LINENO(yyless_macro_arg);\
210 *yy_cp = (yy_hold_char); \
211 YY_RESTORE_YY_MORE_OFFSET \
212 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
213 YY_DO_BEFORE_ACTION; /* set up xbt_graph_parse_text again */ \
217 #define unput(c) yyunput( c, (yytext_ptr) )
219 #ifndef YY_STRUCT_YY_BUFFER_STATE
220 #define YY_STRUCT_YY_BUFFER_STATE
221 struct yy_buffer_state
225 char *yy_ch_buf; /* input buffer */
226 char *yy_buf_pos; /* current position in input buffer */
228 /* Size of input buffer in bytes, not including room for EOB
231 yy_size_t yy_buf_size;
233 /* Number of characters read into yy_ch_buf, not including EOB
236 yy_size_t yy_n_chars;
238 /* Whether we "own" the buffer - i.e., we know we created it,
239 * and can realloc() it to grow it, and should free() it to
242 int yy_is_our_buffer;
244 /* Whether this is an "interactive" input source; if so, and
245 * if we're using stdio for input, then we want to use getc()
246 * instead of fread(), to make sure we stop fetching input after
249 int yy_is_interactive;
251 /* Whether we're considered to be at the beginning of a line.
252 * If so, '^' rules will be active on the next match, otherwise
257 int yy_bs_lineno; /**< The line count. */
258 int yy_bs_column; /**< The column count. */
260 /* Whether to try to fill the input buffer when we reach the
265 int yy_buffer_status;
267 #define YY_BUFFER_NEW 0
268 #define YY_BUFFER_NORMAL 1
269 /* When an EOF's been seen but there's still some text to process
270 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
271 * shouldn't try reading from the input source any more. We might
272 * still have a bunch of tokens to match, though, because of
273 * possible backing-up.
275 * When we actually see the EOF, we change the status to "new"
276 * (via xbt_graph_parse_restart()), so that the user can continue scanning by
277 * just pointing xbt_graph_parse_in at a new input file.
279 #define YY_BUFFER_EOF_PENDING 2
282 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
284 /* Stack of input buffers. */
285 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
286 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
287 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
289 /* We provide macros for accessing buffer states in case in the
290 * future we want to put the buffer states in a more general
293 * Returns the top of the stack, or NULL.
295 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
296 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
299 /* Same as previous macro, but useful when we know that the buffer stack is not
300 * NULL or when we need an lvalue. For internal use only.
302 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
304 /* yy_hold_char holds the character lost when xbt_graph_parse_text is formed. */
305 static char yy_hold_char;
306 static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
307 yy_size_t xbt_graph_parse_leng;
309 /* Points to current character in buffer. */
310 static char *yy_c_buf_p = (char *) 0;
311 static int yy_init = 0; /* whether we need to initialize */
312 static int yy_start = 0; /* start state number */
314 /* Flag which is used to allow xbt_graph_parse_wrap()'s to do buffer switches
315 * instead of setting up a fresh xbt_graph_parse_in. A bit of a hack ...
317 static int yy_did_buffer_switch_on_eof;
319 void xbt_graph_parse_restart (FILE *input_file );
320 void xbt_graph_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer );
321 YY_BUFFER_STATE xbt_graph_parse__create_buffer (FILE *file,int size );
322 void xbt_graph_parse__delete_buffer (YY_BUFFER_STATE b );
323 void xbt_graph_parse__flush_buffer (YY_BUFFER_STATE b );
324 void xbt_graph_parse_push_buffer_state (YY_BUFFER_STATE new_buffer );
325 void xbt_graph_parse_pop_buffer_state (void );
327 static void xbt_graph_parse_ensure_buffer_stack (void );
328 static void xbt_graph_parse__load_buffer_state (void );
329 static void xbt_graph_parse__init_buffer (YY_BUFFER_STATE b,FILE *file );
331 #define YY_FLUSH_BUFFER xbt_graph_parse__flush_buffer(YY_CURRENT_BUFFER )
333 YY_BUFFER_STATE xbt_graph_parse__scan_buffer (char *base,yy_size_t size );
334 YY_BUFFER_STATE xbt_graph_parse__scan_string (yyconst char *yy_str );
335 YY_BUFFER_STATE xbt_graph_parse__scan_bytes (yyconst char *bytes,yy_size_t len );
337 void *xbt_graph_parse_alloc (yy_size_t );
338 void *xbt_graph_parse_realloc (void *,yy_size_t );
339 void xbt_graph_parse_free (void * );
341 #define yy_new_buffer xbt_graph_parse__create_buffer
343 #define yy_set_interactive(is_interactive) \
345 if ( ! YY_CURRENT_BUFFER ){ \
346 xbt_graph_parse_ensure_buffer_stack (); \
347 YY_CURRENT_BUFFER_LVALUE = \
348 xbt_graph_parse__create_buffer(xbt_graph_parse_in,YY_BUF_SIZE ); \
350 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
353 #define yy_set_bol(at_bol) \
355 if ( ! YY_CURRENT_BUFFER ){\
356 xbt_graph_parse_ensure_buffer_stack (); \
357 YY_CURRENT_BUFFER_LVALUE = \
358 xbt_graph_parse__create_buffer(xbt_graph_parse_in,YY_BUF_SIZE ); \
360 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
363 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
365 /* Begin user sect3 */
367 #define xbt_graph_parse_wrap() 1
368 #define YY_SKIP_YYWRAP
370 typedef unsigned char YY_CHAR;
372 FILE *xbt_graph_parse_in = (FILE *) 0, *xbt_graph_parse_out = (FILE *) 0;
374 typedef int yy_state_type;
376 extern int xbt_graph_parse_lineno;
378 int xbt_graph_parse_lineno = 1;
380 extern char *xbt_graph_parse_text;
381 #define yytext_ptr xbt_graph_parse_text
383 static yy_state_type yy_get_previous_state (void );
384 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
385 static int yy_get_next_buffer (void );
386 static void yy_fatal_error (yyconst char msg[] );
388 /* Done after the current pattern has been matched and before the
389 * corresponding action - sets up xbt_graph_parse_text.
391 #define YY_DO_BEFORE_ACTION \
392 (yytext_ptr) = yy_bp; \
393 xbt_graph_parse_leng = (size_t) (yy_cp - yy_bp); \
394 (yy_hold_char) = *yy_cp; \
396 (yy_c_buf_p) = yy_cp;
398 #define YY_NUM_RULES 92
399 #define YY_END_OF_BUFFER 93
400 /* This struct is not used in this scanner,
401 but its presence is necessary. */
404 flex_int32_t yy_verify;
407 static yyconst flex_int16_t yy_accept[564] =
409 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
410 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
412 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
414 93, 91, 17, 10, 10, 17, 17, 71, 10, 71,
415 5, 6, 5, 8, 9, 8, 87, 79, 80, 88,
416 85, 88, 86, 90, 79, 80, 90, 91, 26, 10,
417 26, 26, 26, 24, 26, 30, 10, 30, 30, 91,
418 91, 30, 91, 45, 10, 45, 45, 45, 43, 45,
420 45, 45, 45, 49, 10, 49, 91, 66, 10, 66,
421 66, 66, 64, 66, 66, 66, 66, 66, 70, 10,
422 70, 88, 87, 10, 0, 2, 2, 0, 4, 7,
423 82, 81, 0, 0, 0, 0, 0, 0, 0, 25,
424 27, 27, 0, 0, 0, 0, 0, 0, 44, 46,
425 46, 46, 46, 46, 0, 65, 67, 67, 67, 67,
426 67, 67, 67, 0, 0, 0, 0, 0, 0, 0,
427 3, 0, 0, 0, 0, 0, 0, 0, 89, 0,
428 27, 0, 0, 0, 0, 0, 0, 0, 46, 46,
429 46, 46, 0, 0, 67, 67, 67, 67, 67, 67,
431 0, 0, 0, 84, 0, 16, 1, 0, 0, 77,
432 0, 0, 0, 74, 73, 0, 0, 27, 0, 0,
433 29, 0, 0, 0, 0, 0, 0, 46, 46, 46,
434 46, 0, 0, 48, 0, 67, 67, 67, 67, 67,
435 67, 0, 0, 69, 0, 0, 0, 0, 78, 72,
436 0, 0, 0, 27, 0, 51, 0, 32, 31, 50,
437 0, 0, 46, 0, 0, 46, 0, 0, 0, 67,
438 67, 0, 0, 67, 67, 0, 0, 0, 0, 0,
439 12, 0, 75, 76, 19, 27, 0, 51, 18, 32,
440 31, 50, 0, 38, 37, 0, 0, 0, 36, 35,
442 46, 0, 0, 63, 62, 0, 0, 67, 0, 55,
443 54, 67, 67, 0, 0, 0, 0, 0, 11, 19,
444 27, 0, 18, 0, 34, 33, 46, 0, 47, 0,
445 53, 52, 0, 0, 0, 0, 0, 0, 0, 68,
446 0, 0, 0, 0, 27, 0, 28, 46, 0, 61,
447 60, 0, 57, 56, 0, 59, 58, 0, 0, 0,
448 0, 27, 46, 83, 0, 0, 0, 27, 46, 46,
449 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
451 40, 39, 0, 42, 41, 0, 0, 0, 0, 0,
453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
456 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
457 0, 0, 0, 12, 0, 12, 0, 0, 21, 0,
458 20, 0, 0, 0, 0, 0, 0, 0, 23, 22,
459 0, 0, 0, 0, 0, 0, 0, 11, 0, 0,
460 0, 0, 0, 0, 0, 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,
464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
465 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
467 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
468 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
469 0, 0, 0, 0, 0, 0, 13, 0, 0, 15,
473 static yyconst flex_int32_t yy_ec[256] =
475 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
476 1, 2, 4, 1, 1, 1, 1, 1, 1, 1,
477 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
478 1, 2, 5, 6, 7, 1, 1, 8, 9, 1,
479 1, 1, 1, 1, 10, 11, 12, 13, 13, 13,
480 13, 13, 13, 13, 13, 13, 13, 14, 15, 16,
481 17, 18, 19, 1, 20, 21, 22, 23, 24, 21,
482 14, 14, 14, 14, 14, 14, 25, 14, 26, 27,
483 14, 14, 28, 29, 14, 14, 14, 14, 30, 14,
484 31, 1, 32, 1, 33, 1, 34, 35, 36, 37,
486 38, 39, 40, 41, 42, 14, 14, 43, 44, 45,
487 46, 47, 48, 49, 50, 51, 52, 53, 14, 54,
488 55, 14, 1, 1, 1, 1, 1, 1, 1, 1,
489 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
490 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
491 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
492 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
493 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
494 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
495 1, 1, 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,
505 static yyconst flex_int32_t yy_meta[56] =
507 1, 2, 2, 2, 1, 1, 1, 1, 1, 3,
508 3, 1, 4, 5, 1, 1, 1, 6, 1, 7,
509 7, 7, 7, 7, 5, 5, 5, 5, 5, 5,
510 1, 1, 5, 7, 7, 7, 7, 7, 7, 5,
511 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
515 static yyconst flex_int16_t yy_base[594] =
517 0, 0, 0, 3, 6, 9, 24, 27, 11, 14,
518 15, 17, 29, 38, 45, 52, 59, 61, 67, 70,
519 93, 135, 73, 76, 111, 114, 117, 153, 156, 159,
520 176, 179, 182, 185, 200, 203, 206, 209, 225, 0,
521 279, 282, 285, 288, 304, 0, 358, 361, 363, 365,
522 1585, 1586, 1586, 380, 383, 47, 62, 1586, 386, 171,
523 1586, 1586, 1574, 1586, 1586, 1565, 1586, 1578, 1578, 365,
524 1586, 1586, 1586, 1586, 1576, 1576, 1546, 375, 1586, 389,
525 1559, 0, 195, 1586, 1526, 1586, 398, 391, 399, 402,
526 411, 414, 393, 1586, 420, 1557, 0, 401, 1586, 1540,
528 1539, 1538, 1525, 1586, 458, 422, 427, 1586, 464, 1552,
529 0, 409, 1586, 1535, 1, 1534, 1521, 1532, 1586, 467,
530 438, 1560, 1532, 470, 34, 1509, 1586, 1552, 1543, 1586,
531 1586, 1586, 69, 40, 1509, 1508, 1506, 1539, 1507, 1586,
532 0, 1532, 1514, 1516, 1503, 1505, 1504, 1512, 1586, 0,
533 1497, 1512, 1502, 1495, 1499, 1586, 0, 1492, 1507, 1496,
534 1496, 1487, 1489, 1499, 1505, 1517, 1516, 1523, 108, 1488,
535 1586, 75, 0, 1484, 1484, 1514, 1513, 1481, 1586, 1492,
536 1483, 473, 476, 1484, 1489, 1485, 1484, 1480, 1485, 1480,
537 1479, 1474, 479, 482, 1481, 1476, 1473, 1474, 1462, 1470,
539 485, 502, 1487, 1586, 1490, 1586, 1586, 110, 1464, 1586,
540 1491, 1490, 1454, 1586, 1586, 1452, 1455, 1452, 505, 508,
541 1586, 511, 1462, 1452, 1460, 1459, 1458, 514, 1452, 530,
542 1443, 533, 538, 1586, 546, 550, 1450, 1373, 555, 1387,
543 1375, 558, 566, 1586, 571, 1387, 435, 575, 1586, 1586,
544 1392, 1389, 1356, 1354, 578, 583, 1346, 588, 595, 598,
545 601, 604, 612, 617, 624, 1263, 620, 633, 637, 645,
546 1263, 649, 661, 1264, 1250, 653, 1280, 472, 1280, 657,
547 1586, 1279, 1586, 1586, 670, 1260, 674, 677, 680, 683,
548 686, 694, 697, 1586, 1586, 705, 710, 721, 1586, 1586,
550 1248, 729, 732, 1586, 1586, 740, 746, 756, 759, 1586,
551 1586, 767, 772, 775, 1264, 32, 104, 153, 1586, 778,
552 1226, 783, 788, 793, 1586, 1586, 1230, 801, 1586, 804,
553 1586, 1586, 812, 818, 828, 831, 839, 844, 855, 1586,
554 1234, 146, 179, 147, 1212, 858, 1586, 1215, 861, 1586,
555 1586, 875, 1586, 1586, 883, 1586, 1586, 1111, 891, 175,
556 445, 1066, 119, 1586, 894, 181, 89, 897, 900, 903,
557 501, 360, 399, 480, 475, 919, 922, 938, 941, 949,
558 954, 506, 509, 526, 599, 624, 965, 654, 678, 973,
559 1586, 1586, 981, 1586, 1586, 417, 176, 594, 548, 989,
561 1058, 1003, 1016, 937, 992, 407, 995, 998, 1001, 1018,
562 930, 918, 922, 910, 1026, 1029, 1035, 1038, 1055, 1063,
563 1081, 1113, 819, 790, 733, 616, 710, 1073, 721, 1131,
564 748, 284, 1149, 1181, 557, 565, 458, 449, 537, 770,
565 676, 805, 278, 369, 285, 291, 1076, 293, 1586, 211,
566 1586, 708, 693, 727, 162, 110, 76, 1105, 1586, 1586,
567 352, 735, 794, 5, 199, 820, 474, 1586, 1144, 850,
568 1173, 1199, 1207, 1212, 591, 754, 1220, 799, 831, 749,
569 833, 834, 848, 862, 897, 684, 791, 900, 912, 895,
570 901, 483, 808, 920, 930, 836, 890, 627, 892, 941,
572 962, 971, 993, 818, 873, 1005, 1007, 954, 960, 702,
573 872, 963, 1008, 1027, 1092, 1017, 1025, 1151, 1160, 1031,
574 1084, 1093, 1152, 1176, 1188, 1161, 1209, 1033, 1087, 1217,
575 1221, 1123, 1155, 1088, 1108, 1215, 1216, 1120, 1156, 1218,
576 1219, 1222, 1223, 1224, 1225, 1239, 1240, 1226, 1228, 1241,
577 1242, 1264, 1258, 1260, 1268, 1277, 1586, 1281, 1285, 1586,
578 1288, 1586, 1586, 1306, 1313, 1320, 1327, 1334, 1341, 1348,
579 1355, 1362, 1369, 1376, 1381, 1386, 1391, 1398, 1401, 1404,
580 1407, 1414, 1418, 1424, 1430, 1436, 1443, 1450, 1457, 1464,
585 static yyconst flex_int16_t yy_def[594] =
587 564, 564, 565, 565, 565, 565, 566, 566, 567, 567,
588 568, 568, 569, 569, 569, 569, 570, 570, 564, 564,
589 571, 571, 572, 572, 572, 572, 564, 564, 572, 572,
590 564, 564, 572, 572, 572, 572, 564, 564, 563, 39,
591 573, 573, 564, 564, 563, 45, 574, 574, 569, 569,
592 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
593 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
594 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
595 563, 575, 563, 563, 575, 563, 563, 563, 563, 563,
596 563, 563, 563, 563, 563, 563, 576, 563, 563, 576,
598 576, 576, 576, 563, 563, 563, 563, 563, 563, 563,
599 577, 563, 563, 577, 577, 577, 577, 577, 563, 563,
600 563, 563, 563, 563, 578, 563, 563, 563, 563, 563,
601 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
602 575, 575, 579, 563, 563, 563, 563, 563, 563, 576,
603 576, 576, 576, 576, 580, 563, 577, 577, 577, 577,
604 577, 577, 577, 581, 563, 563, 582, 563, 582, 563,
605 563, 563, 583, 563, 563, 563, 563, 563, 563, 563,
606 575, 584, 584, 563, 563, 563, 563, 563, 576, 576,
607 576, 576, 585, 585, 577, 577, 577, 577, 577, 577,
609 586, 586, 563, 563, 582, 563, 563, 582, 563, 563,
610 583, 563, 563, 563, 563, 563, 563, 575, 563, 584,
611 563, 584, 563, 563, 563, 563, 563, 576, 576, 576,
612 576, 563, 585, 563, 585, 577, 577, 577, 577, 577,
613 577, 563, 586, 563, 586, 563, 582, 587, 563, 563,
614 563, 563, 563, 575, 584, 563, 563, 563, 563, 563,
615 563, 563, 576, 563, 563, 576, 585, 563, 563, 577,
616 577, 563, 563, 577, 577, 586, 563, 582, 587, 587,
617 563, 587, 563, 563, 563, 575, 584, 563, 563, 563,
618 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
620 576, 585, 563, 563, 563, 563, 563, 577, 563, 563,
621 563, 577, 577, 586, 563, 582, 587, 587, 563, 563,
622 575, 584, 563, 563, 563, 563, 576, 563, 563, 563,
623 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
624 563, 582, 587, 587, 575, 563, 563, 576, 563, 563,
625 563, 563, 563, 563, 563, 563, 563, 563, 582, 587,
626 587, 575, 576, 563, 582, 587, 587, 575, 576, 576,
627 582, 582, 582, 587, 587, 563, 563, 563, 563, 563,
628 563, 582, 582, 582, 587, 587, 563, 563, 563, 563,
629 563, 563, 563, 563, 563, 582, 582, 582, 587, 587,
631 563, 563, 563, 563, 582, 582, 582, 587, 587, 587,
632 563, 563, 563, 563, 582, 582, 582, 587, 587, 587,
633 588, 589, 563, 563, 563, 563, 582, 582, 582, 587,
634 590, 591, 588, 589, 563, 563, 563, 563, 582, 582,
635 582, 590, 587, 592, 591, 593, 587, 563, 563, 563,
636 563, 582, 582, 582, 592, 563, 593, 587, 563, 563,
637 582, 582, 582, 563, 582, 582, 582, 563, 582, 582,
638 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
639 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
640 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
642 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
643 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
644 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
645 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
646 582, 582, 582, 582, 582, 582, 582, 582, 582, 582,
647 582, 582, 582, 582, 582, 582, 563, 582, 582, 563,
648 582, 563, 0, 563, 563, 563, 563, 563, 563, 563,
649 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
650 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
655 static yyconst flex_int16_t yy_nxt[1642] =
657 563, 54, 55, 54, 54, 55, 54, 54, 55, 54,
658 54, 55, 54, 62, 563, 56, 62, 65, 56, 65,
659 63, 57, 468, 63, 57, 59, 55, 59, 59, 55,
660 59, 68, 69, 66, 159, 66, 70, 71, 160, 60,
661 68, 69, 60, 168, 72, 70, 71, 68, 69, 206,
662 73, 125, 70, 72, 68, 69, 169, 73, 342, 70,
663 72, 75, 76, 75, 76, 126, 125, 72, 55, 55,
664 55, 55, 55, 55, 87, 55, 87, 87, 55, 87,
665 127, 172, 78, 174, 456, 78, 175, 172, 88, 210,
666 77, 88, 77, 79, 80, 55, 80, 79, 79, 79,
668 79, 79, 79, 79, 81, 79, 281, 79, 83, 79,
669 84, 79, 87, 55, 87, 87, 55, 87, 55, 55,
670 55, 281, 173, 79, 79, 206, 89, 206, 464, 89,
671 375, 247, 90, 208, 85, 79, 80, 55, 80, 79,
672 79, 79, 79, 79, 79, 79, 81, 79, 343, 79,
673 83, 79, 84, 79, 55, 55, 55, 87, 55, 87,
674 87, 55, 87, 206, 281, 79, 79, 456, 90, 359,
675 281, 88, 369, 370, 88, 128, 85, 55, 55, 55,
676 55, 55, 55, 87, 55, 87, 87, 55, 87, 127,
677 344, 91, 281, 206, 91, 361, 281, 89, 281, 128,
679 89, 87, 55, 87, 87, 55, 87, 55, 55, 55,
680 55, 55, 55, 127, 360, 92, 206, 374, 92, 460,
681 366, 93, 406, 469, 93, 94, 95, 55, 95, 94,
682 94, 94, 94, 94, 94, 94, 96, 94, 97, 94,
683 98, 94, 99, 94, 97, 97, 97, 97, 97, 97,
684 97, 97, 97, 97, 97, 94, 94, 97, 97, 97,
685 97, 100, 97, 97, 97, 97, 97, 101, 97, 102,
686 97, 103, 97, 97, 97, 97, 97, 97, 97, 97,
687 105, 55, 105, 105, 55, 105, 55, 55, 55, 55,
688 55, 55, 443, 443, 106, 281, 282, 106, 459, 456,
690 107, 446, 446, 107, 108, 109, 55, 109, 108, 108,
691 108, 108, 108, 108, 108, 110, 108, 111, 108, 112,
692 108, 113, 108, 111, 111, 111, 111, 111, 111, 111,
693 111, 111, 111, 111, 108, 108, 111, 111, 111, 111,
694 114, 111, 111, 111, 111, 111, 115, 111, 116, 111,
695 111, 111, 111, 117, 118, 111, 111, 111, 111, 120,
696 55, 120, 120, 55, 120, 68, 69, 68, 69, 206,
697 70, 133, 70, 121, 456, 465, 121, 206, 122, 128,
698 122, 124, 124, 124, 124, 124, 124, 124, 124, 124,
699 124, 124, 124, 127, 123, 128, 123, 128, 134, 124,
701 124, 124, 143, 128, 135, 128, 128, 136, 383, 127,
702 143, 127, 137, 128, 139, 128, 206, 127, 128, 127,
703 127, 124, 124, 124, 206, 143, 128, 127, 144, 127,
704 145, 128, 127, 155, 206, 146, 144, 146, 145, 148,
705 127, 145, 128, 147, 384, 127, 146, 416, 144, 164,
706 145, 148, 206, 145, 405, 147, 127, 451, 147, 124,
707 124, 124, 281, 278, 144, 124, 124, 124, 124, 124,
708 124, 124, 124, 124, 219, 219, 219, 219, 219, 219,
709 232, 232, 232, 232, 232, 232, 242, 242, 242, 206,
710 221, 206, 281, 221, 367, 450, 234, 281, 471, 234,
712 206, 316, 244, 242, 242, 242, 219, 219, 219, 219,
713 219, 219, 219, 219, 219, 261, 261, 261, 206, 244,
714 386, 385, 221, 206, 222, 221, 206, 235, 221, 498,
715 262, 264, 264, 264, 232, 232, 232, 382, 245, 232,
716 232, 232, 397, 206, 255, 396, 265, 232, 232, 232,
717 234, 268, 268, 268, 206, 234, 272, 272, 272, 242,
718 242, 242, 398, 234, 452, 281, 269, 242, 242, 242,
719 449, 273, 242, 242, 242, 244, 280, 280, 280, 219,
720 219, 219, 267, 244, 288, 288, 288, 408, 244, 290,
721 290, 290, 281, 282, 448, 221, 291, 291, 291, 292,
723 292, 292, 261, 261, 261, 293, 293, 293, 206, 294,
724 276, 206, 295, 296, 296, 296, 281, 262, 264, 264,
725 264, 232, 232, 232, 287, 298, 298, 298, 297, 299,
726 480, 407, 300, 265, 268, 268, 268, 234, 303, 303,
727 303, 281, 304, 399, 206, 305, 306, 306, 306, 269,
728 272, 272, 272, 438, 242, 242, 242, 302, 280, 280,
729 280, 307, 309, 309, 309, 273, 310, 504, 400, 311,
730 244, 320, 320, 320, 281, 219, 219, 219, 288, 288,
731 288, 323, 323, 323, 290, 290, 290, 291, 291, 291,
732 314, 221, 401, 206, 317, 292, 292, 292, 293, 293,
734 293, 206, 294, 454, 402, 295, 296, 296, 296, 318,
735 206, 324, 324, 324, 322, 325, 403, 492, 326, 206,
736 462, 297, 298, 298, 298, 206, 299, 206, 404, 300,
737 328, 328, 328, 303, 303, 303, 461, 304, 206, 439,
738 305, 306, 306, 306, 206, 516, 329, 330, 330, 330,
739 441, 331, 206, 443, 332, 463, 307, 333, 333, 333,
740 309, 309, 309, 466, 310, 444, 206, 311, 335, 335,
741 335, 206, 334, 337, 337, 337, 339, 339, 339, 320,
742 320, 320, 437, 336, 346, 346, 346, 206, 338, 323,
743 323, 323, 340, 481, 324, 324, 324, 486, 325, 453,
745 347, 326, 328, 328, 328, 330, 330, 330, 206, 331,
746 443, 206, 332, 333, 333, 333, 206, 467, 329, 349,
747 349, 349, 444, 350, 493, 206, 351, 436, 334, 335,
748 335, 335, 352, 352, 352, 206, 353, 206, 484, 354,
749 337, 337, 337, 470, 336, 355, 355, 355, 206, 356,
750 206, 206, 357, 206, 499, 338, 339, 339, 339, 346,
751 346, 346, 349, 349, 349, 206, 350, 206, 435, 351,
752 485, 510, 340, 488, 473, 347, 352, 352, 352, 206,
753 353, 487, 502, 354, 355, 355, 355, 489, 356, 206,
754 206, 357, 365, 365, 365, 365, 365, 365, 376, 376,
756 376, 378, 378, 378, 380, 380, 380, 206, 206, 206,
757 490, 206, 206, 377, 206, 517, 379, 206, 206, 381,
758 376, 376, 376, 387, 387, 387, 511, 388, 496, 206,
759 389, 371, 505, 372, 497, 377, 503, 206, 373, 378,
760 378, 378, 390, 390, 390, 491, 391, 206, 494, 392,
761 380, 380, 380, 500, 379, 393, 393, 393, 206, 394,
762 495, 426, 395, 501, 425, 381, 387, 387, 387, 424,
763 388, 206, 423, 389, 390, 390, 390, 206, 391, 206,
764 206, 392, 393, 393, 393, 414, 394, 506, 206, 395,
765 409, 409, 409, 415, 415, 415, 417, 417, 417, 418,
767 418, 418, 409, 409, 409, 410, 281, 514, 507, 206,
768 206, 508, 206, 515, 419, 281, 518, 410, 281, 420,
769 420, 420, 206, 421, 206, 206, 422, 415, 415, 415,
770 428, 428, 428, 509, 206, 281, 417, 417, 417, 418,
771 418, 418, 206, 206, 206, 512, 206, 513, 206, 413,
772 206, 412, 206, 427, 419, 281, 430, 430, 430, 522,
773 431, 519, 429, 432, 420, 420, 420, 523, 421, 534,
774 520, 422, 281, 526, 428, 428, 428, 458, 458, 458,
775 281, 279, 279, 279, 279, 279, 279, 279, 279, 279,
776 206, 411, 279, 281, 282, 279, 279, 279, 281, 279,
778 440, 206, 368, 528, 206, 206, 458, 458, 458, 206,
779 206, 279, 279, 279, 279, 279, 279, 279, 279, 279,
780 279, 279, 281, 535, 279, 206, 527, 279, 279, 279,
781 281, 279, 430, 430, 430, 521, 431, 206, 540, 432,
782 206, 364, 317, 279, 279, 472, 472, 472, 281, 279,
783 279, 279, 279, 279, 447, 279, 279, 279, 541, 538,
784 279, 206, 529, 279, 279, 279, 281, 279, 206, 206,
785 544, 532, 206, 206, 474, 474, 474, 206, 206, 279,
786 279, 279, 279, 279, 279, 279, 279, 279, 279, 447,
787 206, 539, 279, 206, 524, 279, 279, 279, 281, 279,
789 472, 472, 472, 525, 475, 206, 545, 476, 477, 477,
790 477, 279, 279, 474, 474, 474, 206, 478, 530, 533,
791 479, 477, 477, 477, 206, 482, 206, 536, 483, 206,
792 531, 537, 206, 206, 206, 206, 206, 206, 206, 206,
793 206, 206, 206, 206, 552, 206, 555, 363, 552, 362,
794 555, 542, 543, 358, 546, 547, 206, 206, 206, 206,
795 550, 551, 553, 558, 554, 556, 556, 556, 558, 559,
796 559, 559, 548, 549, 348, 206, 345, 206, 556, 556,
797 556, 557, 561, 561, 561, 560, 559, 559, 559, 561,
798 561, 561, 341, 327, 557, 321, 319, 281, 562, 315,
800 313, 312, 560, 308, 301, 562, 52, 52, 52, 52,
801 52, 52, 52, 53, 53, 53, 53, 53, 53, 53,
802 58, 58, 58, 58, 58, 58, 58, 61, 61, 61,
803 61, 61, 61, 61, 64, 64, 64, 64, 64, 64,
804 64, 67, 67, 67, 67, 67, 67, 67, 74, 74,
805 74, 74, 74, 74, 74, 82, 82, 82, 82, 82,
806 82, 82, 86, 86, 86, 86, 86, 86, 86, 104,
807 104, 104, 104, 104, 104, 104, 119, 119, 119, 119,
808 119, 119, 119, 141, 141, 141, 289, 141, 150, 150,
809 150, 286, 150, 157, 157, 157, 285, 157, 167, 167,
811 167, 167, 167, 284, 167, 182, 283, 182, 193, 277,
812 193, 201, 275, 201, 205, 205, 205, 205, 205, 205,
813 205, 211, 274, 271, 211, 220, 220, 220, 220, 220,
814 220, 233, 233, 233, 233, 233, 233, 243, 243, 243,
815 243, 243, 243, 279, 279, 279, 279, 279, 279, 279,
816 433, 433, 433, 433, 433, 433, 433, 434, 434, 434,
817 434, 434, 434, 434, 442, 442, 442, 442, 442, 442,
818 442, 445, 445, 445, 445, 445, 445, 445, 455, 455,
819 455, 455, 455, 455, 455, 457, 457, 457, 457, 457,
820 457, 457, 270, 266, 263, 260, 259, 258, 257, 256,
822 254, 253, 252, 251, 250, 249, 248, 206, 246, 241,
823 240, 239, 238, 237, 236, 231, 230, 229, 228, 227,
824 226, 225, 224, 223, 218, 217, 216, 215, 214, 213,
825 212, 209, 207, 206, 204, 203, 202, 200, 199, 198,
826 197, 196, 195, 194, 192, 191, 190, 189, 188, 187,
827 186, 185, 184, 183, 181, 180, 179, 178, 177, 176,
828 171, 168, 170, 166, 165, 163, 162, 161, 158, 156,
829 154, 153, 152, 151, 149, 142, 140, 138, 132, 131,
830 132, 131, 130, 129, 563, 51, 563, 563, 563, 563,
831 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
833 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
834 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
835 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
836 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
840 static yyconst flex_int16_t yy_chk[1642] =
842 0, 3, 3, 3, 4, 4, 4, 5, 5, 5,
843 6, 6, 6, 9, 0, 3, 10, 11, 4, 12,
844 9, 5, 464, 10, 6, 7, 7, 7, 8, 8,
845 8, 13, 13, 11, 115, 12, 13, 13, 115, 7,
846 14, 14, 8, 125, 13, 14, 14, 15, 15, 316,
847 15, 56, 15, 14, 16, 16, 125, 16, 316, 16,
848 15, 17, 17, 18, 18, 56, 57, 16, 19, 19,
849 19, 20, 20, 20, 23, 23, 23, 24, 24, 24,
850 57, 133, 19, 134, 457, 20, 134, 172, 23, 172,
851 17, 24, 18, 21, 21, 21, 21, 21, 21, 21,
853 21, 21, 21, 21, 21, 21, 367, 21, 21, 21,
854 21, 21, 25, 25, 25, 26, 26, 26, 27, 27,
855 27, 317, 133, 21, 21, 169, 25, 208, 456, 26,
856 367, 208, 27, 169, 21, 22, 22, 22, 22, 22,
857 22, 22, 22, 22, 22, 22, 22, 22, 317, 22,
858 22, 22, 22, 22, 28, 28, 28, 29, 29, 29,
859 30, 30, 30, 342, 344, 22, 22, 455, 28, 342,
860 318, 29, 363, 363, 30, 60, 22, 31, 31, 31,
861 32, 32, 32, 33, 33, 33, 34, 34, 34, 60,
862 318, 31, 360, 397, 32, 344, 343, 33, 366, 83,
864 34, 35, 35, 35, 36, 36, 36, 37, 37, 37,
865 38, 38, 38, 83, 343, 35, 465, 366, 36, 450,
866 360, 37, 397, 465, 38, 39, 39, 39, 39, 39,
867 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
868 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
869 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
870 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
871 39, 39, 39, 39, 39, 39, 39, 39, 39, 39,
872 41, 41, 41, 42, 42, 42, 43, 43, 43, 44,
873 44, 44, 432, 445, 41, 443, 443, 42, 448, 446,
875 43, 432, 445, 44, 45, 45, 45, 45, 45, 45,
876 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
877 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
878 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
879 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,
880 45, 45, 45, 45, 45, 45, 45, 45, 45, 47,
881 47, 47, 48, 48, 48, 49, 49, 50, 50, 461,
882 49, 70, 50, 47, 444, 461, 48, 372, 49, 78,
883 50, 54, 54, 54, 55, 55, 55, 59, 59, 59,
884 80, 80, 80, 78, 49, 88, 50, 93, 70, 87,
886 87, 87, 88, 89, 70, 98, 90, 70, 372, 88,
887 89, 93, 70, 112, 78, 91, 373, 89, 92, 98,
888 90, 95, 95, 95, 406, 92, 106, 112, 88, 91,
889 88, 107, 92, 106, 396, 88, 89, 93, 89, 90,
890 106, 90, 121, 89, 373, 107, 90, 406, 91, 121,
891 91, 92, 247, 92, 396, 91, 121, 438, 92, 105,
892 105, 105, 361, 247, 107, 109, 109, 109, 120, 120,
893 120, 124, 124, 124, 182, 182, 182, 183, 183, 183,
894 193, 193, 193, 194, 194, 194, 201, 201, 201, 278,
895 182, 467, 375, 183, 361, 437, 193, 374, 467, 194,
897 492, 278, 201, 202, 202, 202, 219, 219, 219, 220,
898 220, 220, 222, 222, 222, 228, 228, 228, 371, 202,
899 375, 374, 219, 382, 183, 220, 383, 194, 222, 492,
900 228, 230, 230, 230, 232, 232, 232, 371, 202, 233,
901 233, 233, 383, 384, 222, 382, 230, 235, 235, 235,
902 232, 236, 236, 236, 439, 233, 239, 239, 239, 242,
903 242, 242, 384, 235, 439, 399, 236, 243, 243, 243,
904 436, 239, 245, 245, 245, 242, 248, 248, 248, 255,
905 255, 255, 235, 243, 256, 256, 256, 399, 245, 258,
906 258, 258, 248, 248, 435, 255, 259, 259, 259, 260,
908 260, 260, 261, 261, 261, 262, 262, 262, 475, 262,
909 245, 398, 262, 263, 263, 263, 385, 261, 264, 264,
910 264, 267, 267, 267, 255, 265, 265, 265, 263, 265,
911 475, 398, 265, 264, 268, 268, 268, 267, 269, 269,
912 269, 386, 269, 385, 498, 269, 270, 270, 270, 268,
913 272, 272, 272, 426, 276, 276, 276, 267, 280, 280,
914 280, 270, 273, 273, 273, 272, 273, 498, 386, 273,
915 276, 285, 285, 285, 280, 287, 287, 287, 288, 288,
916 288, 289, 289, 289, 290, 290, 290, 291, 291, 291,
917 276, 287, 388, 441, 280, 292, 292, 292, 293, 293,
919 293, 486, 293, 441, 388, 293, 296, 296, 296, 280,
920 453, 297, 297, 297, 287, 297, 389, 486, 297, 510,
921 453, 296, 298, 298, 298, 452, 298, 427, 389, 298,
922 302, 302, 302, 303, 303, 303, 452, 303, 429, 427,
923 303, 306, 306, 306, 454, 510, 302, 307, 307, 307,
924 429, 307, 462, 431, 307, 454, 306, 308, 308, 308,
925 309, 309, 309, 462, 309, 431, 480, 309, 312, 312,
926 312, 476, 308, 313, 313, 313, 314, 314, 314, 320,
927 320, 320, 425, 312, 322, 322, 322, 440, 313, 323,
928 323, 323, 314, 476, 324, 324, 324, 480, 324, 440,
930 322, 324, 328, 328, 328, 330, 330, 330, 487, 330,
931 442, 463, 330, 333, 333, 333, 478, 463, 328, 334,
932 334, 334, 442, 334, 487, 493, 334, 424, 333, 335,
933 335, 335, 336, 336, 336, 504, 336, 466, 478, 336,
934 337, 337, 337, 466, 335, 338, 338, 338, 479, 338,
935 481, 482, 338, 496, 493, 337, 339, 339, 339, 346,
936 346, 346, 349, 349, 349, 483, 349, 470, 423, 349,
937 479, 504, 339, 482, 470, 346, 352, 352, 352, 484,
938 352, 481, 496, 352, 355, 355, 355, 483, 355, 511,
939 505, 355, 359, 359, 359, 365, 365, 365, 368, 368,
941 368, 369, 369, 369, 370, 370, 370, 497, 359, 499,
942 484, 365, 490, 368, 485, 511, 369, 488, 491, 370,
943 376, 376, 376, 377, 377, 377, 505, 377, 490, 489,
944 377, 365, 499, 365, 491, 376, 497, 494, 365, 378,
945 378, 378, 379, 379, 379, 485, 379, 495, 488, 379,
946 380, 380, 380, 494, 378, 381, 381, 381, 500, 381,
947 489, 414, 381, 495, 413, 380, 387, 387, 387, 412,
948 387, 508, 411, 387, 390, 390, 390, 509, 390, 501,
949 512, 390, 393, 393, 393, 404, 393, 500, 502, 393,
950 400, 400, 400, 405, 405, 405, 407, 407, 407, 408,
952 408, 408, 409, 409, 409, 400, 400, 508, 501, 405,
953 503, 502, 407, 509, 408, 408, 512, 409, 409, 410,
954 410, 410, 506, 410, 507, 513, 410, 415, 415, 415,
955 416, 416, 416, 503, 516, 410, 417, 417, 417, 418,
956 418, 418, 517, 415, 514, 506, 416, 507, 520, 403,
957 528, 402, 417, 415, 418, 418, 419, 419, 419, 516,
958 419, 513, 417, 419, 420, 420, 420, 517, 420, 528,
959 514, 420, 419, 520, 428, 428, 428, 447, 447, 447,
960 420, 421, 421, 421, 421, 421, 421, 421, 421, 421,
961 428, 401, 421, 447, 447, 421, 421, 421, 421, 421,
963 428, 521, 362, 522, 529, 534, 458, 458, 458, 515,
964 522, 421, 421, 422, 422, 422, 422, 422, 422, 422,
965 422, 422, 458, 529, 422, 535, 521, 422, 422, 422,
966 422, 422, 430, 430, 430, 515, 430, 538, 534, 430,
967 532, 358, 458, 422, 422, 469, 469, 469, 430, 433,
968 433, 433, 433, 433, 433, 433, 433, 433, 535, 532,
969 433, 469, 523, 433, 433, 433, 433, 433, 518, 523,
970 538, 526, 533, 539, 471, 471, 471, 519, 526, 433,
971 433, 434, 434, 434, 434, 434, 434, 434, 434, 434,
972 471, 533, 434, 524, 518, 434, 434, 434, 434, 434,
974 472, 472, 472, 519, 472, 525, 539, 472, 473, 473,
975 473, 434, 434, 474, 474, 474, 472, 474, 524, 527,
976 474, 477, 477, 477, 473, 477, 527, 530, 477, 474,
977 525, 531, 536, 537, 530, 540, 541, 477, 531, 542,
978 543, 544, 545, 548, 546, 549, 550, 348, 547, 345,
979 551, 536, 537, 341, 540, 541, 546, 547, 550, 551,
980 544, 545, 548, 553, 549, 552, 552, 552, 554, 555,
981 555, 555, 542, 543, 327, 553, 321, 554, 556, 556,
982 556, 552, 558, 558, 558, 555, 559, 559, 559, 561,
983 561, 561, 315, 301, 556, 286, 282, 279, 558, 277,
985 275, 274, 559, 271, 266, 561, 564, 564, 564, 564,
986 564, 564, 564, 565, 565, 565, 565, 565, 565, 565,
987 566, 566, 566, 566, 566, 566, 566, 567, 567, 567,
988 567, 567, 567, 567, 568, 568, 568, 568, 568, 568,
989 568, 569, 569, 569, 569, 569, 569, 569, 570, 570,
990 570, 570, 570, 570, 570, 571, 571, 571, 571, 571,
991 571, 571, 572, 572, 572, 572, 572, 572, 572, 573,
992 573, 573, 573, 573, 573, 573, 574, 574, 574, 574,
993 574, 574, 574, 575, 575, 575, 257, 575, 576, 576,
994 576, 254, 576, 577, 577, 577, 253, 577, 578, 578,
996 578, 578, 578, 252, 578, 579, 251, 579, 580, 246,
997 580, 581, 241, 581, 582, 582, 582, 582, 582, 582,
998 582, 583, 240, 238, 583, 584, 584, 584, 584, 584,
999 584, 585, 585, 585, 585, 585, 585, 586, 586, 586,
1000 586, 586, 586, 587, 587, 587, 587, 587, 587, 587,
1001 588, 588, 588, 588, 588, 588, 588, 589, 589, 589,
1002 589, 589, 589, 589, 590, 590, 590, 590, 590, 590,
1003 590, 591, 591, 591, 591, 591, 591, 591, 592, 592,
1004 592, 592, 592, 592, 592, 593, 593, 593, 593, 593,
1005 593, 593, 237, 231, 229, 227, 226, 225, 224, 223,
1007 218, 217, 216, 213, 212, 211, 209, 205, 203, 200,
1008 199, 198, 197, 196, 195, 192, 191, 190, 189, 188,
1009 187, 186, 185, 184, 181, 180, 178, 177, 176, 175,
1010 174, 170, 168, 167, 166, 165, 164, 163, 162, 161,
1011 160, 159, 158, 155, 154, 153, 152, 151, 148, 147,
1012 146, 145, 144, 143, 142, 139, 138, 137, 136, 135,
1013 129, 128, 126, 123, 122, 118, 117, 116, 114, 110,
1014 103, 102, 101, 100, 96, 85, 81, 77, 76, 75,
1015 69, 68, 66, 63, 51, 563, 563, 563, 563, 563,
1016 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
1018 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
1019 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
1020 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
1021 563, 563, 563, 563, 563, 563, 563, 563, 563, 563,
1025 /* Table of booleans, true if rule could match eol. */
1026 static yyconst flex_int32_t yy_rule_can_match_eol[93] =
1028 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1,
1029 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1030 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1031 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
1032 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, };
1034 static yy_state_type yy_last_accepting_state;
1035 static char *yy_last_accepting_cpos;
1037 extern int xbt_graph_parse__flex_debug;
1038 int xbt_graph_parse__flex_debug = 0;
1040 /* The intent behind this definition is that it'll catch
1041 * any uses of REJECT which flex missed.
1043 #define REJECT reject_used_but_not_detected
1044 #define yymore() yymore_used_but_not_detected
1045 #define YY_MORE_ADJ 0
1046 #define YY_RESTORE_YY_MORE_OFFSET
1047 char *xbt_graph_parse_text;
1048 /* Validating XML processor for src/xbt/graphxml.dtd.
1050 * This program was generated with the FleXML XML processor generator.
1051 * FleXML is Copyright (C) 1999-2005 Kristoffer Rose. All rights reserved.
1052 * FleXML is Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
1055 * There are two, intertwined parts to this program, part A and part B.
1060 * Some parts, here collectively called "Part A", are found in the
1061 * FleXML package. They are Copyright (C) 1999-2005 Kristoffer Rose
1062 * and Copyright (C) 2003-2013 Martin Quinson. All rights reserved.
1064 * You can redistribute, use, perform, display and/or modify "Part A"
1065 * provided the following two conditions hold:
1067 * 1. The program is distributed WITHOUT ANY WARRANTY from the author of
1068 * FleXML; without even the implied warranty of MERCHANTABILITY or
1069 * FITNESS FOR A PARTICULAR PURPOSE.
1071 * 2. The program distribution conditions do not in any way affect the
1072 * distribution conditions of the FleXML system used to generate this
1073 * file or any version of FleXML derived from that system.
1075 * Notice that these are explicit rights granted to you for files
1076 * generated by the FleXML system. For your rights in connection with
1077 * the FleXML system itself please consult the GNU General Public License.
1082 * The other parts, here collectively called "Part B", and which came
1083 * from the DTD used by FleXML to generate this program, can be
1084 * distributed (or not, as the case may be) under the terms of whoever
1085 * wrote them, provided these terms respect and obey the two conditions
1086 * above under the heading "Part A".
1088 * The author of and contributors to FleXML specifically disclaim
1089 * any copyright interest in "Part B", unless "Part B" was written
1090 * by the author of or contributors to FleXML.
1094 /* Version strings. */
1095 const char graphxml_flexml_version[] = "1.9.6";
1098 #include <stdlib.h> /* for realloc() -- needed here when using flex 2.5.4 */
1105 #if defined(_XBT_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__TOS_WIN__)
1106 # ifndef __STRICT_ANSI__
1108 # include <process.h>
1111 # include <unistd.h>
1114 #ifndef FLEXML_INDEXSTACKSIZE
1115 #define FLEXML_INDEXSTACKSIZE 1000
1118 /* Generated definitions. */
1119 #define FLEXML_yylineno
1120 #ifndef FLEXML_BUFFERSTACKSIZE
1121 #define FLEXML_BUFFERSTACKSIZE 1000000
1123 #define FLEXML_NEED_BUFFERLIT
1125 /* XML processor api. */
1126 /* FleXML-provided data. */
1127 int graphxml_pcdata_ix;
1128 extern char *graphxml_bufferstack;
1129 #define graphxml_pcdata (graphxml_bufferstack + graphxml_pcdata_ix)
1130 AT_graphxml_node_name AX_graphxml_node_name;
1131 #define A_graphxml_node_name (graphxml_bufferstack + AX_graphxml_node_name)
1132 short int graphxml_node_name_isset;
1133 AT_graphxml_node_data AX_graphxml_node_data;
1134 #define A_graphxml_node_data (graphxml_bufferstack + AX_graphxml_node_data)
1135 short int graphxml_node_data_isset;
1136 AT_graphxml_node_position___x AX_graphxml_node_position___x;
1137 #define A_graphxml_node_position___x (graphxml_bufferstack + AX_graphxml_node_position___x)
1138 short int graphxml_node_position___x_isset;
1139 AT_graphxml_edge_source AX_graphxml_edge_source;
1140 #define A_graphxml_edge_source (graphxml_bufferstack + AX_graphxml_edge_source)
1141 short int graphxml_edge_source_isset;
1142 AT_graphxml_edge_data AX_graphxml_edge_data;
1143 #define A_graphxml_edge_data (graphxml_bufferstack + AX_graphxml_edge_data)
1144 short int graphxml_edge_data_isset;
1145 AT_graphxml_graph_isDirected AX_graphxml_graph_isDirected;
1146 #define A_graphxml_graph_isDirected AX_graphxml_graph_isDirected
1147 short int graphxml_graph_isDirected_isset;
1148 AT_graphxml_edge_name AX_graphxml_edge_name;
1149 #define A_graphxml_edge_name (graphxml_bufferstack + AX_graphxml_edge_name)
1150 short int graphxml_edge_name_isset;
1151 AT_graphxml_node_position___y AX_graphxml_node_position___y;
1152 #define A_graphxml_node_position___y (graphxml_bufferstack + AX_graphxml_node_position___y)
1153 short int graphxml_node_position___y_isset;
1154 AT_graphxml_edge_length AX_graphxml_edge_length;
1155 #define A_graphxml_edge_length (graphxml_bufferstack + AX_graphxml_edge_length)
1156 short int graphxml_edge_length_isset;
1157 AT_graphxml_edge_target AX_graphxml_edge_target;
1158 #define A_graphxml_edge_target (graphxml_bufferstack + AX_graphxml_edge_target)
1159 short int graphxml_edge_target_isset;
1160 AT_graphxml_edge_label AX_graphxml_edge_label;
1161 #define A_graphxml_edge_label (graphxml_bufferstack + AX_graphxml_edge_label)
1162 short int graphxml_edge_label_isset;
1163 AT_graphxml_node_label AX_graphxml_node_label;
1164 #define A_graphxml_node_label (graphxml_bufferstack + AX_graphxml_node_label)
1165 short int graphxml_node_label_isset;
1169 # define ENTER(state) debug_enter(state,#state)
1170 # define LEAVE debug_leave()
1171 # define SET(state) debug_set(state,#state)
1172 static void debug_enter(int, const char*);
1173 static void debug_leave(void);
1174 static void debug_set(int, const char*);
1176 # define ENTER(state) (yy_push_state(state))
1177 # define LEAVE (yy_pop_state())
1178 # define SET(state) BEGIN(state)
1181 /* Generic actions. */
1182 #define SKIP /*skip*/
1183 #define SUCCEED CLEANUP; return 0
1185 #define FAIL return fail
1186 static int fail(const char*, ...);
1188 enum {flexml_max_err_msg_size = 512};
1189 static char flexml_err_msg[flexml_max_err_msg_size];
1190 const char * graphxml_parse_err_msg()
1192 return flexml_err_msg;
1194 static void reset_graphxml_parse_err_msg()
1196 flexml_err_msg[0] = '\0';
1200 static void cleanup(void);
1201 #define CLEANUP cleanup()
1203 /* Text buffer stack handling. */
1204 char *graphxml_bufferstack = NULL;
1205 static int blimit = FLEXML_BUFFERSTACKSIZE;
1206 static int bnext = 1;
1208 static int *indexstack = NULL;
1209 static int ilimit = FLEXML_INDEXSTACKSIZE;
1210 static int inext = 1;
1212 #define BUFFERSET(P) (P = bnext)
1213 #define BUFFERPUTC(C) (ck_blimit(), graphxml_bufferstack[bnext++] = (C))
1214 #define BUFFERDONE (BUFFERPUTC('\0'))
1216 #define BUFFERLITERAL(C, P) graphxml_bufferliteral(C, &(P), xbt_graph_parse_text)
1218 /* after this is called, there are at least 2 slots left in the stack */
1219 static int ck_blimit()
1221 if (bnext >= blimit) {
1222 blimit += FLEXML_BUFFERSTACKSIZE + 2;
1224 char *temp = (char *) realloc(graphxml_bufferstack, blimit);
1226 graphxml_bufferstack = temp;
1232 /* after this is called, there are at least 2 slots left in the stack */
1233 static int ck_ilimit()
1235 if (inext >= ilimit) {
1236 ilimit += FLEXML_INDEXSTACKSIZE + 2;
1238 int *temp = (int *) realloc(indexstack, ilimit);
1246 #ifdef FLEXML_NEED_BUFFERLIT
1247 static void graphxml_bufferliteral(char c, int* pp, const char* text)
1251 const char *s = strchr(text, c), *e = strrchr(text, c);
1252 assert(s && e && s <= e);
1257 do ++s; while (s < e && isspace(*s));
1262 const char *s = text;
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 yy_size_t 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
1431 #define YY_READ_BUF_SIZE 8192
1434 /* Copy whatever the last rule matched to the standard output. */
1436 /* This used to be an fputs(), but since the string might contain NUL's,
1437 * we now use fwrite().
1439 #define ECHO do { if (fwrite( xbt_graph_parse_text, xbt_graph_parse_leng, 1, xbt_graph_parse_out )) {} } while (0)
1442 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1443 * is returned in "result".
1446 #define YY_INPUT(buf,result,max_size) \
1447 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1451 for ( n = 0; n < max_size && \
1452 (c = getc( xbt_graph_parse_in )) != EOF && c != '\n'; ++n ) \
1453 buf[n] = (char) c; \
1455 buf[n++] = (char) c; \
1456 if ( c == EOF && ferror( xbt_graph_parse_in ) ) \
1457 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1463 while ( (result = fread(buf, 1, max_size, xbt_graph_parse_in))==0 && ferror(xbt_graph_parse_in)) \
1465 if( errno != EINTR) \
1467 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1471 clearerr(xbt_graph_parse_in); \
1478 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1479 * we don't want an extra ';' after the "return" because that will cause
1480 * some compilers to complain about unreachable statements.
1483 #define yyterminate() return YY_NULL
1486 /* Number of entries by which start-condition stack grows. */
1487 #ifndef YY_START_STACK_INCR
1488 #define YY_START_STACK_INCR 25
1491 /* Report a fatal error. */
1492 #ifndef YY_FATAL_ERROR
1493 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1496 /* end tables serialization structures and prototypes */
1498 /* Default declaration of generated scanner - a define so the user can
1499 * easily add parameters.
1502 #define YY_DECL_IS_OURS 1
1504 extern int xbt_graph_parse_lex (void);
1506 #define YY_DECL int xbt_graph_parse_lex (void)
1507 #endif /* !YY_DECL */
1509 /* Code executed at the beginning of each rule, after xbt_graph_parse_text and xbt_graph_parse_leng
1512 #ifndef YY_USER_ACTION
1513 #define YY_USER_ACTION
1516 /* Code executed at the end of each rule. */
1518 #define YY_BREAK break;
1521 #define YY_RULE_SETUP \
1524 /** The main scanner function which does all the work.
1528 register yy_state_type yy_current_state;
1529 register char *yy_cp, *yy_bp;
1530 register int yy_act;
1532 /* Bypass Flex's default INITIAL state and begin by parsing the XML prolog. */
1534 reset_graphxml_parse_err_msg();
1535 graphxml_bufferstack = (char *) malloc(FLEXML_BUFFERSTACKSIZE);
1536 assert(graphxml_bufferstack);
1540 for (i = 0; i < blimit; i++) {
1541 graphxml_bufferstack[i] = '\377';
1545 graphxml_bufferstack[0] = '\0';
1546 indexstack = (int *) malloc(FLEXML_INDEXSTACKSIZE * sizeof(int));
1552 graphxml_bufferliteral('\0', &bnext, "-1.0");
1553 graphxml_bufferliteral('\0', &bnext, "-1.0");
1554 graphxml_bufferliteral('\0', &bnext, "-1.0");
1555 if(!graphxml_statenames) {graphxml_statenames= (const char **)calloc(IMPOSSIBLE,sizeof(char*));
1556 graphxml_statenames[PROLOG] = NULL;
1557 graphxml_statenames[DOCTYPE] = NULL;
1558 graphxml_statenames[EPILOG] = NULL;
1559 graphxml_statenames[INCOMMENT] = NULL;
1560 graphxml_statenames[INPI] = NULL;
1561 graphxml_statenames[VALUE1] = NULL;
1562 graphxml_statenames[VALUE2] = NULL;
1563 graphxml_statenames[CDATA] = NULL;
1564 graphxml_statenames[ROOT_graphxml_graph] = NULL;
1565 graphxml_statenames[AL_graphxml_graph] = NULL;
1566 graphxml_statenames[S_graphxml_graph] = "graph";
1567 graphxml_statenames[S_graphxml_graph_1] = "graph";
1568 graphxml_statenames[S_graphxml_graph_2] = "graph";
1569 graphxml_statenames[S_graphxml_graph_3] = "graph";
1570 graphxml_statenames[S_graphxml_graph_4] = "graph";
1571 graphxml_statenames[S_graphxml_graph_5] = "graph";
1572 graphxml_statenames[E_graphxml_graph] = "graph";
1573 graphxml_statenames[ROOT_graphxml_node] = NULL;
1574 graphxml_statenames[AL_graphxml_node] = NULL;
1575 graphxml_statenames[E_graphxml_node] = "node";
1576 graphxml_statenames[ROOT_graphxml_edge] = NULL;
1577 graphxml_statenames[AL_graphxml_edge] = NULL;
1578 graphxml_statenames[E_graphxml_edge] = "edge";
1581 /* COMMENTS and PIs: handled uniformly for efficiency. */
1592 (yy_start) = 1; /* first start state */
1594 if ( ! xbt_graph_parse_in )
1595 xbt_graph_parse_in = stdin;
1597 if ( ! xbt_graph_parse_out )
1598 xbt_graph_parse_out = stdout;
1600 if ( ! YY_CURRENT_BUFFER ) {
1601 xbt_graph_parse_ensure_buffer_stack ();
1602 YY_CURRENT_BUFFER_LVALUE =
1603 xbt_graph_parse__create_buffer(xbt_graph_parse_in,YY_BUF_SIZE );
1606 xbt_graph_parse__load_buffer_state( );
1609 while ( 1 ) /* loops until end-of-file is reached */
1611 yy_cp = (yy_c_buf_p);
1613 /* Support of xbt_graph_parse_text. */
1614 *yy_cp = (yy_hold_char);
1616 /* yy_bp points to the position in yy_ch_buf of the start of
1621 yy_current_state = (yy_start);
1625 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1626 if ( yy_accept[yy_current_state] )
1628 (yy_last_accepting_state) = yy_current_state;
1629 (yy_last_accepting_cpos) = yy_cp;
1631 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1633 yy_current_state = (int) yy_def[yy_current_state];
1634 if ( yy_current_state >= 564 )
1635 yy_c = yy_meta[(unsigned int) yy_c];
1637 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1640 while ( yy_base[yy_current_state] != 1586 );
1643 yy_act = yy_accept[yy_current_state];
1645 { /* have to back up */
1646 yy_cp = (yy_last_accepting_cpos);
1647 yy_current_state = (yy_last_accepting_state);
1648 yy_act = yy_accept[yy_current_state];
1651 YY_DO_BEFORE_ACTION;
1653 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
1656 for ( yyl = 0; yyl < xbt_graph_parse_leng; ++yyl )
1657 if ( xbt_graph_parse_text[yyl] == '\n' )
1659 xbt_graph_parse_lineno++;
1663 do_action: /* This label is used only to access EOF actions. */
1666 { /* beginning of action switch */
1667 case 0: /* must back up */
1668 /* undo the effects of YY_DO_BEFORE_ACTION */
1669 *yy_cp = (yy_hold_char);
1670 yy_cp = (yy_last_accepting_cpos);
1671 yy_current_state = (yy_last_accepting_state);
1672 goto yy_find_action;
1690 /* rule 6 can match eol */
1694 case YY_STATE_EOF(INCOMMENT):
1695 FAIL("EOF in comment.");
1704 /* rule 9 can match eol */
1708 case YY_STATE_EOF(INPI):
1709 FAIL("EOF in PI (processing instruction).");
1712 /* SPACES: skipped uniformly */
1714 /* rule 10 can match eol */
1718 /* PROLOG: determine root element and process it. */
1721 /* rule 11 can match eol */
1726 /* rule 12 can match eol */
1728 FAIL("Bad declaration %s.",xbt_graph_parse_text);
1732 /* rule 13 can match eol */
1734 SET(ROOT_graphxml_edge);
1737 /* rule 14 can match eol */
1739 SET(ROOT_graphxml_graph);
1742 /* rule 15 can match eol */
1744 SET(ROOT_graphxml_node);
1747 /* rule 16 can match eol */
1749 FAIL("Bad declaration %s.",xbt_graph_parse_text);
1753 FAIL("Unexpected character `%c' in prolog.", xbt_graph_parse_text[0]);
1755 case YY_STATE_EOF(PROLOG):
1756 case YY_STATE_EOF(DOCTYPE):
1757 FAIL("EOF in prolog.");
1760 /* RULES DERIVED FROM DTD. */
1761 /* <!-- Small DTD for xbt graphs. --> */
1762 /* isDirected (true|false) "true"
1765 /* rule 18 can match eol */
1767 FAIL("Starting tag <graph> is not allowed here.");
1770 /* rule 19 can match eol */
1773 AX_graphxml_graph_isDirected = A_graphxml_graph_isDirected_true;
1774 graphxml_graph_isDirected_isset = 0;
1775 ENTER(AL_graphxml_graph); pushbuffer(0);
1780 /* rule 20 can match eol */
1782 /* rule 21 can match eol */
1784 A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_true;
1787 /* rule 22 can match eol */
1789 /* rule 23 can match eol */
1791 A_graphxml_graph_isDirected = A_graphxml_graph_isDirected_false;
1796 LEAVE; STag_graphxml_graph();graphxml_pcdata_ix = 0; ENTER(S_graphxml_graph);
1802 LEAVE; STag_graphxml_graph(); graphxml_pcdata_ix = 0; ETag_graphxml_graph(); popbuffer(); /* attribute */
1804 case ROOT_graphxml_graph: SET(EPILOG); break;
1810 FAIL("Unexpected character `%c' in attribute list of graph element.", xbt_graph_parse_text[0]);
1814 FAIL("Bad attribute `%s' in `graph' element start tag.",xbt_graph_parse_text);
1816 case YY_STATE_EOF(AL_graphxml_graph):
1817 FAIL("EOF in attribute list of `graph' element.");
1821 /* rule 28 can match eol */
1825 ETag_graphxml_graph();
1826 popbuffer(); /* attribute */
1828 case ROOT_graphxml_graph: SET(EPILOG); break;
1833 /* rule 29 can match eol */
1835 FAIL("Unexpected end-tag `%s': `</graph>' expected.",xbt_graph_parse_text);
1839 FAIL("Unexpected character `%c': `</graph>' expected.",xbt_graph_parse_text[0]);
1841 case YY_STATE_EOF(S_graphxml_graph_3):
1842 case YY_STATE_EOF(S_graphxml_graph):
1843 case YY_STATE_EOF(S_graphxml_graph_5):
1844 case YY_STATE_EOF(E_graphxml_graph):
1845 case YY_STATE_EOF(S_graphxml_graph_1):
1846 FAIL("Premature EOF: `</graph>' expected.");
1850 * name CDATA #REQUIRED
1852 * position_x CDATA "-1.0"
1853 * position_y CDATA "-1.0"
1856 /* rule 31 can match eol */
1858 FAIL("Starting tag <node> is not allowed here.");
1861 /* rule 32 can match eol */
1864 AX_graphxml_node_label = 0;
1865 graphxml_node_label_isset = 0;
1866 AX_graphxml_node_name = 0;
1867 graphxml_node_name_isset = 0;
1868 AX_graphxml_node_data = 0;
1869 graphxml_node_data_isset = 0;
1870 AX_graphxml_node_position___x = 1;
1871 graphxml_node_position___x_isset = 0;
1872 AX_graphxml_node_position___y = 6;
1873 graphxml_node_position___y_isset = 0;
1874 ENTER(AL_graphxml_node); pushbuffer(0);
1879 /* rule 33 can match eol */
1881 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);
1884 /* rule 34 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(VALUE2); BUFFERSET(AX_graphxml_node_label);
1889 /* rule 35 can match eol */
1891 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);
1894 /* rule 36 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(VALUE2); BUFFERSET(AX_graphxml_node_name);
1899 /* rule 37 can match eol */
1901 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);
1904 /* rule 38 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(VALUE2); BUFFERSET(AX_graphxml_node_data);
1909 /* rule 39 can match eol */
1911 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);
1914 /* rule 40 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(VALUE2); BUFFERSET(AX_graphxml_node_position___x);
1919 /* rule 41 can match eol */
1921 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);
1924 /* rule 42 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(VALUE2); BUFFERSET(AX_graphxml_node_position___y);
1931 if (!AX_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element.");
1932 LEAVE; STag_graphxml_node();graphxml_pcdata_ix = 0; ENTER(E_graphxml_node);
1938 if (!AX_graphxml_node_name) FAIL("Required attribute `name' not set for `node' element.");
1939 LEAVE; STag_graphxml_node(); graphxml_pcdata_ix = 0; ETag_graphxml_node(); popbuffer(); /* attribute */
1941 case ROOT_graphxml_node: SET(EPILOG); break;
1942 case S_graphxml_graph: case S_graphxml_graph_2: case S_graphxml_graph_3: SET(S_graphxml_graph_3); break;
1948 FAIL("Unexpected character `%c' in attribute list of node element.", xbt_graph_parse_text[0]);
1952 FAIL("Bad attribute `%s' in `node' element start tag.",xbt_graph_parse_text);
1954 case YY_STATE_EOF(AL_graphxml_node):
1955 FAIL("EOF in attribute list of `node' element.");
1959 /* rule 47 can match eol */
1963 ETag_graphxml_node();
1964 popbuffer(); /* attribute */
1966 case ROOT_graphxml_node: SET(EPILOG); break;
1967 case S_graphxml_graph: case S_graphxml_graph_2: case S_graphxml_graph_3: SET(S_graphxml_graph_3); break;
1972 /* rule 48 can match eol */
1974 FAIL("Unexpected end-tag `%s': `</node>' expected.",xbt_graph_parse_text);
1978 FAIL("Unexpected character `%c': `</node>' expected.",xbt_graph_parse_text[0]);
1980 case YY_STATE_EOF(E_graphxml_node):
1981 FAIL("Premature EOF: `</node>' expected.");
1985 * name CDATA #IMPLIED
1986 * source CDATA #REQUIRED
1987 * target CDATA #REQUIRED
1988 * length CDATA "-1.0"
1992 /* rule 50 can match eol */
1994 FAIL("Starting tag <edge> is not allowed here.");
1997 /* rule 51 can match eol */
2000 AX_graphxml_edge_label = 0;
2001 graphxml_edge_label_isset = 0;
2002 AX_graphxml_edge_name = 0;
2003 graphxml_edge_name_isset = 0;
2004 AX_graphxml_edge_source = 0;
2005 graphxml_edge_source_isset = 0;
2006 AX_graphxml_edge_target = 0;
2007 graphxml_edge_target_isset = 0;
2008 AX_graphxml_edge_length = 11;
2009 graphxml_edge_length_isset = 0;
2010 AX_graphxml_edge_data = 0;
2011 graphxml_edge_data_isset = 0;
2012 ENTER(AL_graphxml_edge); pushbuffer(0);
2017 /* rule 52 can match eol */
2019 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);
2022 /* rule 53 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(VALUE2); BUFFERSET(AX_graphxml_edge_label);
2027 /* rule 54 can match eol */
2029 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);
2032 /* rule 55 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(VALUE2); BUFFERSET(AX_graphxml_edge_name);
2037 /* rule 56 can match eol */
2039 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);
2042 /* rule 57 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(VALUE2); BUFFERSET(AX_graphxml_edge_source);
2047 /* rule 58 can match eol */
2049 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);
2052 /* rule 59 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(VALUE2); BUFFERSET(AX_graphxml_edge_target);
2057 /* rule 60 can match eol */
2059 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);
2062 /* rule 61 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(VALUE2); BUFFERSET(AX_graphxml_edge_length);
2067 /* rule 62 can match eol */
2069 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);
2072 /* rule 63 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(VALUE2); BUFFERSET(AX_graphxml_edge_data);
2079 if (!AX_graphxml_edge_source) FAIL("Required attribute `source' not set for `edge' element.");
2080 if (!AX_graphxml_edge_target) FAIL("Required attribute `target' not set for `edge' element.");
2081 LEAVE; STag_graphxml_edge();graphxml_pcdata_ix = 0; ENTER(E_graphxml_edge);
2087 if (!AX_graphxml_edge_source) FAIL("Required attribute `source' not set for `edge' element.");
2088 if (!AX_graphxml_edge_target) FAIL("Required attribute `target' not set for `edge' element.");
2089 LEAVE; STag_graphxml_edge(); graphxml_pcdata_ix = 0; ETag_graphxml_edge(); popbuffer(); /* attribute */
2091 case ROOT_graphxml_edge: SET(EPILOG); break;
2092 case S_graphxml_graph_5: case S_graphxml_graph: case S_graphxml_graph_1: case S_graphxml_graph_3: case S_graphxml_graph_4: SET(S_graphxml_graph_5); break;
2098 FAIL("Unexpected character `%c' in attribute list of edge element.", xbt_graph_parse_text[0]);
2102 FAIL("Bad attribute `%s' in `edge' element start tag.",xbt_graph_parse_text);
2104 case YY_STATE_EOF(AL_graphxml_edge):
2105 FAIL("EOF in attribute list of `edge' element.");
2109 /* rule 68 can match eol */
2113 ETag_graphxml_edge();
2114 popbuffer(); /* attribute */
2116 case ROOT_graphxml_edge: SET(EPILOG); break;
2117 case S_graphxml_graph_5: case S_graphxml_graph: case S_graphxml_graph_1: case S_graphxml_graph_3: case S_graphxml_graph_4: SET(S_graphxml_graph_5); break;
2122 /* rule 69 can match eol */
2124 FAIL("Unexpected end-tag `%s': `</edge>' expected.",xbt_graph_parse_text);
2128 FAIL("Unexpected character `%c': `</edge>' expected.",xbt_graph_parse_text[0]);
2130 case YY_STATE_EOF(E_graphxml_edge):
2131 FAIL("Premature EOF: `</edge>' expected.");
2134 /* EPILOG: after the root element. */
2138 {SET(PROLOG); yyless(0); CLEANUP; return -1;}
2140 case YY_STATE_EOF(EPILOG):
2144 /* CHARACTER DATA. */
2146 /* Non-defined standard entities... */
2167 /* Character entities. */
2170 BUFFERPUTC((unsigned char)atoi(xbt_graph_parse_text+2));
2174 BUFFERPUTC((unsigned char)strtol(xbt_graph_parse_text+3,NULL,16));
2178 /* rule 79 can match eol */
2180 /* rule 80 can match eol */
2182 /* rule 81 can match eol */
2184 /* rule 82 can match eol */
2195 FAIL("Unexpected `]""]>' in character data.");
2202 case YY_STATE_EOF(VALUE1):
2203 FAIL("EOF in literal (\"'\" expected).");
2210 case YY_STATE_EOF(VALUE2):
2211 FAIL("EOF in literal (`\"' expected).");
2215 /* rule 87 can match eol */
2217 BUFFERPUTC(xbt_graph_parse_text[0]);
2221 FAIL("Spurious `%c' in character data.",xbt_graph_parse_text[0]);
2228 /* "]""]" BUFFERPUTC(xbt_graph_parse_text[0]); BUFFERPUTC(xbt_graph_parse_text[1]); */
2231 BUFFERPUTC(xbt_graph_parse_text[0]);
2233 case YY_STATE_EOF(CDATA):
2234 FAIL("EOF in CDATA section.");
2237 /* Impossible rules to avoid warnings from flex(1). */
2238 /* Ideally, this should be replaced by code in flexml.pl that
2239 generates just the states not covered by other rules. */
2242 /* rule 91 can match eol */
2244 FAIL("Syntax error on character `%c'.", xbt_graph_parse_text[0]);
2251 case YY_STATE_EOF(INITIAL):
2252 case YY_STATE_EOF(ROOT_graphxml_graph):
2253 case YY_STATE_EOF(S_graphxml_graph_2):
2254 case YY_STATE_EOF(S_graphxml_graph_4):
2255 case YY_STATE_EOF(ROOT_graphxml_node):
2256 case YY_STATE_EOF(ROOT_graphxml_edge):
2257 case YY_STATE_EOF(IMPOSSIBLE):
2260 case YY_END_OF_BUFFER:
2262 /* Amount of text matched not including the EOB char. */
2263 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2265 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2266 *yy_cp = (yy_hold_char);
2267 YY_RESTORE_YY_MORE_OFFSET
2269 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2271 /* We're scanning a new file or input source. It's
2272 * possible that this happened because the user
2273 * just pointed xbt_graph_parse_in at a new source and called
2274 * xbt_graph_parse_lex(). If so, then we have to assure
2275 * consistency between YY_CURRENT_BUFFER and our
2276 * globals. Here is the right place to do so, because
2277 * this is the first action (other than possibly a
2278 * back-up) that will match for the new input source.
2280 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2281 YY_CURRENT_BUFFER_LVALUE->yy_input_file = xbt_graph_parse_in;
2282 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2285 /* Note that here we test for yy_c_buf_p "<=" to the position
2286 * of the first EOB in the buffer, since yy_c_buf_p will
2287 * already have been incremented past the NUL character
2288 * (since all states make transitions on EOB to the
2289 * end-of-buffer state). Contrast this with the test
2292 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2293 { /* This was really a NUL. */
2294 yy_state_type yy_next_state;
2296 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2298 yy_current_state = yy_get_previous_state( );
2300 /* Okay, we're now positioned to make the NUL
2301 * transition. We couldn't have
2302 * yy_get_previous_state() go ahead and do it
2303 * for us because it doesn't know how to deal
2304 * with the possibility of jamming (and we don't
2305 * want to build jamming into it because then it
2306 * will run more slowly).
2309 yy_next_state = yy_try_NUL_trans( yy_current_state );
2311 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2313 if ( yy_next_state )
2315 /* Consume the NUL. */
2316 yy_cp = ++(yy_c_buf_p);
2317 yy_current_state = yy_next_state;
2323 yy_cp = (yy_c_buf_p);
2324 goto yy_find_action;
2328 else switch ( yy_get_next_buffer( ) )
2330 case EOB_ACT_END_OF_FILE:
2332 (yy_did_buffer_switch_on_eof) = 0;
2334 if ( xbt_graph_parse_wrap( ) )
2336 /* Note: because we've taken care in
2337 * yy_get_next_buffer() to have set up
2338 * xbt_graph_parse_text, we can now set up
2339 * yy_c_buf_p so that if some total
2340 * hoser (like flex itself) wants to
2341 * call the scanner after we return the
2342 * YY_NULL, it'll still work - another
2343 * YY_NULL will get returned.
2345 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2347 yy_act = YY_STATE_EOF(YY_START);
2353 if ( ! (yy_did_buffer_switch_on_eof) )
2359 case EOB_ACT_CONTINUE_SCAN:
2361 (yytext_ptr) + yy_amount_of_matched_text;
2363 yy_current_state = yy_get_previous_state( );
2365 yy_cp = (yy_c_buf_p);
2366 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2369 case EOB_ACT_LAST_MATCH:
2371 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2373 yy_current_state = yy_get_previous_state( );
2375 yy_cp = (yy_c_buf_p);
2376 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2377 goto yy_find_action;
2384 "fatal flex scanner internal error--no action found" );
2385 } /* end of action switch */
2386 } /* end of scanning one token */
2387 } /* end of xbt_graph_parse_lex */
2389 /* yy_get_next_buffer - try to read in a new buffer
2391 * Returns a code representing an action:
2392 * EOB_ACT_LAST_MATCH -
2393 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2394 * EOB_ACT_END_OF_FILE - end of file
2396 static int yy_get_next_buffer (void)
2398 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2399 register char *source = (yytext_ptr);
2400 register int number_to_move, i;
2403 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2405 "fatal flex scanner internal error--end of buffer missed" );
2407 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2408 { /* Don't try to fill the buffer, so this is an EOF. */
2409 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2411 /* We matched a single character, the EOB, so
2412 * treat this as a final EOF.
2414 return EOB_ACT_END_OF_FILE;
2419 /* We matched some text prior to the EOB, first
2422 return EOB_ACT_LAST_MATCH;
2426 /* Try to read more data. */
2428 /* First move last chars to start of buffer. */
2429 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2431 for ( i = 0; i < number_to_move; ++i )
2432 *(dest++) = *(source++);
2434 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2435 /* don't do the read, it's not guaranteed to return an EOF,
2438 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2442 yy_size_t num_to_read =
2443 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2445 while ( num_to_read <= 0 )
2446 { /* Not enough room in the buffer - grow it. */
2448 /* just a shorter name for the current buffer */
2449 YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
2451 int yy_c_buf_p_offset =
2452 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2454 if ( b->yy_is_our_buffer )
2456 yy_size_t new_size = b->yy_buf_size * 2;
2458 if ( new_size <= 0 )
2459 b->yy_buf_size += b->yy_buf_size / 8;
2461 b->yy_buf_size *= 2;
2463 b->yy_ch_buf = (char *)
2464 /* Include room in for 2 EOB chars. */
2465 xbt_graph_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2468 /* Can't grow it, we don't own it. */
2471 if ( ! b->yy_ch_buf )
2473 "fatal error - scanner input buffer overflow" );
2475 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2477 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2482 if ( num_to_read > YY_READ_BUF_SIZE )
2483 num_to_read = YY_READ_BUF_SIZE;
2485 /* Read in more data. */
2486 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2487 (yy_n_chars), num_to_read );
2489 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2492 if ( (yy_n_chars) == 0 )
2494 if ( number_to_move == YY_MORE_ADJ )
2496 ret_val = EOB_ACT_END_OF_FILE;
2497 xbt_graph_parse_restart(xbt_graph_parse_in );
2502 ret_val = EOB_ACT_LAST_MATCH;
2503 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2504 YY_BUFFER_EOF_PENDING;
2509 ret_val = EOB_ACT_CONTINUE_SCAN;
2511 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2512 /* Extend the array by 50%, plus the number we really need. */
2513 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2514 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) xbt_graph_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
2515 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2516 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2519 (yy_n_chars) += number_to_move;
2520 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2521 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2523 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2528 /* yy_get_previous_state - get the state just before the EOB char was reached */
2530 static yy_state_type yy_get_previous_state (void)
2532 register yy_state_type yy_current_state;
2533 register char *yy_cp;
2535 yy_current_state = (yy_start);
2537 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2539 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2540 if ( yy_accept[yy_current_state] )
2542 (yy_last_accepting_state) = yy_current_state;
2543 (yy_last_accepting_cpos) = yy_cp;
2545 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2547 yy_current_state = (int) yy_def[yy_current_state];
2548 if ( yy_current_state >= 564 )
2549 yy_c = yy_meta[(unsigned int) yy_c];
2551 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2554 return yy_current_state;
2557 /* yy_try_NUL_trans - try to make a transition on the NUL character
2560 * next_state = yy_try_NUL_trans( current_state );
2562 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2564 register int yy_is_jam;
2565 register char *yy_cp = (yy_c_buf_p);
2567 register YY_CHAR yy_c = 1;
2568 if ( yy_accept[yy_current_state] )
2570 (yy_last_accepting_state) = yy_current_state;
2571 (yy_last_accepting_cpos) = yy_cp;
2573 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2575 yy_current_state = (int) yy_def[yy_current_state];
2576 if ( yy_current_state >= 564 )
2577 yy_c = yy_meta[(unsigned int) yy_c];
2579 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2580 yy_is_jam = (yy_current_state == 563);
2582 return yy_is_jam ? 0 : yy_current_state;
2587 static int yyinput (void)
2589 static int input (void)
2595 *(yy_c_buf_p) = (yy_hold_char);
2597 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2599 /* yy_c_buf_p now points to the character we want to return.
2600 * If this occurs *before* the EOB characters, then it's a
2601 * valid NUL; if not, then we've hit the end of the buffer.
2603 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2604 /* This was really a NUL. */
2605 *(yy_c_buf_p) = '\0';
2608 { /* need more input */
2609 yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
2612 switch ( yy_get_next_buffer( ) )
2614 case EOB_ACT_LAST_MATCH:
2615 /* This happens because yy_g_n_b()
2616 * sees that we've accumulated a
2617 * token and flags that we need to
2618 * try matching the token before
2619 * proceeding. But for input(),
2620 * there's no matching to consider.
2621 * So convert the EOB_ACT_LAST_MATCH
2622 * to EOB_ACT_END_OF_FILE.
2625 /* Reset buffer status. */
2626 xbt_graph_parse_restart(xbt_graph_parse_in );
2630 case EOB_ACT_END_OF_FILE:
2632 if ( xbt_graph_parse_wrap( ) )
2635 if ( ! (yy_did_buffer_switch_on_eof) )
2644 case EOB_ACT_CONTINUE_SCAN:
2645 (yy_c_buf_p) = (yytext_ptr) + offset;
2651 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2652 *(yy_c_buf_p) = '\0'; /* preserve xbt_graph_parse_text */
2653 (yy_hold_char) = *++(yy_c_buf_p);
2657 xbt_graph_parse_lineno++;
2662 #endif /* ifndef YY_NO_INPUT */
2664 /** Immediately switch to a different input stream.
2665 * @param input_file A readable stream.
2667 * @note This function does not reset the start condition to @c INITIAL .
2669 void xbt_graph_parse_restart (FILE * input_file )
2672 if ( ! YY_CURRENT_BUFFER ){
2673 xbt_graph_parse_ensure_buffer_stack ();
2674 YY_CURRENT_BUFFER_LVALUE =
2675 xbt_graph_parse__create_buffer(xbt_graph_parse_in,YY_BUF_SIZE );
2678 xbt_graph_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
2679 xbt_graph_parse__load_buffer_state( );
2682 /** Switch to a different input buffer.
2683 * @param new_buffer The new input buffer.
2686 void xbt_graph_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer )
2689 /* TODO. We should be able to replace this entire function body
2691 * xbt_graph_parse_pop_buffer_state();
2692 * xbt_graph_parse_push_buffer_state(new_buffer);
2694 xbt_graph_parse_ensure_buffer_stack ();
2695 if ( YY_CURRENT_BUFFER == new_buffer )
2698 if ( YY_CURRENT_BUFFER )
2700 /* Flush out information for old buffer. */
2701 *(yy_c_buf_p) = (yy_hold_char);
2702 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2703 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2706 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2707 xbt_graph_parse__load_buffer_state( );
2709 /* We don't actually know whether we did this switch during
2710 * EOF (xbt_graph_parse_wrap()) processing, but the only time this flag
2711 * is looked at is after xbt_graph_parse_wrap() is called, so it's safe
2712 * to go ahead and always set it.
2714 (yy_did_buffer_switch_on_eof) = 1;
2717 static void xbt_graph_parse__load_buffer_state (void)
2719 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2720 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2721 xbt_graph_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2722 (yy_hold_char) = *(yy_c_buf_p);
2725 /** Allocate and initialize an input buffer state.
2726 * @param file A readable stream.
2727 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2729 * @return the allocated buffer state.
2731 YY_BUFFER_STATE xbt_graph_parse__create_buffer (FILE * file, int size )
2735 b = (YY_BUFFER_STATE) xbt_graph_parse_alloc(sizeof( struct yy_buffer_state ) );
2737 YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse__create_buffer()" );
2739 b->yy_buf_size = size;
2741 /* yy_ch_buf has to be 2 characters longer than the size given because
2742 * we need to put in 2 end-of-buffer characters.
2744 b->yy_ch_buf = (char *) xbt_graph_parse_alloc(b->yy_buf_size + 2 );
2745 if ( ! b->yy_ch_buf )
2746 YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse__create_buffer()" );
2748 b->yy_is_our_buffer = 1;
2750 xbt_graph_parse__init_buffer(b,file );
2755 /** Destroy the buffer.
2756 * @param b a buffer created with xbt_graph_parse__create_buffer()
2759 void xbt_graph_parse__delete_buffer (YY_BUFFER_STATE b )
2765 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2766 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2768 if ( b->yy_is_our_buffer )
2769 xbt_graph_parse_free((void *) b->yy_ch_buf );
2771 xbt_graph_parse_free((void *) b );
2774 /* Initializes or reinitializes a buffer.
2775 * This function is sometimes called more than once on the same buffer,
2776 * such as during a xbt_graph_parse_restart() or at EOF.
2778 static void xbt_graph_parse__init_buffer (YY_BUFFER_STATE b, FILE * file )
2783 xbt_graph_parse__flush_buffer(b );
2785 b->yy_input_file = file;
2786 b->yy_fill_buffer = 1;
2788 /* If b is the current buffer, then xbt_graph_parse__init_buffer was _probably_
2789 * called from xbt_graph_parse_restart() or through yy_get_next_buffer.
2790 * In that case, we don't want to reset the lineno or column.
2792 if (b != YY_CURRENT_BUFFER){
2793 b->yy_bs_lineno = 1;
2794 b->yy_bs_column = 0;
2797 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2802 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2803 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2806 void xbt_graph_parse__flush_buffer (YY_BUFFER_STATE b )
2813 /* We always need two end-of-buffer characters. The first causes
2814 * a transition to the end-of-buffer state. The second causes
2815 * a jam in that state.
2817 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2818 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2820 b->yy_buf_pos = &b->yy_ch_buf[0];
2823 b->yy_buffer_status = YY_BUFFER_NEW;
2825 if ( b == YY_CURRENT_BUFFER )
2826 xbt_graph_parse__load_buffer_state( );
2829 /** Pushes the new state onto the stack. The new state becomes
2830 * the current state. This function will allocate the stack
2832 * @param new_buffer The new state.
2835 void xbt_graph_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
2837 if (new_buffer == NULL)
2840 xbt_graph_parse_ensure_buffer_stack();
2842 /* This block is copied from xbt_graph_parse__switch_to_buffer. */
2843 if ( YY_CURRENT_BUFFER )
2845 /* Flush out information for old buffer. */
2846 *(yy_c_buf_p) = (yy_hold_char);
2847 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2848 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2851 /* Only push if top exists. Otherwise, replace top. */
2852 if (YY_CURRENT_BUFFER)
2853 (yy_buffer_stack_top)++;
2854 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2856 /* copied from xbt_graph_parse__switch_to_buffer. */
2857 xbt_graph_parse__load_buffer_state( );
2858 (yy_did_buffer_switch_on_eof) = 1;
2861 /** Removes and deletes the top of the stack, if present.
2862 * The next element becomes the new top.
2865 void xbt_graph_parse_pop_buffer_state (void)
2867 if (!YY_CURRENT_BUFFER)
2870 xbt_graph_parse__delete_buffer(YY_CURRENT_BUFFER );
2871 YY_CURRENT_BUFFER_LVALUE = NULL;
2872 if ((yy_buffer_stack_top) > 0)
2873 --(yy_buffer_stack_top);
2875 if (YY_CURRENT_BUFFER) {
2876 xbt_graph_parse__load_buffer_state( );
2877 (yy_did_buffer_switch_on_eof) = 1;
2881 /* Allocates the stack if it does not exist.
2882 * Guarantees space for at least one push.
2884 static void xbt_graph_parse_ensure_buffer_stack (void)
2886 yy_size_t num_to_alloc;
2888 if (!(yy_buffer_stack)) {
2890 /* First allocation is just for 2 elements, since we don't know if this
2891 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2892 * immediate realloc on the next call.
2895 (yy_buffer_stack) = (struct yy_buffer_state**)xbt_graph_parse_alloc
2896 (num_to_alloc * sizeof(struct yy_buffer_state*)
2898 if ( ! (yy_buffer_stack) )
2899 YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse_ensure_buffer_stack()" );
2901 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2903 (yy_buffer_stack_max) = num_to_alloc;
2904 (yy_buffer_stack_top) = 0;
2908 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2910 /* Increase the buffer to prepare for a possible push. */
2911 int grow_size = 8 /* arbitrary grow size */;
2913 num_to_alloc = (yy_buffer_stack_max) + grow_size;
2914 (yy_buffer_stack) = (struct yy_buffer_state**)xbt_graph_parse_realloc
2916 num_to_alloc * sizeof(struct yy_buffer_state*)
2918 if ( ! (yy_buffer_stack) )
2919 YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse_ensure_buffer_stack()" );
2921 /* zero only the new slots.*/
2922 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2923 (yy_buffer_stack_max) = num_to_alloc;
2927 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2928 * @param base the character buffer
2929 * @param size the size in bytes of the character buffer
2931 * @return the newly allocated buffer state object.
2933 YY_BUFFER_STATE xbt_graph_parse__scan_buffer (char * base, yy_size_t size )
2938 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2939 base[size-1] != YY_END_OF_BUFFER_CHAR )
2940 /* They forgot to leave room for the EOB's. */
2943 b = (YY_BUFFER_STATE) xbt_graph_parse_alloc(sizeof( struct yy_buffer_state ) );
2945 YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse__scan_buffer()" );
2947 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2948 b->yy_buf_pos = b->yy_ch_buf = base;
2949 b->yy_is_our_buffer = 0;
2950 b->yy_input_file = 0;
2951 b->yy_n_chars = b->yy_buf_size;
2952 b->yy_is_interactive = 0;
2954 b->yy_fill_buffer = 0;
2955 b->yy_buffer_status = YY_BUFFER_NEW;
2957 xbt_graph_parse__switch_to_buffer(b );
2962 /** Setup the input buffer state to scan a string. The next call to xbt_graph_parse_lex() will
2963 * scan from a @e copy of @a str.
2964 * @param yystr a NUL-terminated string to scan
2966 * @return the newly allocated buffer state object.
2967 * @note If you want to scan bytes that may contain NUL values, then use
2968 * xbt_graph_parse__scan_bytes() instead.
2970 YY_BUFFER_STATE xbt_graph_parse__scan_string (yyconst char * yystr )
2973 return xbt_graph_parse__scan_bytes(yystr,strlen(yystr) );
2976 /** Setup the input buffer state to scan the given bytes. The next call to xbt_graph_parse_lex() will
2977 * scan from a @e copy of @a bytes.
2978 * @param yybytes the byte buffer to scan
2979 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2981 * @return the newly allocated buffer state object.
2983 YY_BUFFER_STATE xbt_graph_parse__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
2990 /* Get memory for full buffer, including space for trailing EOB's. */
2991 n = _yybytes_len + 2;
2992 buf = (char *) xbt_graph_parse_alloc(n );
2994 YY_FATAL_ERROR( "out of dynamic memory in xbt_graph_parse__scan_bytes()" );
2996 for ( i = 0; i < _yybytes_len; ++i )
2997 buf[i] = yybytes[i];
2999 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3001 b = xbt_graph_parse__scan_buffer(buf,n );
3003 YY_FATAL_ERROR( "bad buffer in xbt_graph_parse__scan_bytes()" );
3005 /* It's okay to grow etc. this buffer, and we should throw it
3006 * away when we're done.
3008 b->yy_is_our_buffer = 1;
3013 static void yy_push_state (int new_state )
3015 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) )
3019 (yy_start_stack_depth) += YY_START_STACK_INCR;
3020 new_size = (yy_start_stack_depth) * sizeof( int );
3022 if ( ! (yy_start_stack) )
3023 (yy_start_stack) = (int *) xbt_graph_parse_alloc(new_size );
3026 (yy_start_stack) = (int *) xbt_graph_parse_realloc((void *) (yy_start_stack),new_size );
3028 if ( ! (yy_start_stack) )
3029 YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
3032 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START;
3037 static void yy_pop_state (void)
3039 if ( --(yy_start_stack_ptr) < 0 )
3040 YY_FATAL_ERROR( "start-condition stack underflow" );
3042 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]);
3045 #ifndef YY_EXIT_FAILURE
3046 #define YY_EXIT_FAILURE 2
3049 static void yy_fatal_error (yyconst char* msg )
3051 (void) fprintf( stderr, "%s\n", msg );
3052 exit( YY_EXIT_FAILURE );
3055 /* Redefine yyless() so it works in section 3 code. */
3061 /* Undo effects of setting up xbt_graph_parse_text. */ \
3062 int yyless_macro_arg = (n); \
3063 YY_LESS_LINENO(yyless_macro_arg);\
3064 xbt_graph_parse_text[xbt_graph_parse_leng] = (yy_hold_char); \
3065 (yy_c_buf_p) = xbt_graph_parse_text + yyless_macro_arg; \
3066 (yy_hold_char) = *(yy_c_buf_p); \
3067 *(yy_c_buf_p) = '\0'; \
3068 xbt_graph_parse_leng = yyless_macro_arg; \
3072 /* Accessor methods (get/set functions) to struct members. */
3074 /** Get the current line number.
3077 int xbt_graph_parse_get_lineno (void)
3080 return xbt_graph_parse_lineno;
3083 /** Get the input stream.
3086 FILE *xbt_graph_parse_get_in (void)
3088 return xbt_graph_parse_in;
3091 /** Get the output stream.
3094 FILE *xbt_graph_parse_get_out (void)
3096 return xbt_graph_parse_out;
3099 /** Get the length of the current token.
3102 yy_size_t xbt_graph_parse_get_leng (void)
3104 return xbt_graph_parse_leng;
3107 /** Get the current token.
3111 char *xbt_graph_parse_get_text (void)
3113 return xbt_graph_parse_text;
3116 /** Set the current line number.
3117 * @param line_number
3120 void xbt_graph_parse_set_lineno (int line_number )
3123 xbt_graph_parse_lineno = line_number;
3126 /** Set the input stream. This does not discard the current
3128 * @param in_str A readable stream.
3130 * @see xbt_graph_parse__switch_to_buffer
3132 void xbt_graph_parse_set_in (FILE * in_str )
3134 xbt_graph_parse_in = in_str ;
3137 void xbt_graph_parse_set_out (FILE * out_str )
3139 xbt_graph_parse_out = out_str ;
3142 int xbt_graph_parse_get_debug (void)
3144 return xbt_graph_parse__flex_debug;
3147 void xbt_graph_parse_set_debug (int bdebug )
3149 xbt_graph_parse__flex_debug = bdebug ;
3152 static int yy_init_globals (void)
3154 /* Initialization is the same as for the non-reentrant scanner.
3155 * This function is called from xbt_graph_parse_lex_destroy(), so don't allocate here.
3158 /* We do not touch xbt_graph_parse_lineno unless the option is enabled. */
3159 xbt_graph_parse_lineno = 1;
3161 (yy_buffer_stack) = 0;
3162 (yy_buffer_stack_top) = 0;
3163 (yy_buffer_stack_max) = 0;
3164 (yy_c_buf_p) = (char *) 0;
3168 (yy_start_stack_ptr) = 0;
3169 (yy_start_stack_depth) = 0;
3170 (yy_start_stack) = NULL;
3172 /* Defined in main.c */
3174 xbt_graph_parse_in = stdin;
3175 xbt_graph_parse_out = stdout;
3177 xbt_graph_parse_in = (FILE *) 0;
3178 xbt_graph_parse_out = (FILE *) 0;
3181 /* For future reference: Set errno on error, since we are called by
3182 * xbt_graph_parse_lex_init()
3187 /* xbt_graph_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
3188 int xbt_graph_parse_lex_destroy (void)
3191 /* Pop the buffer stack, destroying each element. */
3192 while(YY_CURRENT_BUFFER){
3193 xbt_graph_parse__delete_buffer(YY_CURRENT_BUFFER );
3194 YY_CURRENT_BUFFER_LVALUE = NULL;
3195 xbt_graph_parse_pop_buffer_state();
3198 /* Destroy the stack itself. */
3199 xbt_graph_parse_free((yy_buffer_stack) );
3200 (yy_buffer_stack) = NULL;
3202 /* Destroy the start condition stack. */
3203 xbt_graph_parse_free((yy_start_stack) );
3204 (yy_start_stack) = NULL;
3206 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3207 * xbt_graph_parse_lex() is called, initialization will occur. */
3214 * Internal utility routines.
3218 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3221 for ( i = 0; i < n; ++i )
3226 #ifdef YY_NEED_STRLEN
3227 static int yy_flex_strlen (yyconst char * s )
3230 for ( n = 0; s[n]; ++n )
3237 void *xbt_graph_parse_alloc (yy_size_t size )
3239 return (void *) malloc( size );
3242 void *xbt_graph_parse_realloc (void * ptr, yy_size_t size )
3244 /* The cast to (char *) in the following accommodates both
3245 * implementations that use char* generic pointers, and those
3246 * that use void* generic pointers. It works with the latter
3247 * because both ANSI C and C++ allow castless assignment from
3248 * any pointer type to void*, and deal with argument conversions
3249 * as though doing an assignment.
3251 return (void *) realloc( (char *) ptr, size );
3254 void xbt_graph_parse_free (void * ptr )
3256 free( (char *) ptr ); /* see xbt_graph_parse_realloc() for (char *) cast */
3259 #define YYTABLES_NAME "yytables"
3261 /* Element context stack lookup. */
3262 int graphxml_element_context(int i)
3264 return (0<i && i<yy_start_stack_depth
3265 ? yy_start_stack[yy_start_stack_ptr - i]
3270 void print_yy_stack(char* fmt, ...)
3272 int i = 0; va_list ap; va_start(ap, fmt);
3273 vfprintf(stderr, fmt, ap);
3274 if (graphxml_statenames) {
3275 for (i=1; i<yy_start_stack_ptr; i++) {
3276 fprintf(stderr, "%s/", graphxml_statenames[yy_start_stack[i] ]);
3278 fprintf(stderr,"%s\n", graphxml_statenames[YY_START]);
3283 void print_graphxml_bufferstack()
3286 fputs("Buffer: ", stderr);
3287 for (i = 0; i < blimit; i++) {
3288 if ( graphxml_bufferstack[i] == '\377' ) break;
3289 putc(graphxml_bufferstack[i], stderr);
3294 static void debug_enter(int state, const char* statename) {
3295 yy_push_state(state);
3296 if (xbt_graph_parse__flex_debug) {
3297 print_yy_stack("--ENTER(%s) : ",statename);
3298 print_graphxml_bufferstack();
3302 static void debug_leave(void) {
3303 if (xbt_graph_parse__flex_debug) {
3304 print_yy_stack("--LEAVE : ");
3305 print_graphxml_bufferstack();
3310 static void debug_set(int state, const char* statename) {
3312 if (xbt_graph_parse__flex_debug) print_yy_stack("--SET(%s) : ",statename);
3316 static void cleanup(void)
3318 if (graphxml_statenames) {
3319 free(graphxml_statenames);
3320 graphxml_statenames = NULL;
3322 free(graphxml_bufferstack);
3323 graphxml_bufferstack = NULL;
3329 static int fail(const char* fmt, ...)
3331 int chars_left, used;
3332 va_list ap; va_start(ap, fmt);
3333 #ifdef FLEXML_yylineno
3334 used = sprintf(flexml_err_msg,
3335 "Invalid XML (XML input line %d, state %d): ",
3336 xbt_graph_parse_lineno, YY_START);
3338 used = sprintf(flexml_err_msg,
3339 "Invalid XML (state %d): ",
3342 chars_left = flexml_max_err_msg_size - used - 1;
3343 vsnprintf(flexml_err_msg + used, chars_left, fmt, ap);
3346 #ifndef FLEXML_quiet_parser
3347 /* print directly to sdterr */
3348 fprintf(stderr, "%s\n", flexml_err_msg);
3349 flexml_err_msg[0] = '\0';