]> oss.titaniummirror.com Git - msp430-binutils.git/blobdiff - gas/bfin-lex.c
Imported binutils-2.20
[msp430-binutils.git] / gas / bfin-lex.c
index 0490ade6ed8f2f13d32161e24a0a90f9c2d27bbb..f6d2f418ccd5c9874bf778d3959ab61b6fa0e51b 100644 (file)
@@ -8,7 +8,7 @@
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 33
+#define YY_FLEX_SUBMINOR_VERSION 35
 #if YY_FLEX_SUBMINOR_VERSION > 0
 #define FLEX_BETA
 #endif
@@ -30,7 +30,7 @@
 
 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
 
-#if __STDC_VERSION__ >= 199901L
+#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
 
 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
  * if you want the limit (max/min) macros for int types. 
@@ -93,11 +93,12 @@ typedef unsigned int flex_uint32_t;
 
 #else  /* ! __cplusplus */
 
-#if __STDC__
+/* C99 requires __STDC__ to be defined as 1. */
+#if defined (__STDC__)
 
 #define YY_USE_CONST
 
-#endif /* __STDC__ */
+#endif /* defined (__STDC__) */
 #endif /* ! __cplusplus */
 
 #ifdef YY_USE_CONST
@@ -151,7 +152,12 @@ typedef unsigned int flex_uint32_t;
 typedef struct yy_buffer_state *YY_BUFFER_STATE;
 #endif
 
-extern int yyleng;
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
+extern yy_size_t yyleng;
 
 extern FILE *yyin, *yyout;
 
@@ -177,16 +183,6 @@ extern FILE *yyin, *yyout;
 
 #define unput(c) yyunput( c, (yytext_ptr)  )
 
-/* The following is because we cannot portably get our hands on size_t
- * (without autoconf's help, which isn't available because we want
- * flex-generated scanners to compile on their own).
- */
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef unsigned int yy_size_t;
-#endif
-
 #ifndef YY_STRUCT_YY_BUFFER_STATE
 #define YY_STRUCT_YY_BUFFER_STATE
 struct yy_buffer_state
@@ -204,7 +200,7 @@ struct yy_buffer_state
        /* Number of characters read into yy_ch_buf, not including EOB
         * characters.
         */
-       int yy_n_chars;
+       yy_size_t yy_n_chars;
 
        /* Whether we "own" the buffer - i.e., we know we created it,
         * and can realloc() it to grow it, and should free() it to
@@ -274,8 +270,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
 
 /* yy_hold_char holds the character lost when yytext is formed. */
 static char yy_hold_char;
-static int yy_n_chars;         /* number of characters read into yy_ch_buf */
-int yyleng;
+static yy_size_t yy_n_chars;           /* number of characters read into yy_ch_buf */
+yy_size_t yyleng;
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = (char *) 0;
@@ -303,7 +299,7 @@ static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
 
 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size  );
 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len  );
+YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,yy_size_t len  );
 
 void *yyalloc (yy_size_t  );
 void *yyrealloc (void *,yy_size_t  );
