Home | History | Annotate | Download | only in src
      1 #define yy_create_buffer ld_create_buffer
      2 #define yy_delete_buffer ld_delete_buffer
      3 #define yy_scan_buffer ld_scan_buffer
      4 #define yy_scan_string ld_scan_string
      5 #define yy_scan_bytes ld_scan_bytes
      6 #define yy_flex_debug ld_flex_debug
      7 #define yy_init_buffer ld_init_buffer
      8 #define yy_flush_buffer ld_flush_buffer
      9 #define yy_load_buffer_state ld_load_buffer_state
     10 #define yy_switch_to_buffer ld_switch_to_buffer
     11 #define yyin ldin
     12 #define yyleng ldleng
     13 #define yylex ldlex
     14 #define yyout ldout
     15 #define yyrestart ldrestart
     16 #define yytext ldtext
     17 #define yylineno ldlineno
     18 
     19 #line 20 "ldlex.c"
     20 /* A lexical scanner generated by flex */
     21 
     22 /* Scanner skeleton version:
     23  * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
     24  */
     25 
     26 #define FLEX_SCANNER
     27 #define YY_FLEX_MAJOR_VERSION 2
     28 #define YY_FLEX_MINOR_VERSION 5
     29 
     30 #include <stdio.h>
     31 #include <unistd.h>
     32 
     33 
     34 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
     35 #ifdef c_plusplus
     36 #ifndef __cplusplus
     37 #define __cplusplus
     38 #endif
     39 #endif
     40 
     41 
     42 #ifdef __cplusplus
     43 
     44 #include <stdlib.h>
     45 
     46 /* Use prototypes in function declarations. */
     47 #define YY_USE_PROTOS
     48 
     49 /* The "const" storage-class-modifier is valid. */
     50 #define YY_USE_CONST
     51 
     52 #else	/* ! __cplusplus */
     53 
     54 #if __STDC__
     55 
     56 #define YY_USE_PROTOS
     57 #define YY_USE_CONST
     58 
     59 #endif	/* __STDC__ */
     60 #endif	/* ! __cplusplus */
     61 
     62 #ifdef __TURBOC__
     63  #pragma warn -rch
     64  #pragma warn -use
     65 #include <io.h>
     66 #include <stdlib.h>
     67 #define YY_USE_CONST
     68 #define YY_USE_PROTOS
     69 #endif
     70 
     71 #ifdef YY_USE_CONST
     72 #define yyconst const
     73 #else
     74 #define yyconst
     75 #endif
     76 
     77 
     78 #ifdef YY_USE_PROTOS
     79 #define YY_PROTO(proto) proto
     80 #else
     81 #define YY_PROTO(proto) ()
     82 #endif
     83 
     84 /* Returned upon end-of-file. */
     85 #define YY_NULL 0
     86 
     87 /* Promotes a possibly negative, possibly signed char to an unsigned
     88  * integer for use as an array index.  If the signed char is negative,
     89  * we want to instead treat it as an 8-bit unsigned char, hence the
     90  * double cast.
     91  */
     92 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
     93 
     94 /* Enter a start condition.  This macro really ought to take a parameter,
     95  * but we do it the disgusting crufty way forced on us by the ()-less
     96  * definition of BEGIN.
     97  */
     98 #define BEGIN yy_start = 1 + 2 *
     99 
    100 /* Translate the current start state into a value that can be later handed
    101  * to BEGIN to return to the state.  The YYSTATE alias is for lex
    102  * compatibility.
    103  */
    104 #define YY_START ((yy_start - 1) / 2)
    105 #define YYSTATE YY_START
    106 
    107 /* Action number for EOF rule of a given start state. */
    108 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
    109 
    110 /* Special action meaning "start processing a new file". */
    111 #define YY_NEW_FILE yyrestart( yyin )
    112 
    113 #define YY_END_OF_BUFFER_CHAR 0
    114 
    115 /* Size of default input buffer. */
    116 #define YY_BUF_SIZE 16384
    117 
    118 typedef struct yy_buffer_state *YY_BUFFER_STATE;
    119 
    120 extern int yyleng;
    121 extern FILE *yyin, *yyout;
    122 
    123 #define EOB_ACT_CONTINUE_SCAN 0
    124 #define EOB_ACT_END_OF_FILE 1
    125 #define EOB_ACT_LAST_MATCH 2
    126 
    127 /* The funky do-while in the following #define is used to turn the definition
    128  * int a single C statement (which needs a semi-colon terminator).  This
    129  * avoids problems with code like:
    130  *
    131  * 	if ( condition_holds )
    132  *		yyless( 5 );
    133  *	else
    134  *		do_something_else();
    135  *
    136  * Prior to using the do-while the compiler would get upset at the
    137  * "else" because it interpreted the "if" statement as being all
    138  * done when it reached the ';' after the yyless() call.
    139  */
    140 
    141 /* Return all but the first 'n' matched characters back to the input stream. */
    142 
    143 #define yyless(n) \
    144 	do \
    145 		{ \
    146 		/* Undo effects of setting up yytext. */ \
    147 		*yy_cp = yy_hold_char; \
    148 		YY_RESTORE_YY_MORE_OFFSET \
    149 		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
    150 		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
    151 		} \
    152 	while ( 0 )
    153 
    154 #define unput(c) yyunput( c, yytext_ptr )
    155 
    156 /* The following is because we cannot portably get our hands on size_t
    157  * (without autoconf's help, which isn't available because we want
    158  * flex-generated scanners to compile on their own).
    159  */
    160 typedef unsigned int yy_size_t;
    161 
    162 
    163 struct yy_buffer_state
    164 	{
    165 	FILE *yy_input_file;
    166 
    167 	char *yy_ch_buf;		/* input buffer */
    168 	char *yy_buf_pos;		/* current position in input buffer */
    169 
    170 	/* Size of input buffer in bytes, not including room for EOB
    171 	 * characters.
    172 	 */
    173 	yy_size_t yy_buf_size;
    174 
    175 	/* Number of characters read into yy_ch_buf, not including EOB
    176 	 * characters.
    177 	 */
    178 	int yy_n_chars;
    179 
    180 	/* Whether we "own" the buffer - i.e., we know we created it,
    181 	 * and can realloc() it to grow it, and should free() it to
    182 	 * delete it.
    183 	 */
    184 	int yy_is_our_buffer;
    185 
    186 	/* Whether this is an "interactive" input source; if so, and
    187 	 * if we're using stdio for input, then we want to use getc()
    188 	 * instead of fread(), to make sure we stop fetching input after
    189 	 * each newline.
    190 	 */
    191 	int yy_is_interactive;
    192 
    193 	/* Whether we're considered to be at the beginning of a line.
    194 	 * If so, '^' rules will be active on the next match, otherwise
    195 	 * not.
    196 	 */
    197 	int yy_at_bol;
    198 
    199 	/* Whether to try to fill the input buffer when we reach the
    200 	 * end of it.
    201 	 */
    202 	int yy_fill_buffer;
    203 
    204 	int yy_buffer_status;
    205 #define YY_BUFFER_NEW 0
    206 #define YY_BUFFER_NORMAL 1
    207 	/* When an EOF's been seen but there's still some text to process
    208 	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
    209 	 * shouldn't try reading from the input source any more.  We might
    210 	 * still have a bunch of tokens to match, though, because of
    211 	 * possible backing-up.
    212 	 *
    213 	 * When we actually see the EOF, we change the status to "new"
    214 	 * (via yyrestart()), so that the user can continue scanning by
    215 	 * just pointing yyin at a new input file.
    216 	 */
    217 #define YY_BUFFER_EOF_PENDING 2
    218 	};
    219 
    220 static YY_BUFFER_STATE yy_current_buffer = 0;
    221 
    222 /* We provide macros for accessing buffer states in case in the
    223  * future we want to put the buffer states in a more general
    224  * "scanner state".
    225  */
    226 #define YY_CURRENT_BUFFER yy_current_buffer
    227 
    228 
    229 /* yy_hold_char holds the character lost when yytext is formed. */
    230 static char yy_hold_char;
    231 
    232 static int yy_n_chars;		/* number of characters read into yy_ch_buf */
    233 
    234 
    235 int yyleng;
    236 
    237 /* Points to current character in buffer. */
    238 static char *yy_c_buf_p = (char *) 0;
    239 static int yy_init = 1;		/* whether we need to initialize */
    240 static int yy_start = 0;	/* start state number */
    241 
    242 /* Flag which is used to allow yywrap()'s to do buffer switches
    243  * instead of setting up a fresh yyin.  A bit of a hack ...
    244  */
    245 static int yy_did_buffer_switch_on_eof;
    246 
    247 void yyrestart YY_PROTO(( FILE *input_file ));
    248 
    249 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
    250 void yy_load_buffer_state YY_PROTO(( void ));
    251 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
    252 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
    253 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
    254 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
    255 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
    256 
    257 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
    258 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
    259 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
    260 
    261 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
    262 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
    263 static void yy_flex_free YY_PROTO(( void * ));
    264 
    265 #define yy_new_buffer yy_create_buffer
    266 
    267 #define yy_set_interactive(is_interactive) \
    268 	{ \
    269 	if ( ! yy_current_buffer ) \
    270 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
    271 	yy_current_buffer->yy_is_interactive = is_interactive; \
    272 	}
    273 
    274 #define yy_set_bol(at_bol) \
    275 	{ \
    276 	if ( ! yy_current_buffer ) \
    277 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
    278 	yy_current_buffer->yy_at_bol = at_bol; \
    279 	}
    280 
    281 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
    282 
    283 
    284 #define YY_USES_REJECT
    285 
    286 #define yywrap() 1
    287 #define YY_SKIP_YYWRAP
    288 typedef unsigned char YY_CHAR;
    289 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
    290 typedef int yy_state_type;
    291 extern int yylineno;
    292 int yylineno = 1;
    293 extern char *yytext;
    294 #define yytext_ptr yytext
    295 
    296 static yy_state_type yy_get_previous_state YY_PROTO(( void ));
    297 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
    298 static int yy_get_next_buffer YY_PROTO(( void ));
    299 static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
    300 
    301 /* Done after the current pattern has been matched and before the
    302  * corresponding action - sets up yytext.
    303  */
    304 #define YY_DO_BEFORE_ACTION \
    305 	yytext_ptr = yy_bp; \
    306 	yyleng = (int) (yy_cp - yy_bp); \
    307 	yy_hold_char = *yy_cp; \
    308 	*yy_cp = '\0'; \
    309 	yy_c_buf_p = yy_cp;
    310 
    311 #define YY_NUM_RULES 49
    312 #define YY_END_OF_BUFFER 50
    313 static yyconst short int yy_acclist[373] =
    314     {   0,
    315        50,   48,   49,   47,   48,   49,   47,   49,   40,   48,
    316        49,   41,   48,   49,   31,   48,   49,   32,   48,   49,
    317        38,   45,   48,   49,   36,   48,   49,   43,   48,   49,
    318        37,   48,   49,   45,   48,   49,   39,   48,   49,   44,
    319        45,   48,   49,   44,   45,   48,   49,   33,   48,   49,
    320        34,   48,   49,   35,   48,   49,   45,   48,   49,   45,
    321        48,   49,   45,   48,   49,   45,   48,   49,   45,   48,
    322        49,   45,   48,   49,   45,   48,   49,   45,   48,   49,
    323        45,   48,   49,   45,   48,   49,   48,   49,   48,   49,
    324        45,   48,   49,   45,   48,   49,   29,   48,   49,   42,
    325 
    326        48,   49,   30,   48,   49,   48,   49,    9,   49,    9,
    327        49,   47,   45,   46,   45,   46,   10,   46,   44,   45,
    328        46,   44,   45,   46,   44,   45,   46,   45,   46,   44,
    329        45,   46,   45,   46,   45,   46,   45,   46,   45,   46,
    330        45,   46,   45,   46,   45,   46,   45,   46,   45,   46,
    331        45,   46,   45,   46,   45,   46,   45,   46,   28,   45,
    332        46,   45,   46,   44,   45,   46,   45,   46,   45,   46,
    333        45,   46,   45,   46,   45,   46,   45,   46,   45,   46,
    334        45,   46,   45,   46,   45,   46,   45,   46,   45,   46,
    335        45,   46,   45,   46,   45,   46,   45,   46,   45,   46,
    336 
    337        44,   45,   46,   45,   46,   45,   46,   45,   46,   45,
    338        46,   45,   46,   45,   46,   18,   45,   46,   45,   46,
    339        45,   46,   45,   46,   45,   46,   45,   46,   45,   46,
    340        26,   45,   46,   45,   46,   45,   46,   45,   46,   11,
    341        45,   46,   12,   45,   46,   45,   46,   15,   45,   46,
    342        16,   45,   46,   45,   46,   45,   46,   45,   46,   45,
    343        46,   45,   46,   45,   46,   45,   46,   45,   46,   45,
    344        46,   45,   46,   45,   46,   17,   45,   46,   45,   46,
    345        45,   46,   45,   46,   45,   46,   45,   46,   45,   46,
    346        45,   46,   45,   46,   19,    2,    6,   45,   46,   45,
    347 
    348        46,   45,   46,   22,   45,   46,   45,   46,   24,   45,
    349        46,   45,   46,   27,   45,   46,   14,    4,    1,    8,
    350         5,   45,   46,   45,   46,   21,   45,   46,   45,   46,
    351        45,   46,   45,   46,   45,   46,   45,   46,   45,   46,
    352         3,    7,   45,   46,   45,   46,   23,   45,   46,   45,
    353        46,   45,   46,   45,   46,   45,   46,   13,   45,   46,
    354        45,   46,   45,   46,   20,   45,   46,   45,   46,   25,
    355        45,   46
    356     } ;
    357 
    358 static yyconst short int yy_accept[212] =
    359     {   0,
    360         1,    1,    1,    1,    1,    2,    4,    7,    9,   12,
    361        15,   18,   21,   25,   28,   31,   34,   37,   40,   44,
    362        48,   51,   54,   57,   60,   63,   66,   69,   72,   75,
    363        78,   81,   84,   87,   89,   91,   94,   97,  100,  103,
    364       106,  108,  110,  112,  113,  114,  115,  117,  119,  122,
    365       125,  128,  130,  133,  135,  137,  139,  141,  143,  145,
    366       147,  149,  151,  153,  155,  157,  159,  159,  160,  162,
    367       164,  164,  164,  164,  164,  167,  169,  171,  173,  175,
    368       177,  179,  181,  183,  185,  187,  189,  191,  193,  195,
    369       197,  197,  199,  201,  201,  201,  201,  201,  201,  201,
    370 
    371       204,  206,  208,  210,  212,  214,  216,  219,  221,  223,
    372       225,  227,  229,  231,  234,  236,  236,  238,  240,  240,
    373       240,  240,  240,  240,  240,  240,  240,  243,  246,  248,
    374       251,  254,  256,  258,  260,  262,  264,  266,  268,  270,
    375       272,  274,  274,  274,  274,  274,  274,  274,  274,  274,
    376       276,  279,  281,  283,  285,  287,  289,  291,  293,  295,
    377       296,  296,  297,  297,  297,  297,  298,  298,  298,  300,
    378       302,  304,  307,  309,  312,  314,  317,  318,  318,  319,
    379       320,  320,  321,  322,  324,  326,  329,  331,  333,  333,
    380       333,  335,  337,  339,  341,  342,  343,  345,  347,  350,
    381 
    382       352,  354,  356,  358,  361,  363,  365,  368,  370,  373,
    383       373
    384     } ;
    385 
    386 static yyconst int yy_ec[256] =
    387     {   0,
    388         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
    389         2,    2,    2,    1,    1,    1,    1,    1,    1,    1,
    390         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    391         1,    2,    1,    1,    4,    1,    5,    6,    1,    7,
    392         8,    9,   10,   11,   12,   13,   14,   15,   16,   16,
    393        16,   16,   16,   16,   16,   17,   17,   18,   19,    1,
    394        20,    1,   21,    1,   22,   23,   24,   25,   26,   27,
    395        28,   29,   30,   13,   31,   32,   33,   34,   35,   36,
    396        13,   37,   38,   39,   40,   41,   42,   43,   44,   45,
    397        46,   47,   48,    1,   49,    1,   50,   51,   52,   53,
    398 
    399        54,   55,   56,   13,   57,   13,   58,   59,   58,   60,
    400        61,   13,   13,   13,   62,   13,   13,   13,   13,   63,
    401        13,   13,   64,   65,   66,   47,    1,    1,    1,    1,
    402         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    403         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    404         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    405         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    406         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    407         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    408         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    409 
    410         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    411         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    412         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    413         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    414         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    415         1,    1,    1,    1,    1
    416     } ;
    417 
    418 static yyconst int yy_meta[67] =
    419     {   0,
    420         1,    2,    2,    1,    1,    1,    2,    2,    3,    1,
    421         1,    1,    3,    1,    3,    3,    3,    2,    2,    1,
    422         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    423         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    424         3,    3,    3,    3,    3,    2,    1,    2,    3,    3,
    425         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
    426         3,    3,    3,    2,    1,    2
    427     } ;
    428 
    429 static yyconst short int yy_base[215] =
    430     {   0,
    431         0,  218,    0,  216,  219, 2141,   65,   67, 2141, 2141,
    432      2141, 2141,    0, 2141, 2141, 2141,   70,  208,  135,   62,
    433      2141, 2141, 2141,    0,   70,  127,  158,  171,  192,  211,
    434       260,  309,  215,   46,    0,  269,  273, 2141, 2141, 2141,
    435        42, 2141,   43,   70,    0,    0,  330,    0,   48,  322,
    436       333,  382,  385,  434,  437,  458,  471,  520,  507,  529,
    437       558,  564,  613,  609,  616,  647,   67, 2141,  666,  670,
    438        47,  160,   59,  158,   90,  703,  722,  725,  756,  760,
    439       789,  793,  822,  828,  851,  862,  873,  886,  907,  926,
    440        89,  945,  964,   65,  159,  158,   67,  157,  153,  985,
    441 
    442      1004, 1008, 1039, 1042, 1073, 1076, 1107, 1111, 1130, 1161,
    443      1165, 1169, 1198, 1205, 1227,  155, 1234, 1256,  144,  143,
    444       139,  140,  137,  127,  112,  113, 1263, 1285, 1292, 1296,
    445      1325, 1329, 1336, 1365, 1386, 1389, 1420, 1441, 1444, 1465,
    446      1494,  106,  151,   83,   79,   77,  154,   61,   59, 1500,
    447      1503, 1534, 1553, 1556, 1587, 1590, 1609, 1640, 1644, 2141,
    448        58, 2141,  160,  162,   54, 2141,  169,  174, 1648, 1677,
    449      1698, 1701, 1722, 1735, 1757, 1766, 2141,   43, 2141, 2141,
    450        37, 2141, 2141, 1779, 1788, 1801, 1810, 1832,  177,  181,
    451      1839, 1861, 1868, 1892, 2141, 2141, 1901, 1905, 1936, 1945,
    452 
    453      1958, 1980, 1989, 2002, 2011, 2024, 2047, 2055, 2068, 2141,
    454      2131,   76, 2134, 2137
    455     } ;
    456 
    457 static yyconst short int yy_def[215] =
    458     {   0,
    459       210,    1,  211,  211,  210,  210,  210,  210,  210,  210,
    460       210,  210,  212,  210,  210,  210,  213,  214,  213,   19,
    461       210,  210,  210,  212,   19,   19,   19,   19,   19,   19,
    462        19,   19,   19,  210,  214,   19,   19,  210,  210,  210,
    463       210,  210,  210,  210,  212,  214,   19,  214,   19,   19,
    464        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
    465        19,   19,   19,   19,   19,   19,  210,  210,   19,   19,
    466       210,  210,  210,  210,   52,   19,   19,   19,   19,   19,
    467        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
    468       210,   19,   19,  210,  210,  210,  210,  210,  210,   19,
    469 
    470        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
    471        19,   19,   19,   19,   19,  210,   19,   19,  210,  210,
    472       210,  210,  210,  210,  210,  210,   19,   19,   19,   19,
    473        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
    474        19,  210,  210,  210,  210,  210,  210,  210,  210,   19,
    475        19,   19,   19,   19,   19,   19,   19,   19,   19,  210,
    476       210,  210,  210,  210,  210,  210,  210,  210,   19,   19,
    477        19,   19,   19,   19,   19,   19,  210,  210,  210,  210,
    478       210,  210,  210,   19,   19,   19,   19,   19,  210,  210,
    479        19,   19,   19,   19,  210,  210,   19,   19,   19,   19,
    480 
    481        19,   19,   19,   19,   19,   19,   19,   19,   19,    0,
    482       210,  210,  210,  210
    483     } ;
    484 
    485 static yyconst short int yy_nxt[2208] =
    486     {   0,
    487         6,    7,    8,    6,    9,   10,   11,   12,   13,   14,
    488        15,   16,   17,   18,   19,   20,   20,   21,   22,   23,
    489        24,   25,   17,   17,   17,   26,   17,   27,   17,   28,
    490        29,   17,   17,   17,   30,   31,   17,   32,   17,   17,
    491        33,   17,   17,   17,   17,   34,   35,    6,   17,   17,
    492        17,   17,   17,   17,   17,   36,   17,   17,   37,   17,
    493        17,   17,   17,   38,   39,   40,   44,   44,   44,   44,
    494        46,   44,   44,   46,   46,   46,   50,   50,   45,   46,
    495        46,   46,   67,   46,   47,   47,   47,   67,   67,   46,
    496        47,  190,   53,   68,   53,   71,   73,  189,   72,   74,
    497 
    498        47,   54,   47,   91,   47,   94,   95,  181,   91,   91,
    499        47,  178,   47,  168,   68,  167,   46,   97,   98,   53,
    500       100,  119,  100,  123,   47,  116,  120,   47,  124,  165,
    501       116,  116,   47,  164,   46,   46,   68,  163,   46,   46,
    502        46,   47,   47,   47,   46,   46,   46,  100,   46,   49,
    503        49,   50,  162,  162,   46,  166,  166,   47,  161,   47,
    504        55,  179,  179,  180,  180,   51,  149,   51,  148,   56,
    505       182,  182,   47,   47,   47,  183,  183,   52,  195,  195,
    506       147,   46,  196,  196,   47,   47,   47,   47,   47,   47,
    507        47,  146,   51,  145,   57,  144,  143,   52,  142,   46,
    508 
    509        47,   47,   68,   47,   58,  126,   47,   47,   47,  125,
    510       122,  121,   99,   47,   96,   47,   48,   59,  210,   43,
    511        47,   41,   47,  210,   47,   47,   47,   47,   47,   47,
    512        47,   47,  210,   47,   47,  210,  210,  210,  210,  210,
    513        66,   47,  210,   47,  210,   47,  210,   47,  210,   47,
    514        60,  210,  210,   47,   47,  210,  210,   47,  210,  210,
    515       210,  210,  210,  210,  210,  210,  210,  210,   47,  210,
    516       210,  210,   47,   47,   47,   47,   47,   47,  210,  210,
    517       210,   61,  210,   47,   47,   47,  210,   47,   47,   47,
    518        47,  210,   47,  210,  210,  210,   62,  210,  210,   47,
    519 
    520       210,   47,   47,   47,  210,   47,  210,  210,  210,  210,
    521       210,   47,  210,  210,  210,   47,  210,   47,  210,  210,
    522       210,  210,   47,   47,   47,   47,   47,   69,  210,  210,
    523        47,   47,  210,   70,   63,   47,   50,   50,   64,   47,
    524       210,   47,  210,   65,   47,   47,   47,   47,   47,   47,
    525       210,   47,   53,  210,   53,  210,  210,  210,  210,  210,
    526        47,  210,   47,   47,   47,   47,   47,  210,  210,  210,
    527       210,   47,   47,  210,  210,   47,  210,  210,  210,   53,
    528       210,  210,  210,  210,   47,  210,  210,   47,  210,  210,
    529        47,  210,   47,  210,  210,   47,   75,   75,   75,   47,
    530 
    531        47,   47,  210,   75,   75,   75,   75,   75,   75,  210,
    532       210,  210,   47,  210,   47,   47,  210,   47,  210,  210,
    533       210,  210,  210,  210,   47,  210,  210,   47,  210,  210,
    534       210,   75,   75,   75,   75,   75,   75,  210,  210,   47,
    535       210,  210,   47,  210,   47,  210,  210,   47,   47,   47,
    536        47,   47,   47,   47,  210,  210,  210,  210,  210,  210,
    537       210,  210,  210,   76,   47,  210,   47,   47,  210,   47,
    538       210,  210,   47,   47,   47,   77,   47,  210,  210,   47,
    539       210,   78,  210,  210,  210,   47,   47,   47,   47,  210,
    540        47,   47,  210,  210,   47,  210,   47,  210,  210,   47,
    541 
    542        47,   47,  210,   47,  210,   79,  210,  210,  210,  210,
    543       210,  210,  210,   47,  210,   47,  210,  210,  210,  210,
    544        47,   47,   47,   47,  210,  210,  210,  210,   47,  210,
    545       210,  210,   82,   47,   47,   47,   47,   47,  210,   47,
    546       210,  210,  210,   47,   47,   47,  210,  210,  210,   47,
    547        47,  210,   47,  210,  210,   80,  210,  210,   81,   47,
    548       210,   47,   47,  210,   47,  210,  210,   83,  210,   47,
    549       210,   47,   47,   47,   47,  210,  210,   47,   47,   47,
    550        47,  210,   47,  210,  210,   84,   47,  210,   47,  210,
    551        47,   47,  210,  210,   47,  210,   47,  210,   85,  210,
    552 
    553        47,  210,  210,  210,  210,  210,   47,  210,  210,  210,
    554       210,  210,  210,  210,  210,   47,  210,  210,  210,  210,
    555        47,   47,  210,   47,   47,   47,   47,   47,   47,   47,
    556        47,   47,   47,  210,   86,  210,  210,  210,  210,   47,
    557        87,   47,  210,   47,  210,   47,   47,  210,   47,  210,
    558       210,   47,   89,   88,  210,   47,  210,  210,   47,  210,
    559       210,   47,   47,   47,  210,  210,   47,  210,  210,  210,
    560        47,   47,  210,   47,  210,   47,  210,   47,   47,   47,
    561        47,   47,   47,   90,   47,   47,   47,  210,  210,   47,
    562       210,  210,  210,  210,  210,  210,   47,  210,   47,  210,
    563 
    564        47,  210,   47,  210,   47,  210,  210,  210,   47,   47,
    565       210,  210,   47,  210,  210,  210,  210,   47,   47,   47,
    566       210,   93,  210,   47,  210,  210,   92,   47,   47,  210,
    567       101,  210,   47,   47,  210,   47,   47,   47,   47,   47,
    568        47,   47,  210,  210,  210,   47,  210,  210,  210,  210,
    569       210,  210,   47,  210,   47,   47,  103,   47,  102,  210,
    570        47,  210,  210,  210,   47,   47,  210,   47,  210,  210,
    571        47,   47,   47,  210,   47,   47,   47,  210,  210,   47,
    572       210,  210,   47,  210,   47,  210,   47,   47,   47,  210,
    573        47,  210,   47,  210,  210,  104,  210,  210,   47,  105,
    574 
    575       210,  210,   47,   47,   47,   47,  210,   47,   47,   47,
    576       210,  210,  210,   47,  106,  210,  210,   47,   47,   47,
    577       210,   47,   47,   47,  210,   47,  210,  210,  107,  210,
    578       210,   47,  210,  210,  210,   47,   47,   47,   47,  210,
    579       210,  210,   47,   47,   47,  210,   47,  210,  210,  210,
    580        47,   47,   47,  109,   47,   47,  210,  108,   47,  210,
    581        47,  210,  210,  210,   47,   47,   47,   47,  210,  210,
    582        47,  210,  210,  210,  210,  210,   47,   47,   47,   47,
    583       210,   47,  210,   47,   47,   47,  210,   47,   47,   47,
    584        47,  110,   47,   47,   47,  210,  210,  210,  111,  210,
    585 
    586        47,   47,   47,   47,   47,  112,  210,  210,   47,  210,
    587       210,  113,  210,   47,  210,   47,   47,  210,   47,   47,
    588       210,   47,   47,   47,   47,  210,  210,  210,   47,  210,
    589        47,  210,  210,  210,  210,   47,  210,   47,  210,   47,
    590        47,   47,   47,   47,  210,  114,  210,  210,   47,   47,
    591       210,  210,  210,  210,  210,  210,   47,  210,   47,   47,
    592        47,   47,  210,  115,   47,  210,  210,  210,   47,   47,
    593       210,  210,  210,  210,  210,   47,  210,   47,   47,   47,
    594        47,  210,  210,   47,  210,  210,  210,   47,   47,  210,
    595       210,  210,  210,  210,   47,  117,   47,  210,  210,   47,
    596 
    597        47,   47,   47,  210,  210,  210,   47,   47,  210,  210,
    598       210,  210,  210,  118,  210,   47,  210,   47,   47,   47,
    599        47,   47,   47,   47,   47,  210,   47,   47,  210,  210,
    600       210,  210,  210,  210,   47,  210,   47,  127,   47,  210,
    601        47,  210,   47,  210,  210,  210,   47,   47,  210,  210,
    602        47,  128,  210,   47,   47,   47,   47,   47,   47,  210,
    603       210,   47,  210,  210,  210,   47,   47,  210,  210,   47,
    604        47,   47,   47,  210,   47,  210,  210,  130,  129,  210,
    605       210,   47,  210,  210,   47,  210,  210,   47,   47,   47,
    606        47,   47,   47,  210,  210,  210,   47,  210,  210,   47,
    607 
    608       210,   47,  210,   47,   47,   47,   47,  210,   47,  210,
    609       210,  131,  132,  210,  210,   47,  210,  210,   47,  210,
    610       210,   47,   47,   47,  210,   47,   47,   47,  210,  210,
    611        47,  210,  210,   47,  210,   47,  210,   47,   47,   47,
    612       210,   47,  210,   47,   47,   47,   47,  210,  210,   47,
    613       133,  210,  210,   47,  210,  210,  210,  210,  210,  210,
    614        47,  210,   47,  210,   47,  210,  210,  134,   47,   47,
    615       210,  210,   47,   47,  210,   47,   47,   47,  210,   47,
    616        47,   47,  210,   47,   47,   47,  210,   47,  136,  210,
    617       135,   47,   47,   47,  137,   47,  210,   47,  210,   47,
    618 
    619       210,   47,  210,   47,  210,  210,  210,   47,  210,  210,
    620       210,   47,   47,   47,   47,  210,  210,  210,   47,   47,
    621        47,   47,   47,   47,  210,  210,   47,   47,   47,  210,
    622        47,   47,  138,  210,  210,   47,  210,   47,  210,  210,
    623        47,   47,   47,   47,  210,  210,  210,   47,   47,   47,
    624        47,  210,  210,  210,  210,   47,  139,   47,  210,   47,
    625        47,  210,   47,  210,   47,  210,   47,   47,  210,   47,
    626        47,   47,   47,  210,  210,  210,   47,   47,   47,   47,
    627       210,  210,  210,  140,   47,  210,   47,  210,   47,   47,
    628       210,   47,  210,   47,  210,   47,   47,  210,   47,   47,
    629 
    630        47,   47,  210,  210,  210,   47,   47,   47,   47,  210,
    631        47,   47,   47,   47,  141,   47,  150,   47,   47,  210,
    632        47,  210,   47,  210,   47,   47,   47,   47,   47,  210,
    633       210,  210,  210,  210,   47,  210,  210,  210,   47,   47,
    634        47,   47,   47,   47,   47,   47,  210,   47,  210,   47,
    635        47,   47,   47,   47,   47,   47,  210,   47,   47,   47,
    636       210,   47,  210,  210,  151,  210,   47,   47,   47,  210,
    637       210,   47,  210,  210,  152,  210,  210,  210,   47,   47,
    638        47,   47,   47,  210,  210,  210,   47,   47,  210,  210,
    639       210,   47,  210,   47,  153,   47,  210,   47,   47,  210,
    640 
    641        47,   47,   47,   47,   47,   47,  210,   47,  210,  210,
    642       154,  210,  210,  210,  210,  210,   47,  155,   47,   47,
    643       210,   47,   47,  210,  210,  210,  210,   47,   47,  210,
    644       210,   47,  210,  210,   47,   47,   47,  210,  210,  210,
    645       210,  210,  210,   47,  210,  210,   47,  210,   47,  210,
    646        47,   47,   47,  156,  210,   47,   47,   47,   47,   47,
    647        47,  210,   47,  210,  210,  210,  210,  157,  210,  210,
    648       210,   47,  210,   47,   47,  210,   47,   47,  158,   47,
    649        47,   47,   47,   47,  210,  210,   47,  210,  210,  210,
    650       210,  210,  210,  210,  210,   47,  210,   47,   47,  210,
    651 
    652       210,   47,  210,   47,  210,  210,   47,   47,   47,   47,
    653        47,  160,  210,  210,   47,   47,   47,   47,   47,   47,
    654       210,  210,   47,  159,   47,  169,   47,   47,  210,  210,
    655        47,  210,   47,   47,  210,   47,   47,  210,  210,  210,
    656       210,  210,   47,  210,  210,   47,  210,  210,   47,   47,
    657        47,   47,  210,  210,  210,  210,   47,   47,  210,  210,
    658        47,  210,   47,  210,   47,   47,   47,   47,   47,   47,
    659        47,   47,   47,  210,  210,  210,   47,  210,  210,  210,
    660       210,  172,  170,   47,  210,   47,   47,  210,   47,  210,
    661       210,   47,  210,  210,  210,   47,   47,  171,   47,  210,
    662 
    663       210,   47,   47,   47,   47,   47,   47,  210,  210,  210,
    664        47,  210,  210,   47,  210,   47,  210,   47,   47,   47,
    665        47,  210,   47,   47,   47,   47,  210,  210,  174,   47,
    666       210,  210,   47,  210,  210,  173,  210,  210,  210,   47,
    667       210,   47,  210,  210,   47,  210,  210,   47,  210,   47,
    668       210,   47,   47,  210,   47,   47,   47,  175,   47,   47,
    669        47,  177,   47,   47,   47,  210,   47,  210,  210,  210,
    670        47,   47,   47,  176,   47,  210,   47,  210,   47,  210,
    671        47,  210,   47,  210,  210,  210,   47,  210,  210,  210,
    672        47,   47,   47,   47,  210,  210,  184,   47,  210,  210,
    673 
    674       210,   47,   47,  185,  210,   47,   47,   47,  210,   47,
    675        47,  210,   47,   47,   47,   47,   47,   47,  210,   47,
    676       210,  210,  210,  186,  210,  210,  210,  210,   47,  210,
    677        47,   47,  210,   47,   47,  210,   47,   47,   47,   47,
    678        47,  210,  210,   47,  210,  210,  187,  210,  210,   47,
    679        47,   47,   47,  210,   47,   47,  210,  210,   47,  210,
    680        47,  210,  210,   47,   47,   47,  210,   47,  210,  210,
    681       210,   47,   47,   47,  210,  210,  210,   47,  210,   47,
    682        47,   47,   47,  210,   47,  188,  210,   47,  210,   47,
    683       210,  210,   47,   47,   47,   47,   47,   47,   47,   47,
    684 
    685       210,  210,   47,   47,   47,  191,  210,  210,   47,   47,
    686       210,   47,  210,  210,   47,   47,   47,   47,   47,   47,
    687        47,   47,  192,   47,   47,   47,   47,  210,   47,  210,
    688        47,   47,  210,   47,  210,  210,   47,  210,  210,  193,
    689        47,   47,   47,   47,  210,   47,   47,   47,   47,  210,
    690        47,  210,   47,   47,   47,   47,  210,  194,   47,  210,
    691       210,  210,   47,   47,   47,  210,  210,   47,  197,   47,
    692       210,   47,   47,  210,   47,   47,   47,   47,  210,  210,
    693       210,   47,   47,   47,   47,  210,  210,  210,  210,   47,
    694       210,   47,  210,   47,   47,  210,   47,  198,   47,  210,
    695 
    696        47,   47,  210,   47,  199,  210,   47,   47,   47,  210,
    697        47,  210,  210,  200,  210,   47,   47,   47,   47,   47,
    698        47,   47,   47,   47,   47,   47,  210,  210,  210,  210,
    699        47,   47,  201,   47,   47,   47,  210,  202,  210,  210,
    700       210,  210,  210,   47,  210,  210,  210,   47,  210,   47,
    701        47,   47,   47,  210,   47,  210,  210,  210,   47,   47,
    702        47,   47,   47,   47,  210,  210,   47,   47,   47,  203,
    703       210,  210,   47,   47,   47,   47,  210,   47,   47,  210,
    704       210,  210,  210,  204,  210,  210,  210,   47,   47,  210,
    705        47,  210,  210,   47,   47,   47,   47,  210,   47,  210,
    706 
    707        47,  205,   47,   47,   47,   47,  210,   47,  210,  210,
    708        47,  210,   47,  210,  206,   47,   47,   47,   47,   47,
    709        47,   47,   47,  210,  210,   47,   47,   47,  210,  210,
    710       210,   47,   47,  210,   47,  210,  210,   47,   47,   47,
    711        47,   47,   47,   47,   47,  210,   47,  210,  210,  207,
    712       210,   47,  210,   47,   47,  210,   47,  210,  210,   47,
    713       208,   47,   47,   47,   47,  210,   47,  210,   47,   47,
    714        47,   47,  210,   47,  210,  210,  210,   47,  210,   47,
    715       210,   47,   47,   47,   47,   47,   47,   47,  210,   47,
    716       210,  210,  209,  210,  210,  210,  210,   47,   47,  210,
    717 
    718        47,  210,  210,  210,   47,  210,  210,  210,  210,   47,
    719        47,  210,   47,  210,  210,  210,  210,   47,  210,  210,
    720       210,  210,  210,  210,  210,   47,  210,  210,  210,  210,
    721        47,   42,   42,   42,   47,  210,   47,   46,  210,   46,
    722         5,  210,  210,  210,  210,  210,  210,  210,  210,  210,
    723       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
    724       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
    725       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
    726       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
    727       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
    728 
    729       210,  210,  210,  210,  210,  210,  210
    730     } ;
    731 
    732 static yyconst short int yy_chk[2208] =
    733     {   0,
    734         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    735         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    736         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    737         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    738         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    739         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
    740         1,    1,    1,    1,    1,    1,    7,    7,    8,    8,
    741        17,   44,   44,   17,   17,   17,   20,   20,  212,   17,
    742        17,   17,   34,   17,   25,   25,   25,   34,   34,   17,
    743        49,  181,   20,   34,   20,   41,   43,  178,   41,   43,
    744 
    745        25,   25,   25,   67,   20,   71,   71,  165,   67,   67,
    746        49,  161,   25,  149,   67,  148,   17,   73,   73,   20,
    747        75,   94,   75,   97,   20,   91,   94,   25,   97,  146,
    748        91,   91,   25,  145,   17,   19,   91,  144,   19,   19,
    749        19,   26,   26,   26,   19,   19,   19,   75,   19,   19,
    750        19,   19,  143,  143,   19,  147,  147,   26,  142,   26,
    751        26,  163,  163,  164,  164,   19,  126,   19,  125,   26,
    752       167,  167,   27,   27,   27,  168,  168,   19,  189,  189,
    753       124,   19,  190,  190,   26,   28,   28,   28,   27,   26,
    754        27,  123,   19,  122,   27,  121,  120,   19,  119,   19,
    755 
    756        27,   28,  116,   28,   28,   99,   29,   29,   29,   98,
    757        96,   95,   74,   28,   72,   27,   18,   29,    5,    4,
    758        27,    2,   29,    0,   29,   30,   30,   30,   28,   33,
    759        33,   33,    0,   28,   29,    0,    0,    0,    0,    0,
    760        33,   30,    0,   30,    0,   33,    0,   33,    0,   29,
    761        30,    0,    0,   30,   29,    0,    0,   33,    0,    0,
    762         0,    0,    0,    0,    0,    0,    0,    0,   30,    0,
    763         0,    0,   33,   30,   31,   31,   31,   33,    0,    0,
    764         0,   31,    0,   36,   36,   36,    0,   37,   37,   37,
    765        31,    0,   31,    0,    0,    0,   31,    0,    0,   36,
    766 
    767         0,   36,   31,   37,    0,   37,    0,    0,    0,    0,
    768         0,   36,    0,    0,    0,   37,    0,   31,    0,    0,
    769         0,    0,   31,   32,   32,   32,   36,   36,    0,    0,
    770        37,   36,    0,   37,   32,   37,   50,   50,   32,   32,
    771         0,   32,    0,   32,   47,   47,   47,   51,   51,   51,
    772         0,   32,   50,    0,   50,    0,    0,    0,    0,    0,
    773        47,    0,   47,   51,   50,   51,   32,    0,    0,    0,
    774         0,   32,   47,    0,    0,   51,    0,    0,    0,   50,
    775         0,    0,    0,    0,   50,    0,    0,   47,    0,    0,
    776        51,    0,   47,    0,    0,   51,   52,   52,   52,   53,
    777 
    778        53,   53,    0,   52,   52,   52,   52,   52,   52,    0,
    779         0,    0,   52,    0,   52,   53,    0,   53,    0,    0,
    780         0,    0,    0,    0,   52,    0,    0,   53,    0,    0,
    781         0,   52,   52,   52,   52,   52,   52,    0,    0,   52,
    782         0,    0,   53,    0,   52,    0,    0,   53,   54,   54,
    783        54,   55,   55,   55,    0,    0,    0,    0,    0,    0,
    784         0,    0,    0,   54,   54,    0,   54,   55,    0,   55,
    785         0,    0,   56,   56,   56,   55,   54,    0,    0,   55,
    786         0,   56,    0,    0,    0,   57,   57,   57,   56,    0,
    787        56,   54,    0,    0,   55,    0,   54,    0,    0,   55,
    788 
    789        56,   57,    0,   57,    0,   57,    0,    0,    0,    0,
    790         0,    0,    0,   57,    0,   56,    0,    0,    0,    0,
    791        56,   59,   59,   59,    0,    0,    0,    0,   57,    0,
    792         0,    0,   59,   57,   58,   58,   58,   59,    0,   59,
    793         0,    0,    0,   60,   60,   60,    0,    0,    0,   59,
    794        58,    0,   58,    0,    0,   58,    0,    0,   58,   60,
    795         0,   60,   58,    0,   59,    0,    0,   60,    0,   59,
    796         0,   60,   61,   61,   61,    0,    0,   58,   62,   62,
    797        62,    0,   58,    0,    0,   61,   60,    0,   61,    0,
    798        61,   60,    0,    0,   62,    0,   62,    0,   62,    0,
    799 
    800        61,    0,    0,    0,    0,    0,   62,    0,    0,    0,
    801         0,    0,    0,    0,    0,   61,    0,    0,    0,    0,
    802        61,   62,    0,   64,   64,   64,   62,   63,   63,   63,
    803        65,   65,   65,    0,   63,    0,    0,    0,    0,   64,
    804        63,   64,    0,   63,    0,   63,   65,    0,   65,    0,
    805         0,   64,   65,   64,    0,   63,    0,    0,   65,    0,
    806         0,   66,   66,   66,    0,    0,   64,    0,    0,    0,
    807        63,   64,    0,   65,    0,   63,    0,   66,   65,   66,
    808        69,   69,   69,   66,   70,   70,   70,    0,    0,   66,
    809         0,    0,    0,    0,    0,    0,   69,    0,   69,    0,
    810 
    811        70,    0,   70,    0,   66,    0,    0,    0,   69,   66,
    812         0,    0,   70,    0,    0,    0,    0,   76,   76,   76,
    813         0,   70,    0,   69,    0,    0,   69,   70,   69,    0,
    814        76,    0,   70,   76,    0,   76,   77,   77,   77,   78,
    815        78,   78,    0,    0,    0,   76,    0,    0,    0,    0,
    816         0,    0,   77,    0,   77,   78,   78,   78,   77,    0,
    817        76,    0,    0,    0,   77,   76,    0,   78,    0,    0,
    818        79,   79,   79,    0,   80,   80,   80,    0,    0,   77,
    819         0,    0,   78,    0,   77,    0,   79,   78,   79,    0,
    820        80,    0,   80,    0,    0,   79,    0,    0,   79,   80,
    821 
    822         0,    0,   80,   81,   81,   81,    0,   82,   82,   82,
    823         0,    0,    0,   79,   81,    0,    0,   80,   79,   81,
    824         0,   81,   80,   82,    0,   82,    0,    0,   82,    0,
    825         0,   81,    0,    0,    0,   82,   83,   83,   83,    0,
    826         0,    0,   84,   84,   84,    0,   81,    0,    0,    0,
    827        82,   81,   83,   84,   83,   82,    0,   83,   84,    0,
    828        84,    0,    0,    0,   83,   85,   85,   85,    0,    0,
    829        84,    0,    0,    0,    0,    0,   86,   86,   86,   83,
    830         0,   85,    0,   85,   83,   84,    0,   87,   87,   87,
    831        84,   85,   86,   85,   86,    0,    0,    0,   86,    0,
    832 
    833        88,   88,   88,   87,   86,   87,    0,    0,   85,    0,
    834         0,   88,    0,   85,    0,   87,   88,    0,   88,   86,
    835         0,   89,   89,   89,   86,    0,    0,    0,   88,    0,
    836        87,    0,    0,    0,    0,   87,    0,   89,    0,   89,
    837        90,   90,   90,   88,    0,   89,    0,    0,   88,   89,
    838         0,    0,    0,    0,    0,    0,   90,    0,   90,   92,
    839        92,   92,    0,   90,   89,    0,    0,    0,   90,   89,
    840         0,    0,    0,    0,    0,   92,    0,   92,   93,   93,
    841        93,    0,    0,   90,    0,    0,    0,   92,   90,    0,
    842         0,    0,    0,    0,   93,   92,   93,    0,    0,  100,
    843 
    844       100,  100,   92,    0,    0,    0,   93,   92,    0,    0,
    845         0,    0,    0,   93,    0,  100,    0,  100,  101,  101,
    846       101,   93,  102,  102,  102,    0,   93,  100,    0,    0,
    847         0,    0,    0,    0,  101,    0,  101,  101,  102,    0,
    848       102,    0,  100,    0,    0,    0,  101,  100,    0,    0,
    849       102,  102,    0,  103,  103,  103,  104,  104,  104,    0,
    850         0,  101,    0,    0,    0,  102,  101,    0,    0,  103,
    851       102,  103,  104,    0,  104,    0,    0,  104,  103,    0,
    852         0,  103,    0,    0,  104,    0,    0,  105,  105,  105,
    853       106,  106,  106,    0,    0,    0,  103,    0,    0,  104,
    854 
    855         0,  103,    0,  105,  104,  105,  106,    0,  106,    0,
    856         0,  105,  106,    0,    0,  105,    0,    0,  106,    0,
    857         0,  107,  107,  107,    0,  108,  108,  108,    0,    0,
    858       105,    0,    0,  106,    0,  105,    0,  107,  106,  107,
    859         0,  108,    0,  108,  109,  109,  109,    0,    0,  107,
    860       108,    0,    0,  108,    0,    0,    0,    0,    0,    0,
    861       109,    0,  109,    0,  107,    0,    0,  109,  108,  107,
    862         0,    0,  109,  108,    0,  110,  110,  110,    0,  111,
    863       111,  111,    0,  112,  112,  112,    0,  109,  111,    0,
    864       110,  110,  109,  110,  112,  111,    0,  111,    0,  112,
    865 
    866         0,  112,    0,  110,    0,    0,    0,  111,    0,    0,
    867         0,  112,  113,  113,  113,    0,    0,    0,  110,  114,
    868       114,  114,  111,  110,    0,    0,  112,  111,  113,    0,
    869       113,  112,  113,    0,    0,  114,    0,  114,    0,    0,
    870       113,  115,  115,  115,    0,    0,    0,  114,  117,  117,
    871       117,    0,    0,    0,    0,  113,  115,  115,    0,  115,
    872       113,    0,  114,    0,  117,    0,  117,  114,    0,  115,
    873       118,  118,  118,    0,    0,    0,  117,  127,  127,  127,
    874         0,    0,    0,  117,  115,    0,  118,    0,  118,  115,
    875         0,  117,    0,  127,    0,  127,  117,    0,  118,  128,
    876 
    877       128,  128,    0,    0,    0,  127,  129,  129,  129,    0,
    878       130,  130,  130,  118,  118,  128,  129,  128,  118,    0,
    879       127,    0,  129,    0,  129,  127,  130,  128,  130,    0,
    880         0,    0,    0,    0,  129,    0,    0,    0,  130,  131,
    881       131,  131,  128,  132,  132,  132,    0,  128,    0,  129,
    882       133,  133,  133,  130,  129,  131,    0,  131,  130,  132,
    883         0,  132,    0,    0,  132,    0,  133,  131,  133,    0,
    884         0,  132,    0,    0,  133,    0,    0,    0,  133,  134,
    885       134,  134,  131,    0,    0,    0,  132,  131,    0,    0,
    886         0,  132,    0,  133,  134,  134,    0,  134,  133,    0,
    887 
    888       135,  135,  135,  136,  136,  136,    0,  134,    0,    0,
    889       135,    0,    0,    0,    0,    0,  135,  136,  135,  136,
    890         0,  136,  134,    0,    0,    0,    0,  134,  135,    0,
    891         0,  136,    0,    0,  137,  137,  137,    0,    0,    0,
    892         0,    0,    0,  135,    0,    0,  136,    0,  135,    0,
    893       137,  136,  137,  137,    0,  138,  138,  138,  139,  139,
    894       139,    0,  137,    0,    0,    0,    0,  138,    0,    0,
    895         0,  138,    0,  138,  139,    0,  139,  137,  139,  140,
    896       140,  140,  137,  138,    0,    0,  139,    0,    0,    0,
    897         0,    0,    0,    0,    0,  140,    0,  140,  138,    0,
    898 
    899         0,  139,    0,  138,    0,    0,  139,  140,  141,  141,
    900       141,  141,    0,    0,  150,  150,  150,  151,  151,  151,
    901         0,    0,  140,  140,  141,  150,  141,  140,    0,    0,
    902       150,    0,  150,  151,    0,  151,  141,    0,    0,    0,
    903         0,    0,  150,    0,    0,  151,    0,    0,  152,  152,
    904       152,  141,    0,    0,    0,    0,  141,  150,    0,    0,
    905       151,    0,  150,    0,  152,  151,  152,  153,  153,  153,
    906       154,  154,  154,    0,    0,    0,  152,    0,    0,    0,
    907         0,  154,  152,  153,    0,  153,  154,    0,  154,    0,
    908         0,  152,    0,    0,    0,  153,  152,  153,  154,    0,
    909 
    910         0,  155,  155,  155,  156,  156,  156,    0,    0,    0,
    911       153,    0,    0,  154,    0,  153,    0,  155,  154,  155,
    912       156,    0,  156,  157,  157,  157,    0,    0,  156,  155,
    913         0,    0,  156,    0,    0,  155,    0,    0,    0,  157,
    914         0,  157,    0,    0,  155,    0,    0,  156,    0,  155,
    915         0,  157,  156,    0,  158,  158,  158,  157,  159,  159,
    916       159,  159,  169,  169,  169,    0,  157,    0,    0,    0,
    917       158,  157,  158,  158,  159,    0,  159,    0,  169,    0,
    918       169,    0,  158,    0,    0,    0,  159,    0,    0,    0,
    919       169,  170,  170,  170,    0,    0,  169,  158,    0,    0,
    920 
    921         0,  159,  158,  170,    0,  169,  159,  170,    0,  170,
    922       169,    0,  171,  171,  171,  172,  172,  172,    0,  170,
    923         0,    0,    0,  171,    0,    0,    0,    0,  171,    0,
    924       171,  172,    0,  172,  170,    0,  173,  173,  173,  170,
    925       171,    0,    0,  172,    0,    0,  173,    0,    0,  174,
    926       174,  174,  173,    0,  173,  171,    0,    0,  172,    0,
    927       171,    0,    0,  172,  173,  174,    0,  174,    0,    0,
    928         0,  175,  175,  175,    0,    0,    0,  174,    0,  173,
    929       176,  176,  176,    0,  173,  175,    0,  175,    0,  175,
    930         0,    0,  174,  184,  184,  184,  176,  174,  176,  175,
    931 
    932         0,    0,  185,  185,  185,  184,    0,    0,  176,  184,
    933         0,  184,    0,    0,  175,  186,  186,  186,  185,  175,
    934       185,  184,  185,  176,  187,  187,  187,    0,  176,    0,
    935       185,  186,    0,  186,    0,    0,  184,    0,    0,  187,
    936       187,  184,  187,  186,    0,  185,  188,  188,  188,    0,
    937       185,    0,  187,  191,  191,  191,    0,  188,  186,    0,
    938         0,    0,  188,  186,  188,    0,    0,  187,  191,  191,
    939         0,  191,  187,    0,  188,  192,  192,  192,    0,    0,
    940         0,  191,  193,  193,  193,    0,    0,    0,    0,  188,
    941         0,  192,    0,  192,  188,    0,  191,  192,  193,    0,
    942 
    943       193,  191,    0,  192,  193,    0,  194,  194,  194,    0,
    944       193,    0,    0,  194,    0,  197,  197,  197,  192,  198,
    945       198,  198,  194,  192,  194,  193,    0,    0,    0,    0,
    946       193,  197,  197,  197,  194,  198,    0,  198,    0,    0,
    947         0,    0,    0,  197,    0,    0,    0,  198,    0,  194,
    948       199,  199,  199,    0,  194,    0,    0,    0,  197,  200,
    949       200,  200,  198,  197,    0,    0,  199,  198,  199,  200,
    950         0,    0,  201,  201,  201,  200,    0,  200,  199,    0,
    951         0,    0,    0,  201,    0,    0,    0,  200,  201,    0,
    952       201,    0,    0,  199,  202,  202,  202,    0,  199,    0,
    953 
    954       201,  202,  200,  203,  203,  203,    0,  200,    0,    0,
    955       202,    0,  202,    0,  203,  201,  204,  204,  204,  203,
    956       201,  203,  202,    0,    0,  205,  205,  205,    0,    0,
    957         0,  203,  204,    0,  204,    0,    0,  202,  206,  206,
    958       206,  205,  202,  205,  204,    0,  203,    0,    0,  205,
    959         0,  203,    0,  205,  206,    0,  206,    0,    0,  204,
    960       206,  207,  207,  207,  204,    0,  206,    0,  205,  208,
    961       208,  208,    0,  205,    0,    0,    0,  207,    0,  207,
    962         0,  206,  209,  209,  209,  208,  206,  208,    0,  207,
    963         0,    0,  208,    0,    0,    0,    0,  208,  209,    0,
    964 
    965       209,    0,    0,    0,  207,    0,    0,    0,    0,  207,
    966       209,    0,  208,    0,    0,    0,    0,  208,    0,    0,
    967         0,    0,    0,    0,    0,  209,    0,    0,    0,    0,
    968       209,  211,  211,  211,  213,    0,  213,  214,    0,  214,
    969       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
    970       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
    971       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
    972       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
    973       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
    974       210,  210,  210,  210,  210,  210,  210,  210,  210,  210,
    975 
    976       210,  210,  210,  210,  210,  210,  210
    977     } ;
    978 
    979 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
    980 static char *yy_full_match;
    981 static int yy_lp;
    982 #define REJECT \
    983 { \
    984 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
    985 yy_cp = yy_full_match; /* restore poss. backed-over text */ \
    986 ++yy_lp; \
    987 goto find_rule; \
    988 }
    989 #define yymore() yymore_used_but_not_detected
    990 #define YY_MORE_ADJ 0
    991 #define YY_RESTORE_YY_MORE_OFFSET
    992 char *yytext;
    993 #line 1 "/home/drepper/gnu/elfutils/src/ldlex.l"
    994 #define INITIAL 0
    995 #line 2 "/home/drepper/gnu/elfutils/src/ldlex.l"
    996 /* Copyright (C) 2001, 2002, 2003, 2004 Red Hat, Inc.
    997    Written by Ulrich Drepper <drepper (at) redhat.com>, 2001.
    998 
    999    This program is Open Source software; you can redistribute it and/or
   1000    modify it under the terms of the Open Software License version 1.0 as
   1001    published by the Open Source Initiative.
   1002 
   1003    You should have received a copy of the Open Software License along
   1004    with this program; if not, you may obtain a copy of the Open Software
   1005    License version 1.0 from http://www.opensource.org/licenses/osl.php or
   1006    by writing the Open Source Initiative c/o Lawrence Rosen, Esq.,
   1007    3001 King Ranch Road, Ukiah, CA 95482.   */
   1008 
   1009 #ifdef HAVE_CONFIG_H
   1010 # include <config.h>
   1011 #endif
   1012 
   1013 #include <assert.h>
   1014 #include <ctype.h>
   1015 #include <elf.h>
   1016 #include <error.h>
   1017 #include <inttypes.h>
   1018 #include <libintl.h>
   1019 #include <stdbool.h>
   1020 #include <stdio.h>
   1021 #include <string.h>
   1022 
   1023 #include <system.h>
   1024 #include <ld.h>
   1025 #include "ldscript.h"
   1026 
   1027 /* We sure use no threads to read the stream, so use the _unlocked
   1028    variants of the functions.  */
   1029 #undef getc
   1030 #define getc(s) getc_unlocked (s)
   1031 #undef ferror
   1032 #define ferror(s) ferror_unlocked (s)
   1033 #undef fread
   1034 #define fread(b, m, n, s) fread_unlocked (b, m, n, s)
   1035 #undef fwrite
   1036 #define fwrite(b, m, n, s) fwrite_unlocked (b, m, n, s)
   1037 
   1038 /* Defined in ld.c.  */
   1039 extern int ld_scan_version_script;
   1040 
   1041 #define MAX_PREPDEPTH 20
   1042 static enum prepstate
   1043 {
   1044   prep_normal,
   1045   skip_if,
   1046   skip_to_endif
   1047 } prepstate[MAX_PREPDEPTH];
   1048 static int prepdepth;
   1049 
   1050 static void eat_comment (void);
   1051 static void eat_to_eol (bool empty);
   1052 static int attrib_convert (int c);
   1053 static void push_state (enum prepstate);
   1054 static int pop_state (void);
   1055 static int handle_ifdef (void);
   1056 static void invalid_char (int ch);
   1057 #define YY_NEVER_INTERACTIVE 1
   1058 #define IGNORE 1
   1059 
   1060 #line 1061 "ldlex.c"
   1061 
   1062 /* Macros after this point can all be overridden by user definitions in
   1063  * section 1.
   1064  */
   1065 
   1066 #ifndef YY_SKIP_YYWRAP
   1067 #ifdef __cplusplus
   1068 extern "C" int yywrap YY_PROTO(( void ));
   1069 #else
   1070 extern int yywrap YY_PROTO(( void ));
   1071 #endif
   1072 #endif
   1073 
   1074 #ifndef YY_NO_UNPUT
   1075 static void yyunput YY_PROTO(( int c, char *buf_ptr ));
   1076 #endif
   1077 
   1078 #ifndef yytext_ptr
   1079 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
   1080 #endif
   1081 
   1082 #ifdef YY_NEED_STRLEN
   1083 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
   1084 #endif
   1085 
   1086 #ifndef YY_NO_INPUT
   1087 #ifdef __cplusplus
   1088 static int yyinput YY_PROTO(( void ));
   1089 #else
   1090 static int input YY_PROTO(( void ));
   1091 #endif
   1092 #endif
   1093 
   1094 #if YY_STACK_USED
   1095 static int yy_start_stack_ptr = 0;
   1096 static int yy_start_stack_depth = 0;
   1097 static int *yy_start_stack = 0;
   1098 #ifndef YY_NO_PUSH_STATE
   1099 static void yy_push_state YY_PROTO(( int new_state ));
   1100 #endif
   1101 #ifndef YY_NO_POP_STATE
   1102 static void yy_pop_state YY_PROTO(( void ));
   1103 #endif
   1104 #ifndef YY_NO_TOP_STATE
   1105 static int yy_top_state YY_PROTO(( void ));
   1106 #endif
   1107 
   1108 #else
   1109 #define YY_NO_PUSH_STATE 1
   1110 #define YY_NO_POP_STATE 1
   1111 #define YY_NO_TOP_STATE 1
   1112 #endif
   1113 
   1114 #ifdef YY_MALLOC_DECL
   1115 YY_MALLOC_DECL
   1116 #else
   1117 #if __STDC__
   1118 #ifndef __cplusplus
   1119 #include <stdlib.h>
   1120 #endif
   1121 #else
   1122 /* Just try to get by without declaring the routines.  This will fail
   1123  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
   1124  * or sizeof(void*) != sizeof(int).
   1125  */
   1126 #endif
   1127 #endif
   1128 
   1129 /* Amount of stuff to slurp up with each read. */
   1130 #ifndef YY_READ_BUF_SIZE
   1131 #define YY_READ_BUF_SIZE 8192
   1132 #endif
   1133 
   1134 /* Copy whatever the last rule matched to the standard output. */
   1135 
   1136 #ifndef ECHO
   1137 /* This used to be an fputs(), but since the string might contain NUL's,
   1138  * we now use fwrite().
   1139  */
   1140 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
   1141 #endif
   1142 
   1143 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
   1144  * is returned in "result".
   1145  */
   1146 #ifndef YY_INPUT
   1147 #define YY_INPUT(buf,result,max_size) \
   1148 	if ( yy_current_buffer->yy_is_interactive ) \
   1149 		{ \
   1150 		int c = '*', n; \
   1151 		for ( n = 0; n < max_size && \
   1152 			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
   1153 			buf[n] = (char) c; \
   1154 		if ( c == '\n' ) \
   1155 			buf[n++] = (char) c; \
   1156 		if ( c == EOF && ferror( yyin ) ) \
   1157 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
   1158 		result = n; \
   1159 		} \
   1160 	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
   1161 		  && ferror( yyin ) ) \
   1162 		YY_FATAL_ERROR( "input in flex scanner failed" );
   1163 #endif
   1164 
   1165 /* No semi-colon after return; correct usage is to write "yyterminate();" -
   1166  * we don't want an extra ';' after the "return" because that will cause
   1167  * some compilers to complain about unreachable statements.
   1168  */
   1169 #ifndef yyterminate
   1170 #define yyterminate() return YY_NULL
   1171 #endif
   1172 
   1173 /* Number of entries by which start-condition stack grows. */
   1174 #ifndef YY_START_STACK_INCR
   1175 #define YY_START_STACK_INCR 25
   1176 #endif
   1177 
   1178 /* Report a fatal error. */
   1179 #ifndef YY_FATAL_ERROR
   1180 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
   1181 #endif
   1182 
   1183 /* Default declaration of generated scanner - a define so the user can
   1184  * easily add parameters.
   1185  */
   1186 #ifndef YY_DECL
   1187 #define YY_DECL int yylex YY_PROTO(( void ))
   1188 #endif
   1189 
   1190 /* Code executed at the beginning of each rule, after yytext and yyleng
   1191  * have been set up.
   1192  */
   1193 #ifndef YY_USER_ACTION
   1194 #define YY_USER_ACTION
   1195 #endif
   1196 
   1197 /* Code executed at the end of each rule. */
   1198 #ifndef YY_BREAK
   1199 #define YY_BREAK break;
   1200 #endif
   1201 
   1202 #define YY_RULE_SETUP \
   1203 	if ( yyleng > 0 ) \
   1204 		yy_current_buffer->yy_at_bol = \
   1205 				(yytext[yyleng - 1] == '\n'); \
   1206 	YY_USER_ACTION
   1207 
   1208 YY_DECL
   1209 	{
   1210 	register yy_state_type yy_current_state;
   1211 	register char *yy_cp = NULL, *yy_bp = NULL;
   1212 	register int yy_act;
   1213 
   1214 #line 79 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1215 
   1216 				if (unlikely (ld_scan_version_script))
   1217 				  {
   1218 				    ld_scan_version_script = -1;
   1219 				    return kVERSION_SCRIPT;
   1220 				  }
   1221 
   1222 #line 1223 "ldlex.c"
   1223 
   1224 	if ( yy_init )
   1225 		{
   1226 		yy_init = 0;
   1227 
   1228 #ifdef YY_USER_INIT
   1229 		YY_USER_INIT;
   1230 #endif
   1231 
   1232 		if ( ! yy_start )
   1233 			yy_start = 1;	/* first start state */
   1234 
   1235 		if ( ! yyin )
   1236 			yyin = stdin;
   1237 
   1238 		if ( ! yyout )
   1239 			yyout = stdout;
   1240 
   1241 		if ( ! yy_current_buffer )
   1242 			yy_current_buffer =
   1243 				yy_create_buffer( yyin, YY_BUF_SIZE );
   1244 
   1245 		yy_load_buffer_state();
   1246 		}
   1247 
   1248 	while ( 1 )		/* loops until end-of-file is reached */
   1249 		{
   1250 		yy_cp = yy_c_buf_p;
   1251 
   1252 		/* Support of yytext. */
   1253 		*yy_cp = yy_hold_char;
   1254 
   1255 		/* yy_bp points to the position in yy_ch_buf of the start of
   1256 		 * the current run.
   1257 		 */
   1258 		yy_bp = yy_cp;
   1259 
   1260 		yy_current_state = yy_start;
   1261 		yy_current_state += YY_AT_BOL();
   1262 		yy_state_ptr = yy_state_buf;
   1263 		*yy_state_ptr++ = yy_current_state;
   1264 yy_match:
   1265 		do
   1266 			{
   1267 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
   1268 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
   1269 				{
   1270 				yy_current_state = (int) yy_def[yy_current_state];
   1271 				if ( yy_current_state >= 211 )
   1272 					yy_c = yy_meta[(unsigned int) yy_c];
   1273 				}
   1274 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
   1275 			*yy_state_ptr++ = yy_current_state;
   1276 			++yy_cp;
   1277 			}
   1278 		while ( yy_base[yy_current_state] != 2141 );
   1279 
   1280 yy_find_action:
   1281 		yy_current_state = *--yy_state_ptr;
   1282 		yy_lp = yy_accept[yy_current_state];
   1283 find_rule: /* we branch to this label when backing up */
   1284 		for ( ; ; ) /* until we find what rule we matched */
   1285 			{
   1286 			if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
   1287 				{
   1288 				yy_act = yy_acclist[yy_lp];
   1289 					{
   1290 					yy_full_match = yy_cp;
   1291 					break;
   1292 					}
   1293 				}
   1294 			--yy_cp;
   1295 			yy_current_state = *--yy_state_ptr;
   1296 			yy_lp = yy_accept[yy_current_state];
   1297 			}
   1298 
   1299 		YY_DO_BEFORE_ACTION;
   1300 
   1301 		if ( yy_act != YY_END_OF_BUFFER )
   1302 			{
   1303 			int yyl;
   1304 			for ( yyl = 0; yyl < yyleng; ++yyl )
   1305 				if ( yytext[yyl] == '\n' )
   1306 					++yylineno;
   1307 			}
   1308 
   1309 do_action:	/* This label is used only to access EOF actions. */
   1310 
   1311 
   1312 		switch ( yy_act )
   1313 	{ /* beginning of action switch */
   1314 case 1:
   1315 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
   1316 yy_c_buf_p = yy_cp = yy_bp + 6;
   1317 YY_DO_BEFORE_ACTION; /* set up yytext again */
   1318 YY_RULE_SETUP
   1319 #line 86 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1320 { BEGIN (handle_ifdef ()); }
   1321 	YY_BREAK
   1322 case 2:
   1323 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
   1324 yy_c_buf_p = yy_cp = yy_bp + 5;
   1325 YY_DO_BEFORE_ACTION; /* set up yytext again */
   1326 YY_RULE_SETUP
   1327 #line 87 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1328 { eat_to_eol (true);
   1329 				  push_state (skip_to_endif);
   1330 				  BEGIN (IGNORE); }
   1331 	YY_BREAK
   1332 case 3:
   1333 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
   1334 yy_c_buf_p = yy_cp = yy_bp + 8;
   1335 YY_DO_BEFORE_ACTION; /* set up yytext again */
   1336 YY_RULE_SETUP
   1337 #line 90 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1338 { eat_to_eol (false);
   1339 				  push_state (skip_to_endif);
   1340 				  BEGIN (IGNORE); }
   1341 	YY_BREAK
   1342 case 4:
   1343 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
   1344 yy_c_buf_p = yy_cp = yy_bp + 6;
   1345 YY_DO_BEFORE_ACTION; /* set up yytext again */
   1346 YY_RULE_SETUP
   1347 #line 93 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1348 { eat_to_eol (true) ; }
   1349 	YY_BREAK
   1350 case 5:
   1351 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
   1352 yy_c_buf_p = yy_cp = yy_bp + 6;
   1353 YY_DO_BEFORE_ACTION; /* set up yytext again */
   1354 YY_RULE_SETUP
   1355 #line 95 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1356 { eat_to_eol (false);
   1357 				  push_state (skip_to_endif); }
   1358 	YY_BREAK
   1359 case 6:
   1360 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
   1361 yy_c_buf_p = yy_cp = yy_bp + 5;
   1362 YY_DO_BEFORE_ACTION; /* set up yytext again */
   1363 YY_RULE_SETUP
   1364 #line 97 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1365 { eat_to_eol (true);
   1366 				  assert (prepdepth > 0);
   1367 				  if (prepstate[prepdepth - 1] == skip_if)
   1368 				    {
   1369 				      /* Back to normal processing.  */
   1370 				      assert (prepdepth == 1);
   1371 				      BEGIN (pop_state ());
   1372 				    }
   1373 				}
   1374 	YY_BREAK
   1375 case 7:
   1376 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
   1377 yy_c_buf_p = yy_cp = yy_bp + 8;
   1378 YY_DO_BEFORE_ACTION; /* set up yytext again */
   1379 YY_RULE_SETUP
   1380 #line 106 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1381 { assert (prepdepth > 0);
   1382 				  if (prepstate[prepdepth - 1] == skip_if)
   1383 				    {
   1384 				      /* Maybe this symbol is defined.  */
   1385 				      pop_state ();
   1386 				      BEGIN (handle_ifdef ());
   1387 				    }
   1388 				}
   1389 	YY_BREAK
   1390 case 8:
   1391 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */
   1392 yy_c_buf_p = yy_cp = yy_bp + 6;
   1393 YY_DO_BEFORE_ACTION; /* set up yytext again */
   1394 YY_RULE_SETUP
   1395 #line 114 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1396 { eat_to_eol (true);
   1397 				  BEGIN (pop_state ()); }
   1398 	YY_BREAK
   1399 case 9:
   1400 YY_RULE_SETUP
   1401 #line 116 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1402 { /* nothing */ }
   1403 	YY_BREAK
   1404 case 10:
   1405 YY_RULE_SETUP
   1406 #line 119 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1407 { eat_comment (); }
   1408 	YY_BREAK
   1409 case 11:
   1410 YY_RULE_SETUP
   1411 #line 121 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1412 { return kALIGN; }
   1413 	YY_BREAK
   1414 case 12:
   1415 YY_RULE_SETUP
   1416 #line 122 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1417 { return kENTRY; }
   1418 	YY_BREAK
   1419 case 13:
   1420 YY_RULE_SETUP
   1421 #line 123 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1422 { return kEXCLUDE_FILE; }
   1423 	YY_BREAK
   1424 case 14:
   1425 YY_RULE_SETUP
   1426 #line 124 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1427 { return kGLOBAL; }
   1428 	YY_BREAK
   1429 case 15:
   1430 YY_RULE_SETUP
   1431 #line 125 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1432 { return kGROUP; }
   1433 	YY_BREAK
   1434 case 16:
   1435 YY_RULE_SETUP
   1436 #line 126 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1437 { return kINPUT; }
   1438 	YY_BREAK
   1439 case 17:
   1440 YY_RULE_SETUP
   1441 #line 127 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1442 { return kINTERP; }
   1443 	YY_BREAK
   1444 case 18:
   1445 YY_RULE_SETUP
   1446 #line 128 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1447 { return kKEEP; }
   1448 	YY_BREAK
   1449 case 19:
   1450 YY_RULE_SETUP
   1451 #line 129 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1452 { return kLOCAL; }
   1453 	YY_BREAK
   1454 case 20:
   1455 YY_RULE_SETUP
   1456 #line 130 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1457 { return kOUTPUT_FORMAT; }
   1458 	YY_BREAK
   1459 case 21:
   1460 YY_RULE_SETUP
   1461 #line 131 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1462 { return kPAGESIZE; }
   1463 	YY_BREAK
   1464 case 22:
   1465 YY_RULE_SETUP
   1466 #line 132 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1467 { return kPROVIDE; }
   1468 	YY_BREAK
   1469 case 23:
   1470 YY_RULE_SETUP
   1471 #line 133 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1472 { return kSEARCH_DIR; }
   1473 	YY_BREAK
   1474 case 24:
   1475 YY_RULE_SETUP
   1476 #line 134 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1477 { return kSEGMENT; }
   1478 	YY_BREAK
   1479 case 25:
   1480 YY_RULE_SETUP
   1481 #line 135 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1482 { return kSIZEOF_HEADERS; }
   1483 	YY_BREAK
   1484 case 26:
   1485 YY_RULE_SETUP
   1486 #line 136 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1487 { return kSORT; }
   1488 	YY_BREAK
   1489 case 27:
   1490 YY_RULE_SETUP
   1491 #line 137 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1492 { return kVERSION; }
   1493 	YY_BREAK
   1494 case 28:
   1495 YY_RULE_SETUP
   1496 #line 139 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1497 { int cnt = 1 ;
   1498 				  ldlval.num = 0;
   1499 				  while (cnt < yyleng - 1)
   1500 				    ldlval.num |= attrib_convert (yytext[cnt++]);
   1501 				  return kMODE; }
   1502 	YY_BREAK
   1503 case 29:
   1504 YY_RULE_SETUP
   1505 #line 145 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1506 { return '{'; }
   1507 	YY_BREAK
   1508 case 30:
   1509 YY_RULE_SETUP
   1510 #line 146 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1511 { return '}'; }
   1512 	YY_BREAK
   1513 case 31:
   1514 YY_RULE_SETUP
   1515 #line 147 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1516 { return '('; }
   1517 	YY_BREAK
   1518 case 32:
   1519 YY_RULE_SETUP
   1520 #line 148 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1521 { return ')'; }
   1522 	YY_BREAK
   1523 case 33:
   1524 YY_RULE_SETUP
   1525 #line 149 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1526 { return ':'; }
   1527 	YY_BREAK
   1528 case 34:
   1529 YY_RULE_SETUP
   1530 #line 150 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1531 { return ';'; }
   1532 	YY_BREAK
   1533 case 35:
   1534 YY_RULE_SETUP
   1535 #line 151 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1536 { return '='; }
   1537 	YY_BREAK
   1538 case 36:
   1539 YY_RULE_SETUP
   1540 #line 152 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1541 { ldlval.op = exp_plus; return kADD_OP; }
   1542 	YY_BREAK
   1543 case 37:
   1544 YY_RULE_SETUP
   1545 #line 153 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1546 { ldlval.op = exp_minus; return kADD_OP; }
   1547 	YY_BREAK
   1548 case 38:
   1549 YY_RULE_SETUP
   1550 #line 154 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1551 { return '*'; }
   1552 	YY_BREAK
   1553 case 39:
   1554 YY_RULE_SETUP
   1555 #line 155 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1556 { ldlval.op = exp_div; return kMUL_OP; }
   1557 	YY_BREAK
   1558 case 40:
   1559 YY_RULE_SETUP
   1560 #line 156 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1561 { ldlval.op = exp_mod; return kMUL_OP; }
   1562 	YY_BREAK
   1563 case 41:
   1564 YY_RULE_SETUP
   1565 #line 157 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1566 { return '&'; }
   1567 	YY_BREAK
   1568 case 42:
   1569 YY_RULE_SETUP
   1570 #line 158 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1571 { return '|'; }
   1572 	YY_BREAK
   1573 case 43:
   1574 YY_RULE_SETUP
   1575 #line 160 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1576 { return ','; }
   1577 	YY_BREAK
   1578 case 44:
   1579 YY_RULE_SETUP
   1580 #line 162 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1581 { char *endp;
   1582 				  ldlval.num = strtoumax (yytext, &endp, 0);
   1583 				  if (*endp != '\0')
   1584 				    {
   1585 				      if (tolower (*endp) == 'k')
   1586 					ldlval.num *= 1024;
   1587 				      else
   1588 					{
   1589 					  assert (tolower (*endp) == 'm');
   1590 					  ldlval.num *= 1024 * 1024;
   1591 					}
   1592 				    }
   1593 				  return kNUM; }
   1594 	YY_BREAK
   1595 case 45:
   1596 YY_RULE_SETUP
   1597 #line 176 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1598 { ldlval.str = obstack_strndup (&ld_state.smem,
   1599 								yytext, yyleng);
   1600 				  return kID; }
   1601 	YY_BREAK
   1602 case 46:
   1603 YY_RULE_SETUP
   1604 #line 180 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1605 { ldlval.str = obstack_strndup (&ld_state.smem,
   1606 								yytext, yyleng);
   1607 				  return kFILENAME; }
   1608 	YY_BREAK
   1609 case 47:
   1610 YY_RULE_SETUP
   1611 #line 184 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1612 { /* IGNORE */ }
   1613 	YY_BREAK
   1614 case 48:
   1615 YY_RULE_SETUP
   1616 #line 186 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1617 { invalid_char (*yytext); }
   1618 	YY_BREAK
   1619 case 49:
   1620 YY_RULE_SETUP
   1621 #line 188 "/home/drepper/gnu/elfutils/src/ldlex.l"
   1622 ECHO;
   1623 	YY_BREAK
   1624 #line 1625 "ldlex.c"
   1625 			case YY_STATE_EOF(INITIAL):
   1626 			case YY_STATE_EOF(IGNORE):
   1627 				yyterminate();
   1628 
   1629 	case YY_END_OF_BUFFER:
   1630 		{
   1631 		/* Amount of text matched not including the EOB char. */
   1632 		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
   1633 
   1634 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
   1635 		*yy_cp = yy_hold_char;
   1636 		YY_RESTORE_YY_MORE_OFFSET
   1637 
   1638 		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
   1639 			{
   1640 			/* We're scanning a new file or input source.  It's
   1641 			 * possible that this happened because the user
   1642 			 * just pointed yyin at a new source and called
   1643 			 * yylex().  If so, then we have to assure
   1644 			 * consistency between yy_current_buffer and our
   1645 			 * globals.  Here is the right place to do so, because
   1646 			 * this is the first action (other than possibly a
   1647 			 * back-up) that will match for the new input source.
   1648 			 */
   1649 			yy_n_chars = yy_current_buffer->yy_n_chars;
   1650 			yy_current_buffer->yy_input_file = yyin;
   1651 			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
   1652 			}
   1653 
   1654 		/* Note that here we test for yy_c_buf_p "<=" to the position
   1655 		 * of the first EOB in the buffer, since yy_c_buf_p will
   1656 		 * already have been incremented past the NUL character
   1657 		 * (since all states make transitions on EOB to the
   1658 		 * end-of-buffer state).  Contrast this with the test
   1659 		 * in input().
   1660 		 */
   1661 		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
   1662 			{ /* This was really a NUL. */
   1663 			yy_state_type yy_next_state;
   1664 
   1665 			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
   1666 
   1667 			yy_current_state = yy_get_previous_state();
   1668 
   1669 			/* Okay, we're now positioned to make the NUL
   1670 			 * transition.  We couldn't have
   1671 			 * yy_get_previous_state() go ahead and do it
   1672 			 * for us because it doesn't know how to deal
   1673 			 * with the possibility of jamming (and we don't
   1674 			 * want to build jamming into it because then it
   1675 			 * will run more slowly).
   1676 			 */
   1677 
   1678 			yy_next_state = yy_try_NUL_trans( yy_current_state );
   1679 
   1680 			yy_bp = yytext_ptr + YY_MORE_ADJ;
   1681 
   1682 			if ( yy_next_state )
   1683 				{
   1684 				/* Consume the NUL. */
   1685 				yy_cp = ++yy_c_buf_p;
   1686 				yy_current_state = yy_next_state;
   1687 				goto yy_match;
   1688 				}
   1689 
   1690 			else
   1691 				{
   1692 				yy_cp = yy_c_buf_p;
   1693 				goto yy_find_action;
   1694 				}
   1695 			}
   1696 
   1697 		else switch ( yy_get_next_buffer() )
   1698 			{
   1699 			case EOB_ACT_END_OF_FILE:
   1700 				{
   1701 				yy_did_buffer_switch_on_eof = 0;
   1702 
   1703 				if ( yywrap() )
   1704 					{
   1705 					/* Note: because we've taken care in
   1706 					 * yy_get_next_buffer() to have set up
   1707 					 * yytext, we can now set up
   1708 					 * yy_c_buf_p so that if some total
   1709 					 * hoser (like flex itself) wants to
   1710 					 * call the scanner after we return the
   1711 					 * YY_NULL, it'll still work - another
   1712 					 * YY_NULL will get returned.
   1713 					 */
   1714 					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
   1715 
   1716 					yy_act = YY_STATE_EOF(YY_START);
   1717 					goto do_action;
   1718 					}
   1719 
   1720 				else
   1721 					{
   1722 					if ( ! yy_did_buffer_switch_on_eof )
   1723 						YY_NEW_FILE;
   1724 					}
   1725 				break;
   1726 				}
   1727 
   1728 			case EOB_ACT_CONTINUE_SCAN:
   1729 				yy_c_buf_p =
   1730 					yytext_ptr + yy_amount_of_matched_text;
   1731 
   1732 				yy_current_state = yy_get_previous_state();
   1733 
   1734 				yy_cp = yy_c_buf_p;
   1735 				yy_bp = yytext_ptr + YY_MORE_ADJ;
   1736 				goto yy_match;
   1737 
   1738 			case EOB_ACT_LAST_MATCH:
   1739 				yy_c_buf_p =
   1740 				&yy_current_buffer->yy_ch_buf[yy_n_chars];
   1741 
   1742 				yy_current_state = yy_get_previous_state();
   1743 
   1744 				yy_cp = yy_c_buf_p;
   1745 				yy_bp = yytext_ptr + YY_MORE_ADJ;
   1746 				goto yy_find_action;
   1747 			}
   1748 		break;
   1749 		}
   1750 
   1751 	default:
   1752 		YY_FATAL_ERROR(
   1753 			"fatal flex scanner internal error--no action found" );
   1754 	} /* end of action switch */
   1755 		} /* end of scanning one token */
   1756 	} /* end of yylex */
   1757 
   1758 
   1759 /* yy_get_next_buffer - try to read in a new buffer
   1760  *
   1761  * Returns a code representing an action:
   1762  *	EOB_ACT_LAST_MATCH -
   1763  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
   1764  *	EOB_ACT_END_OF_FILE - end of file
   1765  */
   1766 
   1767 static int yy_get_next_buffer()
   1768 	{
   1769 	register char *dest = yy_current_buffer->yy_ch_buf;
   1770 	register char *source = yytext_ptr;
   1771 	register int number_to_move, i;
   1772 	int ret_val;
   1773 
   1774 	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
   1775 		YY_FATAL_ERROR(
   1776 		"fatal flex scanner internal error--end of buffer missed" );
   1777 
   1778 	if ( yy_current_buffer->yy_fill_buffer == 0 )
   1779 		{ /* Don't try to fill the buffer, so this is an EOF. */
   1780 		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
   1781 			{
   1782 			/* We matched a single character, the EOB, so
   1783 			 * treat this as a final EOF.
   1784 			 */
   1785 			return EOB_ACT_END_OF_FILE;
   1786 			}
   1787 
   1788 		else
   1789 			{
   1790 			/* We matched some text prior to the EOB, first
   1791 			 * process it.
   1792 			 */
   1793 			return EOB_ACT_LAST_MATCH;
   1794 			}
   1795 		}
   1796 
   1797 	/* Try to read more data. */
   1798 
   1799 	/* First move last chars to start of buffer. */
   1800 	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
   1801 
   1802 	for ( i = 0; i < number_to_move; ++i )
   1803 		*(dest++) = *(source++);
   1804 
   1805 	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
   1806 		/* don't do the read, it's not guaranteed to return an EOF,
   1807 		 * just force an EOF
   1808 		 */
   1809 		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
   1810 
   1811 	else
   1812 		{
   1813 		int num_to_read =
   1814 			yy_current_buffer->yy_buf_size - number_to_move - 1;
   1815 
   1816 		while ( num_to_read <= 0 )
   1817 			{ /* Not enough room in the buffer - grow it. */
   1818 #ifdef YY_USES_REJECT
   1819 			YY_FATAL_ERROR(
   1820 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
   1821 #else
   1822 
   1823 			/* just a shorter name for the current buffer */
   1824 			YY_BUFFER_STATE b = yy_current_buffer;
   1825 
   1826 			int yy_c_buf_p_offset =
   1827 				(int) (yy_c_buf_p - b->yy_ch_buf);
   1828 
   1829 			if ( b->yy_is_our_buffer )
   1830 				{
   1831 				int new_size = b->yy_buf_size * 2;
   1832 
   1833 				if ( new_size <= 0 )
   1834 					b->yy_buf_size += b->yy_buf_size / 8;
   1835 				else
   1836 					b->yy_buf_size *= 2;
   1837 
   1838 				b->yy_ch_buf = (char *)
   1839 					/* Include room in for 2 EOB chars. */
   1840 					yy_flex_realloc( (void *) b->yy_ch_buf,
   1841 							 b->yy_buf_size + 2 );
   1842 				}
   1843 			else
   1844 				/* Can't grow it, we don't own it. */
   1845 				b->yy_ch_buf = 0;
   1846 
   1847 			if ( ! b->yy_ch_buf )
   1848 				YY_FATAL_ERROR(
   1849 				"fatal error - scanner input buffer overflow" );
   1850 
   1851 			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
   1852 
   1853 			num_to_read = yy_current_buffer->yy_buf_size -
   1854 						number_to_move - 1;
   1855 #endif
   1856 			}
   1857 
   1858 		if ( num_to_read > YY_READ_BUF_SIZE )
   1859 			num_to_read = YY_READ_BUF_SIZE;
   1860 
   1861 		/* Read in more data. */
   1862 		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
   1863 			yy_n_chars, num_to_read );
   1864 
   1865 		yy_current_buffer->yy_n_chars = yy_n_chars;
   1866 		}
   1867 
   1868 	if ( yy_n_chars == 0 )
   1869 		{
   1870 		if ( number_to_move == YY_MORE_ADJ )
   1871 			{
   1872 			ret_val = EOB_ACT_END_OF_FILE;
   1873 			yyrestart( yyin );
   1874 			}
   1875 
   1876 		else
   1877 			{
   1878 			ret_val = EOB_ACT_LAST_MATCH;
   1879 			yy_current_buffer->yy_buffer_status =
   1880 				YY_BUFFER_EOF_PENDING;
   1881 			}
   1882 		}
   1883 
   1884 	else
   1885 		ret_val = EOB_ACT_CONTINUE_SCAN;
   1886 
   1887 	yy_n_chars += number_to_move;
   1888 	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
   1889 	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
   1890 
   1891 	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
   1892 
   1893 	return ret_val;
   1894 	}
   1895 
   1896 
   1897 /* yy_get_previous_state - get the state just before the EOB char was reached */
   1898 
   1899 static yy_state_type yy_get_previous_state()
   1900 	{
   1901 	register yy_state_type yy_current_state;
   1902 	register char *yy_cp;
   1903 
   1904 	yy_current_state = yy_start;
   1905 	yy_current_state += YY_AT_BOL();
   1906 	yy_state_ptr = yy_state_buf;
   1907 	*yy_state_ptr++ = yy_current_state;
   1908 
   1909 	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
   1910 		{
   1911 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
   1912 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
   1913 			{
   1914 			yy_current_state = (int) yy_def[yy_current_state];
   1915 			if ( yy_current_state >= 211 )
   1916 				yy_c = yy_meta[(unsigned int) yy_c];
   1917 			}
   1918 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
   1919 		*yy_state_ptr++ = yy_current_state;
   1920 		}
   1921 
   1922 	return yy_current_state;
   1923 	}
   1924 
   1925 
   1926 /* yy_try_NUL_trans - try to make a transition on the NUL character
   1927  *
   1928  * synopsis
   1929  *	next_state = yy_try_NUL_trans( current_state );
   1930  */
   1931 
   1932 #ifdef YY_USE_PROTOS
   1933 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
   1934 #else
   1935 static yy_state_type yy_try_NUL_trans( yy_current_state )
   1936 yy_state_type yy_current_state;
   1937 #endif
   1938 	{
   1939 	register int yy_is_jam;
   1940 
   1941 	register YY_CHAR yy_c = 1;
   1942 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
   1943 		{
   1944 		yy_current_state = (int) yy_def[yy_current_state];
   1945 		if ( yy_current_state >= 211 )
   1946 			yy_c = yy_meta[(unsigned int) yy_c];
   1947 		}
   1948 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
   1949 	yy_is_jam = (yy_current_state == 210);
   1950 	if ( ! yy_is_jam )
   1951 		*yy_state_ptr++ = yy_current_state;
   1952 
   1953 	return yy_is_jam ? 0 : yy_current_state;
   1954 	}
   1955 
   1956 
   1957 #ifndef YY_NO_UNPUT
   1958 #ifdef YY_USE_PROTOS
   1959 static void yyunput( int c, register char *yy_bp )
   1960 #else
   1961 static void yyunput( c, yy_bp )
   1962 int c;
   1963 register char *yy_bp;
   1964 #endif
   1965 	{
   1966 	register char *yy_cp = yy_c_buf_p;
   1967 
   1968 	/* undo effects of setting up yytext */
   1969 	*yy_cp = yy_hold_char;
   1970 
   1971 	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
   1972 		{ /* need to shift things up to make room */
   1973 		/* +2 for EOB chars. */
   1974 		register int number_to_move = yy_n_chars + 2;
   1975 		register char *dest = &yy_current_buffer->yy_ch_buf[
   1976 					yy_current_buffer->yy_buf_size + 2];
   1977 		register char *source =
   1978 				&yy_current_buffer->yy_ch_buf[number_to_move];
   1979 
   1980 		while ( source > yy_current_buffer->yy_ch_buf )
   1981 			*--dest = *--source;
   1982 
   1983 		yy_cp += (int) (dest - source);
   1984 		yy_bp += (int) (dest - source);
   1985 		yy_current_buffer->yy_n_chars =
   1986 			yy_n_chars = yy_current_buffer->yy_buf_size;
   1987 
   1988 		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
   1989 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
   1990 		}
   1991 
   1992 	*--yy_cp = (char) c;
   1993 
   1994 	if ( c == '\n' )
   1995 		--yylineno;
   1996 
   1997 	yytext_ptr = yy_bp;
   1998 	yy_hold_char = *yy_cp;
   1999 	yy_c_buf_p = yy_cp;
   2000 	}
   2001 #endif	/* ifndef YY_NO_UNPUT */
   2002 
   2003 
   2004 #ifndef YY_NO_INPUT
   2005 #ifdef __cplusplus
   2006 static int yyinput()
   2007 #else
   2008 static int input()
   2009 #endif
   2010 	{
   2011 	int c;
   2012 
   2013 	*yy_c_buf_p = yy_hold_char;
   2014 
   2015 	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
   2016 		{
   2017 		/* yy_c_buf_p now points to the character we want to return.
   2018 		 * If this occurs *before* the EOB characters, then it's a
   2019 		 * valid NUL; if not, then we've hit the end of the buffer.
   2020 		 */
   2021 		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
   2022 			/* This was really a NUL. */
   2023 			*yy_c_buf_p = '\0';
   2024 
   2025 		else
   2026 			{ /* need more input */
   2027 			int offset = yy_c_buf_p - yytext_ptr;
   2028 			++yy_c_buf_p;
   2029 
   2030 			switch ( yy_get_next_buffer() )
   2031 				{
   2032 				case EOB_ACT_LAST_MATCH:
   2033 					/* This happens because yy_g_n_b()
   2034 					 * sees that we've accumulated a
   2035 					 * token and flags that we need to
   2036 					 * try matching the token before
   2037 					 * proceeding.  But for input(),
   2038 					 * there's no matching to consider.
   2039 					 * So convert the EOB_ACT_LAST_MATCH
   2040 					 * to EOB_ACT_END_OF_FILE.
   2041 					 */
   2042 
   2043 					/* Reset buffer status. */
   2044 					yyrestart( yyin );
   2045 
   2046 					/* fall through */
   2047 
   2048 				case EOB_ACT_END_OF_FILE:
   2049 					{
   2050 					if ( yywrap() )
   2051 						return EOF;
   2052 
   2053 					if ( ! yy_did_buffer_switch_on_eof )
   2054 						YY_NEW_FILE;
   2055 #ifdef __cplusplus
   2056 					return yyinput();
   2057 #else
   2058 					return input();
   2059 #endif
   2060 					}
   2061 
   2062 				case EOB_ACT_CONTINUE_SCAN:
   2063 					yy_c_buf_p = yytext_ptr + offset;
   2064 					break;
   2065 				}
   2066 			}
   2067 		}
   2068 
   2069 	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
   2070 	*yy_c_buf_p = '\0';	/* preserve yytext */
   2071 	yy_hold_char = *++yy_c_buf_p;
   2072 
   2073 	yy_current_buffer->yy_at_bol = (c == '\n');
   2074 	if ( yy_current_buffer->yy_at_bol )
   2075 		++yylineno;
   2076 
   2077 	return c;
   2078 	}
   2079 #endif /* YY_NO_INPUT */
   2080 
   2081 #ifdef YY_USE_PROTOS
   2082 void yyrestart( FILE *input_file )
   2083 #else
   2084 void yyrestart( input_file )
   2085 FILE *input_file;
   2086 #endif
   2087 	{
   2088 	if ( ! yy_current_buffer )
   2089 		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
   2090 
   2091 	yy_init_buffer( yy_current_buffer, input_file );
   2092 	yy_load_buffer_state();
   2093 	}
   2094 
   2095 
   2096 #ifdef YY_USE_PROTOS
   2097 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
   2098 #else
   2099 void yy_switch_to_buffer( new_buffer )
   2100 YY_BUFFER_STATE new_buffer;
   2101 #endif
   2102 	{
   2103 	if ( yy_current_buffer == new_buffer )
   2104 		return;
   2105 
   2106 	if ( yy_current_buffer )
   2107 		{
   2108 		/* Flush out information for old buffer. */
   2109 		*yy_c_buf_p = yy_hold_char;
   2110 		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
   2111 		yy_current_buffer->yy_n_chars = yy_n_chars;
   2112 		}
   2113 
   2114 	yy_current_buffer = new_buffer;
   2115 	yy_load_buffer_state();
   2116 
   2117 	/* We don't actually know whether we did this switch during
   2118 	 * EOF (yywrap()) processing, but the only time this flag
   2119 	 * is looked at is after yywrap() is called, so it's safe
   2120 	 * to go ahead and always set it.
   2121 	 */
   2122 	yy_did_buffer_switch_on_eof = 1;
   2123 	}
   2124 
   2125 
   2126 #ifdef YY_USE_PROTOS
   2127 void yy_load_buffer_state( void )
   2128 #else
   2129 void yy_load_buffer_state()
   2130 #endif
   2131 	{
   2132 	yy_n_chars = yy_current_buffer->yy_n_chars;
   2133 	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
   2134 	yyin = yy_current_buffer->yy_input_file;
   2135 	yy_hold_char = *yy_c_buf_p;
   2136 	}
   2137 
   2138 
   2139 #ifdef YY_USE_PROTOS
   2140 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
   2141 #else
   2142 YY_BUFFER_STATE yy_create_buffer( file, size )
   2143 FILE *file;
   2144 int size;
   2145 #endif
   2146 	{
   2147 	YY_BUFFER_STATE b;
   2148 
   2149 	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
   2150 	if ( ! b )
   2151 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
   2152 
   2153 	b->yy_buf_size = size;
   2154 
   2155 	/* yy_ch_buf has to be 2 characters longer than the size given because
   2156 	 * we need to put in 2 end-of-buffer characters.
   2157 	 */
   2158 	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
   2159 	if ( ! b->yy_ch_buf )
   2160 		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
   2161 
   2162 	b->yy_is_our_buffer = 1;
   2163 
   2164 	yy_init_buffer( b, file );
   2165 
   2166 	return b;
   2167 	}
   2168 
   2169 
   2170 #ifdef YY_USE_PROTOS
   2171 void yy_delete_buffer( YY_BUFFER_STATE b )
   2172 #else
   2173 void yy_delete_buffer( b )
   2174 YY_BUFFER_STATE b;
   2175 #endif
   2176 	{
   2177 	if ( ! b )
   2178 		return;
   2179 
   2180 	if ( b == yy_current_buffer )
   2181 		yy_current_buffer = (YY_BUFFER_STATE) 0;
   2182 
   2183 	if ( b->yy_is_our_buffer )
   2184 		yy_flex_free( (void *) b->yy_ch_buf );
   2185 
   2186 	yy_flex_free( (void *) b );
   2187 	}
   2188 
   2189 
   2190 
   2191 #ifdef YY_USE_PROTOS
   2192 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
   2193 #else
   2194 void yy_init_buffer( b, file )
   2195 YY_BUFFER_STATE b;
   2196 FILE *file;
   2197 #endif
   2198 
   2199 
   2200 	{
   2201 	yy_flush_buffer( b );
   2202 
   2203 	b->yy_input_file = file;
   2204 	b->yy_fill_buffer = 1;
   2205 
   2206 #if YY_ALWAYS_INTERACTIVE
   2207 	b->yy_is_interactive = 1;
   2208 #else
   2209 #if YY_NEVER_INTERACTIVE
   2210 	b->yy_is_interactive = 0;
   2211 #else
   2212 	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
   2213 #endif
   2214 #endif
   2215 	}
   2216 
   2217 
   2218 #ifdef YY_USE_PROTOS
   2219 void yy_flush_buffer( YY_BUFFER_STATE b )
   2220 #else
   2221 void yy_flush_buffer( b )
   2222 YY_BUFFER_STATE b;
   2223 #endif
   2224 
   2225 	{
   2226 	if ( ! b )
   2227 		return;
   2228 
   2229 	b->yy_n_chars = 0;
   2230 
   2231 	/* We always need two end-of-buffer characters.  The first causes
   2232 	 * a transition to the end-of-buffer state.  The second causes
   2233 	 * a jam in that state.
   2234 	 */
   2235 	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
   2236 	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
   2237 
   2238 	b->yy_buf_pos = &b->yy_ch_buf[0];
   2239 
   2240 	b->yy_at_bol = 1;
   2241 	b->yy_buffer_status = YY_BUFFER_NEW;
   2242 
   2243 	if ( b == yy_current_buffer )
   2244 		yy_load_buffer_state();
   2245 	}
   2246 
   2247 
   2248 #ifndef YY_NO_SCAN_BUFFER
   2249 #ifdef YY_USE_PROTOS
   2250 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
   2251 #else
   2252 YY_BUFFER_STATE yy_scan_buffer( base, size )
   2253 char *base;
   2254 yy_size_t size;
   2255 #endif
   2256 	{
   2257 	YY_BUFFER_STATE b;
   2258 
   2259 	if ( size < 2 ||
   2260 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
   2261 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
   2262 		/* They forgot to leave room for the EOB's. */
   2263 		return 0;
   2264 
   2265 	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
   2266 	if ( ! b )
   2267 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
   2268 
   2269 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
   2270 	b->yy_buf_pos = b->yy_ch_buf = base;
   2271 	b->yy_is_our_buffer = 0;
   2272 	b->yy_input_file = 0;
   2273 	b->yy_n_chars = b->yy_buf_size;
   2274 	b->yy_is_interactive = 0;
   2275 	b->yy_at_bol = 1;
   2276 	b->yy_fill_buffer = 0;
   2277 	b->yy_buffer_status = YY_BUFFER_NEW;
   2278 
   2279 	yy_switch_to_buffer( b );
   2280 
   2281 	return b;
   2282 	}
   2283 #endif
   2284 
   2285 
   2286 #ifndef YY_NO_SCAN_STRING
   2287 #ifdef YY_USE_PROTOS
   2288 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
   2289 #else
   2290 YY_BUFFER_STATE yy_scan_string( yy_str )
   2291 yyconst char *yy_str;
   2292 #endif
   2293 	{
   2294 	int len;
   2295 	for ( len = 0; yy_str[len]; ++len )
   2296 		;
   2297 
   2298 	return yy_scan_bytes( yy_str, len );
   2299 	}
   2300 #endif
   2301 
   2302 
   2303 #ifndef YY_NO_SCAN_BYTES
   2304 #ifdef YY_USE_PROTOS
   2305 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
   2306 #else
   2307 YY_BUFFER_STATE yy_scan_bytes( bytes, len )
   2308 yyconst char *bytes;
   2309 int len;
   2310 #endif
   2311 	{
   2312 	YY_BUFFER_STATE b;
   2313 	char *buf;
   2314 	yy_size_t n;
   2315 	int i;
   2316 
   2317 	/* Get memory for full buffer, including space for trailing EOB's. */
   2318 	n = len + 2;
   2319 	buf = (char *) yy_flex_alloc( n );
   2320 	if ( ! buf )
   2321 		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
   2322 
   2323 	for ( i = 0; i < len; ++i )
   2324 		buf[i] = bytes[i];
   2325 
   2326 	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
   2327 
   2328 	b = yy_scan_buffer( buf, n );
   2329 	if ( ! b )
   2330 		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
   2331 
   2332 	/* It's okay to grow etc. this buffer, and we should throw it
   2333 	 * away when we're done.
   2334 	 */
   2335 	b->yy_is_our_buffer = 1;
   2336 
   2337 	return b;
   2338 	}
   2339 #endif
   2340 
   2341 
   2342 #ifndef YY_NO_PUSH_STATE
   2343 #ifdef YY_USE_PROTOS
   2344 static void yy_push_state( int new_state )
   2345 #else
   2346 static void yy_push_state( new_state )
   2347 int new_state;
   2348 #endif
   2349 	{
   2350 	if ( yy_start_stack_ptr >= yy_start_stack_depth )
   2351 		{
   2352 		yy_size_t new_size;
   2353 
   2354 		yy_start_stack_depth += YY_START_STACK_INCR;
   2355 		new_size = yy_start_stack_depth * sizeof( int );
   2356 
   2357 		if ( ! yy_start_stack )
   2358 			yy_start_stack = (int *) yy_flex_alloc( new_size );
   2359 
   2360 		else
   2361 			yy_start_stack = (int *) yy_flex_realloc(
   2362 					(void *) yy_start_stack, new_size );
   2363 
   2364 		if ( ! yy_start_stack )
   2365 			YY_FATAL_ERROR(
   2366 			"out of memory expanding start-condition stack" );
   2367 		}
   2368 
   2369 	yy_start_stack[yy_start_stack_ptr++] = YY_START;
   2370 
   2371 	BEGIN(new_state);
   2372 	}
   2373 #endif
   2374 
   2375 
   2376 #ifndef YY_NO_POP_STATE
   2377 static void yy_pop_state()
   2378 	{
   2379 	if ( --yy_start_stack_ptr < 0 )
   2380 		YY_FATAL_ERROR( "start-condition stack underflow" );
   2381 
   2382 	BEGIN(yy_start_stack[yy_start_stack_ptr]);
   2383 	}
   2384 #endif
   2385 
   2386 
   2387 #ifndef YY_NO_TOP_STATE
   2388 static int yy_top_state()
   2389 	{
   2390 	return yy_start_stack[yy_start_stack_ptr - 1];
   2391 	}
   2392 #endif
   2393 
   2394 #ifndef YY_EXIT_FAILURE
   2395 #define YY_EXIT_FAILURE 2
   2396 #endif
   2397 
   2398 #ifdef YY_USE_PROTOS
   2399 static void yy_fatal_error( yyconst char msg[] )
   2400 #else
   2401 static void yy_fatal_error( msg )
   2402 char msg[];
   2403 #endif
   2404 	{
   2405 	(void) fprintf( stderr, "%s\n", msg );
   2406 	exit( YY_EXIT_FAILURE );
   2407 	}
   2408 
   2409 
   2410 
   2411 /* Redefine yyless() so it works in section 3 code. */
   2412 
   2413 #undef yyless
   2414 #define yyless(n) \
   2415 	do \
   2416 		{ \
   2417 		/* Undo effects of setting up yytext. */ \
   2418 		yytext[yyleng] = yy_hold_char; \
   2419 		yy_c_buf_p = yytext + n; \
   2420 		yy_hold_char = *yy_c_buf_p; \
   2421 		*yy_c_buf_p = '\0'; \
   2422 		yyleng = n; \
   2423 		} \
   2424 	while ( 0 )
   2425 
   2426 
   2427 /* Internal utility routines. */
   2428 
   2429 #ifndef yytext_ptr
   2430 #ifdef YY_USE_PROTOS
   2431 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
   2432 #else
   2433 static void yy_flex_strncpy( s1, s2, n )
   2434 char *s1;
   2435 yyconst char *s2;
   2436 int n;
   2437 #endif
   2438 	{
   2439 	register int i;
   2440 	for ( i = 0; i < n; ++i )
   2441 		s1[i] = s2[i];
   2442 	}
   2443 #endif
   2444 
   2445 #ifdef YY_NEED_STRLEN
   2446 #ifdef YY_USE_PROTOS
   2447 static int yy_flex_strlen( yyconst char *s )
   2448 #else
   2449 static int yy_flex_strlen( s )
   2450 yyconst char *s;
   2451 #endif
   2452 	{
   2453 	register int n;
   2454 	for ( n = 0; s[n]; ++n )
   2455 		;
   2456 
   2457 	return n;
   2458 	}
   2459 #endif
   2460 
   2461 
   2462 #ifdef YY_USE_PROTOS
   2463 static void *yy_flex_alloc( yy_size_t size )
   2464 #else
   2465 static void *yy_flex_alloc( size )
   2466 yy_size_t size;
   2467 #endif
   2468 	{
   2469 	return (void *) malloc( size );
   2470 	}
   2471 
   2472 #ifdef YY_USE_PROTOS
   2473 static void *yy_flex_realloc( void *ptr, yy_size_t size )
   2474 #else
   2475 static void *yy_flex_realloc( ptr, size )
   2476 void *ptr;
   2477 yy_size_t size;
   2478 #endif
   2479 	{
   2480 	/* The cast to (char *) in the following accommodates both
   2481 	 * implementations that use char* generic pointers, and those
   2482 	 * that use void* generic pointers.  It works with the latter
   2483 	 * because both ANSI C and C++ allow castless assignment from
   2484 	 * any pointer type to void*, and deal with argument conversions
   2485 	 * as though doing an assignment.
   2486 	 */
   2487 	return (void *) realloc( (char *) ptr, size );
   2488 	}
   2489 
   2490 #ifdef YY_USE_PROTOS
   2491 static void yy_flex_free( void *ptr )
   2492 #else
   2493 static void yy_flex_free( ptr )
   2494 void *ptr;
   2495 #endif
   2496 	{
   2497 	free( ptr );
   2498 	}
   2499 
   2500 #if YY_MAIN
   2501 int main()
   2502 	{
   2503 	yylex();
   2504 	return 0;
   2505 	}
   2506 #endif
   2507 #line 188 "/home/drepper/gnu/elfutils/src/ldlex.l"
   2508 
   2509 
   2510 static void
   2511 eat_comment (void)
   2512 {
   2513   while (1)
   2514     {
   2515       int c = input ();
   2516 
   2517       while (c != '*' && c != EOF)
   2518 	c = input ();
   2519 
   2520       if (c == '*')
   2521 	{
   2522 	  c = input ();
   2523 	  while (c == '*')
   2524 	    c = input ();
   2525 	  if (c == '/')
   2526 	    break;
   2527 	}
   2528 
   2529       if (c == EOF)
   2530 	{
   2531 	  /* XXX Use the setjmp buffer and signal EOF in comment */
   2532 	  error (0, 0, gettext ("EOF in comment"));
   2533 	  break;
   2534 	}
   2535     }
   2536 }
   2537 
   2538 
   2539 static void
   2540 eat_to_eol (bool empty)
   2541 {
   2542   bool warned = false;
   2543 
   2544   while (1)
   2545     {
   2546       int c = input ();
   2547 
   2548       if (c == EOF)
   2549 	break;
   2550       if (c == '\n')
   2551 	{
   2552 	  ++yylineno;
   2553 	  break;
   2554 	}
   2555 
   2556       if (empty && ! isspace (c) && ! warned)
   2557 	{
   2558 	  error (0, 0, gettext ("%d: garbage at end of line"), yylineno);
   2559 	  warned = true;
   2560 	}
   2561     }
   2562 }
   2563 
   2564 
   2565 static int
   2566 attrib_convert (int c)
   2567 {
   2568   if (c == 'X')
   2569     return PF_X;
   2570   if (c == 'W')
   2571     return PF_W;
   2572   assert (c == 'R');
   2573   return PF_R;
   2574 }
   2575 
   2576 
   2577 static void
   2578 push_state (enum prepstate state)
   2579 {
   2580   if (prepdepth >= MAX_PREPDEPTH)
   2581     error (EXIT_FAILURE, 0, gettext ("%d: conditionals nested too deep"),
   2582 	   yylineno);
   2583 
   2584   prepstate[prepdepth++] = state;
   2585 }
   2586 
   2587 
   2588 static int
   2589 pop_state (void)
   2590 {
   2591   if (prepdepth == 0)
   2592     error (0, 0, gettext ("%d: unexpected #endif"), yylineno);
   2593   else
   2594     --prepdepth;
   2595 
   2596   return prepdepth == 0 ? INITIAL : IGNORE;
   2597 }
   2598 
   2599 
   2600 static int
   2601 handle_ifdef (void)
   2602 {
   2603   char idbuf[50];
   2604   char *id = idbuf;
   2605   size_t idlen = 0;
   2606   size_t idmax = sizeof (idbuf);
   2607   bool ignore_ws = true;
   2608   bool defined = false;
   2609   int result;
   2610 
   2611   while (1)
   2612     {
   2613       int c = input ();
   2614 
   2615       if (isspace (c) && ignore_ws)
   2616 	continue;
   2617 
   2618       if (c != '_' && (c < 'a' || c > 'z') && (c < 'A' || c > 'Z')
   2619 	  && (idlen == 0 || c < '0' || c > '9'))
   2620 	{
   2621 	  unput (c);
   2622 	  break;
   2623 	}
   2624 
   2625       if (idlen == idmax)
   2626 	{
   2627 	  char *newp = (char *) alloca (idmax *= 2);
   2628 	  id = memcpy (newp, id, idlen);
   2629 	}
   2630 
   2631       id[idlen++] = c;
   2632       ignore_ws = false;
   2633     }
   2634 
   2635   /* XXX Compare in a better way.  */
   2636   if (idlen == 6 && strncmp (id, "SHARED", 6) == 0)
   2637     defined = ld_state.file_type == dso_file_type;
   2638 
   2639   if (defined)
   2640     result = INITIAL;
   2641   else
   2642     {
   2643       push_state (skip_if);
   2644       result = IGNORE;
   2645     }
   2646 
   2647   return result;
   2648 }
   2649 
   2650 
   2651 static void
   2652 invalid_char (int ch)
   2653 {
   2654   error (0, 0, (isascii (ch)
   2655 		? gettext ("invalid character '%c' at line %d; ignored")
   2656 		: gettext ("invalid character '\\%o' at line %d; ignored")),
   2657 	 ch, yylineno);
   2658 }
   2659 
   2660 
   2661 // Local Variables:
   2662 // mode: C
   2663 // End:
   2664