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