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