Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
a7395b169d6611df47ecf96b05ac8610ab5e1004
[simgrid.git] / src / xbt / automaton / automaton_parse.yy.c
1 #line 2 "automaton_parse.yy.c"
2
3 #line 4 "automaton_parse.yy.c"
4
5 #define  YY_INT_ALIGNED short int
6
7 /* A lexical scanner generated by flex */
8
9 #define yy_create_buffer xbt_automaton_parse__create_buffer
10 #define yy_delete_buffer xbt_automaton_parse__delete_buffer
11 #define yy_flex_debug xbt_automaton_parse__flex_debug
12 #define yy_init_buffer xbt_automaton_parse__init_buffer
13 #define yy_flush_buffer xbt_automaton_parse__flush_buffer
14 #define yy_load_buffer_state xbt_automaton_parse__load_buffer_state
15 #define yy_switch_to_buffer xbt_automaton_parse__switch_to_buffer
16 #define yyin xbt_automaton_parse_in
17 #define yyleng xbt_automaton_parse_leng
18 #define yylex xbt_automaton_parse_lex
19 #define yylineno xbt_automaton_parse_lineno
20 #define yyout xbt_automaton_parse_out
21 #define yyrestart xbt_automaton_parse_restart
22 #define yytext xbt_automaton_parse_text
23 #define yywrap xbt_automaton_parse_wrap
24 #define yyalloc xbt_automaton_parse_alloc
25 #define yyrealloc xbt_automaton_parse_realloc
26 #define yyfree xbt_automaton_parse_free
27
28 #define FLEX_SCANNER
29 #define YY_FLEX_MAJOR_VERSION 2
30 #define YY_FLEX_MINOR_VERSION 5
31 #define YY_FLEX_SUBMINOR_VERSION 35
32 #if YY_FLEX_SUBMINOR_VERSION > 0
33 #define FLEX_BETA
34 #endif
35
36 /* First, we deal with  platform-specific or compiler-specific issues. */
37
38 /* begin standard C headers. */
39 #include <stdio.h>
40 #include <string.h>
41 #include <errno.h>
42 #include <stdlib.h>
43
44 /* end standard C headers. */
45
46 /* flex integer type definitions */
47
48 #ifndef FLEXINT_H
49 #define FLEXINT_H
50
51 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
52
53 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
54
55 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
56  * if you want the limit (max/min) macros for int types. 
57  */
58 #ifndef __STDC_LIMIT_MACROS
59 #define __STDC_LIMIT_MACROS 1
60 #endif
61
62 #include <inttypes.h>
63 typedef int8_t flex_int8_t;
64 typedef uint8_t flex_uint8_t;
65 typedef int16_t flex_int16_t;
66 typedef uint16_t flex_uint16_t;
67 typedef int32_t flex_int32_t;
68 typedef uint32_t flex_uint32_t;
69 #else
70 typedef signed char flex_int8_t;
71 typedef short int flex_int16_t;
72 typedef int flex_int32_t;
73 typedef unsigned char flex_uint8_t; 
74 typedef unsigned short int flex_uint16_t;
75 typedef unsigned int flex_uint32_t;
76
77 /* Limits of integral types. */
78 #ifndef INT8_MIN
79 #define INT8_MIN               (-128)
80 #endif
81 #ifndef INT16_MIN
82 #define INT16_MIN              (-32767-1)
83 #endif
84 #ifndef INT32_MIN
85 #define INT32_MIN              (-2147483647-1)
86 #endif
87 #ifndef INT8_MAX
88 #define INT8_MAX               (127)
89 #endif
90 #ifndef INT16_MAX
91 #define INT16_MAX              (32767)
92 #endif
93 #ifndef INT32_MAX
94 #define INT32_MAX              (2147483647)
95 #endif
96 #ifndef UINT8_MAX
97 #define UINT8_MAX              (255U)
98 #endif
99 #ifndef UINT16_MAX
100 #define UINT16_MAX             (65535U)
101 #endif
102 #ifndef UINT32_MAX
103 #define UINT32_MAX             (4294967295U)
104 #endif
105
106 #endif /* ! C99 */
107
108 #endif /* ! FLEXINT_H */
109
110 #ifdef __cplusplus
111
112 /* The "const" storage-class-modifier is valid. */
113 #define YY_USE_CONST
114
115 #else   /* ! __cplusplus */
116
117 /* C99 requires __STDC__ to be defined as 1. */
118 #if defined (__STDC__)
119
120 #define YY_USE_CONST
121
122 #endif  /* defined (__STDC__) */
123 #endif  /* ! __cplusplus */
124
125 #ifdef YY_USE_CONST
126 #define yyconst const
127 #else
128 #define yyconst
129 #endif
130
131 /* Returned upon end-of-file. */
132 #define YY_NULL 0
133
134 /* Promotes a possibly negative, possibly signed char to an unsigned
135  * integer for use as an array index.  If the signed char is negative,
136  * we want to instead treat it as an 8-bit unsigned char, hence the
137  * double cast.
138  */
139 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
140
141 /* Enter a start condition.  This macro really ought to take a parameter,
142  * but we do it the disgusting crufty way forced on us by the ()-less
143  * definition of BEGIN.
144  */
145 #define BEGIN (yy_start) = 1 + 2 *
146
147 /* Translate the current start state into a value that can be later handed
148  * to BEGIN to return to the state.  The YYSTATE alias is for lex
149  * compatibility.
150  */
151 #define YY_START (((yy_start) - 1) / 2)
152 #define YYSTATE YY_START
153
154 /* Action number for EOF rule of a given start state. */
155 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
156
157 /* Special action meaning "start processing a new file". */
158 #define YY_NEW_FILE xbt_automaton_parse_restart(xbt_automaton_parse_in  )
159
160 #define YY_END_OF_BUFFER_CHAR 0
161
162 /* Size of default input buffer. */
163 #ifndef YY_BUF_SIZE
164 #ifdef __ia64__
165 /* On IA-64, the buffer size is 16k, not 8k.
166  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
167  * Ditto for the __ia64__ case accordingly.
168  */
169 #define YY_BUF_SIZE 32768
170 #else
171 #define YY_BUF_SIZE 16384
172 #endif /* __ia64__ */
173 #endif
174
175 /* The state buf must be large enough to hold one state per character in the main buffer.
176  */
177 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
178
179 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
180 #define YY_TYPEDEF_YY_BUFFER_STATE
181 typedef struct yy_buffer_state *YY_BUFFER_STATE;
182 #endif
183
184 extern int xbt_automaton_parse_leng;
185
186 extern FILE *xbt_automaton_parse_in, *xbt_automaton_parse_out;
187
188 #define EOB_ACT_CONTINUE_SCAN 0
189 #define EOB_ACT_END_OF_FILE 1
190 #define EOB_ACT_LAST_MATCH 2
191
192     #define YY_LESS_LINENO(n)
193     
194 /* Return all but the first "n" matched characters back to the input stream. */
195 #define yyless(n) \
196         do \
197                 { \
198                 /* Undo effects of setting up xbt_automaton_parse_text. */ \
199         int yyless_macro_arg = (n); \
200         YY_LESS_LINENO(yyless_macro_arg);\
201                 *yy_cp = (yy_hold_char); \
202                 YY_RESTORE_YY_MORE_OFFSET \
203                 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
204                 YY_DO_BEFORE_ACTION; /* set up xbt_automaton_parse_text again */ \
205                 } \
206         while ( 0 )
207
208 #define unput(c) yyunput( c, (yytext_ptr)  )
209
210 #ifndef YY_TYPEDEF_YY_SIZE_T
211 #define YY_TYPEDEF_YY_SIZE_T
212 typedef size_t yy_size_t;
213 #endif
214
215 #ifndef YY_STRUCT_YY_BUFFER_STATE
216 #define YY_STRUCT_YY_BUFFER_STATE
217 struct yy_buffer_state
218         {
219         FILE *yy_input_file;
220
221         char *yy_ch_buf;                /* input buffer */
222         char *yy_buf_pos;               /* current position in input buffer */
223
224         /* Size of input buffer in bytes, not including room for EOB
225          * characters.
226          */
227         yy_size_t yy_buf_size;
228
229         /* Number of characters read into yy_ch_buf, not including EOB
230          * characters.
231          */
232         int yy_n_chars;
233
234         /* Whether we "own" the buffer - i.e., we know we created it,
235          * and can realloc() it to grow it, and should free() it to
236          * delete it.
237          */
238         int yy_is_our_buffer;
239
240         /* Whether this is an "interactive" input source; if so, and
241          * if we're using stdio for input, then we want to use getc()
242          * instead of fread(), to make sure we stop fetching input after
243          * each newline.
244          */
245         int yy_is_interactive;
246
247         /* Whether we're considered to be at the beginning of a line.
248          * If so, '^' rules will be active on the next match, otherwise
249          * not.
250          */
251         int yy_at_bol;
252
253     int yy_bs_lineno; /**< The line count. */
254     int yy_bs_column; /**< The column count. */
255     
256         /* Whether to try to fill the input buffer when we reach the
257          * end of it.
258          */
259         int yy_fill_buffer;
260
261         int yy_buffer_status;
262
263 #define YY_BUFFER_NEW 0
264 #define YY_BUFFER_NORMAL 1
265         /* When an EOF's been seen but there's still some text to process
266          * then we mark the buffer as YY_EOF_PENDING, to indicate that we
267          * shouldn't try reading from the input source any more.  We might
268          * still have a bunch of tokens to match, though, because of
269          * possible backing-up.
270          *
271          * When we actually see the EOF, we change the status to "new"
272          * (via xbt_automaton_parse_restart()), so that the user can continue scanning by
273          * just pointing xbt_automaton_parse_in at a new input file.
274          */
275 #define YY_BUFFER_EOF_PENDING 2
276
277         };
278 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
279
280 /* Stack of input buffers. */
281 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
282 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
283 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
284
285 /* We provide macros for accessing buffer states in case in the
286  * future we want to put the buffer states in a more general
287  * "scanner state".
288  *
289  * Returns the top of the stack, or NULL.
290  */
291 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
292                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
293                           : NULL)
294
295 /* Same as previous macro, but useful when we know that the buffer stack is not
296  * NULL or when we need an lvalue. For internal use only.
297  */
298 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
299
300 /* yy_hold_char holds the character lost when xbt_automaton_parse_text is formed. */
301 static char yy_hold_char;
302 static int yy_n_chars;          /* number of characters read into yy_ch_buf */
303 int xbt_automaton_parse_leng;
304
305 /* Points to current character in buffer. */
306 static char *yy_c_buf_p = (char *) 0;
307 static int yy_init = 0;         /* whether we need to initialize */
308 static int yy_start = 0;        /* start state number */
309
310 /* Flag which is used to allow xbt_automaton_parse_wrap()'s to do buffer switches
311  * instead of setting up a fresh xbt_automaton_parse_in.  A bit of a hack ...
312  */
313 static int yy_did_buffer_switch_on_eof;
314
315 void xbt_automaton_parse_restart (FILE *input_file  );
316 void xbt_automaton_parse__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
317 YY_BUFFER_STATE xbt_automaton_parse__create_buffer (FILE *file,int size  );
318 void xbt_automaton_parse__delete_buffer (YY_BUFFER_STATE b  );
319 void xbt_automaton_parse__flush_buffer (YY_BUFFER_STATE b  );
320 void xbt_automaton_parse_push_buffer_state (YY_BUFFER_STATE new_buffer  );
321 void xbt_automaton_parse_pop_buffer_state (void );
322
323 static void xbt_automaton_parse_ensure_buffer_stack (void );
324 static void xbt_automaton_parse__load_buffer_state (void );
325 static void xbt_automaton_parse__init_buffer (YY_BUFFER_STATE b,FILE *file  );
326
327 #define YY_FLUSH_BUFFER xbt_automaton_parse__flush_buffer(YY_CURRENT_BUFFER )
328
329 YY_BUFFER_STATE xbt_automaton_parse__scan_buffer (char *base,yy_size_t size  );
330 YY_BUFFER_STATE xbt_automaton_parse__scan_string (yyconst char *yy_str  );
331 YY_BUFFER_STATE xbt_automaton_parse__scan_bytes (yyconst char *bytes,int len  );
332
333 void *xbt_automaton_parse_alloc (yy_size_t  );
334 void *xbt_automaton_parse_realloc (void *,yy_size_t  );
335 void xbt_automaton_parse_free (void *  );
336
337 #define yy_new_buffer xbt_automaton_parse__create_buffer
338
339 #define yy_set_interactive(is_interactive) \
340         { \
341         if ( ! YY_CURRENT_BUFFER ){ \
342         xbt_automaton_parse_ensure_buffer_stack (); \
343                 YY_CURRENT_BUFFER_LVALUE =    \
344             xbt_automaton_parse__create_buffer(xbt_automaton_parse_in,YY_BUF_SIZE ); \
345         } \
346         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
347         }
348
349 #define yy_set_bol(at_bol) \
350         { \
351         if ( ! YY_CURRENT_BUFFER ){\
352         xbt_automaton_parse_ensure_buffer_stack (); \
353                 YY_CURRENT_BUFFER_LVALUE =    \
354             xbt_automaton_parse__create_buffer(xbt_automaton_parse_in,YY_BUF_SIZE ); \
355         } \
356         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
357         }
358
359 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
360
361 /* Begin user sect3 */
362
363 #define xbt_automaton_parse_wrap(n) 1
364 #define YY_SKIP_YYWRAP
365
366 typedef unsigned char YY_CHAR;
367
368 FILE *xbt_automaton_parse_in = (FILE *) 0, *xbt_automaton_parse_out = (FILE *) 0;
369
370 typedef int yy_state_type;
371
372 extern int xbt_automaton_parse_lineno;
373
374 int xbt_automaton_parse_lineno = 1;
375
376 extern char *xbt_automaton_parse_text;
377 #define yytext_ptr xbt_automaton_parse_text
378
379 static yy_state_type yy_get_previous_state (void );
380 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
381 static int yy_get_next_buffer (void );
382 static void yy_fatal_error (yyconst char msg[]  );
383
384 /* Done after the current pattern has been matched and before the
385  * corresponding action - sets up xbt_automaton_parse_text.
386  */
387 #define YY_DO_BEFORE_ACTION \
388         (yytext_ptr) = yy_bp; \
389         xbt_automaton_parse_leng = (size_t) (yy_cp - yy_bp); \
390         (yy_hold_char) = *yy_cp; \
391         *yy_cp = '\0'; \
392         (yy_c_buf_p) = yy_cp;
393
394 #define YY_NUM_RULES 25
395 #define YY_END_OF_BUFFER 26
396 /* This struct is not used in this scanner,
397    but its presence is necessary. */
398 struct yy_trans_info
399         {
400         flex_int32_t yy_verify;
401         flex_int32_t yy_nxt;
402         };
403 static yyconst flex_int16_t yy_accept[54] =
404     {   0,
405         0,    0,   26,   24,   18,   23,    8,   24,   24,    9,
406        10,   24,   24,   20,   14,   12,   13,   22,   22,   22,
407        22,   22,   15,   24,   16,   18,    0,    0,   21,    0,
408         6,    4,    0,    0,   20,   11,   22,    3,   22,    2,
409        22,    7,    0,    0,    0,   19,   22,   22,   17,    5,
410        22,    1,    0
411     } ;
412
413 static yyconst flex_int32_t yy_ec[256] =
414     {   0,
415         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
416         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
417         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
418         1,    4,    5,    6,    1,    1,    1,    7,    1,    8,
419         9,   10,    1,    1,   11,   12,   13,   14,   15,   14,
420        14,   14,   14,   14,   14,   14,   14,   16,   17,    1,
421         1,   18,    1,    1,   19,   19,   19,   19,   19,   19,
422        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
423        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
424         1,   20,    1,    1,   21,    1,   19,   19,   19,   19,
425
426        22,   23,   24,   19,   25,   19,   19,   19,   19,   26,
427        27,   19,   19,   28,   19,   29,   19,   30,   19,   19,
428        19,   19,   31,   32,   33,    1,    1,    1,    1,    1,
429         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
430         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
431         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
432         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
433         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
434         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
435         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
436
437         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
438         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
439         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
440         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
441         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
442         1,    1,    1,    1,    1
443     } ;
444
445 static yyconst flex_int32_t yy_meta[34] =
446     {   0,
447         1,    1,    2,    2,    1,    2,    1,    1,    1,    1,
448         1,    1,    3,    4,    4,    1,    1,    1,    4,    2,
449         4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
450         1,    1,    1
451     } ;
452
453 static yyconst flex_int16_t yy_base[57] =
454     {   0,
455         0,    0,   89,   90,   32,   90,   90,   34,   81,   90,
456        90,   69,   76,   27,   31,   69,   90,    0,   59,   56,
457        58,   55,   90,   42,   90,   45,   47,    0,    0,    0,
458        90,   90,   52,   43,   49,   90,    0,    0,   44,    0,
459        42,   90,   56,   65,   52,   56,   25,   26,   90,    0,
460        16,    0,   90,   74,   31,   78
461     } ;
462
463 static yyconst flex_int16_t yy_def[57] =
464     {   0,
465        53,    1,   53,   53,   53,   53,   53,   54,   53,   53,
466        53,   53,   53,   53,   53,   53,   53,   55,   55,   55,
467        55,   55,   53,   53,   53,   53,   54,   27,   27,   27,
468        53,   53,   56,   53,   53,   53,   55,   55,   55,   55,
469        55,   53,   56,   56,   53,   53,   55,   55,   53,   55,
470        55,   55,    0,   53,   53,   53
471     } ;
472
473 static yyconst flex_int16_t yy_nxt[124] =
474     {   0,
475         4,    5,    6,    5,    7,    8,    9,   10,   11,    4,
476        12,    4,   13,   14,   15,   16,   17,    4,   18,    4,
477         4,   18,   19,   20,   21,   22,   18,   18,   18,   18,
478        23,   24,   25,   26,   37,   26,   27,   28,   34,   29,
479        35,   35,   34,   52,   35,   35,   26,   51,   26,   27,
480        28,   50,   29,   27,   44,   44,   46,   46,   44,   44,
481        34,   45,   35,   35,   49,   45,   27,   44,   44,   46,
482        46,   48,   47,   42,   45,   30,   41,   30,   43,   43,
483        40,   43,   39,   38,   36,   33,   32,   31,   53,    3,
484        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
485
486        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
487        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
488        53,   53,   53
489     } ;
490
491 static yyconst flex_int16_t yy_chk[124] =
492     {   0,
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,
496         1,    1,    1,    5,   55,    5,    8,    8,   14,    8,
497        14,   14,   15,   51,   15,   15,   26,   48,   26,   27,
498        27,   47,   27,    8,   33,   33,   34,   34,   43,   43,
499        35,   33,   35,   35,   45,   43,   27,   44,   44,   46,
500        46,   41,   39,   24,   44,   54,   22,   54,   56,   56,
501        21,   56,   20,   19,   16,   13,   12,    9,    3,   53,
502        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
503
504        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
505        53,   53,   53,   53,   53,   53,   53,   53,   53,   53,
506        53,   53,   53
507     } ;
508
509 static yy_state_type yy_last_accepting_state;
510 static char *yy_last_accepting_cpos;
511
512 extern int xbt_automaton_parse__flex_debug;
513 int xbt_automaton_parse__flex_debug = 0;
514
515 /* The intent behind this definition is that it'll catch
516  * any uses of REJECT which flex missed.
517  */
518 #define REJECT reject_used_but_not_detected
519 #define yymore() yymore_used_but_not_detected
520 #define YY_MORE_ADJ 0
521 #define YY_RESTORE_YY_MORE_OFFSET
522 char *xbt_automaton_parse_text;
523 #line 1 "parserPromela.lex"
524 #line 4 "parserPromela.lex"
525
526
527 #include <stdio.h>
528 #include "y.tab.h"
529   
530   extern YYSTYPE yylval;
531  
532 #line 533 "automaton_parse.yy.c"
533
534 #define INITIAL 0
535
536 #ifndef YY_NO_UNISTD_H
537 /* Special case for "unistd.h", since it is non-ANSI. We include it way
538  * down here because we want the user's section 1 to have been scanned first.
539  * The user has a chance to override it with an option.
540  */
541 #include <unistd.h>
542 #endif
543
544 #ifndef YY_EXTRA_TYPE
545 #define YY_EXTRA_TYPE void *
546 #endif
547
548 static int yy_init_globals (void );
549
550 /* Accessor methods to globals.
551    These are made visible to non-reentrant scanners for convenience. */
552
553 int xbt_automaton_parse_lex_destroy (void );
554
555 int xbt_automaton_parse_get_debug (void );
556
557 void xbt_automaton_parse_set_debug (int debug_flag  );
558
559 YY_EXTRA_TYPE xbt_automaton_parse_get_extra (void );
560
561 void xbt_automaton_parse_set_extra (YY_EXTRA_TYPE user_defined  );
562
563 FILE *xbt_automaton_parse_get_in (void );
564
565 void xbt_automaton_parse_set_in  (FILE * in_str  );
566
567 FILE *xbt_automaton_parse_get_out (void );
568
569 void xbt_automaton_parse_set_out  (FILE * out_str  );
570
571 int xbt_automaton_parse_get_leng (void );
572
573 char *xbt_automaton_parse_get_text (void );
574
575 int xbt_automaton_parse_get_lineno (void );
576
577 void xbt_automaton_parse_set_lineno (int line_number  );
578
579 /* Macros after this point can all be overridden by user definitions in
580  * section 1.
581  */
582
583 #ifndef YY_SKIP_YYWRAP
584 #ifdef __cplusplus
585 extern "C" int xbt_automaton_parse_wrap (void );
586 #else
587 extern int xbt_automaton_parse_wrap (void );
588 #endif
589 #endif
590
591     static void yyunput (int c,char *buf_ptr  );
592     
593 #ifndef yytext_ptr
594 static void yy_flex_strncpy (char *,yyconst char *,int );
595 #endif
596
597 #ifdef YY_NEED_STRLEN
598 static int yy_flex_strlen (yyconst char * );
599 #endif
600
601 #ifndef YY_NO_INPUT
602
603 #ifdef __cplusplus
604 static int yyinput (void );
605 #else
606 static int input (void );
607 #endif
608
609 #endif
610
611 /* Amount of stuff to slurp up with each read. */
612 #ifndef YY_READ_BUF_SIZE
613 #ifdef __ia64__
614 /* On IA-64, the buffer size is 16k, not 8k */
615 #define YY_READ_BUF_SIZE 16384
616 #else
617 #define YY_READ_BUF_SIZE 8192
618 #endif /* __ia64__ */
619 #endif
620
621 /* Copy whatever the last rule matched to the standard output. */
622 #ifndef ECHO
623 /* This used to be an fputs(), but since the string might contain NUL's,
624  * we now use fwrite().
625  */
626 #define ECHO do { if (fwrite( xbt_automaton_parse_text, xbt_automaton_parse_leng, 1, xbt_automaton_parse_out )) {} } while (0)
627 #endif
628
629 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
630  * is returned in "result".
631  */
632 #ifndef YY_INPUT
633 #define YY_INPUT(buf,result,max_size) \
634         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
635                 { \
636                 int c = '*'; \
637                 size_t n; \
638                 for ( n = 0; n < max_size && \
639                              (c = getc( xbt_automaton_parse_in )) != EOF && c != '\n'; ++n ) \
640                         buf[n] = (char) c; \
641                 if ( c == '\n' ) \
642                         buf[n++] = (char) c; \
643                 if ( c == EOF && ferror( xbt_automaton_parse_in ) ) \
644                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
645                 result = n; \
646                 } \
647         else \
648                 { \
649                 errno=0; \
650                 while ( (result = fread(buf, 1, max_size, xbt_automaton_parse_in))==0 && ferror(xbt_automaton_parse_in)) \
651                         { \
652                         if( errno != EINTR) \
653                                 { \
654                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
655                                 break; \
656                                 } \
657                         errno=0; \
658                         clearerr(xbt_automaton_parse_in); \
659                         } \
660                 }\
661 \
662
663 #endif
664
665 /* No semi-colon after return; correct usage is to write "yyterminate();" -
666  * we don't want an extra ';' after the "return" because that will cause
667  * some compilers to complain about unreachable statements.
668  */
669 #ifndef yyterminate
670 #define yyterminate() return YY_NULL
671 #endif
672
673 /* Number of entries by which start-condition stack grows. */
674 #ifndef YY_START_STACK_INCR
675 #define YY_START_STACK_INCR 25
676 #endif
677
678 /* Report a fatal error. */
679 #ifndef YY_FATAL_ERROR
680 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
681 #endif
682
683 /* end tables serialization structures and prototypes */
684
685 /* Default declaration of generated scanner - a define so the user can
686  * easily add parameters.
687  */
688 #ifndef YY_DECL
689 #define YY_DECL_IS_OURS 1
690
691 extern int xbt_automaton_parse_lex (void);
692
693 #define YY_DECL int xbt_automaton_parse_lex (void)
694 #endif /* !YY_DECL */
695
696 /* Code executed at the beginning of each rule, after xbt_automaton_parse_text and xbt_automaton_parse_leng
697  * have been set up.
698  */
699 #ifndef YY_USER_ACTION
700 #define YY_USER_ACTION
701 #endif
702
703 /* Code executed at the end of each rule. */
704 #ifndef YY_BREAK
705 #define YY_BREAK break;
706 #endif
707
708 #define YY_RULE_SETUP \
709         YY_USER_ACTION
710
711 /** The main scanner function which does all the work.
712  */
713 YY_DECL
714 {
715         register yy_state_type yy_current_state;
716         register char *yy_cp, *yy_bp;
717         register int yy_act;
718     
719 #line 28 "parserPromela.lex"
720
721
722 #line 723 "automaton_parse.yy.c"
723
724         if ( !(yy_init) )
725                 {
726                 (yy_init) = 1;
727
728 #ifdef YY_USER_INIT
729                 YY_USER_INIT;
730 #endif
731
732                 if ( ! (yy_start) )
733                         (yy_start) = 1; /* first start state */
734
735                 if ( ! xbt_automaton_parse_in )
736                         xbt_automaton_parse_in = stdin;
737
738                 if ( ! xbt_automaton_parse_out )
739                         xbt_automaton_parse_out = stdout;
740
741                 if ( ! YY_CURRENT_BUFFER ) {
742                         xbt_automaton_parse_ensure_buffer_stack ();
743                         YY_CURRENT_BUFFER_LVALUE =
744                                 xbt_automaton_parse__create_buffer(xbt_automaton_parse_in,YY_BUF_SIZE );
745                 }
746
747                 xbt_automaton_parse__load_buffer_state( );
748                 }
749
750         while ( 1 )             /* loops until end-of-file is reached */
751                 {
752                 yy_cp = (yy_c_buf_p);
753
754                 /* Support of xbt_automaton_parse_text. */
755                 *yy_cp = (yy_hold_char);
756
757                 /* yy_bp points to the position in yy_ch_buf of the start of
758                  * the current run.
759                  */
760                 yy_bp = yy_cp;
761
762                 yy_current_state = (yy_start);
763 yy_match:
764                 do
765                         {
766                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
767                         if ( yy_accept[yy_current_state] )
768                                 {
769                                 (yy_last_accepting_state) = yy_current_state;
770                                 (yy_last_accepting_cpos) = yy_cp;
771                                 }
772                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
773                                 {
774                                 yy_current_state = (int) yy_def[yy_current_state];
775                                 if ( yy_current_state >= 54 )
776                                         yy_c = yy_meta[(unsigned int) yy_c];
777                                 }
778                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
779                         ++yy_cp;
780                         }
781                 while ( yy_base[yy_current_state] != 90 );
782
783 yy_find_action:
784                 yy_act = yy_accept[yy_current_state];
785                 if ( yy_act == 0 )
786                         { /* have to back up */
787                         yy_cp = (yy_last_accepting_cpos);
788                         yy_current_state = (yy_last_accepting_state);
789                         yy_act = yy_accept[yy_current_state];
790                         }
791
792                 YY_DO_BEFORE_ACTION;
793
794 do_action:      /* This label is used only to access EOF actions. */
795
796                 switch ( yy_act )
797         { /* beginning of action switch */
798                         case 0: /* must back up */
799                         /* undo the effects of YY_DO_BEFORE_ACTION */
800                         *yy_cp = (yy_hold_char);
801                         yy_cp = (yy_last_accepting_cpos);
802                         yy_current_state = (yy_last_accepting_state);
803                         goto yy_find_action;
804
805 case 1:
806 YY_RULE_SETUP
807 #line 30 "parserPromela.lex"
808 { printf("%s", xbt_automaton_parse_text); return (NEVER); }
809         YY_BREAK
810 case 2:
811 YY_RULE_SETUP
812 #line 31 "parserPromela.lex"
813 { printf("%s", xbt_automaton_parse_text); return (IF); }
814         YY_BREAK
815 case 3:
816 YY_RULE_SETUP
817 #line 32 "parserPromela.lex"
818 { printf("%s", xbt_automaton_parse_text); 
819                return (FI); }
820         YY_BREAK
821 case 4:
822 YY_RULE_SETUP
823 #line 34 "parserPromela.lex"
824 { printf("%s", xbt_automaton_parse_text); return (IMPLIES); }
825         YY_BREAK
826 case 5:
827 YY_RULE_SETUP
828 #line 35 "parserPromela.lex"
829 { printf("%s", xbt_automaton_parse_text); return (GOTO); }
830         YY_BREAK
831 case 6:
832 YY_RULE_SETUP
833 #line 36 "parserPromela.lex"
834 { printf("%s", xbt_automaton_parse_text); return (AND); }
835         YY_BREAK
836 case 7:
837 YY_RULE_SETUP
838 #line 37 "parserPromela.lex"
839 { printf("%s", xbt_automaton_parse_text); return (OR); }
840         YY_BREAK
841 case 8:
842 YY_RULE_SETUP
843 #line 38 "parserPromela.lex"
844 { printf("%s", xbt_automaton_parse_text); return (NOT); }
845         YY_BREAK
846 case 9:
847 YY_RULE_SETUP
848 #line 39 "parserPromela.lex"
849 { printf("%s", xbt_automaton_parse_text); return (LEFT_PAR); }
850         YY_BREAK
851 case 10:
852 YY_RULE_SETUP
853 #line 40 "parserPromela.lex"
854 { printf("%s", xbt_automaton_parse_text); return (RIGHT_PAR); }
855         YY_BREAK
856 case 11:
857 YY_RULE_SETUP
858 #line 41 "parserPromela.lex"
859 { printf("%s", xbt_automaton_parse_text); return (CASE); }
860         YY_BREAK
861 case 12:
862 YY_RULE_SETUP
863 #line 42 "parserPromela.lex"
864 { printf("%s", xbt_automaton_parse_text); return (COLON); }
865         YY_BREAK
866 case 13:
867 YY_RULE_SETUP
868 #line 43 "parserPromela.lex"
869 { printf("%s", xbt_automaton_parse_text); return (SEMI_COLON); }
870         YY_BREAK
871 case 14:
872 YY_RULE_SETUP
873 #line 44 "parserPromela.lex"
874 { printf("%s", xbt_automaton_parse_text); return (CASE_TRUE); }
875         YY_BREAK
876 case 15:
877 YY_RULE_SETUP
878 #line 45 "parserPromela.lex"
879 { printf("%s", xbt_automaton_parse_text); return (LEFT_BRACE); }
880         YY_BREAK
881 case 16:
882 YY_RULE_SETUP
883 #line 46 "parserPromela.lex"
884 { printf("%s", xbt_automaton_parse_text); return (RIGHT_BRACE); }
885         YY_BREAK
886 case 17:
887 /* rule 17 can match eol */
888 YY_RULE_SETUP
889 #line 49 "parserPromela.lex"
890 { printf(" ");}
891         YY_BREAK
892 case 18:
893 YY_RULE_SETUP
894 #line 51 "parserPromela.lex"
895 { printf("%s",xbt_automaton_parse_text); }
896         YY_BREAK
897 case 19:
898 YY_RULE_SETUP
899 #line 54 "parserPromela.lex"
900 { printf("%s",xbt_automaton_parse_text); 
901                             sscanf(xbt_automaton_parse_text,"%lf",&yylval.real); 
902                             return (LITT_REEL); }
903         YY_BREAK
904 case 20:
905 YY_RULE_SETUP
906 #line 58 "parserPromela.lex"
907 { printf("%s",xbt_automaton_parse_text); 
908                             sscanf(xbt_automaton_parse_text,"%d",&yylval.integer); 
909                             return (LITT_ENT); }
910         YY_BREAK
911 case 21:
912 /* rule 21 can match eol */
913 YY_RULE_SETUP
914 #line 62 "parserPromela.lex"
915 { printf("%s",xbt_automaton_parse_text);  
916                             yylval.string=(char *)malloc(strlen(xbt_automaton_parse_text)+1);
917                             sscanf(xbt_automaton_parse_text,"%s",yylval.string); 
918                             return (LITT_CHAINE); }
919         YY_BREAK
920 case 22:
921 YY_RULE_SETUP
922 #line 67 "parserPromela.lex"
923 { printf("%s",xbt_automaton_parse_text); 
924                             yylval.string=(char *)malloc(strlen(xbt_automaton_parse_text)+1);
925                             sscanf(xbt_automaton_parse_text,"%s",yylval.string);
926                             return (ID); }
927         YY_BREAK
928 case 23:
929 /* rule 23 can match eol */
930 YY_RULE_SETUP
931 #line 72 "parserPromela.lex"
932 { printf("\n"); }
933         YY_BREAK
934 case 24:
935 YY_RULE_SETUP
936 #line 74 "parserPromela.lex"
937 { printf("caractère inconnu\n"); }
938         YY_BREAK
939 case 25:
940 YY_RULE_SETUP
941 #line 76 "parserPromela.lex"
942 ECHO;
943         YY_BREAK
944 #line 945 "automaton_parse.yy.c"
945 case YY_STATE_EOF(INITIAL):
946         yyterminate();
947
948         case YY_END_OF_BUFFER:
949                 {
950                 /* Amount of text matched not including the EOB char. */
951                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
952
953                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
954                 *yy_cp = (yy_hold_char);
955                 YY_RESTORE_YY_MORE_OFFSET
956
957                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
958                         {
959                         /* We're scanning a new file or input source.  It's
960                          * possible that this happened because the user
961                          * just pointed xbt_automaton_parse_in at a new source and called
962                          * xbt_automaton_parse_lex().  If so, then we have to assure
963                          * consistency between YY_CURRENT_BUFFER and our
964                          * globals.  Here is the right place to do so, because
965                          * this is the first action (other than possibly a
966                          * back-up) that will match for the new input source.
967                          */
968                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
969                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = xbt_automaton_parse_in;
970                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
971                         }
972
973                 /* Note that here we test for yy_c_buf_p "<=" to the position
974                  * of the first EOB in the buffer, since yy_c_buf_p will
975                  * already have been incremented past the NUL character
976                  * (since all states make transitions on EOB to the
977                  * end-of-buffer state).  Contrast this with the test
978                  * in input().
979                  */
980                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
981                         { /* This was really a NUL. */
982                         yy_state_type yy_next_state;
983
984                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
985
986                         yy_current_state = yy_get_previous_state(  );
987
988                         /* Okay, we're now positioned to make the NUL
989                          * transition.  We couldn't have
990                          * yy_get_previous_state() go ahead and do it
991                          * for us because it doesn't know how to deal
992                          * with the possibility of jamming (and we don't
993                          * want to build jamming into it because then it
994                          * will run more slowly).
995                          */
996
997                         yy_next_state = yy_try_NUL_trans( yy_current_state );
998
999                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1000
1001                         if ( yy_next_state )
1002                                 {
1003                                 /* Consume the NUL. */
1004                                 yy_cp = ++(yy_c_buf_p);
1005                                 yy_current_state = yy_next_state;
1006                                 goto yy_match;
1007                                 }
1008
1009                         else
1010                                 {
1011                                 yy_cp = (yy_c_buf_p);
1012                                 goto yy_find_action;
1013                                 }
1014                         }
1015
1016                 else switch ( yy_get_next_buffer(  ) )
1017                         {
1018                         case EOB_ACT_END_OF_FILE:
1019                                 {
1020                                 (yy_did_buffer_switch_on_eof) = 0;
1021
1022                                 if ( xbt_automaton_parse_wrap( ) )
1023                                         {
1024                                         /* Note: because we've taken care in
1025                                          * yy_get_next_buffer() to have set up
1026                                          * xbt_automaton_parse_text, we can now set up
1027                                          * yy_c_buf_p so that if some total
1028                                          * hoser (like flex itself) wants to
1029                                          * call the scanner after we return the
1030                                          * YY_NULL, it'll still work - another
1031                                          * YY_NULL will get returned.
1032                                          */
1033                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1034
1035                                         yy_act = YY_STATE_EOF(YY_START);
1036                                         goto do_action;
1037                                         }
1038
1039                                 else
1040                                         {
1041                                         if ( ! (yy_did_buffer_switch_on_eof) )
1042                                                 YY_NEW_FILE;
1043                                         }
1044                                 break;
1045                                 }
1046
1047                         case EOB_ACT_CONTINUE_SCAN:
1048                                 (yy_c_buf_p) =
1049                                         (yytext_ptr) + yy_amount_of_matched_text;
1050
1051                                 yy_current_state = yy_get_previous_state(  );
1052
1053                                 yy_cp = (yy_c_buf_p);
1054                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1055                                 goto yy_match;
1056
1057                         case EOB_ACT_LAST_MATCH:
1058                                 (yy_c_buf_p) =
1059                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1060
1061                                 yy_current_state = yy_get_previous_state(  );
1062
1063                                 yy_cp = (yy_c_buf_p);
1064                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1065                                 goto yy_find_action;
1066                         }
1067                 break;
1068                 }
1069
1070         default:
1071                 YY_FATAL_ERROR(
1072                         "fatal flex scanner internal error--no action found" );
1073         } /* end of action switch */
1074                 } /* end of scanning one token */
1075 } /* end of xbt_automaton_parse_lex */
1076
1077 /* yy_get_next_buffer - try to read in a new buffer
1078  *
1079  * Returns a code representing an action:
1080  *      EOB_ACT_LAST_MATCH -
1081  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1082  *      EOB_ACT_END_OF_FILE - end of file
1083  */
1084 static int yy_get_next_buffer (void)
1085 {
1086         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1087         register char *source = (yytext_ptr);
1088         register int number_to_move, i;
1089         int ret_val;
1090
1091         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1092                 YY_FATAL_ERROR(
1093                 "fatal flex scanner internal error--end of buffer missed" );
1094
1095         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1096                 { /* Don't try to fill the buffer, so this is an EOF. */
1097                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1098                         {
1099                         /* We matched a single character, the EOB, so
1100                          * treat this as a final EOF.
1101                          */
1102                         return EOB_ACT_END_OF_FILE;
1103                         }
1104
1105                 else
1106                         {
1107                         /* We matched some text prior to the EOB, first
1108                          * process it.
1109                          */
1110                         return EOB_ACT_LAST_MATCH;
1111                         }
1112                 }
1113
1114         /* Try to read more data. */
1115
1116         /* First move last chars to start of buffer. */
1117         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1118
1119         for ( i = 0; i < number_to_move; ++i )
1120                 *(dest++) = *(source++);
1121
1122         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1123                 /* don't do the read, it's not guaranteed to return an EOF,
1124                  * just force an EOF
1125                  */
1126                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1127
1128         else
1129                 {
1130                         int num_to_read =
1131                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1132
1133                 while ( num_to_read <= 0 )
1134                         { /* Not enough room in the buffer - grow it. */
1135
1136                         /* just a shorter name for the current buffer */
1137                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
1138
1139                         int yy_c_buf_p_offset =
1140                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
1141
1142                         if ( b->yy_is_our_buffer )
1143                                 {
1144                                 int new_size = b->yy_buf_size * 2;
1145
1146                                 if ( new_size <= 0 )
1147                                         b->yy_buf_size += b->yy_buf_size / 8;
1148                                 else
1149                                         b->yy_buf_size *= 2;
1150
1151                                 b->yy_ch_buf = (char *)
1152                                         /* Include room in for 2 EOB chars. */
1153                                         xbt_automaton_parse_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
1154                                 }
1155                         else
1156                                 /* Can't grow it, we don't own it. */
1157                                 b->yy_ch_buf = 0;
1158
1159                         if ( ! b->yy_ch_buf )
1160                                 YY_FATAL_ERROR(
1161                                 "fatal error - scanner input buffer overflow" );
1162
1163                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1164
1165                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1166                                                 number_to_move - 1;
1167
1168                         }
1169
1170                 if ( num_to_read > YY_READ_BUF_SIZE )
1171                         num_to_read = YY_READ_BUF_SIZE;
1172
1173                 /* Read in more data. */
1174                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1175                         (yy_n_chars), (size_t) num_to_read );
1176
1177                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1178                 }
1179
1180         if ( (yy_n_chars) == 0 )
1181                 {
1182                 if ( number_to_move == YY_MORE_ADJ )
1183                         {
1184                         ret_val = EOB_ACT_END_OF_FILE;
1185                         xbt_automaton_parse_restart(xbt_automaton_parse_in  );
1186                         }
1187
1188                 else
1189                         {
1190                         ret_val = EOB_ACT_LAST_MATCH;
1191                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1192                                 YY_BUFFER_EOF_PENDING;
1193                         }
1194                 }
1195
1196         else
1197                 ret_val = EOB_ACT_CONTINUE_SCAN;
1198
1199         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1200                 /* Extend the array by 50%, plus the number we really need. */
1201                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1202                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) xbt_automaton_parse_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
1203                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1204                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1205         }
1206
1207         (yy_n_chars) += number_to_move;
1208         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1209         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1210
1211         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1212
1213         return ret_val;
1214 }
1215
1216 /* yy_get_previous_state - get the state just before the EOB char was reached */
1217
1218     static yy_state_type yy_get_previous_state (void)
1219 {
1220         register yy_state_type yy_current_state;
1221         register char *yy_cp;
1222     
1223         yy_current_state = (yy_start);
1224
1225         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1226                 {
1227                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1228                 if ( yy_accept[yy_current_state] )
1229                         {
1230                         (yy_last_accepting_state) = yy_current_state;
1231                         (yy_last_accepting_cpos) = yy_cp;
1232                         }
1233                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1234                         {
1235                         yy_current_state = (int) yy_def[yy_current_state];
1236                         if ( yy_current_state >= 54 )
1237                                 yy_c = yy_meta[(unsigned int) yy_c];
1238                         }
1239                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1240                 }
1241
1242         return yy_current_state;
1243 }
1244
1245 /* yy_try_NUL_trans - try to make a transition on the NUL character
1246  *
1247  * synopsis
1248  *      next_state = yy_try_NUL_trans( current_state );
1249  */
1250     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
1251 {
1252         register int yy_is_jam;
1253         register char *yy_cp = (yy_c_buf_p);
1254
1255         register YY_CHAR yy_c = 1;
1256         if ( yy_accept[yy_current_state] )
1257                 {
1258                 (yy_last_accepting_state) = yy_current_state;
1259                 (yy_last_accepting_cpos) = yy_cp;
1260                 }
1261         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1262                 {
1263                 yy_current_state = (int) yy_def[yy_current_state];
1264                 if ( yy_current_state >= 54 )
1265                         yy_c = yy_meta[(unsigned int) yy_c];
1266                 }
1267         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1268         yy_is_jam = (yy_current_state == 53);
1269
1270         return yy_is_jam ? 0 : yy_current_state;
1271 }
1272
1273     static void yyunput (int c, register char * yy_bp )
1274 {
1275         register char *yy_cp;
1276     
1277     yy_cp = (yy_c_buf_p);
1278
1279         /* undo effects of setting up xbt_automaton_parse_text */
1280         *yy_cp = (yy_hold_char);
1281
1282         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1283                 { /* need to shift things up to make room */
1284                 /* +2 for EOB chars. */
1285                 register int number_to_move = (yy_n_chars) + 2;
1286                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
1287                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
1288                 register char *source =
1289                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
1290
1291                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1292                         *--dest = *--source;
1293
1294                 yy_cp += (int) (dest - source);
1295                 yy_bp += (int) (dest - source);
1296                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
1297                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
1298
1299                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1300                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
1301                 }
1302
1303         *--yy_cp = (char) c;
1304
1305         (yytext_ptr) = yy_bp;
1306         (yy_hold_char) = *yy_cp;
1307         (yy_c_buf_p) = yy_cp;
1308 }
1309
1310 #ifndef YY_NO_INPUT
1311 #ifdef __cplusplus
1312     static int yyinput (void)
1313 #else
1314     static int input  (void)
1315 #endif
1316
1317 {
1318         int c;
1319     
1320         *(yy_c_buf_p) = (yy_hold_char);
1321
1322         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1323                 {
1324                 /* yy_c_buf_p now points to the character we want to return.
1325                  * If this occurs *before* the EOB characters, then it's a
1326                  * valid NUL; if not, then we've hit the end of the buffer.
1327                  */
1328                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1329                         /* This was really a NUL. */
1330                         *(yy_c_buf_p) = '\0';
1331
1332                 else
1333                         { /* need more input */
1334                         int offset = (yy_c_buf_p) - (yytext_ptr);
1335                         ++(yy_c_buf_p);
1336
1337                         switch ( yy_get_next_buffer(  ) )
1338                                 {
1339                                 case EOB_ACT_LAST_MATCH:
1340                                         /* This happens because yy_g_n_b()
1341                                          * sees that we've accumulated a
1342                                          * token and flags that we need to
1343                                          * try matching the token before
1344                                          * proceeding.  But for input(),
1345                                          * there's no matching to consider.
1346                                          * So convert the EOB_ACT_LAST_MATCH
1347                                          * to EOB_ACT_END_OF_FILE.
1348                                          */
1349
1350                                         /* Reset buffer status. */
1351                                         xbt_automaton_parse_restart(xbt_automaton_parse_in );
1352
1353                                         /*FALLTHROUGH*/
1354
1355                                 case EOB_ACT_END_OF_FILE:
1356                                         {
1357                                         if ( xbt_automaton_parse_wrap( ) )
1358                                                 return EOF;
1359
1360                                         if ( ! (yy_did_buffer_switch_on_eof) )
1361                                                 YY_NEW_FILE;
1362 #ifdef __cplusplus
1363                                         return yyinput();
1364 #else
1365                                         return input();
1366 #endif
1367                                         }
1368
1369                                 case EOB_ACT_CONTINUE_SCAN:
1370                                         (yy_c_buf_p) = (yytext_ptr) + offset;
1371                                         break;
1372                                 }
1373                         }
1374                 }
1375
1376         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
1377         *(yy_c_buf_p) = '\0';   /* preserve xbt_automaton_parse_text */
1378         (yy_hold_char) = *++(yy_c_buf_p);
1379
1380         return c;
1381 }
1382 #endif  /* ifndef YY_NO_INPUT */
1383
1384 /** Immediately switch to a different input stream.
1385  * @param input_file A readable stream.
1386  * 
1387  * @note This function does not reset the start condition to @c INITIAL .
1388  */
1389     void xbt_automaton_parse_restart  (FILE * input_file )
1390 {
1391     
1392         if ( ! YY_CURRENT_BUFFER ){
1393         xbt_automaton_parse_ensure_buffer_stack ();
1394                 YY_CURRENT_BUFFER_LVALUE =
1395             xbt_automaton_parse__create_buffer(xbt_automaton_parse_in,YY_BUF_SIZE );
1396         }
1397
1398         xbt_automaton_parse__init_buffer(YY_CURRENT_BUFFER,input_file );
1399         xbt_automaton_parse__load_buffer_state( );
1400 }
1401
1402 /** Switch to a different input buffer.
1403  * @param new_buffer The new input buffer.
1404  * 
1405  */
1406     void xbt_automaton_parse__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
1407 {
1408     
1409         /* TODO. We should be able to replace this entire function body
1410          * with
1411          *              xbt_automaton_parse_pop_buffer_state();
1412          *              xbt_automaton_parse_push_buffer_state(new_buffer);
1413      */
1414         xbt_automaton_parse_ensure_buffer_stack ();
1415         if ( YY_CURRENT_BUFFER == new_buffer )
1416                 return;
1417
1418         if ( YY_CURRENT_BUFFER )
1419                 {
1420                 /* Flush out information for old buffer. */
1421                 *(yy_c_buf_p) = (yy_hold_char);
1422                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1423                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1424                 }
1425
1426         YY_CURRENT_BUFFER_LVALUE = new_buffer;
1427         xbt_automaton_parse__load_buffer_state( );
1428
1429         /* We don't actually know whether we did this switch during
1430          * EOF (xbt_automaton_parse_wrap()) processing, but the only time this flag
1431          * is looked at is after xbt_automaton_parse_wrap() is called, so it's safe
1432          * to go ahead and always set it.
1433          */
1434         (yy_did_buffer_switch_on_eof) = 1;
1435 }
1436
1437 static void xbt_automaton_parse__load_buffer_state  (void)
1438 {
1439         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1440         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1441         xbt_automaton_parse_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1442         (yy_hold_char) = *(yy_c_buf_p);
1443 }
1444
1445 /** Allocate and initialize an input buffer state.
1446  * @param file A readable stream.
1447  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1448  * 
1449  * @return the allocated buffer state.
1450  */
1451     YY_BUFFER_STATE xbt_automaton_parse__create_buffer  (FILE * file, int  size )
1452 {
1453         YY_BUFFER_STATE b;
1454     
1455         b = (YY_BUFFER_STATE) xbt_automaton_parse_alloc(sizeof( struct yy_buffer_state )  );
1456         if ( ! b )
1457                 YY_FATAL_ERROR( "out of dynamic memory in xbt_automaton_parse__create_buffer()" );
1458
1459         b->yy_buf_size = size;
1460
1461         /* yy_ch_buf has to be 2 characters longer than the size given because
1462          * we need to put in 2 end-of-buffer characters.
1463          */
1464         b->yy_ch_buf = (char *) xbt_automaton_parse_alloc(b->yy_buf_size + 2  );
1465         if ( ! b->yy_ch_buf )
1466                 YY_FATAL_ERROR( "out of dynamic memory in xbt_automaton_parse__create_buffer()" );
1467
1468         b->yy_is_our_buffer = 1;
1469
1470         xbt_automaton_parse__init_buffer(b,file );
1471
1472         return b;
1473 }
1474
1475 /** Destroy the buffer.
1476  * @param b a buffer created with xbt_automaton_parse__create_buffer()
1477  * 
1478  */
1479     void xbt_automaton_parse__delete_buffer (YY_BUFFER_STATE  b )
1480 {
1481     
1482         if ( ! b )
1483                 return;
1484
1485         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1486                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1487
1488         if ( b->yy_is_our_buffer )
1489                 xbt_automaton_parse_free((void *) b->yy_ch_buf  );
1490
1491         xbt_automaton_parse_free((void *) b  );
1492 }
1493
1494 #ifndef __cplusplus
1495 extern int isatty (int );
1496 #endif /* __cplusplus */
1497     
1498 /* Initializes or reinitializes a buffer.
1499  * This function is sometimes called more than once on the same buffer,
1500  * such as during a xbt_automaton_parse_restart() or at EOF.
1501  */
1502     static void xbt_automaton_parse__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
1503
1504 {
1505         int oerrno = errno;
1506     
1507         xbt_automaton_parse__flush_buffer(b );
1508
1509         b->yy_input_file = file;
1510         b->yy_fill_buffer = 1;
1511
1512     /* If b is the current buffer, then xbt_automaton_parse__init_buffer was _probably_
1513      * called from xbt_automaton_parse_restart() or through yy_get_next_buffer.
1514      * In that case, we don't want to reset the lineno or column.
1515      */
1516     if (b != YY_CURRENT_BUFFER){
1517         b->yy_bs_lineno = 1;
1518         b->yy_bs_column = 0;
1519     }
1520
1521         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1522     
1523         errno = oerrno;
1524 }
1525
1526 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1527  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1528  * 
1529  */
1530     void xbt_automaton_parse__flush_buffer (YY_BUFFER_STATE  b )
1531 {
1532         if ( ! b )
1533                 return;
1534
1535         b->yy_n_chars = 0;
1536
1537         /* We always need two end-of-buffer characters.  The first causes
1538          * a transition to the end-of-buffer state.  The second causes
1539          * a jam in that state.
1540          */
1541         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1542         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1543
1544         b->yy_buf_pos = &b->yy_ch_buf[0];
1545
1546         b->yy_at_bol = 1;
1547         b->yy_buffer_status = YY_BUFFER_NEW;
1548
1549         if ( b == YY_CURRENT_BUFFER )
1550                 xbt_automaton_parse__load_buffer_state( );
1551 }
1552
1553 /** Pushes the new state onto the stack. The new state becomes
1554  *  the current state. This function will allocate the stack
1555  *  if necessary.
1556  *  @param new_buffer The new state.
1557  *  
1558  */
1559 void xbt_automaton_parse_push_buffer_state (YY_BUFFER_STATE new_buffer )
1560 {
1561         if (new_buffer == NULL)
1562                 return;
1563
1564         xbt_automaton_parse_ensure_buffer_stack();
1565
1566         /* This block is copied from xbt_automaton_parse__switch_to_buffer. */
1567         if ( YY_CURRENT_BUFFER )
1568                 {
1569                 /* Flush out information for old buffer. */
1570                 *(yy_c_buf_p) = (yy_hold_char);
1571                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1572                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1573                 }
1574
1575         /* Only push if top exists. Otherwise, replace top. */
1576         if (YY_CURRENT_BUFFER)
1577                 (yy_buffer_stack_top)++;
1578         YY_CURRENT_BUFFER_LVALUE = new_buffer;
1579
1580         /* copied from xbt_automaton_parse__switch_to_buffer. */
1581         xbt_automaton_parse__load_buffer_state( );
1582         (yy_did_buffer_switch_on_eof) = 1;
1583 }
1584
1585 /** Removes and deletes the top of the stack, if present.
1586  *  The next element becomes the new top.
1587  *  
1588  */
1589 void xbt_automaton_parse_pop_buffer_state (void)
1590 {
1591         if (!YY_CURRENT_BUFFER)
1592                 return;
1593
1594         xbt_automaton_parse__delete_buffer(YY_CURRENT_BUFFER );
1595         YY_CURRENT_BUFFER_LVALUE = NULL;
1596         if ((yy_buffer_stack_top) > 0)
1597                 --(yy_buffer_stack_top);
1598
1599         if (YY_CURRENT_BUFFER) {
1600                 xbt_automaton_parse__load_buffer_state( );
1601                 (yy_did_buffer_switch_on_eof) = 1;
1602         }
1603 }
1604
1605 /* Allocates the stack if it does not exist.
1606  *  Guarantees space for at least one push.
1607  */
1608 static void xbt_automaton_parse_ensure_buffer_stack (void)
1609 {
1610         int num_to_alloc;
1611     
1612         if (!(yy_buffer_stack)) {
1613
1614                 /* First allocation is just for 2 elements, since we don't know if this
1615                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
1616                  * immediate realloc on the next call.
1617          */
1618                 num_to_alloc = 1;
1619                 (yy_buffer_stack) = (struct yy_buffer_state**)xbt_automaton_parse_alloc
1620                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
1621                                                                 );
1622                 if ( ! (yy_buffer_stack) )
1623                         YY_FATAL_ERROR( "out of dynamic memory in xbt_automaton_parse_ensure_buffer_stack()" );
1624                                                                   
1625                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1626                                 
1627                 (yy_buffer_stack_max) = num_to_alloc;
1628                 (yy_buffer_stack_top) = 0;
1629                 return;
1630         }
1631
1632         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
1633
1634                 /* Increase the buffer to prepare for a possible push. */
1635                 int grow_size = 8 /* arbitrary grow size */;
1636
1637                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
1638                 (yy_buffer_stack) = (struct yy_buffer_state**)xbt_automaton_parse_realloc
1639                                                                 ((yy_buffer_stack),
1640                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
1641                                                                 );
1642                 if ( ! (yy_buffer_stack) )
1643                         YY_FATAL_ERROR( "out of dynamic memory in xbt_automaton_parse_ensure_buffer_stack()" );
1644
1645                 /* zero only the new slots.*/
1646                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
1647                 (yy_buffer_stack_max) = num_to_alloc;
1648         }
1649 }
1650
1651 /** Setup the input buffer state to scan directly from a user-specified character buffer.
1652  * @param base the character buffer
1653  * @param size the size in bytes of the character buffer
1654  * 
1655  * @return the newly allocated buffer state object. 
1656  */
1657 YY_BUFFER_STATE xbt_automaton_parse__scan_buffer  (char * base, yy_size_t  size )
1658 {
1659         YY_BUFFER_STATE b;
1660     
1661         if ( size < 2 ||
1662              base[size-2] != YY_END_OF_BUFFER_CHAR ||
1663              base[size-1] != YY_END_OF_BUFFER_CHAR )
1664                 /* They forgot to leave room for the EOB's. */
1665                 return 0;
1666
1667         b = (YY_BUFFER_STATE) xbt_automaton_parse_alloc(sizeof( struct yy_buffer_state )  );
1668         if ( ! b )
1669                 YY_FATAL_ERROR( "out of dynamic memory in xbt_automaton_parse__scan_buffer()" );
1670
1671         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
1672         b->yy_buf_pos = b->yy_ch_buf = base;
1673         b->yy_is_our_buffer = 0;
1674         b->yy_input_file = 0;
1675         b->yy_n_chars = b->yy_buf_size;
1676         b->yy_is_interactive = 0;
1677         b->yy_at_bol = 1;
1678         b->yy_fill_buffer = 0;
1679         b->yy_buffer_status = YY_BUFFER_NEW;
1680
1681         xbt_automaton_parse__switch_to_buffer(b  );
1682
1683         return b;
1684 }
1685
1686 /** Setup the input buffer state to scan a string. The next call to xbt_automaton_parse_lex() will
1687  * scan from a @e copy of @a str.
1688  * @param yystr a NUL-terminated string to scan
1689  * 
1690  * @return the newly allocated buffer state object.
1691  * @note If you want to scan bytes that may contain NUL values, then use
1692  *       xbt_automaton_parse__scan_bytes() instead.
1693  */
1694 YY_BUFFER_STATE xbt_automaton_parse__scan_string (yyconst char * yystr )
1695 {
1696     
1697         return xbt_automaton_parse__scan_bytes(yystr,strlen(yystr) );
1698 }
1699
1700 /** Setup the input buffer state to scan the given bytes. The next call to xbt_automaton_parse_lex() will
1701  * scan from a @e copy of @a bytes.
1702  * @param yybytes the byte buffer to scan
1703  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
1704  * 
1705  * @return the newly allocated buffer state object.
1706  */
1707 YY_BUFFER_STATE xbt_automaton_parse__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
1708 {
1709         YY_BUFFER_STATE b;
1710         char *buf;
1711         yy_size_t n;
1712         int i;
1713     
1714         /* Get memory for full buffer, including space for trailing EOB's. */
1715         n = _yybytes_len + 2;
1716         buf = (char *) xbt_automaton_parse_alloc(n  );
1717         if ( ! buf )
1718                 YY_FATAL_ERROR( "out of dynamic memory in xbt_automaton_parse__scan_bytes()" );
1719
1720         for ( i = 0; i < _yybytes_len; ++i )
1721                 buf[i] = yybytes[i];
1722
1723         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
1724
1725         b = xbt_automaton_parse__scan_buffer(buf,n );
1726         if ( ! b )
1727                 YY_FATAL_ERROR( "bad buffer in xbt_automaton_parse__scan_bytes()" );
1728
1729         /* It's okay to grow etc. this buffer, and we should throw it
1730          * away when we're done.
1731          */
1732         b->yy_is_our_buffer = 1;
1733
1734         return b;
1735 }
1736
1737 #ifndef YY_EXIT_FAILURE
1738 #define YY_EXIT_FAILURE 2
1739 #endif
1740
1741 static void yy_fatal_error (yyconst char* msg )
1742 {
1743         (void) fprintf( stderr, "%s\n", msg );
1744         exit( YY_EXIT_FAILURE );
1745 }
1746
1747 /* Redefine yyless() so it works in section 3 code. */
1748
1749 #undef yyless
1750 #define yyless(n) \
1751         do \
1752                 { \
1753                 /* Undo effects of setting up xbt_automaton_parse_text. */ \
1754         int yyless_macro_arg = (n); \
1755         YY_LESS_LINENO(yyless_macro_arg);\
1756                 xbt_automaton_parse_text[xbt_automaton_parse_leng] = (yy_hold_char); \
1757                 (yy_c_buf_p) = xbt_automaton_parse_text + yyless_macro_arg; \
1758                 (yy_hold_char) = *(yy_c_buf_p); \
1759                 *(yy_c_buf_p) = '\0'; \
1760                 xbt_automaton_parse_leng = yyless_macro_arg; \
1761                 } \
1762         while ( 0 )
1763
1764 /* Accessor  methods (get/set functions) to struct members. */
1765
1766 /** Get the current line number.
1767  * 
1768  */
1769 int xbt_automaton_parse_get_lineno  (void)
1770 {
1771         
1772     return xbt_automaton_parse_lineno;
1773 }
1774
1775 /** Get the input stream.
1776  * 
1777  */
1778 FILE *xbt_automaton_parse_get_in  (void)
1779 {
1780         return xbt_automaton_parse_in;
1781 }
1782
1783 /** Get the output stream.
1784  * 
1785  */
1786 FILE *xbt_automaton_parse_get_out  (void)
1787 {
1788         return xbt_automaton_parse_out;
1789 }
1790
1791 /** Get the length of the current token.
1792  * 
1793  */
1794 int xbt_automaton_parse_get_leng  (void)
1795 {
1796         return xbt_automaton_parse_leng;
1797 }
1798
1799 /** Get the current token.
1800  * 
1801  */
1802
1803 char *xbt_automaton_parse_get_text  (void)
1804 {
1805         return xbt_automaton_parse_text;
1806 }
1807
1808 /** Set the current line number.
1809  * @param line_number
1810  * 
1811  */
1812 void xbt_automaton_parse_set_lineno (int  line_number )
1813 {
1814     
1815     xbt_automaton_parse_lineno = line_number;
1816 }
1817
1818 /** Set the input stream. This does not discard the current
1819  * input buffer.
1820  * @param in_str A readable stream.
1821  * 
1822  * @see xbt_automaton_parse__switch_to_buffer
1823  */
1824 void xbt_automaton_parse_set_in (FILE *  in_str )
1825 {
1826         xbt_automaton_parse_in = in_str ;
1827 }
1828
1829 void xbt_automaton_parse_set_out (FILE *  out_str )
1830 {
1831         xbt_automaton_parse_out = out_str ;
1832 }
1833
1834 int xbt_automaton_parse_get_debug  (void)
1835 {
1836         return xbt_automaton_parse__flex_debug;
1837 }
1838
1839 void xbt_automaton_parse_set_debug (int  bdebug )
1840 {
1841         xbt_automaton_parse__flex_debug = bdebug ;
1842 }
1843
1844 static int yy_init_globals (void)
1845 {
1846         /* Initialization is the same as for the non-reentrant scanner.
1847      * This function is called from xbt_automaton_parse_lex_destroy(), so don't allocate here.
1848      */
1849
1850     (yy_buffer_stack) = 0;
1851     (yy_buffer_stack_top) = 0;
1852     (yy_buffer_stack_max) = 0;
1853     (yy_c_buf_p) = (char *) 0;
1854     (yy_init) = 0;
1855     (yy_start) = 0;
1856
1857 /* Defined in main.c */
1858 #ifdef YY_STDINIT
1859     xbt_automaton_parse_in = stdin;
1860     xbt_automaton_parse_out = stdout;
1861 #else
1862     xbt_automaton_parse_in = (FILE *) 0;
1863     xbt_automaton_parse_out = (FILE *) 0;
1864 #endif
1865
1866     /* For future reference: Set errno on error, since we are called by
1867      * xbt_automaton_parse_lex_init()
1868      */
1869     return 0;
1870 }
1871
1872 /* xbt_automaton_parse_lex_destroy is for both reentrant and non-reentrant scanners. */
1873 int xbt_automaton_parse_lex_destroy  (void)
1874 {
1875     
1876     /* Pop the buffer stack, destroying each element. */
1877         while(YY_CURRENT_BUFFER){
1878                 xbt_automaton_parse__delete_buffer(YY_CURRENT_BUFFER  );
1879                 YY_CURRENT_BUFFER_LVALUE = NULL;
1880                 xbt_automaton_parse_pop_buffer_state();
1881         }
1882
1883         /* Destroy the stack itself. */
1884         xbt_automaton_parse_free((yy_buffer_stack) );
1885         (yy_buffer_stack) = NULL;
1886
1887     /* Reset the globals. This is important in a non-reentrant scanner so the next time
1888      * xbt_automaton_parse_lex() is called, initialization will occur. */
1889     yy_init_globals( );
1890
1891     return 0;
1892 }
1893
1894 /*
1895  * Internal utility routines.
1896  */
1897
1898 #ifndef yytext_ptr
1899 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
1900 {
1901         register int i;
1902         for ( i = 0; i < n; ++i )
1903                 s1[i] = s2[i];
1904 }
1905 #endif
1906
1907 #ifdef YY_NEED_STRLEN
1908 static int yy_flex_strlen (yyconst char * s )
1909 {
1910         register int n;
1911         for ( n = 0; s[n]; ++n )
1912                 ;
1913
1914         return n;
1915 }
1916 #endif
1917
1918 void *xbt_automaton_parse_alloc (yy_size_t  size )
1919 {
1920         return (void *) malloc( size );
1921 }
1922
1923 void *xbt_automaton_parse_realloc  (void * ptr, yy_size_t  size )
1924 {
1925         /* The cast to (char *) in the following accommodates both
1926          * implementations that use char* generic pointers, and those
1927          * that use void* generic pointers.  It works with the latter
1928          * because both ANSI C and C++ allow castless assignment from
1929          * any pointer type to void*, and deal with argument conversions
1930          * as though doing an assignment.
1931          */
1932         return (void *) realloc( (char *) ptr, size );
1933 }
1934
1935 void xbt_automaton_parse_free (void * ptr )
1936 {
1937         free( (char *) ptr );   /* see xbt_automaton_parse_realloc() for (char *) cast */
1938 }
1939
1940 #define YYTABLES_NAME "yytables"
1941
1942 #line 76 "parserPromela.lex"
1943
1944
1945
1946
1947