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