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