@@ -363,8 +359,8 @@ static void yy_fatal_error (yyconst char msg[]  );
        *yy_cp = '\0'; \
        (yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 238
-#define YY_END_OF_BUFFER 239
+#define YY_NUM_RULES 237
+#define YY_END_OF_BUFFER 238
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -372,69 +368,69 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[559] =
+static yyconst flex_int16_t yy_accept[555] =
     {   0,
-        0,    0,    0,    0,  239,  237,  235,  235,  220,  233,
-      219,  218,  200,  201,  216,  214,  211,  210,  203,  232,
-      232,  202,  221,  199,  195,  237,  224,  233,  148,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,   70,  233,
-      233,  233,   54,   19,   18,  233,   12,   10,    8,    7,
-      189,  188,  187,  233,  185,  183,  233,  233,  233,  233,
-      233,  233,  217,  215,  213,  212,    0,  209,  204,    0,
-        0,    0,  232,  234,    0,  232,  234,  198,  196,  222,
-      194,  193,  178,  175,  233,  233,  233,  150,  151,  233,
-      233,  149,    0,  147,  233,  140,  233,  233,  136,  233,
-
-      125,  233,  123,  233,  233,  233,  233,  233,  233,  233,
-      103,  102,  101,  233,  100,   99,  233,  233,   97,  233,
-       95,   94,   93,   91,  233,   85,  233,  233,   77,   86,
-      233,   71,   69,  233,  233,  233,  233,   65,  233,  233,
-      233,   59,  233,   56,  233,  233,   53,  233,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  233,   25,
-      233,  233,  233,  233,  233,   15,   14,  233,  233,  159,
-      233,  186,  233,  184,  223,  233,  233,   95,  233,  233,
-      233,  205,  207,  206,  208,    0,    0,  232,  232,  232,
-      232,  197,  191,  192,  233,  233,  171,  152,  153,  233,
-
-      233,  162,  163,  233,  154,  156,  232,  233,  233,  233,
-      233,  233,  233,  124,  233,  233,  119,  233,  233,  233,
-      233,  233,  233,  233,  233,  233,  179,   98,  233,  233,
-      233,  233,  233,  233,   80,   83,   78,   81,  233,  233,
-      233,   79,   82,  233,   67,   66,  233,   63,   62,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,  233,   44,
-       39,   38,   37,   36,   35,   34,  233,   32,   31,  233,
-      233,  233,  233,  233,  233,  233,   21,  233,  233,   16,
-       13,  233,    9,  233,  233,  233,  233,  233,  233,  233,
-      236,  190,  170,  168,  177,  176,  169,  167,  174,  173,
-
-      233,  233,  233,  155,  157,  146,  233,  233,  233,  233,
-      139,  138,  233,  127,  233,  233,  118,  233,  233,  233,
-      233,  111,  110,  233,  233,  233,  233,  233,  233,  233,
-      105,  104,  233,  233,  233,   96,  233,   92,   89,   84,
-       74,  233,  233,   68,   64,  233,   61,   60,   58,   57,
-      233,   55,   45,  233,   50,   47,   49,   46,   48,  233,
-      233,   43,   42,  233,  233,  233,  233,  233,   27,   24,
-       23,  233,  233,  233,  233,  233,  233,  228,  233,  227,
-      233,  233,  233,  233,  160,  233,  233,  233,  233,  233,
-      233,  233,  233,  233,  233,  122,  233,  117,  116,  233,
-
-      233,  233,  233,  233,  233,  233,  233,  108,  233,  233,
-      233,  233,  233,  233,  233,  233,  233,  233,    2,  182,
-       52,   41,   40,   33,  233,  233,  233,   30,  233,   22,
-      233,  233,  233,  172,  231,  233,  233,  233,  233,  233,
-      164,  161,  145,  144,  143,  142,  141,  233,  233,  233,
-      233,  126,  121,  233,  233,  233,  233,  233,   51,  233,
-      233,  107,  233,  233,  233,  233,  233,   88,   87,   90,
-      233,  233,   73,   72,   29,  233,  233,  233,   20,  233,
-      233,  233,  229,  233,  226,  165,  166,  233,  233,  233,
-      233,  233,  233,  120,  233,  114,  113,  233,  233,  233,
-
-        5,  106,  233,  180,  233,  233,  233,  233,   28,  233,
-      233,   17,   11,  233,  233,  233,  233,  135,  133,  134,
-      132,  129,  233,  115,  233,    6,  109,  233,  233,    3,
-      233,   76,    1,   26,  230,  225,  137,  130,  131,  233,
-      233,  233,  233,  233,  128,  233,  233,    4,   75,  233,
-      233,  112,  233,  233,  233,  233,  181,    0
+        0,    0,    0,    0,  238,  236,  234,  234,  219,  232,
+      218,  217,  199,  200,  215,  213,  210,  209,  202,  231,
+      231,  201,  220,  198,  194,  236,  223,  232,  148,  232,
+      232,  232,  232,  232,  232,  232,  232,  232,   70,  232,
+      232,  232,   54,   19,   18,  232,   12,   10,    8,    7,
+      188,  187,  186,  232,  184,  182,  232,  232,  232,  232,
+      232,  232,  216,  214,  212,  211,    0,  208,  203,    0,
+        0,    0,  231,  233,    0,  197,  195,  221,  193,  192,
+      177,  174,  232,  232,  232,  150,  151,  232,  232,  149,
+        0,  147,  232,  140,  232,  232,  136,  232,  125,  232,
+
+      123,  232,  232,  232,  232,  232,  232,  232,  103,  102,
+      101,  232,  100,   99,  232,  232,   97,  232,   95,   94,
+       93,   91,  232,   85,  232,  232,   77,   86,  232,   71,
+       69,  232,  232,  232,  232,   65,  232,  232,  232,   59,
+      232,   56,  232,  232,   53,  232,  232,  232,  232,  232,
+      232,  232,  232,  232,  232,  232,  232,   25,  232,  232,
+      232,  232,  232,   15,   14,  232,  232,  158,  232,  185,
+      232,  183,  222,  232,  232,   95,  232,  232,  232,  204,
+      206,  205,  207,    0,    0,  231,  231,  196,  190,  191,
+      232,  232,  170,  152,  153,  232,  232,  161,  162,  232,
+
+      154,  156,  231,  232,  232,  232,  232,  232,  232,  124,
+      232,  232,  119,  232,  232,  232,  232,  232,  232,  232,
+      232,  232,  178,   98,  232,  232,  232,  232,  232,  232,
+       80,   83,   78,   81,  232,  232,  232,   79,   82,  232,
+       67,   66,  232,   63,   62,  232,  232,  232,  232,  232,
+      232,  232,  232,  232,  232,   44,   39,   38,   37,   36,
+       35,   34,  232,   32,   31,  232,  232,  232,  232,  232,
+      232,  232,   21,  232,  232,   16,   13,  232,    9,  232,
+      232,  232,  232,  232,  232,  232,  235,  189,  169,  167,
+      176,  175,  168,  166,  173,  172,  232,  232,  232,  155,
+
+      157,  146,  232,  232,  232,  232,  139,  138,  232,  127,
+      232,  232,  118,  232,  232,  232,  232,  111,  110,  232,
+      232,  232,  232,  232,  232,  232,  105,  104,  232,  232,
+      232,   96,  232,   92,   89,   84,   74,  232,  232,   68,
+       64,  232,   61,   60,   58,   57,  232,   55,   45,  232,
+       50,   47,   49,   46,   48,  232,  232,   43,   42,  232,
+      232,  232,  232,  232,   27,   24,   23,  232,  232,  232,
+      232,  232,  232,  227,  232,  226,  232,  232,  232,  232,
+      159,  232,  232,  232,  232,  232,  232,  232,  232,  232,
+      232,  122,  232,  117,  116,  232,  232,  232,  232,  232,
+
+      232,  232,  232,  108,  232,  232,  232,  232,  232,  232,
+      232,  232,  232,  232,    2,  181,   52,   41,   40,   33,
+      232,  232,  232,   30,  232,   22,  232,  232,  232,  171,
+      230,  232,  232,  232,  232,  232,  163,  160,  145,  144,
+      143,  142,  141,  232,  232,  232,  232,  126,  121,  232,
+      232,  232,  232,  232,   51,  232,  232,  107,  232,  232,
+      232,  232,  232,   88,   87,   90,  232,  232,   73,   72,
+       29,  232,  232,  232,   20,  232,  232,  232,  228,  232,
+      225,  164,  165,  232,  232,  232,  232,  232,  232,  120,
+      232,  114,  113,  232,  232,  232,    5,  106,  232,  179,
+
+      232,  232,  232,  232,   28,  232,  232,   17,   11,  232,
+      232,  232,  232,  135,  133,  134,  132,  129,  232,  115,
+      232,    6,  109,  232,  232,    3,  232,   76,    1,   26,
+      229,  224,  137,  130,  131,  232,  232,  232,  232,  232,
+      128,  232,  232,    4,   75,  232,  232,  112,  232,  232,
+      232,  232,  180,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -472,147 +468,145 @@ static yyconst flex_int32_t yy_ec[256] =
 static yyconst flex_int32_t yy_meta[70] =
     {   0,
         1,    1,    2,    1,    1,    3,    1,    1,    1,    1,
-        1,    1,    1,    1,    3,    1,    4,    4,    4,    4,
-        4,    4,    4,    4,    4,    4,    1,    1,    1,    1,
-        1,    1,    5,    4,    5,    5,    5,    4,    3,    3,
+        1,    1,    1,    1,    4,    1,    5,    5,    5,    5,
+        5,    5,    5,    5,    5,    5,    1,    1,    1,    1,
+        1,    1,    6,    5,    6,    6,    6,    5,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    3,    3,    3,    3,    1,    1,
-        1,    3,    5,    4,    3,    3,    3,    1,    1
+        3,    3,    3,    3,    3,    4,    3,    3,    1,    1,
+        1,    3,    6,    5,    3,    3,    3,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[565] =
+static yyconst flex_int16_t yy_base[560] =
     {   0,
-        0,    0,   32,   33,  814,  815,  815,  815,  815,    0,
-      815,  783,  815,  815,  782,   60,  815,   61,  800,  113,
-       44,  815,  815,   54,   75,  779,  815,  161,  221,   59,
-       84,   42,   92,  105,  109,  148,  756,  271,  141,   48,
-      110,  322,  372,  421,  153,  757,   60,  787,    0,    0,
-      815,  815,  776,  741,   58,  815,  141,   64,  763,   43,
-       61,    0,  815,  815,  815,  815,  105,  815,  815,  129,
-      792,  210,  225,  235,  472,  275,  815,  772,  815,  815,
-      815,  145,  786,  785,  748,  163,  757,    0,    0,  263,
-      185,    0,    0,  782,  131,    0,  759,   97,  154,  751,
-
-        0,  753,    0,  736,  757,  752,  742,   69,  736,  279,
-      773,  741,    0,  156,    0,    0,  157,  749,  770,  740,
-        0,    0,  732,    0,  737,  766,  196,  199,    0,  153,
-      226,  247,  765,  723,  732,  220,  280,    0,  221,  740,
-      170,  761,  740,    0,  250,  728,  758,  731,  252,  735,
-      257,  308,  260,  248,  269,  288,  281,  729,  730,  753,
-      710,  725,  714,  713,  710,    0,    0,  714,  298,    0,
-      742,  815,  219,  815,  815,  707,  715,  714,  711,  174,
-      712,  815,  815,  815,  815,  744,  138,  356,  408,    0,
-        0,  815,  815,  724,  312,  343,    0,    0,    0,  714,
-
-      711,    0,    0,  249,  700,  699,    0,  232,  369,  695,
-      303,  711,  703,    0,  700,  701,  375,  337,  337,  122,
-      238,  338,  378,  347,  239,  709,  725,    0,  356,  318,
-      705,  722,  692,  363,    0,    0,    0,    0,  691,  390,
-      697,    0,    0,  372,    0,    0,  689,    0,    0,  700,
-      684,  699,  403,  690,  684,  393,  436,  680,  474,  431,
-        0,    0,    0,    0,    0,    0,  684,    0,    0,  398,
-      678,  401,  690,  681,  437,  680,    0,  690,  401,    0,
-        0,  662,    0,  657,  671,  684,  667,  676,  680,  676,
-      705,  815,    0,    0,    0,    0,    0,    0,    0,    0,
-
-      669,  676,  434,    0,    0,    0,  669,  659,  674,  448,
-        0,  659,  466,  694,  673,  670,  439,  661,  411,  654,
-      660,    0,    0,  419,  422,  647,  649,  450,  665,  470,
-        0,    0,  664,  675,  462,    0,  636,    0,  682,    0,
-      634,  642,  656,    0,    0,  656,    0,    0,    0,    0,
-      657,    0,    0,  654,    0,    0,    0,    0,    0,  671,
-      672,    0,    0,  652,  652,  470,  649,  471,  470,    0,
-        0,  650,  646,  632,  637,  614,  640,  617,  627,    0,
-      640,  630,  521,  474,    0,  466,  619,  475,  630,  477,
-      633,  624,  485,  625,  614,    0,  618,    0,    0,  620,
-
-      623,  625,  626,  611,  491,  628,  611,    0,  619,  625,
-      622,  613,  622,  495,  503,  487,  608,  497,    0,    0,
-        0,    0,    0,    0,  615,  517,  603,    0,  612,    0,
-      613,  614,  519,    0,  609,  609,  501,  605,  624,  625,
-        0,    0,    0,    0,    0,    0,    0,  604,  537,  609,
-      595,    0,  623,  597,  508,  510,  594,  588,    0,  590,
-      600,    0,  511,  585,  614,  532,  597,    0,    0,    0,
-      596,  586,    0,    0,    0,  514,  594,  517,    0,  518,
-      574,  583,    0,  593,    0,    0,    0,  589,  544,  315,
-      578,  582,  538,    0,  568,    0,    0,  586,  578,  520,
-
-        0,    0,  575,    0,  551,  554,  563,  564,    0,  521,
-      548,    0,    0,  543,  556,  522,  418,    0,    0,    0,
-        0,    0,  558,    0,  535,    0,    0,  524,  528,    0,
-      424,    0,    0,    0,    0,    0,    0,    0,    0,  403,
-      388,  378,  324,  279,    0,  272,  529,    0,    0,  531,
-      538,    0,  262,  168,   82,   83,    0,  815,  603,  608,
-       92,  613,  615,  617
+        0,    0,   32,   33,  758,  759,  759,  759,  759,    0,
+      759,  727,  759,  759,  726,   60,  759,   61,  744,   63,
+       68,  759,  759,   58,   75,  723,  759,  116,  176,   60,
+       79,   44,   87,   89,   98,  165,  700,  226,  158,   47,
+      113,  277,  327,  376,  108,  701,   58,  731,    0,    0,
+      759,  759,  720,  685,  100,  759,  144,   72,  707,   65,
+      118,    0,  759,  759,  759,  759,  143,  759,  759,  149,
+      736,  189,  230,  759,    0,  716,  759,  759,  759,   91,
+      730,  729,  692,  120,  701,    0,    0,  218,  154,    0,
+        0,  726,  135,    0,  703,   49,  167,  695,    0,  697,
+
+        0,  680,  701,  696,  686,   93,  680,  234,  717,  685,
+        0,  168,    0,    0,  170,  693,  714,  684,    0,    0,
+      676,    0,  681,  710,  172,  210,    0,  176,  199,  212,
+      709,  667,  676,  210,  235,    0,  224,  684,  173,  705,
+      684,    0,  207,  672,  702,  675,  212,  679,  213,  263,
+      222,  243,  258,  259,  214,  673,  674,  697,  654,  669,
+      658,  657,  654,    0,    0,  658,  251,    0,  686,  759,
+      135,  759,  759,  651,  659,  658,  655,  270,  656,  759,
+      759,  759,  759,  688,  304,  311,    0,  759,  759,  668,
+      298,  312,    0,    0,    0,  658,  655,    0,    0,  278,
+
+      644,  643,    0,  273,  320,  639,  309,  655,  647,    0,
+      644,  645,  343,  292,  325,  275,  326,  333,  336,  320,
+      340,  653,  669,    0,  327,  345,  649,  666,  636,  357,
+        0,    0,    0,    0,  635,  348,  641,    0,    0,  358,
+        0,    0,  633,    0,    0,  644,  628,  643,  363,  634,
+      628,  352,  378,  624,  384,  413,    0,    0,    0,    0,
+        0,    0,  628,    0,    0,  360,  622,  370,  634,  625,
+      394,  624,    0,  634,  356,    0,    0,  606,    0,  601,
+      615,  628,  611,  620,  624,  620,  649,  759,    0,    0,
+        0,    0,    0,    0,    0,    0,  613,  620,  377,    0,
+
+        0,    0,  613,  603,  618,  398,    0,  603,  398,  638,
+      617,  614,  408,  605,  408,  598,  604,    0,    0,  414,
+      417,  591,  593,  402,  609,  422,    0,    0,  608,  619,
+      406,    0,  580,    0,  626,    0,  578,  586,  600,    0,
+        0,  600,    0,    0,    0,    0,  601,    0,    0,  598,
+        0,    0,    0,    0,    0,  615,  616,    0,    0,  596,
+      596,  406,  593,  407,  426,    0,    0,  594,  590,  576,
+      581,  558,  584,  561,  571,    0,  584,  574,  443,  412,
+        0,  415,  563,  415,  574,  424,  577,  568,  433,  569,
+      558,    0,  562,    0,    0,  564,  567,  569,  570,  555,
+
+      426,  572,  555,    0,  563,  569,  566,  557,  566,  420,
+      443,  455,  552,  431,    0,    0,    0,    0,    0,    0,
+      559,  442,  547,    0,  556,    0,  557,  558,  451,    0,
+      553,  553,  436,  549,  568,  569,    0,    0,    0,    0,
+        0,    0,    0,  548,  482,  553,  539,    0,  567,  541,
+      443,  445,  538,  532,    0,  534,  544,    0,  454,  529,
+      558,  471,  541,    0,    0,    0,  540,  530,    0,    0,
+        0,  455,  538,  456,    0,  457,  518,  527,    0,  537,
+        0,    0,    0,  533,  150,  468,  522,  526,  478,    0,
+      512,    0,    0,  530,  529,  463,    0,    0,  530,    0,
+
+      511,  514,  523,  525,    0,  465,  501,    0,    0,  489,
+      500,  466,  480,    0,    0,    0,    0,    0,  504,    0,
+      481,    0,    0,  474,  484,    0,  490,    0,    0,    0,
+        0,    0,    0,    0,    0,  483,  370,  352,  345,  279,
+        0,  219,  473,    0,    0,  475,  477,    0,  220,  207,
+      134,   61,    0,  759,  542,  545,  550,  552,  554
     } ;
 
-static yyconst flex_int16_t yy_def[565] =
+static yyconst flex_int16_t yy_def[560] =
     {   0,
-      558,    1,    1,    1,  558,  558,  558,  558,  558,  559,
-      558,  558,  558,  558,  558,  558,  558,  558,  558,  560,
-      561,  558,  558,  558,  558,  558,  558,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      558,  558,  558,   28,  558,  558,  559,   36,   38,   42,
-      559,  559,  558,  558,  558,  558,  558,  558,  558,  558,
-      562,  558,  558,  558,  558,  558,  558,  558,  558,  558,
-      558,  558,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  563,  559,  559,  559,  559,  559,  559,  559,
-
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  558,  559,  558,  558,  559,  559,  559,  559,  559,
-      559,  558,  558,  558,  558,  562,  562,  558,  558,   75,
-      564,  558,  558,  558,  559,  559,  559,  559,  559,  559,
-
-      559,  559,  559,  559,  559,  559,  563,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      562,  558,  559,  559,  559,  559,  559,  559,  559,  559,
-
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,  559,  559,  559,
-      559,  559,  559,  559,  559,  559,  559,    0,  558,  558,
-      558,  558,  558,  558
+      554,    1,    1,    1,  554,  554,  554,  554,  554,  555,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  556,
+      556,  554,  554,  554,  554,  554,  554,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      554,  554,  554,   28,  554,  554,  555,   36,   38,   42,
+      555,  555,  554,  554,  554,  554,  554,  554,  554,  554,
+      557,  554,  554,  554,  558,  554,  554,  554,  554,  554,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      559,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  554,
+      555,  554,  554,  555,  555,  555,  555,  555,  555,  554,
+      554,  554,  554,  557,  557,  554,  558,  554,  554,  554,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+
+      555,  555,  559,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  557,  554,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,  555,  555,  555,  555,  555,  555,  555,
+      555,  555,  555,    0,  554,  554,  554,  554,  554
     } ;
 
-static yyconst flex_int16_t yy_nxt[885] =
+static yyconst flex_int16_t yy_nxt[829] =
     {   0,
         6,    7,    8,    9,    6,   10,   11,   12,   13,   14,
        15,   16,   17,   18,   10,   19,   20,   21,   21,   21,
@@ -621,99 +615,93 @@ static yyconst flex_int16_t yy_nxt[885] =
        36,   37,   10,   38,   39,   40,   41,   42,   10,   43,
        44,   45,   46,   47,   48,   49,   10,   50,   51,   52,
        53,   10,   54,   29,   41,   43,   45,   55,   56,   57,
-       57,   65,   58,   58,   68,   59,   59,   77,   80,   60,
-       60,   77,   78,   79,   61,   61,  109,  174,   93,   66,
-       69,  100,  180,  101,  137,   76,   93,  110,  138,  177,
-
-      169,  178,  102,  557,   81,  103,  181,   77,  180,  104,
-      170,  168,  137,   93,   93,  105,  182,  106,  183,  219,
-      107,  100,  220,  103,  108,  175,  556,   67,   70,   73,
-       73,   73,   73,   73,   73,   73,   73,   73,   73,  111,
-      184,  113,  185,  211,  112,   93,   74,  106,  187,  116,
-       74,  114,  117,  291,  139,  140,  115,  133,  133,  133,
-      133,  211,  141,  118,  119,  119,  119,  119,   75,  114,
-      322,  115,  323,  134,  193,  194,   74,   83,   84,  198,
-      199,  135,  209,  120,  176,  121,  136,  122,  111,  164,
-      165,  555,  166,  112,   85,   86,  167,  209,  123,  239,
-
-      124,  205,  206,  134,   87,  212,   88,  227,  228,   89,
-      289,   90,  235,  236,   91,  237,  238,  239,   92,  256,
-      212,  252,  227,  228,   85,   93,  188,  188,  188,  188,
-      188,  188,  188,  188,  188,  188,  252,   94,   94,   94,
-       94,  189,  189,  189,  189,  189,  189,  189,  189,  189,
-      189,  188,  188,  188,  188,  188,  188,  188,  188,  188,
-      188,   95,  240,  242,  243,  241,  247,  250,   96,  197,
-       97,  306,  324,  325,  326,  306,   98,   99,  331,  554,
-      268,  303,  332,  284,  247,  250,   97,  126,  126,  126,
-      126,   76,   76,   76,   76,   76,   76,   76,   76,   76,
-
-       76,  255,  201,  259,  127,  128,  202,  129,  261,  267,
-      268,  303,  203,  222,  204,  269,  255,  130,  259,  550,
-      270,  131,  132,  261,  549,  267,  223,  248,  203,  204,
-      224,  249,  272,  269,  127,  130,  271,  132,  142,  142,
-      142,  142,  142,  142,  262,  224,  249,  272,  263,  282,
-      270,  293,  312,  264,  143,  294,  144,  336,  265,  519,
-      548,  336,  520,  266,  282,  145,  295,  296,  312,  321,
-      327,  146,  188,  188,  188,  188,  188,  188,  188,  188,
-      188,  188,  297,  320,  143,  328,  298,  146,  147,  147,
-      147,  147,  147,  147,  147,  147,  330,  299,  300,  321,
-
-      327,  320,  340,  307,  148,  335,  340,  317,  149,  318,
-      329,  344,  330,  308,  319,  344,  547,  150,  151,  309,
-      310,  335,  546,  152,  189,  189,  189,  189,  189,  189,
-      189,  189,  189,  189,  148,  310,  151,  317,  152,  153,
-      329,  342,  349,  401,  352,  545,  349,  365,  360,  361,
-      367,  404,  374,  154,  405,  155,  342,  156,  157,  352,
-      158,  159,  538,  365,  544,  539,  367,  374,  160,  353,
-      362,  161,  162,  401,  363,  353,  370,  163,  398,  353,
-      371,  404,  399,  154,  405,  385,  389,  162,  190,  190,
-      190,  190,  190,  190,  190,  190,  190,  190,  390,  353,
-
-      385,  408,  410,  429,  191,  191,  191,  191,  191,  191,
-      355,  413,  392,  393,  356,  443,  408,  450,  394,  357,
-      471,  426,  428,  472,  358,  442,  445,  413,  447,  359,
-      392,  443,  410,  429,  191,  191,  426,  428,  439,  440,
-      442,  445,  459,  447,  467,  441,  468,  450,  474,  476,
-      471,  481,  484,  469,  489,  490,  491,  459,  470,  496,
-      467,  497,  502,  474,  505,  509,  517,  484,  511,  512,
-      523,  527,  533,  537,  496,  551,  497,  502,  543,  476,
-      509,  481,  552,  511,  512,  542,  527,  533,  537,  553,
-      541,  518,  540,  551,  505,  536,  535,  552,  534,  532,
-
-      523,  531,  530,  529,  553,   62,   62,   62,   72,  528,
-       72,   72,   72,  186,  526,  186,  186,  186,  207,  207,
-      191,  191,  525,  524,  522,  521,  516,  515,  514,  513,
-      510,  508,  507,  506,  504,  503,  501,  500,  499,  498,
-      495,  494,  493,  492,  488,  487,  486,  485,  483,  482,
-      480,  479,  478,  477,  475,  473,  466,  465,  464,  463,
-      462,  461,  460,  458,  457,  456,  455,  454,  453,  452,
-      451,  449,  448,  446,  444,  438,  437,  436,  414,  435,
-      434,  433,  432,  431,  430,  427,  425,  424,  423,  422,
-      421,  420,  419,  418,  417,  416,  415,  414,  412,  411,
-
-      409,  407,  406,  403,  402,  400,  397,  396,  395,  391,
-      388,  387,  386,  384,  383,  187,  382,  381,  380,  379,
-      378,  377,  376,  375,  373,  372,  369,  368,  366,  364,
-      354,  351,  350,  348,  347,  346,  345,  343,  341,  339,
-      338,  337,  334,  333,  316,  315,  314,  313,  311,  305,
-      304,  302,  301,  292,  187,  290,  288,  287,  286,  285,
-      283,  281,  280,  279,  278,  277,  276,  275,  274,  273,
-      260,  258,  257,  256,  254,  253,  251,  246,  245,  244,
-      234,  233,  232,  231,  230,  229,  226,  225,  221,  218,
-      217,  216,  215,  214,  213,  210,  208,  200,  197,  196,
-
-      195,  192,  187,  179,  173,  172,  171,  168,  125,   82,
-       71,   64,   63,  558,    5,  558,  558,  558,  558,  558,
-      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
-      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
-      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
-      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
-      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
-      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
-      558,  558,  558,  558
+       57,   65,   58,   58,   68,   59,   59,   72,   78,   60,
+       60,  553,  554,   91,   61,   61,   76,   77,  107,   66,
+       69,   91,   98,  135,   99,  207,   74,  136,  167,  108,
+
+       74,   74,   91,  100,   79,   74,  101,  175,  168,  176,
+      102,  135,  104,  207,  178,  105,  103,   91,   75,  106,
+      189,  190,   98,  554,  101,  111,   74,   67,   70,  172,
+      178,   74,   81,   82,  109,  112,  194,  195,  114,  110,
+      113,  115,  104,  215,  162,  163,  216,  164,   91,   83,
+       84,  165,  116,  112,  180,  113,  181,  137,  138,   85,
+      182,   86,  183,  179,   87,  139,   88,  173,  166,   89,
+      201,  202,  513,   90,  131,  131,  131,  131,  552,   83,
+       91,  117,  117,  117,  117,  193,  205,  174,  231,  232,
+      132,  109,   92,   92,   92,   92,  110,  514,  133,  280,
+
+      118,  205,  119,  134,  120,  186,  186,  186,  186,  186,
+      186,  186,  186,  186,  186,  121,   93,  122,  208,  223,
+      132,  224,  235,   94,  248,   95,  233,  234,  238,  239,
+      551,   96,   97,  208,  223,  236,  224,  550,  237,  248,
+      235,   95,  124,  124,  124,  124,   73,   73,   73,   73,
+       73,   73,   73,   73,   73,   73,  243,  197,  251,  125,
+      126,  198,  127,  255,  257,  268,  546,  199,  218,  200,
+      246,  263,  128,  251,  243,  264,  129,  130,  255,  257,
+      268,  219,  244,  199,  200,  220,  245,  263,  246,  125,
+      128,  266,  130,  140,  140,  140,  140,  140,  140,  258,
+
+      220,  245,  278,  259,  265,  264,  285,  267,  260,  141,
+      299,  142,  302,  261,  185,  252,  302,  278,  262,  287,
+      143,  266,  265,  318,  545,  319,  144,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  289,  316,  141,
+      299,  290,  144,  145,  145,  145,  145,  145,  145,  145,
+      145,  293,  291,  292,  303,  294,  316,  317,  308,  146,
+      320,  321,  322,  147,  304,  323,  295,  296,  325,  326,
+      305,  306,  148,  149,  308,  313,  331,  314,  150,  327,
+      324,  544,  315,  328,  332,  326,  306,  317,  332,  146,
+      543,  149,  331,  150,  151,  323,  336,  340,  325,  338,
+
+      336,  340,  345,  348,  542,  313,  345,  370,  152,  361,
+      153,  349,  154,  155,  338,  156,  157,  349,  348,  363,
+      351,  349,  370,  158,  352,  361,  159,  160,  381,  353,
+      356,  357,  161,  366,  354,  363,  385,  367,  152,  355,
+      397,  349,  160,  381,  388,  389,  400,  394,  386,  401,
+      390,  395,  358,  404,  406,  409,  359,  422,  424,  425,
+      435,  436,  388,  438,  439,  446,  441,  437,  404,  463,
+      397,  409,  422,  424,  472,  443,  400,  455,  438,  401,
+      439,  441,  470,  477,  406,  463,  464,  480,  467,  425,
+      443,  468,  455,  465,  492,  446,  493,  470,  466,  485,
+
+      486,  487,  480,  501,  472,  498,  505,  507,  508,  492,
+      519,  493,  515,  477,  523,  516,  529,  533,  467,  547,
+      498,  505,  507,  508,  534,  541,  548,  535,  549,  523,
+      540,  529,  533,  501,  539,  538,  537,  547,  536,  532,
+      519,  548,  531,  549,   62,   62,   62,   62,   73,   73,
+      184,  530,  184,  184,  184,  184,  187,  187,  203,  203,
+      528,  527,  526,  525,  524,  522,  521,  520,  518,  517,
+      512,  511,  510,  509,  506,  504,  503,  502,  500,  499,
+      497,  496,  495,  494,  491,  490,  489,  488,  484,  483,
+      482,  481,  479,  478,  476,  475,  474,  473,  471,  469,
+
+      462,  461,  460,  459,  458,  457,  456,  454,  453,  452,
+      451,  450,  449,  448,  447,  445,  444,  442,  440,  434,
+      433,  432,  410,  431,  430,  429,  428,  427,  426,  423,
+      421,  420,  419,  418,  417,  416,  415,  414,  413,  412,
+      411,  410,  408,  407,  405,  403,  402,  399,  398,  396,
+      393,  392,  391,  387,  384,  383,  382,  380,  379,  185,
+      378,  377,  376,  375,  374,  373,  372,  371,  369,  368,
+      365,  364,  362,  360,  350,  347,  346,  344,  343,  342,
+      341,  339,  337,  335,  334,  333,  330,  329,  312,  311,
+      310,  309,  307,  301,  300,  298,  297,  288,  185,  286,
+
+      284,  283,  282,  281,  279,  277,  276,  275,  274,  273,
+      272,  271,  270,  269,  256,  254,  253,  252,  250,  249,
+      247,  242,  241,  240,  230,  229,  228,  227,  226,  225,
+      222,  221,  217,  214,  213,  212,  211,  210,  209,  206,
+      204,  196,  193,  192,  191,  188,  185,  177,  171,  170,
+      169,  166,  123,   80,   71,   64,   63,  554,    5,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554
     } ;
 
-static yyconst flex_int16_t yy_chk[885] =
+static yyconst flex_int16_t yy_chk[829] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -722,96 +710,90 @@ static yyconst flex_int16_t yy_chk[885] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    3,
-        4,   16,    3,    4,   18,    3,    4,   21,   25,    3,
-        4,   21,   24,   24,    3,    4,   32,   55,   31,   16,
-       18,   30,   60,   30,   40,  561,   33,   32,   40,   58,
-
-       47,   58,   30,  556,   25,   30,   61,   21,   60,   30,
-       47,   61,   40,   35,   41,   30,   67,   31,   67,  108,
-       31,   30,  108,   30,   31,   55,  555,   16,   18,   20,
-       20,   20,   20,   20,   20,   20,   20,   20,   20,   33,
-       70,   34,   70,   98,   33,   57,   20,   31,  187,   35,
-       20,   34,   35,  187,   41,   41,   34,   39,   39,   39,
-       39,   98,   41,   35,   36,   36,   36,   36,   20,   34,
-      220,   34,  220,   39,   82,   82,   20,   28,   28,   86,
-       86,   39,   95,   36,   57,   36,   39,   36,   57,   45,
-       45,  554,   45,   57,   28,   28,   45,   95,   36,  130,
-
-       36,   91,   91,   39,   28,   99,   28,  114,  117,   28,
-      180,   28,  127,  127,   28,  128,  128,  130,   28,  180,
-       99,  141,  114,  117,   28,   29,   72,   72,   72,   72,
-       72,   72,   72,   72,   72,   72,  141,   29,   29,   29,
-       29,   73,   73,   73,   73,   73,   73,   73,   73,   73,
-       73,   74,   74,   74,   74,   74,   74,   74,   74,   74,
-       74,   29,  131,  132,  132,  131,  136,  139,   29,  173,
-       29,  208,  221,  221,  221,  208,   29,   29,  225,  553,
-      154,  204,  225,  173,  136,  139,   29,   38,   38,   38,
-       38,   76,   76,   76,   76,   76,   76,   76,   76,   76,
-
-       76,  145,   90,  149,   38,   38,   90,   38,  151,  153,
-      154,  204,   90,  110,   90,  155,  145,   38,  149,  546,
-      156,   38,   38,  151,  544,  153,  110,  137,   90,   90,
-      110,  137,  157,  155,   38,   38,  156,   38,   42,   42,
-       42,   42,   42,   42,  152,  110,  137,  157,  152,  169,
-      156,  195,  211,  152,   42,  195,   42,  230,  152,  490,
-      543,  230,  490,  152,  169,   42,  195,  195,  211,  219,
-      222,   42,  188,  188,  188,  188,  188,  188,  188,  188,
-      188,  188,  196,  218,   42,  222,  196,   42,   43,   43,
-       43,   43,   43,   43,   43,   43,  224,  196,  196,  219,
-
-      222,  218,  234,  209,   43,  229,  234,  217,   43,  217,
-      223,  244,  224,  209,  217,  244,  542,   43,   43,  209,
-      209,  229,  541,   43,  189,  189,  189,  189,  189,  189,
-      189,  189,  189,  189,   43,  209,   43,  217,   43,   44,
-      223,  240,  253,  319,  256,  540,  253,  270,  260,  260,
-      272,  324,  279,   44,  325,   44,  240,   44,   44,  256,
-       44,   44,  517,  270,  531,  517,  272,  279,   44,  257,
-      260,   44,   44,  319,  260,  257,  275,   44,  317,  257,
-      275,  324,  317,   44,  325,  303,  310,   44,   75,   75,
-       75,   75,   75,   75,   75,   75,   75,   75,  310,  257,
-
-      303,  328,  330,  369,   75,   75,   75,   75,   75,   75,
-      259,  335,  313,  313,  259,  386,  328,  393,  313,  259,
-      416,  366,  368,  416,  259,  384,  388,  335,  390,  259,
-      313,  386,  330,  369,   75,   75,  366,  368,  383,  383,
-      384,  388,  405,  390,  414,  383,  415,  393,  418,  426,
-      416,  433,  437,  415,  449,  449,  449,  405,  415,  455,
-      414,  456,  463,  418,  466,  476,  489,  437,  478,  480,
-      493,  500,  510,  516,  455,  547,  456,  463,  529,  426,
-      476,  433,  550,  478,  480,  528,  500,  510,  516,  551,
-      525,  489,  523,  547,  466,  515,  514,  550,  511,  508,
-
-      493,  507,  506,  505,  551,  559,  559,  559,  560,  503,
-      560,  560,  560,  562,  499,  562,  562,  562,  563,  563,
-      564,  564,  498,  495,  492,  491,  488,  484,  482,  481,
-      477,  472,  471,  467,  465,  464,  461,  460,  458,  457,
-      454,  453,  451,  450,  448,  440,  439,  438,  436,  435,
-      432,  431,  429,  427,  425,  417,  413,  412,  411,  410,
-      409,  407,  406,  404,  403,  402,  401,  400,  397,  395,
-      394,  392,  391,  389,  387,  382,  381,  379,  378,  377,
-      376,  375,  374,  373,  372,  367,  365,  364,  361,  360,
-      354,  351,  346,  343,  342,  341,  339,  337,  334,  333,
-
-      329,  327,  326,  321,  320,  318,  316,  315,  314,  312,
-      309,  308,  307,  302,  301,  291,  290,  289,  288,  287,
-      286,  285,  284,  282,  278,  276,  274,  273,  271,  267,
-      258,  255,  254,  252,  251,  250,  247,  241,  239,  233,
-      232,  231,  227,  226,  216,  215,  213,  212,  210,  206,
-      205,  201,  200,  194,  186,  181,  179,  178,  177,  176,
-      171,  168,  165,  164,  163,  162,  161,  160,  159,  158,
-      150,  148,  147,  146,  143,  142,  140,  135,  134,  133,
-      126,  125,  123,  120,  119,  118,  112,  111,  109,  107,
-      106,  105,  104,  102,  100,   97,   94,   87,   85,   84,
-
-       83,   78,   71,   59,   54,   53,   48,   46,   37,   26,
-       19,   15,   12,    5,  558,  558,  558,  558,  558,  558,
-      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
-      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
-      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
-      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
-      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
-      558,  558,  558,  558,  558,  558,  558,  558,  558,  558,
-      558,  558,  558,  558
+        4,   16,    3,    4,   18,    3,    4,   20,   25,    3,
+        4,  552,   21,   31,    3,    4,   24,   24,   32,   16,
+       18,   33,   30,   40,   30,   96,   20,   40,   47,   32,
+
+       20,   21,   35,   30,   25,   21,   30,   58,   47,   58,
+       30,   40,   31,   96,   60,   31,   30,   41,   20,   31,
+       80,   80,   30,   21,   30,   34,   20,   16,   18,   55,
+       60,   21,   28,   28,   33,   34,   84,   84,   35,   33,
+       34,   35,   31,  106,   45,   45,  106,   45,   57,   28,
+       28,   45,   35,   34,   67,   34,   67,   41,   41,   28,
+       70,   28,   70,   61,   28,   41,   28,   55,   61,   28,
+       89,   89,  485,   28,   39,   39,   39,   39,  551,   28,
+       29,   36,   36,   36,   36,  171,   93,   57,  125,  125,
+       39,   57,   29,   29,   29,   29,   57,  485,   39,  171,
+
+       36,   93,   36,   39,   36,   72,   72,   72,   72,   72,
+       72,   72,   72,   72,   72,   36,   29,   36,   97,  112,
+       39,  115,  128,   29,  139,   29,  126,  126,  130,  130,
+      550,   29,   29,   97,  112,  129,  115,  549,  129,  139,
+      128,   29,   38,   38,   38,   38,   73,   73,   73,   73,
+       73,   73,   73,   73,   73,   73,  134,   88,  143,   38,
+       38,   88,   38,  147,  149,  155,  542,   88,  108,   88,
+      137,  151,   38,  143,  134,  152,   38,   38,  147,  149,
+      155,  108,  135,   88,   88,  108,  135,  151,  137,   38,
+       38,  154,   38,   42,   42,   42,   42,   42,   42,  150,
+
+      108,  135,  167,  150,  153,  152,  178,  154,  150,   42,
+      200,   42,  204,  150,  185,  178,  204,  167,  150,  185,
+       42,  154,  153,  216,  540,  216,   42,  186,  186,  186,
+      186,  186,  186,  186,  186,  186,  186,  191,  214,   42,
+      200,  191,   42,   43,   43,   43,   43,   43,   43,   43,
+       43,  192,  191,  191,  205,  192,  214,  215,  207,   43,
+      217,  217,  217,   43,  205,  218,  192,  192,  219,  220,
+      205,  205,   43,   43,  207,  213,  225,  213,   43,  221,
+      218,  539,  213,  221,  226,  220,  205,  215,  226,   43,
+      538,   43,  225,   43,   44,  218,  230,  240,  219,  236,
+
+      230,  240,  249,  252,  537,  213,  249,  275,   44,  266,
+       44,  253,   44,   44,  236,   44,   44,  253,  252,  268,
+      255,  253,  275,   44,  255,  266,   44,   44,  299,  255,
+      256,  256,   44,  271,  255,  268,  306,  271,   44,  255,
+      315,  253,   44,  299,  309,  309,  320,  313,  306,  321,
+      309,  313,  256,  324,  326,  331,  256,  362,  364,  365,
+      379,  379,  309,  380,  382,  389,  384,  379,  324,  410,
+      315,  331,  362,  364,  422,  386,  320,  401,  380,  321,
+      382,  384,  414,  429,  326,  410,  411,  433,  412,  365,
+      386,  412,  401,  411,  451,  389,  452,  414,  411,  445,
+
+      445,  445,  433,  462,  422,  459,  472,  474,  476,  451,
+      489,  452,  486,  429,  496,  486,  506,  512,  412,  543,
+      459,  472,  474,  476,  513,  536,  546,  513,  547,  496,
+      527,  506,  512,  462,  525,  524,  521,  543,  519,  511,
+      489,  546,  510,  547,  555,  555,  555,  555,  556,  556,
+      557,  507,  557,  557,  557,  557,  558,  558,  559,  559,
+      504,  503,  502,  501,  499,  495,  494,  491,  488,  487,
+      484,  480,  478,  477,  473,  468,  467,  463,  461,  460,
+      457,  456,  454,  453,  450,  449,  447,  446,  444,  436,
+      435,  434,  432,  431,  428,  427,  425,  423,  421,  413,
+
+      409,  408,  407,  406,  405,  403,  402,  400,  399,  398,
+      397,  396,  393,  391,  390,  388,  387,  385,  383,  378,
+      377,  375,  374,  373,  372,  371,  370,  369,  368,  363,
+      361,  360,  357,  356,  350,  347,  342,  339,  338,  337,
+      335,  333,  330,  329,  325,  323,  322,  317,  316,  314,
+      312,  311,  310,  308,  305,  304,  303,  298,  297,  287,
+      286,  285,  284,  283,  282,  281,  280,  278,  274,  272,
+      270,  269,  267,  263,  254,  251,  250,  248,  247,  246,
+      243,  237,  235,  229,  228,  227,  223,  222,  212,  211,
+      209,  208,  206,  202,  201,  197,  196,  190,  184,  179,
+
+      177,  176,  175,  174,  169,  166,  163,  162,  161,  160,
+      159,  158,  157,  156,  148,  146,  145,  144,  141,  140,
+      138,  133,  132,  131,  124,  123,  121,  118,  117,  116,
+      110,  109,  107,  105,  104,  103,  102,  100,   98,   95,
+       92,   85,   83,   82,   81,   76,   71,   59,   54,   53,
+       48,   46,   37,   26,   19,   15,   12,    5,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554,  554,  554,
+      554,  554,  554,  554,  554,  554,  554,  554
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -830,7 +812,7 @@ int yy_flex_debug = 0;
 char *yytext;
 #line 1 "bfin-lex.l"
 /* bfin-lex.l  ADI Blackfin lexer
-   Copyright 2005, 2006, 2007
+   Copyright 2005, 2006, 2007, 2008
    Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
@@ -868,7 +850,7 @@ int yylex (void);
    and <INITIAL> would match some keyword rules only with
    initial.  */
 
-#line 872 "bfin-lex.c"
+#line 854 "bfin-lex.c"
 
 #define INITIAL 0
 #define KEYWORD 1
@@ -887,6 +869,35 @@ int yylex (void);
 
 static int yy_init_globals (void );
 
+/* Accessor methods to globals.
+   These are made visible to non-reentrant scanners for convenience. */
+
+int yylex_destroy (void );
+
+int yyget_debug (void );
+
+void yyset_debug (int debug_flag  );
+
+YY_EXTRA_TYPE yyget_extra (void );
+
+void yyset_extra (YY_EXTRA_TYPE user_defined  );
+
+FILE *yyget_in (void );
+
+void yyset_in  (FILE * in_str  );
+
+FILE *yyget_out (void );
+
+void yyset_out  (FILE * out_str  );
+
+yy_size_t yyget_leng (void );
+
+char *yyget_text (void );
+
+int yyget_lineno (void );
+
+void yyset_lineno (int line_number  );
+
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
  */
@@ -929,7 +940,7 @@ static int input (void );
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
+#define ECHO fwrite( yytext, yyleng, 1, yyout )
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -940,7 +951,7 @@ static int input (void );
        if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
                { \
                int c = '*'; \
-               size_t n; \
+               yy_size_t n; \
                for ( n = 0; n < max_size && \
                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
                        buf[n] = (char) c; \
@@ -1024,7 +1035,7 @@ YY_DECL
     
 #line 43 "bfin-lex.l"
 
-#line 1028 "bfin-lex.c"
+#line 1039 "bfin-lex.c"
 
        if ( !(yy_init) )
                {
@@ -1077,13 +1088,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 559 )
+                               if ( yy_current_state >= 555 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_base[yy_current_state] != 815 );
+               while ( yy_base[yy_current_state] != 759 );
 
 yy_find_action:
                yy_act = yy_accept[yy_current_state];
@@ -1220,12 +1231,12 @@ return SSYNC;
 case 23:
 YY_RULE_SETUP
 #line 66 "bfin-lex.l"
-_REG.regno = REG_SP; return HALF_REG;
+_REG.regno = REG_SP; _REG.flags = F_REG_LOW; return HALF_REG;
        YY_BREAK
 case 24:
 YY_RULE_SETUP
 #line 67 "bfin-lex.l"
-_REG.regno = REG_SP | F_REG_HIGH; return HALF_REG;
+_REG.regno = REG_SP; _REG.flags = F_REG_HIGH; return HALF_REG;
        YY_BREAK
 case 25:
 YY_RULE_SETUP
@@ -1625,12 +1636,12 @@ _REG.regno = REG_FP; return REG;
 case 104:
 YY_RULE_SETUP
 #line 161 "bfin-lex.l"
-_REG.regno = REG_FP; return HALF_REG;
+_REG.regno = REG_FP; _REG.flags = F_REG_LOW; return HALF_REG;
        YY_BREAK
 case 105:
 YY_RULE_SETUP
 #line 162 "bfin-lex.l"
-_REG.regno = REG_FP | F_REG_HIGH; return HALF_REG;
+_REG.regno = REG_FP; _REG.flags = F_REG_HIGH; return HALF_REG;
        YY_BREAK
 case 106:
 YY_RULE_SETUP
@@ -1895,393 +1906,388 @@ _REG.regno = S_AV1S; return STATUS_REG;
 case 158:
 YY_RULE_SETUP
 #line 218 "bfin-lex.l"
-_REG.regno = S_V; return STATUS_REG;
+_REG.regno = S_VS;   return STATUS_REG;
        YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 219 "bfin-lex.l"
-_REG.regno = S_VS;   return STATUS_REG;
+#line 221 "bfin-lex.l"
+_REG.regno = REG_ASTAT; return REG;
        YY_BREAK
 case 160:
 YY_RULE_SETUP
 #line 222 "bfin-lex.l"
-_REG.regno = REG_ASTAT; return REG;
+return ASHIFT;
        YY_BREAK
 case 161:
 YY_RULE_SETUP
 #line 223 "bfin-lex.l"
-return ASHIFT;
+return ASL;
        YY_BREAK
 case 162:
 YY_RULE_SETUP
 #line 224 "bfin-lex.l"
-return ASL;
+return ASR;
        YY_BREAK
 case 163:
 YY_RULE_SETUP
 #line 225 "bfin-lex.l"
-return ASR;
+return ALIGN8;
        YY_BREAK
 case 164:
 YY_RULE_SETUP
 #line 226 "bfin-lex.l"
-return ALIGN8;
+return ALIGN16;
        YY_BREAK
 case 165:
 YY_RULE_SETUP
 #line 227 "bfin-lex.l"
-return ALIGN16;
+return ALIGN24;
        YY_BREAK
 case 166:
 YY_RULE_SETUP
 #line 228 "bfin-lex.l"
-return ALIGN24;
+return A_ONE_DOT_L;
        YY_BREAK
 case 167:
 YY_RULE_SETUP
 #line 229 "bfin-lex.l"
-return A_ONE_DOT_L;
+return A_ZERO_DOT_L;
        YY_BREAK
 case 168:
 YY_RULE_SETUP
 #line 230 "bfin-lex.l"
-return A_ZERO_DOT_L;
+return A_ONE_DOT_H;
        YY_BREAK
 case 169:
 YY_RULE_SETUP
 #line 231 "bfin-lex.l"
-return A_ONE_DOT_H;
+return A_ZERO_DOT_H;
        YY_BREAK
 case 170:
 YY_RULE_SETUP
 #line 232 "bfin-lex.l"
-return A_ZERO_DOT_H;
+return ABS;
        YY_BREAK
 case 171:
 YY_RULE_SETUP
 #line 233 "bfin-lex.l"
-return ABS;
+return ABORT;
        YY_BREAK
 case 172:
 YY_RULE_SETUP
 #line 234 "bfin-lex.l"
-return ABORT;
+_REG.regno = REG_A1x; return REG;
        YY_BREAK
 case 173:
 YY_RULE_SETUP
 #line 235 "bfin-lex.l"
-_REG.regno = REG_A1x; return REG;
+_REG.regno = REG_A1w; return REG;
        YY_BREAK
 case 174:
 YY_RULE_SETUP
 #line 236 "bfin-lex.l"
-_REG.regno = REG_A1w; return REG;
+_REG.regno = REG_A1;  return REG_A_DOUBLE_ONE;
        YY_BREAK
 case 175:
 YY_RULE_SETUP
 #line 237 "bfin-lex.l"
-_REG.regno = REG_A1;  return REG_A_DOUBLE_ONE;
+_REG.regno = REG_A0x; return REG;
        YY_BREAK
 case 176:
 YY_RULE_SETUP
 #line 238 "bfin-lex.l"
-_REG.regno = REG_A0x; return REG;
+_REG.regno = REG_A0w; return REG;
        YY_BREAK
 case 177:
 YY_RULE_SETUP
 #line 239 "bfin-lex.l"
-_REG.regno = REG_A0w; return REG;
+_REG.regno = REG_A0;  return REG_A_DOUBLE_ZERO;
        YY_BREAK
 case 178:
 YY_RULE_SETUP
 #line 240 "bfin-lex.l"
-_REG.regno = REG_A0;  return REG_A_DOUBLE_ZERO;
+return GOT;
        YY_BREAK
 case 179:
 YY_RULE_SETUP
 #line 241 "bfin-lex.l"
-return GOT;
+return GOT17M4;
        YY_BREAK
 case 180:
 YY_RULE_SETUP
 #line 242 "bfin-lex.l"
-return GOT17M4;
+return FUNCDESC_GOT17M4;
        YY_BREAK
 case 181:
 YY_RULE_SETUP
 #line 243 "bfin-lex.l"
-return FUNCDESC_GOT17M4;
+return PLTPC;
        YY_BREAK
 case 182:
 YY_RULE_SETUP
-#line 244 "bfin-lex.l"
-return PLTPC;
+#line 246 "bfin-lex.l"
+return TILDA;
        YY_BREAK
 case 183:
 YY_RULE_SETUP
 #line 247 "bfin-lex.l"
-return TILDA;
+return _BAR_ASSIGN;
        YY_BREAK
 case 184:
 YY_RULE_SETUP
 #line 248 "bfin-lex.l"
-return _BAR_ASSIGN;
+return BAR;
        YY_BREAK
 case 185:
 YY_RULE_SETUP
 #line 249 "bfin-lex.l"
-return BAR;
+return _CARET_ASSIGN;
        YY_BREAK
 case 186:
 YY_RULE_SETUP
 #line 250 "bfin-lex.l"
-return _CARET_ASSIGN;
+return CARET;
        YY_BREAK
 case 187:
 YY_RULE_SETUP
 #line 251 "bfin-lex.l"
-return CARET;
+return RBRACK;
        YY_BREAK
 case 188:
 YY_RULE_SETUP
 #line 252 "bfin-lex.l"
-return RBRACK;
+return LBRACK;
        YY_BREAK
 case 189:
 YY_RULE_SETUP
 #line 253 "bfin-lex.l"
-return LBRACK;
+return _GREATER_GREATER_GREATER_THAN_ASSIGN;
        YY_BREAK
 case 190:
 YY_RULE_SETUP
 #line 254 "bfin-lex.l"
-return _GREATER_GREATER_GREATER_THAN_ASSIGN;
+return _GREATER_GREATER_ASSIGN;
        YY_BREAK
 case 191:
 YY_RULE_SETUP
 #line 255 "bfin-lex.l"
-return _GREATER_GREATER_ASSIGN;
+return _GREATER_GREATER_GREATER;
        YY_BREAK
 case 192:
 YY_RULE_SETUP
 #line 256 "bfin-lex.l"
-return _GREATER_GREATER_GREATER;
+return GREATER_GREATER;
        YY_BREAK
 case 193:
 YY_RULE_SETUP
 #line 257 "bfin-lex.l"
-return GREATER_GREATER;
+return _ASSIGN_ASSIGN;
        YY_BREAK
 case 194:
 YY_RULE_SETUP
 #line 258 "bfin-lex.l"
-return _ASSIGN_ASSIGN;
+return ASSIGN;
        YY_BREAK
 case 195:
 YY_RULE_SETUP
 #line 259 "bfin-lex.l"
-return ASSIGN;
+return _LESS_THAN_ASSIGN;
        YY_BREAK
 case 196:
 YY_RULE_SETUP
 #line 260 "bfin-lex.l"
-return _LESS_THAN_ASSIGN;
+return _LESS_LESS_ASSIGN;
        YY_BREAK
 case 197:
 YY_RULE_SETUP
 #line 261 "bfin-lex.l"
-return _LESS_LESS_ASSIGN;
+return LESS_LESS;
        YY_BREAK
 case 198:
 YY_RULE_SETUP
 #line 262 "bfin-lex.l"
-return LESS_LESS;
+return LESS_THAN;
        YY_BREAK
 case 199:
 YY_RULE_SETUP
 #line 263 "bfin-lex.l"
-return LESS_THAN;
+return LPAREN;
        YY_BREAK
 case 200:
 YY_RULE_SETUP
 #line 264 "bfin-lex.l"
-return LPAREN;
+return RPAREN;
        YY_BREAK
 case 201:
 YY_RULE_SETUP
 #line 265 "bfin-lex.l"
-return RPAREN;
+return COLON;
        YY_BREAK
 case 202:
 YY_RULE_SETUP
 #line 266 "bfin-lex.l"
-return COLON;
+return SLASH;
        YY_BREAK
 case 203:
 YY_RULE_SETUP
 #line 267 "bfin-lex.l"
-return SLASH;
+return _MINUS_ASSIGN;
        YY_BREAK
 case 204:
 YY_RULE_SETUP
 #line 268 "bfin-lex.l"
-return _MINUS_ASSIGN;
+return _PLUS_BAR_PLUS;
        YY_BREAK
 case 205:
 YY_RULE_SETUP
 #line 269 "bfin-lex.l"
-return _PLUS_BAR_PLUS;
+return _MINUS_BAR_PLUS;
        YY_BREAK
 case 206:
 YY_RULE_SETUP
 #line 270 "bfin-lex.l"
-return _MINUS_BAR_PLUS;
+return _PLUS_BAR_MINUS;
        YY_BREAK
 case 207:
 YY_RULE_SETUP
 #line 271 "bfin-lex.l"
-return _PLUS_BAR_MINUS;
+return _MINUS_BAR_MINUS;
        YY_BREAK
 case 208:
 YY_RULE_SETUP
 #line 272 "bfin-lex.l"
-return _MINUS_BAR_MINUS;
+return _MINUS_MINUS;
        YY_BREAK
 case 209:
 YY_RULE_SETUP
 #line 273 "bfin-lex.l"
-return _MINUS_MINUS;
+return MINUS;
        YY_BREAK
 case 210:
 YY_RULE_SETUP
 #line 274 "bfin-lex.l"
-return MINUS;
+return COMMA;
        YY_BREAK
 case 211:
 YY_RULE_SETUP
 #line 275 "bfin-lex.l"
-return COMMA;
+return _PLUS_ASSIGN;
        YY_BREAK
 case 212:
 YY_RULE_SETUP
 #line 276 "bfin-lex.l"
-return _PLUS_ASSIGN;
+return _PLUS_PLUS;
        YY_BREAK
 case 213:
 YY_RULE_SETUP
 #line 277 "bfin-lex.l"
-return _PLUS_PLUS;
+return PLUS;
        YY_BREAK
 case 214:
 YY_RULE_SETUP
 #line 278 "bfin-lex.l"
-return PLUS;
+return _STAR_ASSIGN;
        YY_BREAK
 case 215:
 YY_RULE_SETUP
 #line 279 "bfin-lex.l"
-return _STAR_ASSIGN;
+return STAR;
        YY_BREAK
 case 216:
 YY_RULE_SETUP
 #line 280 "bfin-lex.l"
-return STAR;
+return _AMPERSAND_ASSIGN;
        YY_BREAK
 case 217:
 YY_RULE_SETUP
 #line 281 "bfin-lex.l"
-return _AMPERSAND_ASSIGN;
+return AMPERSAND;
        YY_BREAK
 case 218:
 YY_RULE_SETUP
 #line 282 "bfin-lex.l"
-return AMPERSAND;
+return PERCENT;
        YY_BREAK
 case 219:
 YY_RULE_SETUP
 #line 283 "bfin-lex.l"
-return PERCENT;
+return BANG;
        YY_BREAK
 case 220:
 YY_RULE_SETUP
 #line 284 "bfin-lex.l"
-return BANG;
+return SEMICOLON;
        YY_BREAK
 case 221:
 YY_RULE_SETUP
 #line 285 "bfin-lex.l"
-return SEMICOLON;
+return _ASSIGN_BANG;
        YY_BREAK
 case 222:
 YY_RULE_SETUP
 #line 286 "bfin-lex.l"
-return _ASSIGN_BANG;
+return DOUBLE_BAR;
        YY_BREAK
 case 223:
 YY_RULE_SETUP
 #line 287 "bfin-lex.l"
-return DOUBLE_BAR;
+return AT;
        YY_BREAK
 case 224:
 YY_RULE_SETUP
 #line 288 "bfin-lex.l"
-return AT;
+return PREFETCH;
        YY_BREAK
 case 225:
 YY_RULE_SETUP
 #line 289 "bfin-lex.l"
-return PREFETCH;
+return UNLINK;
        YY_BREAK
 case 226:
 YY_RULE_SETUP
 #line 290 "bfin-lex.l"
-return UNLINK;
+return LINK;
        YY_BREAK
 case 227:
 YY_RULE_SETUP
 #line 291 "bfin-lex.l"
-return LINK;
+return IDLE;
        YY_BREAK
 case 228:
 YY_RULE_SETUP
 #line 292 "bfin-lex.l"
-return IDLE;
+return IFLUSH;
        YY_BREAK
 case 229:
 YY_RULE_SETUP
 #line 293 "bfin-lex.l"
-return IFLUSH;
+return FLUSHINV;
        YY_BREAK
 case 230:
 YY_RULE_SETUP
 #line 294 "bfin-lex.l"
-return FLUSHINV;
+return FLUSH;
        YY_BREAK
 case 231:
 YY_RULE_SETUP
 #line 295 "bfin-lex.l"
-return FLUSH;
-       YY_BREAK
-case 232:
-YY_RULE_SETUP
-#line 296 "bfin-lex.l"
 {
     yylval.value = parse_int (&yytext);
     return NUMBER;
   }
        YY_BREAK
-case 233:
+case 232:
 YY_RULE_SETUP
-#line 300 "bfin-lex.l"
+#line 299 "bfin-lex.l"
 { 
     yylval.symbol = symbol_find_or_make (yytext);
     symbol_mark_used (yylval.symbol);
     return SYMBOL; 
   }
        YY_BREAK
-case 234:
+case 233:
 YY_RULE_SETUP
-#line 305 "bfin-lex.l"
+#line 304 "bfin-lex.l"
 {
     char *name;
     char *ref = strdup (yytext);
@@ -2312,8 +2318,13 @@ YY_RULE_SETUP
       }                                  
   }                                  
        YY_BREAK
+case 234:
+/* rule 234 can match eol */
+YY_RULE_SETUP
+#line 333 "bfin-lex.l"
+;
+       YY_BREAK
 case 235:
-/* rule 235 can match eol */
 YY_RULE_SETUP
 #line 334 "bfin-lex.l"
 ;
@@ -2321,19 +2332,14 @@ YY_RULE_SETUP
 case 236:
 YY_RULE_SETUP
 #line 335 "bfin-lex.l"
-;
+return yytext[0];
        YY_BREAK
 case 237:
 YY_RULE_SETUP
 #line 336 "bfin-lex.l"
-return yytext[0];
-       YY_BREAK
-case 238:
-YY_RULE_SETUP
-#line 337 "bfin-lex.l"
 ECHO;
        YY_BREAK
-#line 2337 "bfin-lex.c"
+#line 2343 "bfin-lex.c"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(KEYWORD):
        yyterminate();
@@ -2520,7 +2526,7 @@ static int yy_get_next_buffer (void)
 
        else
                {
-                       int num_to_read =
+                       yy_size_t num_to_read =
                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
                while ( num_to_read <= 0 )
@@ -2534,7 +2540,7 @@ static int yy_get_next_buffer (void)
 
                        if ( b->yy_is_our_buffer )
                                {
-                               int new_size = b->yy_buf_size * 2;
+                               yy_size_t new_size = b->yy_buf_size * 2;
 
                                if ( new_size <= 0 )
                                        b->yy_buf_size += b->yy_buf_size / 8;
@@ -2565,7 +2571,7 @@ static int yy_get_next_buffer (void)
 
                /* Read in more data. */
                YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-                       (yy_n_chars), (size_t) num_to_read );
+                       (yy_n_chars), num_to_read );
 
                YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
                }
@@ -2589,6 +2595,14 @@ static int yy_get_next_buffer (void)
        else
                ret_val = EOB_ACT_CONTINUE_SCAN;
 
+       if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
+               /* Extend the array by 50%, plus the number we really need. */
+               yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
+               YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
+               if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+                       YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
+       }
+
        (yy_n_chars) += number_to_move;
        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
        YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
@@ -2618,7 +2632,7 @@ static int yy_get_next_buffer (void)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 559 )
+                       if ( yy_current_state >= 555 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -2646,11 +2660,11 @@ static int yy_get_next_buffer (void)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 559 )
+               if ( yy_current_state >= 555 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 558);
+       yy_is_jam = (yy_current_state == 554);
 
        return yy_is_jam ? 0 : yy_current_state;
 }
