1 
2 #line 3 "bfin-lex.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 35
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 typedef uint64_t flex_uint64_t;
50 #else
51 typedef signed char flex_int8_t;
52 typedef short int flex_int16_t;
53 typedef int flex_int32_t;
54 typedef unsigned char flex_uint8_t;
55 typedef unsigned short int flex_uint16_t;
56 typedef unsigned int flex_uint32_t;
57 #endif /* ! C99 */
58 
59 /* Limits of integral types. */
60 #ifndef INT8_MIN
61 #define INT8_MIN               (-128)
62 #endif
63 #ifndef INT16_MIN
64 #define INT16_MIN              (-32767-1)
65 #endif
66 #ifndef INT32_MIN
67 #define INT32_MIN              (-2147483647-1)
68 #endif
69 #ifndef INT8_MAX
70 #define INT8_MAX               (127)
71 #endif
72 #ifndef INT16_MAX
73 #define INT16_MAX              (32767)
74 #endif
75 #ifndef INT32_MAX
76 #define INT32_MAX              (2147483647)
77 #endif
78 #ifndef UINT8_MAX
79 #define UINT8_MAX              (255U)
80 #endif
81 #ifndef UINT16_MAX
82 #define UINT16_MAX             (65535U)
83 #endif
84 #ifndef UINT32_MAX
85 #define UINT32_MAX             (4294967295U)
86 #endif
87 
88 #endif /* ! FLEXINT_H */
89 
90 #ifdef __cplusplus
91 
92 /* The "const" storage-class-modifier is valid. */
93 #define YY_USE_CONST
94 
95 #else	/* ! __cplusplus */
96 
97 /* C99 requires __STDC__ to be defined as 1. */
98 #if defined (__STDC__)
99 
100 #define YY_USE_CONST
101 
102 #endif	/* defined (__STDC__) */
103 #endif	/* ! __cplusplus */
104 
105 #ifdef YY_USE_CONST
106 #define yyconst const
107 #else
108 #define yyconst
109 #endif
110 
111 /* Returned upon end-of-file. */
112 #define YY_NULL 0
113 
114 /* Promotes a possibly negative, possibly signed char to an unsigned
115  * integer for use as an array index.  If the signed char is negative,
116  * we want to instead treat it as an 8-bit unsigned char, hence the
117  * double cast.
118  */
119 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
120 
121 /* Enter a start condition.  This macro really ought to take a parameter,
122  * but we do it the disgusting crufty way forced on us by the ()-less
123  * definition of BEGIN.
124  */
125 #define BEGIN (yy_start) = 1 + 2 *
126 
127 /* Translate the current start state into a value that can be later handed
128  * to BEGIN to return to the state.  The YYSTATE alias is for lex
129  * compatibility.
130  */
131 #define YY_START (((yy_start) - 1) / 2)
132 #define YYSTATE YY_START
133 
134 /* Action number for EOF rule of a given start state. */
135 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
136 
137 /* Special action meaning "start processing a new file". */
138 #define YY_NEW_FILE yyrestart(yyin  )
139 
140 #define YY_END_OF_BUFFER_CHAR 0
141 
142 /* Size of default input buffer. */
143 #ifndef YY_BUF_SIZE
144 #define YY_BUF_SIZE 16384
145 #endif
146 
147 /* The state buf must be large enough to hold one state per character in the main buffer.
148  */
149 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
150 
151 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
152 #define YY_TYPEDEF_YY_BUFFER_STATE
153 typedef struct yy_buffer_state *YY_BUFFER_STATE;
154 #endif
155 
156 #ifndef YY_TYPEDEF_YY_SIZE_T
157 #define YY_TYPEDEF_YY_SIZE_T
158 typedef size_t yy_size_t;
159 #endif
160 
161 extern yy_size_t yyleng;
162 
163 extern FILE *yyin, *yyout;
164 
165 #define EOB_ACT_CONTINUE_SCAN 0
166 #define EOB_ACT_END_OF_FILE 1
167 #define EOB_ACT_LAST_MATCH 2
168 
169     #define YY_LESS_LINENO(n)
170 
171 /* Return all but the first "n" matched characters back to the input stream. */
172 #define yyless(n) \
173 	do \
174 		{ \
175 		/* Undo effects of setting up yytext. */ \
176         int yyless_macro_arg = (n); \
177         YY_LESS_LINENO(yyless_macro_arg);\
178 		*yy_cp = (yy_hold_char); \
179 		YY_RESTORE_YY_MORE_OFFSET \
180 		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
181 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
182 		} \
183 	while ( 0 )
184 
185 #define unput(c) yyunput( c, (yytext_ptr)  )
186 
187 #ifndef YY_STRUCT_YY_BUFFER_STATE
188 #define YY_STRUCT_YY_BUFFER_STATE
189 struct yy_buffer_state
190 	{
191 	FILE *yy_input_file;
192 
193 	char *yy_ch_buf;		/* input buffer */
194 	char *yy_buf_pos;		/* current position in input buffer */
195 
196 	/* Size of input buffer in bytes, not including room for EOB
197 	 * characters.
198 	 */
199 	yy_size_t yy_buf_size;
200 
201 	/* Number of characters read into yy_ch_buf, not including EOB
202 	 * characters.
203 	 */
204 	yy_size_t yy_n_chars;
205 
206 	/* Whether we "own" the buffer - i.e., we know we created it,
207 	 * and can realloc() it to grow it, and should free() it to
208 	 * delete it.
209 	 */
210 	int yy_is_our_buffer;
211 
212 	/* Whether this is an "interactive" input source; if so, and
213 	 * if we're using stdio for input, then we want to use getc()
214 	 * instead of fread(), to make sure we stop fetching input after
215 	 * each newline.
216 	 */
217 	int yy_is_interactive;
218 
219 	/* Whether we're considered to be at the beginning of a line.
220 	 * If so, '^' rules will be active on the next match, otherwise
221 	 * not.
222 	 */
223 	int yy_at_bol;
224 
225     int yy_bs_lineno; /**< The line count. */
226     int yy_bs_column; /**< The column count. */
227 
228 	/* Whether to try to fill the input buffer when we reach the
229 	 * end of it.
230 	 */
231 	int yy_fill_buffer;
232 
233 	int yy_buffer_status;
234 
235 #define YY_BUFFER_NEW 0
236 #define YY_BUFFER_NORMAL 1
237 	/* When an EOF's been seen but there's still some text to process
238 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
239 	 * shouldn't try reading from the input source any more.  We might
240 	 * still have a bunch of tokens to match, though, because of
241 	 * possible backing-up.
242 	 *
243 	 * When we actually see the EOF, we change the status to "new"
244 	 * (via yyrestart()), so that the user can continue scanning by
245 	 * just pointing yyin at a new input file.
246 	 */
247 #define YY_BUFFER_EOF_PENDING 2
248 
249 	};
250 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
251 
252 /* Stack of input buffers. */
253 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
254 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
255 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
256 
257 /* We provide macros for accessing buffer states in case in the
258  * future we want to put the buffer states in a more general
259  * "scanner state".
260  *
261  * Returns the top of the stack, or NULL.
262  */
263 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
264                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
265                           : NULL)
266 
267 /* Same as previous macro, but useful when we know that the buffer stack is not
268  * NULL or when we need an lvalue. For internal use only.
269  */
270 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
271 
272 /* yy_hold_char holds the character lost when yytext is formed. */
273 static char yy_hold_char;
274 static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
275 yy_size_t yyleng;
276 
277 /* Points to current character in buffer. */
278 static char *yy_c_buf_p = (char *) 0;
279 static int yy_init = 0;		/* whether we need to initialize */
280 static int yy_start = 0;	/* start state number */
281 
282 /* Flag which is used to allow yywrap()'s to do buffer switches
283  * instead of setting up a fresh yyin.  A bit of a hack ...
284  */
285 static int yy_did_buffer_switch_on_eof;
286 
287 void yyrestart (FILE *input_file  );
288 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
289 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size  );
290 void yy_delete_buffer (YY_BUFFER_STATE b  );
291 void yy_flush_buffer (YY_BUFFER_STATE b  );
292 void yypush_buffer_state (YY_BUFFER_STATE new_buffer  );
293 void yypop_buffer_state (void );
294 
295 static void yyensure_buffer_stack (void );
296 static void yy_load_buffer_state (void );
297 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
298 
299 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
300 
301 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
302 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
303 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
304 
305 void *yyalloc (yy_size_t  );
306 void *yyrealloc (void *,yy_size_t  );
307 void yyfree (void *  );
308 
309 #define yy_new_buffer yy_create_buffer
310 
311 #define yy_set_interactive(is_interactive) \
312 	{ \
313 	if ( ! YY_CURRENT_BUFFER ){ \
314         yyensure_buffer_stack (); \
315 		YY_CURRENT_BUFFER_LVALUE =    \
316             yy_create_buffer(yyin,YY_BUF_SIZE ); \
317 	} \
318 	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
319 	}
320 
321 #define yy_set_bol(at_bol) \
322 	{ \
323 	if ( ! YY_CURRENT_BUFFER ){\
324         yyensure_buffer_stack (); \
325 		YY_CURRENT_BUFFER_LVALUE =    \
326             yy_create_buffer(yyin,YY_BUF_SIZE ); \
327 	} \
328 	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
329 	}
330 
331 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
332 
333 /* Begin user sect3 */
334 
335 typedef unsigned char YY_CHAR;
336 
337 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
338 
339 typedef int yy_state_type;
340 
341 extern int yylineno;
342 
343 int yylineno = 1;
344 
345 extern char *yytext;
346 #define yytext_ptr yytext
347 
348 static yy_state_type yy_get_previous_state (void );
349 static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
350 static int yy_get_next_buffer (void );
351 static void yy_fatal_error (yyconst char msg[]  );
352 
353 /* Done after the current pattern has been matched and before the
354  * corresponding action - sets up yytext.
355  */
356 #define YY_DO_BEFORE_ACTION \
357 	(yytext_ptr) = yy_bp; \
358 	yyleng = (yy_size_t) (yy_cp - yy_bp); \
359 	(yy_hold_char) = *yy_cp; \
360 	*yy_cp = '\0'; \
361 	(yy_c_buf_p) = yy_cp;
362 
363 #define YY_NUM_RULES 239
364 #define YY_END_OF_BUFFER 240
365 /* This struct is not used in this scanner,
366    but its presence is necessary. */
367 struct yy_trans_info
368 	{
369 	flex_int32_t yy_verify;
370 	flex_int32_t yy_nxt;
371 	};
372 static yyconst flex_int16_t yy_accept[571] =
373     {   0,
374         0,    0,    0,    0,    0,    0,  240,  238,  236,  236,
375       221,  234,  220,  219,  201,  202,  217,  215,  212,  211,
376       204,  233,  233,  203,  222,  200,  196,  238,  225,  234,
377       147,  234,  234,  234,  234,  234,  234,  234,  234,  234,
378       234,  234,  234,  234,   54,  234,  234,  234,   12,   10,
379       190,  189,  188,  186,  184,  234,  234,  234,  234,  234,
380        70,   19,   18,    8,    7,  234,  218,  216,  214,  213,
381         0,  210,  205,    0,    0,    0,  233,  235,    0,  199,
382       197,  223,  195,  194,  179,  176,  234,  234,  234,  149,
383       152,  234,  234,  148,    0,  146,  234,  139,  234,  234,
384 
385       135,  234,  125,  234,  123,  234,  234,  234,  234,  234,
386       234,  234,  103,  102,  101,  234,  100,   99,  234,  234,
387        97,  234,   95,   94,   93,   91,  234,   85,  234,  234,
388        77,   86,  234,   71,   69,  234,  234,  234,  234,   65,
389       234,  234,  234,   59,  234,   56,  234,  234,   53,  234,
390       234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
391       234,   25,  234,  234,  234,  234,  234,   15,   14,  234,
392       234,  159,  234,  234,  187,  185,  224,  234,  234,   95,
393       234,  234,  234,  206,  208,  207,  209,    0,    0,  233,
394       233,  198,  192,  193,  234,  234,  234,  172,  153,  154,
395 
396       234,  234,  163,  164,  234,  155,  157,  233,  234,  234,
397       234,  234,  234,  234,  124,  234,  234,  119,  234,  234,
398       234,  234,  234,  234,  234,  234,  234,  180,   98,  234,
399       234,  234,  234,  234,  234,   80,   83,   78,   81,  234,
400       234,  234,   79,   82,  234,   67,   66,  234,   63,   62,
401       234,  234,  234,  234,  234,  234,  234,  234,  234,  234,
402        44,   39,   38,   37,   36,   35,   34,  234,   32,   31,
403       234,  234,  234,  234,  234,  234,  234,   21,  234,  234,
404        16,   13,  234,  234,    9,  234,  234,  234,  234,  234,
405       234,  237,  191,  171,  169,  178,  177,  170,  168,  175,
406 
407       174,  234,  234,  234,  234,  234,  156,  158,  145,  234,
408       234,  234,  234,  138,  137,  234,  127,  234,  234,  118,
409       234,  234,  234,  234,  111,  110,  234,  234,  234,  234,
410       234,  234,  234,  105,  104,  234,  234,  234,   96,  234,
411        92,   89,   84,   74,  234,  234,   68,   64,  234,   61,
412        60,   58,   57,  234,   55,   45,  234,   50,   47,   49,
413        46,   48,  234,  234,   43,   42,  234,  234,  234,  234,
414       234,  234,   27,   24,   23,  234,  234,  234,  234,  234,
415       234,  229,  234,  228,  234,  234,  173,  234,  234,  234,
416       161,  234,  234,  234,  234,  234,  234,  234,  234,  234,
417 
418       234,  122,  234,  117,  116,  234,  234,  234,  234,  234,
419       234,  234,  234,  108,  234,  234,  234,  234,  234,  234,
420       234,  234,  234,  234,    2,  183,   52,   41,   40,  234,
421        33,  234,  234,  234,   30,  234,   22,  234,  234,  234,
422       234,  232,  234,  234,  234,  234,  234,  234,  165,  162,
423       144,  143,  142,  141,  140,  234,  234,  234,  234,  126,
424       121,  234,  234,  234,  234,  234,   51,  234,  234,  107,
425       234,  234,  234,  234,  234,   88,   87,   90,  234,  234,
426        73,   72,  234,   29,  234,  234,  234,   20,  234,  234,
427       151,  234,  230,  234,  227,  234,  166,  167,  234,  234,
428 
429       234,  234,  234,  234,  120,  234,  114,  113,  234,  234,
430       234,    5,  106,  234,  181,  234,  234,  234,  234,  160,
431        28,  234,  234,   17,   11,  234,  234,  150,  234,  234,
432       134,  133,  132,  129,  234,  115,  234,    6,  109,  234,
433       234,    3,  234,   76,    1,   26,  231,  226,  136,  130,
434       131,  234,  234,  234,  234,  234,  128,  234,  234,    4,
435        75,  234,  234,  112,  234,  234,  234,  234,  182,    0
436     } ;
437 
438 static yyconst flex_int32_t yy_ec[256] =
439     {   0,
440         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
441         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
442         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
443         1,    2,    4,    1,    5,    6,    7,    8,    1,    9,
444        10,   11,   12,   13,   14,   15,   16,   17,   18,   19,
445        20,   21,   22,   23,   24,   25,   26,   27,   28,   29,
446        30,   31,    1,   32,   33,   34,   35,   36,   37,   38,
447        39,   40,   41,   42,   43,   44,   45,   46,   47,   48,
448        49,   50,   51,   52,   53,   54,   55,   56,   57,   58,
449        59,    1,   60,   61,   62,    1,   33,   34,   35,   36,
450 
451        37,   38,   39,   40,   41,   42,   43,   44,   45,   46,
452        47,   48,   49,   50,   51,   52,   53,   54,   55,   56,
453        57,   58,    1,   63,    1,   64,    1,    6,    6,    6,
454         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
455         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
456         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
457         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
458         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
459         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
460         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
461 
462         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
463         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
464         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
465         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
466         6,    6,    6,    6,    6,    6,    6,    6,    6,    6,
467         6,    6,    6,    6,    6
468     } ;
469 
470 static yyconst flex_int32_t yy_meta[65] =
471     {   0,
472         1,    1,    2,    1,    1,    3,    1,    1,    1,    1,
473         1,    1,    1,    1,    4,    1,    5,    5,    5,    5,
474         5,    5,    5,    5,    5,    5,    1,    1,    1,    1,
475         1,    1,    6,    7,    6,    6,    6,    7,    3,    3,
476         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
477         3,    3,    3,    3,    3,    4,    3,    3,    1,    1,
478         1,    3,    1,    1
479     } ;
480 
481 static yyconst flex_int16_t yy_base[577] =
482     {   0,
483         0,    0,   27,   28,   32,   40,  666,  667,  667,  667,
484       667,    0,  667,  635,  667,  667,  634,   67,  667,   56,
485       652,   67,   72,  667,  667,   44,   63,  631,  667,  114,
486       168,   67,   99,   33,   89,   70,  111,  157,  608,  209,
487       161,   48,   98,  245,  279,  313,  101,  609,   84,  639,
488       667,  667,  628,   90,  667,  152,   77,  616,  606,   75,
489       235,    0,  175,    0,    0,    0,  667,  667,  667,  667,
490       115,  667,  667,  142,  644,    0,   74,  667,    0,  624,
491       667,  667,  667,  131,  638,  637,  120,  152,  610,    0,
492         0,  190,  165,    0,    0,  635,  597,    0,  611,  600,
493 
494       594,  601,    0,  603,    0,  586,  607,  602,  592,   96,
495       586,  169,  623,  591,    0,  584,    0,    0,  583,  597,
496       618,  588,    0,    0,  580,    0,  585,  614,  172,  174,
497         0,  581,  161,  205,  612,  570,  579,  577,  151,    0,
498       576,  585,  569,  605,  584,    0,  566,  571,  601,  574,
499       562,  577,  560,  236,  561,  577,  562,  187,  556,  566,
500       567,  590,  547,  562,  551,  550,  547,    0,    0,  551,
501       546,    0,  562,  577,  667,  667,  667,  542,  550,  549,
502       546,  195,  547,  667,  667,  667,  667,  579,  148,    0,
503         0,  667,  667,  559,  193,  195,  538,    0,  525,    0,
504 
505       547,  544,    0,    0,  551,  532,  531,    0,  230,  234,
506       527,  530,  542,  534,    0,  531,  532,  271,  528,  541,
507       196,  222,  242,  540,  522,  244,  536,  552,    0,  519,
508       265,  531,  548,  518,  270,    0,    0,    0,    0,  517,
509       512,  522,    0,    0,  273,    0,    0,  514,    0,    0,
510       525,  509,  524,  275,  515,  509,  504,  284,  504,  293,
511       318,    0,    0,    0,    0,    0,    0,  508,    0,    0,
512       503,  501,  501,  512,  503,  283,  502,    0,  512,  494,
513         0,    0,  483,  497,    0,  492,  505,  488,  497,  501,
514       497,  526,  667,    0,    0,    0,    0,    0,    0,    0,
515 
516         0,  484,  500,  488,  495,  480,    0,    0,    0,  487,
517       477,  492,  232,    0,  477,  294,  512,  491,  488,  289,
518       479,  490,  471,  477,    0,    0,  487,  486,  462,  464,
519       464,  479,  481,    0,    0,  477,  488,  461,    0,  448,
520         0,  494,    0,  446,  454,  468,    0,    0,  468,    0,
521         0,    0,    0,  469,    0,    0,  466,    0,    0,    0,
522         0,    0,  483,  484,    0,    0,  455,  463,  463,  445,
523       459,  443,  460,    0,    0,  458,  454,  440,  445,  441,
524       448,  425,  435,    0,  448,  438,    0,  436,  338,  430,
525         0,  431,  424,  427,  434,  425,  436,  427,  441,  427,
526 
527       416,    0,  420,    0,    0,  422,  425,  427,  428,  413,
528       413,  429,  412,    0,  420,  426,  423,  414,  423,  407,
529       315,  177,  408,  403,    0,    0,    0,    0,    0,  407,
530         0,  413,  419,  400,    0,  409,    0,  410,  411,  414,
531       389,  404,  404,  391,  399,  393,  417,  418,    0,    0,
532         0,    0,    0,    0,    0,  397,  302,  402,  388,    0,
533       416,  390,  381,  380,  385,  379,    0,  381,  391,    0,
534       375,  375,  404,  391,  386,    0,    0,    0,  385,  375,
535         0,    0,  384,    0,  367,  381,  365,    0,  364,  359,
536         0,  368,    0,  378,    0,  355,    0,    0,  373,   86,
537 
538       362,  361,  365,  374,    0,  350,    0,    0,  368,  367,
539       351,    0,    0,  356,    0,  335,  330,  339,  341,    0,
540         0,  324,  324,    0,    0,  320,  333,    0,  320,  246,
541         0,    0,    0,    0,  334,    0,  312,    0,    0,  305,
542       309,    0,  314,    0,    0,    0,    0,    0,    0,    0,
543         0,  309,  310,  304,  303,  292,    0,  287,  261,    0,
544         0,  255,  241,    0,  254,  214,  186,  185,    0,  667,
545       378,  382,  389,  179,  392,  395
546     } ;
547 
548 static yyconst flex_int16_t yy_def[577] =
549     {   0,
550       570,    1,    1,    1,    1,    1,  570,  570,  570,  570,
551       570,  571,  570,  570,  570,  570,  570,  570,  570,  570,
552       570,  572,  572,  570,  570,  570,  570,  570,  570,  571,
553       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
554       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
555       570,  570,  570,  570,  570,  571,   38,   40,   44,  571,
556       571,   46,  571,  571,  571,  571,  570,  570,  570,  570,
557       570,  570,  570,  570,  573,  574,   23,  570,  575,  570,
558       570,  570,  570,  570,  571,  571,  571,  571,  571,  571,
559       571,  571,  571,  571,  576,  571,  571,  571,  571,  571,
560 
561       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
562       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
563       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
564       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
565       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
566       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
567       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
568       571,  571,  571,  571,  570,  570,  570,  571,  571,  571,
569       571,  571,  571,  570,  570,  570,  570,  573,  573,  574,
570       575,  570,  570,  570,  571,  571,  571,  571,  571,  571,
571 
572       571,  571,  571,  571,  571,  571,  571,  576,  571,  571,
573       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
574       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
575       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
576       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
577       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
578       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
579       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
580       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
581       571,  573,  570,  571,  571,  571,  571,  571,  571,  571,
582 
583       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
584       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
585       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
586       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
587       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
588       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
589       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
590       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
591       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
592       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
593 
594       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
595       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
596       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
597       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
598       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
599       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
600       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
601       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
602       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
603       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
604 
605       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
606       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
607       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
608       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
609       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
610       571,  571,  571,  571,  571,  571,  571,  571,  571,  571,
611       571,  571,  571,  571,  571,  571,  571,  571,  571,    0,
612       570,  570,  570,  570,  570,  570
613     } ;
614 
615 static yyconst flex_int16_t yy_nxt[732] =
616     {   0,
617         8,    9,   10,   11,    8,   12,   13,   14,   15,   16,
618        17,   18,   19,   20,   12,   21,   22,   23,   23,   23,
619        23,   23,   23,   23,   23,   23,   24,   25,   26,   27,
620        28,   29,   30,   31,   32,   33,   34,   35,   36,   37,
621        38,   39,   12,   40,   41,   42,   43,   44,   12,   45,
622        46,   47,   48,   49,   50,   12,   12,   12,   51,   52,
623        53,   12,   54,   55,   56,   56,   82,   57,   57,   72,
624        58,   58,   80,   81,   59,   59,   61,  111,   69,   60,
625        60,   76,   62,   63,   61,   73,  570,   64,  112,   65,
626        62,   63,   83,   95,  139,   64,   70,   65,  140,  102,
627 
628        78,  103,   95,   95,   78,   78,  115,  570,  530,   78,
629       104,  570,  179,  105,  180,   95,  116,  106,   74,  176,
630       183,  117,   79,  107,  171,  170,  184,  570,  185,   71,
631        85,   86,  108,  531,  172,  109,  113,  166,  167,  110,
632       168,  114,  141,  142,  169,  173,  220,   87,   88,  221,
633       143,  118,  177,  186,  119,  187,   95,   89,  189,   90,
634       193,  194,   91,  292,   92,  120,  197,   93,  199,  200,
635       198,   94,   95,  121,  121,  121,  121,  135,  135,  135,
636       135,  206,  207,  190,   96,   96,   96,   96,  236,  237,
637       238,  239,  122,  136,  123,  178,  124,  241,  249,  113,
638 
639       242,  137,  250,  223,  114,  569,  138,  125,   97,  126,
640       479,  166,  167,  480,  168,   98,  224,   99,  169,  271,
641       225,  243,  244,  100,  101,  128,  128,  128,  128,  202,
642       568,  290,  294,  203,  298,  272,  295,  567,  299,  204,
643       257,  205,  129,  130,  325,  131,  326,  296,  297,  300,
644       301,  135,  135,  135,  135,  132,  327,  328,  329,  133,
645       134,  144,  144,  144,  144,  144,  144,  136,  310,  309,
646       395,  566,  263,  309,  330,  137,  264,  145,  311,  146,
647       138,  265,  396,  334,  312,  313,  266,  335,  147,  331,
648       550,  267,  565,  551,  148,  149,  149,  149,  149,  149,
649 
650       149,  149,  149,  320,  339,  321,  564,  563,  339,  343,
651       322,  150,  347,  343,  352,  151,  347,  356,  352,  500,
652       501,  502,  374,  356,  152,  153,  375,  356,  404,  358,
653       154,  155,  405,  359,  562,  363,  364,  561,  360,  560,
654       398,  399,  559,  361,  558,  156,  400,  157,  362,  158,
655       159,  557,  160,  161,  556,  447,  448,  365,  476,  555,
656       162,  366,  449,  163,  164,  477,  554,  553,  552,  165,
657       478,  549,  548,  547,  546,  545,  544,  543,  542,  367,
658        66,   66,   66,   66,   66,   77,   77,  541,   77,  188,
659       540,  188,  188,  188,  188,  188,  191,  191,  191,  208,
660 
661       208,  208,  539,  538,  537,  536,  535,  534,  533,  532,
662       529,  528,  527,  526,  525,  524,  523,  522,  521,  520,
663       519,  518,  517,  516,  515,  514,  513,  512,  511,  510,
664       509,  508,  507,  506,  505,  504,  503,  499,  498,  497,
665       496,  495,  494,  493,  492,  491,  490,  489,  488,  487,
666       486,  485,  484,  483,  482,  481,  475,  474,  473,  472,
667       471,  470,  469,  468,  467,  466,  465,  464,  463,  462,
668       461,  460,  459,  458,  457,  456,  455,  454,  453,  452,
669       451,  450,  446,  445,  444,  443,  420,  442,  441,  440,
670       439,  438,  437,  436,  435,  434,  433,  432,  431,  430,
671 
672       429,  428,  427,  426,  425,  424,  423,  422,  421,  420,
673       419,  418,  417,  416,  415,  414,  413,  412,  411,  410,
674       409,  408,  407,  406,  403,  402,  401,  397,  394,  393,
675       392,  391,  390,  389,  388,  387,  189,  386,  385,  384,
676       383,  382,  381,  380,  379,  378,  377,  376,  373,  372,
677       371,  370,  369,  368,  357,  355,  354,  353,  351,  350,
678       349,  348,  346,  345,  344,  342,  341,  340,  338,  337,
679       336,  333,  332,  324,  323,  319,  318,  317,  316,  315,
680       314,  308,  307,  306,  305,  304,  303,  302,  293,  189,
681       291,  289,  288,  287,  286,  285,  284,  283,  282,  281,
682 
683       280,  279,  278,  277,  276,  275,  274,  273,  270,  269,
684       268,  262,  261,  260,  259,  258,  257,  256,  255,  254,
685       253,  252,  251,  248,  247,  246,  245,  240,  235,  234,
686       233,  232,  231,  230,  229,  228,  227,  226,  222,  219,
687       218,  217,  216,  215,  214,  213,  212,  211,  210,  209,
688       201,  196,  195,  192,  189,  182,  181,  175,  174,  170,
689       127,   84,   75,   68,   67,  570,    7,  570,  570,  570,
690       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
691       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
692       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
693 
694       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
695       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
696       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
697       570
698     } ;
699 
700 static yyconst flex_int16_t yy_chk[732] =
701     {   0,
702         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
703         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
704         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
705         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
706         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
707         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
708         1,    1,    1,    1,    3,    4,   27,    3,    4,   20,
709         3,    4,   26,   26,    3,    4,    5,   34,   18,    3,
710         4,   22,    5,    5,    6,   20,   23,    5,   34,    5,
711         6,    6,   27,   35,   42,    6,   18,    6,   42,   32,
712 
713        22,   32,   43,   33,   22,   23,   36,   77,  500,   23,
714        32,   77,   57,   32,   57,   37,   36,   32,   20,   54,
715        60,   36,   22,   32,   49,   60,   71,   23,   71,   18,
716        30,   30,   33,  500,   49,   33,   35,   47,   47,   33,
717        47,   35,   43,   43,   47,   49,  110,   30,   30,  110,
718        43,   37,   54,   74,   37,   74,   56,   30,  189,   30,
719        84,   84,   30,  189,   30,   37,   87,   30,   88,   88,
720        87,   30,   31,   38,   38,   38,   38,   41,   41,   41,
721        41,   93,   93,  574,   31,   31,   31,   31,  129,  129,
722       130,  130,   38,   41,   38,   56,   38,  133,  139,   56,
723 
724       133,   41,  139,  112,   56,  568,   41,   38,   31,   38,
725       422,   63,   63,  422,   63,   31,  112,   31,   63,  158,
726       112,  134,  134,   31,   31,   40,   40,   40,   40,   92,
727       567,  182,  195,   92,  196,  158,  195,  566,  196,   92,
728       182,   92,   40,   40,  221,   40,  221,  195,  195,  196,
729       196,   61,   61,   61,   61,   40,  222,  222,  222,   40,
730        40,   44,   44,   44,   44,   44,   44,   61,  210,  209,
731       313,  565,  154,  209,  223,   61,  154,   44,  210,   44,
732        61,  154,  313,  226,  210,  210,  154,  226,   44,  223,
733       530,  154,  563,  530,   44,   45,   45,   45,   45,   45,
734 
735        45,   45,   45,  218,  231,  218,  562,  559,  231,  235,
736       218,   45,  245,  235,  254,   45,  245,  258,  254,  457,
737       457,  457,  276,  258,   45,   45,  276,  258,  320,  260,
738        45,   46,  320,  260,  558,  261,  261,  556,  260,  555,
739       316,  316,  554,  260,  553,   46,  316,   46,  260,   46,
740        46,  552,   46,   46,  543,  389,  389,  261,  421,  541,
741        46,  261,  389,   46,   46,  421,  540,  537,  535,   46,
742       421,  529,  527,  526,  523,  522,  519,  518,  517,  261,
743       571,  571,  571,  571,  571,  572,  572,  516,  572,  573,
744       514,  573,  573,  573,  573,  573,  575,  575,  575,  576,
745 
746       576,  576,  511,  510,  509,  506,  504,  503,  502,  501,
747       499,  496,  494,  492,  490,  489,  487,  486,  485,  483,
748       480,  479,  475,  474,  473,  472,  471,  469,  468,  466,
749       465,  464,  463,  462,  461,  459,  458,  456,  448,  447,
750       446,  445,  444,  443,  442,  441,  440,  439,  438,  436,
751       434,  433,  432,  430,  424,  423,  420,  419,  418,  417,
752       416,  415,  413,  412,  411,  410,  409,  408,  407,  406,
753       403,  401,  400,  399,  398,  397,  396,  395,  394,  393,
754       392,  390,  388,  386,  385,  383,  382,  381,  380,  379,
755       378,  377,  376,  373,  372,  371,  370,  369,  368,  367,
756 
757       364,  363,  357,  354,  349,  346,  345,  344,  342,  340,
758       338,  337,  336,  333,  332,  331,  330,  329,  328,  327,
759       324,  323,  322,  321,  319,  318,  317,  315,  312,  311,
760       310,  306,  305,  304,  303,  302,  292,  291,  290,  289,
761       288,  287,  286,  284,  283,  280,  279,  277,  275,  274,
762       273,  272,  271,  268,  259,  257,  256,  255,  253,  252,
763       251,  248,  242,  241,  240,  234,  233,  232,  230,  228,
764       227,  225,  224,  220,  219,  217,  216,  214,  213,  212,
765       211,  207,  206,  205,  202,  201,  199,  197,  194,  188,
766       183,  181,  180,  179,  178,  174,  173,  171,  170,  167,
767 
768       166,  165,  164,  163,  162,  161,  160,  159,  157,  156,
769       155,  153,  152,  151,  150,  149,  148,  147,  145,  144,
770       143,  142,  141,  138,  137,  136,  135,  132,  128,  127,
771       125,  122,  121,  120,  119,  116,  114,  113,  111,  109,
772       108,  107,  106,  104,  102,  101,  100,   99,   97,   96,
773        89,   86,   85,   80,   75,   59,   58,   53,   50,   48,
774        39,   28,   21,   17,   14,    7,  570,  570,  570,  570,
775       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
776       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
777       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
778 
779       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
780       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
781       570,  570,  570,  570,  570,  570,  570,  570,  570,  570,
782       570
783     } ;
784 
785 static yy_state_type yy_last_accepting_state;
786 static char *yy_last_accepting_cpos;
787 
788 extern int yy_flex_debug;
789 int yy_flex_debug = 0;
790 
791 /* The intent behind this definition is that it'll catch
792  * any uses of REJECT which flex missed.
793  */
794 #define REJECT reject_used_but_not_detected
795 #define yymore() yymore_used_but_not_detected
796 #define YY_MORE_ADJ 0
797 #define YY_RESTORE_YY_MORE_OFFSET
798 char *yytext;
799 #line 1 "./config/bfin-lex.l"
800 /* bfin-lex.l  ADI Blackfin lexer
801    Copyright (C) 2005-2016 Free Software Foundation, Inc.
802 
803    This file is part of GAS, the GNU Assembler.
804 
805    GAS is free software; you can redistribute it and/or modify
806    it under the terms of the GNU General Public License as published by
807    the Free Software Foundation; either version 3, or (at your option)
808    any later version.
809 
810    GAS is distributed in the hope that it will be useful,
811    but WITHOUT ANY WARRANTY; without even the implied warranty of
812    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
813    GNU General Public License for more details.
814 
815    You should have received a copy of the GNU General Public License
816    along with GAS; see the file COPYING.  If not, write to the Free
817    Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
818    02110-1301, USA.  */
819 #line 21 "./config/bfin-lex.l"
820 
821 #include "as.h"
822 #include "bfin-defs.h"
823 #include "bfin-parse.h"
824 
825 static long parse_int (char **end);
826 static int parse_halfreg (Register *r, int cl, char *hr);
827 static int parse_reg (Register *r, int type, char *rt);
828 int yylex (void);
829 
830 #define _REG yylval.reg
831 
832 
833 /* Define Start States ... Actually we will use exclusion.
834    If no start state is specified it should match any state
835    and <INITIAL> would match some keyword rules only with
836    initial.  */
837 
838 
839 #line 840 "bfin-lex.c"
840 
841 #define INITIAL 0
842 #define KEYWORD 1
843 #define FLAGS 2
844 
845 #ifndef YY_NO_UNISTD_H
846 /* Special case for "unistd.h", since it is non-ANSI. We include it way
847  * down here because we want the user's section 1 to have been scanned first.
848  * The user has a chance to override it with an option.
849  */
850 #include <unistd.h>
851 #endif
852 
853 #ifndef YY_EXTRA_TYPE
854 #define YY_EXTRA_TYPE void *
855 #endif
856 
857 static int yy_init_globals (void );
858 
859 /* Accessor methods to globals.
860    These are made visible to non-reentrant scanners for convenience. */
861 
862 int yylex_destroy (void );
863 
864 int yyget_debug (void );
865 
866 void yyset_debug (int debug_flag  );
867 
868 YY_EXTRA_TYPE yyget_extra (void );
869 
870 void yyset_extra (YY_EXTRA_TYPE user_defined  );
871 
872 FILE *yyget_in (void );
873 
874 void yyset_in  (FILE * in_str  );
875 
876 FILE *yyget_out (void );
877 
878 void yyset_out  (FILE * out_str  );
879 
880 yy_size_t yyget_leng (void );
881 
882 char *yyget_text (void );
883 
884 int yyget_lineno (void );
885 
886 void yyset_lineno (int line_number  );
887 
888 /* Macros after this point can all be overridden by user definitions in
889  * section 1.
890  */
891 
892 #ifndef YY_SKIP_YYWRAP
893 #ifdef __cplusplus
894 extern "C" int yywrap (void );
895 #else
896 extern int yywrap (void );
897 #endif
898 #endif
899 
900     static void yyunput (int c,char *buf_ptr  );
901 
902 #ifndef yytext_ptr
903 static void yy_flex_strncpy (char *,yyconst char *,int );
904 #endif
905 
906 #ifdef YY_NEED_STRLEN
907 static int yy_flex_strlen (yyconst char * );
908 #endif
909 
910 #ifndef YY_NO_INPUT
911 
912 #ifdef __cplusplus
913 static int yyinput (void );
914 #else
915 static int input (void );
916 #endif
917 
918 #endif
919 
920 /* Amount of stuff to slurp up with each read. */
921 #ifndef YY_READ_BUF_SIZE
922 #define YY_READ_BUF_SIZE 8192
923 #endif
924 
925 /* Copy whatever the last rule matched to the standard output. */
926 #ifndef ECHO
927 /* This used to be an fputs(), but since the string might contain NUL's,
928  * we now use fwrite().
929  */
930 #define ECHO fwrite( yytext, yyleng, 1, yyout )
931 #endif
932 
933 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
934  * is returned in "result".
935  */
936 #ifndef YY_INPUT
937 #define YY_INPUT(buf,result,max_size) \
938 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
939 		{ \
940 		int c = '*'; \
941 		yy_size_t n; \
942 		for ( n = 0; n < max_size && \
943 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
944 			buf[n] = (char) c; \
945 		if ( c == '\n' ) \
946 			buf[n++] = (char) c; \
947 		if ( c == EOF && ferror( yyin ) ) \
948 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
949 		result = n; \
950 		} \
951 	else \
952 		{ \
953 		errno=0; \
954 		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
955 			{ \
956 			if( errno != EINTR) \
957 				{ \
958 				YY_FATAL_ERROR( "input in flex scanner failed" ); \
959 				break; \
960 				} \
961 			errno=0; \
962 			clearerr(yyin); \
963 			} \
964 		}\
965 \
966 
967 #endif
968 
969 /* No semi-colon after return; correct usage is to write "yyterminate();" -
970  * we don't want an extra ';' after the "return" because that will cause
971  * some compilers to complain about unreachable statements.
972  */
973 #ifndef yyterminate
974 #define yyterminate() return YY_NULL
975 #endif
976 
977 /* Number of entries by which start-condition stack grows. */
978 #ifndef YY_START_STACK_INCR
979 #define YY_START_STACK_INCR 25
980 #endif
981 
982 /* Report a fatal error. */
983 #ifndef YY_FATAL_ERROR
984 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
985 #endif
986 
987 /* end tables serialization structures and prototypes */
988 
989 /* Default declaration of generated scanner - a define so the user can
990  * easily add parameters.
991  */
992 #ifndef YY_DECL
993 #define YY_DECL_IS_OURS 1
994 
995 extern int yylex (void);
996 
997 #define YY_DECL int yylex (void)
998 #endif /* !YY_DECL */
999 
1000 /* Code executed at the beginning of each rule, after yytext and yyleng
1001  * have been set up.
1002  */
1003 #ifndef YY_USER_ACTION
1004 #define YY_USER_ACTION
1005 #endif
1006 
1007 /* Code executed at the end of each rule. */
1008 #ifndef YY_BREAK
1009 #define YY_BREAK break;
1010 #endif
1011 
1012 #define YY_RULE_SETUP \
1013 	YY_USER_ACTION
1014 
1015 /** The main scanner function which does all the work.
1016  */
1017 YY_DECL
1018 {
1019 	register yy_state_type yy_current_state;
1020 	register char *yy_cp, *yy_bp;
1021 	register int yy_act;
1022 
1023 #line 43 "./config/bfin-lex.l"
1024 
1025 #line 1026 "bfin-lex.c"
1026 
1027 	if ( !(yy_init) )
1028 		{
1029 		(yy_init) = 1;
1030 
1031 #ifdef YY_USER_INIT
1032 		YY_USER_INIT;
1033 #endif
1034 
1035 		if ( ! (yy_start) )
1036 			(yy_start) = 1;	/* first start state */
1037 
1038 		if ( ! yyin )
1039 			yyin = stdin;
1040 
1041 		if ( ! yyout )
1042 			yyout = stdout;
1043 
1044 		if ( ! YY_CURRENT_BUFFER ) {
1045 			yyensure_buffer_stack ();
1046 			YY_CURRENT_BUFFER_LVALUE =
1047 				yy_create_buffer(yyin,YY_BUF_SIZE );
1048 		}
1049 
1050 		yy_load_buffer_state( );
1051 		}
1052 
1053 	while ( 1 )		/* loops until end-of-file is reached */
1054 		{
1055 		yy_cp = (yy_c_buf_p);
1056 
1057 		/* Support of yytext. */
1058 		*yy_cp = (yy_hold_char);
1059 
1060 		/* yy_bp points to the position in yy_ch_buf of the start of
1061 		 * the current run.
1062 		 */
1063 		yy_bp = yy_cp;
1064 
1065 		yy_current_state = (yy_start);
1066 yy_match:
1067 		do
1068 			{
1069 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1070 			if ( yy_accept[yy_current_state] )
1071 				{
1072 				(yy_last_accepting_state) = yy_current_state;
1073 				(yy_last_accepting_cpos) = yy_cp;
1074 				}
1075 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1076 				{
1077 				yy_current_state = (int) yy_def[yy_current_state];
1078 				if ( yy_current_state >= 571 )
1079 					yy_c = yy_meta[(unsigned int) yy_c];
1080 				}
1081 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1082 			++yy_cp;
1083 			}
1084 		while ( yy_base[yy_current_state] != 667 );
1085 
1086 yy_find_action:
1087 		yy_act = yy_accept[yy_current_state];
1088 		if ( yy_act == 0 )
1089 			{ /* have to back up */
1090 			yy_cp = (yy_last_accepting_cpos);
1091 			yy_current_state = (yy_last_accepting_state);
1092 			yy_act = yy_accept[yy_current_state];
1093 			}
1094 
1095 		YY_DO_BEFORE_ACTION;
1096 
1097 do_action:	/* This label is used only to access EOF actions. */
1098 
1099 		switch ( yy_act )
1100 	{ /* beginning of action switch */
1101 			case 0: /* must back up */
1102 			/* undo the effects of YY_DO_BEFORE_ACTION */
1103 			*yy_cp = (yy_hold_char);
1104 			yy_cp = (yy_last_accepting_cpos);
1105 			yy_current_state = (yy_last_accepting_state);
1106 			goto yy_find_action;
1107 
1108 case 1:
1109 YY_RULE_SETUP
1110 #line 44 "./config/bfin-lex.l"
1111 _REG.regno = REG_sftreset;  return REG;
1112 	YY_BREAK
1113 case 2:
1114 YY_RULE_SETUP
1115 #line 45 "./config/bfin-lex.l"
1116 _REG.regno = REG_omode;     return REG;
1117 	YY_BREAK
1118 case 3:
1119 YY_RULE_SETUP
1120 #line 46 "./config/bfin-lex.l"
1121 _REG.regno = REG_idle_req;  return REG;
1122 	YY_BREAK
1123 case 4:
1124 YY_RULE_SETUP
1125 #line 47 "./config/bfin-lex.l"
1126 _REG.regno = REG_hwerrcause; return REG;
1127 	YY_BREAK
1128 case 5:
1129 YY_RULE_SETUP
1130 #line 48 "./config/bfin-lex.l"
1131 _REG.regno = REG_excause;   return REG;
1132 	YY_BREAK
1133 case 6:
1134 YY_RULE_SETUP
1135 #line 49 "./config/bfin-lex.l"
1136 _REG.regno = REG_emucause;  return REG;
1137 	YY_BREAK
1138 case 7:
1139 YY_RULE_SETUP
1140 #line 50 "./config/bfin-lex.l"
1141 return Z;
1142 	YY_BREAK
1143 case 8:
1144 YY_RULE_SETUP
1145 #line 51 "./config/bfin-lex.l"
1146 return X;
1147 	YY_BREAK
1148 case 9:
1149 YY_RULE_SETUP
1150 #line 52 "./config/bfin-lex.l"
1151 yylval.value = M_W32; return MMOD;
1152 	YY_BREAK
1153 case 10:
1154 YY_RULE_SETUP
1155 #line 53 "./config/bfin-lex.l"
1156 return W;
1157 	YY_BREAK
1158 case 11:
1159 YY_RULE_SETUP
1160 #line 54 "./config/bfin-lex.l"
1161 return VIT_MAX;
1162 	YY_BREAK
1163 case 12:
1164 YY_RULE_SETUP
1165 #line 55 "./config/bfin-lex.l"
1166 return V; /* Special: V is a statflag and a modifier.  */
1167 	YY_BREAK
1168 case 13:
1169 YY_RULE_SETUP
1170 #line 56 "./config/bfin-lex.l"
1171 _REG.regno = REG_USP; return REG;
1172 	YY_BREAK
1173 case 14:
1174 YY_RULE_SETUP
1175 #line 57 "./config/bfin-lex.l"
1176 return TL;
1177 	YY_BREAK
1178 case 15:
1179 YY_RULE_SETUP
1180 #line 58 "./config/bfin-lex.l"
1181 return TH;
1182 	YY_BREAK
1183 case 16:
1184 YY_RULE_SETUP
1185 #line 59 "./config/bfin-lex.l"
1186 yylval.value = M_TFU; return MMOD;
1187 	YY_BREAK
1188 case 17:
1189 YY_RULE_SETUP
1190 #line 60 "./config/bfin-lex.l"
1191 return TESTSET;
1192 	YY_BREAK
1193 case 18:
1194 YY_RULE_SETUP
1195 #line 61 "./config/bfin-lex.l"
1196 yylval.value = M_T; return MMOD;
1197 	YY_BREAK
1198 case 19:
1199 YY_RULE_SETUP
1200 #line 62 "./config/bfin-lex.l"
1201 return S;
1202 	YY_BREAK
1203 case 20:
1204 YY_RULE_SETUP
1205 #line 63 "./config/bfin-lex.l"
1206 _REG.regno = REG_SYSCFG; return REG;
1207 	YY_BREAK
1208 case 21:
1209 YY_RULE_SETUP
1210 #line 64 "./config/bfin-lex.l"
1211 return STI;
1212 	YY_BREAK
1213 case 22:
1214 YY_RULE_SETUP
1215 #line 65 "./config/bfin-lex.l"
1216 return SSYNC;
1217 	YY_BREAK
1218 case 23:
1219 YY_RULE_SETUP
1220 #line 66 "./config/bfin-lex.l"
1221 _REG.regno = REG_SP; _REG.flags = F_REG_LOW; return HALF_REG;
1222 	YY_BREAK
1223 case 24:
1224 YY_RULE_SETUP
1225 #line 67 "./config/bfin-lex.l"
1226 _REG.regno = REG_SP; _REG.flags = F_REG_HIGH; return HALF_REG;
1227 	YY_BREAK
1228 case 25:
1229 YY_RULE_SETUP
1230 #line 68 "./config/bfin-lex.l"
1231 _REG.regno = REG_SP; return REG;
1232 	YY_BREAK
1233 case 26:
1234 YY_RULE_SETUP
1235 #line 69 "./config/bfin-lex.l"
1236 return SIGNBITS;
1237 	YY_BREAK
1238 case 27:
1239 YY_RULE_SETUP
1240 #line 70 "./config/bfin-lex.l"
1241 return SIGN;
1242 	YY_BREAK
1243 case 28:
1244 YY_RULE_SETUP
1245 #line 71 "./config/bfin-lex.l"
1246 _REG.regno = REG_SEQSTAT; return REG;
1247 	YY_BREAK
1248 case 29:
1249 YY_RULE_SETUP
1250 #line 72 "./config/bfin-lex.l"
1251 return SEARCH;
1252 	YY_BREAK
1253 case 30:
1254 YY_RULE_SETUP
1255 #line 73 "./config/bfin-lex.l"
1256 return SHIFT;
1257 	YY_BREAK
1258 case 31:
1259 YY_RULE_SETUP
1260 #line 74 "./config/bfin-lex.l"
1261 return SCO;
1262 	YY_BREAK
1263 case 32:
1264 YY_RULE_SETUP
1265 #line 76 "./config/bfin-lex.l"
1266 return SAA;
1267 	YY_BREAK
1268 case 33:
1269 YY_RULE_SETUP
1270 #line 77 "./config/bfin-lex.l"
1271 yylval.value = M_S2RND; return MMOD;
1272 	YY_BREAK
1273 case 34:
1274 YY_RULE_SETUP
1275 #line 78 "./config/bfin-lex.l"
1276 return RTX;
1277 	YY_BREAK
1278 case 35:
1279 YY_RULE_SETUP
1280 #line 79 "./config/bfin-lex.l"
1281 return RTS;
1282 	YY_BREAK
1283 case 36:
1284 YY_RULE_SETUP
1285 #line 80 "./config/bfin-lex.l"
1286 return RTN;
1287 	YY_BREAK
1288 case 37:
1289 YY_RULE_SETUP
1290 #line 81 "./config/bfin-lex.l"
1291 return RTI;
1292 	YY_BREAK
1293 case 38:
1294 YY_RULE_SETUP
1295 #line 82 "./config/bfin-lex.l"
1296 return RTE;
1297 	YY_BREAK
1298 case 39:
1299 YY_RULE_SETUP
1300 #line 83 "./config/bfin-lex.l"
1301 return ROT;
1302 	YY_BREAK
1303 case 40:
1304 YY_RULE_SETUP
1305 #line 84 "./config/bfin-lex.l"
1306 return RND20;
1307 	YY_BREAK
1308 case 41:
1309 YY_RULE_SETUP
1310 #line 85 "./config/bfin-lex.l"
1311 return RND12;
1312 	YY_BREAK
1313 case 42:
1314 YY_RULE_SETUP
1315 #line 86 "./config/bfin-lex.l"
1316 return RNDL;
1317 	YY_BREAK
1318 case 43:
1319 YY_RULE_SETUP
1320 #line 87 "./config/bfin-lex.l"
1321 return RNDH;
1322 	YY_BREAK
1323 case 44:
1324 YY_RULE_SETUP
1325 #line 88 "./config/bfin-lex.l"
1326 return RND;
1327 	YY_BREAK
1328 case 45:
1329 YY_RULE_SETUP
1330 #line 90 "./config/bfin-lex.l"
1331 return parse_halfreg(&yylval.reg, T_REG_R, yytext);
1332 	YY_BREAK
1333 case 46:
1334 YY_RULE_SETUP
1335 #line 92 "./config/bfin-lex.l"
1336 _REG.regno = REG_RETS; return REG;
1337 	YY_BREAK
1338 case 47:
1339 YY_RULE_SETUP
1340 #line 93 "./config/bfin-lex.l"
1341 _REG.regno = REG_RETI; return REG;
1342 	YY_BREAK
1343 case 48:
1344 YY_RULE_SETUP
1345 #line 94 "./config/bfin-lex.l"
1346 _REG.regno = REG_RETX; return REG;
1347 	YY_BREAK
1348 case 49:
1349 YY_RULE_SETUP
1350 #line 95 "./config/bfin-lex.l"
1351 _REG.regno = REG_RETN; return REG;
1352 	YY_BREAK
1353 case 50:
1354 YY_RULE_SETUP
1355 #line 96 "./config/bfin-lex.l"
1356 _REG.regno = REG_RETE; return REG;
1357 	YY_BREAK
1358 case 51:
1359 YY_RULE_SETUP
1360 #line 97 "./config/bfin-lex.l"
1361 _REG.regno = REG_EMUDAT; return REG;
1362 	YY_BREAK
1363 case 52:
1364 YY_RULE_SETUP
1365 #line 98 "./config/bfin-lex.l"
1366 return RAISE;
1367 	YY_BREAK
1368 case 53:
1369 YY_RULE_SETUP
1370 #line 100 "./config/bfin-lex.l"
1371 return parse_reg (&yylval.reg, T_REG_R, yytext);
1372 	YY_BREAK
1373 case 54:
1374 YY_RULE_SETUP
1375 #line 102 "./config/bfin-lex.l"
1376 return R;
1377 	YY_BREAK
1378 case 55:
1379 YY_RULE_SETUP
1380 #line 103 "./config/bfin-lex.l"
1381 return PRNT;
1382 	YY_BREAK
1383 case 56:
1384 YY_RULE_SETUP
1385 #line 104 "./config/bfin-lex.l"
1386 return PC;
1387 	YY_BREAK
1388 case 57:
1389 YY_RULE_SETUP
1390 #line 105 "./config/bfin-lex.l"
1391 return PACK;
1392 	YY_BREAK
1393 case 58:
1394 YY_RULE_SETUP
1395 #line 107 "./config/bfin-lex.l"
1396 return parse_halfreg (&yylval.reg, T_REG_P, yytext);
1397 	YY_BREAK
1398 case 59:
1399 YY_RULE_SETUP
1400 #line 108 "./config/bfin-lex.l"
1401 return parse_reg (&yylval.reg, T_REG_P, yytext);
1402 	YY_BREAK
1403 case 60:
1404 YY_RULE_SETUP
1405 #line 110 "./config/bfin-lex.l"
1406 return OUTC;
1407 	YY_BREAK
1408 case 61:
1409 YY_RULE_SETUP
1410 #line 111 "./config/bfin-lex.l"
1411 return ONES;
1412 	YY_BREAK
1413 case 62:
1414 YY_RULE_SETUP
1415 #line 113 "./config/bfin-lex.l"
1416 return NOT;
1417 	YY_BREAK
1418 case 63:
1419 YY_RULE_SETUP
1420 #line 114 "./config/bfin-lex.l"
1421 return NOP;
1422 	YY_BREAK
1423 case 64:
1424 YY_RULE_SETUP
1425 #line 115 "./config/bfin-lex.l"
1426 return MNOP;
1427 	YY_BREAK
1428 case 65:
1429 YY_RULE_SETUP
1430 #line 116 "./config/bfin-lex.l"
1431 return NS;
1432 	YY_BREAK
1433 case 66:
1434 YY_RULE_SETUP
1435 #line 119 "./config/bfin-lex.l"
1436 return MIN;
1437 	YY_BREAK
1438 case 67:
1439 YY_RULE_SETUP
1440 #line 120 "./config/bfin-lex.l"
1441 return MAX;
1442 	YY_BREAK
1443 case 68:
1444 YY_RULE_SETUP
1445 #line 122 "./config/bfin-lex.l"
1446 return parse_halfreg (&yylval.reg, T_REG_M, yytext);
1447 	YY_BREAK
1448 case 69:
1449 YY_RULE_SETUP
1450 #line 123 "./config/bfin-lex.l"
1451 return parse_reg (&yylval.reg, T_REG_M, yytext);
1452 	YY_BREAK
1453 case 70:
1454 YY_RULE_SETUP
1455 #line 125 "./config/bfin-lex.l"
1456 return M;
1457 	YY_BREAK
1458 case 71:
1459 YY_RULE_SETUP
1460 #line 126 "./config/bfin-lex.l"
1461 return LT;
1462 	YY_BREAK
1463 case 72:
1464 YY_RULE_SETUP
1465 #line 127 "./config/bfin-lex.l"
1466 return LSHIFT;
1467 	YY_BREAK
1468 case 73:
1469 YY_RULE_SETUP
1470 #line 128 "./config/bfin-lex.l"
1471 return LSETUP;
1472 	YY_BREAK
1473 case 74:
1474 YY_RULE_SETUP
1475 #line 129 "./config/bfin-lex.l"
1476 return LOOP;
1477 	YY_BREAK
1478 case 75:
1479 YY_RULE_SETUP
1480 #line 130 "./config/bfin-lex.l"
1481 return LOOP_BEGIN;
1482 	YY_BREAK
1483 case 76:
1484 YY_RULE_SETUP
1485 #line 131 "./config/bfin-lex.l"
1486 return LOOP_END;
1487 	YY_BREAK
1488 case 77:
1489 YY_RULE_SETUP
1490 #line 133 "./config/bfin-lex.l"
1491 return LE;
1492 	YY_BREAK
1493 case 78:
1494 YY_RULE_SETUP
1495 #line 134 "./config/bfin-lex.l"
1496 _REG.regno = REG_LC0; return REG;
1497 	YY_BREAK
1498 case 79:
1499 YY_RULE_SETUP
1500 #line 135 "./config/bfin-lex.l"
1501 _REG.regno = REG_LT0; return REG;
1502 	YY_BREAK
1503 case 80:
1504 YY_RULE_SETUP
1505 #line 136 "./config/bfin-lex.l"
1506 _REG.regno = REG_LB0; return REG;
1507 	YY_BREAK
1508 case 81:
1509 YY_RULE_SETUP
1510 #line 137 "./config/bfin-lex.l"
1511 _REG.regno = REG_LC1; return REG;
1512 	YY_BREAK
1513 case 82:
1514 YY_RULE_SETUP
1515 #line 138 "./config/bfin-lex.l"
1516 _REG.regno = REG_LT1; return REG;
1517 	YY_BREAK
1518 case 83:
1519 YY_RULE_SETUP
1520 #line 139 "./config/bfin-lex.l"
1521 _REG.regno = REG_LB1; return REG;
1522 	YY_BREAK
1523 case 84:
1524 YY_RULE_SETUP
1525 #line 141 "./config/bfin-lex.l"
1526 return parse_halfreg (&yylval.reg, T_REG_L, yytext);
1527 	YY_BREAK
1528 case 85:
1529 YY_RULE_SETUP
1530 #line 142 "./config/bfin-lex.l"
1531 return parse_reg (&yylval.reg, T_REG_L, yytext);
1532 	YY_BREAK
1533 case 86:
1534 YY_RULE_SETUP
1535 #line 143 "./config/bfin-lex.l"
1536 return LO;
1537 	YY_BREAK
1538 case 87:
1539 YY_RULE_SETUP
1540 #line 144 "./config/bfin-lex.l"
1541 { BEGIN 0; return JUMP_DOT_S;}
1542 	YY_BREAK
1543 case 88:
1544 YY_RULE_SETUP
1545 #line 145 "./config/bfin-lex.l"
1546 { BEGIN 0; return JUMP_DOT_L;}
1547 	YY_BREAK
1548 case 89:
1549 YY_RULE_SETUP
1550 #line 146 "./config/bfin-lex.l"
1551 { BEGIN 0; return JUMP;}
1552 	YY_BREAK
1553 case 90:
1554 YY_RULE_SETUP
1555 #line 147 "./config/bfin-lex.l"
1556 { BEGIN 0; return JUMP_DOT_L; }
1557 	YY_BREAK
1558 case 91:
1559 YY_RULE_SETUP
1560 #line 148 "./config/bfin-lex.l"
1561 yylval.value = M_IU;   return MMOD;
1562 	YY_BREAK
1563 case 92:
1564 YY_RULE_SETUP
1565 #line 149 "./config/bfin-lex.l"
1566 yylval.value = M_ISS2; return MMOD;
1567 	YY_BREAK
1568 case 93:
1569 YY_RULE_SETUP
1570 #line 150 "./config/bfin-lex.l"
1571 yylval.value = M_IS;   return MMOD;
1572 	YY_BREAK
1573 case 94:
1574 YY_RULE_SETUP
1575 #line 151 "./config/bfin-lex.l"
1576 yylval.value = M_IH;   return MMOD;
1577 	YY_BREAK
1578 case 95:
1579 YY_RULE_SETUP
1580 #line 152 "./config/bfin-lex.l"
1581 return IF;
1582 	YY_BREAK
1583 case 96:
1584 YY_RULE_SETUP
1585 #line 153 "./config/bfin-lex.l"
1586 return parse_halfreg (&yylval.reg, T_REG_I, yytext);
1587 	YY_BREAK
1588 case 97:
1589 YY_RULE_SETUP
1590 #line 154 "./config/bfin-lex.l"
1591 return parse_reg (&yylval.reg, T_REG_I, yytext);
1592 	YY_BREAK
1593 case 98:
1594 YY_RULE_SETUP
1595 #line 155 "./config/bfin-lex.l"
1596 return HLT;
1597 	YY_BREAK
1598 case 99:
1599 YY_RULE_SETUP
1600 #line 156 "./config/bfin-lex.l"
1601 return HI;
1602 	YY_BREAK
1603 case 100:
1604 YY_RULE_SETUP
1605 #line 157 "./config/bfin-lex.l"
1606 return GT;
1607 	YY_BREAK
1608 case 101:
1609 YY_RULE_SETUP
1610 #line 158 "./config/bfin-lex.l"
1611 return GE;
1612 	YY_BREAK
1613 case 102:
1614 YY_RULE_SETUP
1615 #line 159 "./config/bfin-lex.l"
1616 yylval.value = M_FU; return MMOD;
1617 	YY_BREAK
1618 case 103:
1619 YY_RULE_SETUP
1620 #line 160 "./config/bfin-lex.l"
1621 _REG.regno = REG_FP; return REG;
1622 	YY_BREAK
1623 case 104:
1624 YY_RULE_SETUP
1625 #line 161 "./config/bfin-lex.l"
1626 _REG.regno = REG_FP; _REG.flags = F_REG_LOW; return HALF_REG;
1627 	YY_BREAK
1628 case 105:
1629 YY_RULE_SETUP
1630 #line 162 "./config/bfin-lex.l"
1631 _REG.regno = REG_FP; _REG.flags = F_REG_HIGH; return HALF_REG;
1632 	YY_BREAK
1633 case 106:
1634 YY_RULE_SETUP
1635 #line 164 "./config/bfin-lex.l"
1636 return EXTRACT;
1637 	YY_BREAK
1638 case 107:
1639 YY_RULE_SETUP
1640 #line 165 "./config/bfin-lex.l"
1641 return EXPADJ;
1642 	YY_BREAK
1643 case 108:
1644 YY_RULE_SETUP
1645 #line 166 "./config/bfin-lex.l"
1646 return EXCPT;
1647 	YY_BREAK
1648 case 109:
1649 YY_RULE_SETUP
1650 #line 167 "./config/bfin-lex.l"
1651 return EMUEXCPT;
1652 	YY_BREAK
1653 case 110:
1654 YY_RULE_SETUP
1655 #line 168 "./config/bfin-lex.l"
1656 return DIVS;
1657 	YY_BREAK
1658 case 111:
1659 YY_RULE_SETUP
1660 #line 169 "./config/bfin-lex.l"
1661 return DIVQ;
1662 	YY_BREAK
1663 case 112:
1664 YY_RULE_SETUP
1665 #line 170 "./config/bfin-lex.l"
1666 return DISALGNEXCPT;
1667 	YY_BREAK
1668 case 113:
1669 YY_RULE_SETUP
1670 #line 171 "./config/bfin-lex.l"
1671 return DEPOSIT;
1672 	YY_BREAK
1673 case 114:
1674 YY_RULE_SETUP
1675 #line 172 "./config/bfin-lex.l"
1676 return DBGHALT;
1677 	YY_BREAK
1678 case 115:
1679 YY_RULE_SETUP
1680 #line 173 "./config/bfin-lex.l"
1681 return DBGCMPLX;
1682 	YY_BREAK
1683 case 116:
1684 YY_RULE_SETUP
1685 #line 174 "./config/bfin-lex.l"
1686 return DBGAL;
1687 	YY_BREAK
1688 case 117:
1689 YY_RULE_SETUP
1690 #line 175 "./config/bfin-lex.l"
1691 return DBGAH;
1692 	YY_BREAK
1693 case 118:
1694 YY_RULE_SETUP
1695 #line 176 "./config/bfin-lex.l"
1696 return DBGA;
1697 	YY_BREAK
1698 case 119:
1699 YY_RULE_SETUP
1700 #line 177 "./config/bfin-lex.l"
1701 return DBG;
1702 	YY_BREAK
1703 case 120:
1704 YY_RULE_SETUP
1705 #line 178 "./config/bfin-lex.l"
1706 { _REG.regno = REG_CYCLES2; return REG; }
1707 	YY_BREAK
1708 case 121:
1709 YY_RULE_SETUP
1710 #line 179 "./config/bfin-lex.l"
1711 { _REG.regno = REG_CYCLES; return REG; }
1712 	YY_BREAK
1713 case 122:
1714 YY_RULE_SETUP
1715 #line 180 "./config/bfin-lex.l"
1716 return CSYNC;
1717 	YY_BREAK
1718 case 123:
1719 YY_RULE_SETUP
1720 #line 181 "./config/bfin-lex.l"
1721 return CO;
1722 	YY_BREAK
1723 case 124:
1724 YY_RULE_SETUP
1725 #line 182 "./config/bfin-lex.l"
1726 return CLI;
1727 	YY_BREAK
1728 case 125:
1729 YY_RULE_SETUP
1730 #line 184 "./config/bfin-lex.l"
1731 _REG.regno = REG_CC; return CCREG;
1732 	YY_BREAK
1733 case 126:
1734 YY_RULE_SETUP
1735 #line 185 "./config/bfin-lex.l"
1736 { BEGIN 0; return CALL;}
1737 	YY_BREAK
1738 case 127:
1739 YY_RULE_SETUP
1740 #line 186 "./config/bfin-lex.l"
1741 { BEGIN 0; return CALL;}
1742 	YY_BREAK
1743 case 128:
1744 YY_RULE_SETUP
1745 #line 187 "./config/bfin-lex.l"
1746 return BYTEUNPACK;
1747 	YY_BREAK
1748 case 129:
1749 YY_RULE_SETUP
1750 #line 188 "./config/bfin-lex.l"
1751 return BYTEPACK;
1752 	YY_BREAK
1753 case 130:
1754 YY_RULE_SETUP
1755 #line 189 "./config/bfin-lex.l"
1756 return BYTEOP16M;
1757 	YY_BREAK
1758 case 131:
1759 YY_RULE_SETUP
1760 #line 190 "./config/bfin-lex.l"
1761 return BYTEOP16P;
1762 	YY_BREAK
1763 case 132:
1764 YY_RULE_SETUP
1765 #line 191 "./config/bfin-lex.l"
1766 return BYTEOP3P;
1767 	YY_BREAK
1768 case 133:
1769 YY_RULE_SETUP
1770 #line 192 "./config/bfin-lex.l"
1771 return BYTEOP2P;
1772 	YY_BREAK
1773 case 134:
1774 YY_RULE_SETUP
1775 #line 193 "./config/bfin-lex.l"
1776 return BYTEOP1P;
1777 	YY_BREAK
1778 case 135:
1779 YY_RULE_SETUP
1780 #line 194 "./config/bfin-lex.l"
1781 return BY;
1782 	YY_BREAK
1783 case 136:
1784 YY_RULE_SETUP
1785 #line 195 "./config/bfin-lex.l"
1786 return BXORSHIFT;
1787 	YY_BREAK
1788 case 137:
1789 YY_RULE_SETUP
1790 #line 196 "./config/bfin-lex.l"
1791 return BXOR;
1792 	YY_BREAK
1793 case 138:
1794 YY_RULE_SETUP
1795 #line 198 "./config/bfin-lex.l"
1796 return BREV;
1797 	YY_BREAK
1798 case 139:
1799 YY_RULE_SETUP
1800 #line 199 "./config/bfin-lex.l"
1801 return BP;
1802 	YY_BREAK
1803 case 140:
1804 YY_RULE_SETUP
1805 #line 200 "./config/bfin-lex.l"
1806 return BITTST;
1807 	YY_BREAK
1808 case 141:
1809 YY_RULE_SETUP
1810 #line 201 "./config/bfin-lex.l"
1811 return BITTGL;
1812 	YY_BREAK
1813 case 142:
1814 YY_RULE_SETUP
1815 #line 202 "./config/bfin-lex.l"
1816 return BITSET;
1817 	YY_BREAK
1818 case 143:
1819 YY_RULE_SETUP
1820 #line 203 "./config/bfin-lex.l"
1821 return BITMUX;
1822 	YY_BREAK
1823 case 144:
1824 YY_RULE_SETUP
1825 #line 204 "./config/bfin-lex.l"
1826 return BITCLR;
1827 	YY_BREAK
1828 case 145:
1829 YY_RULE_SETUP
1830 #line 205 "./config/bfin-lex.l"
1831 return parse_halfreg (&yylval.reg, T_REG_B, yytext);
1832 	YY_BREAK
1833 case 146:
1834 YY_RULE_SETUP
1835 #line 206 "./config/bfin-lex.l"
1836 return parse_reg (&yylval.reg, T_REG_B, yytext);
1837 	YY_BREAK
1838 case 147:
1839 YY_RULE_SETUP
1840 #line 207 "./config/bfin-lex.l"
1841 return B;
1842 	YY_BREAK
1843 case 148:
1844 YY_RULE_SETUP
1845 #line 208 "./config/bfin-lex.l"
1846 _REG.regno = S_AZ;   return STATUS_REG;
1847 	YY_BREAK
1848 case 149:
1849 YY_RULE_SETUP
1850 #line 209 "./config/bfin-lex.l"
1851 _REG.regno = S_AN;   return STATUS_REG;
1852 	YY_BREAK
1853 case 150:
1854 YY_RULE_SETUP
1855 #line 210 "./config/bfin-lex.l"
1856 _REG.regno = S_AC0_COPY; return STATUS_REG;
1857 	YY_BREAK
1858 case 151:
1859 YY_RULE_SETUP
1860 #line 211 "./config/bfin-lex.l"
1861 _REG.regno = S_V_COPY;   return STATUS_REG;
1862 	YY_BREAK
1863 case 152:
1864 YY_RULE_SETUP
1865 #line 212 "./config/bfin-lex.l"
1866 _REG.regno = S_AQ;   return STATUS_REG;
1867 	YY_BREAK
1868 case 153:
1869 YY_RULE_SETUP
1870 #line 213 "./config/bfin-lex.l"
1871 _REG.regno = S_AC0;  return STATUS_REG;
1872 	YY_BREAK
1873 case 154:
1874 YY_RULE_SETUP
1875 #line 214 "./config/bfin-lex.l"
1876 _REG.regno = S_AC1;  return STATUS_REG;
1877 	YY_BREAK
1878 case 155:
1879 YY_RULE_SETUP
1880 #line 215 "./config/bfin-lex.l"
1881 _REG.regno = S_AV0;  return STATUS_REG;
1882 	YY_BREAK
1883 case 156:
1884 YY_RULE_SETUP
1885 #line 216 "./config/bfin-lex.l"
1886 _REG.regno = S_AV0S; return STATUS_REG;
1887 	YY_BREAK
1888 case 157:
1889 YY_RULE_SETUP
1890 #line 217 "./config/bfin-lex.l"
1891 _REG.regno = S_AV1;  return STATUS_REG;
1892 	YY_BREAK
1893 case 158:
1894 YY_RULE_SETUP
1895 #line 218 "./config/bfin-lex.l"
1896 _REG.regno = S_AV1S; return STATUS_REG;
1897 	YY_BREAK
1898 case 159:
1899 YY_RULE_SETUP
1900 #line 219 "./config/bfin-lex.l"
1901 _REG.regno = S_VS;   return STATUS_REG;
1902 	YY_BREAK
1903 case 160:
1904 YY_RULE_SETUP
1905 #line 220 "./config/bfin-lex.l"
1906 _REG.regno = S_RND_MOD; return STATUS_REG;
1907 	YY_BREAK
1908 case 161:
1909 YY_RULE_SETUP
1910 #line 223 "./config/bfin-lex.l"
1911 _REG.regno = REG_ASTAT; return REG;
1912 	YY_BREAK
1913 case 162:
1914 YY_RULE_SETUP
1915 #line 224 "./config/bfin-lex.l"
1916 return ASHIFT;
1917 	YY_BREAK
1918 case 163:
1919 YY_RULE_SETUP
1920 #line 225 "./config/bfin-lex.l"
1921 return ASL;
1922 	YY_BREAK
1923 case 164:
1924 YY_RULE_SETUP
1925 #line 226 "./config/bfin-lex.l"
1926 return ASR;
1927 	YY_BREAK
1928 case 165:
1929 YY_RULE_SETUP
1930 #line 227 "./config/bfin-lex.l"
1931 return ALIGN8;
1932 	YY_BREAK
1933 case 166:
1934 YY_RULE_SETUP
1935 #line 228 "./config/bfin-lex.l"
1936 return ALIGN16;
1937 	YY_BREAK
1938 case 167:
1939 YY_RULE_SETUP
1940 #line 229 "./config/bfin-lex.l"
1941 return ALIGN24;
1942 	YY_BREAK
1943 case 168:
1944 YY_RULE_SETUP
1945 #line 230 "./config/bfin-lex.l"
1946 return A_ONE_DOT_L;
1947 	YY_BREAK
1948 case 169:
1949 YY_RULE_SETUP
1950 #line 231 "./config/bfin-lex.l"
1951 return A_ZERO_DOT_L;
1952 	YY_BREAK
1953 case 170:
1954 YY_RULE_SETUP
1955 #line 232 "./config/bfin-lex.l"
1956 return A_ONE_DOT_H;
1957 	YY_BREAK
1958 case 171:
1959 YY_RULE_SETUP
1960 #line 233 "./config/bfin-lex.l"
1961 return A_ZERO_DOT_H;
1962 	YY_BREAK
1963 case 172:
1964 YY_RULE_SETUP
1965 #line 234 "./config/bfin-lex.l"
1966 return ABS;
1967 	YY_BREAK
1968 case 173:
1969 YY_RULE_SETUP
1970 #line 235 "./config/bfin-lex.l"
1971 return ABORT;
1972 	YY_BREAK
1973 case 174:
1974 YY_RULE_SETUP
1975 #line 236 "./config/bfin-lex.l"
1976 _REG.regno = REG_A1x; return REG;
1977 	YY_BREAK
1978 case 175:
1979 YY_RULE_SETUP
1980 #line 237 "./config/bfin-lex.l"
1981 _REG.regno = REG_A1w; return REG;
1982 	YY_BREAK
1983 case 176:
1984 YY_RULE_SETUP
1985 #line 238 "./config/bfin-lex.l"
1986 _REG.regno = REG_A1;  return REG_A_DOUBLE_ONE;
1987 	YY_BREAK
1988 case 177:
1989 YY_RULE_SETUP
1990 #line 239 "./config/bfin-lex.l"
1991 _REG.regno = REG_A0x; return REG;
1992 	YY_BREAK
1993 case 178:
1994 YY_RULE_SETUP
1995 #line 240 "./config/bfin-lex.l"
1996 _REG.regno = REG_A0w; return REG;
1997 	YY_BREAK
1998 case 179:
1999 YY_RULE_SETUP
2000 #line 241 "./config/bfin-lex.l"
2001 _REG.regno = REG_A0;  return REG_A_DOUBLE_ZERO;
2002 	YY_BREAK
2003 case 180:
2004 YY_RULE_SETUP
2005 #line 242 "./config/bfin-lex.l"
2006 return GOT;
2007 	YY_BREAK
2008 case 181:
2009 YY_RULE_SETUP
2010 #line 243 "./config/bfin-lex.l"
2011 return GOT17M4;
2012 	YY_BREAK
2013 case 182:
2014 YY_RULE_SETUP
2015 #line 244 "./config/bfin-lex.l"
2016 return FUNCDESC_GOT17M4;
2017 	YY_BREAK
2018 case 183:
2019 YY_RULE_SETUP
2020 #line 245 "./config/bfin-lex.l"
2021 return PLTPC;
2022 	YY_BREAK
2023 case 184:
2024 YY_RULE_SETUP
2025 #line 248 "./config/bfin-lex.l"
2026 return TILDA;
2027 	YY_BREAK
2028 case 185:
2029 YY_RULE_SETUP
2030 #line 249 "./config/bfin-lex.l"
2031 return _BAR_ASSIGN;
2032 	YY_BREAK
2033 case 186:
2034 YY_RULE_SETUP
2035 #line 250 "./config/bfin-lex.l"
2036 return BAR;
2037 	YY_BREAK
2038 case 187:
2039 YY_RULE_SETUP
2040 #line 251 "./config/bfin-lex.l"
2041 return _CARET_ASSIGN;
2042 	YY_BREAK
2043 case 188:
2044 YY_RULE_SETUP
2045 #line 252 "./config/bfin-lex.l"
2046 return CARET;
2047 	YY_BREAK
2048 case 189:
2049 YY_RULE_SETUP
2050 #line 253 "./config/bfin-lex.l"
2051 return RBRACK;
2052 	YY_BREAK
2053 case 190:
2054 YY_RULE_SETUP
2055 #line 254 "./config/bfin-lex.l"
2056 return LBRACK;
2057 	YY_BREAK
2058 case 191:
2059 YY_RULE_SETUP
2060 #line 255 "./config/bfin-lex.l"
2061 return _GREATER_GREATER_GREATER_THAN_ASSIGN;
2062 	YY_BREAK
2063 case 192:
2064 YY_RULE_SETUP
2065 #line 256 "./config/bfin-lex.l"
2066 return _GREATER_GREATER_ASSIGN;
2067 	YY_BREAK
2068 case 193:
2069 YY_RULE_SETUP
2070 #line 257 "./config/bfin-lex.l"
2071 return _GREATER_GREATER_GREATER;
2072 	YY_BREAK
2073 case 194:
2074 YY_RULE_SETUP
2075 #line 258 "./config/bfin-lex.l"
2076 return GREATER_GREATER;
2077 	YY_BREAK
2078 case 195:
2079 YY_RULE_SETUP
2080 #line 259 "./config/bfin-lex.l"
2081 return _ASSIGN_ASSIGN;
2082 	YY_BREAK
2083 case 196:
2084 YY_RULE_SETUP
2085 #line 260 "./config/bfin-lex.l"
2086 return ASSIGN;
2087 	YY_BREAK
2088 case 197:
2089 YY_RULE_SETUP
2090 #line 261 "./config/bfin-lex.l"
2091 return _LESS_THAN_ASSIGN;
2092 	YY_BREAK
2093 case 198:
2094 YY_RULE_SETUP
2095 #line 262 "./config/bfin-lex.l"
2096 return _LESS_LESS_ASSIGN;
2097 	YY_BREAK
2098 case 199:
2099 YY_RULE_SETUP
2100 #line 263 "./config/bfin-lex.l"
2101 return LESS_LESS;
2102 	YY_BREAK
2103 case 200:
2104 YY_RULE_SETUP
2105 #line 264 "./config/bfin-lex.l"
2106 return LESS_THAN;
2107 	YY_BREAK
2108 case 201:
2109 YY_RULE_SETUP
2110 #line 265 "./config/bfin-lex.l"
2111 BEGIN(FLAGS); return LPAREN;
2112 	YY_BREAK
2113 case 202:
2114 YY_RULE_SETUP
2115 #line 266 "./config/bfin-lex.l"
2116 BEGIN(INITIAL); return RPAREN;
2117 	YY_BREAK
2118 case 203:
2119 YY_RULE_SETUP
2120 #line 267 "./config/bfin-lex.l"
2121 return COLON;
2122 	YY_BREAK
2123 case 204:
2124 YY_RULE_SETUP
2125 #line 268 "./config/bfin-lex.l"
2126 return SLASH;
2127 	YY_BREAK
2128 case 205:
2129 YY_RULE_SETUP
2130 #line 269 "./config/bfin-lex.l"
2131 return _MINUS_ASSIGN;
2132 	YY_BREAK
2133 case 206:
2134 YY_RULE_SETUP
2135 #line 270 "./config/bfin-lex.l"
2136 return _PLUS_BAR_PLUS;
2137 	YY_BREAK
2138 case 207:
2139 YY_RULE_SETUP
2140 #line 271 "./config/bfin-lex.l"
2141 return _MINUS_BAR_PLUS;
2142 	YY_BREAK
2143 case 208:
2144 YY_RULE_SETUP
2145 #line 272 "./config/bfin-lex.l"
2146 return _PLUS_BAR_MINUS;
2147 	YY_BREAK
2148 case 209:
2149 YY_RULE_SETUP
2150 #line 273 "./config/bfin-lex.l"
2151 return _MINUS_BAR_MINUS;
2152 	YY_BREAK
2153 case 210:
2154 YY_RULE_SETUP
2155 #line 274 "./config/bfin-lex.l"
2156 return _MINUS_MINUS;
2157 	YY_BREAK
2158 case 211:
2159 YY_RULE_SETUP
2160 #line 275 "./config/bfin-lex.l"
2161 return MINUS;
2162 	YY_BREAK
2163 case 212:
2164 YY_RULE_SETUP
2165 #line 276 "./config/bfin-lex.l"
2166 return COMMA;
2167 	YY_BREAK
2168 case 213:
2169 YY_RULE_SETUP
2170 #line 277 "./config/bfin-lex.l"
2171 return _PLUS_ASSIGN;
2172 	YY_BREAK
2173 case 214:
2174 YY_RULE_SETUP
2175 #line 278 "./config/bfin-lex.l"
2176 return _PLUS_PLUS;
2177 	YY_BREAK
2178 case 215:
2179 YY_RULE_SETUP
2180 #line 279 "./config/bfin-lex.l"
2181 return PLUS;
2182 	YY_BREAK
2183 case 216:
2184 YY_RULE_SETUP
2185 #line 280 "./config/bfin-lex.l"
2186 return _STAR_ASSIGN;
2187 	YY_BREAK
2188 case 217:
2189 YY_RULE_SETUP
2190 #line 281 "./config/bfin-lex.l"
2191 return STAR;
2192 	YY_BREAK
2193 case 218:
2194 YY_RULE_SETUP
2195 #line 282 "./config/bfin-lex.l"
2196 return _AMPERSAND_ASSIGN;
2197 	YY_BREAK
2198 case 219:
2199 YY_RULE_SETUP
2200 #line 283 "./config/bfin-lex.l"
2201 return AMPERSAND;
2202 	YY_BREAK
2203 case 220:
2204 YY_RULE_SETUP
2205 #line 284 "./config/bfin-lex.l"
2206 return PERCENT;
2207 	YY_BREAK
2208 case 221:
2209 YY_RULE_SETUP
2210 #line 285 "./config/bfin-lex.l"
2211 return BANG;
2212 	YY_BREAK
2213 case 222:
2214 YY_RULE_SETUP
2215 #line 286 "./config/bfin-lex.l"
2216 return SEMICOLON;
2217 	YY_BREAK
2218 case 223:
2219 YY_RULE_SETUP
2220 #line 287 "./config/bfin-lex.l"
2221 return _ASSIGN_BANG;
2222 	YY_BREAK
2223 case 224:
2224 YY_RULE_SETUP
2225 #line 288 "./config/bfin-lex.l"
2226 return DOUBLE_BAR;
2227 	YY_BREAK
2228 case 225:
2229 YY_RULE_SETUP
2230 #line 289 "./config/bfin-lex.l"
2231 return AT;
2232 	YY_BREAK
2233 case 226:
2234 YY_RULE_SETUP
2235 #line 290 "./config/bfin-lex.l"
2236 return PREFETCH;
2237 	YY_BREAK
2238 case 227:
2239 YY_RULE_SETUP
2240 #line 291 "./config/bfin-lex.l"
2241 return UNLINK;
2242 	YY_BREAK
2243 case 228:
2244 YY_RULE_SETUP
2245 #line 292 "./config/bfin-lex.l"
2246 return LINK;
2247 	YY_BREAK
2248 case 229:
2249 YY_RULE_SETUP
2250 #line 293 "./config/bfin-lex.l"
2251 return IDLE;
2252 	YY_BREAK
2253 case 230:
2254 YY_RULE_SETUP
2255 #line 294 "./config/bfin-lex.l"
2256 return IFLUSH;
2257 	YY_BREAK
2258 case 231:
2259 YY_RULE_SETUP
2260 #line 295 "./config/bfin-lex.l"
2261 return FLUSHINV;
2262 	YY_BREAK
2263 case 232:
2264 YY_RULE_SETUP
2265 #line 296 "./config/bfin-lex.l"
2266 return FLUSH;
2267 	YY_BREAK
2268 case 233:
2269 YY_RULE_SETUP
2270 #line 297 "./config/bfin-lex.l"
2271 {
2272     yylval.value = parse_int (&yytext);
2273     return NUMBER;
2274   }
2275 	YY_BREAK
2276 case 234:
2277 YY_RULE_SETUP
2278 #line 301 "./config/bfin-lex.l"
2279 {
2280     yylval.symbol = symbol_find_or_make (yytext);
2281     symbol_mark_used (yylval.symbol);
2282     return SYMBOL;
2283   }
2284 	YY_BREAK
2285 case 235:
2286 YY_RULE_SETUP
2287 #line 306 "./config/bfin-lex.l"
2288 {
2289     char *name;
2290     char *ref = strdup (yytext);
2291     if (ref[1] == 'b' || ref[1] == 'B')
2292       {
2293         name = fb_label_name ((int) (ref[0] - '0'), 0);
2294 	yylval.symbol = symbol_find (name);
2295 
2296 	if ((yylval.symbol != NULL)
2297              && (S_IS_DEFINED (yylval.symbol)))
2298           return SYMBOL;
2299 	as_bad ("backward reference to unknown label %d:",
2300 						  (int) (ref[0] - '0'));
2301       }
2302     else if (ref[1] == 'f' || ref[1] == 'F')
2303       {
2304         /* Forward reference.  Expect symbol to be undefined or
2305            unknown.  undefined: seen it before.  unknown: never seen
2306            it before.
2307 
2308            Construct a local label name, then an undefined symbol.
2309            Just return it as never seen before.  */
2310 
2311         name = fb_label_name ((int) (ref[0] - '0'), 1);
2312 	yylval.symbol = symbol_find_or_make (name);
2313 	/* We have no need to check symbol properties.  */
2314 	return SYMBOL;
2315       }
2316   }
2317 	YY_BREAK
2318 case 236:
2319 /* rule 236 can match eol */
2320 YY_RULE_SETUP
2321 #line 335 "./config/bfin-lex.l"
2322 ;
2323 	YY_BREAK
2324 case 237:
2325 YY_RULE_SETUP
2326 #line 336 "./config/bfin-lex.l"
2327 ;
2328 	YY_BREAK
2329 case 238:
2330 YY_RULE_SETUP
2331 #line 337 "./config/bfin-lex.l"
2332 return yytext[0];
2333 	YY_BREAK
2334 case 239:
2335 YY_RULE_SETUP
2336 #line 338 "./config/bfin-lex.l"
2337 ECHO;
2338 	YY_BREAK
2339 #line 2340 "bfin-lex.c"
2340 case YY_STATE_EOF(INITIAL):
2341 case YY_STATE_EOF(KEYWORD):
2342 case YY_STATE_EOF(FLAGS):
2343 	yyterminate();
2344 
2345 	case YY_END_OF_BUFFER:
2346 		{
2347 		/* Amount of text matched not including the EOB char. */
2348 		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2349 
2350 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
2351 		*yy_cp = (yy_hold_char);
2352 		YY_RESTORE_YY_MORE_OFFSET
2353 
2354 		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2355 			{
2356 			/* We're scanning a new file or input source.  It's
2357 			 * possible that this happened because the user
2358 			 * just pointed yyin at a new source and called
2359 			 * yylex().  If so, then we have to assure
2360 			 * consistency between YY_CURRENT_BUFFER and our
2361 			 * globals.  Here is the right place to do so, because
2362 			 * this is the first action (other than possibly a
2363 			 * back-up) that will match for the new input source.
2364 			 */
2365 			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2366 			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2367 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2368 			}
2369 
2370 		/* Note that here we test for yy_c_buf_p "<=" to the position
2371 		 * of the first EOB in the buffer, since yy_c_buf_p will
2372 		 * already have been incremented past the NUL character
2373 		 * (since all states make transitions on EOB to the
2374 		 * end-of-buffer state).  Contrast this with the test
2375 		 * in input().
2376 		 */
2377 		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2378 			{ /* This was really a NUL. */
2379 			yy_state_type yy_next_state;
2380 
2381 			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2382 
2383 			yy_current_state = yy_get_previous_state(  );
2384 
2385 			/* Okay, we're now positioned to make the NUL
2386 			 * transition.  We couldn't have
2387 			 * yy_get_previous_state() go ahead and do it
2388 			 * for us because it doesn't know how to deal
2389 			 * with the possibility of jamming (and we don't
2390 			 * want to build jamming into it because then it
2391 			 * will run more slowly).
2392 			 */
2393 
2394 			yy_next_state = yy_try_NUL_trans( yy_current_state );
2395 
2396 			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2397 
2398 			if ( yy_next_state )
2399 				{
2400 				/* Consume the NUL. */
2401 				yy_cp = ++(yy_c_buf_p);
2402 				yy_current_state = yy_next_state;
2403 				goto yy_match;
2404 				}
2405 
2406 			else
2407 				{
2408 				yy_cp = (yy_c_buf_p);
2409 				goto yy_find_action;
2410 				}
2411 			}
2412 
2413 		else switch ( yy_get_next_buffer(  ) )
2414 			{
2415 			case EOB_ACT_END_OF_FILE:
2416 				{
2417 				(yy_did_buffer_switch_on_eof) = 0;
2418 
2419 				if ( yywrap( ) )
2420 					{
2421 					/* Note: because we've taken care in
2422 					 * yy_get_next_buffer() to have set up
2423 					 * yytext, we can now set up
2424 					 * yy_c_buf_p so that if some total
2425 					 * hoser (like flex itself) wants to
2426 					 * call the scanner after we return the
2427 					 * YY_NULL, it'll still work - another
2428 					 * YY_NULL will get returned.
2429 					 */
2430 					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2431 
2432 					yy_act = YY_STATE_EOF(YY_START);
2433 					goto do_action;
2434 					}
2435 
2436 				else
2437 					{
2438 					if ( ! (yy_did_buffer_switch_on_eof) )
2439 						YY_NEW_FILE;
2440 					}
2441 				break;
2442 				}
2443 
2444 			case EOB_ACT_CONTINUE_SCAN:
2445 				(yy_c_buf_p) =
2446 					(yytext_ptr) + yy_amount_of_matched_text;
2447 
2448 				yy_current_state = yy_get_previous_state(  );
2449 
2450 				yy_cp = (yy_c_buf_p);
2451 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2452 				goto yy_match;
2453 
2454 			case EOB_ACT_LAST_MATCH:
2455 				(yy_c_buf_p) =
2456 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2457 
2458 				yy_current_state = yy_get_previous_state(  );
2459 
2460 				yy_cp = (yy_c_buf_p);
2461 				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2462 				goto yy_find_action;
2463 			}
2464 		break;
2465 		}
2466 
2467 	default:
2468 		YY_FATAL_ERROR(
2469 			"fatal flex scanner internal error--no action found" );
2470 	} /* end of action switch */
2471 		} /* end of scanning one token */
2472 } /* end of yylex */
2473 
2474 /* yy_get_next_buffer - try to read in a new buffer
2475  *
2476  * Returns a code representing an action:
2477  *	EOB_ACT_LAST_MATCH -
2478  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2479  *	EOB_ACT_END_OF_FILE - end of file
2480  */
yy_get_next_buffer(void)2481 static int yy_get_next_buffer (void)
2482 {
2483     	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2484 	register char *source = (yytext_ptr);
2485 	register int number_to_move, i;
2486 	int ret_val;
2487 
2488 	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2489 		YY_FATAL_ERROR(
2490 		"fatal flex scanner internal error--end of buffer missed" );
2491 
2492 	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2493 		{ /* Don't try to fill the buffer, so this is an EOF. */
2494 		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2495 			{
2496 			/* We matched a single character, the EOB, so
2497 			 * treat this as a final EOF.
2498 			 */
2499 			return EOB_ACT_END_OF_FILE;
2500 			}
2501 
2502 		else
2503 			{
2504 			/* We matched some text prior to the EOB, first
2505 			 * process it.
2506 			 */
2507 			return EOB_ACT_LAST_MATCH;
2508 			}
2509 		}
2510 
2511 	/* Try to read more data. */
2512 
2513 	/* First move last chars to start of buffer. */
2514 	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2515 
2516 	for ( i = 0; i < number_to_move; ++i )
2517 		*(dest++) = *(source++);
2518 
2519 	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2520 		/* don't do the read, it's not guaranteed to return an EOF,
2521 		 * just force an EOF
2522 		 */
2523 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2524 
2525 	else
2526 		{
2527 			yy_size_t num_to_read =
2528 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2529 
2530 		while ( num_to_read <= 0 )
2531 			{ /* Not enough room in the buffer - grow it. */
2532 
2533 			/* just a shorter name for the current buffer */
2534 			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2535 
2536 			int yy_c_buf_p_offset =
2537 				(int) ((yy_c_buf_p) - b->yy_ch_buf);
2538 
2539 			if ( b->yy_is_our_buffer )
2540 				{
2541 				yy_size_t new_size = b->yy_buf_size * 2;
2542 
2543 				if ( new_size <= 0 )
2544 					b->yy_buf_size += b->yy_buf_size / 8;
2545 				else
2546 					b->yy_buf_size *= 2;
2547 
2548 				b->yy_ch_buf = (char *)
2549 					/* Include room in for 2 EOB chars. */
2550 					yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
2551 				}
2552 			else
2553 				/* Can't grow it, we don't own it. */
2554 				b->yy_ch_buf = 0;
2555 
2556 			if ( ! b->yy_ch_buf )
2557 				YY_FATAL_ERROR(
2558 				"fatal error - scanner input buffer overflow" );
2559 
2560 			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2561 
2562 			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2563 						number_to_move - 1;
2564 
2565 			}
2566 
2567 		if ( num_to_read > YY_READ_BUF_SIZE )
2568 			num_to_read = YY_READ_BUF_SIZE;
2569 
2570 		/* Read in more data. */
2571 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2572 			(yy_n_chars), num_to_read );
2573 
2574 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2575 		}
2576 
2577 	if ( (yy_n_chars) == 0 )
2578 		{
2579 		if ( number_to_move == YY_MORE_ADJ )
2580 			{
2581 			ret_val = EOB_ACT_END_OF_FILE;
2582 			yyrestart(yyin  );
2583 			}
2584 
2585 		else
2586 			{
2587 			ret_val = EOB_ACT_LAST_MATCH;
2588 			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2589 				YY_BUFFER_EOF_PENDING;
2590 			}
2591 		}
2592 
2593 	else
2594 		ret_val = EOB_ACT_CONTINUE_SCAN;
2595 
2596 	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2597 		/* Extend the array by 50%, plus the number we really need. */
2598 		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2599 		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
2600 		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2601 			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2602 	}
2603 
2604 	(yy_n_chars) += number_to_move;
2605 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2606 	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2607 
2608 	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2609 
2610 	return ret_val;
2611 }
2612 
2613 /* yy_get_previous_state - get the state just before the EOB char was reached */
2614 
yy_get_previous_state(void)2615     static yy_state_type yy_get_previous_state (void)
2616 {
2617 	register yy_state_type yy_current_state;
2618 	register char *yy_cp;
2619 
2620 	yy_current_state = (yy_start);
2621 
2622 	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2623 		{
2624 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2625 		if ( yy_accept[yy_current_state] )
2626 			{
2627 			(yy_last_accepting_state) = yy_current_state;
2628 			(yy_last_accepting_cpos) = yy_cp;
2629 			}
2630 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2631 			{
2632 			yy_current_state = (int) yy_def[yy_current_state];
2633 			if ( yy_current_state >= 571 )
2634 				yy_c = yy_meta[(unsigned int) yy_c];
2635 			}
2636 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2637 		}
2638 
2639 	return yy_current_state;
2640 }
2641 
2642 /* yy_try_NUL_trans - try to make a transition on the NUL character
2643  *
2644  * synopsis
2645  *	next_state = yy_try_NUL_trans( current_state );
2646  */
yy_try_NUL_trans(yy_state_type yy_current_state)2647     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
2648 {
2649 	register int yy_is_jam;
2650     	register char *yy_cp = (yy_c_buf_p);
2651 
2652 	register YY_CHAR yy_c = 1;
2653 	if ( yy_accept[yy_current_state] )
2654 		{
2655 		(yy_last_accepting_state) = yy_current_state;
2656 		(yy_last_accepting_cpos) = yy_cp;
2657 		}
2658 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2659 		{
2660 		yy_current_state = (int) yy_def[yy_current_state];
2661 		if ( yy_current_state >= 571 )
2662 			yy_c = yy_meta[(unsigned int) yy_c];
2663 		}
2664 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2665 	yy_is_jam = (yy_current_state == 570);
2666 
2667 	return yy_is_jam ? 0 : yy_current_state;
2668 }
2669 
yyunput(int c,register char * yy_bp)2670     static void yyunput (int c, register char * yy_bp )
2671 {
2672 	register char *yy_cp;
2673 
2674     yy_cp = (yy_c_buf_p);
2675 
2676 	/* undo effects of setting up yytext */
2677 	*yy_cp = (yy_hold_char);
2678 
2679 	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2680 		{ /* need to shift things up to make room */
2681 		/* +2 for EOB chars. */
2682 		register yy_size_t number_to_move = (yy_n_chars) + 2;
2683 		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2684 					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2685 		register char *source =
2686 				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2687 
2688 		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2689 			*--dest = *--source;
2690 
2691 		yy_cp += (int) (dest - source);
2692 		yy_bp += (int) (dest - source);
2693 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2694 			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2695 
2696 		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2697 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
2698 		}
2699 
2700 	*--yy_cp = (char) c;
2701 
2702 	(yytext_ptr) = yy_bp;
2703 	(yy_hold_char) = *yy_cp;
2704 	(yy_c_buf_p) = yy_cp;
2705 }
2706 
2707 #ifndef YY_NO_INPUT
2708 #ifdef __cplusplus
yyinput(void)2709     static int yyinput (void)
2710 #else
2711     static int input  (void)
2712 #endif
2713 
2714 {
2715 	int c;
2716 
2717 	*(yy_c_buf_p) = (yy_hold_char);
2718 
2719 	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2720 		{
2721 		/* yy_c_buf_p now points to the character we want to return.
2722 		 * If this occurs *before* the EOB characters, then it's a
2723 		 * valid NUL; if not, then we've hit the end of the buffer.
2724 		 */
2725 		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2726 			/* This was really a NUL. */
2727 			*(yy_c_buf_p) = '\0';
2728 
2729 		else
2730 			{ /* need more input */
2731 			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
2732 			++(yy_c_buf_p);
2733 
2734 			switch ( yy_get_next_buffer(  ) )
2735 				{
2736 				case EOB_ACT_LAST_MATCH:
2737 					/* This happens because yy_g_n_b()
2738 					 * sees that we've accumulated a
2739 					 * token and flags that we need to
2740 					 * try matching the token before
2741 					 * proceeding.  But for input(),
2742 					 * there's no matching to consider.
2743 					 * So convert the EOB_ACT_LAST_MATCH
2744 					 * to EOB_ACT_END_OF_FILE.
2745 					 */
2746 
2747 					/* Reset buffer status. */
2748 					yyrestart(yyin );
2749 
2750 					/*FALLTHROUGH*/
2751 
2752 				case EOB_ACT_END_OF_FILE:
2753 					{
2754 					if ( yywrap( ) )
2755 						return 0;
2756 
2757 					if ( ! (yy_did_buffer_switch_on_eof) )
2758 						YY_NEW_FILE;
2759 #ifdef __cplusplus
2760 					return yyinput();
2761 #else
2762 					return input();
2763 #endif
2764 					}
2765 
2766 				case EOB_ACT_CONTINUE_SCAN:
2767 					(yy_c_buf_p) = (yytext_ptr) + offset;
2768 					break;
2769 				}
2770 			}
2771 		}
2772 
2773 	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
2774 	*(yy_c_buf_p) = '\0';	/* preserve yytext */
2775 	(yy_hold_char) = *++(yy_c_buf_p);
2776 
2777 	return c;
2778 }
2779 #endif	/* ifndef YY_NO_INPUT */
2780 
2781 /** Immediately switch to a different input stream.
2782  * @param input_file A readable stream.
2783  *
2784  * @note This function does not reset the start condition to @c INITIAL .
2785  */
yyrestart(FILE * input_file)2786     void yyrestart  (FILE * input_file )
2787 {
2788 
2789 	if ( ! YY_CURRENT_BUFFER ){
2790         yyensure_buffer_stack ();
2791 		YY_CURRENT_BUFFER_LVALUE =
2792             yy_create_buffer(yyin,YY_BUF_SIZE );
2793 	}
2794 
2795 	yy_init_buffer(YY_CURRENT_BUFFER,input_file );
2796 	yy_load_buffer_state( );
2797 }
2798 
2799 /** Switch to a different input buffer.
2800  * @param new_buffer The new input buffer.
2801  *
2802  */
yy_switch_to_buffer(YY_BUFFER_STATE new_buffer)2803     void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
2804 {
2805 
2806 	/* TODO. We should be able to replace this entire function body
2807 	 * with
2808 	 *		yypop_buffer_state();
2809 	 *		yypush_buffer_state(new_buffer);
2810      */
2811 	yyensure_buffer_stack ();
2812 	if ( YY_CURRENT_BUFFER == new_buffer )
2813 		return;
2814 
2815 	if ( YY_CURRENT_BUFFER )
2816 		{
2817 		/* Flush out information for old buffer. */
2818 		*(yy_c_buf_p) = (yy_hold_char);
2819 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2820 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2821 		}
2822 
2823 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2824 	yy_load_buffer_state( );
2825 
2826 	/* We don't actually know whether we did this switch during
2827 	 * EOF (yywrap()) processing, but the only time this flag
2828 	 * is looked at is after yywrap() is called, so it's safe
2829 	 * to go ahead and always set it.
2830 	 */
2831 	(yy_did_buffer_switch_on_eof) = 1;
2832 }
2833 
yy_load_buffer_state(void)2834 static void yy_load_buffer_state  (void)
2835 {
2836     	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2837 	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2838 	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2839 	(yy_hold_char) = *(yy_c_buf_p);
2840 }
2841 
2842 /** Allocate and initialize an input buffer state.
2843  * @param file A readable stream.
2844  * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2845  *
2846  * @return the allocated buffer state.
2847  */
yy_create_buffer(FILE * file,int size)2848     YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size )
2849 {
2850 	YY_BUFFER_STATE b;
2851 
2852 	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
2853 	if ( ! b )
2854 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2855 
2856 	b->yy_buf_size = size;
2857 
2858 	/* yy_ch_buf has to be 2 characters longer than the size given because
2859 	 * we need to put in 2 end-of-buffer characters.
2860 	 */
2861 	b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2  );
2862 	if ( ! b->yy_ch_buf )
2863 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2864 
2865 	b->yy_is_our_buffer = 1;
2866 
2867 	yy_init_buffer(b,file );
2868 
2869 	return b;
2870 }
2871 
2872 /** Destroy the buffer.
2873  * @param b a buffer created with yy_create_buffer()
2874  *
2875  */
yy_delete_buffer(YY_BUFFER_STATE b)2876     void yy_delete_buffer (YY_BUFFER_STATE  b )
2877 {
2878 
2879 	if ( ! b )
2880 		return;
2881 
2882 	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2883 		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2884 
2885 	if ( b->yy_is_our_buffer )
2886 		yyfree((void *) b->yy_ch_buf  );
2887 
2888 	yyfree((void *) b  );
2889 }
2890 
2891 #ifndef __cplusplus
2892 extern int isatty (int );
2893 #endif /* __cplusplus */
2894 
2895 /* Initializes or reinitializes a buffer.
2896  * This function is sometimes called more than once on the same buffer,
2897  * such as during a yyrestart() or at EOF.
2898  */
yy_init_buffer(YY_BUFFER_STATE b,FILE * file)2899     static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
2900 
2901 {
2902 	int oerrno = errno;
2903 
2904 	yy_flush_buffer(b );
2905 
2906 	b->yy_input_file = file;
2907 	b->yy_fill_buffer = 1;
2908 
2909     /* If b is the current buffer, then yy_init_buffer was _probably_
2910      * called from yyrestart() or through yy_get_next_buffer.
2911      * In that case, we don't want to reset the lineno or column.
2912      */
2913     if (b != YY_CURRENT_BUFFER){
2914         b->yy_bs_lineno = 1;
2915         b->yy_bs_column = 0;
2916     }
2917 
2918         b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2919 
2920 	errno = oerrno;
2921 }
2922 
2923 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2924  * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2925  *
2926  */
yy_flush_buffer(YY_BUFFER_STATE b)2927     void yy_flush_buffer (YY_BUFFER_STATE  b )
2928 {
2929     	if ( ! b )
2930 		return;
2931 
2932 	b->yy_n_chars = 0;
2933 
2934 	/* We always need two end-of-buffer characters.  The first causes
2935 	 * a transition to the end-of-buffer state.  The second causes
2936 	 * a jam in that state.
2937 	 */
2938 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2939 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2940 
2941 	b->yy_buf_pos = &b->yy_ch_buf[0];
2942 
2943 	b->yy_at_bol = 1;
2944 	b->yy_buffer_status = YY_BUFFER_NEW;
2945 
2946 	if ( b == YY_CURRENT_BUFFER )
2947 		yy_load_buffer_state( );
2948 }
2949 
2950 /** Pushes the new state onto the stack. The new state becomes
2951  *  the current state. This function will allocate the stack
2952  *  if necessary.
2953  *  @param new_buffer The new state.
2954  *
2955  */
yypush_buffer_state(YY_BUFFER_STATE new_buffer)2956 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2957 {
2958     	if (new_buffer == NULL)
2959 		return;
2960 
2961 	yyensure_buffer_stack();
2962 
2963 	/* This block is copied from yy_switch_to_buffer. */
2964 	if ( YY_CURRENT_BUFFER )
2965 		{
2966 		/* Flush out information for old buffer. */
2967 		*(yy_c_buf_p) = (yy_hold_char);
2968 		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2969 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2970 		}
2971 
2972 	/* Only push if top exists. Otherwise, replace top. */
2973 	if (YY_CURRENT_BUFFER)
2974 		(yy_buffer_stack_top)++;
2975 	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2976 
2977 	/* copied from yy_switch_to_buffer. */
2978 	yy_load_buffer_state( );
2979 	(yy_did_buffer_switch_on_eof) = 1;
2980 }
2981 
2982 /** Removes and deletes the top of the stack, if present.
2983  *  The next element becomes the new top.
2984  *
2985  */
yypop_buffer_state(void)2986 void yypop_buffer_state (void)
2987 {
2988     	if (!YY_CURRENT_BUFFER)
2989 		return;
2990 
2991 	yy_delete_buffer(YY_CURRENT_BUFFER );
2992 	YY_CURRENT_BUFFER_LVALUE = NULL;
2993 	if ((yy_buffer_stack_top) > 0)
2994 		--(yy_buffer_stack_top);
2995 
2996 	if (YY_CURRENT_BUFFER) {
2997 		yy_load_buffer_state( );
2998 		(yy_did_buffer_switch_on_eof) = 1;
2999 	}
3000 }
3001 
3002 /* Allocates the stack if it does not exist.
3003  *  Guarantees space for at least one push.
3004  */
yyensure_buffer_stack(void)3005 static void yyensure_buffer_stack (void)
3006 {
3007 	yy_size_t num_to_alloc;
3008 
3009 	if (!(yy_buffer_stack)) {
3010 
3011 		/* First allocation is just for 2 elements, since we don't know if this
3012 		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3013 		 * immediate realloc on the next call.
3014          */
3015 		num_to_alloc = 1;
3016 		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
3017 								(num_to_alloc * sizeof(struct yy_buffer_state*)
3018 								);
3019 		if ( ! (yy_buffer_stack) )
3020 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3021 
3022 		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
3023 
3024 		(yy_buffer_stack_max) = num_to_alloc;
3025 		(yy_buffer_stack_top) = 0;
3026 		return;
3027 	}
3028 
3029 	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
3030 
3031 		/* Increase the buffer to prepare for a possible push. */
3032 		int grow_size = 8 /* arbitrary grow size */;
3033 
3034 		num_to_alloc = (yy_buffer_stack_max) + grow_size;
3035 		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
3036 								((yy_buffer_stack),
3037 								num_to_alloc * sizeof(struct yy_buffer_state*)
3038 								);
3039 		if ( ! (yy_buffer_stack) )
3040 			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3041 
3042 		/* zero only the new slots.*/
3043 		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
3044 		(yy_buffer_stack_max) = num_to_alloc;
3045 	}
3046 }
3047 
3048 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3049  * @param base the character buffer
3050  * @param size the size in bytes of the character buffer
3051  *
3052  * @return the newly allocated buffer state object.
3053  */
yy_scan_buffer(char * base,yy_size_t size)3054 YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size )
3055 {
3056 	YY_BUFFER_STATE b;
3057 
3058 	if ( size < 2 ||
3059 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
3060 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
3061 		/* They forgot to leave room for the EOB's. */
3062 		return 0;
3063 
3064 	b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state )  );
3065 	if ( ! b )
3066 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3067 
3068 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
3069 	b->yy_buf_pos = b->yy_ch_buf = base;
3070 	b->yy_is_our_buffer = 0;
3071 	b->yy_input_file = 0;
3072 	b->yy_n_chars = b->yy_buf_size;
3073 	b->yy_is_interactive = 0;
3074 	b->yy_at_bol = 1;
3075 	b->yy_fill_buffer = 0;
3076 	b->yy_buffer_status = YY_BUFFER_NEW;
3077 
3078 	yy_switch_to_buffer(b  );
3079 
3080 	return b;
3081 }
3082 
3083 /** Setup the input buffer state to scan a string. The next call to yylex() will
3084  * scan from a @e copy of @a str.
3085  * @param yystr a NUL-terminated string to scan
3086  *
3087  * @return the newly allocated buffer state object.
3088  * @note If you want to scan bytes that may contain NUL values, then use
3089  *       yy_scan_bytes() instead.
3090  */
yy_scan_string(yyconst char * yystr)3091 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
3092 {
3093 
3094 	return yy_scan_bytes(yystr,strlen(yystr) );
3095 }
3096 
3097 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
3098  * scan from a @e copy of @a bytes.
3099  * @param bytes the byte buffer to scan
3100  * @param len the number of bytes in the buffer pointed to by @a bytes.
3101  *
3102  * @return the newly allocated buffer state object.
3103  */
yy_scan_bytes(yyconst char * yybytes,yy_size_t _yybytes_len)3104 YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
3105 {
3106 	YY_BUFFER_STATE b;
3107 	char *buf;
3108 	yy_size_t n, i;
3109 
3110 	/* Get memory for full buffer, including space for trailing EOB's. */
3111 	n = _yybytes_len + 2;
3112 	buf = (char *) yyalloc(n  );
3113 	if ( ! buf )
3114 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3115 
3116 	for ( i = 0; i < _yybytes_len; ++i )
3117 		buf[i] = yybytes[i];
3118 
3119 	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
3120 
3121 	b = yy_scan_buffer(buf,n );
3122 	if ( ! b )
3123 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3124 
3125 	/* It's okay to grow etc. this buffer, and we should throw it
3126 	 * away when we're done.
3127 	 */
3128 	b->yy_is_our_buffer = 1;
3129 
3130 	return b;
3131 }
3132 
3133 #ifndef YY_EXIT_FAILURE
3134 #define YY_EXIT_FAILURE 2
3135 #endif
3136 
yy_fatal_error(yyconst char * msg)3137 static void yy_fatal_error (yyconst char* msg )
3138 {
3139     	(void) fprintf( stderr, "%s\n", msg );
3140 	exit( YY_EXIT_FAILURE );
3141 }
3142 
3143 /* Redefine yyless() so it works in section 3 code. */
3144 
3145 #undef yyless
3146 #define yyless(n) \
3147 	do \
3148 		{ \
3149 		/* Undo effects of setting up yytext. */ \
3150         int yyless_macro_arg = (n); \
3151         YY_LESS_LINENO(yyless_macro_arg);\
3152 		yytext[yyleng] = (yy_hold_char); \
3153 		(yy_c_buf_p) = yytext + yyless_macro_arg; \
3154 		(yy_hold_char) = *(yy_c_buf_p); \
3155 		*(yy_c_buf_p) = '\0'; \
3156 		yyleng = yyless_macro_arg; \
3157 		} \
3158 	while ( 0 )
3159 
3160 /* Accessor  methods (get/set functions) to struct members. */
3161 
3162 /** Get the current line number.
3163  *
3164  */
yyget_lineno(void)3165 int yyget_lineno  (void)
3166 {
3167 
3168     return yylineno;
3169 }
3170 
3171 /** Get the input stream.
3172  *
3173  */
yyget_in(void)3174 FILE *yyget_in  (void)
3175 {
3176         return yyin;
3177 }
3178 
3179 /** Get the output stream.
3180  *
3181  */
yyget_out(void)3182 FILE *yyget_out  (void)
3183 {
3184         return yyout;
3185 }
3186 
3187 /** Get the length of the current token.
3188  *
3189  */
yyget_leng(void)3190 yy_size_t yyget_leng  (void)
3191 {
3192         return yyleng;
3193 }
3194 
3195 /** Get the current token.
3196  *
3197  */
3198 
yyget_text(void)3199 char *yyget_text  (void)
3200 {
3201         return yytext;
3202 }
3203 
3204 /** Set the current line number.
3205  * @param line_number
3206  *
3207  */
yyset_lineno(int line_number)3208 void yyset_lineno (int  line_number )
3209 {
3210 
3211     yylineno = line_number;
3212 }
3213 
3214 /** Set the input stream. This does not discard the current
3215  * input buffer.
3216  * @param in_str A readable stream.
3217  *
3218  * @see yy_switch_to_buffer
3219  */
yyset_in(FILE * in_str)3220 void yyset_in (FILE *  in_str )
3221 {
3222         yyin = in_str ;
3223 }
3224 
yyset_out(FILE * out_str)3225 void yyset_out (FILE *  out_str )
3226 {
3227         yyout = out_str ;
3228 }
3229 
yyget_debug(void)3230 int yyget_debug  (void)
3231 {
3232         return yy_flex_debug;
3233 }
3234 
yyset_debug(int bdebug)3235 void yyset_debug (int  bdebug )
3236 {
3237         yy_flex_debug = bdebug ;
3238 }
3239 
yy_init_globals(void)3240 static int yy_init_globals (void)
3241 {
3242         /* Initialization is the same as for the non-reentrant scanner.
3243      * This function is called from yylex_destroy(), so don't allocate here.
3244      */
3245 
3246     (yy_buffer_stack) = 0;
3247     (yy_buffer_stack_top) = 0;
3248     (yy_buffer_stack_max) = 0;
3249     (yy_c_buf_p) = (char *) 0;
3250     (yy_init) = 0;
3251     (yy_start) = 0;
3252 
3253 /* Defined in main.c */
3254 #ifdef YY_STDINIT
3255     yyin = stdin;
3256     yyout = stdout;
3257 #else
3258     yyin = (FILE *) 0;
3259     yyout = (FILE *) 0;
3260 #endif
3261 
3262     /* For future reference: Set errno on error, since we are called by
3263      * yylex_init()
3264      */
3265     return 0;
3266 }
3267 
3268 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
yylex_destroy(void)3269 int yylex_destroy  (void)
3270 {
3271 
3272     /* Pop the buffer stack, destroying each element. */
3273 	while(YY_CURRENT_BUFFER){
3274 		yy_delete_buffer(YY_CURRENT_BUFFER  );
3275 		YY_CURRENT_BUFFER_LVALUE = NULL;
3276 		yypop_buffer_state();
3277 	}
3278 
3279 	/* Destroy the stack itself. */
3280 	yyfree((yy_buffer_stack) );
3281 	(yy_buffer_stack) = NULL;
3282 
3283     /* Reset the globals. This is important in a non-reentrant scanner so the next time
3284      * yylex() is called, initialization will occur. */
3285     yy_init_globals( );
3286 
3287     return 0;
3288 }
3289 
3290 /*
3291  * Internal utility routines.
3292  */
3293 
3294 #ifndef yytext_ptr
yy_flex_strncpy(char * s1,yyconst char * s2,int n)3295 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3296 {
3297 	register int i;
3298 	for ( i = 0; i < n; ++i )
3299 		s1[i] = s2[i];
3300 }
3301 #endif
3302 
3303 #ifdef YY_NEED_STRLEN
yy_flex_strlen(yyconst char * s)3304 static int yy_flex_strlen (yyconst char * s )
3305 {
3306 	register int n;
3307 	for ( n = 0; s[n]; ++n )
3308 		;
3309 
3310 	return n;
3311 }
3312 #endif
3313 
yyalloc(yy_size_t size)3314 void *yyalloc (yy_size_t  size )
3315 {
3316 	return (void *) malloc( size );
3317 }
3318 
yyrealloc(void * ptr,yy_size_t size)3319 void *yyrealloc  (void * ptr, yy_size_t  size )
3320 {
3321 	/* The cast to (char *) in the following accommodates both
3322 	 * implementations that use char* generic pointers, and those
3323 	 * that use void* generic pointers.  It works with the latter
3324 	 * because both ANSI C and C++ allow castless assignment from
3325 	 * any pointer type to void*, and deal with argument conversions
3326 	 * as though doing an assignment.
3327 	 */
3328 	return (void *) realloc( (char *) ptr, size );
3329 }
3330 
yyfree(void * ptr)3331 void yyfree (void * ptr )
3332 {
3333 	free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
3334 }
3335 
3336 #define YYTABLES_NAME "yytables"
3337 
3338 #line 338 "./config/bfin-lex.l"
3339 
3340 
parse_int(char ** end)3341 static long parse_int (char **end)
3342 {
3343   char fmt = '\0';
3344   int not_done = 1;
3345   int shiftvalue = 0;
3346   char * char_bag;
3347   long value = 0;
3348   char *arg = *end;
3349 
3350   while (*arg && *arg == ' ')
3351     arg++;
3352 
3353   switch (*arg)
3354     {
3355       case '1':
3356       case '2':
3357       case '3':
3358       case '4':
3359       case '5':
3360       case '6':
3361       case '7':
3362       case '8':
3363       case '9':
3364         fmt = 'd';
3365         break;
3366 
3367       case '0':  /* Accept different formated integers hex octal and binary. */
3368         {
3369 	  char c = *++arg;
3370           arg++;
3371 	  if (c == 'x' || c == 'X') /* Hex input.  */
3372 	    fmt = 'h';
3373 	  else if (c == 'b' || c == 'B')
3374 	    fmt = 'b';
3375 	  else if (c == '.')
3376 	    fmt = 'f';
3377 	  else
3378             {             /* Octal.  */
3379 	      arg--;
3380 	      fmt = 'o';
3381 	    }
3382 	  break;
3383         }
3384 
3385       case 'd':
3386       case 'D':
3387       case 'h':
3388       case 'H':
3389       case 'o':
3390       case 'O':
3391       case 'b':
3392       case 'B':
3393       case 'f':
3394       case 'F':
3395         {
3396 	  fmt = *arg++;
3397 	  if (*arg == '#')
3398 	    arg++;
3399         }
3400     }
3401 
3402   switch (fmt)
3403     {
3404       case 'h':
3405       case 'H':
3406         shiftvalue = 4;
3407         char_bag = "0123456789ABCDEFabcdef";
3408         break;
3409 
3410       case 'o':
3411       case 'O':
3412         shiftvalue = 3;
3413         char_bag = "01234567";
3414         break;
3415 
3416       case 'b':
3417       case 'B':
3418         shiftvalue = 1;
3419         char_bag = "01";
3420         break;
3421 
3422 /* The assembler allows for fractional constants to be created
3423    by either the 0.xxxx or the f#xxxx format
3424 
3425    i.e.   0.5 would result in 0x4000
3426 
3427    note .5 would result in the identifier .5.
3428 
3429    The assembler converts to fractional format 1.15 by the simple rule:
3430 
3431              value = (short) (finput * (1 << 15)).  */
3432 
3433       case 'f':
3434       case 'F':
3435         {
3436           float fval = 0.0;
3437           float pos = 10.0;
3438           while (1)
3439             {
3440               int c;
3441               c = *arg++;
3442 
3443               if (c >= '0' && c <= '9')
3444                 {
3445                   float digit = (c - '0') / pos;
3446                   fval = fval + digit;
3447                   pos = pos * 10.0;
3448                 }
3449               else
3450                 {
3451 	          *--arg = c;
3452                   value = (short) (fval * (1 << 15));
3453                   break;
3454                 }
3455             }
3456           *end = arg+1;
3457           return value;
3458         }
3459 
3460       case 'd':
3461       case 'D':
3462       default:
3463         {
3464           while (1)
3465             {
3466               char c;
3467               c = *arg++;
3468               if (c >= '0' && c <= '9')
3469                 value = (value * 10) + (c - '0');
3470               else
3471                 {
3472                   /* Constants that are suffixed with k|K are multiplied by 1024
3473                      This suffix is only allowed on decimal constants. */
3474                   if (c == 'k' || c == 'K')
3475                     value *= 1024;
3476                   else
3477                     *--arg = c;
3478                   break;
3479                 }
3480             }
3481           *end = arg+1;
3482           return value;
3483         }
3484     }
3485 
3486   while (not_done)
3487     {
3488       char c;
3489       c = *arg++;
3490       if (c == 0 || !strchr (char_bag, c))
3491 	{
3492           not_done = 0;
3493           *--arg = c;
3494         }
3495       else
3496         {
3497           if (c >= 'a' && c <= 'z')
3498             c = c - ('a' - '9') + 1;
3499           else if (c >= 'A' && c <= 'Z')
3500             c = c - ('A' - '9') + 1;
3501 
3502           c -= '0';
3503           value = (value << shiftvalue) + c;
3504         }
3505     }
3506   *end = arg+1;
3507   return value;
3508 }
3509 
3510 
parse_reg(Register * r,int cl,char * rt)3511 static int parse_reg (Register *r, int cl, char *rt)
3512 {
3513   r->regno = cl | (rt[1] - '0');
3514   r->flags = F_REG_NONE;
3515   return REG;
3516 }
3517 
parse_halfreg(Register * r,int cl,char * rt)3518 static int parse_halfreg (Register *r, int cl, char *rt)
3519 {
3520   r->regno = cl | (rt[1] - '0');
3521 
3522   switch (rt[3])
3523     {
3524       case 'b':
3525       case 'B':
3526 	return BYTE_DREG;
3527 
3528       case 'l':
3529       case 'L':
3530 	r->flags = F_REG_LOW;
3531 	break;
3532 
3533       case 'h':
3534       case 'H':
3535 	r->flags = F_REG_HIGH;
3536 	break;
3537     }
3538 
3539   return HALF_REG;
3540 }
3541 
3542 /* Our start state is KEYWORD as we have
3543    command keywords such as PREFETCH.  */
3544 
3545 void
set_start_state(void)3546 set_start_state (void)
3547 {
3548   BEGIN KEYWORD;
3549 }
3550 
3551 
3552 #ifndef yywrap
3553 int
yywrap()3554 yywrap ()
3555 {
3556   return 1;
3557 }
3558 #endif
3559 
3560