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