@@ -2667,7 +2681,7 @@ static int yy_get_next_buffer (void)
        if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
                { /* need to shift things up to make room */
                /* +2 for EOB chars. */
-               register int number_to_move = (yy_n_chars) + 2;
+               register yy_size_t number_to_move = (yy_n_chars) + 2;
                register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
                                        YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
                register char *source =
@@ -2716,7 +2730,7 @@ static int yy_get_next_buffer (void)
 
                else
                        { /* need more input */
-                       int offset = (yy_c_buf_p) - (yytext_ptr);
+                       yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
                        ++(yy_c_buf_p);
 
                        switch ( yy_get_next_buffer(  ) )
@@ -2740,7 +2754,7 @@ static int yy_get_next_buffer (void)
                                case EOB_ACT_END_OF_FILE:
                                        {
                                        if ( yywrap( ) )
-                                               return EOF;
+                                               return 0;
 
                                        if ( ! (yy_did_buffer_switch_on_eof) )
                                                YY_NEW_FILE;
@@ -2992,7 +3006,7 @@ void yypop_buffer_state (void)
  */
 static void yyensure_buffer_stack (void)
 {
-       int num_to_alloc;
+       yy_size_t num_to_alloc;
     
        if (!(yy_buffer_stack)) {
 
@@ -3004,7 +3018,9 @@ static void yyensure_buffer_stack (void)
                (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
                                                                (num_to_alloc * sizeof(struct yy_buffer_state*)
                                                                );
-               
+               if ( ! (yy_buffer_stack) )
+                       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
+                                                                 
                memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
                                
                (yy_buffer_stack_max) = num_to_alloc;
@@ -3022,6 +3038,8 @@ static void yyensure_buffer_stack (void)
                                                                ((yy_buffer_stack),
                                                                num_to_alloc * sizeof(struct yy_buffer_state*)
                                                                );
+               if ( ! (yy_buffer_stack) )
+                       YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
 
                /* zero only the new slots.*/
                memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
@@ -3085,12 +3103,11 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
+YY_BUFFER_STATE yy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
 {
        YY_BUFFER_STATE b;
        char *buf;
-       yy_size_t n;
-       int i;
+       yy_size_t n, i;
     
        /* Get memory for full buffer, including space for trailing EOB's. */
        n = _yybytes_len + 2;
@@ -3172,7 +3189,7 @@ FILE *yyget_out  (void)
 /** Get the length of the current token.
  * 
  */
-int yyget_leng  (void)
+yy_size_t yyget_leng  (void)
 {
         return yyleng;
 }
@@ -3320,7 +3337,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 337 "bfin-lex.l"
+#line 336 "bfin-lex.l"
 
 
 static long parse_int (char **end)
@@ -3497,6 +3514,7 @@ static long parse_int (char **end)
 static int parse_reg (Register *r, int cl, char *rt)
 {
   r->regno = cl | (rt[1] - '0');
+  r->flags = F_REG_NONE;
   return REG;
 }
 
@@ -3512,11 +3530,12 @@ static int parse_halfreg (Register *r, int cl, char *rt)
 
       case 'l':
       case 'L':
+       r->flags = F_REG_LOW;
        break;
 
       case 'h':
       case 'H':
-       r->regno |= F_REG_HIGH;
+       r->flags = F_REG_HIGH;
        break;
     }