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>
43typedef int8_t flex_int8_t;
44typedef uint8_t flex_uint8_t;
45typedef int16_t flex_int16_t;
46typedef uint16_t flex_uint16_t;
47typedef int32_t flex_int32_t;
48typedef uint32_t flex_uint32_t;
49#else
50typedef signed char flex_int8_t;
51typedef short int flex_int16_t;
52typedef int flex_int32_t;
53typedef unsigned char flex_uint8_t;
54typedef unsigned short int flex_uint16_t;
55typedef 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
149typedef struct yy_buffer_state *YY_BUFFER_STATE;
150#endif
151
152#ifndef YY_TYPEDEF_YY_SIZE_T
153#define YY_TYPEDEF_YY_SIZE_T
154typedef size_t yy_size_t;
155#endif
156
157extern int yyleng;
158
159extern 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
185struct 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. */
249static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
250static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
251static 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. */
268static char yy_hold_char;
269static int yy_n_chars;		/* number of characters read into yy_ch_buf */
270int yyleng;
271
272/* Points to current character in buffer. */
273static char *yy_c_buf_p = NULL;
274static int yy_init = 0;		/* whether we need to initialize */
275static 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 */
280static int yy_did_buffer_switch_on_eof;
281
282void yyrestart ( FILE *input_file  );
283void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  );
284YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  );
285void yy_delete_buffer ( YY_BUFFER_STATE b  );
286void yy_flush_buffer ( YY_BUFFER_STATE b  );
287void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  );
288void yypop_buffer_state ( void );
289
290static void yyensure_buffer_stack ( void );
291static void yy_load_buffer_state ( void );
292static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  );
293#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
294
295YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  );
296YY_BUFFER_STATE yy_scan_string ( const char *yy_str  );
297YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  );
298
299void *yyalloc ( yy_size_t  );
300void *yyrealloc ( void *, yy_size_t  );
301void 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
328typedef flex_uint8_t YY_CHAR;
329
330FILE *yyin = NULL, *yyout = NULL;
331
332typedef int yy_state_type;
333
334extern int yylineno;
335int yylineno = 1;
336
337extern char *yytext;
338#ifdef yytext_ptr
339#undef yytext_ptr
340#endif
341#define yytext_ptr yytext
342
343static yy_state_type yy_get_previous_state ( void );
344static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  );
345static int yy_get_next_buffer ( void );
346static 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. */
361struct yy_trans_info
362	{
363	flex_int32_t yy_verify;
364	flex_int32_t yy_nxt;
365	};
366static 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
432static 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
464static 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
475static 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
542static 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
609static 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
694static 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
779static yy_state_type yy_last_accepting_state;
780static char *yy_last_accepting_cpos;
781
782extern int yy_flex_debug;
783int 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
792char *yytext;
793#line 1 "./config/bfin-lex.l"
794/* bfin-lex.l  ADI Blackfin lexer
795   Copyright (C) 2005-2022 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
817static long parse_int (char **end);
818static int parse_halfreg (Register *r, int cl, char *hr);
819static int parse_reg (Register *r, int type, char *rt);
820int 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
852static int yy_init_globals ( void );
853
854/* Accessor methods to globals.
855   These are made visible to non-reentrant scanners for convenience. */
856
857int yylex_destroy ( void );
858
859int yyget_debug ( void );
860
861void yyset_debug ( int debug_flag  );
862
863YY_EXTRA_TYPE yyget_extra ( void );
864
865void yyset_extra ( YY_EXTRA_TYPE user_defined  );
866
867FILE *yyget_in ( void );
868
869void yyset_in  ( FILE * _in_str  );
870
871FILE *yyget_out ( void );
872
873void yyset_out  ( FILE * _out_str  );
874
875			int yyget_leng ( void );
876
877char *yyget_text ( void );
878
879int yyget_lineno ( void );
880
881void 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
889extern "C" int yywrap ( void );
890#else
891extern 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
902static void yy_flex_strncpy ( char *, const char *, int );
903#endif
904
905#ifdef YY_NEED_STRLEN
906static int yy_flex_strlen ( const char * );
907#endif
908
909#ifndef YY_NO_INPUT
910#ifdef __cplusplus
911static int yyinput ( void );
912#else
913static 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
998extern 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 */
1020YY_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);
1070yy_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
1090yy_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
1101do_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
1112case 1:
1113YY_RULE_SETUP
1114#line 47 "./config/bfin-lex.l"
1115_REG.regno = REG_sftreset;  return REG;
1116	YY_BREAK
1117case 2:
1118YY_RULE_SETUP
1119#line 48 "./config/bfin-lex.l"
1120_REG.regno = REG_omode;     return REG;
1121	YY_BREAK
1122case 3:
1123YY_RULE_SETUP
1124#line 49 "./config/bfin-lex.l"
1125_REG.regno = REG_idle_req;  return REG;
1126	YY_BREAK
1127case 4:
1128YY_RULE_SETUP
1129#line 50 "./config/bfin-lex.l"
1130_REG.regno = REG_hwerrcause; return REG;
1131	YY_BREAK
1132case 5:
1133YY_RULE_SETUP
1134#line 51 "./config/bfin-lex.l"
1135_REG.regno = REG_excause;   return REG;
1136	YY_BREAK
1137case 6:
1138YY_RULE_SETUP
1139#line 52 "./config/bfin-lex.l"
1140_REG.regno = REG_emucause;  return REG;
1141	YY_BREAK
1142case 7:
1143YY_RULE_SETUP
1144#line 53 "./config/bfin-lex.l"
1145return Z;
1146	YY_BREAK
1147case 8:
1148YY_RULE_SETUP
1149#line 54 "./config/bfin-lex.l"
1150return X;
1151	YY_BREAK
1152case 9:
1153YY_RULE_SETUP
1154#line 55 "./config/bfin-lex.l"
1155yylval.value = M_W32; return MMOD;
1156	YY_BREAK
1157case 10:
1158YY_RULE_SETUP
1159#line 56 "./config/bfin-lex.l"
1160return W;
1161	YY_BREAK
1162case 11:
1163YY_RULE_SETUP
1164#line 57 "./config/bfin-lex.l"
1165return VIT_MAX;
1166	YY_BREAK
1167case 12:
1168YY_RULE_SETUP
1169#line 58 "./config/bfin-lex.l"
1170return V; /* Special: V is a statflag and a modifier.  */
1171	YY_BREAK
1172case 13:
1173YY_RULE_SETUP
1174#line 59 "./config/bfin-lex.l"
1175_REG.regno = REG_USP; return REG;
1176	YY_BREAK
1177case 14:
1178YY_RULE_SETUP
1179#line 60 "./config/bfin-lex.l"
1180return TL;
1181	YY_BREAK
1182case 15:
1183YY_RULE_SETUP
1184#line 61 "./config/bfin-lex.l"
1185return TH;
1186	YY_BREAK
1187case 16:
1188YY_RULE_SETUP
1189#line 62 "./config/bfin-lex.l"
1190yylval.value = M_TFU; return MMOD;
1191	YY_BREAK
1192case 17:
1193YY_RULE_SETUP
1194#line 63 "./config/bfin-lex.l"
1195return TESTSET;
1196	YY_BREAK
1197case 18:
1198YY_RULE_SETUP
1199#line 64 "./config/bfin-lex.l"
1200yylval.value = M_T; return MMOD;
1201	YY_BREAK
1202case 19:
1203YY_RULE_SETUP
1204#line 65 "./config/bfin-lex.l"
1205return S;
1206	YY_BREAK
1207case 20:
1208YY_RULE_SETUP
1209#line 66 "./config/bfin-lex.l"
1210_REG.regno = REG_SYSCFG; return REG;
1211	YY_BREAK
1212case 21:
1213YY_RULE_SETUP
1214#line 67 "./config/bfin-lex.l"
1215return STI;
1216	YY_BREAK
1217case 22:
1218YY_RULE_SETUP
1219#line 68 "./config/bfin-lex.l"
1220return SSYNC;
1221	YY_BREAK
1222case 23:
1223YY_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
1227case 24:
1228YY_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
1232case 25:
1233YY_RULE_SETUP
1234#line 71 "./config/bfin-lex.l"
1235_REG.regno = REG_SP; return REG;
1236	YY_BREAK
1237case 26:
1238YY_RULE_SETUP
1239#line 72 "./config/bfin-lex.l"
1240return SIGNBITS;
1241	YY_BREAK
1242case 27:
1243YY_RULE_SETUP
1244#line 73 "./config/bfin-lex.l"
1245return SIGN;
1246	YY_BREAK
1247case 28:
1248YY_RULE_SETUP
1249#line 74 "./config/bfin-lex.l"
1250_REG.regno = REG_SEQSTAT; return REG;
1251	YY_BREAK
1252case 29:
1253YY_RULE_SETUP
1254#line 75 "./config/bfin-lex.l"
1255return SEARCH;
1256	YY_BREAK
1257case 30:
1258YY_RULE_SETUP
1259#line 76 "./config/bfin-lex.l"
1260return SHIFT;
1261	YY_BREAK
1262case 31:
1263YY_RULE_SETUP
1264#line 77 "./config/bfin-lex.l"
1265return SCO;
1266	YY_BREAK
1267case 32:
1268YY_RULE_SETUP
1269#line 79 "./config/bfin-lex.l"
1270return SAA;
1271	YY_BREAK
1272case 33:
1273YY_RULE_SETUP
1274#line 80 "./config/bfin-lex.l"
1275yylval.value = M_S2RND; return MMOD;
1276	YY_BREAK
1277case 34:
1278YY_RULE_SETUP
1279#line 81 "./config/bfin-lex.l"
1280return RTX;
1281	YY_BREAK
1282case 35:
1283YY_RULE_SETUP
1284#line 82 "./config/bfin-lex.l"
1285return RTS;
1286	YY_BREAK
1287case 36:
1288YY_RULE_SETUP
1289#line 83 "./config/bfin-lex.l"
1290return RTN;
1291	YY_BREAK
1292case 37:
1293YY_RULE_SETUP
1294#line 84 "./config/bfin-lex.l"
1295return RTI;
1296	YY_BREAK
1297case 38:
1298YY_RULE_SETUP
1299#line 85 "./config/bfin-lex.l"
1300return RTE;
1301	YY_BREAK
1302case 39:
1303YY_RULE_SETUP
1304#line 86 "./config/bfin-lex.l"
1305return ROT;
1306	YY_BREAK
1307case 40:
1308YY_RULE_SETUP
1309#line 87 "./config/bfin-lex.l"
1310return RND20;
1311	YY_BREAK
1312case 41:
1313YY_RULE_SETUP
1314#line 88 "./config/bfin-lex.l"
1315return RND12;
1316	YY_BREAK
1317case 42:
1318YY_RULE_SETUP
1319#line 89 "./config/bfin-lex.l"
1320return RNDL;
1321	YY_BREAK
1322case 43:
1323YY_RULE_SETUP
1324#line 90 "./config/bfin-lex.l"
1325return RNDH;
1326	YY_BREAK
1327case 44:
1328YY_RULE_SETUP
1329#line 91 "./config/bfin-lex.l"
1330return RND;
1331	YY_BREAK
1332case 45:
1333YY_RULE_SETUP
1334#line 93 "./config/bfin-lex.l"
1335return parse_halfreg(&yylval.reg, T_REG_R, yytext);
1336	YY_BREAK
1337case 46:
1338YY_RULE_SETUP
1339#line 95 "./config/bfin-lex.l"
1340_REG.regno = REG_RETS; return REG;
1341	YY_BREAK
1342case 47:
1343YY_RULE_SETUP
1344#line 96 "./config/bfin-lex.l"
1345_REG.regno = REG_RETI; return REG;
1346	YY_BREAK
1347case 48:
1348YY_RULE_SETUP
1349#line 97 "./config/bfin-lex.l"
1350_REG.regno = REG_RETX; return REG;
1351	YY_BREAK
1352case 49:
1353YY_RULE_SETUP
1354#line 98 "./config/bfin-lex.l"
1355_REG.regno = REG_RETN; return REG;
1356	YY_BREAK
1357case 50:
1358YY_RULE_SETUP
1359#line 99 "./config/bfin-lex.l"
1360_REG.regno = REG_RETE; return REG;
1361	YY_BREAK
1362case 51:
1363YY_RULE_SETUP
1364#line 100 "./config/bfin-lex.l"
1365_REG.regno = REG_EMUDAT; return REG;
1366	YY_BREAK
1367case 52:
1368YY_RULE_SETUP
1369#line 101 "./config/bfin-lex.l"
1370return RAISE;
1371	YY_BREAK
1372case 53:
1373YY_RULE_SETUP
1374#line 103 "./config/bfin-lex.l"
1375return parse_reg (&yylval.reg, T_REG_R, yytext);
1376	YY_BREAK
1377case 54:
1378YY_RULE_SETUP
1379#line 105 "./config/bfin-lex.l"
1380return R;
1381	YY_BREAK
1382case 55:
1383YY_RULE_SETUP
1384#line 106 "./config/bfin-lex.l"
1385return PRNT;
1386	YY_BREAK
1387case 56:
1388YY_RULE_SETUP
1389#line 107 "./config/bfin-lex.l"
1390return PC;
1391	YY_BREAK
1392case 57:
1393YY_RULE_SETUP
1394#line 108 "./config/bfin-lex.l"
1395return PACK;
1396	YY_BREAK
1397case 58:
1398YY_RULE_SETUP
1399#line 110 "./config/bfin-lex.l"
1400return parse_halfreg (&yylval.reg, T_REG_P, yytext);
1401	YY_BREAK
1402case 59:
1403YY_RULE_SETUP
1404#line 111 "./config/bfin-lex.l"
1405return parse_reg (&yylval.reg, T_REG_P, yytext);
1406	YY_BREAK
1407case 60:
1408YY_RULE_SETUP
1409#line 113 "./config/bfin-lex.l"
1410return OUTC;
1411	YY_BREAK
1412case 61:
1413YY_RULE_SETUP
1414#line 114 "./config/bfin-lex.l"
1415return ONES;
1416	YY_BREAK
1417case 62:
1418YY_RULE_SETUP
1419#line 116 "./config/bfin-lex.l"
1420return NOT;
1421	YY_BREAK
1422case 63:
1423YY_RULE_SETUP
1424#line 117 "./config/bfin-lex.l"
1425return NOP;
1426	YY_BREAK
1427case 64:
1428YY_RULE_SETUP
1429#line 118 "./config/bfin-lex.l"
1430return MNOP;
1431	YY_BREAK
1432case 65:
1433YY_RULE_SETUP
1434#line 119 "./config/bfin-lex.l"
1435return NS;
1436	YY_BREAK
1437case 66:
1438YY_RULE_SETUP
1439#line 122 "./config/bfin-lex.l"
1440return MIN;
1441	YY_BREAK
1442case 67:
1443YY_RULE_SETUP
1444#line 123 "./config/bfin-lex.l"
1445return MAX;
1446	YY_BREAK
1447case 68:
1448YY_RULE_SETUP
1449#line 125 "./config/bfin-lex.l"
1450return parse_halfreg (&yylval.reg, T_REG_M, yytext);
1451	YY_BREAK
1452case 69:
1453YY_RULE_SETUP
1454#line 126 "./config/bfin-lex.l"
1455return parse_reg (&yylval.reg, T_REG_M, yytext);
1456	YY_BREAK
1457case 70:
1458YY_RULE_SETUP
1459#line 128 "./config/bfin-lex.l"
1460return M;
1461	YY_BREAK
1462case 71:
1463YY_RULE_SETUP
1464#line 129 "./config/bfin-lex.l"
1465return LT;
1466	YY_BREAK
1467case 72:
1468YY_RULE_SETUP
1469#line 130 "./config/bfin-lex.l"
1470return LSHIFT;
1471	YY_BREAK
1472case 73:
1473YY_RULE_SETUP
1474#line 131 "./config/bfin-lex.l"
1475return LSETUP;
1476	YY_BREAK
1477case 74:
1478YY_RULE_SETUP
1479#line 132 "./config/bfin-lex.l"
1480return LOOP;
1481	YY_BREAK
1482case 75:
1483YY_RULE_SETUP
1484#line 133 "./config/bfin-lex.l"
1485return LOOP_BEGIN;
1486	YY_BREAK
1487case 76:
1488YY_RULE_SETUP
1489#line 134 "./config/bfin-lex.l"
1490return LOOP_END;
1491	YY_BREAK
1492case 77:
1493YY_RULE_SETUP
1494#line 136 "./config/bfin-lex.l"
1495return LE;
1496	YY_BREAK
1497case 78:
1498YY_RULE_SETUP
1499#line 137 "./config/bfin-lex.l"
1500_REG.regno = REG_LC0; return REG;
1501	YY_BREAK
1502case 79:
1503YY_RULE_SETUP
1504#line 138 "./config/bfin-lex.l"
1505_REG.regno = REG_LT0; return REG;
1506	YY_BREAK
1507case 80:
1508YY_RULE_SETUP
1509#line 139 "./config/bfin-lex.l"
1510_REG.regno = REG_LB0; return REG;
1511	YY_BREAK
1512case 81:
1513YY_RULE_SETUP
1514#line 140 "./config/bfin-lex.l"
1515_REG.regno = REG_LC1; return REG;
1516	YY_BREAK
1517case 82:
1518YY_RULE_SETUP
1519#line 141 "./config/bfin-lex.l"
1520_REG.regno = REG_LT1; return REG;
1521	YY_BREAK
1522case 83:
1523YY_RULE_SETUP
1524#line 142 "./config/bfin-lex.l"
1525_REG.regno = REG_LB1; return REG;
1526	YY_BREAK
1527case 84:
1528YY_RULE_SETUP
1529#line 144 "./config/bfin-lex.l"
1530return parse_halfreg (&yylval.reg, T_REG_L, yytext);
1531	YY_BREAK
1532case 85:
1533YY_RULE_SETUP
1534#line 145 "./config/bfin-lex.l"
1535return parse_reg (&yylval.reg, T_REG_L, yytext);
1536	YY_BREAK
1537case 86:
1538YY_RULE_SETUP
1539#line 146 "./config/bfin-lex.l"
1540return LO;
1541	YY_BREAK
1542case 87:
1543YY_RULE_SETUP
1544#line 147 "./config/bfin-lex.l"
1545{ BEGIN 0; return JUMP_DOT_S;}
1546	YY_BREAK
1547case 88:
1548YY_RULE_SETUP
1549#line 148 "./config/bfin-lex.l"
1550{ BEGIN 0; return JUMP_DOT_L;}
1551	YY_BREAK
1552case 89:
1553YY_RULE_SETUP
1554#line 149 "./config/bfin-lex.l"
1555{ BEGIN 0; return JUMP;}
1556	YY_BREAK
1557case 90:
1558YY_RULE_SETUP
1559#line 150 "./config/bfin-lex.l"
1560{ BEGIN 0; return JUMP_DOT_L; }
1561	YY_BREAK
1562case 91:
1563YY_RULE_SETUP
1564#line 151 "./config/bfin-lex.l"
1565yylval.value = M_IU;   return MMOD;
1566	YY_BREAK
1567case 92:
1568YY_RULE_SETUP
1569#line 152 "./config/bfin-lex.l"
1570yylval.value = M_ISS2; return MMOD;
1571	YY_BREAK
1572case 93:
1573YY_RULE_SETUP
1574#line 153 "./config/bfin-lex.l"
1575yylval.value = M_IS;   return MMOD;
1576	YY_BREAK
1577case 94:
1578YY_RULE_SETUP
1579#line 154 "./config/bfin-lex.l"
1580yylval.value = M_IH;   return MMOD;
1581	YY_BREAK
1582case 95:
1583YY_RULE_SETUP
1584#line 155 "./config/bfin-lex.l"
1585return IF;
1586	YY_BREAK
1587case 96:
1588YY_RULE_SETUP
1589#line 156 "./config/bfin-lex.l"
1590return parse_halfreg (&yylval.reg, T_REG_I, yytext);
1591	YY_BREAK
1592case 97:
1593YY_RULE_SETUP
1594#line 157 "./config/bfin-lex.l"
1595return parse_reg (&yylval.reg, T_REG_I, yytext);
1596	YY_BREAK
1597case 98:
1598YY_RULE_SETUP
1599#line 158 "./config/bfin-lex.l"
1600return HLT;
1601	YY_BREAK
1602case 99:
1603YY_RULE_SETUP
1604#line 159 "./config/bfin-lex.l"
1605return HI;
1606	YY_BREAK
1607case 100:
1608YY_RULE_SETUP
1609#line 160 "./config/bfin-lex.l"
1610return GT;
1611	YY_BREAK
1612case 101:
1613YY_RULE_SETUP
1614#line 161 "./config/bfin-lex.l"
1615return GE;
1616	YY_BREAK
1617case 102:
1618YY_RULE_SETUP
1619#line 162 "./config/bfin-lex.l"
1620yylval.value = M_FU; return MMOD;
1621	YY_BREAK
1622case 103:
1623YY_RULE_SETUP
1624#line 163 "./config/bfin-lex.l"
1625_REG.regno = REG_FP; return REG;
1626	YY_BREAK
1627case 104:
1628YY_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
1632case 105:
1633YY_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
1637case 106:
1638YY_RULE_SETUP
1639#line 167 "./config/bfin-lex.l"
1640return EXTRACT;
1641	YY_BREAK
1642case 107:
1643YY_RULE_SETUP
1644#line 168 "./config/bfin-lex.l"
1645return EXPADJ;
1646	YY_BREAK
1647case 108:
1648YY_RULE_SETUP
1649#line 169 "./config/bfin-lex.l"
1650return EXCPT;
1651	YY_BREAK
1652case 109:
1653YY_RULE_SETUP
1654#line 170 "./config/bfin-lex.l"
1655return EMUEXCPT;
1656	YY_BREAK
1657case 110:
1658YY_RULE_SETUP
1659#line 171 "./config/bfin-lex.l"
1660return DIVS;
1661	YY_BREAK
1662case 111:
1663YY_RULE_SETUP
1664#line 172 "./config/bfin-lex.l"
1665return DIVQ;
1666	YY_BREAK
1667case 112:
1668YY_RULE_SETUP
1669#line 173 "./config/bfin-lex.l"
1670return DISALGNEXCPT;
1671	YY_BREAK
1672case 113:
1673YY_RULE_SETUP
1674#line 174 "./config/bfin-lex.l"
1675return DEPOSIT;
1676	YY_BREAK
1677case 114:
1678YY_RULE_SETUP
1679#line 175 "./config/bfin-lex.l"
1680return DBGHALT;
1681	YY_BREAK
1682case 115:
1683YY_RULE_SETUP
1684#line 176 "./config/bfin-lex.l"
1685return DBGCMPLX;
1686	YY_BREAK
1687case 116:
1688YY_RULE_SETUP
1689#line 177 "./config/bfin-lex.l"
1690return DBGAL;
1691	YY_BREAK
1692case 117:
1693YY_RULE_SETUP
1694#line 178 "./config/bfin-lex.l"
1695return DBGAH;
1696	YY_BREAK
1697case 118:
1698YY_RULE_SETUP
1699#line 179 "./config/bfin-lex.l"
1700return DBGA;
1701	YY_BREAK
1702case 119:
1703YY_RULE_SETUP
1704#line 180 "./config/bfin-lex.l"
1705return DBG;
1706	YY_BREAK
1707case 120:
1708YY_RULE_SETUP
1709#line 181 "./config/bfin-lex.l"
1710{ _REG.regno = REG_CYCLES2; return REG; }
1711	YY_BREAK
1712case 121:
1713YY_RULE_SETUP
1714#line 182 "./config/bfin-lex.l"
1715{ _REG.regno = REG_CYCLES; return REG; }
1716	YY_BREAK
1717case 122:
1718YY_RULE_SETUP
1719#line 183 "./config/bfin-lex.l"
1720return CSYNC;
1721	YY_BREAK
1722case 123:
1723YY_RULE_SETUP
1724#line 184 "./config/bfin-lex.l"
1725return CO;
1726	YY_BREAK
1727case 124:
1728YY_RULE_SETUP
1729#line 185 "./config/bfin-lex.l"
1730return CLI;
1731	YY_BREAK
1732case 125:
1733YY_RULE_SETUP
1734#line 187 "./config/bfin-lex.l"
1735_REG.regno = REG_CC; return CCREG;
1736	YY_BREAK
1737case 126:
1738YY_RULE_SETUP
1739#line 188 "./config/bfin-lex.l"
1740{ BEGIN 0; return CALL;}
1741	YY_BREAK
1742case 127:
1743YY_RULE_SETUP
1744#line 189 "./config/bfin-lex.l"
1745{ BEGIN 0; return CALL;}
1746	YY_BREAK
1747case 128:
1748YY_RULE_SETUP
1749#line 190 "./config/bfin-lex.l"
1750return BYTEUNPACK;
1751	YY_BREAK
1752case 129:
1753YY_RULE_SETUP
1754#line 191 "./config/bfin-lex.l"
1755return BYTEPACK;
1756	YY_BREAK
1757case 130:
1758YY_RULE_SETUP
1759#line 192 "./config/bfin-lex.l"
1760return BYTEOP16M;
1761	YY_BREAK
1762case 131:
1763YY_RULE_SETUP
1764#line 193 "./config/bfin-lex.l"
1765return BYTEOP16P;
1766	YY_BREAK
1767case 132:
1768YY_RULE_SETUP
1769#line 194 "./config/bfin-lex.l"
1770return BYTEOP3P;
1771	YY_BREAK
1772case 133:
1773YY_RULE_SETUP
1774#line 195 "./config/bfin-lex.l"
1775return BYTEOP2P;
1776	YY_BREAK
1777case 134:
1778YY_RULE_SETUP
1779#line 196 "./config/bfin-lex.l"
1780return BYTEOP1P;
1781	YY_BREAK
1782case 135:
1783YY_RULE_SETUP
1784#line 197 "./config/bfin-lex.l"
1785return BY;
1786	YY_BREAK
1787case 136:
1788YY_RULE_SETUP
1789#line 198 "./config/bfin-lex.l"
1790return BXORSHIFT;
1791	YY_BREAK
1792case 137:
1793YY_RULE_SETUP
1794#line 199 "./config/bfin-lex.l"
1795return BXOR;
1796	YY_BREAK
1797case 138:
1798YY_RULE_SETUP
1799#line 201 "./config/bfin-lex.l"
1800return BREV;
1801	YY_BREAK
1802case 139:
1803YY_RULE_SETUP
1804#line 202 "./config/bfin-lex.l"
1805return BP;
1806	YY_BREAK
1807case 140:
1808YY_RULE_SETUP
1809#line 203 "./config/bfin-lex.l"
1810return BITTST;
1811	YY_BREAK
1812case 141:
1813YY_RULE_SETUP
1814#line 204 "./config/bfin-lex.l"
1815return BITTGL;
1816	YY_BREAK
1817case 142:
1818YY_RULE_SETUP
1819#line 205 "./config/bfin-lex.l"
1820return BITSET;
1821	YY_BREAK
1822case 143:
1823YY_RULE_SETUP
1824#line 206 "./config/bfin-lex.l"
1825return BITMUX;
1826	YY_BREAK
1827case 144:
1828YY_RULE_SETUP
1829#line 207 "./config/bfin-lex.l"
1830return BITCLR;
1831	YY_BREAK
1832case 145:
1833YY_RULE_SETUP
1834#line 208 "./config/bfin-lex.l"
1835return parse_halfreg (&yylval.reg, T_REG_B, yytext);
1836	YY_BREAK
1837case 146:
1838YY_RULE_SETUP
1839#line 209 "./config/bfin-lex.l"
1840return parse_reg (&yylval.reg, T_REG_B, yytext);
1841	YY_BREAK
1842case 147:
1843YY_RULE_SETUP
1844#line 210 "./config/bfin-lex.l"
1845return B;
1846	YY_BREAK
1847case 148:
1848YY_RULE_SETUP
1849#line 211 "./config/bfin-lex.l"
1850_REG.regno = S_AZ;   return STATUS_REG;
1851	YY_BREAK
1852case 149:
1853YY_RULE_SETUP
1854#line 212 "./config/bfin-lex.l"
1855_REG.regno = S_AN;   return STATUS_REG;
1856	YY_BREAK
1857case 150:
1858YY_RULE_SETUP
1859#line 213 "./config/bfin-lex.l"
1860_REG.regno = S_AC0_COPY; return STATUS_REG;
1861	YY_BREAK
1862case 151:
1863YY_RULE_SETUP
1864#line 214 "./config/bfin-lex.l"
1865_REG.regno = S_V_COPY;   return STATUS_REG;
1866	YY_BREAK
1867case 152:
1868YY_RULE_SETUP
1869#line 215 "./config/bfin-lex.l"
1870_REG.regno = S_AQ;   return STATUS_REG;
1871	YY_BREAK
1872case 153:
1873YY_RULE_SETUP
1874#line 216 "./config/bfin-lex.l"
1875_REG.regno = S_AC0;  return STATUS_REG;
1876	YY_BREAK
1877case 154:
1878YY_RULE_SETUP
1879#line 217 "./config/bfin-lex.l"
1880_REG.regno = S_AC1;  return STATUS_REG;
1881	YY_BREAK
1882case 155:
1883YY_RULE_SETUP
1884#line 218 "./config/bfin-lex.l"
1885_REG.regno = S_AV0;  return STATUS_REG;
1886	YY_BREAK
1887case 156:
1888YY_RULE_SETUP
1889#line 219 "./config/bfin-lex.l"
1890_REG.regno = S_AV0S; return STATUS_REG;
1891	YY_BREAK
1892case 157:
1893YY_RULE_SETUP
1894#line 220 "./config/bfin-lex.l"
1895_REG.regno = S_AV1;  return STATUS_REG;
1896	YY_BREAK
1897case 158:
1898YY_RULE_SETUP
1899#line 221 "./config/bfin-lex.l"
1900_REG.regno = S_AV1S; return STATUS_REG;
1901	YY_BREAK
1902case 159:
1903YY_RULE_SETUP
1904#line 222 "./config/bfin-lex.l"
1905_REG.regno = S_VS;   return STATUS_REG;
1906	YY_BREAK
1907case 160:
1908YY_RULE_SETUP
1909#line 223 "./config/bfin-lex.l"
1910_REG.regno = S_RND_MOD; return STATUS_REG;
1911	YY_BREAK
1912case 161:
1913YY_RULE_SETUP
1914#line 226 "./config/bfin-lex.l"
1915_REG.regno = REG_ASTAT; return REG;
1916	YY_BREAK
1917case 162:
1918YY_RULE_SETUP
1919#line 227 "./config/bfin-lex.l"
1920return ASHIFT;
1921	YY_BREAK
1922case 163:
1923YY_RULE_SETUP
1924#line 228 "./config/bfin-lex.l"
1925return ASL;
1926	YY_BREAK
1927case 164:
1928YY_RULE_SETUP
1929#line 229 "./config/bfin-lex.l"
1930return ASR;
1931	YY_BREAK
1932case 165:
1933YY_RULE_SETUP
1934#line 230 "./config/bfin-lex.l"
1935return ALIGN8;
1936	YY_BREAK
1937case 166:
1938YY_RULE_SETUP
1939#line 231 "./config/bfin-lex.l"
1940return ALIGN16;
1941	YY_BREAK
1942case 167:
1943YY_RULE_SETUP
1944#line 232 "./config/bfin-lex.l"
1945return ALIGN24;
1946	YY_BREAK
1947case 168:
1948YY_RULE_SETUP
1949#line 233 "./config/bfin-lex.l"
1950return A_ONE_DOT_L;
1951	YY_BREAK
1952case 169:
1953YY_RULE_SETUP
1954#line 234 "./config/bfin-lex.l"
1955return A_ZERO_DOT_L;
1956	YY_BREAK
1957case 170:
1958YY_RULE_SETUP
1959#line 235 "./config/bfin-lex.l"
1960return A_ONE_DOT_H;
1961	YY_BREAK
1962case 171:
1963YY_RULE_SETUP
1964#line 236 "./config/bfin-lex.l"
1965return A_ZERO_DOT_H;
1966	YY_BREAK
1967case 172:
1968YY_RULE_SETUP
1969#line 237 "./config/bfin-lex.l"
1970return ABS;
1971	YY_BREAK
1972case 173:
1973YY_RULE_SETUP
1974#line 238 "./config/bfin-lex.l"
1975return ABORT;
1976	YY_BREAK
1977case 174:
1978YY_RULE_SETUP
1979#line 239 "./config/bfin-lex.l"
1980_REG.regno = REG_A1x; return REG;
1981	YY_BREAK
1982case 175:
1983YY_RULE_SETUP
1984#line 240 "./config/bfin-lex.l"
1985_REG.regno = REG_A1w; return REG;
1986	YY_BREAK
1987case 176:
1988YY_RULE_SETUP
1989#line 241 "./config/bfin-lex.l"
1990_REG.regno = REG_A1;  return REG_A_DOUBLE_ONE;
1991	YY_BREAK
1992case 177:
1993YY_RULE_SETUP
1994#line 242 "./config/bfin-lex.l"
1995_REG.regno = REG_A0x; return REG;
1996	YY_BREAK
1997case 178:
1998YY_RULE_SETUP
1999#line 243 "./config/bfin-lex.l"
2000_REG.regno = REG_A0w; return REG;
2001	YY_BREAK
2002case 179:
2003YY_RULE_SETUP
2004#line 244 "./config/bfin-lex.l"
2005_REG.regno = REG_A0;  return REG_A_DOUBLE_ZERO;
2006	YY_BREAK
2007case 180:
2008YY_RULE_SETUP
2009#line 245 "./config/bfin-lex.l"
2010return GOT;
2011	YY_BREAK
2012case 181:
2013YY_RULE_SETUP
2014#line 246 "./config/bfin-lex.l"
2015return GOT17M4;
2016	YY_BREAK
2017case 182:
2018YY_RULE_SETUP
2019#line 247 "./config/bfin-lex.l"
2020return FUNCDESC_GOT17M4;
2021	YY_BREAK
2022case 183:
2023YY_RULE_SETUP
2024#line 248 "./config/bfin-lex.l"
2025return PLTPC;
2026	YY_BREAK
2027case 184:
2028YY_RULE_SETUP
2029#line 251 "./config/bfin-lex.l"
2030return TILDA;
2031	YY_BREAK
2032case 185:
2033YY_RULE_SETUP
2034#line 252 "./config/bfin-lex.l"
2035return _BAR_ASSIGN;
2036	YY_BREAK
2037case 186:
2038YY_RULE_SETUP
2039#line 253 "./config/bfin-lex.l"
2040return BAR;
2041	YY_BREAK
2042case 187:
2043YY_RULE_SETUP
2044#line 254 "./config/bfin-lex.l"
2045return _CARET_ASSIGN;
2046	YY_BREAK
2047case 188:
2048YY_RULE_SETUP
2049#line 255 "./config/bfin-lex.l"
2050return CARET;
2051	YY_BREAK
2052case 189:
2053YY_RULE_SETUP
2054#line 256 "./config/bfin-lex.l"
2055return RBRACK;
2056	YY_BREAK
2057case 190:
2058YY_RULE_SETUP
2059#line 257 "./config/bfin-lex.l"
2060return LBRACK;
2061	YY_BREAK
2062case 191:
2063YY_RULE_SETUP
2064#line 258 "./config/bfin-lex.l"
2065return _GREATER_GREATER_GREATER_THAN_ASSIGN;
2066	YY_BREAK
2067case 192:
2068YY_RULE_SETUP
2069#line 259 "./config/bfin-lex.l"
2070return _GREATER_GREATER_ASSIGN;
2071	YY_BREAK
2072case 193:
2073YY_RULE_SETUP
2074#line 260 "./config/bfin-lex.l"
2075return _GREATER_GREATER_GREATER;
2076	YY_BREAK
2077case 194:
2078YY_RULE_SETUP
2079#line 261 "./config/bfin-lex.l"
2080return GREATER_GREATER;
2081	YY_BREAK
2082case 195:
2083YY_RULE_SETUP
2084#line 262 "./config/bfin-lex.l"
2085return _ASSIGN_ASSIGN;
2086	YY_BREAK
2087case 196:
2088YY_RULE_SETUP
2089#line 263 "./config/bfin-lex.l"
2090return ASSIGN;
2091	YY_BREAK
2092case 197:
2093YY_RULE_SETUP
2094#line 264 "./config/bfin-lex.l"
2095return _LESS_THAN_ASSIGN;
2096	YY_BREAK
2097case 198:
2098YY_RULE_SETUP
2099#line 265 "./config/bfin-lex.l"
2100return _LESS_LESS_ASSIGN;
2101	YY_BREAK
2102case 199:
2103YY_RULE_SETUP
2104#line 266 "./config/bfin-lex.l"
2105return LESS_LESS;
2106	YY_BREAK
2107case 200:
2108YY_RULE_SETUP
2109#line 267 "./config/bfin-lex.l"
2110return LESS_THAN;
2111	YY_BREAK
2112case 201:
2113YY_RULE_SETUP
2114#line 268 "./config/bfin-lex.l"
2115BEGIN(FLAGS); return LPAREN;
2116	YY_BREAK
2117case 202:
2118YY_RULE_SETUP
2119#line 269 "./config/bfin-lex.l"
2120BEGIN(INITIAL); return RPAREN;
2121	YY_BREAK
2122case 203:
2123YY_RULE_SETUP
2124#line 270 "./config/bfin-lex.l"
2125return COLON;
2126	YY_BREAK
2127case 204:
2128YY_RULE_SETUP
2129#line 271 "./config/bfin-lex.l"
2130return SLASH;
2131	YY_BREAK
2132case 205:
2133YY_RULE_SETUP
2134#line 272 "./config/bfin-lex.l"
2135return _MINUS_ASSIGN;
2136	YY_BREAK
2137case 206:
2138YY_RULE_SETUP
2139#line 273 "./config/bfin-lex.l"
2140return _PLUS_BAR_PLUS;
2141	YY_BREAK
2142case 207:
2143YY_RULE_SETUP
2144#line 274 "./config/bfin-lex.l"
2145return _MINUS_BAR_PLUS;
2146	YY_BREAK
2147case 208:
2148YY_RULE_SETUP
2149#line 275 "./config/bfin-lex.l"
2150return _PLUS_BAR_MINUS;
2151	YY_BREAK
2152case 209:
2153YY_RULE_SETUP
2154#line 276 "./config/bfin-lex.l"
2155return _MINUS_BAR_MINUS;
2156	YY_BREAK
2157case 210:
2158YY_RULE_SETUP
2159#line 277 "./config/bfin-lex.l"
2160return _MINUS_MINUS;
2161	YY_BREAK
2162case 211:
2163YY_RULE_SETUP
2164#line 278 "./config/bfin-lex.l"
2165return MINUS;
2166	YY_BREAK
2167case 212:
2168YY_RULE_SETUP
2169#line 279 "./config/bfin-lex.l"
2170return COMMA;
2171	YY_BREAK
2172case 213:
2173YY_RULE_SETUP
2174#line 280 "./config/bfin-lex.l"
2175return _PLUS_ASSIGN;
2176	YY_BREAK
2177case 214:
2178YY_RULE_SETUP
2179#line 281 "./config/bfin-lex.l"
2180return _PLUS_PLUS;
2181	YY_BREAK
2182case 215:
2183YY_RULE_SETUP
2184#line 282 "./config/bfin-lex.l"
2185return PLUS;
2186	YY_BREAK
2187case 216:
2188YY_RULE_SETUP
2189#line 283 "./config/bfin-lex.l"
2190return _STAR_ASSIGN;
2191	YY_BREAK
2192case 217:
2193YY_RULE_SETUP
2194#line 284 "./config/bfin-lex.l"
2195return STAR;
2196	YY_BREAK
2197case 218:
2198YY_RULE_SETUP
2199#line 285 "./config/bfin-lex.l"
2200return _AMPERSAND_ASSIGN;
2201	YY_BREAK
2202case 219:
2203YY_RULE_SETUP
2204#line 286 "./config/bfin-lex.l"
2205return AMPERSAND;
2206	YY_BREAK
2207case 220:
2208YY_RULE_SETUP
2209#line 287 "./config/bfin-lex.l"
2210return PERCENT;
2211	YY_BREAK
2212case 221:
2213YY_RULE_SETUP
2214#line 288 "./config/bfin-lex.l"
2215return BANG;
2216	YY_BREAK
2217case 222:
2218YY_RULE_SETUP
2219#line 289 "./config/bfin-lex.l"
2220return SEMICOLON;
2221	YY_BREAK
2222case 223:
2223YY_RULE_SETUP
2224#line 290 "./config/bfin-lex.l"
2225return _ASSIGN_BANG;
2226	YY_BREAK
2227case 224:
2228YY_RULE_SETUP
2229#line 291 "./config/bfin-lex.l"
2230return DOUBLE_BAR;
2231	YY_BREAK
2232case 225:
2233YY_RULE_SETUP
2234#line 292 "./config/bfin-lex.l"
2235return AT;
2236	YY_BREAK
2237case 226:
2238YY_RULE_SETUP
2239#line 293 "./config/bfin-lex.l"
2240return PREFETCH;
2241	YY_BREAK
2242case 227:
2243YY_RULE_SETUP
2244#line 294 "./config/bfin-lex.l"
2245return UNLINK;
2246	YY_BREAK
2247case 228:
2248YY_RULE_SETUP
2249#line 295 "./config/bfin-lex.l"
2250return LINK;
2251	YY_BREAK
2252case 229:
2253YY_RULE_SETUP
2254#line 296 "./config/bfin-lex.l"
2255return IDLE;
2256	YY_BREAK
2257case 230:
2258YY_RULE_SETUP
2259#line 297 "./config/bfin-lex.l"
2260return IFLUSH;
2261	YY_BREAK
2262case 231:
2263YY_RULE_SETUP
2264#line 298 "./config/bfin-lex.l"
2265return FLUSHINV;
2266	YY_BREAK
2267case 232:
2268YY_RULE_SETUP
2269#line 299 "./config/bfin-lex.l"
2270return FLUSH;
2271	YY_BREAK
2272case 233:
2273YY_RULE_SETUP
2274#line 300 "./config/bfin-lex.l"
2275{
2276    yylval.value = parse_int (&yytext);
2277    return NUMBER;
2278  }
2279	YY_BREAK
2280case 234:
2281YY_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
2289case 235:
2290YY_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 (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 (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
2322case 236:
2323/* rule 236 can match eol */
2324YY_RULE_SETUP
2325#line 338 "./config/bfin-lex.l"
2326;
2327	YY_BREAK
2328case 237:
2329YY_RULE_SETUP
2330#line 339 "./config/bfin-lex.l"
2331;
2332	YY_BREAK
2333case 238:
2334YY_RULE_SETUP
2335#line 340 "./config/bfin-lex.l"
2336return yytext[0];
2337	YY_BREAK
2338case 239:
2339YY_RULE_SETUP
2340#line 341 "./config/bfin-lex.l"
2341ECHO;
2342	YY_BREAK
2343#line 2343 "config/bfin-lex.c"
2344case YY_STATE_EOF(INITIAL):
2345case YY_STATE_EOF(KEYWORD):
2346case 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 */
2486static 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
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 */
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
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
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 */
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 */
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
2847static 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 */
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 */
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 */
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 */
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 */
2965void 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 */
2995void 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 */
3014static 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 */
3063YY_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 */
3100YY_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 */
3113YY_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
3147static 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 */
3175int yyget_lineno  (void)
3176{
3177
3178    return yylineno;
3179}
3180
3181/** Get the input stream.
3182 *
3183 */
3184FILE *yyget_in  (void)
3185{
3186        return yyin;
3187}
3188
3189/** Get the output stream.
3190 *
3191 */
3192FILE *yyget_out  (void)
3193{
3194        return yyout;
3195}
3196
3197/** Get the length of the current token.
3198 *
3199 */
3200int yyget_leng  (void)
3201{
3202        return yyleng;
3203}
3204
3205/** Get the current token.
3206 *
3207 */
3208
3209char *yyget_text  (void)
3210{
3211        return yytext;
3212}
3213
3214/** Set the current line number.
3215 * @param _line_number line number
3216 *
3217 */
3218void 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 */
3230void yyset_in (FILE *  _in_str )
3231{
3232        yyin = _in_str ;
3233}
3234
3235void yyset_out (FILE *  _out_str )
3236{
3237        yyout = _out_str ;
3238}
3239
3240int yyget_debug  (void)
3241{
3242        return yy_flex_debug;
3243}
3244
3245void yyset_debug (int  _bdebug )
3246{
3247        yy_flex_debug = _bdebug ;
3248}
3249
3250static 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. */
3279int 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
3305static 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
3315static 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
3325void *yyalloc (yy_size_t  size )
3326{
3327			return malloc(size);
3328}
3329
3330void *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
3343void 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
3352static 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
3522static 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
3529static 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
3556void
3557set_start_state (void)
3558{
3559  BEGIN KEYWORD;
3560}
3561
3562