Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
We want host name here, not process name.
[simgrid.git] / src / xbt / automaton / automaton_lexer.yy.c
1 #line 2 "automaton_lexer.yy.c"
2
3 #line 4 "automaton_lexer.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_parser__create_buffer
10 #define yy_delete_buffer xbt_automaton_parser__delete_buffer
11 #define yy_flex_debug xbt_automaton_parser__flex_debug
12 #define yy_init_buffer xbt_automaton_parser__init_buffer
13 #define yy_flush_buffer xbt_automaton_parser__flush_buffer
14 #define yy_load_buffer_state xbt_automaton_parser__load_buffer_state
15 #define yy_switch_to_buffer xbt_automaton_parser__switch_to_buffer
16 #define yyin xbt_automaton_parser_in
17 #define yyleng xbt_automaton_parser_leng
18 #define yylex xbt_automaton_parser_lex
19 #define yylineno xbt_automaton_parser_lineno
20 #define yyout xbt_automaton_parser_out
21 #define yyrestart xbt_automaton_parser_restart
22 #define yytext xbt_automaton_parser_text
23 #define yywrap xbt_automaton_parser_wrap
24 #define yyalloc xbt_automaton_parser_alloc
25 #define yyrealloc xbt_automaton_parser_realloc
26 #define yyfree xbt_automaton_parser_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_parser_restart(xbt_automaton_parser_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_parser_leng;
185
186 extern FILE *xbt_automaton_parser_in, *xbt_automaton_parser_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_parser_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_parser_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_parser_restart()), so that the user can continue scanning by
273          * just pointing xbt_automaton_parser_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_parser_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_parser_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_parser_wrap()'s to do buffer switches
311  * instead of setting up a fresh xbt_automaton_parser_in.  A bit of a hack ...
312  */
313 static int yy_did_buffer_switch_on_eof;
314
315 void xbt_automaton_parser_restart (FILE *input_file  );
316 void xbt_automaton_parser__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
317 YY_BUFFER_STATE xbt_automaton_parser__create_buffer (FILE *file,int size  );
318 void xbt_automaton_parser__delete_buffer (YY_BUFFER_STATE b  );
319 void xbt_automaton_parser__flush_buffer (YY_BUFFER_STATE b  );
320 void xbt_automaton_parser_push_buffer_state (YY_BUFFER_STATE new_buffer  );
321 void xbt_automaton_parser_pop_buffer_state (void );
322
323 static void xbt_automaton_parser_ensure_buffer_stack (void );
324 static void xbt_automaton_parser__load_buffer_state (void );
325 static void xbt_automaton_parser__init_buffer (YY_BUFFER_STATE b,FILE *file  );
326
327 #define YY_FLUSH_BUFFER xbt_automaton_parser__flush_buffer(YY_CURRENT_BUFFER )
328
329 YY_BUFFER_STATE xbt_automaton_parser__scan_buffer (char *base,yy_size_t size  );
330 YY_BUFFER_STATE xbt_automaton_parser__scan_string (yyconst char *yy_str  );
331 YY_BUFFER_STATE xbt_automaton_parser__scan_bytes (yyconst char *bytes,int len  );
332
333 void *xbt_automaton_parser_alloc (yy_size_t  );
334 void *xbt_automaton_parser_realloc (void *,yy_size_t  );
335 void xbt_automaton_parser_free (void *  );
336
337 #define yy_new_buffer xbt_automaton_parser__create_buffer
338
339 #define yy_set_interactive(is_interactive) \
340         { \
341         if ( ! YY_CURRENT_BUFFER ){ \
342         xbt_automaton_parser_ensure_buffer_stack (); \
343                 YY_CURRENT_BUFFER_LVALUE =    \
344             xbt_automaton_parser__create_buffer(xbt_automaton_parser_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_parser_ensure_buffer_stack (); \
353                 YY_CURRENT_BUFFER_LVALUE =    \
354             xbt_automaton_parser__create_buffer(xbt_automaton_parser_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_parser_wrap(n) 1
364 #define YY_SKIP_YYWRAP
365
366 typedef unsigned char YY_CHAR;
367
368 FILE *xbt_automaton_parser_in = (FILE *) 0, *xbt_automaton_parser_out = (FILE *) 0;
369
370 typedef int yy_state_type;
371
372 extern int xbt_automaton_parser_lineno;
373
374 int xbt_automaton_parser_lineno = 1;
375
376 extern char *xbt_automaton_parser_text;
377 #define yytext_ptr xbt_automaton_parser_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_parser_text.
386  */
387 #define YY_DO_BEFORE_ACTION \
388         (yytext_ptr) = yy_bp; \
389         xbt_automaton_parser_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_parser__flex_debug;
513 int xbt_automaton_parser__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_parser_text;
523 #line 1 "parserPromela.lex"
524 #line 4 "parserPromela.lex"
525
526
527 #include <stdio.h>
528 #include "parserPromela.tab.hacc"
529   
530   extern YYSTYPE yylval;
531  
532 #line 533 "automaton_lexer.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_parser_lex_destroy (void );
554
555 int xbt_automaton_parser_get_debug (void );
556
557 void xbt_automaton_parser_set_debug (int debug_flag  );
558
559 YY_EXTRA_TYPE xbt_automaton_parser_get_extra (void );
560
561 void xbt_automaton_parser_set_extra (YY_EXTRA_TYPE user_defined  );
562
563 FILE *xbt_automaton_parser_get_in (void );
564
565 void xbt_automaton_parser_set_in  (FILE * in_str  );
566
567 FILE *xbt_automaton_parser_get_out (void );
568
569 void xbt_automaton_parser_set_out  (FILE * out_str  );
570
571 int xbt_automaton_parser_get_leng (void );
572
573 char *xbt_automaton_parser_get_text (void );
574
575 int xbt_automaton_parser_get_lineno (void );
576
577 void xbt_automaton_parser_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_parser_wrap (void );
586 #else
587 extern int xbt_automaton_parser_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_parser_text, xbt_automaton_parser_leng, 1, xbt_automaton_parser_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_parser_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_parser_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_parser_in))==0 && ferror(xbt_automaton_parser_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_parser_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_parser_lex (void);
692
693 #define YY_DECL int xbt_automaton_parser_lex (void)
694 #endif /* !YY_DECL */
695
696 /* Code executed at the beginning of each rule, after xbt_automaton_parser_text and xbt_automaton_parser_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_lexer.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_parser_in )
736                         xbt_automaton_parser_in = stdin;
737
738                 if ( ! xbt_automaton_parser_out )
739                         xbt_automaton_parser_out = stdout;
740
741                 if ( ! YY_CURRENT_BUFFER ) {
742                         xbt_automaton_parser_ensure_buffer_stack ();
743                         YY_CURRENT_BUFFER_LVALUE =
744                                 xbt_automaton_parser__create_buffer(xbt_automaton_parser_in,YY_BUF_SIZE );
745                 }
746
747                 xbt_automaton_parser__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_parser_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 { return (NEVER); }
809         YY_BREAK
810 case 2:
811 YY_RULE_SETUP
812 #line 31 "parserPromela.lex"
813 { return (IF); }
814         YY_BREAK
815 case 3:
816 YY_RULE_SETUP
817 #line 32 "parserPromela.lex"
818 { return (FI); }
819         YY_BREAK
820 case 4:
821 YY_RULE_SETUP
822 #line 33 "parserPromela.lex"
823 { return (IMPLIES); }
824         YY_BREAK
825 case 5:
826 YY_RULE_SETUP
827 #line 34 "parserPromela.lex"
828 { return (GOTO); }
829         YY_BREAK
830 case 6:
831 YY_RULE_SETUP
832 #line 35 "parserPromela.lex"
833 { return (AND); }
834         YY_BREAK
835 case 7:
836 YY_RULE_SETUP
837 #line 36 "parserPromela.lex"
838 { return (OR); }
839         YY_BREAK
840 case 8:
841 YY_RULE_SETUP
842 #line 37 "parserPromela.lex"
843 { return (NOT); }
844         YY_BREAK
845 case 9:
846 YY_RULE_SETUP
847 #line 38 "parserPromela.lex"
848 { return (LEFT_PAR); }
849         YY_BREAK
850 case 10:
851 YY_RULE_SETUP
852 #line 39 "parserPromela.lex"
853 { return (RIGHT_PAR); }
854         YY_BREAK
855 case 11:
856 YY_RULE_SETUP
857 #line 40 "parserPromela.lex"
858 { return (CASE); }
859         YY_BREAK
860 case 12:
861 YY_RULE_SETUP
862 #line 41 "parserPromela.lex"
863 { return (COLON); }
864         YY_BREAK
865 case 13:
866 YY_RULE_SETUP
867 #line 42 "parserPromela.lex"
868 { return (SEMI_COLON); }
869         YY_BREAK
870 case 14:
871 YY_RULE_SETUP
872 #line 43 "parserPromela.lex"
873 { return (CASE_TRUE); }
874         YY_BREAK
875 case 15:
876 YY_RULE_SETUP
877 #line 44 "parserPromela.lex"
878 { return (LEFT_BRACE); }
879         YY_BREAK
880 case 16:
881 YY_RULE_SETUP
882 #line 45 "parserPromela.lex"
883 { return (RIGHT_BRACE); }
884         YY_BREAK
885 case 17:
886 /* rule 17 can match eol */
887 YY_RULE_SETUP
888 #line 48 "parserPromela.lex"
889 { }
890         YY_BREAK
891 case 18:
892 YY_RULE_SETUP
893 #line 50 "parserPromela.lex"
894 { }
895         YY_BREAK
896 case 19:
897 YY_RULE_SETUP
898 #line 53 "parserPromela.lex"
899 { sscanf(xbt_automaton_parser_text,"%lf",&yylval.real); 
900                             return (LITT_REEL); }
901         YY_BREAK
902 case 20:
903 YY_RULE_SETUP
904 #line 56 "parserPromela.lex"
905 { sscanf(xbt_automaton_parser_text,"%d",&yylval.integer); 
906                             return (LITT_ENT); }
907         YY_BREAK
908 case 21:
909 /* rule 21 can match eol */
910 YY_RULE_SETUP
911 #line 59 "parserPromela.lex"
912 { yylval.string=(char *)malloc(strlen(xbt_automaton_parser_text)+1);
913                             sscanf(xbt_automaton_parser_text,"%s",yylval.string); 
914                             return (LITT_CHAINE); }
915         YY_BREAK
916 case 22:
917 YY_RULE_SETUP
918 #line 63 "parserPromela.lex"
919 { yylval.string=(char *)malloc(strlen(xbt_automaton_parser_text)+1);
920                             sscanf(xbt_automaton_parser_text,"%s",yylval.string);
921                                               return (ID); }
922         YY_BREAK
923 case 23:
924 /* rule 23 can match eol */
925 YY_RULE_SETUP
926 #line 67 "parserPromela.lex"
927 { }
928         YY_BREAK
929 case 24:
930 YY_RULE_SETUP
931 #line 69 "parserPromela.lex"
932 { }
933         YY_BREAK
934 case 25:
935 YY_RULE_SETUP
936 #line 71 "parserPromela.lex"
937 ECHO;
938         YY_BREAK
939 #line 940 "automaton_lexer.yy.c"
940 case YY_STATE_EOF(INITIAL):
941         yyterminate();
942
943         case YY_END_OF_BUFFER:
944                 {
945                 /* Amount of text matched not including the EOB char. */
946                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
947
948                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
949                 *yy_cp = (yy_hold_char);
950                 YY_RESTORE_YY_MORE_OFFSET
951
952                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
953                         {
954                         /* We're scanning a new file or input source.  It's
955                          * possible that this happened because the user
956                          * just pointed xbt_automaton_parser_in at a new source and called
957                          * xbt_automaton_parser_lex().  If so, then we have to assure
958                          * consistency between YY_CURRENT_BUFFER and our
959                          * globals.  Here is the right place to do so, because
960                          * this is the first action (other than possibly a
961                          * back-up) that will match for the new input source.
962                          */
963                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
964                         YY_CURRENT_BUFFER_LVALUE->yy_input_file = xbt_automaton_parser_in;
965                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
966                         }
967
968                 /* Note that here we test for yy_c_buf_p "<=" to the position
969                  * of the first EOB in the buffer, since yy_c_buf_p will
970                  * already have been incremented past the NUL character
971                  * (since all states make transitions on EOB to the
972                  * end-of-buffer state).  Contrast this with the test
973                  * in input().
974                  */
975                 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
976                         { /* This was really a NUL. */
977                         yy_state_type yy_next_state;
978
979                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
980
981                         yy_current_state = yy_get_previous_state(  );
982
983                         /* Okay, we're now positioned to make the NUL
984                          * transition.  We couldn't have
985                          * yy_get_previous_state() go ahead and do it
986                          * for us because it doesn't know how to deal
987                          * with the possibility of jamming (and we don't
988                          * want to build jamming into it because then it
989                          * will run more slowly).
990                          */
991
992                         yy_next_state = yy_try_NUL_trans( yy_current_state );
993
994                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
995
996                         if ( yy_next_state )
997                                 {
998                                 /* Consume the NUL. */
999                                 yy_cp = ++(yy_c_buf_p);
1000                                 yy_current_state = yy_next_state;
1001                                 goto yy_match;
1002                                 }
1003
1004                         else
1005                                 {
1006                                 yy_cp = (yy_c_buf_p);
1007                                 goto yy_find_action;
1008                                 }
1009                         }
1010
1011                 else switch ( yy_get_next_buffer(  ) )
1012                         {
1013                         case EOB_ACT_END_OF_FILE:
1014                                 {
1015                                 (yy_did_buffer_switch_on_eof) = 0;
1016
1017                                 if ( xbt_automaton_parser_wrap( ) )
1018                                         {
1019                                         /* Note: because we've taken care in
1020                                          * yy_get_next_buffer() to have set up
1021                                          * xbt_automaton_parser_text, we can now set up
1022                                          * yy_c_buf_p so that if some total
1023                                          * hoser (like flex itself) wants to
1024                                          * call the scanner after we return the
1025                                          * YY_NULL, it'll still work - another
1026                                          * YY_NULL will get returned.
1027                                          */
1028                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1029
1030                                         yy_act = YY_STATE_EOF(YY_START);
1031                                         goto do_action;
1032                                         }
1033
1034                                 else
1035                                         {
1036                                         if ( ! (yy_did_buffer_switch_on_eof) )
1037                                                 YY_NEW_FILE;
1038                                         }
1039                                 break;
1040                                 }
1041
1042                         case EOB_ACT_CONTINUE_SCAN:
1043                                 (yy_c_buf_p) =
1044                                         (yytext_ptr) + yy_amount_of_matched_text;
1045
1046                                 yy_current_state = yy_get_previous_state(  );
1047
1048                                 yy_cp = (yy_c_buf_p);
1049                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1050                                 goto yy_match;
1051
1052                         case EOB_ACT_LAST_MATCH:
1053                                 (yy_c_buf_p) =
1054                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1055
1056                                 yy_current_state = yy_get_previous_state(  );
1057
1058                                 yy_cp = (yy_c_buf_p);
1059                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1060                                 goto yy_find_action;
1061                         }
1062                 break;
1063                 }
1064
1065         default:
1066                 YY_FATAL_ERROR(
1067                         "fatal flex scanner internal error--no action found" );
1068         } /* end of action switch */
1069                 } /* end of scanning one token */
1070 } /* end of xbt_automaton_parser_lex */
1071
1072 /* yy_get_next_buffer - try to read in a new buffer
1073  *
1074  * Returns a code representing an action:
1075  *      EOB_ACT_LAST_MATCH -
1076  *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1077  *      EOB_ACT_END_OF_FILE - end of file
1078  */
1079 static int yy_get_next_buffer (void)
1080 {
1081         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1082         register char *source = (yytext_ptr);
1083         register int number_to_move, i;
1084         int ret_val;
1085
1086         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1087                 YY_FATAL_ERROR(
1088                 "fatal flex scanner internal error--end of buffer missed" );
1089
1090         if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1091                 { /* Don't try to fill the buffer, so this is an EOF. */
1092                 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1093                         {
1094                         /* We matched a single character, the EOB, so
1095                          * treat this as a final EOF.
1096                          */
1097                         return EOB_ACT_END_OF_FILE;
1098                         }
1099
1100                 else
1101                         {
1102                         /* We matched some text prior to the EOB, first
1103                          * process it.
1104                          */
1105                         return EOB_ACT_LAST_MATCH;
1106                         }
1107                 }
1108
1109         /* Try to read more data. */
1110
1111         /* First move last chars to start of buffer. */
1112         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1113
1114         for ( i = 0; i < number_to_move; ++i )
1115                 *(dest++) = *(source++);
1116
1117         if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1118                 /* don't do the read, it's not guaranteed to return an EOF,
1119                  * just force an EOF
1120                  */
1121                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1122
1123         else
1124                 {
1125                         int num_to_read =
1126                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1127
1128                 while ( num_to_read <= 0 )
1129                         { /* Not enough room in the buffer - grow it. */
1130
1131                         /* just a shorter name for the current buffer */
1132                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
1133
1134                         int yy_c_buf_p_offset =
1135                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
1136
1137                         if ( b->yy_is_our_buffer )
1138                                 {
1139                                 int new_size = b->yy_buf_size * 2;
1140
1141                                 if ( new_size <= 0 )
1142                                         b->yy_buf_size += b->yy_buf_size / 8;
1143                                 else
1144                                         b->yy_buf_size *= 2;
1145
1146                                 b->yy_ch_buf = (char *)
1147                                         /* Include room in for 2 EOB chars. */
1148                                         xbt_automaton_parser_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
1149                                 }
1150                         else
1151                                 /* Can't grow it, we don't own it. */
1152                                 b->yy_ch_buf = 0;
1153
1154                         if ( ! b->yy_ch_buf )
1155                                 YY_FATAL_ERROR(
1156                                 "fatal error - scanner input buffer overflow" );
1157
1158                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1159
1160                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1161                                                 number_to_move - 1;
1162
1163                         }
1164
1165                 if ( num_to_read > YY_READ_BUF_SIZE )
1166                         num_to_read = YY_READ_BUF_SIZE;
1167
1168                 /* Read in more data. */
1169                 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1170                         (yy_n_chars), (size_t) num_to_read );
1171
1172                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1173                 }
1174
1175         if ( (yy_n_chars) == 0 )
1176                 {
1177                 if ( number_to_move == YY_MORE_ADJ )
1178                         {
1179                         ret_val = EOB_ACT_END_OF_FILE;
1180                         xbt_automaton_parser_restart(xbt_automaton_parser_in  );
1181                         }
1182
1183                 else
1184                         {
1185                         ret_val = EOB_ACT_LAST_MATCH;
1186                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1187                                 YY_BUFFER_EOF_PENDING;
1188                         }
1189                 }
1190
1191         else
1192                 ret_val = EOB_ACT_CONTINUE_SCAN;
1193
1194         if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1195                 /* Extend the array by 50%, plus the number we really need. */
1196                 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1197                 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) xbt_automaton_parser_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
1198                 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1199                         YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1200         }
1201
1202         (yy_n_chars) += number_to_move;
1203         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
1204         YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
1205
1206         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1207
1208         return ret_val;
1209 }
1210
1211 /* yy_get_previous_state - get the state just before the EOB char was reached */
1212
1213     static yy_state_type yy_get_previous_state (void)
1214 {
1215         register yy_state_type yy_current_state;
1216         register char *yy_cp;
1217     
1218         yy_current_state = (yy_start);
1219
1220         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1221                 {
1222                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1223                 if ( yy_accept[yy_current_state] )
1224                         {
1225                         (yy_last_accepting_state) = yy_current_state;
1226                         (yy_last_accepting_cpos) = yy_cp;
1227                         }
1228                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1229                         {
1230                         yy_current_state = (int) yy_def[yy_current_state];
1231                         if ( yy_current_state >= 54 )
1232                                 yy_c = yy_meta[(unsigned int) yy_c];
1233                         }
1234                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1235                 }
1236
1237         return yy_current_state;
1238 }
1239
1240 /* yy_try_NUL_trans - try to make a transition on the NUL character
1241  *
1242  * synopsis
1243  *      next_state = yy_try_NUL_trans( current_state );
1244  */
1245     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
1246 {
1247         register int yy_is_jam;
1248         register char *yy_cp = (yy_c_buf_p);
1249
1250         register YY_CHAR yy_c = 1;
1251         if ( yy_accept[yy_current_state] )
1252                 {
1253                 (yy_last_accepting_state) = yy_current_state;
1254                 (yy_last_accepting_cpos) = yy_cp;
1255                 }
1256         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1257                 {
1258                 yy_current_state = (int) yy_def[yy_current_state];
1259                 if ( yy_current_state >= 54 )
1260                         yy_c = yy_meta[(unsigned int) yy_c];
1261                 }
1262         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1263         yy_is_jam = (yy_current_state == 53);
1264
1265         return yy_is_jam ? 0 : yy_current_state;
1266 }
1267
1268     static void yyunput (int c, register char * yy_bp )
1269 {
1270         register char *yy_cp;
1271     
1272     yy_cp = (yy_c_buf_p);
1273
1274         /* undo effects of setting up xbt_automaton_parser_text */
1275         *yy_cp = (yy_hold_char);
1276
1277         if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1278                 { /* need to shift things up to make room */
1279                 /* +2 for EOB chars. */
1280                 register int number_to_move = (yy_n_chars) + 2;
1281                 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
1282                                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
1283                 register char *source =
1284                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
1285
1286                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1287                         *--dest = *--source;
1288
1289                 yy_cp += (int) (dest - source);
1290                 yy_bp += (int) (dest - source);
1291                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
1292                         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
1293
1294                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
1295                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
1296                 }
1297
1298         *--yy_cp = (char) c;
1299
1300         (yytext_ptr) = yy_bp;
1301         (yy_hold_char) = *yy_cp;
1302         (yy_c_buf_p) = yy_cp;
1303 }
1304
1305 #ifndef YY_NO_INPUT
1306 #ifdef __cplusplus
1307     static int yyinput (void)
1308 #else
1309     static int input  (void)
1310 #endif
1311
1312 {
1313         int c;
1314     
1315         *(yy_c_buf_p) = (yy_hold_char);
1316
1317         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1318                 {
1319                 /* yy_c_buf_p now points to the character we want to return.
1320                  * If this occurs *before* the EOB characters, then it's a
1321                  * valid NUL; if not, then we've hit the end of the buffer.
1322                  */
1323                 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1324                         /* This was really a NUL. */
1325                         *(yy_c_buf_p) = '\0';
1326
1327                 else
1328                         { /* need more input */
1329                         int offset = (yy_c_buf_p) - (yytext_ptr);
1330                         ++(yy_c_buf_p);
1331
1332                         switch ( yy_get_next_buffer(  ) )
1333                                 {
1334                                 case EOB_ACT_LAST_MATCH:
1335                                         /* This happens because yy_g_n_b()
1336                                          * sees that we've accumulated a
1337                                          * token and flags that we need to
1338                                          * try matching the token before
1339                                          * proceeding.  But for input(),
1340                                          * there's no matching to consider.
1341                                          * So convert the EOB_ACT_LAST_MATCH
1342                                          * to EOB_ACT_END_OF_FILE.
1343                                          */
1344
1345                                         /* Reset buffer status. */
1346                                         xbt_automaton_parser_restart(xbt_automaton_parser_in );
1347
1348                                         /*FALLTHROUGH*/
1349
1350                                 case EOB_ACT_END_OF_FILE:
1351                                         {
1352                                         if ( xbt_automaton_parser_wrap( ) )
1353                                                 return EOF;
1354
1355                                         if ( ! (yy_did_buffer_switch_on_eof) )
1356                                                 YY_NEW_FILE;
1357 #ifdef __cplusplus
1358                                         return yyinput();
1359 #else
1360                                         return input();
1361 #endif
1362                                         }
1363
1364                                 case EOB_ACT_CONTINUE_SCAN:
1365                                         (yy_c_buf_p) = (yytext_ptr) + offset;
1366                                         break;
1367                                 }
1368                         }
1369                 }
1370
1371         c = *(unsigned char *) (yy_c_buf_p);    /* cast for 8-bit char's */
1372         *(yy_c_buf_p) = '\0';   /* preserve xbt_automaton_parser_text */
1373         (yy_hold_char) = *++(yy_c_buf_p);
1374
1375         return c;
1376 }
1377 #endif  /* ifndef YY_NO_INPUT */
1378
1379 /** Immediately switch to a different input stream.
1380  * @param input_file A readable stream.
1381  * 
1382  * @note This function does not reset the start condition to @c INITIAL .
1383  */
1384     void xbt_automaton_parser_restart  (FILE * input_file )
1385 {
1386     
1387         if ( ! YY_CURRENT_BUFFER ){
1388         xbt_automaton_parser_ensure_buffer_stack ();
1389                 YY_CURRENT_BUFFER_LVALUE =
1390             xbt_automaton_parser__create_buffer(xbt_automaton_parser_in,YY_BUF_SIZE );
1391         }
1392
1393         xbt_automaton_parser__init_buffer(YY_CURRENT_BUFFER,input_file );
1394         xbt_automaton_parser__load_buffer_state( );
1395 }
1396
1397 /** Switch to a different input buffer.
1398  * @param new_buffer The new input buffer.
1399  * 
1400  */
1401     void xbt_automaton_parser__switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
1402 {
1403     
1404         /* TODO. We should be able to replace this entire function body
1405          * with
1406          *              xbt_automaton_parser_pop_buffer_state();
1407          *              xbt_automaton_parser_push_buffer_state(new_buffer);
1408      */
1409         xbt_automaton_parser_ensure_buffer_stack ();
1410         if ( YY_CURRENT_BUFFER == new_buffer )
1411                 return;
1412
1413         if ( YY_CURRENT_BUFFER )
1414                 {
1415                 /* Flush out information for old buffer. */
1416                 *(yy_c_buf_p) = (yy_hold_char);
1417                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1418                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1419                 }
1420
1421         YY_CURRENT_BUFFER_LVALUE = new_buffer;
1422         xbt_automaton_parser__load_buffer_state( );
1423
1424         /* We don't actually know whether we did this switch during
1425          * EOF (xbt_automaton_parser_wrap()) processing, but the only time this flag
1426          * is looked at is after xbt_automaton_parser_wrap() is called, so it's safe
1427          * to go ahead and always set it.
1428          */
1429         (yy_did_buffer_switch_on_eof) = 1;
1430 }
1431
1432 static void xbt_automaton_parser__load_buffer_state  (void)
1433 {
1434         (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1435         (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1436         xbt_automaton_parser_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1437         (yy_hold_char) = *(yy_c_buf_p);
1438 }
1439
1440 /** Allocate and initialize an input buffer state.
1441  * @param file A readable stream.
1442  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1443  * 
1444  * @return the allocated buffer state.
1445  */
1446     YY_BUFFER_STATE xbt_automaton_parser__create_buffer  (FILE * file, int  size )
1447 {
1448         YY_BUFFER_STATE b;
1449     
1450         b = (YY_BUFFER_STATE) xbt_automaton_parser_alloc(sizeof( struct yy_buffer_state )  );
1451         if ( ! b )
1452                 YY_FATAL_ERROR( "out of dynamic memory in xbt_automaton_parser__create_buffer()" );
1453
1454         b->yy_buf_size = size;
1455
1456         /* yy_ch_buf has to be 2 characters longer than the size given because
1457          * we need to put in 2 end-of-buffer characters.
1458          */
1459         b->yy_ch_buf = (char *) xbt_automaton_parser_alloc(b->yy_buf_size + 2  );
1460         if ( ! b->yy_ch_buf )
1461                 YY_FATAL_ERROR( "out of dynamic memory in xbt_automaton_parser__create_buffer()" );
1462
1463         b->yy_is_our_buffer = 1;
1464
1465         xbt_automaton_parser__init_buffer(b,file );
1466
1467         return b;
1468 }
1469
1470 /** Destroy the buffer.
1471  * @param b a buffer created with xbt_automaton_parser__create_buffer()
1472  * 
1473  */
1474     void xbt_automaton_parser__delete_buffer (YY_BUFFER_STATE  b )
1475 {
1476     
1477         if ( ! b )
1478                 return;
1479
1480         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1481                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1482
1483         if ( b->yy_is_our_buffer )
1484                 xbt_automaton_parser_free((void *) b->yy_ch_buf  );
1485
1486         xbt_automaton_parser_free((void *) b  );
1487 }
1488
1489 #ifndef __cplusplus
1490 extern int isatty (int );
1491 #endif /* __cplusplus */
1492     
1493 /* Initializes or reinitializes a buffer.
1494  * This function is sometimes called more than once on the same buffer,
1495  * such as during a xbt_automaton_parser_restart() or at EOF.
1496  */
1497     static void xbt_automaton_parser__init_buffer  (YY_BUFFER_STATE  b, FILE * file )
1498
1499 {
1500         int oerrno = errno;
1501     
1502         xbt_automaton_parser__flush_buffer(b );
1503
1504         b->yy_input_file = file;
1505         b->yy_fill_buffer = 1;
1506
1507     /* If b is the current buffer, then xbt_automaton_parser__init_buffer was _probably_
1508      * called from xbt_automaton_parser_restart() or through yy_get_next_buffer.
1509      * In that case, we don't want to reset the lineno or column.
1510      */
1511     if (b != YY_CURRENT_BUFFER){
1512         b->yy_bs_lineno = 1;
1513         b->yy_bs_column = 0;
1514     }
1515
1516         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1517     
1518         errno = oerrno;
1519 }
1520
1521 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1522  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1523  * 
1524  */
1525     void xbt_automaton_parser__flush_buffer (YY_BUFFER_STATE  b )
1526 {
1527         if ( ! b )
1528                 return;
1529
1530         b->yy_n_chars = 0;
1531
1532         /* We always need two end-of-buffer characters.  The first causes
1533          * a transition to the end-of-buffer state.  The second causes
1534          * a jam in that state.
1535          */
1536         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
1537         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
1538
1539         b->yy_buf_pos = &b->yy_ch_buf[0];
1540
1541         b->yy_at_bol = 1;
1542         b->yy_buffer_status = YY_BUFFER_NEW;
1543
1544         if ( b == YY_CURRENT_BUFFER )
1545                 xbt_automaton_parser__load_buffer_state( );
1546 }
1547
1548 /** Pushes the new state onto the stack. The new state becomes
1549  *  the current state. This function will allocate the stack
1550  *  if necessary.
1551  *  @param new_buffer The new state.
1552  *  
1553  */
1554 void xbt_automaton_parser_push_buffer_state (YY_BUFFER_STATE new_buffer )
1555 {
1556         if (new_buffer == NULL)
1557                 return;
1558
1559         xbt_automaton_parser_ensure_buffer_stack();
1560
1561         /* This block is copied from xbt_automaton_parser__switch_to_buffer. */
1562         if ( YY_CURRENT_BUFFER )
1563                 {
1564                 /* Flush out information for old buffer. */
1565                 *(yy_c_buf_p) = (yy_hold_char);
1566                 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1567                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1568                 }
1569
1570         /* Only push if top exists. Otherwise, replace top. */
1571         if (YY_CURRENT_BUFFER)
1572                 (yy_buffer_stack_top)++;
1573         YY_CURRENT_BUFFER_LVALUE = new_buffer;
1574
1575         /* copied from xbt_automaton_parser__switch_to_buffer. */
1576         xbt_automaton_parser__load_buffer_state( );
1577         (yy_did_buffer_switch_on_eof) = 1;
1578 }
1579
1580 /** Removes and deletes the top of the stack, if present.
1581  *  The next element becomes the new top.
1582  *  
1583  */
1584 void xbt_automaton_parser_pop_buffer_state (void)
1585 {
1586         if (!YY_CURRENT_BUFFER)
1587                 return;
1588
1589         xbt_automaton_parser__delete_buffer(YY_CURRENT_BUFFER );
1590         YY_CURRENT_BUFFER_LVALUE = NULL;
1591         if ((yy_buffer_stack_top) > 0)
1592                 --(yy_buffer_stack_top);
1593
1594         if (YY_CURRENT_BUFFER) {
1595                 xbt_automaton_parser__load_buffer_state( );
1596                 (yy_did_buffer_switch_on_eof) = 1;
1597         }
1598 }
1599
1600 /* Allocates the stack if it does not exist.
1601  *  Guarantees space for at least one push.
1602  */
1603 static void xbt_automaton_parser_ensure_buffer_stack (void)
1604 {
1605         int num_to_alloc;
1606     
1607         if (!(yy_buffer_stack)) {
1608
1609                 /* First allocation is just for 2 elements, since we don't know if this
1610                  * scanner will even need a stack. We use 2 instead of 1 to avoid an
1611                  * immediate realloc on the next call.
1612          */
1613                 num_to_alloc = 1;
1614                 (yy_buffer_stack) = (struct yy_buffer_state**)xbt_automaton_parser_alloc
1615                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
1616                                                                 );
1617                 if ( ! (yy_buffer_stack) )
1618                         YY_FATAL_ERROR( "out of dynamic memory in xbt_automaton_parser_ensure_buffer_stack()" );
1619                                                                   
1620                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1621                                 
1622                 (yy_buffer_stack_max) = num_to_alloc;
1623                 (yy_buffer_stack_top) = 0;
1624                 return;
1625         }
1626
1627         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
1628
1629                 /* Increase the buffer to prepare for a possible push. */
1630                 int grow_size = 8 /* arbitrary grow size */;
1631
1632                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
1633                 (yy_buffer_stack) = (struct yy_buffer_state**)xbt_automaton_parser_realloc
1634                                                                 ((yy_buffer_stack),
1635                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
1636                                                                 );
1637                 if ( ! (yy_buffer_stack) )
1638                         YY_FATAL_ERROR( "out of dynamic memory in xbt_automaton_parser_ensure_buffer_stack()" );
1639
1640                 /* zero only the new slots.*/
1641                 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
1642                 (yy_buffer_stack_max) = num_to_alloc;
1643         }
1644 }
1645
1646 /** Setup the input buffer state to scan directly from a user-specified character buffer.
1647  * @param base the character buffer
1648  * @param size the size in bytes of the character buffer
1649  * 
1650  * @return the newly allocated buffer state object. 
1651  */
1652 YY_BUFFER_STATE xbt_automaton_parser__scan_buffer  (char * base, yy_size_t  size )
1653 {
1654         YY_BUFFER_STATE b;
1655     
1656         if ( size < 2 ||
1657              base[size-2] != YY_END_OF_BUFFER_CHAR ||
1658              base[size-1] != YY_END_OF_BUFFER_CHAR )
1659                 /* They forgot to leave room for the EOB's. */
1660                 return 0;
1661
1662         b = (YY_BUFFER_STATE) xbt_automaton_parser_alloc(sizeof( struct yy_buffer_state )  );
1663         if ( ! b )
1664                 YY_FATAL_ERROR( "out of dynamic memory in xbt_automaton_parser__scan_buffer()" );
1665
1666         b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
1667         b->yy_buf_pos = b->yy_ch_buf = base;
1668         b->yy_is_our_buffer = 0;
1669         b->yy_input_file = 0;
1670         b->yy_n_chars = b->yy_buf_size;
1671         b->yy_is_interactive = 0;
1672         b->yy_at_bol = 1;
1673         b->yy_fill_buffer = 0;
1674         b->yy_buffer_status = YY_BUFFER_NEW;
1675
1676         xbt_automaton_parser__switch_to_buffer(b  );
1677
1678         return b;
1679 }
1680
1681 /** Setup the input buffer state to scan a string. The next call to xbt_automaton_parser_lex() will
1682  * scan from a @e copy of @a str.
1683  * @param yystr a NUL-terminated string to scan
1684  * 
1685  * @return the newly allocated buffer state object.
1686  * @note If you want to scan bytes that may contain NUL values, then use
1687  *       xbt_automaton_parser__scan_bytes() instead.
1688  */
1689 YY_BUFFER_STATE xbt_automaton_parser__scan_string (yyconst char * yystr )
1690 {
1691     
1692         return xbt_automaton_parser__scan_bytes(yystr,strlen(yystr) );
1693 }
1694
1695 /** Setup the input buffer state to scan the given bytes. The next call to xbt_automaton_parser_lex() will
1696  * scan from a @e copy of @a bytes.
1697  * @param yybytes the byte buffer to scan
1698  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
1699  * 
1700  * @return the newly allocated buffer state object.
1701  */
1702 YY_BUFFER_STATE xbt_automaton_parser__scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
1703 {
1704         YY_BUFFER_STATE b;
1705         char *buf;
1706         yy_size_t n;
1707         int i;
1708     
1709         /* Get memory for full buffer, including space for trailing EOB's. */
1710         n = _yybytes_len + 2;
1711         buf = (char *) xbt_automaton_parser_alloc(n  );
1712         if ( ! buf )
1713                 YY_FATAL_ERROR( "out of dynamic memory in xbt_automaton_parser__scan_bytes()" );
1714
1715         for ( i = 0; i < _yybytes_len; ++i )
1716                 buf[i] = yybytes[i];
1717
1718         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
1719
1720         b = xbt_automaton_parser__scan_buffer(buf,n );
1721         if ( ! b )
1722                 YY_FATAL_ERROR( "bad buffer in xbt_automaton_parser__scan_bytes()" );
1723
1724         /* It's okay to grow etc. this buffer, and we should throw it
1725          * away when we're done.
1726          */
1727         b->yy_is_our_buffer = 1;
1728
1729         return b;
1730 }
1731
1732 #ifndef YY_EXIT_FAILURE
1733 #define YY_EXIT_FAILURE 2
1734 #endif
1735
1736 static void yy_fatal_error (yyconst char* msg )
1737 {
1738         (void) fprintf( stderr, "%s\n", msg );
1739         exit( YY_EXIT_FAILURE );
1740 }
1741
1742 /* Redefine yyless() so it works in section 3 code. */
1743
1744 #undef yyless
1745 #define yyless(n) \
1746         do \
1747                 { \
1748                 /* Undo effects of setting up xbt_automaton_parser_text. */ \
1749         int yyless_macro_arg = (n); \
1750         YY_LESS_LINENO(yyless_macro_arg);\
1751                 xbt_automaton_parser_text[xbt_automaton_parser_leng] = (yy_hold_char); \
1752                 (yy_c_buf_p) = xbt_automaton_parser_text + yyless_macro_arg; \
1753                 (yy_hold_char) = *(yy_c_buf_p); \
1754                 *(yy_c_buf_p) = '\0'; \
1755                 xbt_automaton_parser_leng = yyless_macro_arg; \
1756                 } \
1757         while ( 0 )
1758
1759 /* Accessor  methods (get/set functions) to struct members. */
1760
1761 /** Get the current line number.
1762  * 
1763  */
1764 int xbt_automaton_parser_get_lineno  (void)
1765 {
1766         
1767     return xbt_automaton_parser_lineno;
1768 }
1769
1770 /** Get the input stream.
1771  * 
1772  */
1773 FILE *xbt_automaton_parser_get_in  (void)
1774 {
1775         return xbt_automaton_parser_in;
1776 }
1777
1778 /** Get the output stream.
1779  * 
1780  */
1781 FILE *xbt_automaton_parser_get_out  (void)
1782 {
1783         return xbt_automaton_parser_out;
1784 }
1785
1786 /** Get the length of the current token.
1787  * 
1788  */
1789 int xbt_automaton_parser_get_leng  (void)
1790 {
1791         return xbt_automaton_parser_leng;
1792 }
1793
1794 /** Get the current token.
1795  * 
1796  */
1797
1798 char *xbt_automaton_parser_get_text  (void)
1799 {
1800         return xbt_automaton_parser_text;
1801 }
1802
1803 /** Set the current line number.
1804  * @param line_number
1805  * 
1806  */
1807 void xbt_automaton_parser_set_lineno (int  line_number )
1808 {
1809     
1810     xbt_automaton_parser_lineno = line_number;
1811 }
1812
1813 /** Set the input stream. This does not discard the current
1814  * input buffer.
1815  * @param in_str A readable stream.
1816  * 
1817  * @see xbt_automaton_parser__switch_to_buffer
1818  */
1819 void xbt_automaton_parser_set_in (FILE *  in_str )
1820 {
1821         xbt_automaton_parser_in = in_str ;
1822 }
1823
1824 void xbt_automaton_parser_set_out (FILE *  out_str )
1825 {
1826         xbt_automaton_parser_out = out_str ;
1827 }
1828
1829 int xbt_automaton_parser_get_debug  (void)
1830 {
1831         return xbt_automaton_parser__flex_debug;
1832 }
1833
1834 void xbt_automaton_parser_set_debug (int  bdebug )
1835 {
1836         xbt_automaton_parser__flex_debug = bdebug ;
1837 }
1838
1839 static int yy_init_globals (void)
1840 {
1841         /* Initialization is the same as for the non-reentrant scanner.
1842      * This function is called from xbt_automaton_parser_lex_destroy(), so don't allocate here.
1843      */
1844
1845     (yy_buffer_stack) = 0;
1846     (yy_buffer_stack_top) = 0;
1847     (yy_buffer_stack_max) = 0;
1848     (yy_c_buf_p) = (char *) 0;
1849     (yy_init) = 0;
1850     (yy_start) = 0;
1851
1852 /* Defined in main.c */
1853 #ifdef YY_STDINIT
1854     xbt_automaton_parser_in = stdin;
1855     xbt_automaton_parser_out = stdout;
1856 #else
1857     xbt_automaton_parser_in = (FILE *) 0;
1858     xbt_automaton_parser_out = (FILE *) 0;
1859 #endif
1860
1861     /* For future reference: Set errno on error, since we are called by
1862      * xbt_automaton_parser_lex_init()
1863      */
1864     return 0;
1865 }
1866
1867 /* xbt_automaton_parser_lex_destroy is for both reentrant and non-reentrant scanners. */
1868 int xbt_automaton_parser_lex_destroy  (void)
1869 {
1870     
1871     /* Pop the buffer stack, destroying each element. */
1872         while(YY_CURRENT_BUFFER){
1873                 xbt_automaton_parser__delete_buffer(YY_CURRENT_BUFFER  );
1874                 YY_CURRENT_BUFFER_LVALUE = NULL;
1875                 xbt_automaton_parser_pop_buffer_state();
1876         }
1877
1878         /* Destroy the stack itself. */
1879         xbt_automaton_parser_free((yy_buffer_stack) );
1880         (yy_buffer_stack) = NULL;
1881
1882     /* Reset the globals. This is important in a non-reentrant scanner so the next time
1883      * xbt_automaton_parser_lex() is called, initialization will occur. */
1884     yy_init_globals( );
1885
1886     return 0;
1887 }
1888
1889 /*
1890  * Internal utility routines.
1891  */
1892
1893 #ifndef yytext_ptr
1894 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
1895 {
1896         register int i;
1897         for ( i = 0; i < n; ++i )
1898                 s1[i] = s2[i];
1899 }
1900 #endif
1901
1902 #ifdef YY_NEED_STRLEN
1903 static int yy_flex_strlen (yyconst char * s )
1904 {
1905         register int n;
1906         for ( n = 0; s[n]; ++n )
1907                 ;
1908
1909         return n;
1910 }
1911 #endif
1912
1913 void *xbt_automaton_parser_alloc (yy_size_t  size )
1914 {
1915         return (void *) malloc( size );
1916 }
1917
1918 void *xbt_automaton_parser_realloc  (void * ptr, yy_size_t  size )
1919 {
1920         /* The cast to (char *) in the following accommodates both
1921          * implementations that use char* generic pointers, and those
1922          * that use void* generic pointers.  It works with the latter
1923          * because both ANSI C and C++ allow castless assignment from
1924          * any pointer type to void*, and deal with argument conversions
1925          * as though doing an assignment.
1926          */
1927         return (void *) realloc( (char *) ptr, size );
1928 }
1929
1930 void xbt_automaton_parser_free (void * ptr )
1931 {
1932         free( (char *) ptr );   /* see xbt_automaton_parser_realloc() for (char *) cast */
1933 }
1934
1935 #define YYTABLES_NAME "yytables"
1936
1937 #line 71 "parserPromela.lex"
1938
1939
1940
1941
1942