PIPS
sc_lex.c
Go to the documentation of this file.
1 
2 #line 3 "<stdout>"
3 
4 #define YY_INT_ALIGNED short int
5 
6 /* A lexical scanner generated by flex */
7 
8 #define yy_create_buffer syst__create_buffer
9 #define yy_delete_buffer syst__delete_buffer
10 #define yy_scan_buffer syst__scan_buffer
11 #define yy_scan_string syst__scan_string
12 #define yy_scan_bytes syst__scan_bytes
13 #define yy_init_buffer syst__init_buffer
14 #define yy_flush_buffer syst__flush_buffer
15 #define yy_load_buffer_state syst__load_buffer_state
16 #define yy_switch_to_buffer syst__switch_to_buffer
17 #define yypush_buffer_state syst_push_buffer_state
18 #define yypop_buffer_state syst_pop_buffer_state
19 #define yyensure_buffer_stack syst_ensure_buffer_stack
20 #define yy_flex_debug syst__flex_debug
21 #define yyin syst_in
22 #define yyleng syst_leng
23 #define yylex syst_lex
24 #define yylineno syst_lineno
25 #define yyout syst_out
26 #define yyrestart syst_restart
27 #define yytext syst_text
28 #define yywrap syst_wrap
29 #define yyalloc syst_alloc
30 #define yyrealloc syst_realloc
31 #define yyfree syst_free
32 
33 #define FLEX_SCANNER
34 #define YY_FLEX_MAJOR_VERSION 2
35 #define YY_FLEX_MINOR_VERSION 6
36 #define YY_FLEX_SUBMINOR_VERSION 4
37 #if YY_FLEX_SUBMINOR_VERSION > 0
38 #define FLEX_BETA
39 #endif
40 
41 #ifdef yy_create_buffer
42 #define syst__create_buffer_ALREADY_DEFINED
43 #else
44 #define yy_create_buffer syst__create_buffer
45 #endif
46 
47 #ifdef yy_delete_buffer
48 #define syst__delete_buffer_ALREADY_DEFINED
49 #else
50 #define yy_delete_buffer syst__delete_buffer
51 #endif
52 
53 #ifdef yy_scan_buffer
54 #define syst__scan_buffer_ALREADY_DEFINED
55 #else
56 #define yy_scan_buffer syst__scan_buffer
57 #endif
58 
59 #ifdef yy_scan_string
60 #define syst__scan_string_ALREADY_DEFINED
61 #else
62 #define yy_scan_string syst__scan_string
63 #endif
64 
65 #ifdef yy_scan_bytes
66 #define syst__scan_bytes_ALREADY_DEFINED
67 #else
68 #define yy_scan_bytes syst__scan_bytes
69 #endif
70 
71 #ifdef yy_init_buffer
72 #define syst__init_buffer_ALREADY_DEFINED
73 #else
74 #define yy_init_buffer syst__init_buffer
75 #endif
76 
77 #ifdef yy_flush_buffer
78 #define syst__flush_buffer_ALREADY_DEFINED
79 #else
80 #define yy_flush_buffer syst__flush_buffer
81 #endif
82 
83 #ifdef yy_load_buffer_state
84 #define syst__load_buffer_state_ALREADY_DEFINED
85 #else
86 #define yy_load_buffer_state syst__load_buffer_state
87 #endif
88 
89 #ifdef yy_switch_to_buffer
90 #define syst__switch_to_buffer_ALREADY_DEFINED
91 #else
92 #define yy_switch_to_buffer syst__switch_to_buffer
93 #endif
94 
95 #ifdef yypush_buffer_state
96 #define syst_push_buffer_state_ALREADY_DEFINED
97 #else
98 #define yypush_buffer_state syst_push_buffer_state
99 #endif
100 
101 #ifdef yypop_buffer_state
102 #define syst_pop_buffer_state_ALREADY_DEFINED
103 #else
104 #define yypop_buffer_state syst_pop_buffer_state
105 #endif
106 
107 #ifdef yyensure_buffer_stack
108 #define syst_ensure_buffer_stack_ALREADY_DEFINED
109 #else
110 #define yyensure_buffer_stack syst_ensure_buffer_stack
111 #endif
112 
113 #ifdef yylex
114 #define syst_lex_ALREADY_DEFINED
115 #else
116 #define yylex syst_lex
117 #endif
118 
119 #ifdef yyrestart
120 #define syst_restart_ALREADY_DEFINED
121 #else
122 #define yyrestart syst_restart
123 #endif
124 
125 #ifdef yylex_init
126 #define syst_lex_init_ALREADY_DEFINED
127 #else
128 #define yylex_init syst_lex_init
129 #endif
130 
131 #ifdef yylex_init_extra
132 #define syst_lex_init_extra_ALREADY_DEFINED
133 #else
134 #define yylex_init_extra syst_lex_init_extra
135 #endif
136 
137 #ifdef yylex_destroy
138 #define syst_lex_destroy_ALREADY_DEFINED
139 #else
140 #define yylex_destroy syst_lex_destroy
141 #endif
142 
143 #ifdef yyget_debug
144 #define syst_get_debug_ALREADY_DEFINED
145 #else
146 #define yyget_debug syst_get_debug
147 #endif
148 
149 #ifdef yyset_debug
150 #define syst_set_debug_ALREADY_DEFINED
151 #else
152 #define yyset_debug syst_set_debug
153 #endif
154 
155 #ifdef yyget_extra
156 #define syst_get_extra_ALREADY_DEFINED
157 #else
158 #define yyget_extra syst_get_extra
159 #endif
160 
161 #ifdef yyset_extra
162 #define syst_set_extra_ALREADY_DEFINED
163 #else
164 #define yyset_extra syst_set_extra
165 #endif
166 
167 #ifdef yyget_in
168 #define syst_get_in_ALREADY_DEFINED
169 #else
170 #define yyget_in syst_get_in
171 #endif
172 
173 #ifdef yyset_in
174 #define syst_set_in_ALREADY_DEFINED
175 #else
176 #define yyset_in syst_set_in
177 #endif
178 
179 #ifdef yyget_out
180 #define syst_get_out_ALREADY_DEFINED
181 #else
182 #define yyget_out syst_get_out
183 #endif
184 
185 #ifdef yyset_out
186 #define syst_set_out_ALREADY_DEFINED
187 #else
188 #define yyset_out syst_set_out
189 #endif
190 
191 #ifdef yyget_leng
192 #define syst_get_leng_ALREADY_DEFINED
193 #else
194 #define yyget_leng syst_get_leng
195 #endif
196 
197 #ifdef yyget_text
198 #define syst_get_text_ALREADY_DEFINED
199 #else
200 #define yyget_text syst_get_text
201 #endif
202 
203 #ifdef yyget_lineno
204 #define syst_get_lineno_ALREADY_DEFINED
205 #else
206 #define yyget_lineno syst_get_lineno
207 #endif
208 
209 #ifdef yyset_lineno
210 #define syst_set_lineno_ALREADY_DEFINED
211 #else
212 #define yyset_lineno syst_set_lineno
213 #endif
214 
215 #ifdef yywrap
216 #define syst_wrap_ALREADY_DEFINED
217 #else
218 #define yywrap syst_wrap
219 #endif
220 
221 #ifdef yyalloc
222 #define syst_alloc_ALREADY_DEFINED
223 #else
224 #define yyalloc syst_alloc
225 #endif
226 
227 #ifdef yyrealloc
228 #define syst_realloc_ALREADY_DEFINED
229 #else
230 #define yyrealloc syst_realloc
231 #endif
232 
233 #ifdef yyfree
234 #define syst_free_ALREADY_DEFINED
235 #else
236 #define yyfree syst_free
237 #endif
238 
239 #ifdef yytext
240 #define syst_text_ALREADY_DEFINED
241 #else
242 #define yytext syst_text
243 #endif
244 
245 #ifdef yyleng
246 #define syst_leng_ALREADY_DEFINED
247 #else
248 #define yyleng syst_leng
249 #endif
250 
251 #ifdef yyin
252 #define syst_in_ALREADY_DEFINED
253 #else
254 #define yyin syst_in
255 #endif
256 
257 #ifdef yyout
258 #define syst_out_ALREADY_DEFINED
259 #else
260 #define yyout syst_out
261 #endif
262 
263 #ifdef yy_flex_debug
264 #define syst__flex_debug_ALREADY_DEFINED
265 #else
266 #define yy_flex_debug syst__flex_debug
267 #endif
268 
269 #ifdef yylineno
270 #define syst_lineno_ALREADY_DEFINED
271 #else
272 #define yylineno syst_lineno
273 #endif
274 
275 /* First, we deal with platform-specific or compiler-specific issues. */
276 
277 /* begin standard C headers. */
278 #include <stdio.h>
279 #include <string.h>
280 #include <errno.h>
281 #include <stdlib.h>
282 
283 /* end standard C headers. */
284 
285 /* flex integer type definitions */
286 
287 #ifndef FLEXINT_H
288 #define FLEXINT_H
289 
290 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
291 
292 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
293 
294 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
295  * if you want the limit (max/min) macros for int types.
296  */
297 #ifndef __STDC_LIMIT_MACROS
298 #define __STDC_LIMIT_MACROS 1
299 #endif
300 
301 #include <inttypes.h>
302 typedef int8_t flex_int8_t;
303 typedef uint8_t flex_uint8_t;
304 typedef int16_t flex_int16_t;
305 typedef uint16_t flex_uint16_t;
306 typedef int32_t flex_int32_t;
307 typedef uint32_t flex_uint32_t;
308 #else
309 typedef signed char flex_int8_t;
310 typedef short int flex_int16_t;
311 typedef int flex_int32_t;
312 typedef unsigned char flex_uint8_t;
313 typedef unsigned short int flex_uint16_t;
314 typedef unsigned int flex_uint32_t;
315 
316 /* Limits of integral types. */
317 #ifndef INT8_MIN
318 #define INT8_MIN (-128)
319 #endif
320 #ifndef INT16_MIN
321 #define INT16_MIN (-32767-1)
322 #endif
323 #ifndef INT32_MIN
324 #define INT32_MIN (-2147483647-1)
325 #endif
326 #ifndef INT8_MAX
327 #define INT8_MAX (127)
328 #endif
329 #ifndef INT16_MAX
330 #define INT16_MAX (32767)
331 #endif
332 #ifndef INT32_MAX
333 #define INT32_MAX (2147483647)
334 #endif
335 #ifndef UINT8_MAX
336 #define UINT8_MAX (255U)
337 #endif
338 #ifndef UINT16_MAX
339 #define UINT16_MAX (65535U)
340 #endif
341 #ifndef UINT32_MAX
342 #define UINT32_MAX (4294967295U)
343 #endif
344 
345 #ifndef SIZE_MAX
346 #define SIZE_MAX (~(size_t)0)
347 #endif
348 
349 #endif /* ! C99 */
350 
351 #endif /* ! FLEXINT_H */
352 
353 /* begin standard C++ headers. */
354 
355 /* TODO: this is always defined, so inline it */
356 #define yyconst const
357 
358 #if defined(__GNUC__) && __GNUC__ >= 3
359 #define yynoreturn __attribute__((__noreturn__))
360 #else
361 #define yynoreturn
362 #endif
363 
364 /* Returned upon end-of-file. */
365 #define YY_NULL 0
366 
367 /* Promotes a possibly negative, possibly signed char to an
368  * integer in range [0..255] for use as an array index.
369  */
370 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
371 
372 /* Enter a start condition. This macro really ought to take a parameter,
373  * but we do it the disgusting crufty way forced on us by the ()-less
374  * definition of BEGIN.
375  */
376 #define BEGIN (yy_start) = 1 + 2 *
377 /* Translate the current start state into a value that can be later handed
378  * to BEGIN to return to the state. The YYSTATE alias is for lex
379  * compatibility.
380  */
381 #define YY_START (((yy_start) - 1) / 2)
382 #define YYSTATE YY_START
383 /* Action number for EOF rule of a given start state. */
384 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
385 /* Special action meaning "start processing a new file". */
386 #define YY_NEW_FILE yyrestart( yyin )
387 #define YY_END_OF_BUFFER_CHAR 0
388 
389 /* Size of default input buffer. */
390 #ifndef YY_BUF_SIZE
391 #ifdef __ia64__
392 /* On IA-64, the buffer size is 16k, not 8k.
393  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
394  * Ditto for the __ia64__ case accordingly.
395  */
396 #define YY_BUF_SIZE 32768
397 #else
398 #define YY_BUF_SIZE 16384
399 #endif /* __ia64__ */
400 #endif
401 
402 /* The state buf must be large enough to hold one state per character in the main buffer.
403  */
404 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
405 
406 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
407 #define YY_TYPEDEF_YY_BUFFER_STATE
409 #endif
410 
411 #ifndef YY_TYPEDEF_YY_SIZE_T
412 #define YY_TYPEDEF_YY_SIZE_T
413 typedef size_t yy_size_t;
414 #endif
415 
416 extern int yyleng;
417 
418 extern FILE *yyin, *yyout;
419 
420 #define EOB_ACT_CONTINUE_SCAN 0
421 #define EOB_ACT_END_OF_FILE 1
422 #define EOB_ACT_LAST_MATCH 2
423 
424  #define YY_LESS_LINENO(n)
425  #define YY_LINENO_REWIND_TO(ptr)
426 
427 /* Return all but the first "n" matched characters back to the input stream. */
428 #define yyless(n) \
429  do \
430  { \
431  /* Undo effects of setting up yytext. */ \
432  int yyless_macro_arg = (n); \
433  YY_LESS_LINENO(yyless_macro_arg);\
434  *yy_cp = (yy_hold_char); \
435  YY_RESTORE_YY_MORE_OFFSET \
436  (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
437  YY_DO_BEFORE_ACTION; /* set up yytext again */ \
438  } \
439  while ( 0 )
440 #define unput(c) yyunput( c, (yytext_ptr) )
441 
442 #ifndef YY_STRUCT_YY_BUFFER_STATE
443 #define YY_STRUCT_YY_BUFFER_STATE
444 struct yy_buffer_state
445  {
446  FILE *yy_input_file;
447 
448  char *yy_ch_buf; /* input buffer */
449  char *yy_buf_pos; /* current position in input buffer */
450 
451  /* Size of input buffer in bytes, not including room for EOB
452  * characters.
453  */
454  int yy_buf_size;
455 
456  /* Number of characters read into yy_ch_buf, not including EOB
457  * characters.
458  */
459  int yy_n_chars;
460 
461  /* Whether we "own" the buffer - i.e., we know we created it,
462  * and can realloc() it to grow it, and should free() it to
463  * delete it.
464  */
465  int yy_is_our_buffer;
466 
467  /* Whether this is an "interactive" input source; if so, and
468  * if we're using stdio for input, then we want to use getc()
469  * instead of fread(), to make sure we stop fetching input after
470  * each newline.
471  */
472  int yy_is_interactive;
473 
474  /* Whether we're considered to be at the beginning of a line.
475  * If so, '^' rules will be active on the next match, otherwise
476  * not.
477  */
478  int yy_at_bol;
479 
480  int yy_bs_lineno; /**< The line count. */
481  int yy_bs_column; /**< The column count. */
482 
483  /* Whether to try to fill the input buffer when we reach the
484  * end of it.
485  */
486  int yy_fill_buffer;
487 
488  int yy_buffer_status;
489 
490 #define YY_BUFFER_NEW 0
491 #define YY_BUFFER_NORMAL 1
492  /* When an EOF's been seen but there's still some text to process
493  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
494  * shouldn't try reading from the input source any more. We might
495  * still have a bunch of tokens to match, though, because of
496  * possible backing-up.
497  *
498  * When we actually see the EOF, we change the status to "new"
499  * (via yyrestart()), so that the user can continue scanning by
500  * just pointing yyin at a new input file.
501  */
502 #define YY_BUFFER_EOF_PENDING 2
503 
504  };
505 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
506 
507 /* Stack of input buffers. */
508 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
509 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
510 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */
511 
512 /* We provide macros for accessing buffer states in case in the
513  * future we want to put the buffer states in a more general
514  * "scanner state".
515  *
516  * Returns the top of the stack, or NULL.
517  */
518 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
519  ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
520  : NULL)
521 /* Same as previous macro, but useful when we know that the buffer stack is not
522  * NULL or when we need an lvalue. For internal use only.
523  */
524 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
525 
526 /* yy_hold_char holds the character lost when yytext is formed. */
527 static char yy_hold_char;
528 static int yy_n_chars; /* number of characters read into yy_ch_buf */
529 int yyleng;
530 
531 /* Points to current character in buffer. */
532 static char *yy_c_buf_p = NULL;
533 static int yy_init = 0; /* whether we need to initialize */
534 static int yy_start = 0; /* start state number */
535 
536 /* Flag which is used to allow yywrap()'s to do buffer switches
537  * instead of setting up a fresh yyin. A bit of a hack ...
538  */
540 
541 void yyrestart ( FILE *input_file );
543 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size );
547 void yypop_buffer_state ( void );
548 
549 static void yyensure_buffer_stack ( void );
550 static void yy_load_buffer_state ( void );
551 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file );
552 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
553 
555 YY_BUFFER_STATE yy_scan_string ( const char *yy_str );
556 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len );
557 
558 void *yyalloc ( yy_size_t );
559 void *yyrealloc ( void *, yy_size_t );
560 void yyfree ( void * );
561 
562 #define yy_new_buffer yy_create_buffer
563 #define yy_set_interactive(is_interactive) \
564  { \
565  if ( ! YY_CURRENT_BUFFER ){ \
566  yyensure_buffer_stack (); \
567  YY_CURRENT_BUFFER_LVALUE = \
568  yy_create_buffer( yyin, YY_BUF_SIZE ); \
569  } \
570  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
571  }
572 #define yy_set_bol(at_bol) \
573  { \
574  if ( ! YY_CURRENT_BUFFER ){\
575  yyensure_buffer_stack (); \
576  YY_CURRENT_BUFFER_LVALUE = \
577  yy_create_buffer( yyin, YY_BUF_SIZE ); \
578  } \
579  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
580  }
581 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
582 
583 /* Begin user sect3 */
585 
586 FILE *yyin , *yyout ;
587 
588 typedef int yy_state_type;
589 
590 extern int yylineno;
591 int yylineno = 1;
592 
593 extern char *yytext;
594 #ifdef yytext_ptr
595 #undef yytext_ptr
596 #endif
597 #define yytext_ptr yytext
598 
601 static int yy_get_next_buffer ( void );
602 static void yynoreturn yy_fatal_error ( const char* msg );
603 
604 /* Done after the current pattern has been matched and before the
605  * corresponding action - sets up yytext.
606  */
607 #define YY_DO_BEFORE_ACTION \
608  (yytext_ptr) = yy_bp; \
609  yyleng = (int) (yy_cp - yy_bp); \
610  (yy_hold_char) = *yy_cp; \
611  *yy_cp = '\0'; \
612  (yy_c_buf_p) = yy_cp;
613 #define YY_NUM_RULES 22
614 #define YY_END_OF_BUFFER 23
615 /* This struct is not used in this scanner,
616  but its presence is necessary. */
617 struct yy_trans_info
618  {
621  };
622 static const flex_int16_t yy_accept[43] =
623  { 0,
624  0, 0, 20, 20, 5, 5, 23, 21, 22, 20,
625  19, 17, 17, 18, 21, 9, 8, 10, 2, 5,
626  13, 7, 11, 2, 2, 15, 16, 20, 17, 0,
627  3, 2, 4, 2, 4, 5, 14, 6, 12, 2,
628  1, 0
629  } ;
630 
631 static const YY_CHAR yy_ec[256] =
632  { 0,
633  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
634  1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
635  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
636  1, 4, 1, 1, 5, 1, 1, 1, 6, 1,
637  1, 1, 7, 8, 9, 10, 1, 11, 11, 11,
638  11, 11, 11, 11, 11, 11, 11, 12, 1, 13,
639  14, 15, 16, 1, 17, 18, 18, 19, 19, 18,
640  18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
641  18, 20, 18, 18, 18, 21, 18, 18, 18, 18,
642  1, 1, 1, 1, 18, 1, 18, 18, 18, 18,
643 
644  19, 18, 18, 18, 18, 18, 18, 18, 18, 18,
645  18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
646  18, 18, 22, 1, 23, 1, 1, 1, 1, 1,
647  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
648  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
649  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
650  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
651  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
652  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
653  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
654 
655  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
656  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
657  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
658  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
659  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
660  1, 1, 1, 1, 1
661  } ;
662 
663 static const YY_CHAR yy_meta[24] =
664  { 0,
665  1, 1, 2, 3, 4, 4, 1, 1, 5, 4,
666  4, 4, 1, 1, 1, 3, 4, 4, 4, 4,
667  4, 1, 1
668  } ;
669 
670 static const flex_int16_t yy_base[48] =
671  { 0,
672  82, 81, 80, 79, 0, 0, 81, 86, 86, 0,
673  86, 22, 25, 86, 67, 86, 86, 86, 21, 23,
674  46, 45, 44, 47, 22, 86, 86, 0, 33, 47,
675  86, 43, 32, 35, 36, 38, 86, 86, 86, 41,
676  29, 86, 61, 66, 71, 74, 75
677  } ;
678 
679 static const flex_int16_t yy_def[48] =
680  { 0,
681  43, 43, 44, 44, 42, 5, 42, 42, 42, 45,
682  42, 42, 42, 42, 46, 42, 42, 42, 47, 42,
683  42, 42, 42, 47, 47, 42, 42, 45, 42, 46,
684  42, 47, 42, 47, 42, 42, 42, 42, 42, 47,
685  47, 0, 42, 42, 42, 42, 42
686  } ;
687 
688 static const flex_int16_t yy_nxt[110] =
689  { 0,
690  8, 12, 13, 12, 14, 15, 16, 17, 18, 19,
691  20, 8, 21, 22, 23, 8, 24, 24, 19, 24,
692  25, 26, 27, 29, 29, 29, 29, 29, 29, 33,
693  42, 34, 35, 36, 29, 29, 29, 42, 40, 34,
694  33, 35, 33, 33, 33, 34, 33, 35, 36, 42,
695  33, 42, 31, 34, 33, 42, 35, 39, 38, 37,
696  41, 8, 8, 8, 8, 8, 10, 10, 10, 10,
697  10, 28, 31, 28, 28, 28, 30, 30, 32, 32,
698  42, 11, 11, 9, 9, 7, 42, 42, 42, 42,
699  42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
700 
701  42, 42, 42, 42, 42, 42, 42, 42, 42
702  } ;
703 
704 static const flex_int16_t yy_chk[110] =
705  { 0,
706  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
707  5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
708  5, 5, 5, 12, 12, 12, 13, 13, 13, 19,
709  25, 19, 20, 20, 29, 29, 29, 41, 25, 19,
710  33, 20, 33, 34, 35, 34, 35, 36, 36, 40,
711  33, 32, 30, 34, 35, 24, 36, 23, 22, 21,
712  40, 43, 43, 43, 43, 43, 44, 44, 44, 44,
713  44, 45, 15, 45, 45, 45, 46, 46, 47, 47,
714  7, 4, 3, 2, 1, 42, 42, 42, 42, 42,
715  42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
716 
717  42, 42, 42, 42, 42, 42, 42, 42, 42
718  } ;
719 
722 
723 extern int yy_flex_debug;
725 
726 /* The intent behind this definition is that it'll catch
727  * any uses of REJECT which flex missed.
728  */
729 #define REJECT reject_used_but_not_detected
730 #define yymore() yymore_used_but_not_detected
731 #define YY_MORE_ADJ 0
732 #define YY_RESTORE_YY_MORE_OFFSET
733 char *yytext;
734 #line 1 "sc_lex.l"
735 /*
736 
737  $Id: sc_lex.l 1647 2016-07-01 11:57:57Z coelho $
738 
739  Copyright 1989-2016 MINES ParisTech
740 
741  This file is part of Linear/C3 Library.
742 
743  Linear/C3 Library is free software: you can redistribute it and/or modify it
744  under the terms of the GNU Lesser General Public License as published by
745  the Free Software Foundation, either version 3 of the License, or
746  any later version.
747 
748  Linear/C3 Library is distributed in the hope that it will be useful, but WITHOUT ANY
749  WARRANTY; without even the implied warranty of MERCHANTABILITY or
750  FITNESS FOR A PARTICULAR PURPOSE.
751 
752  See the GNU Lesser General Public License for more details.
753 
754  You should have received a copy of the GNU Lesser General Public License
755  along with Linear/C3 Library. If not, see <http://www.gnu.org/licenses/>.
756 
757 */
758 
759 #line 28 "sc_lex.l"
760 /*
761  Grammaire lex necessaire pour l'analyse lexicale d'un systeme
762  d'assertions. Les tokens renvoyes sont commentes dans le fichier
763  "sc_gram.y".
764 */
765 
766 #include <stdio.h>
767 #include <stdlib.h>
768 #include <string.h>
769 #include <unistd.h> /* flex uses isatty */
770 
771 #include "boolean.h"
772 #include "arithmetique.h"
773 #include "vecteur.h"
774 
775 #include "sc_gram.h"
776 
777 #define RETURN(x) /* fprintf(stderr, "lex: %d\n", x); */ return x
778 
780 extern int syst_error(char *);
781 
782 #line 783 "<stdout>"
783 #line 784 "<stdout>"
784 
785 #define INITIAL 0
786 #define COMMENT 1
787 #define TEXT 2
788 
789 #ifndef YY_NO_UNISTD_H
790 /* Special case for "unistd.h", since it is non-ANSI. We include it way
791  * down here because we want the user's section 1 to have been scanned first.
792  * The user has a chance to override it with an option.
793  */
794 #include <unistd.h>
795 #endif
796 
797 #ifndef YY_EXTRA_TYPE
798 #define YY_EXTRA_TYPE void *
799 #endif
800 
801 static int yy_init_globals ( void );
802 
803 /* Accessor methods to globals.
804  These are made visible to non-reentrant scanners for convenience. */
805 
806 int yylex_destroy ( void );
807 
808 int yyget_debug ( void );
809 
810 void yyset_debug ( int debug_flag );
811 
812 YY_EXTRA_TYPE yyget_extra ( void );
813 
814 void yyset_extra ( YY_EXTRA_TYPE user_defined );
815 
816 FILE *yyget_in ( void );
817 
818 void yyset_in ( FILE * _in_str );
819 
820 FILE *yyget_out ( void );
821 
822 void yyset_out ( FILE * _out_str );
823 
824  int yyget_leng ( void );
825 
826 char *yyget_text ( void );
827 
828 int yyget_lineno ( void );
829 
830 void yyset_lineno ( int _line_number );
831 
832 /* Macros after this point can all be overridden by user definitions in
833  * section 1.
834  */
835 
836 #ifndef YY_SKIP_YYWRAP
837 #ifdef __cplusplus
838 extern "C" int yywrap ( void );
839 #else
840 extern int yywrap ( void );
841 #endif
842 #endif
843 
844 #ifndef YY_NO_UNPUT
845 
846 #endif
847 
848 #ifndef yytext_ptr
849 static void yy_flex_strncpy ( char *, const char *, int );
850 #endif
851 
852 #ifdef YY_NEED_STRLEN
853 static int yy_flex_strlen ( const char * );
854 #endif
855 
856 #ifndef YY_NO_INPUT
857 #ifdef __cplusplus
858 static int yyinput ( void );
859 #else
860 static int input ( void );
861 #endif
862 
863 #endif
864 
865 /* Amount of stuff to slurp up with each read. */
866 #ifndef YY_READ_BUF_SIZE
867 #ifdef __ia64__
868 /* On IA-64, the buffer size is 16k, not 8k */
869 #define YY_READ_BUF_SIZE 16384
870 #else
871 #define YY_READ_BUF_SIZE 8192
872 #endif /* __ia64__ */
873 #endif
874 
875 /* Copy whatever the last rule matched to the standard output. */
876 #ifndef ECHO
877 /* This used to be an fputs(), but since the string might contain NUL's,
878  * we now use fwrite().
879  */
880 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
881 #endif
882 
883 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
884  * is returned in "result".
885  */
886 #ifndef YY_INPUT
887 #define YY_INPUT(buf,result,max_size) \
888  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
889  { \
890  int c = '*'; \
891  int n; \
892  for ( n = 0; n < max_size && \
893  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
894  buf[n] = (char) c; \
895  if ( c == '\n' ) \
896  buf[n++] = (char) c; \
897  if ( c == EOF && ferror( yyin ) ) \
898  YY_FATAL_ERROR( "input in flex scanner failed" ); \
899  result = n; \
900  } \
901  else \
902  { \
903  errno=0; \
904  while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
905  { \
906  if( errno != EINTR) \
907  { \
908  YY_FATAL_ERROR( "input in flex scanner failed" ); \
909  break; \
910  } \
911  errno=0; \
912  clearerr(yyin); \
913  } \
914  }\
915 \
916 
917 #endif
918 
919 /* No semi-colon after return; correct usage is to write "yyterminate();" -
920  * we don't want an extra ';' after the "return" because that will cause
921  * some compilers to complain about unreachable statements.
922  */
923 #ifndef yyterminate
924 #define yyterminate() return YY_NULL
925 #endif
926 
927 /* Number of entries by which start-condition stack grows. */
928 #ifndef YY_START_STACK_INCR
929 #define YY_START_STACK_INCR 25
930 #endif
931 
932 /* Report a fatal error. */
933 #ifndef YY_FATAL_ERROR
934 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
935 #endif
936 
937 /* end tables serialization structures and prototypes */
938 
939 /* Default declaration of generated scanner - a define so the user can
940  * easily add parameters.
941  */
942 #ifndef YY_DECL
943 #define YY_DECL_IS_OURS 1
944 
945 extern int yylex (void);
946 
947 #define YY_DECL int yylex (void)
948 #endif /* !YY_DECL */
949 
950 /* Code executed at the beginning of each rule, after yytext and yyleng
951  * have been set up.
952  */
953 #ifndef YY_USER_ACTION
954 #define YY_USER_ACTION
955 #endif
956 
957 /* Code executed at the end of each rule. */
958 #ifndef YY_BREAK
959 #define YY_BREAK /*LINTED*/break;
960 #endif
961 
962 #define YY_RULE_SETUP \
963  YY_USER_ACTION
964 
965 /** The main scanner function which does all the work.
966  */
968 {
969  yy_state_type yy_current_state;
970  char *yy_cp, *yy_bp;
971  int yy_act;
972 
973  if ( !(yy_init) )
974  {
975  (yy_init) = 1;
976 
977 #ifdef YY_USER_INIT
978  YY_USER_INIT;
979 #endif
980 
981  if ( ! (yy_start) )
982  (yy_start) = 1; /* first start state */
983 
984  if ( ! yyin )
985  yyin = stdin;
986 
987  if ( ! yyout )
988  yyout = stdout;
989 
990  if ( ! YY_CURRENT_BUFFER ) {
994  }
995 
997  }
998 
999  {
1000 #line 52 "sc_lex.l"
1001 
1002 #line 1003 "<stdout>"
1003 
1004  while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
1005  {
1006  yy_cp = (yy_c_buf_p);
1007 
1008  /* Support of yytext. */
1009  *yy_cp = (yy_hold_char);
1010 
1011  /* yy_bp points to the position in yy_ch_buf of the start of
1012  * the current run.
1013  */
1014  yy_bp = yy_cp;
1015 
1016  yy_current_state = (yy_start);
1017 yy_match:
1018  do
1019  {
1020  YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1021  if ( yy_accept[yy_current_state] )
1022  {
1023  (yy_last_accepting_state) = yy_current_state;
1025  }
1026  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1027  {
1028  yy_current_state = (int) yy_def[yy_current_state];
1029  if ( yy_current_state >= 43 )
1030  yy_c = yy_meta[yy_c];
1031  }
1032  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1033  ++yy_cp;
1034  }
1035  while ( yy_base[yy_current_state] != 86 );
1036 
1037 yy_find_action:
1038  yy_act = yy_accept[yy_current_state];
1039  if ( yy_act == 0 )
1040  { /* have to back up */
1042  yy_current_state = (yy_last_accepting_state);
1043  yy_act = yy_accept[yy_current_state];
1044  }
1045 
1047 
1048 do_action: /* This label is used only to access EOF actions. */
1049 
1050  switch ( yy_act )
1051  { /* beginning of action switch */
1052  case 0: /* must back up */
1053  /* undo the effects of YY_DO_BEFORE_ACTION */
1054  *yy_cp = (yy_hold_char);
1056  yy_current_state = (yy_last_accepting_state);
1057  goto yy_find_action;
1058 
1059 case 1:
1061 #line 53 "sc_lex.l"
1062 { RETURN(VAR); }
1063  YY_BREAK
1064 case 2:
1066 #line 54 "sc_lex.l"
1067 { syst_lval.Variable = (Variable) sc_internal_symbol_table(syst_text); /*'*/
1068  RETURN(IDENT); }
1069  YY_BREAK
1070 case 3:
1072 #line 56 "sc_lex.l"
1073 { syst_lval.Variable = (Variable) sc_internal_symbol_table(syst_text); /*'*/
1074  RETURN(IDENT); }
1075  YY_BREAK
1076 case 4:
1078 #line 58 "sc_lex.l"
1079 { syst_lval.Variable = (Variable) sc_internal_symbol_table(syst_text); /*'*/
1080  RETURN(IDENT); }
1081  YY_BREAK
1082 case 5:
1084 #line 60 "sc_lex.l"
1085 { sscan_Value(syst_text,&syst_lval.Value);
1086  RETURN(CONSTANTE); }
1087  YY_BREAK
1088 case 6:
1090 #line 62 "sc_lex.l"
1091 { RETURN(EGAL); }
1092  YY_BREAK
1093 case 7:
1095 #line 63 "sc_lex.l"
1096 { RETURN(EGAL); }
1097  YY_BREAK
1098 case 8:
1100 #line 64 "sc_lex.l"
1101 { RETURN(VIRG); }
1102  YY_BREAK
1103 case 9:
1105 #line 65 "sc_lex.l"
1106 { RETURN(PLUS); }
1107  YY_BREAK
1108 case 10:
1110 #line 66 "sc_lex.l"
1111 { RETURN(MOINS); }
1112  YY_BREAK
1113 case 11:
1115 #line 67 "sc_lex.l"
1116 { RETURN(SUP); }
1117  YY_BREAK
1118 case 12:
1120 #line 68 "sc_lex.l"
1121 { RETURN(SUPEGAL); }
1122  YY_BREAK
1123 case 13:
1125 #line 69 "sc_lex.l"
1126 { RETURN(INF); }
1127  YY_BREAK
1128 case 14:
1130 #line 70 "sc_lex.l"
1131 { RETURN(INFEGAL); }
1132  YY_BREAK
1133 case 15:
1135 #line 71 "sc_lex.l"
1136 { RETURN(ACCOUVR); }
1137  YY_BREAK
1138 case 16:
1140 #line 72 "sc_lex.l"
1141 { RETURN(ACCFERM); }
1142  YY_BREAK
1143 case 17:
1144 /* rule 17 can match eol */
1146 #line 73 "sc_lex.l"
1147 ;
1148  YY_BREAK
1149 case 18:
1151 #line 74 "sc_lex.l"
1152 {BEGIN COMMENT;}
1153  YY_BREAK
1154 case 19:
1155 /* rule 19 can match eol */
1157 #line 75 "sc_lex.l"
1158 {BEGIN TEXT;}
1159  YY_BREAK
1160 case 20:
1162 #line 76 "sc_lex.l"
1163 ;
1164  YY_BREAK
1165 case 21:
1167 #line 77 "sc_lex.l"
1168 { syst_error("unexpected character"); }
1169  YY_BREAK
1170 case 22:
1172 #line 78 "sc_lex.l"
1173 ECHO;
1174  YY_BREAK
1175 #line 1176 "<stdout>"
1176 case YY_STATE_EOF(INITIAL):
1177 case YY_STATE_EOF(COMMENT):
1178 case YY_STATE_EOF(TEXT):
1179  yyterminate();
1180 
1181  case YY_END_OF_BUFFER:
1182  {
1183  /* Amount of text matched not including the EOB char. */
1184  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1185 
1186  /* Undo the effects of YY_DO_BEFORE_ACTION. */
1187  *yy_cp = (yy_hold_char);
1189 
1190  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1191  {
1192  /* We're scanning a new file or input source. It's
1193  * possible that this happened because the user
1194  * just pointed yyin at a new source and called
1195  * yylex(). If so, then we have to assure
1196  * consistency between YY_CURRENT_BUFFER and our
1197  * globals. Here is the right place to do so, because
1198  * this is the first action (other than possibly a
1199  * back-up) that will match for the new input source.
1200  */
1201  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1202  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1203  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1204  }
1205 
1206  /* Note that here we test for yy_c_buf_p "<=" to the position
1207  * of the first EOB in the buffer, since yy_c_buf_p will
1208  * already have been incremented past the NUL character
1209  * (since all states make transitions on EOB to the
1210  * end-of-buffer state). Contrast this with the test
1211  * in input().
1212  */
1213  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1214  { /* This was really a NUL. */
1215  yy_state_type yy_next_state;
1216 
1217  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1218 
1219  yy_current_state = yy_get_previous_state( );
1220 
1221  /* Okay, we're now positioned to make the NUL
1222  * transition. We couldn't have
1223  * yy_get_previous_state() go ahead and do it
1224  * for us because it doesn't know how to deal
1225  * with the possibility of jamming (and we don't
1226  * want to build jamming into it because then it
1227  * will run more slowly).
1228  */
1229 
1230  yy_next_state = yy_try_NUL_trans( yy_current_state );
1231 
1233 
1234  if ( yy_next_state )
1235  {
1236  /* Consume the NUL. */
1237  yy_cp = ++(yy_c_buf_p);
1238  yy_current_state = yy_next_state;
1239  goto yy_match;
1240  }
1241 
1242  else
1243  {
1244  yy_cp = (yy_c_buf_p);
1245  goto yy_find_action;
1246  }
1247  }
1248 
1249  else switch ( yy_get_next_buffer( ) )
1250  {
1251  case EOB_ACT_END_OF_FILE:
1252  {
1254 
1255  if ( yywrap( ) )
1256  {
1257  /* Note: because we've taken care in
1258  * yy_get_next_buffer() to have set up
1259  * yytext, we can now set up
1260  * yy_c_buf_p so that if some total
1261  * hoser (like flex itself) wants to
1262  * call the scanner after we return the
1263  * YY_NULL, it'll still work - another
1264  * YY_NULL will get returned.
1265  */
1267 
1269  goto do_action;
1270  }
1271 
1272  else
1273  {
1274  if ( ! (yy_did_buffer_switch_on_eof) )
1275  YY_NEW_FILE;
1276  }
1277  break;
1278  }
1279 
1280  case EOB_ACT_CONTINUE_SCAN:
1281  (yy_c_buf_p) =
1282  (yytext_ptr) + yy_amount_of_matched_text;
1283 
1284  yy_current_state = yy_get_previous_state( );
1285 
1286  yy_cp = (yy_c_buf_p);
1288  goto yy_match;
1289 
1290  case EOB_ACT_LAST_MATCH:
1291  (yy_c_buf_p) =
1292  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1293 
1294  yy_current_state = yy_get_previous_state( );
1295 
1296  yy_cp = (yy_c_buf_p);
1298  goto yy_find_action;
1299  }
1300  break;
1301  }
1302 
1303  default:
1305  "fatal flex scanner internal error--no action found" );
1306  } /* end of action switch */
1307  } /* end of scanning one token */
1308  } /* end of user's declarations */
1309 } /* end of yylex */
1310 
1311 /* yy_get_next_buffer - try to read in a new buffer
1312  *
1313  * Returns a code representing an action:
1314  * EOB_ACT_LAST_MATCH -
1315  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1316  * EOB_ACT_END_OF_FILE - end of file
1317  */
1318 static int yy_get_next_buffer (void)
1319 {
1320  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1321  char *source = (yytext_ptr);
1322  int number_to_move, i;
1323  int ret_val;
1324 
1325  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1327  "fatal flex scanner internal error--end of buffer missed" );
1328 
1329  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1330  { /* Don't try to fill the buffer, so this is an EOF. */
1331  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1332  {
1333  /* We matched a single character, the EOB, so
1334  * treat this as a final EOF.
1335  */
1336  return EOB_ACT_END_OF_FILE;
1337  }
1338 
1339  else
1340  {
1341  /* We matched some text prior to the EOB, first
1342  * process it.
1343  */
1344  return EOB_ACT_LAST_MATCH;
1345  }
1346  }
1347 
1348  /* Try to read more data. */
1349 
1350  /* First move last chars to start of buffer. */
1351  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
1352 
1353  for ( i = 0; i < number_to_move; ++i )
1354  *(dest++) = *(source++);
1355 
1356  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1357  /* don't do the read, it's not guaranteed to return an EOF,
1358  * just force an EOF
1359  */
1360  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1361 
1362  else
1363  {
1364  int num_to_read =
1365  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1366 
1367  while ( num_to_read <= 0 )
1368  { /* Not enough room in the buffer - grow it. */
1369 
1370  /* just a shorter name for the current buffer */
1372 
1373  int yy_c_buf_p_offset =
1374  (int) ((yy_c_buf_p) - b->yy_ch_buf);
1375 
1376  if ( b->yy_is_our_buffer )
1377  {
1378  int new_size = b->yy_buf_size * 2;
1379 
1380  if ( new_size <= 0 )
1381  b->yy_buf_size += b->yy_buf_size / 8;
1382  else
1383  b->yy_buf_size *= 2;
1384 
1385  b->yy_ch_buf = (char *)
1386  /* Include room in for 2 EOB chars. */
1387  yyrealloc( (void *) b->yy_ch_buf,
1388  (yy_size_t) (b->yy_buf_size + 2) );
1389  }
1390  else
1391  /* Can't grow it, we don't own it. */
1392  b->yy_ch_buf = NULL;
1393 
1394  if ( ! b->yy_ch_buf )
1396  "fatal error - scanner input buffer overflow" );
1397 
1398  (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1399 
1400  num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1401  number_to_move - 1;
1402 
1403  }
1404 
1405  if ( num_to_read > YY_READ_BUF_SIZE )
1406  num_to_read = YY_READ_BUF_SIZE;
1407 
1408  /* Read in more data. */
1409  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1410  (yy_n_chars), num_to_read );
1411 
1412  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1413  }
1414 
1415  if ( (yy_n_chars) == 0 )
1416  {
1417  if ( number_to_move == YY_MORE_ADJ )
1418  {
1419  ret_val = EOB_ACT_END_OF_FILE;
1420  yyrestart( yyin );
1421  }
1422 
1423  else
1424  {
1425  ret_val = EOB_ACT_LAST_MATCH;
1426  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1428  }
1429  }
1430 
1431  else
1432  ret_val = EOB_ACT_CONTINUE_SCAN;
1433 
1434  if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1435  /* Extend the array by 50%, plus the number we really need. */
1436  int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1437  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
1438  (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size );
1439  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1440  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
1441  /* "- 2" to take care of EOB's */
1442  YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
1443  }
1444 
1445  (yy_n_chars) += number_to_move;
1448 
1449  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1450 
1451  return ret_val;
1452 }
1453 
1454 /* yy_get_previous_state - get the state just before the EOB char was reached */
1455 
1456  static yy_state_type yy_get_previous_state (void)
1457 {
1458  yy_state_type yy_current_state;
1459  char *yy_cp;
1460 
1461  yy_current_state = (yy_start);
1462 
1463  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
1464  {
1465  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1466  if ( yy_accept[yy_current_state] )
1467  {
1468  (yy_last_accepting_state) = yy_current_state;
1470  }
1471  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1472  {
1473  yy_current_state = (int) yy_def[yy_current_state];
1474  if ( yy_current_state >= 43 )
1475  yy_c = yy_meta[yy_c];
1476  }
1477  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1478  }
1479 
1480  return yy_current_state;
1481 }
1482 
1483 /* yy_try_NUL_trans - try to make a transition on the NUL character
1484  *
1485  * synopsis
1486  * next_state = yy_try_NUL_trans( current_state );
1487  */
1488  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
1489 {
1490  int yy_is_jam;
1491  char *yy_cp = (yy_c_buf_p);
1492 
1493  YY_CHAR yy_c = 1;
1494  if ( yy_accept[yy_current_state] )
1495  {
1496  (yy_last_accepting_state) = yy_current_state;
1498  }
1499  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1500  {
1501  yy_current_state = (int) yy_def[yy_current_state];
1502  if ( yy_current_state >= 43 )
1503  yy_c = yy_meta[yy_c];
1504  }
1505  yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1506  yy_is_jam = (yy_current_state == 42);
1507 
1508  return yy_is_jam ? 0 : yy_current_state;
1509 }
1510 
1511 #ifndef YY_NO_UNPUT
1512 
1513 #endif
1514 
1515 #ifndef YY_NO_INPUT
1516 #ifdef __cplusplus
1517  static int yyinput (void)
1518 #else
1519  static int input (void)
1520 #endif
1521 
1522 {
1523  int c;
1524 
1525  *(yy_c_buf_p) = (yy_hold_char);
1526 
1527  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
1528  {
1529  /* yy_c_buf_p now points to the character we want to return.
1530  * If this occurs *before* the EOB characters, then it's a
1531  * valid NUL; if not, then we've hit the end of the buffer.
1532  */
1533  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1534  /* This was really a NUL. */
1535  *(yy_c_buf_p) = '\0';
1536 
1537  else
1538  { /* need more input */
1539  int offset = (int) ((yy_c_buf_p) - (yytext_ptr));
1540  ++(yy_c_buf_p);
1541 
1542  switch ( yy_get_next_buffer( ) )
1543  {
1544  case EOB_ACT_LAST_MATCH:
1545  /* This happens because yy_g_n_b()
1546  * sees that we've accumulated a
1547  * token and flags that we need to
1548  * try matching the token before
1549  * proceeding. But for input(),
1550  * there's no matching to consider.
1551  * So convert the EOB_ACT_LAST_MATCH
1552  * to EOB_ACT_END_OF_FILE.
1553  */
1554 
1555  /* Reset buffer status. */
1556  yyrestart( yyin );
1557 
1558  /*FALLTHROUGH*/
1559 
1560  case EOB_ACT_END_OF_FILE:
1561  {
1562  if ( yywrap( ) )
1563  return 0;
1564 
1565  if ( ! (yy_did_buffer_switch_on_eof) )
1566  YY_NEW_FILE;
1567 #ifdef __cplusplus
1568  return yyinput();
1569 #else
1570  return input();
1571 #endif
1572  }
1573 
1574  case EOB_ACT_CONTINUE_SCAN:
1575  (yy_c_buf_p) = (yytext_ptr) + offset;
1576  break;
1577  }
1578  }
1579  }
1580 
1581  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
1582  *(yy_c_buf_p) = '\0'; /* preserve yytext */
1583  (yy_hold_char) = *++(yy_c_buf_p);
1584 
1585  return c;
1586 }
1587 #endif /* ifndef YY_NO_INPUT */
1588 
1589 /** Immediately switch to a different input stream.
1590  * @param input_file A readable stream.
1591  *
1592  * @note This function does not reset the start condition to @c INITIAL .
1593  */
1594  void yyrestart (FILE * input_file )
1595 {
1596 
1597  if ( ! YY_CURRENT_BUFFER ){
1601  }
1602 
1603  yy_init_buffer( YY_CURRENT_BUFFER, input_file );
1605 }
1606 
1607 /** Switch to a different input buffer.
1608  * @param new_buffer The new input buffer.
1609  *
1610  */
1611  void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
1612 {
1613 
1614  /* TODO. We should be able to replace this entire function body
1615  * with
1616  * yypop_buffer_state();
1617  * yypush_buffer_state(new_buffer);
1618  */
1620  if ( YY_CURRENT_BUFFER == new_buffer )
1621  return;
1622 
1623  if ( YY_CURRENT_BUFFER )
1624  {
1625  /* Flush out information for old buffer. */
1626  *(yy_c_buf_p) = (yy_hold_char);
1627  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1628  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1629  }
1630 
1631  YY_CURRENT_BUFFER_LVALUE = new_buffer;
1633 
1634  /* We don't actually know whether we did this switch during
1635  * EOF (yywrap()) processing, but the only time this flag
1636  * is looked at is after yywrap() is called, so it's safe
1637  * to go ahead and always set it.
1638  */
1640 }
1641 
1642 static void yy_load_buffer_state (void)
1643 {
1644  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1645  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1646  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1647  (yy_hold_char) = *(yy_c_buf_p);
1648 }
1649 
1650 /** Allocate and initialize an input buffer state.
1651  * @param file A readable stream.
1652  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
1653  *
1654  * @return the allocated buffer state.
1655  */
1656  YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
1657 {
1658  YY_BUFFER_STATE b;
1659 
1660  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
1661  if ( ! b )
1662  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1663 
1664  b->yy_buf_size = size;
1665 
1666  /* yy_ch_buf has to be 2 characters longer than the size given because
1667  * we need to put in 2 end-of-buffer characters.
1668  */
1669  b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) );
1670  if ( ! b->yy_ch_buf )
1671  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
1672 
1673  b->yy_is_our_buffer = 1;
1674 
1675  yy_init_buffer( b, file );
1676 
1677  return b;
1678 }
1679 
1680 /** Destroy the buffer.
1681  * @param b a buffer created with yy_create_buffer()
1682  *
1683  */
1685 {
1686 
1687  if ( ! b )
1688  return;
1689 
1690  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
1692 
1693  if ( b->yy_is_our_buffer )
1694  yyfree( (void *) b->yy_ch_buf );
1695 
1696  yyfree( (void *) b );
1697 }
1698 
1699 /* Initializes or reinitializes a buffer.
1700  * This function is sometimes called more than once on the same buffer,
1701  * such as during a yyrestart() or at EOF.
1702  */
1703  static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
1704 
1705 {
1706  int oerrno = errno;
1707 
1708  yy_flush_buffer( b );
1709 
1710  b->yy_input_file = file;
1711  b->yy_fill_buffer = 1;
1712 
1713  /* If b is the current buffer, then yy_init_buffer was _probably_
1714  * called from yyrestart() or through yy_get_next_buffer.
1715  * In that case, we don't want to reset the lineno or column.
1716  */
1717  if (b != YY_CURRENT_BUFFER){
1718  b->yy_bs_lineno = 1;
1719  b->yy_bs_column = 0;
1720  }
1721 
1722  b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
1723 
1724  errno = oerrno;
1725 }
1726 
1727 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
1728  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
1729  *
1730  */
1732 {
1733  if ( ! b )
1734  return;
1735 
1736  b->yy_n_chars = 0;
1737 
1738  /* We always need two end-of-buffer characters. The first causes
1739  * a transition to the end-of-buffer state. The second causes
1740  * a jam in that state.
1741  */
1744 
1745  b->yy_buf_pos = &b->yy_ch_buf[0];
1746 
1747  b->yy_at_bol = 1;
1749 
1750  if ( b == YY_CURRENT_BUFFER )
1752 }
1753 
1754 /** Pushes the new state onto the stack. The new state becomes
1755  * the current state. This function will allocate the stack
1756  * if necessary.
1757  * @param new_buffer The new state.
1758  *
1759  */
1760 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
1761 {
1762  if (new_buffer == NULL)
1763  return;
1764 
1766 
1767  /* This block is copied from yy_switch_to_buffer. */
1768  if ( YY_CURRENT_BUFFER )
1769  {
1770  /* Flush out information for old buffer. */
1771  *(yy_c_buf_p) = (yy_hold_char);
1772  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
1773  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1774  }
1775 
1776  /* Only push if top exists. Otherwise, replace top. */
1777  if (YY_CURRENT_BUFFER)
1778  (yy_buffer_stack_top)++;
1779  YY_CURRENT_BUFFER_LVALUE = new_buffer;
1780 
1781  /* copied from yy_switch_to_buffer. */
1784 }
1785 
1786 /** Removes and deletes the top of the stack, if present.
1787  * The next element becomes the new top.
1788  *
1789  */
1790 void yypop_buffer_state (void)
1791 {
1792  if (!YY_CURRENT_BUFFER)
1793  return;
1794 
1796  YY_CURRENT_BUFFER_LVALUE = NULL;
1797  if ((yy_buffer_stack_top) > 0)
1798  --(yy_buffer_stack_top);
1799 
1800  if (YY_CURRENT_BUFFER) {
1803  }
1804 }
1805 
1806 /* Allocates the stack if it does not exist.
1807  * Guarantees space for at least one push.
1808  */
1809 static void yyensure_buffer_stack (void)
1810 {
1811  yy_size_t num_to_alloc;
1812 
1813  if (!(yy_buffer_stack)) {
1814 
1815  /* First allocation is just for 2 elements, since we don't know if this
1816  * scanner will even need a stack. We use 2 instead of 1 to avoid an
1817  * immediate realloc on the next call.
1818  */
1819  num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
1821  (num_to_alloc * sizeof(struct yy_buffer_state*)
1822  );
1823  if ( ! (yy_buffer_stack) )
1824  YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1825 
1826  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
1827 
1828  (yy_buffer_stack_max) = num_to_alloc;
1829  (yy_buffer_stack_top) = 0;
1830  return;
1831  }
1832 
1833  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
1834 
1835  /* Increase the buffer to prepare for a possible push. */
1836  yy_size_t grow_size = 8 /* arbitrary grow size */;
1837 
1838  num_to_alloc = (yy_buffer_stack_max) + grow_size;
1840  ((yy_buffer_stack),
1841  num_to_alloc * sizeof(struct yy_buffer_state*)
1842  );
1843  if ( ! (yy_buffer_stack) )
1844  YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
1845 
1846  /* zero only the new slots.*/
1847  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
1848  (yy_buffer_stack_max) = num_to_alloc;
1849  }
1850 }
1851 
1852 /** Setup the input buffer state to scan directly from a user-specified character buffer.
1853  * @param base the character buffer
1854  * @param size the size in bytes of the character buffer
1855  *
1856  * @return the newly allocated buffer state object.
1857  */
1859 {
1860  YY_BUFFER_STATE b;
1861 
1862  if ( size < 2 ||
1863  base[size-2] != YY_END_OF_BUFFER_CHAR ||
1864  base[size-1] != YY_END_OF_BUFFER_CHAR )
1865  /* They forgot to leave room for the EOB's. */
1866  return NULL;
1867 
1868  b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) );
1869  if ( ! b )
1870  YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
1871 
1872  b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */
1873  b->yy_buf_pos = b->yy_ch_buf = base;
1874  b->yy_is_our_buffer = 0;
1875  b->yy_input_file = NULL;
1876  b->yy_n_chars = b->yy_buf_size;
1877  b->yy_is_interactive = 0;
1878  b->yy_at_bol = 1;
1879  b->yy_fill_buffer = 0;
1881 
1882  yy_switch_to_buffer( b );
1883 
1884  return b;
1885 }
1886 
1887 /** Setup the input buffer state to scan a string. The next call to yylex() will
1888  * scan from a @e copy of @a str.
1889  * @param yystr a NUL-terminated string to scan
1890  *
1891  * @return the newly allocated buffer state object.
1892  * @note If you want to scan bytes that may contain NUL values, then use
1893  * yy_scan_bytes() instead.
1894  */
1895 YY_BUFFER_STATE yy_scan_string (const char * yystr )
1896 {
1897 
1898  return yy_scan_bytes( yystr, (int) strlen(yystr) );
1899 }
1900 
1901 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
1902  * scan from a @e copy of @a bytes.
1903  * @param yybytes the byte buffer to scan
1904  * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
1905  *
1906  * @return the newly allocated buffer state object.
1907  */
1908 YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len )
1909 {
1910  YY_BUFFER_STATE b;
1911  char *buf;
1912  yy_size_t n;
1913  int i;
1914 
1915  /* Get memory for full buffer, including space for trailing EOB's. */
1916  n = (yy_size_t) (_yybytes_len + 2);
1917  buf = (char *) yyalloc( n );
1918  if ( ! buf )
1919  YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
1920 
1921  for ( i = 0; i < _yybytes_len; ++i )
1922  buf[i] = yybytes[i];
1923 
1924  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
1925 
1926  b = yy_scan_buffer( buf, n );
1927  if ( ! b )
1928  YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
1929 
1930  /* It's okay to grow etc. this buffer, and we should throw it
1931  * away when we're done.
1932  */
1933  b->yy_is_our_buffer = 1;
1934 
1935  return b;
1936 }
1937 
1938 #ifndef YY_EXIT_FAILURE
1939 #define YY_EXIT_FAILURE 2
1940 #endif
1941 
1942 static void yynoreturn yy_fatal_error (const char* msg )
1943 {
1944  fprintf( stderr, "%s\n", msg );
1945  exit( YY_EXIT_FAILURE );
1946 }
1947 
1948 /* Redefine yyless() so it works in section 3 code. */
1949 
1950 #undef yyless
1951 #define yyless(n) \
1952  do \
1953  { \
1954  /* Undo effects of setting up yytext. */ \
1955  int yyless_macro_arg = (n); \
1956  YY_LESS_LINENO(yyless_macro_arg);\
1957  yytext[yyleng] = (yy_hold_char); \
1958  (yy_c_buf_p) = yytext + yyless_macro_arg; \
1959  (yy_hold_char) = *(yy_c_buf_p); \
1960  *(yy_c_buf_p) = '\0'; \
1961  yyleng = yyless_macro_arg; \
1962  } \
1963  while ( 0 )
1964 
1965 /* Accessor methods (get/set functions) to struct members. */
1966 
1967 /** Get the current line number.
1968  *
1969  */
1970 int yyget_lineno (void)
1971 {
1972 
1973  return yylineno;
1974 }
1975 
1976 /** Get the input stream.
1977  *
1978  */
1979 FILE *yyget_in (void)
1980 {
1981  return yyin;
1982 }
1983 
1984 /** Get the output stream.
1985  *
1986  */
1987 FILE *yyget_out (void)
1988 {
1989  return yyout;
1990 }
1991 
1992 /** Get the length of the current token.
1993  *
1994  */
1995 int yyget_leng (void)
1996 {
1997  return yyleng;
1998 }
1999 
2000 /** Get the current token.
2001  *
2002  */
2003 
2004 char *yyget_text (void)
2005 {
2006  return yytext;
2007 }
2008 
2009 /** Set the current line number.
2010  * @param _line_number line number
2011  *
2012  */
2013 void yyset_lineno (int _line_number )
2014 {
2015 
2016  yylineno = _line_number;
2017 }
2018 
2019 /** Set the input stream. This does not discard the current
2020  * input buffer.
2021  * @param _in_str A readable stream.
2022  *
2023  * @see yy_switch_to_buffer
2024  */
2025 void yyset_in (FILE * _in_str )
2026 {
2027  yyin = _in_str ;
2028 }
2029 
2030 void yyset_out (FILE * _out_str )
2031 {
2032  yyout = _out_str ;
2033 }
2034 
2035 int yyget_debug (void)
2036 {
2037  return yy_flex_debug;
2038 }
2039 
2040 void yyset_debug (int _bdebug )
2041 {
2042  yy_flex_debug = _bdebug ;
2043 }
2044 
2045 static int yy_init_globals (void)
2046 {
2047  /* Initialization is the same as for the non-reentrant scanner.
2048  * This function is called from yylex_destroy(), so don't allocate here.
2049  */
2050 
2051  (yy_buffer_stack) = NULL;
2052  (yy_buffer_stack_top) = 0;
2053  (yy_buffer_stack_max) = 0;
2054  (yy_c_buf_p) = NULL;
2055  (yy_init) = 0;
2056  (yy_start) = 0;
2057 
2058 /* Defined in main.c */
2059 #ifdef YY_STDINIT
2060  yyin = stdin;
2061  yyout = stdout;
2062 #else
2063  yyin = NULL;
2064  yyout = NULL;
2065 #endif
2066 
2067  /* For future reference: Set errno on error, since we are called by
2068  * yylex_init()
2069  */
2070  return 0;
2071 }
2072 
2073 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
2074 int yylex_destroy (void)
2075 {
2076 
2077  /* Pop the buffer stack, destroying each element. */
2078  while(YY_CURRENT_BUFFER){
2080  YY_CURRENT_BUFFER_LVALUE = NULL;
2082  }
2083 
2084  /* Destroy the stack itself. */
2085  yyfree((yy_buffer_stack) );
2086  (yy_buffer_stack) = NULL;
2087 
2088  /* Reset the globals. This is important in a non-reentrant scanner so the next time
2089  * yylex() is called, initialization will occur. */
2090  yy_init_globals( );
2091 
2092  return 0;
2093 }
2094 
2095 /*
2096  * Internal utility routines.
2097  */
2098 
2099 #ifndef yytext_ptr
2100 static void yy_flex_strncpy (char* s1, const char * s2, int n )
2101 {
2102 
2103  int i;
2104  for ( i = 0; i < n; ++i )
2105  s1[i] = s2[i];
2106 }
2107 #endif
2108 
2109 #ifdef YY_NEED_STRLEN
2110 static int yy_flex_strlen (const char * s )
2111 {
2112  int n;
2113  for ( n = 0; s[n]; ++n )
2114  ;
2115 
2116  return n;
2117 }
2118 #endif
2119 
2120 void *yyalloc (yy_size_t size )
2121 {
2122  return malloc(size);
2123 }
2124 
2125 void *yyrealloc (void * ptr, yy_size_t size )
2126 {
2127 
2128  /* The cast to (char *) in the following accommodates both
2129  * implementations that use char* generic pointers, and those
2130  * that use void* generic pointers. It works with the latter
2131  * because both ANSI C and C++ allow castless assignment from
2132  * any pointer type to void*, and deal with argument conversions
2133  * as though doing an assignment.
2134  */
2135  return realloc(ptr, size);
2136 }
2137 
2138 void yyfree (void * ptr )
2139 {
2140  free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
2141 }
2142 
2143 #define YYTABLES_NAME "yytables"
2144 
2145 #line 78 "sc_lex.l"
2146 
2147 
2148 #define SYMBOLS_SIZE (10)
2149 
2150 char * sc_internal_symbol_table(char * name)
2151 {
2152  static int size = 0;
2153  static int index = 0; /* next available chunk */
2154  static char ** symbols = NULL;
2155 
2156  int i;
2157 
2158  if (index==size) {
2159  size += SYMBOLS_SIZE;
2160  if (symbols) symbols = (char**) realloc(symbols, sizeof(char*) * size);
2161  else symbols = (char**) malloc(sizeof(char*) * size);
2162  }
2163 
2164  for (i=0; i<index; i++)
2165  if (!strcmp(name, symbols[i]))
2166  return symbols[i];
2167 
2168  /* not found, i==index */
2169  symbols[index++] = strdup(name);
2170  return symbols[i];
2171 }
2172 
2173 #ifdef FLEX_SCANNER
2174 int syst_input()
2175 {
2176  return( input()) ;
2177 }
2178 #endif
2179 
2180 int yywrap(void)
2181 {
2182 #ifdef FLEX_SCANNER
2183  yy_init = 1 ;
2184 #endif
2185  return( 1 ) ;
2186 }
2187 
2188 void sc_init_lex(void)
2189 {
2190  /*yyrestart(); */
2191  BEGIN TEXT;
2192 }
2193 
2194 extern bool syst_syntax_error;
2195 
2196 int syst_error(char *s)
2197 {
2198  /* procedure minimun de recouvrement d'erreurs */
2199 /* int c;*/
2200 
2201  (void) fprintf(stderr,"%s near %s\n",s,yytext);
2202 /* while ((c = getchar()) != EOF)
2203  putchar(c);
2204 */
2205  syst_syntax_error = true;
2206  return true;
2207 }
2208 
2209 
2210 
2211 
void const char const char const int
int sscan_Value(char *, Value *)
Definition: io.c:68
bdt base
Current expression.
Definition: bdt_read_paf.c:100
static Value offset
Definition: translation.c:283
unsigned char flex_uint8_t
Definition: genread_lex.c:312
short int flex_int16_t
Definition: genread_lex.c:310
int flex_int32_t
Definition: genread_lex.c:311
int yy_state_type
Definition: genread_lex.c:588
flex_uint8_t YY_CHAR
Begin user sect3.
Definition: genread_lex.c:584
size_t yy_size_t
Definition: genread_lex.c:413
void * malloc(YYSIZE_T)
void free(void *)
#define IDENT
Definition: genspec.h:102
void * memset(void *str, int c, size_t len)
memset.c – set an area of memory to a given value Copyright (C) 1991, 2003, 2009-2011 Free Software F...
Definition: memset.c:23
#define exit(code)
Definition: misc-local.h:54
void sc_init_lex(void)
#define PLUS
Definition: sc_gram.c:200
#define INF
Definition: sc_gram.c:197
#define ACCOUVR
Definition: sc_gram.c:193
#define INFEGAL
Definition: sc_gram.c:198
#define SUPEGAL
Definition: sc_gram.c:202
#define ACCFERM
Definition: sc_gram.c:192
#define CONSTANTE
Definition: sc_gram.c:194
bool syst_syntax_error
detection des erreurs de syntaxe par sc_gram.y
Definition: sc_gram.c:93
#define VIRG
Definition: sc_gram.c:204
#define EGAL
Definition: sc_gram.c:195
#define MOINS
Definition: sc_gram.c:199
#define SUP
Definition: sc_gram.c:201
YYSTYPE syst_lval
#define VAR
Definition: sc_gram.c:203
#define yy_load_buffer_state
Definition: sc_lex.c:15
#define YY_NEW_FILE
Special action meaning "start processing a new file".
Definition: sc_lex.c:386
#define yyset_extra
Definition: sc_lex.c:164
#define yytext
Definition: sc_lex.c:27
unsigned char flex_uint8_t
Definition: sc_lex.c:312
#define yyset_lineno
Definition: sc_lex.c:212
#define SYMBOLS_SIZE
static char yy_hold_char
yy_hold_char holds the character lost when yytext is formed.
Definition: sc_lex.c:527
static int input(void)
#define COMMENT
Definition: sc_lex.c:786
static yy_state_type yy_last_accepting_state
Definition: sc_lex.c:720
#define yyrestart
Definition: sc_lex.c:26
static const flex_int16_t yy_accept[43]
Definition: sc_lex.c:622
#define yyset_debug
Definition: sc_lex.c:152
static void yynoreturn yy_fatal_error(const char *msg)
#define YY_EXTRA_TYPE
Special case for "unistd.h", since it is non-ANSI.
Definition: sc_lex.c:798
static int yy_start
whether we need to initialize
Definition: sc_lex.c:534
short int flex_int16_t
Definition: sc_lex.c:310
static const flex_int16_t yy_base[48]
Definition: sc_lex.c:670
#define yy_flex_debug
Definition: sc_lex.c:20
#define yyget_out
Definition: sc_lex.c:182
static YY_BUFFER_STATE * yy_buffer_stack
Stack as an array.
Definition: sc_lex.c:510
static const flex_int16_t yy_nxt[110]
Definition: sc_lex.c:688
unsigned int flex_uint32_t
Definition: sc_lex.c:314
static int yy_get_next_buffer(void)
#define yy_scan_bytes
Definition: sc_lex.c:12
#define YY_BREAK
Code executed at the end of each rule.
Definition: sc_lex.c:959
static size_t yy_buffer_stack_max
capacity of stack.
Definition: sc_lex.c:509
#define yynoreturn
Definition: sc_lex.c:361
static yy_state_type yy_try_NUL_trans(yy_state_type current_state)
#define yyget_debug
Definition: sc_lex.c:146
int yy_act
Definition: sc_lex.c:971
int syst_error(char *)
First part of user prologue.
Definition: sc_lex.c:2196
#define yypush_buffer_state
Definition: sc_lex.c:17
struct yy_buffer_state * YY_BUFFER_STATE
Definition: sc_lex.c:408
#define yyfree
Definition: sc_lex.c:31
#define yyout
Definition: sc_lex.c:25
#define TEXT
Definition: sc_lex.c:787
#define YY_BUFFER_NEW
Definition: sc_lex.c:490
#define yyget_lineno
Definition: sc_lex.c:206
#define yylex
Definition: sc_lex.c:23
#define YY_RESTORE_YY_MORE_OFFSET
Definition: sc_lex.c:732
static int yy_did_buffer_switch_on_eof
start state number
Definition: sc_lex.c:539
static int yy_init_globals(void)
#define yyget_text
Definition: sc_lex.c:200
#define YY_BUFFER_NORMAL
Definition: sc_lex.c:491
char * yy_cp
Definition: sc_lex.c:970
#define yyensure_buffer_stack
Definition: sc_lex.c:19
#define yy_scan_buffer
Definition: sc_lex.c:10
#define YY_MORE_ADJ
Definition: sc_lex.c:731
#define YY_RULE_SETUP
Definition: sc_lex.c:962
#define yy_scan_string
Definition: sc_lex.c:11
char * sc_internal_symbol_table(char *)
#define yytext_ptr
Definition: sc_lex.c:597
signed char flex_int8_t
C99 systems have <inttypes.h>.
Definition: sc_lex.c:309
#define yyget_leng
Definition: sc_lex.c:194
#define EOB_ACT_END_OF_FILE
Definition: sc_lex.c:421
#define yyalloc
Definition: sc_lex.c:29
#define yypop_buffer_state
Definition: sc_lex.c:18
#define YY_CURRENT_BUFFER_LVALUE
Same as previous macro, but useful when we know that the buffer stack is not NULL or when we need an ...
Definition: sc_lex.c:524
int flex_int32_t
Definition: sc_lex.c:311
#define YY_START
Translate the current start state into a value that can be later handed to BEGIN to return to the sta...
Definition: sc_lex.c:381
#define yy_switch_to_buffer
Definition: sc_lex.c:16
#define RETURN(x)
flex uses isatty
Definition: sc_lex.c:777
int yy_state_type
Definition: sc_lex.c:588
#define YY_CURRENT_BUFFER
We provide macros for accessing buffer states in case in the future we want to put the buffer states ...
Definition: sc_lex.c:518
#define yy_init_buffer
Definition: sc_lex.c:13
#define INITIAL
Definition: sc_lex.c:785
#define yyget_extra
Definition: sc_lex.c:158
char * yy_bp
Definition: sc_lex.c:970
#define yyin
Definition: sc_lex.c:21
static int yy_n_chars
Definition: sc_lex.c:528
#define YY_READ_BUF_SIZE
Amount of stuff to slurp up with each read.
Definition: sc_lex.c:871
#define YY_INPUT(buf, result, max_size)
Gets input and stuffs it into "buf".
Definition: sc_lex.c:887
#define ECHO
ia64
Definition: sc_lex.c:880
static const flex_int16_t yy_chk[110]
Definition: sc_lex.c:704
#define yy_flush_buffer
Definition: sc_lex.c:14
#define yyrealloc
Definition: sc_lex.c:30
#define YY_END_OF_BUFFER
Definition: sc_lex.c:614
#define YY_STATE_EOF(state)
Action number for EOF rule of a given start state.
Definition: sc_lex.c:384
#define BEGIN
Enter a start condition.
Definition: sc_lex.c:376
#define YY_END_OF_BUFFER_CHAR
Definition: sc_lex.c:387
static const flex_int16_t yy_def[48]
Definition: sc_lex.c:679
#define YY_FATAL_ERROR(msg)
Report a fatal error.
Definition: sc_lex.c:934
#define yyterminate()
No semi-colon after return; correct usage is to write "yyterminate();" - we don't want an extra ';' a...
Definition: sc_lex.c:924
unsigned short int flex_uint16_t
Definition: sc_lex.c:313
#define yywrap
Macros after this point can all be overridden by user definitions in section 1.
Definition: sc_lex.c:28
#define yy_create_buffer
A lexical scanner generated by flex.
Definition: sc_lex.c:8
flex_uint8_t YY_CHAR
Begin user sect3.
Definition: sc_lex.c:584
#define YY_DO_BEFORE_ACTION
Done after the current pattern has been matched and before the corresponding action - sets up yytext.
Definition: sc_lex.c:607
#define yy_delete_buffer
Definition: sc_lex.c:9
#define EOB_ACT_LAST_MATCH
Definition: sc_lex.c:422
#define yyget_in
Definition: sc_lex.c:170
size_t yy_size_t
Definition: sc_lex.c:413
#define YY_BUFFER_EOF_PENDING
When an EOF's been seen but there's still some text to process then we mark the buffer as YY_EOF_PEND...
Definition: sc_lex.c:502
static const YY_CHAR yy_meta[24]
Definition: sc_lex.c:663
#define yylineno
Definition: sc_lex.c:24
static yy_state_type yy_get_previous_state(void)
static const YY_CHAR yy_ec[256]
Definition: sc_lex.c:631
#define yylex_destroy
Accessor methods to globals.
Definition: sc_lex.c:140
#define yyset_out
Definition: sc_lex.c:188
static char * yy_c_buf_p
Points to current character in buffer.
Definition: sc_lex.c:532
#define EOB_ACT_CONTINUE_SCAN
Definition: sc_lex.c:420
static size_t yy_buffer_stack_top
!YY_STRUCT_YY_BUFFER_STATE
Definition: sc_lex.c:508
#define YY_DECL
Definition: sc_lex.c:947
#define YY_BUF_SIZE
Size of default input buffer.
Definition: sc_lex.c:398
#define YY_EXIT_FAILURE
static int yy_init
Definition: sc_lex.c:533
#define YY_SC_TO_UI(c)
Promotes a possibly negative, possibly signed char to an integer in range [0..255] for use as an arra...
Definition: sc_lex.c:370
#define yyleng
Definition: sc_lex.c:22
static char * yy_last_accepting_cpos
Definition: sc_lex.c:721
#define yyset_in
Definition: sc_lex.c:176
int fprintf()
test sc_min : ce test s'appelle par : programme fichier1.data fichier2.data ...
char * strdup()
s1
Definition: set.c:247
static char buf[BSZ]
Definition: split_file.c:157
#define uint32_t
Definition: stdint.in.h:156
#define int32_t
Definition: stdint.in.h:155
#define uint16_t
Definition: stdint.in.h:149
#define int8_t
Definition: stdint.in.h:141
#define uint8_t
Definition: stdint.in.h:142
#define int16_t
Definition: stdint.in.h:148
int yy_n_chars
Number of characters read into yy_ch_buf, not including EOB characters.
Definition: genread_lex.c:459
int yy_bs_column
The column count.
Definition: genread_lex.c:481
FILE * yy_input_file
Definition: genread_lex.c:446
int yy_buf_size
current position in input buffer
Definition: genread_lex.c:454
int yy_fill_buffer
Whether to try to fill the input buffer when we reach the end of it.
Definition: genread_lex.c:486
int yy_is_our_buffer
Whether we "own" the buffer - i.e., we know we created it, and can realloc() it to grow it,...
Definition: genread_lex.c:465
int yy_bs_lineno
The line count.
Definition: genread_lex.c:480
char * yy_buf_pos
input buffer
Definition: genread_lex.c:449
int yy_at_bol
Whether we're considered to be at the beginning of a line.
Definition: genread_lex.c:478
int yy_is_interactive
Whether this is an "interactive" input source; if so, and if we're using stdio for input,...
Definition: genread_lex.c:472
This struct is not used in this scanner, but its presence is necessary.
Definition: genread_lex.c:618
flex_int32_t yy_verify
Definition: genread_lex.c:619
flex_int32_t yy_nxt
Definition: genread_lex.c:620
Value Value
Definition: sc_gram.c:212
Variable Variable
Definition: sc_gram.c:213
void * Variable
arithmetique is a requirement for vecteur, but I do not want to inforce it in all pips files....
Definition: vecteur-local.h:60