Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
make use of the newly introduced MxN data redistribution and actually
[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