1 2 #line 2 "ldlex.c" 3 4 #define YY_INT_ALIGNED short int 5 6 /* A lexical scanner generated by flex */ 7 8 #define FLEX_SCANNER 9 #define YY_FLEX_MAJOR_VERSION 2 10 #define YY_FLEX_MINOR_VERSION 6 11 #define YY_FLEX_SUBMINOR_VERSION 4 12 #if YY_FLEX_SUBMINOR_VERSION > 0 13 #define FLEX_BETA 14 #endif 15 16 /* First, we deal with platform-specific or compiler-specific issues. */ 17 18 /* begin standard C headers. */ 19 #include <stdio.h> 20 #include <string.h> 21 #include <errno.h> 22 #include <stdlib.h> 23 24 /* end standard C headers. */ 25 26 /* flex integer type definitions */ 27 28 #ifndef FLEXINT_H 29 #define FLEXINT_H 30 31 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ 32 33 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 34 35 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, 36 * if you want the limit (max/min) macros for int types. 37 */ 38 #ifndef __STDC_LIMIT_MACROS 39 #define __STDC_LIMIT_MACROS 1 40 #endif 41 42 #include <inttypes.h> 43 typedef int8_t flex_int8_t; 44 typedef uint8_t flex_uint8_t; 45 typedef int16_t flex_int16_t; 46 typedef uint16_t flex_uint16_t; 47 typedef int32_t flex_int32_t; 48 typedef uint32_t flex_uint32_t; 49 #else 50 typedef signed char flex_int8_t; 51 typedef short int flex_int16_t; 52 typedef int flex_int32_t; 53 typedef unsigned char flex_uint8_t; 54 typedef unsigned short int flex_uint16_t; 55 typedef unsigned int flex_uint32_t; 56 57 /* Limits of integral types. */ 58 #ifndef INT8_MIN 59 #define INT8_MIN (-128) 60 #endif 61 #ifndef INT16_MIN 62 #define INT16_MIN (-32767-1) 63 #endif 64 #ifndef INT32_MIN 65 #define INT32_MIN (-2147483647-1) 66 #endif 67 #ifndef INT8_MAX 68 #define INT8_MAX (127) 69 #endif 70 #ifndef INT16_MAX 71 #define INT16_MAX (32767) 72 #endif 73 #ifndef INT32_MAX 74 #define INT32_MAX (2147483647) 75 #endif 76 #ifndef UINT8_MAX 77 #define UINT8_MAX (255U) 78 #endif 79 #ifndef UINT16_MAX 80 #define UINT16_MAX (65535U) 81 #endif 82 #ifndef UINT32_MAX 83 #define UINT32_MAX (4294967295U) 84 #endif 85 86 #ifndef SIZE_MAX 87 #define SIZE_MAX (~(size_t)0) 88 #endif 89 90 #endif /* ! C99 */ 91 92 #endif /* ! FLEXINT_H */ 93 94 /* begin standard C++ headers. */ 95 96 /* TODO: this is always defined, so inline it */ 97 #define yyconst const 98 99 #if defined(__GNUC__) && __GNUC__ >= 3 100 #define yynoreturn __attribute__((__noreturn__)) 101 #else 102 #define yynoreturn 103 #endif 104 105 /* Returned upon end-of-file. */ 106 #define YY_NULL 0 107 108 /* Promotes a possibly negative, possibly signed char to an 109 * integer in range [0..255] for use as an array index. 110 */ 111 #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) 112 113 /* Enter a start condition. This macro really ought to take a parameter, 114 * but we do it the disgusting crufty way forced on us by the ()-less 115 * definition of BEGIN. 116 */ 117 #define BEGIN (yy_start) = 1 + 2 * 118 /* Translate the current start state into a value that can be later handed 119 * to BEGIN to return to the state. The YYSTATE alias is for lex 120 * compatibility. 121 */ 122 #define YY_START (((yy_start) - 1) / 2) 123 #define YYSTATE YY_START 124 /* Action number for EOF rule of a given start state. */ 125 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 126 /* Special action meaning "start processing a new file". */ 127 #define YY_NEW_FILE yyrestart( yyin ) 128 #define YY_END_OF_BUFFER_CHAR 0 129 130 /* Size of default input buffer. */ 131 #ifndef YY_BUF_SIZE 132 #ifdef __ia64__ 133 /* On IA-64, the buffer size is 16k, not 8k. 134 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. 135 * Ditto for the __ia64__ case accordingly. 136 */ 137 #define YY_BUF_SIZE 32768 138 #else 139 #define YY_BUF_SIZE 16384 140 #endif /* __ia64__ */ 141 #endif 142 143 /* The state buf must be large enough to hold one state per character in the main buffer. 144 */ 145 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) 146 147 #ifndef YY_TYPEDEF_YY_BUFFER_STATE 148 #define YY_TYPEDEF_YY_BUFFER_STATE 149 typedef struct yy_buffer_state *YY_BUFFER_STATE; 150 #endif 151 152 #ifndef YY_TYPEDEF_YY_SIZE_T 153 #define YY_TYPEDEF_YY_SIZE_T 154 typedef size_t yy_size_t; 155 #endif 156 157 extern int yyleng; 158 159 extern FILE *yyin, *yyout; 160 161 #define EOB_ACT_CONTINUE_SCAN 0 162 #define EOB_ACT_END_OF_FILE 1 163 #define EOB_ACT_LAST_MATCH 2 164 165 #define YY_LESS_LINENO(n) 166 #define YY_LINENO_REWIND_TO(ptr) 167 168 /* Return all but the first "n" matched characters back to the input stream. */ 169 #define yyless(n) \ 170 do \ 171 { \ 172 /* Undo effects of setting up yytext. */ \ 173 int yyless_macro_arg = (n); \ 174 YY_LESS_LINENO(yyless_macro_arg);\ 175 *yy_cp = (yy_hold_char); \ 176 YY_RESTORE_YY_MORE_OFFSET \ 177 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ 178 YY_DO_BEFORE_ACTION; /* set up yytext again */ \ 179 } \ 180 while ( 0 ) 181 #define unput(c) yyunput( c, (yytext_ptr) ) 182 183 #ifndef YY_STRUCT_YY_BUFFER_STATE 184 #define YY_STRUCT_YY_BUFFER_STATE 185 struct yy_buffer_state 186 { 187 FILE *yy_input_file; 188 189 char *yy_ch_buf; /* input buffer */ 190 char *yy_buf_pos; /* current position in input buffer */ 191 192 /* Size of input buffer in bytes, not including room for EOB 193 * characters. 194 */ 195 int yy_buf_size; 196 197 /* Number of characters read into yy_ch_buf, not including EOB 198 * characters. 199 */ 200 int yy_n_chars; 201 202 /* Whether we "own" the buffer - i.e., we know we created it, 203 * and can realloc() it to grow it, and should free() it to 204 * delete it. 205 */ 206 int yy_is_our_buffer; 207 208 /* Whether this is an "interactive" input source; if so, and 209 * if we're using stdio for input, then we want to use getc() 210 * instead of fread(), to make sure we stop fetching input after 211 * each newline. 212 */ 213 int yy_is_interactive; 214 215 /* Whether we're considered to be at the beginning of a line. 216 * If so, '^' rules will be active on the next match, otherwise 217 * not. 218 */ 219 int yy_at_bol; 220 221 int yy_bs_lineno; /**< The line count. */ 222 int yy_bs_column; /**< The column count. */ 223 224 /* Whether to try to fill the input buffer when we reach the 225 * end of it. 226 */ 227 int yy_fill_buffer; 228 229 int yy_buffer_status; 230 231 #define YY_BUFFER_NEW 0 232 #define YY_BUFFER_NORMAL 1 233 /* When an EOF's been seen but there's still some text to process 234 * then we mark the buffer as YY_EOF_PENDING, to indicate that we 235 * shouldn't try reading from the input source any more. We might 236 * still have a bunch of tokens to match, though, because of 237 * possible backing-up. 238 * 239 * When we actually see the EOF, we change the status to "new" 240 * (via yyrestart()), so that the user can continue scanning by 241 * just pointing yyin at a new input file. 242 */ 243 #define YY_BUFFER_EOF_PENDING 2 244 245 }; 246 #endif /* !YY_STRUCT_YY_BUFFER_STATE */ 247 248 /* Stack of input buffers. */ 249 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ 250 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ 251 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ 252 253 /* We provide macros for accessing buffer states in case in the 254 * future we want to put the buffer states in a more general 255 * "scanner state". 256 * 257 * Returns the top of the stack, or NULL. 258 */ 259 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ 260 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ 261 : NULL) 262 /* Same as previous macro, but useful when we know that the buffer stack is not 263 * NULL or when we need an lvalue. For internal use only. 264 */ 265 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] 266 267 /* yy_hold_char holds the character lost when yytext is formed. */ 268 static char yy_hold_char; 269 static int yy_n_chars; /* number of characters read into yy_ch_buf */ 270 int yyleng; 271 272 /* Points to current character in buffer. */ 273 static char *yy_c_buf_p = NULL; 274 static int yy_init = 0; /* whether we need to initialize */ 275 static int yy_start = 0; /* start state number */ 276 277 /* Flag which is used to allow yywrap()'s to do buffer switches 278 * instead of setting up a fresh yyin. A bit of a hack ... 279 */ 280 static int yy_did_buffer_switch_on_eof; 281 282 void yyrestart ( FILE *input_file ); 283 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); 284 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); 285 void yy_delete_buffer ( YY_BUFFER_STATE b ); 286 void yy_flush_buffer ( YY_BUFFER_STATE b ); 287 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); 288 void yypop_buffer_state ( void ); 289 290 static void yyensure_buffer_stack ( void ); 291 static void yy_load_buffer_state ( void ); 292 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); 293 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) 294 295 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); 296 YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); 297 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); 298 299 void *yyalloc ( yy_size_t ); 300 void *yyrealloc ( void *, yy_size_t ); 301 void yyfree ( void * ); 302 303 #define yy_new_buffer yy_create_buffer 304 #define yy_set_interactive(is_interactive) \ 305 { \ 306 if ( ! YY_CURRENT_BUFFER ){ \ 307 yyensure_buffer_stack (); \ 308 YY_CURRENT_BUFFER_LVALUE = \ 309 yy_create_buffer( yyin, YY_BUF_SIZE ); \ 310 } \ 311 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ 312 } 313 #define yy_set_bol(at_bol) \ 314 { \ 315 if ( ! YY_CURRENT_BUFFER ){\ 316 yyensure_buffer_stack (); \ 317 YY_CURRENT_BUFFER_LVALUE = \ 318 yy_create_buffer( yyin, YY_BUF_SIZE ); \ 319 } \ 320 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ 321 } 322 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) 323 324 /* Begin user sect3 */ 325 326 #define yywrap() (/*CONSTCOND*/1) 327 #define YY_SKIP_YYWRAP 328 typedef flex_uint8_t YY_CHAR; 329 330 FILE *yyin = NULL, *yyout = NULL; 331 332 typedef int yy_state_type; 333 334 extern int yylineno; 335 int yylineno = 1; 336 337 extern char *yytext; 338 #ifdef yytext_ptr 339 #undef yytext_ptr 340 #endif 341 #define yytext_ptr yytext 342 343 static yy_state_type yy_get_previous_state ( void ); 344 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); 345 static int yy_get_next_buffer ( void ); 346 static void yynoreturn yy_fatal_error ( const char* msg ); 347 348 /* Done after the current pattern has been matched and before the 349 * corresponding action - sets up yytext. 350 */ 351 #define YY_DO_BEFORE_ACTION \ 352 (yytext_ptr) = yy_bp; \ 353 yyleng = (int) (yy_cp - yy_bp); \ 354 (yy_hold_char) = *yy_cp; \ 355 *yy_cp = '\0'; \ 356 (yy_c_buf_p) = yy_cp; 357 #define YY_NUM_RULES 200 358 #define YY_END_OF_BUFFER 201 359 /* This struct is not used in this scanner, 360 but its presence is necessary. */ 361 struct yy_trans_info 362 { 363 flex_int32_t yy_verify; 364 flex_int32_t yy_nxt; 365 }; 366 static const flex_int16_t yy_accept[1242] = 367 { 0, 368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 369 182, 182, 0, 0, 0, 0, 0, 0, 201, 200, 370 198, 185, 184, 29, 198, 186, 177, 198, 42, 41, 371 198, 32, 25, 33, 177, 177, 4, 4, 43, 44, 372 198, 38, 24, 177, 177, 177, 177, 177, 177, 177, 373 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 374 177, 198, 123, 121, 40, 198, 39, 28, 185, 200, 375 177, 42, 41, 25, 200, 177, 200, 177, 199, 185, 376 29, 199, 186, 180, 35, 26, 42, 41, 31, 32, 377 25, 33, 180, 34, 4, 4, 4, 4, 43, 44, 378 379 36, 38, 24, 30, 180, 180, 180, 180, 180, 180, 380 180, 180, 180, 180, 180, 180, 180, 180, 180, 37, 381 40, 27, 39, 28, 138, 29, 137, 176, 35, 26, 382 31, 176, 34, 4, 4, 4, 4, 44, 36, 38, 383 24, 30, 176, 176, 176, 176, 176, 176, 176, 176, 384 176, 176, 176, 176, 176, 6, 5, 37, 176, 176, 385 176, 176, 176, 176, 176, 176, 176, 176, 176, 27, 386 28, 182, 26, 182, 182, 182, 182, 38, 198, 182, 387 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 388 182, 182, 6, 5, 182, 198, 193, 192, 187, 194, 389 390 195, 191, 191, 191, 191, 196, 197, 185, 0, 183, 391 186, 177, 4, 20, 18, 16, 17, 1, 19, 4, 392 4, 0, 0, 0, 177, 177, 177, 177, 177, 128, 393 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 394 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 395 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 396 177, 177, 177, 177, 177, 177, 177, 22, 177, 177, 397 21, 0, 178, 177, 11, 180, 2, 23, 19, 0, 398 4, 4, 4, 0, 3, 3, 3, 3, 3, 14, 399 13, 10, 12, 15, 180, 180, 180, 3, 180, 180, 400 401 128, 180, 180, 180, 180, 180, 180, 180, 180, 180, 402 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 403 180, 180, 180, 180, 180, 9, 137, 137, 176, 2, 404 139, 18, 140, 176, 176, 3, 176, 176, 176, 3, 405 176, 3, 176, 176, 176, 176, 176, 176, 176, 176, 406 176, 176, 176, 176, 176, 176, 3, 176, 3, 176, 407 176, 176, 176, 176, 176, 176, 176, 176, 182, 18, 408 16, 17, 19, 182, 128, 182, 182, 182, 182, 182, 409 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 410 182, 22, 192, 191, 0, 191, 191, 191, 4, 4, 411 412 7, 8, 177, 177, 177, 177, 177, 177, 177, 177, 413 177, 177, 177, 177, 177, 177, 177, 177, 177, 92, 414 177, 177, 177, 177, 177, 177, 177, 177, 70, 61, 415 177, 62, 177, 177, 177, 177, 177, 177, 177, 177, 416 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 417 177, 177, 124, 122, 179, 178, 177, 4, 0, 180, 418 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 419 180, 180, 180, 180, 180, 180, 61, 62, 180, 180, 420 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 421 180, 4, 176, 176, 176, 176, 176, 141, 176, 176, 422 423 176, 176, 176, 176, 176, 176, 176, 176, 176, 176, 424 176, 176, 176, 176, 158, 176, 176, 176, 176, 176, 425 176, 176, 176, 176, 176, 182, 182, 182, 182, 182, 426 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 427 182, 182, 182, 182, 191, 191, 191, 177, 57, 177, 428 177, 177, 177, 51, 177, 177, 177, 177, 177, 177, 429 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 430 177, 177, 177, 67, 177, 177, 177, 177, 177, 177, 431 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 432 177, 177, 177, 177, 0, 180, 57, 180, 180, 51, 433 434 180, 180, 115, 180, 180, 180, 180, 180, 116, 180, 435 180, 180, 67, 180, 180, 180, 180, 180, 180, 180, 436 180, 180, 180, 180, 117, 176, 176, 176, 146, 154, 437 145, 176, 176, 176, 156, 149, 152, 176, 176, 157, 438 176, 176, 176, 176, 176, 163, 171, 162, 176, 176, 439 174, 166, 169, 176, 176, 175, 176, 176, 182, 182, 440 99, 182, 182, 182, 88, 182, 182, 182, 134, 182, 441 97, 182, 95, 182, 182, 108, 182, 191, 191, 191, 442 177, 86, 53, 177, 177, 50, 177, 177, 177, 65, 443 177, 94, 177, 76, 177, 177, 177, 75, 177, 177, 444 445 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, 446 127, 177, 177, 177, 177, 177, 177, 177, 177, 177, 447 177, 177, 177, 177, 0, 180, 53, 180, 50, 180, 448 180, 180, 114, 180, 180, 180, 180, 180, 180, 180, 449 180, 180, 180, 180, 180, 180, 180, 180, 180, 176, 450 147, 144, 176, 176, 176, 156, 156, 151, 176, 155, 451 176, 176, 164, 161, 176, 176, 174, 174, 168, 176, 452 173, 176, 100, 182, 182, 182, 182, 182, 182, 182, 453 182, 182, 182, 98, 182, 96, 191, 191, 189, 177, 454 177, 177, 64, 87, 177, 177, 177, 66, 177, 131, 455 456 177, 177, 85, 177, 52, 177, 177, 45, 177, 177, 457 177, 48, 74, 177, 177, 177, 177, 177, 177, 71, 458 177, 177, 177, 93, 72, 177, 177, 0, 180, 180, 459 180, 64, 180, 180, 180, 131, 180, 52, 180, 180, 460 180, 112, 180, 48, 180, 180, 180, 180, 71, 180, 461 180, 176, 176, 66, 153, 176, 150, 176, 176, 176, 462 172, 170, 167, 176, 64, 182, 182, 182, 131, 182, 463 182, 182, 182, 182, 182, 182, 190, 188, 177, 59, 464 177, 177, 177, 78, 177, 177, 126, 177, 177, 177, 465 177, 177, 102, 177, 177, 105, 132, 177, 177, 177, 466 467 177, 177, 120, 89, 177, 49, 177, 0, 180, 59, 468 180, 180, 180, 78, 126, 180, 180, 180, 180, 105, 469 132, 180, 180, 180, 120, 180, 176, 176, 126, 176, 470 176, 176, 176, 182, 182, 182, 126, 182, 182, 132, 471 111, 182, 182, 60, 177, 136, 177, 177, 177, 177, 472 177, 58, 63, 177, 177, 177, 177, 177, 177, 177, 473 84, 177, 177, 130, 177, 0, 60, 180, 136, 180, 474 58, 63, 180, 180, 180, 113, 180, 180, 130, 142, 475 143, 148, 159, 160, 165, 182, 182, 182, 182, 182, 476 182, 182, 182, 177, 177, 177, 177, 177, 177, 177, 477 478 177, 177, 177, 177, 177, 177, 177, 177, 77, 181, 479 180, 180, 180, 180, 180, 180, 180, 182, 182, 182, 480 182, 182, 182, 182, 182, 182, 110, 177, 177, 177, 481 177, 177, 47, 177, 118, 119, 177, 177, 177, 177, 482 73, 177, 177, 180, 180, 180, 118, 119, 180, 180, 483 180, 182, 182, 182, 182, 182, 182, 182, 182, 182, 484 177, 177, 177, 177, 177, 103, 91, 177, 177, 177, 485 177, 177, 180, 180, 103, 180, 180, 180, 182, 182, 486 182, 182, 182, 182, 182, 182, 182, 177, 177, 177, 487 177, 177, 177, 177, 177, 46, 177, 177, 180, 180, 488 489 180, 180, 180, 180, 80, 182, 135, 182, 182, 182, 490 182, 182, 106, 177, 177, 177, 177, 177, 177, 90, 491 177, 69, 177, 180, 180, 180, 180, 69, 180, 182, 492 182, 182, 182, 182, 182, 177, 177, 177, 177, 177, 493 177, 177, 104, 133, 68, 180, 180, 180, 180, 104, 494 133, 68, 182, 182, 101, 133, 182, 182, 177, 177, 495 177, 177, 177, 177, 177, 180, 180, 180, 180, 182, 496 182, 182, 182, 129, 177, 56, 177, 177, 177, 177, 497 129, 180, 56, 180, 182, 182, 182, 182, 177, 177, 498 177, 177, 177, 180, 180, 182, 182, 107, 182, 54, 499 500 177, 177, 177, 177, 54, 180, 182, 182, 182, 177, 501 177, 177, 177, 180, 182, 125, 182, 177, 177, 177, 502 177, 180, 182, 182, 177, 177, 177, 177, 180, 79, 503 109, 55, 177, 82, 177, 55, 81, 177, 177, 83, 504 0 505 } ; 506 507 static const YY_CHAR yy_ec[256] = 508 { 0, 509 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 510 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 511 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 512 1, 2, 4, 5, 6, 7, 8, 9, 1, 10, 513 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 514 21, 21, 21, 21, 21, 22, 22, 23, 24, 25, 515 26, 27, 28, 1, 29, 30, 31, 32, 33, 34, 516 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 517 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 518 55, 56, 57, 58, 59, 1, 60, 61, 62, 63, 519 520 64, 65, 66, 67, 68, 16, 69, 70, 71, 72, 521 73, 74, 16, 75, 76, 77, 78, 16, 16, 79, 522 16, 16, 80, 81, 82, 83, 1, 1, 1, 1, 523 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 524 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 525 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 526 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 527 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 528 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 529 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 530 531 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 532 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 533 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 534 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 535 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 536 1, 1, 1, 1, 1 537 } ; 538 539 static const YY_CHAR yy_meta[84] = 540 { 0, 541 1, 1, 2, 3, 1, 1, 4, 1, 1, 1, 542 1, 3, 5, 6, 7, 8, 9, 10, 10, 10, 543 10, 10, 7, 1, 1, 6, 1, 3, 11, 11, 544 11, 11, 11, 11, 8, 12, 8, 8, 8, 8, 545 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 546 8, 12, 8, 8, 7, 4, 7, 3, 8, 11, 547 11, 11, 11, 11, 11, 8, 12, 8, 8, 8, 548 8, 8, 8, 8, 8, 8, 8, 8, 12, 1, 549 1, 1, 9 550 } ; 551 552 static const flex_int16_t yy_base[1266] = 553 { 0, 554 0, 0, 0, 0, 83, 165, 247, 0, 330, 0, 555 413, 0, 115, 117, 496, 0, 579, 662, 2221, 2222, 556 2222, 2218, 2222, 2222, 2214, 0, 728, 2192, 2222, 2222, 557 2191, 2190, 2222, 2189, 0, 87, 684, 696, 2222, 2222, 558 2189, 2222, 2186, 95, 91, 2169, 93, 94, 90, 2165, 559 107, 2168, 116, 121, 112, 111, 116, 2176, 163, 2179, 560 2174, 2180, 2141, 2129, 2222, 2177, 2222, 0, 2200, 2196, 561 0, 2222, 2222, 2222, 2130, 2187, 0, 2151, 2222, 2195, 562 2170, 2190, 0, 776, 2222, 130, 2222, 2222, 2168, 2167, 563 2222, 2166, 0, 187, 824, 129, 590, 593, 2222, 2222, 564 565 89, 2165, 175, 2222, 886, 194, 185, 586, 591, 2153, 566 2147, 171, 169, 194, 193, 2142, 2154, 591, 2133, 2159, 567 2222, 560, 2222, 2222, 2222, 2158, 2180, 948, 2222, 212, 568 2156, 0, 2155, 0, 151, 0, 0, 0, 184, 2154, 569 568, 2222, 996, 617, 661, 577, 668, 669, 2137, 607, 570 2149, 2131, 2127, 196, 2129, 2222, 2222, 2148, 711, 592, 571 744, 694, 681, 557, 2113, 2097, 2093, 141, 2095, 611, 572 0, 0, 2143, 2142, 2141, 2140, 2139, 0, 2137, 606, 573 2110, 612, 2110, 2124, 2123, 2117, 2125, 657, 2111, 2107, 574 2122, 686, 0, 0, 2128, 2141, 2222, 0, 2222, 2222, 575 576 2222, 2129, 93, 67, 604, 2222, 2222, 2149, 2145, 2222, 577 0, 0, 1058, 2222, 2222, 2222, 2222, 2222, 0, 781, 578 2222, 0, 2123, 2122, 2100, 2114, 2097, 2107, 2096, 0, 579 2108, 2099, 2097, 2097, 2090, 2103, 2088, 2087, 2091, 2087, 580 2089, 2099, 2090, 733, 2070, 2086, 678, 539, 2086, 2084, 581 2073, 662, 2084, 2086, 2074, 2088, 2088, 2076, 2083, 747, 582 2063, 2083, 2086, 2084, 2066, 2066, 2065, 2222, 2038, 2043, 583 2222, 0, 0, 2049, 2222, 0, 1112, 2222, 2222, 2070, 584 577, 0, 0, 704, 780, 782, 2222, 2222, 0, 2080, 585 2222, 2222, 2222, 2079, 783, 832, 862, 0, 2067, 2056, 586 587 0, 2060, 2058, 726, 881, 924, 2067, 2067, 696, 2056, 588 704, 2045, 2054, 2043, 781, 2054, 2056, 2059, 2048, 2061, 589 2054, 2034, 2054, 2056, 2041, 2222, 2081, 2222, 0, 1166, 590 0, 0, 0, 745, 843, 0, 2046, 884, 895, 2045, 591 2049, 2032, 2033, 2047, 2030, 2047, 2034, 2042, 2043, 2041, 592 2042, 2021, 795, 2001, 897, 900, 2000, 2004, 1989, 1990, 593 1988, 2003, 1991, 1998, 1999, 1997, 1998, 1979, 0, 0, 594 0, 0, 0, 786, 0, 2008, 2013, 2021, 2022, 2012, 595 2019, 783, 2017, 2007, 2006, 2004, 2017, 1995, 2001, 1997, 596 1993, 0, 0, 2018, 2017, 801, 756, 764, 0, 827, 597 598 2222, 2222, 1996, 1992, 2004, 2001, 2002, 1991, 2001, 2001, 599 1984, 2001, 1992, 1982, 1994, 1997, 1994, 1975, 1991, 0, 600 1982, 1984, 1971, 1986, 1984, 1982, 1984, 1995, 0, 0, 601 1971, 0, 1965, 1966, 1971, 1957, 1974, 1964, 1961, 1960, 602 1955, 1967, 1957, 1954, 1960, 1967, 1968, 1952, 1968, 1956, 603 1960, 1947, 0, 0, 0, 0, 1951, 0, 1945, 1948, 604 953, 1955, 1956, 1956, 1956, 1939, 1932, 1955, 957, 1952, 605 1950, 1941, 1937, 1944, 1946, 1957, 0, 0, 1928, 1929, 606 1931, 1920, 1937, 1925, 1920, 1937, 1927, 1934, 1935, 1936, 607 1931, 0, 1920, 840, 1929, 1928, 1916, 0, 1926, 1917, 608 609 1917, 1908, 1923, 1921, 1920, 1912, 1903, 1904, 1907, 1875, 610 879, 1883, 1882, 1871, 0, 1880, 1872, 1865, 1878, 1876, 611 1875, 1868, 1860, 1861, 1863, 1897, 1900, 1899, 1884, 1901, 612 1889, 1888, 1895, 1886, 1876, 1880, 1884, 1887, 1871, 1888, 613 1886, 1872, 1869, 1887, 655, 587, 876, 1875, 0, 1868, 614 1871, 1866, 1865, 0, 1871, 1861, 1849, 1865, 1853, 1859, 615 1856, 1870, 1858, 1868, 1851, 1869, 1850, 1851, 1863, 1847, 616 1865, 1862, 1846, 0, 1848, 1847, 1830, 1851, 1838, 1846, 617 1838, 1847, 1840, 1851, 1844, 1847, 1836, 1841, 1829, 1836, 618 1838, 1841, 1836, 1839, 1840, 1830, 0, 1827, 1822, 0, 619 620 1828, 1818, 0, 1806, 1822, 1815, 1829, 1812, 0, 1812, 621 1830, 1827, 0, 1814, 1827, 1796, 1817, 1813, 1815, 1808, 622 1817, 1806, 1811, 1807, 0, 1806, 1798, 1802, 0, 0, 623 0, 1797, 1813, 1792, 1237, 0, 0, 1794, 1802, 0, 624 1790, 1806, 1766, 1759, 1762, 0, 0, 0, 1758, 1772, 625 1319, 0, 0, 1756, 1762, 0, 1752, 1766, 1773, 1780, 626 0, 1777, 1776, 1774, 0, 1789, 1772, 1772, 0, 1786, 627 0, 1781, 0, 1771, 1768, 1756, 1782, 825, 900, 889, 628 1764, 0, 898, 1764, 1778, 0, 1781, 1762, 1775, 0, 629 1765, 0, 1747, 0, 1753, 1751, 1734, 0, 1711, 1702, 630 631 1692, 1695, 1688, 1646, 1640, 1650, 1622, 1616, 1609, 1624, 632 0, 1618, 1607, 1612, 1584, 1520, 1527, 1531, 1510, 1521, 633 1527, 1508, 1512, 1521, 1524, 1503, 931, 1503, 0, 1521, 634 1502, 1515, 0, 1505, 1514, 1509, 1512, 1510, 1495, 1508, 635 1502, 1496, 1508, 1504, 1493, 1492, 1499, 1503, 1494, 1481, 636 0, 1488, 1486, 1479, 1494, 0, 1401, 0, 1494, 0, 637 1495, 1445, 0, 1451, 1449, 1443, 0, 1483, 0, 1457, 638 0, 1458, 0, 1469, 1470, 1482, 1482, 1471, 1480, 1447, 639 1459, 1472, 1456, 0, 840, 0, 805, 921, 1479, 1453, 640 1466, 1448, 0, 0, 1456, 1463, 1458, 0, 205, 0, 641 642 1453, 1432, 0, 1431, 0, 119, 637, 0, 648, 690, 643 718, 0, 727, 766, 818, 815, 822, 859, 884, 884, 644 912, 911, 926, 0, 0, 920, 931, 929, 936, 952, 645 937, 0, 950, 962, 964, 0, 965, 0, 970, 966, 646 959, 0, 973, 0, 966, 987, 981, 974, 964, 984, 647 996, 985, 991, 0, 0, 1002, 0, 989, 961, 966, 648 0, 0, 0, 963, 0, 992, 983, 1010, 0, 1011, 649 998, 987, 1014, 1016, 997, 1008, 1029, 1030, 1021, 0, 650 1018, 1014, 1029, 0, 1022, 1020, 0, 1008, 1019, 1023, 651 1030, 1025, 0, 1013, 1052, 0, 1014, 1045, 1050, 1036, 652 653 1025, 1049, 0, 0, 1051, 0, 1061, 1063, 1063, 0, 654 1061, 1052, 1066, 0, 0, 1056, 1063, 1058, 1046, 0, 655 1047, 1054, 1049, 1073, 0, 1068, 1078, 1080, 0, 1080, 656 1050, 1052, 1052, 1086, 1081, 1066, 0, 1093, 1078, 1076, 657 0, 1077, 1095, 0, 1090, 0, 1098, 1099, 1104, 1117, 658 1103, 0, 0, 1117, 1106, 1108, 1112, 1120, 1117, 1121, 659 0, 1112, 1127, 0, 1129, 1145, 0, 1115, 0, 1123, 660 0, 0, 1132, 1120, 1131, 0, 1121, 1136, 0, 0, 661 0, 0, 0, 0, 0, 1122, 1141, 1144, 1148, 1147, 662 1146, 1164, 1156, 1154, 1158, 1151, 1145, 1159, 1170, 1170, 663 664 1165, 1178, 1164, 1174, 1175, 1167, 1166, 1186, 0, 2222, 665 1181, 1185, 1185, 1181, 1183, 1173, 1193, 1180, 1187, 1196, 666 1186, 1190, 1203, 1204, 1208, 1223, 0, 1194, 1212, 1212, 667 1212, 1216, 0, 1211, 0, 0, 1223, 1219, 1234, 1238, 668 0, 1239, 1237, 1211, 1229, 1225, 0, 0, 1241, 1245, 669 1243, 1230, 1244, 1238, 1242, 1233, 1249, 1245, 1246, 1243, 670 1248, 1238, 1245, 1229, 1248, 1231, 0, 1262, 1260, 1246, 671 1248, 1263, 1260, 1250, 1240, 1268, 1255, 1269, 1256, 1273, 672 1272, 1263, 1270, 1276, 1274, 1262, 1278, 1270, 1254, 1255, 673 1286, 1273, 1274, 1278, 1299, 0, 1286, 1289, 1294, 1278, 674 675 1290, 1306, 1292, 1295, 0, 1294, 0, 1306, 1306, 1317, 676 1309, 1293, 0, 1309, 1325, 1326, 1316, 1315, 1316, 0, 677 1318, 0, 1314, 1318, 1334, 1321, 1323, 0, 1319, 1309, 678 1310, 1328, 1330, 1332, 1330, 1326, 1336, 1336, 1346, 1341, 679 1342, 1324, 0, 0, 0, 1335, 1345, 1344, 1354, 0, 680 0, 0, 1341, 1355, 0, 0, 1357, 1345, 1344, 1356, 681 1362, 1355, 1356, 1354, 1369, 1356, 1371, 1382, 1376, 1364, 682 1378, 1377, 1383, 0, 1386, 0, 1376, 1380, 1393, 1390, 683 0, 1396, 0, 1386, 1392, 1405, 1387, 1393, 1395, 1395, 684 1408, 1411, 1401, 1400, 1400, 1414, 1410, 0, 1400, 0, 685 686 1388, 1419, 1401, 1407, 0, 1392, 1409, 1406, 1417, 1422, 687 1408, 1420, 1427, 1427, 1421, 0, 1414, 1421, 1427, 1422, 688 1437, 1425, 1421, 1416, 1438, 1428, 1430, 1425, 1442, 0, 689 0, 0, 1433, 0, 1439, 0, 0, 1434, 1436, 0, 690 2222, 1565, 1577, 1589, 1601, 1613, 1625, 1634, 1643, 1652, 691 1664, 1673, 1685, 1697, 1707, 1712, 1722, 1725, 1733, 1742, 692 1745, 1757, 1769, 1781, 1793 693 } ; 694 695 static const flex_int16_t yy_def[1266] = 696 { 0, 697 1242, 1242, 1241, 3, 1243, 1243, 1241, 7, 1241, 9, 698 1241, 11, 1244, 1244, 1241, 15, 1245, 1245, 1241, 1241, 699 1241, 1241, 1241, 1241, 1246, 1247, 1248, 1241, 1241, 1241, 700 1241, 1241, 1241, 1241, 1248, 1248, 1241, 1241, 1241, 1241, 701 1241, 1241, 1241, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 702 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 703 1248, 1241, 1248, 1248, 1241, 1241, 1241, 1248, 1241, 1246, 704 1248, 1241, 1241, 1241, 1241, 1248, 1249, 1248, 1241, 1241, 705 1241, 1246, 1247, 1250, 1241, 1241, 1241, 1241, 1241, 1241, 706 1241, 1241, 1250, 1241, 1241, 95, 95, 97, 1241, 1241, 707 708 1241, 1241, 1241, 1241, 1250, 105, 105, 105, 105, 1250, 709 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1241, 710 1241, 1241, 1241, 1241, 1241, 1241, 1251, 1252, 1241, 1241, 711 1253, 1252, 1252, 95, 95, 97, 98, 1254, 1241, 1241, 712 1241, 1241, 1252, 143, 143, 143, 143, 143, 1252, 1252, 713 1252, 1252, 1252, 1252, 1252, 1241, 1241, 1241, 143, 143, 714 143, 143, 143, 1252, 1252, 1252, 1252, 1252, 1252, 1241, 715 1252, 1255, 1241, 1255, 1255, 1255, 1255, 1255, 1241, 1255, 716 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 717 1255, 1255, 1255, 1255, 1255, 1241, 1241, 1256, 1241, 1241, 718 719 1241, 1257, 1257, 1257, 1257, 1241, 1241, 1241, 1246, 1241, 720 1247, 1248, 1248, 1241, 1241, 1241, 1241, 1241, 1248, 1241, 721 1241, 1258, 1241, 1241, 1248, 1248, 1248, 1248, 1248, 1248, 722 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 723 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 724 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 725 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1241, 1248, 1248, 726 1241, 1259, 1260, 1248, 1241, 1250, 1250, 1241, 1241, 1241, 727 95, 97, 98, 1261, 1261, 1261, 1241, 1241, 1258, 1241, 728 1241, 1241, 1241, 1241, 105, 105, 105, 1250, 1250, 1250, 729 730 1250, 1250, 1250, 1250, 105, 105, 1250, 1250, 1250, 1250, 731 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 732 1250, 1250, 1250, 1250, 1250, 1241, 1251, 1241, 1252, 1252, 733 1253, 1253, 1254, 143, 143, 1252, 1252, 143, 143, 1252, 734 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 735 1252, 1252, 143, 1252, 143, 143, 1252, 1252, 1252, 1252, 736 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1255, 1255, 737 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 738 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 739 1255, 1255, 1256, 1257, 1241, 1257, 1257, 1257, 1248, 1258, 740 741 1241, 1241, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 742 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 743 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 744 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 745 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 746 1248, 1248, 1248, 1248, 1259, 1260, 1248, 1250, 1241, 1250, 747 105, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 105, 1250, 748 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 749 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 750 1250, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 751 752 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 753 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 754 1252, 1252, 1252, 1252, 1252, 1255, 1255, 1255, 1255, 1255, 755 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 756 1255, 1255, 1255, 1255, 1257, 1257, 1257, 1248, 1248, 1248, 757 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 758 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 759 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 760 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 761 1248, 1248, 1248, 1248, 1241, 1250, 1250, 1250, 1250, 1250, 762 763 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 764 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 765 1250, 1250, 1250, 1250, 1250, 1252, 1252, 1252, 1252, 1252, 766 1252, 1252, 1252, 1252, 1262, 1252, 1252, 1252, 1252, 1252, 767 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 768 1263, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1255, 1255, 769 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 770 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1257, 1257, 1257, 771 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 772 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 773 774 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 775 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 776 1248, 1248, 1248, 1248, 1241, 1250, 1250, 1250, 1250, 1250, 777 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 778 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1252, 779 1252, 1252, 1252, 1252, 1252, 1264, 1262, 1252, 1252, 1252, 780 1252, 1252, 1252, 1252, 1252, 1252, 1265, 1263, 1252, 1252, 781 1252, 1252, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 782 1255, 1255, 1255, 1255, 1255, 1255, 1257, 1257, 1257, 1248, 783 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 784 785 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 786 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 787 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1241, 1250, 1250, 788 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 789 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 790 1250, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 1252, 791 1252, 1252, 1252, 1252, 1255, 1255, 1255, 1255, 1255, 1255, 792 1255, 1255, 1255, 1255, 1255, 1255, 1257, 1257, 1248, 1248, 793 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 794 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 795 796 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1241, 1250, 1250, 797 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 798 1250, 1250, 1250, 1250, 1250, 1250, 1252, 1252, 1252, 1252, 799 1252, 1252, 1252, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 800 1255, 1255, 1255, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 801 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 802 1248, 1248, 1248, 1248, 1248, 1241, 1250, 1250, 1250, 1250, 803 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1252, 804 1252, 1252, 1252, 1252, 1252, 1255, 1255, 1255, 1255, 1255, 805 1255, 1255, 1255, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 806 807 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1241, 808 1250, 1250, 1250, 1250, 1250, 1250, 1250, 1255, 1255, 1255, 809 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1248, 1248, 1248, 810 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 811 1248, 1248, 1248, 1250, 1250, 1250, 1250, 1250, 1250, 1250, 812 1250, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 813 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 814 1248, 1248, 1250, 1250, 1250, 1250, 1250, 1250, 1255, 1255, 815 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1248, 1248, 1248, 816 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 1250, 1250, 817 818 1250, 1250, 1250, 1250, 1255, 1255, 1255, 1255, 1255, 1255, 819 1255, 1255, 1255, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 820 1248, 1248, 1248, 1250, 1250, 1250, 1250, 1250, 1250, 1255, 821 1255, 1255, 1255, 1255, 1255, 1248, 1248, 1248, 1248, 1248, 822 1248, 1248, 1248, 1248, 1248, 1250, 1250, 1250, 1250, 1250, 823 1250, 1250, 1255, 1255, 1255, 1255, 1255, 1255, 1248, 1248, 824 1248, 1248, 1248, 1248, 1248, 1250, 1250, 1250, 1250, 1255, 825 1255, 1255, 1255, 1248, 1248, 1248, 1248, 1248, 1248, 1248, 826 1250, 1250, 1250, 1250, 1255, 1255, 1255, 1255, 1248, 1248, 827 1248, 1248, 1248, 1250, 1250, 1255, 1255, 1255, 1255, 1248, 828 829 1248, 1248, 1248, 1248, 1250, 1250, 1255, 1255, 1255, 1248, 830 1248, 1248, 1248, 1250, 1255, 1255, 1255, 1248, 1248, 1248, 831 1248, 1250, 1255, 1255, 1248, 1248, 1248, 1248, 1250, 1255, 832 1255, 1248, 1248, 1248, 1248, 1250, 1248, 1248, 1248, 1248, 833 0, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 834 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 835 1241, 1241, 1241, 1241, 1241 836 } ; 837 838 static const flex_int16_t yy_nxt[2306] = 839 { 0, 840 21, 22, 23, 24, 25, 26, 27, 21, 28, 29, 841 30, 31, 32, 33, 34, 35, 36, 37, 38, 38, 842 38, 38, 39, 40, 41, 42, 43, 21, 44, 45, 843 46, 47, 48, 49, 50, 51, 52, 35, 35, 53, 844 54, 55, 56, 57, 35, 58, 59, 60, 35, 61, 845 35, 35, 35, 35, 21, 35, 21, 62, 35, 35, 846 35, 35, 35, 35, 35, 35, 35, 35, 35, 63, 847 35, 35, 64, 35, 35, 35, 35, 35, 35, 65, 848 66, 67, 68, 20, 69, 23, 20, 70, 20, 395, 849 20, 20, 72, 73, 20, 20, 74, 75, 218, 76, 850 851 20, 20, 20, 20, 20, 20, 20, 20, 77, 20, 852 20, 78, 219, 290, 291, 395, 22, 23, 22, 23, 853 26, 235, 26, 231, 225, 236, 226, 232, 227, 239, 854 233, 196, 240, 196, 228, 237, 397, 20, 278, 20, 855 20, 229, 230, 242, 251, 238, 243, 245, 246, 248, 856 890, 257, 253, 249, 252, 214, 254, 250, 247, 255, 857 256, 258, 20, 20, 20, 20, 69, 23, 20, 70, 858 20, 396, 20, 20, 72, 73, 20, 20, 74, 75, 859 287, 76, 20, 20, 20, 20, 20, 20, 20, 20, 860 77, 20, 20, 78, 197, 260, 197, 312, 218, 261, 861 862 293, 294, 287, 310, 366, 313, 262, 287, 290, 291, 863 263, 264, 279, 311, 295, 265, 295, 367, 280, 20, 864 278, 20, 20, 295, 276, 295, 314, 304, 350, 287, 865 302, 276, 276, 303, 316, 885, 315, 214, 317, 886, 866 276, 276, 318, 351, 20, 20, 20, 79, 80, 23, 867 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 868 91, 92, 93, 94, 95, 96, 97, 97, 98, 99, 869 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 870 109, 93, 110, 111, 93, 93, 112, 113, 114, 115, 871 116, 93, 117, 118, 119, 93, 93, 93, 93, 93, 872 873 93, 79, 93, 79, 120, 93, 109, 109, 109, 109, 874 109, 109, 93, 93, 93, 93, 93, 93, 93, 93, 875 93, 93, 93, 93, 93, 93, 121, 122, 123, 124, 876 21, 22, 125, 126, 21, 127, 128, 129, 130, 29, 877 30, 131, 32, 33, 34, 132, 133, 134, 135, 136, 878 136, 137, 39, 138, 139, 140, 141, 142, 143, 144, 879 145, 146, 147, 148, 132, 132, 149, 132, 132, 150, 880 132, 151, 152, 153, 132, 132, 154, 155, 132, 132, 881 132, 132, 132, 132, 156, 132, 157, 158, 132, 159, 882 160, 161, 146, 162, 163, 132, 132, 132, 132, 164, 883 884 132, 165, 166, 167, 132, 168, 169, 132, 132, 65, 885 170, 67, 171, 21, 22, 23, 172, 25, 26, 172, 886 21, 173, 29, 30, 174, 175, 172, 176, 172, 177, 887 172, 172, 172, 172, 172, 172, 40, 41, 178, 179, 888 172, 180, 181, 182, 172, 183, 184, 172, 185, 186, 889 172, 187, 188, 172, 172, 172, 189, 190, 191, 192, 890 172, 172, 172, 172, 172, 172, 172, 193, 172, 194, 891 195, 172, 172, 172, 172, 172, 172, 172, 172, 172, 892 172, 172, 172, 172, 172, 172, 172, 172, 172, 172, 893 172, 172, 65, 66, 67, 172, 21, 22, 23, 21, 894 895 21, 26, 198, 21, 21, 21, 21, 21, 21, 199, 896 21, 198, 196, 21, 21, 21, 21, 21, 199, 199, 897 21, 21, 21, 21, 198, 198, 198, 198, 198, 198, 898 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 899 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 900 21, 21, 21, 21, 198, 198, 198, 198, 198, 198, 901 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, 902 198, 198, 198, 198, 198, 200, 21, 201, 21, 21, 903 22, 23, 429, 25, 26, 271, 21, 21, 21, 21, 904 430, 21, 199, 293, 294, 196, 21, 21, 21, 21, 905 906 21, 199, 199, 21, 21, 21, 334, 282, 282, 395, 907 283, 283, 283, 283, 305, 295, 329, 295, 306, 284, 908 295, 334, 295, 321, 361, 276, 395, 322, 287, 362, 909 276, 329, 307, 276, 323, 1241, 271, 276, 276, 324, 910 326, 287, 203, 345, 204, 338, 334, 679, 205, 346, 911 284, 355, 374, 375, 377, 287, 329, 378, 206, 21, 912 207, 21, 21, 22, 23, 1241, 25, 26, 287, 21, 913 21, 21, 21, 891, 21, 199, 398, 395, 196, 21, 914 21, 21, 21, 21, 199, 199, 21, 21, 21, 339, 915 334, 326, 434, 384, 892, 435, 340, 334, 334, 385, 916 917 329, 220, 220, 220, 220, 220, 427, 329, 329, 341, 918 334, 343, 428, 220, 220, 220, 220, 220, 678, 342, 919 329, 389, 221, 334, 221, 203, 472, 204, 390, 473, 920 391, 205, 475, 329, 221, 222, 221, 893, 476, 287, 921 334, 206, 21, 207, 21, 213, 213, 213, 213, 213, 922 329, 894, 221, 360, 221, 287, 213, 213, 213, 213, 923 213, 213, 222, 421, 221, 358, 221, 466, 422, 467, 924 287, 353, 359, 334, 334, 443, 423, 444, 395, 424, 925 354, 445, 287, 329, 329, 895, 395, 213, 213, 213, 926 213, 213, 213, 277, 277, 277, 277, 277, 220, 220, 927 928 220, 220, 220, 356, 277, 277, 277, 277, 277, 277, 929 357, 480, 295, 534, 295, 287, 526, 287, 896, 221, 930 481, 221, 276, 395, 334, 547, 535, 395, 546, 276, 931 276, 287, 527, 287, 329, 277, 277, 277, 277, 277, 932 277, 281, 281, 282, 282, 283, 287, 395, 287, 221, 933 897, 221, 284, 285, 284, 286, 284, 284, 287, 287, 934 287, 295, 221, 295, 221, 221, 288, 221, 627, 875, 935 510, 276, 334, 898, 628, 289, 877, 545, 460, 276, 936 899, 876, 329, 284, 285, 284, 286, 284, 284, 493, 937 287, 295, 221, 461, 221, 221, 288, 221, 395, 787, 938 939 900, 276, 289, 295, 295, 295, 295, 295, 276, 276, 940 295, 395, 295, 334, 295, 296, 295, 297, 295, 295, 941 276, 298, 395, 329, 334, 299, 334, 276, 468, 334, 942 495, 901, 300, 301, 329, 680, 329, 298, 644, 329, 943 791, 496, 902, 395, 645, 295, 295, 295, 295, 295, 944 295, 903, 298, 295, 904, 295, 792, 469, 789, 788, 945 905, 906, 907, 276, 298, 330, 330, 330, 330, 330, 946 276, 276, 512, 830, 908, 513, 330, 330, 330, 330, 947 330, 330, 295, 909, 295, 910, 295, 911, 295, 831, 948 878, 912, 276, 605, 913, 914, 276, 915, 597, 276, 949 950 276, 916, 917, 276, 276, 918, 919, 330, 330, 330, 951 330, 330, 330, 334, 334, 334, 334, 334, 920, 921, 952 922, 923, 924, 925, 334, 335, 334, 334, 334, 334, 953 926, 336, 927, 928, 929, 337, 930, 931, 932, 933, 954 934, 935, 936, 937, 938, 939, 940, 336, 941, 942, 955 943, 395, 395, 944, 945, 334, 334, 334, 334, 334, 956 334, 946, 336, 947, 948, 949, 950, 951, 952, 953, 957 954, 955, 958, 959, 336, 213, 213, 213, 213, 213, 958 956, 960, 961, 962, 963, 957, 213, 213, 213, 213, 959 213, 213, 964, 965, 966, 967, 399, 968, 399, 969, 960 961 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 962 980, 981, 982, 983, 984, 985, 986, 213, 213, 213, 963 213, 213, 213, 987, 988, 989, 399, 990, 399, 277, 964 277, 277, 277, 277, 991, 992, 993, 994, 995, 996, 965 277, 277, 277, 277, 277, 277, 997, 998, 999, 1000, 966 458, 1001, 458, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 967 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 968 1019, 277, 277, 277, 277, 277, 277, 1020, 1021, 1022, 969 458, 1023, 458, 330, 330, 330, 330, 330, 1027, 1028, 970 1029, 1030, 1024, 1031, 330, 330, 330, 330, 330, 330, 971 972 1025, 1032, 1033, 1034, 492, 1026, 492, 1035, 1037, 1038, 973 1039, 1040, 1041, 1042, 1043, 1036, 1044, 1045, 1046, 1049, 974 1050, 1051, 1052, 1047, 1053, 330, 330, 330, 330, 330, 975 330, 1048, 1054, 1055, 492, 1056, 492, 756, 756, 1057, 976 756, 756, 756, 1058, 756, 756, 756, 756, 756, 1059, 977 756, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 978 756, 756, 756, 756, 756, 1069, 1070, 1071, 1072, 1073, 979 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 980 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 981 1094, 1095, 1096, 1097, 756, 1098, 1099, 1100, 1101, 1102, 982 983 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 984 1113, 1114, 1115, 1116, 1117, 1118, 756, 756, 756, 767, 985 767, 1119, 767, 767, 767, 1120, 767, 767, 767, 767, 986 767, 1121, 767, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 987 1129, 1130, 767, 767, 767, 767, 767, 1131, 1132, 1133, 988 1134, 1135, 1136, 1137, 1140, 1141, 1142, 1138, 1143, 1144, 989 1145, 1146, 1147, 1150, 1151, 1152, 1148, 1153, 1154, 1155, 990 1139, 1156, 1157, 1158, 1159, 1160, 767, 1161, 1162, 1149, 991 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 992 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 767, 767, 993 994 767, 756, 756, 1181, 756, 756, 756, 1182, 756, 756, 995 756, 756, 756, 1183, 756, 1184, 1185, 1186, 1187, 1188, 996 1189, 1190, 1191, 1192, 756, 756, 756, 756, 756, 1193, 997 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 998 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 999 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 756, 1222, 1000 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1001 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 889, 888, 1002 756, 756, 756, 767, 767, 887, 767, 767, 767, 884, 1003 767, 767, 767, 767, 767, 883, 767, 882, 881, 880, 1004 1005 879, 395, 874, 873, 872, 871, 767, 767, 767, 767, 1006 767, 870, 869, 868, 867, 866, 865, 864, 863, 862, 1007 861, 860, 859, 858, 857, 856, 855, 854, 853, 852, 1008 851, 850, 849, 848, 847, 846, 845, 844, 843, 842, 1009 767, 841, 840, 839, 838, 837, 836, 835, 834, 833, 1010 832, 829, 828, 827, 826, 825, 824, 823, 822, 821, 1011 820, 819, 767, 767, 767, 20, 20, 20, 20, 20, 1012 20, 20, 20, 20, 20, 20, 20, 71, 71, 71, 1013 71, 71, 71, 71, 71, 71, 71, 71, 71, 21, 1014 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 1015 1016 21, 202, 202, 202, 202, 202, 202, 202, 202, 202, 1017 202, 202, 202, 209, 209, 209, 209, 209, 209, 209, 1018 209, 209, 209, 209, 209, 211, 818, 211, 211, 211, 1019 211, 211, 211, 211, 211, 211, 211, 212, 212, 212, 1020 212, 212, 212, 212, 212, 212, 273, 817, 816, 815, 1021 273, 273, 814, 273, 273, 276, 813, 812, 811, 276, 1022 276, 276, 276, 276, 327, 327, 327, 327, 327, 327, 1023 327, 327, 327, 327, 327, 327, 329, 329, 810, 329, 1024 329, 329, 329, 329, 329, 331, 809, 331, 331, 331, 1025 331, 331, 331, 331, 331, 331, 331, 333, 808, 333, 1026 1027 333, 333, 333, 333, 333, 333, 333, 333, 333, 369, 1028 369, 369, 369, 369, 369, 369, 369, 369, 369, 393, 1029 807, 393, 393, 393, 394, 394, 806, 805, 394, 394, 1030 804, 394, 394, 394, 400, 400, 455, 455, 455, 455, 1031 455, 455, 455, 455, 455, 456, 456, 456, 456, 456, 1032 456, 456, 456, 456, 284, 284, 284, 757, 803, 757, 1033 757, 757, 757, 757, 757, 757, 757, 757, 757, 768, 1034 802, 768, 768, 768, 768, 768, 768, 768, 768, 768, 1035 768, 756, 801, 756, 756, 756, 756, 756, 756, 756, 1036 756, 756, 756, 767, 800, 767, 767, 767, 767, 767, 1037 1038 767, 767, 767, 767, 767, 799, 798, 797, 796, 795, 1039 794, 793, 790, 786, 785, 784, 783, 782, 781, 780, 1040 779, 778, 777, 776, 775, 774, 773, 772, 771, 770, 1041 769, 766, 765, 764, 763, 762, 761, 760, 759, 758, 1042 755, 754, 753, 752, 751, 750, 749, 748, 747, 746, 1043 745, 744, 743, 742, 741, 740, 739, 738, 737, 736, 1044 735, 734, 733, 732, 731, 730, 729, 728, 727, 726, 1045 725, 724, 723, 722, 721, 720, 719, 718, 717, 716, 1046 715, 714, 713, 712, 711, 710, 709, 708, 707, 706, 1047 705, 704, 703, 702, 701, 700, 699, 698, 697, 696, 1048 1049 695, 694, 693, 692, 691, 690, 689, 688, 687, 686, 1050 685, 684, 683, 682, 681, 677, 676, 675, 674, 673, 1051 672, 671, 670, 669, 668, 667, 666, 665, 664, 663, 1052 662, 661, 660, 659, 658, 657, 656, 655, 654, 653, 1053 652, 651, 650, 649, 648, 647, 646, 643, 642, 641, 1054 640, 639, 638, 637, 636, 635, 634, 633, 632, 631, 1055 630, 629, 626, 625, 624, 623, 622, 621, 620, 619, 1056 618, 617, 616, 615, 614, 613, 612, 611, 610, 609, 1057 608, 607, 606, 604, 603, 602, 601, 600, 599, 598, 1058 596, 595, 594, 593, 592, 591, 590, 589, 588, 587, 1059 1060 586, 585, 584, 583, 582, 581, 580, 579, 578, 577, 1061 576, 575, 574, 573, 572, 571, 570, 569, 568, 567, 1062 566, 565, 564, 563, 562, 561, 560, 559, 558, 557, 1063 556, 555, 554, 553, 552, 551, 550, 549, 548, 394, 1064 395, 544, 543, 542, 541, 540, 539, 538, 537, 536, 1065 533, 532, 531, 530, 529, 528, 525, 524, 523, 522, 1066 521, 520, 519, 518, 517, 516, 515, 514, 511, 509, 1067 508, 507, 506, 505, 504, 503, 502, 501, 500, 499, 1068 498, 497, 494, 328, 491, 490, 489, 488, 487, 486, 1069 485, 484, 483, 482, 479, 478, 477, 474, 471, 470, 1070 1071 465, 464, 463, 462, 402, 401, 459, 457, 454, 453, 1072 452, 451, 450, 449, 448, 447, 446, 442, 441, 440, 1073 439, 438, 437, 436, 433, 432, 431, 426, 425, 420, 1074 419, 418, 417, 416, 415, 414, 413, 412, 411, 410, 1075 409, 408, 407, 406, 405, 404, 403, 402, 401, 210, 1076 208, 395, 218, 392, 388, 387, 386, 383, 382, 381, 1077 380, 379, 376, 224, 373, 372, 371, 370, 214, 368, 1078 365, 364, 363, 268, 352, 349, 348, 347, 344, 292, 1079 279, 332, 328, 275, 268, 325, 320, 319, 309, 308, 1080 292, 217, 216, 215, 210, 275, 208, 274, 218, 272, 1081 1082 210, 208, 271, 270, 269, 268, 267, 266, 259, 244, 1083 241, 234, 224, 223, 217, 216, 215, 214, 210, 208, 1084 1241, 19, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1085 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1086 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1087 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1088 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1089 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1090 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1091 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1092 1093 1241, 1241, 1241, 1241, 1241 1094 } ; 1095 1096 static const flex_int16_t yy_chk[2306] = 1097 { 0, 1098 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1099 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1100 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1101 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1102 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1103 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1104 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1105 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1106 3, 3, 3, 5, 5, 5, 5, 5, 5, 204, 1107 5, 5, 5, 5, 5, 5, 5, 5, 36, 5, 1108 1109 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1110 5, 5, 36, 101, 101, 203, 13, 13, 14, 14, 1111 13, 47, 14, 45, 44, 47, 44, 45, 44, 49, 1112 45, 13, 49, 14, 44, 48, 204, 5, 86, 5, 1113 5, 44, 44, 51, 55, 48, 51, 53, 53, 54, 1114 806, 57, 56, 54, 55, 86, 56, 54, 53, 56, 1115 56, 57, 5, 5, 5, 6, 6, 6, 6, 6, 1116 6, 203, 6, 6, 6, 6, 6, 6, 6, 6, 1117 96, 6, 6, 6, 6, 6, 6, 6, 6, 6, 1118 6, 6, 6, 6, 13, 59, 14, 113, 94, 59, 1119 1120 103, 103, 135, 112, 168, 113, 59, 96, 139, 139, 1121 59, 59, 94, 112, 107, 59, 107, 168, 94, 6, 1122 130, 6, 6, 106, 107, 106, 114, 107, 154, 135, 1123 106, 107, 107, 106, 115, 799, 114, 130, 115, 799, 1124 106, 106, 115, 154, 6, 6, 6, 7, 7, 7, 1125 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1126 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1127 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1128 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1129 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1130 1131 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1132 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1133 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 1134 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1135 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1136 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1137 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1138 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1139 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1140 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1141 1142 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 1143 9, 9, 9, 11, 11, 11, 11, 11, 11, 11, 1144 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1145 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1146 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1147 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1148 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1149 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1150 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 1151 11, 11, 11, 11, 11, 11, 15, 15, 15, 15, 1152 1153 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 1154 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 1155 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 1156 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 1157 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 1158 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 1159 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 1160 15, 15, 15, 15, 15, 15, 15, 15, 15, 17, 1161 17, 17, 248, 17, 17, 122, 17, 17, 17, 17, 1162 248, 17, 17, 141, 141, 17, 17, 17, 17, 17, 1163 1164 17, 17, 17, 17, 17, 17, 146, 97, 97, 546, 1165 98, 98, 98, 98, 108, 108, 146, 108, 108, 97, 1166 109, 160, 109, 118, 164, 108, 205, 118, 281, 164, 1167 109, 160, 108, 108, 118, 98, 170, 109, 109, 118, 1168 122, 97, 17, 150, 17, 144, 144, 546, 17, 150, 1169 97, 160, 180, 180, 182, 281, 144, 182, 17, 17, 1170 17, 17, 18, 18, 18, 98, 18, 18, 97, 18, 1171 18, 18, 18, 807, 18, 18, 205, 545, 18, 18, 1172 18, 18, 18, 18, 18, 18, 18, 18, 18, 145, 1173 145, 170, 252, 188, 809, 252, 145, 147, 148, 188, 1174 1175 145, 37, 37, 37, 37, 37, 247, 147, 148, 147, 1176 163, 148, 247, 38, 38, 38, 38, 38, 545, 147, 1177 163, 192, 37, 162, 37, 18, 309, 18, 192, 309, 1178 192, 18, 311, 162, 38, 37, 38, 810, 311, 284, 1179 159, 18, 18, 18, 18, 27, 27, 27, 27, 27, 1180 159, 811, 37, 163, 37, 284, 27, 27, 27, 27, 1181 27, 27, 37, 244, 38, 162, 38, 304, 244, 304, 1182 284, 159, 162, 161, 334, 260, 244, 260, 397, 244, 1183 159, 260, 284, 161, 334, 813, 398, 27, 27, 27, 1184 27, 27, 27, 84, 84, 84, 84, 84, 220, 220, 1185 1186 220, 220, 220, 161, 84, 84, 84, 84, 84, 84, 1187 161, 315, 295, 382, 295, 285, 374, 286, 814, 220, 1188 315, 220, 295, 396, 353, 398, 382, 787, 397, 295, 1189 295, 285, 374, 286, 353, 84, 84, 84, 84, 84, 1190 84, 95, 95, 95, 95, 95, 285, 678, 286, 220, 1191 815, 220, 95, 95, 95, 95, 95, 95, 285, 95, 1192 286, 296, 95, 296, 95, 400, 95, 400, 494, 785, 1193 353, 296, 335, 816, 494, 95, 787, 396, 296, 296, 1194 817, 785, 335, 95, 95, 95, 95, 95, 95, 335, 1195 95, 297, 95, 297, 95, 400, 95, 400, 547, 678, 1196 1197 818, 297, 95, 105, 105, 105, 105, 105, 297, 297, 1198 305, 680, 305, 338, 105, 105, 105, 105, 105, 105, 1199 305, 105, 679, 338, 339, 105, 355, 305, 305, 356, 1200 338, 819, 105, 105, 339, 547, 355, 105, 511, 356, 1201 683, 339, 820, 788, 511, 105, 105, 105, 105, 105, 1202 105, 821, 105, 306, 822, 306, 683, 306, 680, 679, 1203 823, 826, 827, 306, 105, 128, 128, 128, 128, 128, 1204 306, 306, 355, 727, 828, 356, 128, 128, 128, 128, 1205 128, 128, 461, 829, 461, 830, 469, 831, 469, 727, 1206 788, 833, 461, 469, 834, 835, 469, 837, 461, 461, 1207 1208 461, 839, 840, 469, 469, 841, 843, 128, 128, 128, 1209 128, 128, 128, 143, 143, 143, 143, 143, 845, 846, 1210 847, 848, 849, 850, 143, 143, 143, 143, 143, 143, 1211 851, 143, 852, 853, 856, 143, 858, 859, 860, 864, 1212 866, 867, 868, 870, 871, 872, 873, 143, 874, 875, 1213 876, 877, 878, 879, 881, 143, 143, 143, 143, 143, 1214 143, 882, 143, 883, 885, 886, 888, 889, 890, 891, 1215 892, 894, 897, 898, 143, 213, 213, 213, 213, 213, 1216 895, 899, 900, 901, 902, 895, 213, 213, 213, 213, 1217 213, 213, 905, 907, 908, 909, 213, 911, 213, 912, 1218 1219 913, 916, 917, 918, 919, 921, 922, 923, 924, 926, 1220 927, 928, 930, 931, 932, 933, 934, 213, 213, 213, 1221 213, 213, 213, 935, 936, 938, 213, 939, 213, 277, 1222 277, 277, 277, 277, 940, 942, 943, 945, 947, 948, 1223 277, 277, 277, 277, 277, 277, 949, 950, 951, 954, 1224 277, 955, 277, 956, 957, 958, 959, 960, 962, 963, 1225 965, 966, 968, 970, 973, 974, 975, 977, 978, 986, 1226 987, 277, 277, 277, 277, 277, 277, 988, 989, 990, 1227 277, 991, 277, 330, 330, 330, 330, 330, 993, 994, 1228 995, 996, 992, 997, 330, 330, 330, 330, 330, 330, 1229 1230 992, 998, 999, 1000, 330, 992, 330, 1001, 1002, 1003, 1231 1004, 1005, 1006, 1007, 1008, 1001, 1011, 1012, 1013, 1015, 1232 1016, 1017, 1018, 1014, 1019, 330, 330, 330, 330, 330, 1233 330, 1014, 1020, 1021, 330, 1022, 330, 635, 635, 1023, 1234 635, 635, 635, 1024, 635, 635, 635, 635, 635, 1025, 1235 635, 1026, 1028, 1029, 1030, 1031, 1032, 1034, 1037, 1038, 1236 635, 635, 635, 635, 635, 1039, 1040, 1042, 1043, 1044, 1237 1045, 1046, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1238 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1239 1068, 1069, 1070, 1071, 635, 1072, 1073, 1074, 1075, 1076, 1240 1241 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1242 1087, 1088, 1089, 1090, 1091, 1092, 635, 635, 635, 651, 1243 651, 1093, 651, 651, 651, 1094, 651, 651, 651, 651, 1244 651, 1095, 651, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1245 1104, 1106, 651, 651, 651, 651, 651, 1108, 1109, 1110, 1246 1111, 1112, 1114, 1115, 1116, 1117, 1118, 1115, 1119, 1121, 1247 1123, 1124, 1125, 1126, 1127, 1129, 1125, 1130, 1131, 1132, 1248 1115, 1133, 1134, 1135, 1136, 1137, 651, 1138, 1139, 1125, 1249 1140, 1141, 1142, 1146, 1147, 1148, 1149, 1153, 1154, 1157, 1250 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 651, 651, 1251 1252 651, 757, 757, 1166, 757, 757, 757, 1167, 757, 757, 1253 757, 757, 757, 1168, 757, 1169, 1170, 1171, 1172, 1173, 1254 1175, 1177, 1178, 1179, 757, 757, 757, 757, 757, 1180, 1255 1182, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1256 1193, 1194, 1195, 1196, 1197, 1199, 1201, 1202, 1203, 1204, 1257 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 757, 1214, 1258 1215, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1259 1226, 1227, 1228, 1229, 1233, 1235, 1238, 1239, 804, 802, 1260 757, 757, 757, 768, 768, 801, 768, 768, 768, 797, 1261 768, 768, 768, 768, 768, 796, 768, 795, 792, 791, 1262 1263 790, 789, 783, 782, 781, 780, 768, 768, 768, 768, 1264 768, 779, 778, 777, 776, 775, 774, 772, 770, 766, 1265 765, 764, 762, 761, 759, 755, 754, 753, 752, 750, 1266 749, 748, 747, 746, 745, 744, 743, 742, 741, 740, 1267 768, 739, 738, 737, 736, 735, 734, 732, 731, 730, 1268 728, 726, 725, 724, 723, 722, 721, 720, 719, 718, 1269 717, 716, 768, 768, 768, 1242, 1242, 1242, 1242, 1242, 1270 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1243, 1243, 1243, 1271 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1243, 1244, 1272 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1244, 1273 1274 1244, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1275 1245, 1245, 1245, 1246, 1246, 1246, 1246, 1246, 1246, 1246, 1276 1246, 1246, 1246, 1246, 1246, 1247, 715, 1247, 1247, 1247, 1277 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1248, 1248, 1248, 1278 1248, 1248, 1248, 1248, 1248, 1248, 1249, 714, 713, 712, 1279 1249, 1249, 710, 1249, 1249, 1250, 709, 708, 707, 1250, 1280 1250, 1250, 1250, 1250, 1251, 1251, 1251, 1251, 1251, 1251, 1281 1251, 1251, 1251, 1251, 1251, 1251, 1252, 1252, 706, 1252, 1282 1252, 1252, 1252, 1252, 1252, 1253, 705, 1253, 1253, 1253, 1283 1253, 1253, 1253, 1253, 1253, 1253, 1253, 1254, 704, 1254, 1284 1285 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1255, 1286 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1256, 1287 703, 1256, 1256, 1256, 1257, 1257, 702, 701, 1257, 1257, 1288 700, 1257, 1257, 1257, 1258, 1258, 1259, 1259, 1259, 1259, 1289 1259, 1259, 1259, 1259, 1259, 1260, 1260, 1260, 1260, 1260, 1290 1260, 1260, 1260, 1260, 1261, 1261, 1261, 1262, 699, 1262, 1291 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1262, 1263, 1292 697, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1263, 1293 1263, 1264, 696, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1294 1264, 1264, 1264, 1265, 695, 1265, 1265, 1265, 1265, 1265, 1295 1296 1265, 1265, 1265, 1265, 1265, 693, 691, 689, 688, 687, 1297 685, 684, 681, 677, 676, 675, 674, 672, 670, 668, 1298 667, 666, 664, 663, 662, 660, 659, 658, 657, 655, 1299 654, 650, 649, 645, 644, 643, 642, 641, 639, 638, 1300 634, 633, 632, 628, 627, 626, 624, 623, 622, 621, 1301 620, 619, 618, 617, 616, 615, 614, 612, 611, 610, 1302 608, 607, 606, 605, 604, 602, 601, 599, 598, 596, 1303 595, 594, 593, 592, 591, 590, 589, 588, 587, 586, 1304 585, 584, 583, 582, 581, 580, 579, 578, 577, 576, 1305 575, 573, 572, 571, 570, 569, 568, 567, 566, 565, 1306 1307 564, 563, 562, 561, 560, 559, 558, 557, 556, 555, 1308 553, 552, 551, 550, 548, 544, 543, 542, 541, 540, 1309 539, 538, 537, 536, 535, 534, 533, 532, 531, 530, 1310 529, 528, 527, 526, 525, 524, 523, 522, 521, 520, 1311 519, 518, 517, 516, 514, 513, 512, 510, 509, 508, 1312 507, 506, 505, 504, 503, 502, 501, 500, 499, 497, 1313 496, 495, 493, 491, 490, 489, 488, 487, 486, 485, 1314 484, 483, 482, 481, 480, 479, 476, 475, 474, 473, 1315 472, 471, 470, 468, 467, 466, 465, 464, 463, 462, 1316 460, 459, 457, 452, 451, 450, 449, 448, 447, 446, 1317 1318 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, 1319 435, 434, 433, 431, 428, 427, 426, 425, 424, 423, 1320 422, 421, 419, 418, 417, 416, 415, 414, 413, 412, 1321 411, 410, 409, 408, 407, 406, 405, 404, 403, 395, 1322 394, 391, 390, 389, 388, 387, 386, 385, 384, 383, 1323 381, 380, 379, 378, 377, 376, 368, 367, 366, 365, 1324 364, 363, 362, 361, 360, 359, 358, 357, 354, 352, 1325 351, 350, 349, 348, 347, 346, 345, 344, 343, 342, 1326 341, 340, 337, 327, 325, 324, 323, 322, 321, 320, 1327 319, 318, 317, 316, 314, 313, 312, 310, 308, 307, 1328 1329 303, 302, 300, 299, 294, 290, 280, 274, 270, 269, 1330 267, 266, 265, 264, 263, 262, 261, 259, 258, 257, 1331 256, 255, 254, 253, 251, 250, 249, 246, 245, 243, 1332 242, 241, 240, 239, 238, 237, 236, 235, 234, 233, 1333 232, 231, 229, 228, 227, 226, 225, 224, 223, 209, 1334 208, 202, 196, 195, 191, 190, 189, 187, 186, 185, 1335 184, 183, 181, 179, 177, 176, 175, 174, 173, 169, 1336 167, 166, 165, 158, 155, 153, 152, 151, 149, 140, 1337 133, 131, 127, 126, 120, 119, 117, 116, 111, 110, 1338 102, 92, 90, 89, 82, 81, 80, 78, 76, 75, 1339 1340 70, 69, 66, 64, 63, 62, 61, 60, 58, 52, 1341 50, 46, 43, 41, 34, 32, 31, 28, 25, 22, 1342 19, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1343 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1344 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1345 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1346 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1347 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1348 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1349 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1241, 1350 1351 1241, 1241, 1241, 1241, 1241 1352 } ; 1353 1354 static yy_state_type yy_last_accepting_state; 1355 static char *yy_last_accepting_cpos; 1356 1357 extern int yy_flex_debug; 1358 int yy_flex_debug = 0; 1359 1360 /* The intent behind this definition is that it'll catch 1361 * any uses of REJECT which flex missed. 1362 */ 1363 #define REJECT reject_used_but_not_detected 1364 #define yymore() yymore_used_but_not_detected 1365 #define YY_MORE_ADJ 0 1366 #define YY_RESTORE_YY_MORE_OFFSET 1367 char *yytext; 1368 #line 1 "ldlex.l" 1369 #line 4 "ldlex.l" 1370 1371 /* Copyright (C) 1991-2026 Free Software Foundation, Inc. 1372 Written by Steve Chamberlain of Cygnus Support. 1373 1374 This file is part of the GNU Binutils. 1375 1376 This program is free software; you can redistribute it and/or modify 1377 it under the terms of the GNU General Public License as published by 1378 the Free Software Foundation; either version 3 of the License, or 1379 (at your option) any later version. 1380 1381 This program is distributed in the hope that it will be useful, 1382 but WITHOUT ANY WARRANTY; without even the implied warranty of 1383 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1384 GNU General Public License for more details. 1385 1386 You should have received a copy of the GNU General Public License 1387 along with this program; if not, write to the Free Software 1388 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 1389 MA 02110-1301, USA. */ 1390 1391 #include "bfd.h" 1392 #include "safe-ctype.h" 1393 #include "bfdlink.h" 1394 #include "ctf-api.h" 1395 #include "ld.h" 1396 #include "ldmisc.h" 1397 #include "ldexp.h" 1398 #include "ldlang.h" 1399 #include <ldgram.h> 1400 #include "ldfile.h" 1401 #include "ldlex.h" 1402 #include "ldmain.h" 1403 #include "libiberty.h" 1404 1405 /* The type of top-level parser input. 1406 yylex and yyparse (indirectly) both check this. */ 1407 input_type parser_input; 1408 1409 /* Line number in the current input file. */ 1410 unsigned int lineno; 1411 1412 /* The string we are currently lexing, or NULL if we are reading a 1413 file. */ 1414 const char *lex_string = NULL; 1415 1416 /* Support for flex reading from more than one input file (stream). 1417 `include_stack' is flex's input state for each open file; 1418 `file_name_stack' is the file names. `lineno_stack' is the current 1419 line numbers. 1420 1421 If `include_stack_ptr' is 0, we haven't started reading anything yet. 1422 Otherwise, stack elements 0 through `include_stack_ptr - 1' are valid. */ 1423 1424 #undef YY_INPUT 1425 #define YY_INPUT(buf,result,max_size) result = yy_input (buf, max_size) 1426 1427 #ifndef YY_NO_UNPUT 1428 #define YY_NO_UNPUT 1429 #endif 1430 1431 #define MAX_INCLUDE_DEPTH 10 1432 static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH]; 1433 static const char *file_name_stack[MAX_INCLUDE_DEPTH]; 1434 static unsigned int lineno_stack[MAX_INCLUDE_DEPTH]; 1435 static unsigned int sysrooted_stack[MAX_INCLUDE_DEPTH]; 1436 static unsigned int include_stack_ptr = 0; 1437 static int vers_node_nesting = 0; 1438 1439 static int yy_input (char *, int); 1440 static void comment (void); 1441 static void lex_warn_invalid (char *where, char *what); 1442 1443 /* STATES 1444 EXPRESSION in an expression 1445 SCRIPT in a script 1446 INPUTLIST in a script, a filename-list 1447 MRI in an MRI script 1448 WILD inside the braces of an output section or overlay, 1449 for input section wildcards 1450 VERS_START starting a Sun style mapfile 1451 VERS_SCRIPT a Sun style mapfile 1452 VERS_NODE a node within a Sun style mapfile 1453 */ 1454 #define RTOKEN(x) { yylval.token = x; return x; } 1455 1456 #line 1456 "ldlex.c" 1457 1458 #line 1458 "ldlex.c" 1459 1460 #define INITIAL 0 1461 #define SCRIPT 1 1462 #define INPUTLIST 2 1463 #define EXPRESSION 3 1464 #define MRI 4 1465 #define WILD 5 1466 #define VERS_START 6 1467 #define VERS_SCRIPT 7 1468 #define VERS_NODE 8 1469 1470 #ifndef YY_NO_UNISTD_H 1471 /* Special case for "unistd.h", since it is non-ANSI. We include it way 1472 * down here because we want the user's section 1 to have been scanned first. 1473 * The user has a chance to override it with an option. 1474 */ 1475 #include <unistd.h> 1476 #endif 1477 1478 #ifndef YY_EXTRA_TYPE 1479 #define YY_EXTRA_TYPE void * 1480 #endif 1481 1482 static int yy_init_globals ( void ); 1483 1484 /* Accessor methods to globals. 1485 These are made visible to non-reentrant scanners for convenience. */ 1486 1487 int yylex_destroy ( void ); 1488 1489 int yyget_debug ( void ); 1490 1491 void yyset_debug ( int debug_flag ); 1492 1493 YY_EXTRA_TYPE yyget_extra ( void ); 1494 1495 void yyset_extra ( YY_EXTRA_TYPE user_defined ); 1496 1497 FILE *yyget_in ( void ); 1498 1499 void yyset_in ( FILE * _in_str ); 1500 1501 FILE *yyget_out ( void ); 1502 1503 void yyset_out ( FILE * _out_str ); 1504 1505 int yyget_leng ( void ); 1506 1507 char *yyget_text ( void ); 1508 1509 int yyget_lineno ( void ); 1510 1511 void yyset_lineno ( int _line_number ); 1512 1513 /* Macros after this point can all be overridden by user definitions in 1514 * section 1. 1515 */ 1516 1517 #ifndef YY_SKIP_YYWRAP 1518 #ifdef __cplusplus 1519 extern "C" int yywrap ( void ); 1520 #else 1521 extern int yywrap ( void ); 1522 #endif 1523 #endif 1524 1525 #ifndef YY_NO_UNPUT 1526 1527 #endif 1528 1529 #ifndef yytext_ptr 1530 static void yy_flex_strncpy ( char *, const char *, int ); 1531 #endif 1532 1533 #ifdef YY_NEED_STRLEN 1534 static int yy_flex_strlen ( const char * ); 1535 #endif 1536 1537 #ifndef YY_NO_INPUT 1538 #ifdef __cplusplus 1539 static int yyinput ( void ); 1540 #else 1541 static int input ( void ); 1542 #endif 1543 1544 #endif 1545 1546 /* Amount of stuff to slurp up with each read. */ 1547 #ifndef YY_READ_BUF_SIZE 1548 #ifdef __ia64__ 1549 /* On IA-64, the buffer size is 16k, not 8k */ 1550 #define YY_READ_BUF_SIZE 16384 1551 #else 1552 #define YY_READ_BUF_SIZE 8192 1553 #endif /* __ia64__ */ 1554 #endif 1555 1556 /* Copy whatever the last rule matched to the standard output. */ 1557 #ifndef ECHO 1558 /* This used to be an fputs(), but since the string might contain NUL's, 1559 * we now use fwrite(). 1560 */ 1561 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) 1562 #endif 1563 1564 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 1565 * is returned in "result". 1566 */ 1567 #ifndef YY_INPUT 1568 #define YY_INPUT(buf,result,max_size) \ 1569 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ 1570 { \ 1571 int c = '*'; \ 1572 int n; \ 1573 for ( n = 0; n < max_size && \ 1574 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ 1575 buf[n] = (char) c; \ 1576 if ( c == '\n' ) \ 1577 buf[n++] = (char) c; \ 1578 if ( c == EOF && ferror( yyin ) ) \ 1579 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 1580 result = n; \ 1581 } \ 1582 else \ 1583 { \ 1584 errno=0; \ 1585 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ 1586 { \ 1587 if( errno != EINTR) \ 1588 { \ 1589 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 1590 break; \ 1591 } \ 1592 errno=0; \ 1593 clearerr(yyin); \ 1594 } \ 1595 }\ 1596 \ 1597 1598 #endif 1599 1600 /* No semi-colon after return; correct usage is to write "yyterminate();" - 1601 * we don't want an extra ';' after the "return" because that will cause 1602 * some compilers to complain about unreachable statements. 1603 */ 1604 #ifndef yyterminate 1605 #define yyterminate() return YY_NULL 1606 #endif 1607 1608 /* Number of entries by which start-condition stack grows. */ 1609 #ifndef YY_START_STACK_INCR 1610 #define YY_START_STACK_INCR 25 1611 #endif 1612 1613 /* Report a fatal error. */ 1614 #ifndef YY_FATAL_ERROR 1615 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 1616 #endif 1617 1618 /* end tables serialization structures and prototypes */ 1619 1620 /* Default declaration of generated scanner - a define so the user can 1621 * easily add parameters. 1622 */ 1623 #ifndef YY_DECL 1624 #define YY_DECL_IS_OURS 1 1625 1626 extern int yylex (void); 1627 1628 #define YY_DECL int yylex (void) 1629 #endif /* !YY_DECL */ 1630 1631 /* Code executed at the beginning of each rule, after yytext and yyleng 1632 * have been set up. 1633 */ 1634 #ifndef YY_USER_ACTION 1635 #define YY_USER_ACTION 1636 #endif 1637 1638 /* Code executed at the end of each rule. */ 1639 #ifndef YY_BREAK 1640 #define YY_BREAK /*LINTED*/break; 1641 #endif 1642 1643 #define YY_RULE_SETUP \ 1644 YY_USER_ACTION 1645 1646 /** The main scanner function which does all the work. 1647 */ 1648 YY_DECL 1649 { 1650 yy_state_type yy_current_state; 1651 char *yy_cp, *yy_bp; 1652 int yy_act; 1653 1654 if ( !(yy_init) ) 1655 { 1656 (yy_init) = 1; 1657 1658 #ifdef YY_USER_INIT 1659 YY_USER_INIT; 1660 #endif 1661 1662 if ( ! (yy_start) ) 1663 (yy_start) = 1; /* first start state */ 1664 1665 if ( ! yyin ) 1666 yyin = stdin; 1667 1668 if ( ! yyout ) 1669 yyout = stdout; 1670 1671 if ( ! YY_CURRENT_BUFFER ) { 1672 yyensure_buffer_stack (); 1673 YY_CURRENT_BUFFER_LVALUE = 1674 yy_create_buffer( yyin, YY_BUF_SIZE ); 1675 } 1676 1677 yy_load_buffer_state( ); 1678 } 1679 1680 { 1681 #line 114 "ldlex.l" 1682 1683 1684 #line 117 "ldlex.l" 1685 if (parser_input != input_selected) 1686 { 1687 /* The first token of the input determines the initial parser state. */ 1688 input_type t = parser_input; 1689 parser_input = input_selected; 1690 switch (t) 1691 { 1692 case input_script: return INPUT_SCRIPT; 1693 case input_mri_script: return INPUT_MRI_SCRIPT; 1694 case input_version_script: return INPUT_VERSION_SCRIPT; 1695 case input_section_ordering_script: return INPUT_SECTION_ORDERING_SCRIPT; 1696 case input_dynamic_list: return INPUT_DYNAMIC_LIST; 1697 case input_defsym: return INPUT_DEFSYM; 1698 default: abort (); 1699 } 1700 } 1701 1702 #line 1702 "ldlex.c" 1703 1704 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ 1705 { 1706 yy_cp = (yy_c_buf_p); 1707 1708 /* Support of yytext. */ 1709 *yy_cp = (yy_hold_char); 1710 1711 /* yy_bp points to the position in yy_ch_buf of the start of 1712 * the current run. 1713 */ 1714 yy_bp = yy_cp; 1715 1716 yy_current_state = (yy_start); 1717 yy_match: 1718 do 1719 { 1720 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; 1721 if ( yy_accept[yy_current_state] ) 1722 { 1723 (yy_last_accepting_state) = yy_current_state; 1724 (yy_last_accepting_cpos) = yy_cp; 1725 } 1726 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 1727 { 1728 yy_current_state = (int) yy_def[yy_current_state]; 1729 if ( yy_current_state >= 1242 ) 1730 yy_c = yy_meta[yy_c]; 1731 } 1732 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 1733 ++yy_cp; 1734 } 1735 while ( yy_base[yy_current_state] != 2222 ); 1736 1737 yy_find_action: 1738 yy_act = yy_accept[yy_current_state]; 1739 if ( yy_act == 0 ) 1740 { /* have to back up */ 1741 yy_cp = (yy_last_accepting_cpos); 1742 yy_current_state = (yy_last_accepting_state); 1743 yy_act = yy_accept[yy_current_state]; 1744 } 1745 1746 YY_DO_BEFORE_ACTION; 1747 1748 do_action: /* This label is used only to access EOF actions. */ 1749 1750 switch ( yy_act ) 1751 { /* beginning of action switch */ 1752 case 0: /* must back up */ 1753 /* undo the effects of YY_DO_BEFORE_ACTION */ 1754 *yy_cp = (yy_hold_char); 1755 yy_cp = (yy_last_accepting_cpos); 1756 yy_current_state = (yy_last_accepting_state); 1757 goto yy_find_action; 1758 1759 case 1: 1760 YY_RULE_SETUP 1761 #line 134 "ldlex.l" 1762 { 1763 comment (); } 1764 YY_BREAK 1765 case 2: 1766 YY_RULE_SETUP 1767 #line 137 "ldlex.l" 1768 { 1769 yylval.integer = strtoull (yytext + 1, 0, 16); 1770 yylval.bigint.str = NULL; 1771 return INT; 1772 } 1773 YY_BREAK 1774 case 3: 1775 YY_RULE_SETUP 1776 #line 143 "ldlex.l" 1777 { 1778 int ibase ; 1779 switch (yytext[yyleng - 1]) { 1780 case 'X': 1781 case 'x': 1782 case 'H': 1783 case 'h': 1784 ibase = 16; 1785 break; 1786 case 'O': 1787 case 'o': 1788 ibase = 8; 1789 break; 1790 case 'B': 1791 case 'b': 1792 ibase = 2; 1793 break; 1794 default: 1795 ibase = 10; 1796 } 1797 yylval.integer = strtoull (yytext, 0, ibase); 1798 yylval.bigint.str = NULL; 1799 return INT; 1800 } 1801 YY_BREAK 1802 case 4: 1803 YY_RULE_SETUP 1804 #line 167 "ldlex.l" 1805 { 1806 char *s = yytext; 1807 int ibase = 0; 1808 1809 if (*s == '$') 1810 { 1811 ++s; 1812 ibase = 16; 1813 } 1814 yylval.integer = strtoull (s, 0, ibase); 1815 yylval.bigint.str = NULL; 1816 if (yytext[yyleng - 1] == 'M' 1817 || yytext[yyleng - 1] == 'm') 1818 { 1819 yylval.integer *= 1024 * 1024; 1820 } 1821 else if (yytext[yyleng - 1] == 'K' 1822 || yytext[yyleng - 1]=='k') 1823 { 1824 yylval.integer *= 1024; 1825 } 1826 else if (yytext[0] == '0' 1827 && (yytext[1] == 'x' 1828 || yytext[1] == 'X')) 1829 { 1830 yylval.bigint.str 1831 = stat_strdup (yytext + 2); 1832 } 1833 return INT; 1834 } 1835 YY_BREAK 1836 /* Some tokens that only appear in expressions must be enabled for 1837 states other than EXPRESSION, since parser lookahead means they 1838 must be recognised before the parser switches the lexer out of 1839 SCRIPT or WILD state into EXPRESSION state. 1840 1841 This sort of thing happens for example with NAME in ldgram.y 1842 "section" rule, which is immediately followed by ldlex_expression. 1843 However, if you follow the grammar from "sec_or_group_p1" you see 1844 "assignment" appearing in "statement_anywhere". Now, 1845 "assignment" also has NAME as its first token, just like 1846 "section". So the parser can't know whether it is in the 1847 "section" or the "assignment" rule until it has scanned the next 1848 token to find an assignment operator. Thus the next token after 1849 NAME in the "section" rule may be lexed before the lexer is 1850 switched to EXPRESSION state, and there are quite a number of 1851 optional components. The first token in all those components 1852 must be able to be lexed in SCRIPT state, as well as the 1853 assignment operators. In fact, due to "opt_exp_with_type", 1854 anything that can appear on the left hand side of "exp" might 1855 need to be lexed in SCRIPT state. 1856 1857 MRI mode tends to cover everything in MRI scripts. 1858 */ 1859 case 5: 1860 YY_RULE_SETUP 1861 #line 221 "ldlex.l" 1862 { RTOKEN(']'); } 1863 YY_BREAK 1864 case 6: 1865 YY_RULE_SETUP 1866 #line 222 "ldlex.l" 1867 { RTOKEN('['); } 1868 YY_BREAK 1869 case 7: 1870 YY_RULE_SETUP 1871 #line 223 "ldlex.l" 1872 { RTOKEN(LSHIFTEQ); } 1873 YY_BREAK 1874 case 8: 1875 YY_RULE_SETUP 1876 #line 224 "ldlex.l" 1877 { RTOKEN(RSHIFTEQ); } 1878 YY_BREAK 1879 case 9: 1880 YY_RULE_SETUP 1881 #line 225 "ldlex.l" 1882 { RTOKEN(OROR); } 1883 YY_BREAK 1884 case 10: 1885 YY_RULE_SETUP 1886 #line 226 "ldlex.l" 1887 { RTOKEN(EQ); } 1888 YY_BREAK 1889 case 11: 1890 YY_RULE_SETUP 1891 #line 227 "ldlex.l" 1892 { RTOKEN(NE); } 1893 YY_BREAK 1894 case 12: 1895 YY_RULE_SETUP 1896 #line 228 "ldlex.l" 1897 { RTOKEN(GE); } 1898 YY_BREAK 1899 case 13: 1900 YY_RULE_SETUP 1901 #line 229 "ldlex.l" 1902 { RTOKEN(LE); } 1903 YY_BREAK 1904 case 14: 1905 YY_RULE_SETUP 1906 #line 230 "ldlex.l" 1907 { RTOKEN(LSHIFT); } 1908 YY_BREAK 1909 case 15: 1910 YY_RULE_SETUP 1911 #line 231 "ldlex.l" 1912 { RTOKEN(RSHIFT); } 1913 YY_BREAK 1914 case 16: 1915 YY_RULE_SETUP 1916 #line 232 "ldlex.l" 1917 { RTOKEN(PLUSEQ); } 1918 YY_BREAK 1919 case 17: 1920 YY_RULE_SETUP 1921 #line 233 "ldlex.l" 1922 { RTOKEN(MINUSEQ); } 1923 YY_BREAK 1924 case 18: 1925 YY_RULE_SETUP 1926 #line 234 "ldlex.l" 1927 { RTOKEN(MULTEQ); } 1928 YY_BREAK 1929 case 19: 1930 YY_RULE_SETUP 1931 #line 235 "ldlex.l" 1932 { RTOKEN(DIVEQ); } 1933 YY_BREAK 1934 case 20: 1935 YY_RULE_SETUP 1936 #line 236 "ldlex.l" 1937 { RTOKEN(ANDEQ); } 1938 YY_BREAK 1939 case 21: 1940 YY_RULE_SETUP 1941 #line 237 "ldlex.l" 1942 { RTOKEN(OREQ); } 1943 YY_BREAK 1944 case 22: 1945 YY_RULE_SETUP 1946 #line 238 "ldlex.l" 1947 { RTOKEN(XOREQ); } 1948 YY_BREAK 1949 case 23: 1950 YY_RULE_SETUP 1951 #line 239 "ldlex.l" 1952 { RTOKEN(ANDAND); } 1953 YY_BREAK 1954 case 24: 1955 YY_RULE_SETUP 1956 #line 240 "ldlex.l" 1957 { RTOKEN('>'); } 1958 YY_BREAK 1959 case 25: 1960 YY_RULE_SETUP 1961 #line 241 "ldlex.l" 1962 { RTOKEN(','); } 1963 YY_BREAK 1964 case 26: 1965 YY_RULE_SETUP 1966 #line 242 "ldlex.l" 1967 { RTOKEN('&'); } 1968 YY_BREAK 1969 case 27: 1970 YY_RULE_SETUP 1971 #line 243 "ldlex.l" 1972 { RTOKEN('|'); } 1973 YY_BREAK 1974 case 28: 1975 YY_RULE_SETUP 1976 #line 244 "ldlex.l" 1977 { RTOKEN('~'); } 1978 YY_BREAK 1979 case 29: 1980 YY_RULE_SETUP 1981 #line 245 "ldlex.l" 1982 { RTOKEN('!'); } 1983 YY_BREAK 1984 case 30: 1985 YY_RULE_SETUP 1986 #line 246 "ldlex.l" 1987 { RTOKEN('?'); } 1988 YY_BREAK 1989 case 31: 1990 YY_RULE_SETUP 1991 #line 247 "ldlex.l" 1992 { RTOKEN('*'); } 1993 YY_BREAK 1994 case 32: 1995 YY_RULE_SETUP 1996 #line 248 "ldlex.l" 1997 { RTOKEN('+'); } 1998 YY_BREAK 1999 case 33: 2000 YY_RULE_SETUP 2001 #line 249 "ldlex.l" 2002 { RTOKEN('-'); } 2003 YY_BREAK 2004 case 34: 2005 YY_RULE_SETUP 2006 #line 250 "ldlex.l" 2007 { RTOKEN('/'); } 2008 YY_BREAK 2009 case 35: 2010 YY_RULE_SETUP 2011 #line 251 "ldlex.l" 2012 { RTOKEN('%'); } 2013 YY_BREAK 2014 case 36: 2015 YY_RULE_SETUP 2016 #line 252 "ldlex.l" 2017 { RTOKEN('<'); } 2018 YY_BREAK 2019 case 37: 2020 YY_RULE_SETUP 2021 #line 253 "ldlex.l" 2022 { RTOKEN('^'); } 2023 YY_BREAK 2024 case 38: 2025 YY_RULE_SETUP 2026 #line 254 "ldlex.l" 2027 { RTOKEN('='); } 2028 YY_BREAK 2029 case 39: 2030 YY_RULE_SETUP 2031 #line 255 "ldlex.l" 2032 { RTOKEN('}'); } 2033 YY_BREAK 2034 case 40: 2035 YY_RULE_SETUP 2036 #line 256 "ldlex.l" 2037 { RTOKEN('{'); } 2038 YY_BREAK 2039 case 41: 2040 YY_RULE_SETUP 2041 #line 257 "ldlex.l" 2042 { RTOKEN(')'); } 2043 YY_BREAK 2044 case 42: 2045 YY_RULE_SETUP 2046 #line 258 "ldlex.l" 2047 { RTOKEN('('); } 2048 YY_BREAK 2049 case 43: 2050 YY_RULE_SETUP 2051 #line 259 "ldlex.l" 2052 { RTOKEN(':'); } 2053 YY_BREAK 2054 case 44: 2055 YY_RULE_SETUP 2056 #line 260 "ldlex.l" 2057 { RTOKEN(';'); } 2058 YY_BREAK 2059 case 45: 2060 YY_RULE_SETUP 2061 #line 261 "ldlex.l" 2062 { RTOKEN(MEMORY); } 2063 YY_BREAK 2064 case 46: 2065 YY_RULE_SETUP 2066 #line 262 "ldlex.l" 2067 { RTOKEN(REGION_ALIAS); } 2068 YY_BREAK 2069 case 47: 2070 YY_RULE_SETUP 2071 #line 263 "ldlex.l" 2072 { RTOKEN(LD_FEATURE); } 2073 YY_BREAK 2074 case 48: 2075 YY_RULE_SETUP 2076 #line 264 "ldlex.l" 2077 { RTOKEN(ORIGIN); } 2078 YY_BREAK 2079 case 49: 2080 YY_RULE_SETUP 2081 #line 265 "ldlex.l" 2082 { RTOKEN(VERSIONK); } 2083 YY_BREAK 2084 case 50: 2085 YY_RULE_SETUP 2086 #line 266 "ldlex.l" 2087 { RTOKEN(BLOCK); } 2088 YY_BREAK 2089 case 51: 2090 YY_RULE_SETUP 2091 #line 267 "ldlex.l" 2092 { RTOKEN(BIND); } 2093 YY_BREAK 2094 case 52: 2095 YY_RULE_SETUP 2096 #line 268 "ldlex.l" 2097 { RTOKEN(LENGTH); } 2098 YY_BREAK 2099 case 53: 2100 YY_RULE_SETUP 2101 #line 269 "ldlex.l" 2102 { RTOKEN(ALIGN_K); } 2103 YY_BREAK 2104 case 54: 2105 YY_RULE_SETUP 2106 #line 270 "ldlex.l" 2107 { RTOKEN(DATA_SEGMENT_ALIGN); } 2108 YY_BREAK 2109 case 55: 2110 YY_RULE_SETUP 2111 #line 271 "ldlex.l" 2112 { RTOKEN(DATA_SEGMENT_RELRO_END); } 2113 YY_BREAK 2114 case 56: 2115 YY_RULE_SETUP 2116 #line 272 "ldlex.l" 2117 { RTOKEN(DATA_SEGMENT_END); } 2118 YY_BREAK 2119 case 57: 2120 YY_RULE_SETUP 2121 #line 273 "ldlex.l" 2122 { RTOKEN(ADDR); } 2123 YY_BREAK 2124 case 58: 2125 YY_RULE_SETUP 2126 #line 274 "ldlex.l" 2127 { RTOKEN(LOADADDR); } 2128 YY_BREAK 2129 case 59: 2130 YY_RULE_SETUP 2131 #line 275 "ldlex.l" 2132 { RTOKEN(ALIGNOF); } 2133 YY_BREAK 2134 case 60: 2135 YY_RULE_SETUP 2136 #line 276 "ldlex.l" 2137 { RTOKEN(ABSOLUTE); } 2138 YY_BREAK 2139 case 61: 2140 YY_RULE_SETUP 2141 #line 277 "ldlex.l" 2142 { RTOKEN(MAX_K); } 2143 YY_BREAK 2144 case 62: 2145 YY_RULE_SETUP 2146 #line 278 "ldlex.l" 2147 { RTOKEN(MIN_K); } 2148 YY_BREAK 2149 case 63: 2150 YY_RULE_SETUP 2151 #line 279 "ldlex.l" 2152 { RTOKEN(LOG2CEIL); } 2153 YY_BREAK 2154 case 64: 2155 YY_RULE_SETUP 2156 #line 280 "ldlex.l" 2157 { RTOKEN(ASSERT_K); } 2158 YY_BREAK 2159 case 65: 2160 YY_RULE_SETUP 2161 #line 281 "ldlex.l" 2162 { RTOKEN(ENTRY); } 2163 YY_BREAK 2164 case 66: 2165 YY_RULE_SETUP 2166 #line 282 "ldlex.l" 2167 { RTOKEN(EXTERN); } 2168 YY_BREAK 2169 case 67: 2170 YY_RULE_SETUP 2171 #line 283 "ldlex.l" 2172 { RTOKEN(NEXT); } 2173 YY_BREAK 2174 case 68: 2175 YY_RULE_SETUP 2176 #line 284 "ldlex.l" 2177 { RTOKEN(SIZEOF_HEADERS); } 2178 YY_BREAK 2179 case 69: 2180 YY_RULE_SETUP 2181 #line 285 "ldlex.l" 2182 { RTOKEN(SEGMENT_START); } 2183 YY_BREAK 2184 case 70: 2185 YY_RULE_SETUP 2186 #line 286 "ldlex.l" 2187 { RTOKEN(MAP); } 2188 YY_BREAK 2189 case 71: 2190 YY_RULE_SETUP 2191 #line 287 "ldlex.l" 2192 { RTOKEN(SIZEOF); } 2193 YY_BREAK 2194 case 72: 2195 YY_RULE_SETUP 2196 #line 288 "ldlex.l" 2197 { RTOKEN(TARGET_K); } 2198 YY_BREAK 2199 case 73: 2200 YY_RULE_SETUP 2201 #line 289 "ldlex.l" 2202 { RTOKEN(SEARCH_DIR); } 2203 YY_BREAK 2204 case 74: 2205 YY_RULE_SETUP 2206 #line 290 "ldlex.l" 2207 { RTOKEN(OUTPUT); } 2208 YY_BREAK 2209 case 75: 2210 YY_RULE_SETUP 2211 #line 291 "ldlex.l" 2212 { RTOKEN(INPUT); } 2213 YY_BREAK 2214 case 76: 2215 YY_RULE_SETUP 2216 #line 292 "ldlex.l" 2217 { RTOKEN(GROUP); } 2218 YY_BREAK 2219 case 77: 2220 YY_RULE_SETUP 2221 #line 293 "ldlex.l" 2222 { RTOKEN(AS_NEEDED); } 2223 YY_BREAK 2224 case 78: 2225 YY_RULE_SETUP 2226 #line 294 "ldlex.l" 2227 { RTOKEN(DEFINED); } 2228 YY_BREAK 2229 case 79: 2230 YY_RULE_SETUP 2231 #line 295 "ldlex.l" 2232 { RTOKEN(CREATE_OBJECT_SYMBOLS); } 2233 YY_BREAK 2234 case 80: 2235 YY_RULE_SETUP 2236 #line 296 "ldlex.l" 2237 { RTOKEN(CONSTRUCTORS); } 2238 YY_BREAK 2239 case 81: 2240 YY_RULE_SETUP 2241 #line 297 "ldlex.l" 2242 { RTOKEN(FORCE_COMMON_ALLOCATION); } 2243 YY_BREAK 2244 case 82: 2245 YY_RULE_SETUP 2246 #line 298 "ldlex.l" 2247 { RTOKEN(FORCE_GROUP_ALLOCATION); } 2248 YY_BREAK 2249 case 83: 2250 YY_RULE_SETUP 2251 #line 299 "ldlex.l" 2252 { RTOKEN(INHIBIT_COMMON_ALLOCATION); } 2253 YY_BREAK 2254 case 84: 2255 YY_RULE_SETUP 2256 #line 300 "ldlex.l" 2257 { RTOKEN(SECTIONS); } 2258 YY_BREAK 2259 case 85: 2260 YY_RULE_SETUP 2261 #line 301 "ldlex.l" 2262 { RTOKEN(INSERT_K); } 2263 YY_BREAK 2264 case 86: 2265 YY_RULE_SETUP 2266 #line 302 "ldlex.l" 2267 { RTOKEN(AFTER); } 2268 YY_BREAK 2269 case 87: 2270 YY_RULE_SETUP 2271 #line 303 "ldlex.l" 2272 { RTOKEN(BEFORE); } 2273 YY_BREAK 2274 case 88: 2275 YY_RULE_SETUP 2276 #line 304 "ldlex.l" 2277 { RTOKEN(FILL); } 2278 YY_BREAK 2279 case 89: 2280 YY_RULE_SETUP 2281 #line 305 "ldlex.l" 2282 { RTOKEN(STARTUP); } 2283 YY_BREAK 2284 case 90: 2285 YY_RULE_SETUP 2286 #line 306 "ldlex.l" 2287 { RTOKEN(OUTPUT_FORMAT); } 2288 YY_BREAK 2289 case 91: 2290 YY_RULE_SETUP 2291 #line 307 "ldlex.l" 2292 { RTOKEN(OUTPUT_ARCH); } 2293 YY_BREAK 2294 case 92: 2295 YY_RULE_SETUP 2296 #line 308 "ldlex.l" 2297 { RTOKEN(HLL); } 2298 YY_BREAK 2299 case 93: 2300 YY_RULE_SETUP 2301 #line 309 "ldlex.l" 2302 { RTOKEN(SYSLIB); } 2303 YY_BREAK 2304 case 94: 2305 YY_RULE_SETUP 2306 #line 310 "ldlex.l" 2307 { RTOKEN(FLOAT); } 2308 YY_BREAK 2309 case 95: 2310 YY_RULE_SETUP 2311 #line 311 "ldlex.l" 2312 { RTOKEN(QUAD); } 2313 YY_BREAK 2314 case 96: 2315 YY_RULE_SETUP 2316 #line 312 "ldlex.l" 2317 { RTOKEN(SQUAD); } 2318 YY_BREAK 2319 case 97: 2320 YY_RULE_SETUP 2321 #line 313 "ldlex.l" 2322 { RTOKEN(LONG); } 2323 YY_BREAK 2324 case 98: 2325 YY_RULE_SETUP 2326 #line 314 "ldlex.l" 2327 { RTOKEN(SHORT); } 2328 YY_BREAK 2329 case 99: 2330 YY_RULE_SETUP 2331 #line 315 "ldlex.l" 2332 { RTOKEN(BYTE); } 2333 YY_BREAK 2334 case 100: 2335 YY_RULE_SETUP 2336 #line 316 "ldlex.l" 2337 { RTOKEN(ASCIZ); } 2338 YY_BREAK 2339 case 101: 2340 YY_RULE_SETUP 2341 #line 317 "ldlex.l" 2342 { RTOKEN(LINKER_VERSION); } 2343 YY_BREAK 2344 case 102: 2345 YY_RULE_SETUP 2346 #line 318 "ldlex.l" 2347 { RTOKEN(NOFLOAT); } 2348 YY_BREAK 2349 case 103: 2350 YY_RULE_SETUP 2351 #line 319 "ldlex.l" 2352 { RTOKEN(NOCROSSREFS); } 2353 YY_BREAK 2354 case 104: 2355 YY_RULE_SETUP 2356 #line 320 "ldlex.l" 2357 { RTOKEN(NOCROSSREFS_TO); } 2358 YY_BREAK 2359 case 105: 2360 YY_RULE_SETUP 2361 #line 321 "ldlex.l" 2362 { RTOKEN(OVERLAY); } 2363 YY_BREAK 2364 case 106: 2365 YY_RULE_SETUP 2366 #line 322 "ldlex.l" 2367 { RTOKEN(SORT_BY_NAME); } 2368 YY_BREAK 2369 case 107: 2370 YY_RULE_SETUP 2371 #line 323 "ldlex.l" 2372 { RTOKEN(SORT_BY_ALIGNMENT); } 2373 YY_BREAK 2374 case 108: 2375 YY_RULE_SETUP 2376 #line 324 "ldlex.l" 2377 { RTOKEN(SORT_BY_NAME); } 2378 YY_BREAK 2379 case 109: 2380 YY_RULE_SETUP 2381 #line 325 "ldlex.l" 2382 { RTOKEN(SORT_BY_INIT_PRIORITY); } 2383 YY_BREAK 2384 case 110: 2385 YY_RULE_SETUP 2386 #line 326 "ldlex.l" 2387 { RTOKEN(SORT_NONE); } 2388 YY_BREAK 2389 case 111: 2390 YY_RULE_SETUP 2391 #line 327 "ldlex.l" 2392 { RTOKEN(REVERSE); } 2393 YY_BREAK 2394 case 112: 2395 YY_RULE_SETUP 2396 #line 328 "ldlex.l" 2397 { RTOKEN(NOLOAD); } 2398 YY_BREAK 2399 case 113: 2400 YY_RULE_SETUP 2401 #line 329 "ldlex.l" 2402 { RTOKEN(READONLY); } 2403 YY_BREAK 2404 case 114: 2405 YY_RULE_SETUP 2406 #line 330 "ldlex.l" 2407 { RTOKEN(DSECT); } 2408 YY_BREAK 2409 case 115: 2410 YY_RULE_SETUP 2411 #line 331 "ldlex.l" 2412 { RTOKEN(COPY); } 2413 YY_BREAK 2414 case 116: 2415 YY_RULE_SETUP 2416 #line 332 "ldlex.l" 2417 { RTOKEN(INFO); } 2418 YY_BREAK 2419 case 117: 2420 YY_RULE_SETUP 2421 #line 333 "ldlex.l" 2422 { RTOKEN(TYPE); } 2423 YY_BREAK 2424 case 118: 2425 YY_RULE_SETUP 2426 #line 334 "ldlex.l" 2427 { RTOKEN(ONLY_IF_RO); } 2428 YY_BREAK 2429 case 119: 2430 YY_RULE_SETUP 2431 #line 335 "ldlex.l" 2432 { RTOKEN(ONLY_IF_RW); } 2433 YY_BREAK 2434 case 120: 2435 YY_RULE_SETUP 2436 #line 336 "ldlex.l" 2437 { RTOKEN(SPECIAL); } 2438 YY_BREAK 2439 case 121: 2440 YY_RULE_SETUP 2441 #line 337 "ldlex.l" 2442 { RTOKEN(ORIGIN); } 2443 YY_BREAK 2444 case 122: 2445 YY_RULE_SETUP 2446 #line 338 "ldlex.l" 2447 { RTOKEN(ORIGIN); } 2448 YY_BREAK 2449 case 123: 2450 YY_RULE_SETUP 2451 #line 339 "ldlex.l" 2452 { RTOKEN(LENGTH); } 2453 YY_BREAK 2454 case 124: 2455 YY_RULE_SETUP 2456 #line 340 "ldlex.l" 2457 { RTOKEN(LENGTH); } 2458 YY_BREAK 2459 case 125: 2460 YY_RULE_SETUP 2461 #line 341 "ldlex.l" 2462 { RTOKEN(INPUT_SECTION_FLAGS); } 2463 YY_BREAK 2464 case 126: 2465 YY_RULE_SETUP 2466 #line 342 "ldlex.l" 2467 { RTOKEN(INCLUDE);} 2468 YY_BREAK 2469 case 127: 2470 YY_RULE_SETUP 2471 #line 343 "ldlex.l" 2472 { RTOKEN(PHDRS); } 2473 YY_BREAK 2474 case 128: 2475 YY_RULE_SETUP 2476 #line 344 "ldlex.l" 2477 { RTOKEN(AT);} 2478 YY_BREAK 2479 case 129: 2480 YY_RULE_SETUP 2481 #line 345 "ldlex.l" 2482 { RTOKEN(ALIGN_WITH_INPUT);} 2483 YY_BREAK 2484 case 130: 2485 YY_RULE_SETUP 2486 #line 346 "ldlex.l" 2487 { RTOKEN(SUBALIGN);} 2488 YY_BREAK 2489 case 131: 2490 YY_RULE_SETUP 2491 #line 347 "ldlex.l" 2492 { RTOKEN(HIDDEN); } 2493 YY_BREAK 2494 case 132: 2495 YY_RULE_SETUP 2496 #line 348 "ldlex.l" 2497 { RTOKEN(PROVIDE); } 2498 YY_BREAK 2499 case 133: 2500 YY_RULE_SETUP 2501 #line 349 "ldlex.l" 2502 { RTOKEN(PROVIDE_HIDDEN); } 2503 YY_BREAK 2504 case 134: 2505 YY_RULE_SETUP 2506 #line 350 "ldlex.l" 2507 { RTOKEN(KEEP); } 2508 YY_BREAK 2509 case 135: 2510 YY_RULE_SETUP 2511 #line 351 "ldlex.l" 2512 { RTOKEN(EXCLUDE_FILE); } 2513 YY_BREAK 2514 case 136: 2515 YY_RULE_SETUP 2516 #line 352 "ldlex.l" 2517 { RTOKEN(CONSTANT);} 2518 YY_BREAK 2519 case 137: 2520 /* rule 137 can match eol */ 2521 YY_RULE_SETUP 2522 #line 354 "ldlex.l" 2523 { ++ lineno; } 2524 YY_BREAK 2525 case 138: 2526 /* rule 138 can match eol */ 2527 YY_RULE_SETUP 2528 #line 355 "ldlex.l" 2529 { ++ lineno; RTOKEN(NEWLINE); } 2530 YY_BREAK 2531 case 139: 2532 YY_RULE_SETUP 2533 #line 356 "ldlex.l" 2534 { /* Mri comment line */ } 2535 YY_BREAK 2536 case 140: 2537 YY_RULE_SETUP 2538 #line 357 "ldlex.l" 2539 { /* Mri comment line */ } 2540 YY_BREAK 2541 case 141: 2542 YY_RULE_SETUP 2543 #line 358 "ldlex.l" 2544 { RTOKEN(ENDWORD); } 2545 YY_BREAK 2546 case 142: 2547 YY_RULE_SETUP 2548 #line 359 "ldlex.l" 2549 { RTOKEN(ABSOLUTE); } 2550 YY_BREAK 2551 case 143: 2552 YY_RULE_SETUP 2553 #line 360 "ldlex.l" 2554 { RTOKEN(ALIGNMOD);} 2555 YY_BREAK 2556 case 144: 2557 YY_RULE_SETUP 2558 #line 361 "ldlex.l" 2559 { RTOKEN(ALIGN_K);} 2560 YY_BREAK 2561 case 145: 2562 YY_RULE_SETUP 2563 #line 362 "ldlex.l" 2564 { RTOKEN(CHIP); } 2565 YY_BREAK 2566 case 146: 2567 YY_RULE_SETUP 2568 #line 363 "ldlex.l" 2569 { RTOKEN(BASE); } 2570 YY_BREAK 2571 case 147: 2572 YY_RULE_SETUP 2573 #line 364 "ldlex.l" 2574 { RTOKEN(ALIAS); } 2575 YY_BREAK 2576 case 148: 2577 YY_RULE_SETUP 2578 #line 365 "ldlex.l" 2579 { RTOKEN(TRUNCATE); } 2580 YY_BREAK 2581 case 149: 2582 YY_RULE_SETUP 2583 #line 366 "ldlex.l" 2584 { RTOKEN(LOAD); } 2585 YY_BREAK 2586 case 150: 2587 YY_RULE_SETUP 2588 #line 367 "ldlex.l" 2589 { RTOKEN(PUBLIC); } 2590 YY_BREAK 2591 case 151: 2592 YY_RULE_SETUP 2593 #line 368 "ldlex.l" 2594 { RTOKEN(ORDER); } 2595 YY_BREAK 2596 case 152: 2597 YY_RULE_SETUP 2598 #line 369 "ldlex.l" 2599 { RTOKEN(NAMEWORD); } 2600 YY_BREAK 2601 case 153: 2602 YY_RULE_SETUP 2603 #line 370 "ldlex.l" 2604 { RTOKEN(FORMAT); } 2605 YY_BREAK 2606 case 154: 2607 YY_RULE_SETUP 2608 #line 371 "ldlex.l" 2609 { RTOKEN(CASE); } 2610 YY_BREAK 2611 case 155: 2612 YY_RULE_SETUP 2613 #line 372 "ldlex.l" 2614 { RTOKEN(START); } 2615 YY_BREAK 2616 case 156: 2617 YY_RULE_SETUP 2618 #line 373 "ldlex.l" 2619 { RTOKEN(LIST); /* LIST and ignore to end of line */ } 2620 YY_BREAK 2621 case 157: 2622 YY_RULE_SETUP 2623 #line 374 "ldlex.l" 2624 { RTOKEN(SECT); } 2625 YY_BREAK 2626 case 158: 2627 YY_RULE_SETUP 2628 #line 375 "ldlex.l" 2629 { RTOKEN(ENDWORD); } 2630 YY_BREAK 2631 case 159: 2632 YY_RULE_SETUP 2633 #line 376 "ldlex.l" 2634 { RTOKEN(ABSOLUTE); } 2635 YY_BREAK 2636 case 160: 2637 YY_RULE_SETUP 2638 #line 377 "ldlex.l" 2639 { RTOKEN(ALIGNMOD);} 2640 YY_BREAK 2641 case 161: 2642 YY_RULE_SETUP 2643 #line 378 "ldlex.l" 2644 { RTOKEN(ALIGN_K);} 2645 YY_BREAK 2646 case 162: 2647 YY_RULE_SETUP 2648 #line 379 "ldlex.l" 2649 { RTOKEN(CHIP); } 2650 YY_BREAK 2651 case 163: 2652 YY_RULE_SETUP 2653 #line 380 "ldlex.l" 2654 { RTOKEN(BASE); } 2655 YY_BREAK 2656 case 164: 2657 YY_RULE_SETUP 2658 #line 381 "ldlex.l" 2659 { RTOKEN(ALIAS); } 2660 YY_BREAK 2661 case 165: 2662 YY_RULE_SETUP 2663 #line 382 "ldlex.l" 2664 { RTOKEN(TRUNCATE); } 2665 YY_BREAK 2666 case 166: 2667 YY_RULE_SETUP 2668 #line 383 "ldlex.l" 2669 { RTOKEN(LOAD); } 2670 YY_BREAK 2671 case 167: 2672 YY_RULE_SETUP 2673 #line 384 "ldlex.l" 2674 { RTOKEN(PUBLIC); } 2675 YY_BREAK 2676 case 168: 2677 YY_RULE_SETUP 2678 #line 385 "ldlex.l" 2679 { RTOKEN(ORDER); } 2680 YY_BREAK 2681 case 169: 2682 YY_RULE_SETUP 2683 #line 386 "ldlex.l" 2684 { RTOKEN(NAMEWORD); } 2685 YY_BREAK 2686 case 170: 2687 YY_RULE_SETUP 2688 #line 387 "ldlex.l" 2689 { RTOKEN(FORMAT); } 2690 YY_BREAK 2691 case 171: 2692 YY_RULE_SETUP 2693 #line 388 "ldlex.l" 2694 { RTOKEN(CASE); } 2695 YY_BREAK 2696 case 172: 2697 YY_RULE_SETUP 2698 #line 389 "ldlex.l" 2699 { RTOKEN(EXTERN); } 2700 YY_BREAK 2701 case 173: 2702 YY_RULE_SETUP 2703 #line 390 "ldlex.l" 2704 { RTOKEN(START); } 2705 YY_BREAK 2706 case 174: 2707 YY_RULE_SETUP 2708 #line 391 "ldlex.l" 2709 { RTOKEN(LIST); /* LIST and ignore to end of line */ } 2710 YY_BREAK 2711 case 175: 2712 YY_RULE_SETUP 2713 #line 392 "ldlex.l" 2714 { RTOKEN(SECT); } 2715 YY_BREAK 2716 case 176: 2717 YY_RULE_SETUP 2718 #line 394 "ldlex.l" 2719 { 2720 /* Filename without commas, needed to parse mri stuff */ 2721 yylval.name = stat_strdup (yytext); 2722 return NAME; 2723 } 2724 YY_BREAK 2725 case 177: 2726 YY_RULE_SETUP 2727 #line 401 "ldlex.l" 2728 { 2729 yylval.name = stat_strdup (yytext); 2730 return NAME; 2731 } 2732 YY_BREAK 2733 case 178: 2734 YY_RULE_SETUP 2735 #line 405 "ldlex.l" 2736 { 2737 /* Filename to be prefixed by --sysroot or when non-sysrooted, nothing. */ 2738 yylval.name = stat_strdup (yytext); 2739 return NAME; 2740 } 2741 YY_BREAK 2742 case 179: 2743 YY_RULE_SETUP 2744 #line 410 "ldlex.l" 2745 { 2746 yylval.name = stat_strdup (yytext + 2); 2747 return LNAME; 2748 } 2749 YY_BREAK 2750 case 180: 2751 YY_RULE_SETUP 2752 #line 414 "ldlex.l" 2753 { 2754 yylval.name = stat_strdup (yytext); 2755 return NAME; 2756 } 2757 YY_BREAK 2758 /* The following rule is to prevent a fill expression on the output 2759 section before /DISCARD/ interpreting the '/' as a divide. */ 2760 case 181: 2761 YY_RULE_SETUP 2762 #line 420 "ldlex.l" 2763 { 2764 yylval.name = stat_strdup (yytext); 2765 return NAME; 2766 } 2767 YY_BREAK 2768 case 182: 2769 YY_RULE_SETUP 2770 #line 424 "ldlex.l" 2771 { 2772 /* Annoyingly, this pattern can match comments, and we have 2773 longest match issues to consider. So if the first two 2774 characters are a comment opening, put the input back and 2775 try again. */ 2776 if (yytext[0] == '/' && yytext[1] == '*') 2777 { 2778 yyless (2); 2779 comment (); 2780 } 2781 else 2782 { 2783 yylval.name = stat_strdup (yytext); 2784 return NAME; 2785 } 2786 } 2787 YY_BREAK 2788 case 183: 2789 /* rule 183 can match eol */ 2790 YY_RULE_SETUP 2791 #line 441 "ldlex.l" 2792 { 2793 /* No matter the state, quotes give what's inside. */ 2794 yylval.name = stat_memdup (yytext + 1, yyleng - 2, yyleng - 1); 2795 return NAME; 2796 } 2797 YY_BREAK 2798 case 184: 2799 /* rule 184 can match eol */ 2800 YY_RULE_SETUP 2801 #line 447 "ldlex.l" 2802 { 2803 lineno++; } 2804 YY_BREAK 2805 case 185: 2806 YY_RULE_SETUP 2807 #line 449 "ldlex.l" 2808 { 2809 /* Eat up whitespace */ } 2810 YY_BREAK 2811 case 186: 2812 YY_RULE_SETUP 2813 #line 451 "ldlex.l" 2814 { 2815 /* Eat up comments */ } 2816 YY_BREAK 2817 case 187: 2818 YY_RULE_SETUP 2819 #line 454 "ldlex.l" 2820 { return *yytext; } 2821 YY_BREAK 2822 case 188: 2823 YY_RULE_SETUP 2824 #line 456 "ldlex.l" 2825 { RTOKEN(GLOBAL); } 2826 YY_BREAK 2827 case 189: 2828 YY_RULE_SETUP 2829 #line 458 "ldlex.l" 2830 { RTOKEN(LOCAL); } 2831 YY_BREAK 2832 case 190: 2833 YY_RULE_SETUP 2834 #line 460 "ldlex.l" 2835 { RTOKEN(EXTERN); } 2836 YY_BREAK 2837 case 191: 2838 YY_RULE_SETUP 2839 #line 462 "ldlex.l" 2840 { yylval.name = stat_strdup (yytext); 2841 return VERS_IDENTIFIER; } 2842 YY_BREAK 2843 case 192: 2844 YY_RULE_SETUP 2845 #line 465 "ldlex.l" 2846 { yylval.name = stat_strdup (yytext); 2847 return VERS_TAG; } 2848 YY_BREAK 2849 case 193: 2850 YY_RULE_SETUP 2851 #line 468 "ldlex.l" 2852 { BEGIN(VERS_SCRIPT); return *yytext; } 2853 YY_BREAK 2854 case 194: 2855 YY_RULE_SETUP 2856 #line 470 "ldlex.l" 2857 { BEGIN(VERS_NODE); 2858 vers_node_nesting = 0; 2859 return *yytext; 2860 } 2861 YY_BREAK 2862 case 195: 2863 YY_RULE_SETUP 2864 #line 474 "ldlex.l" 2865 { return *yytext; } 2866 YY_BREAK 2867 case 196: 2868 YY_RULE_SETUP 2869 #line 475 "ldlex.l" 2870 { vers_node_nesting++; return *yytext; } 2871 YY_BREAK 2872 case 197: 2873 YY_RULE_SETUP 2874 #line 476 "ldlex.l" 2875 { if (--vers_node_nesting < 0) 2876 BEGIN(VERS_SCRIPT); 2877 return *yytext; 2878 } 2879 YY_BREAK 2880 case YY_STATE_EOF(INITIAL): 2881 case YY_STATE_EOF(SCRIPT): 2882 case YY_STATE_EOF(INPUTLIST): 2883 case YY_STATE_EOF(EXPRESSION): 2884 case YY_STATE_EOF(MRI): 2885 case YY_STATE_EOF(WILD): 2886 case YY_STATE_EOF(VERS_START): 2887 case YY_STATE_EOF(VERS_SCRIPT): 2888 case YY_STATE_EOF(VERS_NODE): 2889 #line 481 "ldlex.l" 2890 { 2891 yy_delete_buffer (YY_CURRENT_BUFFER); 2892 include_stack_ptr--; 2893 if (include_stack_ptr == 0) 2894 { 2895 lineno = 0; 2896 yyterminate (); 2897 } 2898 else 2899 yy_switch_to_buffer (include_stack[include_stack_ptr]); 2900 2901 lineno = lineno_stack[include_stack_ptr]; 2902 input_flags.sysrooted = sysrooted_stack[include_stack_ptr]; 2903 2904 return END; 2905 } 2906 YY_BREAK 2907 case 198: 2908 YY_RULE_SETUP 2909 #line 498 "ldlex.l" 2910 lex_warn_invalid (_(" in script"), yytext); 2911 YY_BREAK 2912 case 199: 2913 YY_RULE_SETUP 2914 #line 499 "ldlex.l" 2915 lex_warn_invalid (_(" in expression"), yytext); 2916 YY_BREAK 2917 case 200: 2918 YY_RULE_SETUP 2919 #line 501 "ldlex.l" 2920 ECHO; 2921 YY_BREAK 2922 #line 2922 "ldlex.c" 2923 2924 case YY_END_OF_BUFFER: 2925 { 2926 /* Amount of text matched not including the EOB char. */ 2927 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; 2928 2929 /* Undo the effects of YY_DO_BEFORE_ACTION. */ 2930 *yy_cp = (yy_hold_char); 2931 YY_RESTORE_YY_MORE_OFFSET 2932 2933 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 2934 { 2935 /* We're scanning a new file or input source. It's 2936 * possible that this happened because the user 2937 * just pointed yyin at a new source and called 2938 * yylex(). If so, then we have to assure 2939 * consistency between YY_CURRENT_BUFFER and our 2940 * globals. Here is the right place to do so, because 2941 * this is the first action (other than possibly a 2942 * back-up) that will match for the new input source. 2943 */ 2944 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 2945 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; 2946 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 2947 } 2948 2949 /* Note that here we test for yy_c_buf_p "<=" to the position 2950 * of the first EOB in the buffer, since yy_c_buf_p will 2951 * already have been incremented past the NUL character 2952 * (since all states make transitions on EOB to the 2953 * end-of-buffer state). Contrast this with the test 2954 * in input(). 2955 */ 2956 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 2957 { /* This was really a NUL. */ 2958 yy_state_type yy_next_state; 2959 2960 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; 2961 2962 yy_current_state = yy_get_previous_state( ); 2963 2964 /* Okay, we're now positioned to make the NUL 2965 * transition. We couldn't have 2966 * yy_get_previous_state() go ahead and do it 2967 * for us because it doesn't know how to deal 2968 * with the possibility of jamming (and we don't 2969 * want to build jamming into it because then it 2970 * will run more slowly). 2971 */ 2972 2973 yy_next_state = yy_try_NUL_trans( yy_current_state ); 2974 2975 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 2976 2977 if ( yy_next_state ) 2978 { 2979 /* Consume the NUL. */ 2980 yy_cp = ++(yy_c_buf_p); 2981 yy_current_state = yy_next_state; 2982 goto yy_match; 2983 } 2984 2985 else 2986 { 2987 yy_cp = (yy_c_buf_p); 2988 goto yy_find_action; 2989 } 2990 } 2991 2992 else switch ( yy_get_next_buffer( ) ) 2993 { 2994 case EOB_ACT_END_OF_FILE: 2995 { 2996 (yy_did_buffer_switch_on_eof) = 0; 2997 2998 if ( yywrap( ) ) 2999 { 3000 /* Note: because we've taken care in 3001 * yy_get_next_buffer() to have set up 3002 * yytext, we can now set up 3003 * yy_c_buf_p so that if some total 3004 * hoser (like flex itself) wants to 3005 * call the scanner after we return the 3006 * YY_NULL, it'll still work - another 3007 * YY_NULL will get returned. 3008 */ 3009 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; 3010 3011 yy_act = YY_STATE_EOF(YY_START); 3012 goto do_action; 3013 } 3014 3015 else 3016 { 3017 if ( ! (yy_did_buffer_switch_on_eof) ) 3018 YY_NEW_FILE; 3019 } 3020 break; 3021 } 3022 3023 case EOB_ACT_CONTINUE_SCAN: 3024 (yy_c_buf_p) = 3025 (yytext_ptr) + yy_amount_of_matched_text; 3026 3027 yy_current_state = yy_get_previous_state( ); 3028 3029 yy_cp = (yy_c_buf_p); 3030 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 3031 goto yy_match; 3032 3033 case EOB_ACT_LAST_MATCH: 3034 (yy_c_buf_p) = 3035 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; 3036 3037 yy_current_state = yy_get_previous_state( ); 3038 3039 yy_cp = (yy_c_buf_p); 3040 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 3041 goto yy_find_action; 3042 } 3043 break; 3044 } 3045 3046 default: 3047 YY_FATAL_ERROR( 3048 "fatal flex scanner internal error--no action found" ); 3049 } /* end of action switch */ 3050 } /* end of scanning one token */ 3051 } /* end of user's declarations */ 3052 } /* end of yylex */ 3053 3054 /* yy_get_next_buffer - try to read in a new buffer 3055 * 3056 * Returns a code representing an action: 3057 * EOB_ACT_LAST_MATCH - 3058 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 3059 * EOB_ACT_END_OF_FILE - end of file 3060 */ 3061 static int yy_get_next_buffer (void) 3062 { 3063 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 3064 char *source = (yytext_ptr); 3065 int number_to_move, i; 3066 int ret_val; 3067 3068 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) 3069 YY_FATAL_ERROR( 3070 "fatal flex scanner internal error--end of buffer missed" ); 3071 3072 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 3073 { /* Don't try to fill the buffer, so this is an EOF. */ 3074 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) 3075 { 3076 /* We matched a single character, the EOB, so 3077 * treat this as a final EOF. 3078 */ 3079 return EOB_ACT_END_OF_FILE; 3080 } 3081 3082 else 3083 { 3084 /* We matched some text prior to the EOB, first 3085 * process it. 3086 */ 3087 return EOB_ACT_LAST_MATCH; 3088 } 3089 } 3090 3091 /* Try to read more data. */ 3092 3093 /* First move last chars to start of buffer. */ 3094 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); 3095 3096 for ( i = 0; i < number_to_move; ++i ) 3097 *(dest++) = *(source++); 3098 3099 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 3100 /* don't do the read, it's not guaranteed to return an EOF, 3101 * just force an EOF 3102 */ 3103 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; 3104 3105 else 3106 { 3107 int num_to_read = 3108 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 3109 3110 while ( num_to_read <= 0 ) 3111 { /* Not enough room in the buffer - grow it. */ 3112 3113 /* just a shorter name for the current buffer */ 3114 YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; 3115 3116 int yy_c_buf_p_offset = 3117 (int) ((yy_c_buf_p) - b->yy_ch_buf); 3118 3119 if ( b->yy_is_our_buffer ) 3120 { 3121 int new_size = b->yy_buf_size * 2; 3122 3123 if ( new_size <= 0 ) 3124 b->yy_buf_size += b->yy_buf_size / 8; 3125 else 3126 b->yy_buf_size *= 2; 3127 3128 b->yy_ch_buf = (char *) 3129 /* Include room in for 2 EOB chars. */ 3130 yyrealloc( (void *) b->yy_ch_buf, 3131 (yy_size_t) (b->yy_buf_size + 2) ); 3132 } 3133 else 3134 /* Can't grow it, we don't own it. */ 3135 b->yy_ch_buf = NULL; 3136 3137 if ( ! b->yy_ch_buf ) 3138 YY_FATAL_ERROR( 3139 "fatal error - scanner input buffer overflow" ); 3140 3141 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; 3142 3143 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - 3144 number_to_move - 1; 3145 3146 } 3147 3148 if ( num_to_read > YY_READ_BUF_SIZE ) 3149 num_to_read = YY_READ_BUF_SIZE; 3150 3151 /* Read in more data. */ 3152 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 3153 (yy_n_chars), num_to_read ); 3154 3155 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 3156 } 3157 3158 if ( (yy_n_chars) == 0 ) 3159 { 3160 if ( number_to_move == YY_MORE_ADJ ) 3161 { 3162 ret_val = EOB_ACT_END_OF_FILE; 3163 yyrestart( yyin ); 3164 } 3165 3166 else 3167 { 3168 ret_val = EOB_ACT_LAST_MATCH; 3169 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 3170 YY_BUFFER_EOF_PENDING; 3171 } 3172 } 3173 3174 else 3175 ret_val = EOB_ACT_CONTINUE_SCAN; 3176 3177 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { 3178 /* Extend the array by 50%, plus the number we really need. */ 3179 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); 3180 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( 3181 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); 3182 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 3183 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); 3184 /* "- 2" to take care of EOB's */ 3185 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); 3186 } 3187 3188 (yy_n_chars) += number_to_move; 3189 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; 3190 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; 3191 3192 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 3193 3194 return ret_val; 3195 } 3196 3197 /* yy_get_previous_state - get the state just before the EOB char was reached */ 3198 3199 static yy_state_type yy_get_previous_state (void) 3200 { 3201 yy_state_type yy_current_state; 3202 char *yy_cp; 3203 3204 yy_current_state = (yy_start); 3205 3206 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) 3207 { 3208 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 3209 if ( yy_accept[yy_current_state] ) 3210 { 3211 (yy_last_accepting_state) = yy_current_state; 3212 (yy_last_accepting_cpos) = yy_cp; 3213 } 3214 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 3215 { 3216 yy_current_state = (int) yy_def[yy_current_state]; 3217 if ( yy_current_state >= 1242 ) 3218 yy_c = yy_meta[yy_c]; 3219 } 3220 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 3221 } 3222 3223 return yy_current_state; 3224 } 3225 3226 /* yy_try_NUL_trans - try to make a transition on the NUL character 3227 * 3228 * synopsis 3229 * next_state = yy_try_NUL_trans( current_state ); 3230 */ 3231 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) 3232 { 3233 int yy_is_jam; 3234 char *yy_cp = (yy_c_buf_p); 3235 3236 YY_CHAR yy_c = 1; 3237 if ( yy_accept[yy_current_state] ) 3238 { 3239 (yy_last_accepting_state) = yy_current_state; 3240 (yy_last_accepting_cpos) = yy_cp; 3241 } 3242 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 3243 { 3244 yy_current_state = (int) yy_def[yy_current_state]; 3245 if ( yy_current_state >= 1242 ) 3246 yy_c = yy_meta[yy_c]; 3247 } 3248 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 3249 yy_is_jam = (yy_current_state == 1241); 3250 3251 return yy_is_jam ? 0 : yy_current_state; 3252 } 3253 3254 #ifndef YY_NO_UNPUT 3255 3256 #endif 3257 3258 #ifndef YY_NO_INPUT 3259 #ifdef __cplusplus 3260 static int yyinput (void) 3261 #else 3262 static int input (void) 3263 #endif 3264 3265 { 3266 int c; 3267 3268 *(yy_c_buf_p) = (yy_hold_char); 3269 3270 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) 3271 { 3272 /* yy_c_buf_p now points to the character we want to return. 3273 * If this occurs *before* the EOB characters, then it's a 3274 * valid NUL; if not, then we've hit the end of the buffer. 3275 */ 3276 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 3277 /* This was really a NUL. */ 3278 *(yy_c_buf_p) = '\0'; 3279 3280 else 3281 { /* need more input */ 3282 int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); 3283 ++(yy_c_buf_p); 3284 3285 switch ( yy_get_next_buffer( ) ) 3286 { 3287 case EOB_ACT_LAST_MATCH: 3288 /* This happens because yy_g_n_b() 3289 * sees that we've accumulated a 3290 * token and flags that we need to 3291 * try matching the token before 3292 * proceeding. But for input(), 3293 * there's no matching to consider. 3294 * So convert the EOB_ACT_LAST_MATCH 3295 * to EOB_ACT_END_OF_FILE. 3296 */ 3297 3298 /* Reset buffer status. */ 3299 yyrestart( yyin ); 3300 3301 /*FALLTHROUGH*/ 3302 3303 case EOB_ACT_END_OF_FILE: 3304 { 3305 if ( yywrap( ) ) 3306 return 0; 3307 3308 if ( ! (yy_did_buffer_switch_on_eof) ) 3309 YY_NEW_FILE; 3310 #ifdef __cplusplus 3311 return yyinput(); 3312 #else 3313 return input(); 3314 #endif 3315 } 3316 3317 case EOB_ACT_CONTINUE_SCAN: 3318 (yy_c_buf_p) = (yytext_ptr) + offset; 3319 break; 3320 } 3321 } 3322 } 3323 3324 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ 3325 *(yy_c_buf_p) = '\0'; /* preserve yytext */ 3326 (yy_hold_char) = *++(yy_c_buf_p); 3327 3328 return c; 3329 } 3330 #endif /* ifndef YY_NO_INPUT */ 3331 3332 /** Immediately switch to a different input stream. 3333 * @param input_file A readable stream. 3334 * 3335 * @note This function does not reset the start condition to @c INITIAL . 3336 */ 3337 void yyrestart (FILE * input_file ) 3338 { 3339 3340 if ( ! YY_CURRENT_BUFFER ){ 3341 yyensure_buffer_stack (); 3342 YY_CURRENT_BUFFER_LVALUE = 3343 yy_create_buffer( yyin, YY_BUF_SIZE ); 3344 } 3345 3346 yy_init_buffer( YY_CURRENT_BUFFER, input_file ); 3347 yy_load_buffer_state( ); 3348 } 3349 3350 /** Switch to a different input buffer. 3351 * @param new_buffer The new input buffer. 3352 * 3353 */ 3354 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) 3355 { 3356 3357 /* TODO. We should be able to replace this entire function body 3358 * with 3359 * yypop_buffer_state(); 3360 * yypush_buffer_state(new_buffer); 3361 */ 3362 yyensure_buffer_stack (); 3363 if ( YY_CURRENT_BUFFER == new_buffer ) 3364 return; 3365 3366 if ( YY_CURRENT_BUFFER ) 3367 { 3368 /* Flush out information for old buffer. */ 3369 *(yy_c_buf_p) = (yy_hold_char); 3370 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 3371 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 3372 } 3373 3374 YY_CURRENT_BUFFER_LVALUE = new_buffer; 3375 yy_load_buffer_state( ); 3376 3377 /* We don't actually know whether we did this switch during 3378 * EOF (yywrap()) processing, but the only time this flag 3379 * is looked at is after yywrap() is called, so it's safe 3380 * to go ahead and always set it. 3381 */ 3382 (yy_did_buffer_switch_on_eof) = 1; 3383 } 3384 3385 static void yy_load_buffer_state (void) 3386 { 3387 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 3388 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 3389 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 3390 (yy_hold_char) = *(yy_c_buf_p); 3391 } 3392 3393 /** Allocate and initialize an input buffer state. 3394 * @param file A readable stream. 3395 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. 3396 * 3397 * @return the allocated buffer state. 3398 */ 3399 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) 3400 { 3401 YY_BUFFER_STATE b; 3402 3403 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); 3404 if ( ! b ) 3405 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 3406 3407 b->yy_buf_size = size; 3408 3409 /* yy_ch_buf has to be 2 characters longer than the size given because 3410 * we need to put in 2 end-of-buffer characters. 3411 */ 3412 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); 3413 if ( ! b->yy_ch_buf ) 3414 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 3415 3416 b->yy_is_our_buffer = 1; 3417 3418 yy_init_buffer( b, file ); 3419 3420 return b; 3421 } 3422 3423 /** Destroy the buffer. 3424 * @param b a buffer created with yy_create_buffer() 3425 * 3426 */ 3427 void yy_delete_buffer (YY_BUFFER_STATE b ) 3428 { 3429 3430 if ( ! b ) 3431 return; 3432 3433 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 3434 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 3435 3436 if ( b->yy_is_our_buffer ) 3437 yyfree( (void *) b->yy_ch_buf ); 3438 3439 yyfree( (void *) b ); 3440 } 3441 3442 /* Initializes or reinitializes a buffer. 3443 * This function is sometimes called more than once on the same buffer, 3444 * such as during a yyrestart() or at EOF. 3445 */ 3446 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) 3447 3448 { 3449 int oerrno = errno; 3450 3451 yy_flush_buffer( b ); 3452 3453 b->yy_input_file = file; 3454 b->yy_fill_buffer = 1; 3455 3456 /* If b is the current buffer, then yy_init_buffer was _probably_ 3457 * called from yyrestart() or through yy_get_next_buffer. 3458 * In that case, we don't want to reset the lineno or column. 3459 */ 3460 if (b != YY_CURRENT_BUFFER){ 3461 b->yy_bs_lineno = 1; 3462 b->yy_bs_column = 0; 3463 } 3464 3465 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 3466 3467 errno = oerrno; 3468 } 3469 3470 /** Discard all buffered characters. On the next scan, YY_INPUT will be called. 3471 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. 3472 * 3473 */ 3474 void yy_flush_buffer (YY_BUFFER_STATE b ) 3475 { 3476 if ( ! b ) 3477 return; 3478 3479 b->yy_n_chars = 0; 3480 3481 /* We always need two end-of-buffer characters. The first causes 3482 * a transition to the end-of-buffer state. The second causes 3483 * a jam in that state. 3484 */ 3485 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 3486 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 3487 3488 b->yy_buf_pos = &b->yy_ch_buf[0]; 3489 3490 b->yy_at_bol = 1; 3491 b->yy_buffer_status = YY_BUFFER_NEW; 3492 3493 if ( b == YY_CURRENT_BUFFER ) 3494 yy_load_buffer_state( ); 3495 } 3496 3497 /** Pushes the new state onto the stack. The new state becomes 3498 * the current state. This function will allocate the stack 3499 * if necessary. 3500 * @param new_buffer The new state. 3501 * 3502 */ 3503 void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) 3504 { 3505 if (new_buffer == NULL) 3506 return; 3507 3508 yyensure_buffer_stack(); 3509 3510 /* This block is copied from yy_switch_to_buffer. */ 3511 if ( YY_CURRENT_BUFFER ) 3512 { 3513 /* Flush out information for old buffer. */ 3514 *(yy_c_buf_p) = (yy_hold_char); 3515 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 3516 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 3517 } 3518 3519 /* Only push if top exists. Otherwise, replace top. */ 3520 if (YY_CURRENT_BUFFER) 3521 (yy_buffer_stack_top)++; 3522 YY_CURRENT_BUFFER_LVALUE = new_buffer; 3523 3524 /* copied from yy_switch_to_buffer. */ 3525 yy_load_buffer_state( ); 3526 (yy_did_buffer_switch_on_eof) = 1; 3527 } 3528 3529 /** Removes and deletes the top of the stack, if present. 3530 * The next element becomes the new top. 3531 * 3532 */ 3533 void yypop_buffer_state (void) 3534 { 3535 if (!YY_CURRENT_BUFFER) 3536 return; 3537 3538 yy_delete_buffer(YY_CURRENT_BUFFER ); 3539 YY_CURRENT_BUFFER_LVALUE = NULL; 3540 if ((yy_buffer_stack_top) > 0) 3541 --(yy_buffer_stack_top); 3542 3543 if (YY_CURRENT_BUFFER) { 3544 yy_load_buffer_state( ); 3545 (yy_did_buffer_switch_on_eof) = 1; 3546 } 3547 } 3548 3549 /* Allocates the stack if it does not exist. 3550 * Guarantees space for at least one push. 3551 */ 3552 static void yyensure_buffer_stack (void) 3553 { 3554 yy_size_t num_to_alloc; 3555 3556 if (!(yy_buffer_stack)) { 3557 3558 /* First allocation is just for 2 elements, since we don't know if this 3559 * scanner will even need a stack. We use 2 instead of 1 to avoid an 3560 * immediate realloc on the next call. 3561 */ 3562 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ 3563 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc 3564 (num_to_alloc * sizeof(struct yy_buffer_state*) 3565 ); 3566 if ( ! (yy_buffer_stack) ) 3567 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); 3568 3569 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 3570 3571 (yy_buffer_stack_max) = num_to_alloc; 3572 (yy_buffer_stack_top) = 0; 3573 return; 3574 } 3575 3576 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ 3577 3578 /* Increase the buffer to prepare for a possible push. */ 3579 yy_size_t grow_size = 8 /* arbitrary grow size */; 3580 3581 num_to_alloc = (yy_buffer_stack_max) + grow_size; 3582 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc 3583 ((yy_buffer_stack), 3584 num_to_alloc * sizeof(struct yy_buffer_state*) 3585 ); 3586 if ( ! (yy_buffer_stack) ) 3587 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); 3588 3589 /* zero only the new slots.*/ 3590 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); 3591 (yy_buffer_stack_max) = num_to_alloc; 3592 } 3593 } 3594 3595 /** Setup the input buffer state to scan directly from a user-specified character buffer. 3596 * @param base the character buffer 3597 * @param size the size in bytes of the character buffer 3598 * 3599 * @return the newly allocated buffer state object. 3600 */ 3601 YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) 3602 { 3603 YY_BUFFER_STATE b; 3604 3605 if ( size < 2 || 3606 base[size-2] != YY_END_OF_BUFFER_CHAR || 3607 base[size-1] != YY_END_OF_BUFFER_CHAR ) 3608 /* They forgot to leave room for the EOB's. */ 3609 return NULL; 3610 3611 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); 3612 if ( ! b ) 3613 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); 3614 3615 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ 3616 b->yy_buf_pos = b->yy_ch_buf = base; 3617 b->yy_is_our_buffer = 0; 3618 b->yy_input_file = NULL; 3619 b->yy_n_chars = b->yy_buf_size; 3620 b->yy_is_interactive = 0; 3621 b->yy_at_bol = 1; 3622 b->yy_fill_buffer = 0; 3623 b->yy_buffer_status = YY_BUFFER_NEW; 3624 3625 yy_switch_to_buffer( b ); 3626 3627 return b; 3628 } 3629 3630 /** Setup the input buffer state to scan a string. The next call to yylex() will 3631 * scan from a @e copy of @a str. 3632 * @param yystr a NUL-terminated string to scan 3633 * 3634 * @return the newly allocated buffer state object. 3635 * @note If you want to scan bytes that may contain NUL values, then use 3636 * yy_scan_bytes() instead. 3637 */ 3638 YY_BUFFER_STATE yy_scan_string (const char * yystr ) 3639 { 3640 3641 return yy_scan_bytes( yystr, (int) strlen(yystr) ); 3642 } 3643 3644 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will 3645 * scan from a @e copy of @a bytes. 3646 * @param yybytes the byte buffer to scan 3647 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. 3648 * 3649 * @return the newly allocated buffer state object. 3650 */ 3651 YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) 3652 { 3653 YY_BUFFER_STATE b; 3654 char *buf; 3655 yy_size_t n; 3656 int i; 3657 3658 /* Get memory for full buffer, including space for trailing EOB's. */ 3659 n = (yy_size_t) (_yybytes_len + 2); 3660 buf = (char *) yyalloc( n ); 3661 if ( ! buf ) 3662 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); 3663 3664 for ( i = 0; i < _yybytes_len; ++i ) 3665 buf[i] = yybytes[i]; 3666 3667 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; 3668 3669 b = yy_scan_buffer( buf, n ); 3670 if ( ! b ) 3671 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); 3672 3673 /* It's okay to grow etc. this buffer, and we should throw it 3674 * away when we're done. 3675 */ 3676 b->yy_is_our_buffer = 1; 3677 3678 return b; 3679 } 3680 3681 #ifndef YY_EXIT_FAILURE 3682 #define YY_EXIT_FAILURE 2 3683 #endif 3684 3685 static void yynoreturn yy_fatal_error (const char* msg ) 3686 { 3687 fprintf( stderr, "%s\n", msg ); 3688 exit( YY_EXIT_FAILURE ); 3689 } 3690 3691 /* Redefine yyless() so it works in section 3 code. */ 3692 3693 #undef yyless 3694 #define yyless(n) \ 3695 do \ 3696 { \ 3697 /* Undo effects of setting up yytext. */ \ 3698 int yyless_macro_arg = (n); \ 3699 YY_LESS_LINENO(yyless_macro_arg);\ 3700 yytext[yyleng] = (yy_hold_char); \ 3701 (yy_c_buf_p) = yytext + yyless_macro_arg; \ 3702 (yy_hold_char) = *(yy_c_buf_p); \ 3703 *(yy_c_buf_p) = '\0'; \ 3704 yyleng = yyless_macro_arg; \ 3705 } \ 3706 while ( 0 ) 3707 3708 /* Accessor methods (get/set functions) to struct members. */ 3709 3710 /** Get the current line number. 3711 * 3712 */ 3713 int yyget_lineno (void) 3714 { 3715 3716 return yylineno; 3717 } 3718 3719 /** Get the input stream. 3720 * 3721 */ 3722 FILE *yyget_in (void) 3723 { 3724 return yyin; 3725 } 3726 3727 /** Get the output stream. 3728 * 3729 */ 3730 FILE *yyget_out (void) 3731 { 3732 return yyout; 3733 } 3734 3735 /** Get the length of the current token. 3736 * 3737 */ 3738 int yyget_leng (void) 3739 { 3740 return yyleng; 3741 } 3742 3743 /** Get the current token. 3744 * 3745 */ 3746 3747 char *yyget_text (void) 3748 { 3749 return yytext; 3750 } 3751 3752 /** Set the current line number. 3753 * @param _line_number line number 3754 * 3755 */ 3756 void yyset_lineno (int _line_number ) 3757 { 3758 3759 yylineno = _line_number; 3760 } 3761 3762 /** Set the input stream. This does not discard the current 3763 * input buffer. 3764 * @param _in_str A readable stream. 3765 * 3766 * @see yy_switch_to_buffer 3767 */ 3768 void yyset_in (FILE * _in_str ) 3769 { 3770 yyin = _in_str ; 3771 } 3772 3773 void yyset_out (FILE * _out_str ) 3774 { 3775 yyout = _out_str ; 3776 } 3777 3778 int yyget_debug (void) 3779 { 3780 return yy_flex_debug; 3781 } 3782 3783 void yyset_debug (int _bdebug ) 3784 { 3785 yy_flex_debug = _bdebug ; 3786 } 3787 3788 static int yy_init_globals (void) 3789 { 3790 /* Initialization is the same as for the non-reentrant scanner. 3791 * This function is called from yylex_destroy(), so don't allocate here. 3792 */ 3793 3794 (yy_buffer_stack) = NULL; 3795 (yy_buffer_stack_top) = 0; 3796 (yy_buffer_stack_max) = 0; 3797 (yy_c_buf_p) = NULL; 3798 (yy_init) = 0; 3799 (yy_start) = 0; 3800 3801 /* Defined in main.c */ 3802 #ifdef YY_STDINIT 3803 yyin = stdin; 3804 yyout = stdout; 3805 #else 3806 yyin = NULL; 3807 yyout = NULL; 3808 #endif 3809 3810 /* For future reference: Set errno on error, since we are called by 3811 * yylex_init() 3812 */ 3813 return 0; 3814 } 3815 3816 /* yylex_destroy is for both reentrant and non-reentrant scanners. */ 3817 int yylex_destroy (void) 3818 { 3819 3820 /* Pop the buffer stack, destroying each element. */ 3821 while(YY_CURRENT_BUFFER){ 3822 yy_delete_buffer( YY_CURRENT_BUFFER ); 3823 YY_CURRENT_BUFFER_LVALUE = NULL; 3824 yypop_buffer_state(); 3825 } 3826 3827 /* Destroy the stack itself. */ 3828 yyfree((yy_buffer_stack) ); 3829 (yy_buffer_stack) = NULL; 3830 3831 /* Reset the globals. This is important in a non-reentrant scanner so the next time 3832 * yylex() is called, initialization will occur. */ 3833 yy_init_globals( ); 3834 3835 return 0; 3836 } 3837 3838 /* 3839 * Internal utility routines. 3840 */ 3841 3842 #ifndef yytext_ptr 3843 static void yy_flex_strncpy (char* s1, const char * s2, int n ) 3844 { 3845 3846 int i; 3847 for ( i = 0; i < n; ++i ) 3848 s1[i] = s2[i]; 3849 } 3850 #endif 3851 3852 #ifdef YY_NEED_STRLEN 3853 static int yy_flex_strlen (const char * s ) 3854 { 3855 int n; 3856 for ( n = 0; s[n]; ++n ) 3857 ; 3858 3859 return n; 3860 } 3861 #endif 3862 3863 void *yyalloc (yy_size_t size ) 3864 { 3865 return malloc(size); 3866 } 3867 3868 void *yyrealloc (void * ptr, yy_size_t size ) 3869 { 3870 3871 /* The cast to (char *) in the following accommodates both 3872 * implementations that use char* generic pointers, and those 3873 * that use void* generic pointers. It works with the latter 3874 * because both ANSI C and C++ allow castless assignment from 3875 * any pointer type to void*, and deal with argument conversions 3876 * as though doing an assignment. 3877 */ 3878 return realloc(ptr, size); 3879 } 3880 3881 void yyfree (void * ptr ) 3882 { 3883 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ 3884 } 3885 3886 #define YYTABLES_NAME "yytables" 3887 3888 #line 501 "ldlex.l" 3889 3890 3891 3893 /* Switch flex to reading script file NAME, open on FILE, 3894 saving the current input info on the include stack. */ 3895 3896 void 3897 lex_push_file (FILE *file, const char *name, unsigned int sysrooted) 3898 { 3899 if (include_stack_ptr >= MAX_INCLUDE_DEPTH) 3900 fatal (_("%P: includes nested too deeply\n")); 3901 file_name_stack[include_stack_ptr] = name; 3902 lineno_stack[include_stack_ptr] = lineno; 3903 sysrooted_stack[include_stack_ptr] = input_flags.sysrooted; 3904 include_stack[include_stack_ptr] = YY_CURRENT_BUFFER; 3905 3906 include_stack_ptr++; 3907 lineno = 1; 3908 input_flags.sysrooted = sysrooted; 3909 yyin = file; 3910 yy_switch_to_buffer (yy_create_buffer (yyin, YY_BUF_SIZE)); 3911 } 3912 3913 /* Return a newly created flex input buffer containing STRING, 3914 which is SIZE bytes long. */ 3915 3916 static YY_BUFFER_STATE 3917 yy_create_string_buffer (const char *string, size_t size) 3918 { 3919 YY_BUFFER_STATE b; 3920 3921 b = xmalloc (sizeof (struct yy_buffer_state)); 3922 b->yy_input_file = 0; 3923 b->yy_buf_size = size; 3924 3925 /* yy_ch_buf has to be 2 characters longer than the size given because 3926 we need to put in 2 end-of-buffer characters. */ 3927 b->yy_ch_buf = xmalloc (b->yy_buf_size + 3); 3928 3929 b->yy_ch_buf[0] = '\n'; 3930 strcpy (b->yy_ch_buf+1, string); 3931 b->yy_ch_buf[size+1] = YY_END_OF_BUFFER_CHAR; 3932 b->yy_ch_buf[size+2] = YY_END_OF_BUFFER_CHAR; 3933 b->yy_n_chars = size+1; 3934 b->yy_buf_pos = &b->yy_ch_buf[1]; 3935 3936 b->yy_is_our_buffer = 1; 3937 b->yy_is_interactive = 0; 3938 b->yy_at_bol = 1; 3939 b->yy_fill_buffer = 0; 3940 3941 /* flex 2.4.7 changed the interface. FIXME: We should not be using 3942 a flex internal interface in the first place! */ 3943 #ifdef YY_BUFFER_NEW 3944 b->yy_buffer_status = YY_BUFFER_NEW; 3945 #else 3946 b->yy_eof_status = EOF_NOT_SEEN; 3947 #endif 3948 3949 return b; 3950 } 3951 3952 /* Switch flex to reading from STRING, saving the current input info 3953 on the include stack. */ 3954 3955 void 3956 lex_redirect (const char *string, const char *fake_filename, unsigned int count) 3957 { 3958 YY_BUFFER_STATE tmp; 3959 3960 yy_init = 0; 3961 if (include_stack_ptr >= MAX_INCLUDE_DEPTH) 3962 fatal (_("%P: macros nested too deeply\n")); 3963 file_name_stack[include_stack_ptr] = fake_filename; 3964 lineno_stack[include_stack_ptr] = lineno; 3965 include_stack[include_stack_ptr] = YY_CURRENT_BUFFER; 3966 include_stack_ptr++; 3967 lineno = count; 3968 tmp = yy_create_string_buffer (string, strlen (string)); 3969 yy_switch_to_buffer (tmp); 3970 } 3971 3972 /* Functions to switch to a different flex start condition, 3974 saving the current start condition on `state_stack'. */ 3975 3976 static int state_stack[MAX_INCLUDE_DEPTH * 2]; 3977 static int *state_stack_p = state_stack; 3978 3979 void 3980 ldlex_script (void) 3981 { 3982 *(state_stack_p)++ = yy_start; 3983 BEGIN (SCRIPT); 3984 } 3985 3986 void 3987 ldlex_inputlist (void) 3988 { 3989 *(state_stack_p)++ = yy_start; 3990 BEGIN (INPUTLIST); 3991 } 3992 3993 void 3994 ldlex_mri_script (void) 3995 { 3996 *(state_stack_p)++ = yy_start; 3997 BEGIN (MRI); 3998 } 3999 4000 void 4001 ldlex_version_script (void) 4002 { 4003 *(state_stack_p)++ = yy_start; 4004 BEGIN (VERS_START); 4005 } 4006 4007 void 4008 ldlex_version_file (void) 4009 { 4010 *(state_stack_p)++ = yy_start; 4011 BEGIN (VERS_SCRIPT); 4012 } 4013 4014 void 4015 ldlex_expression (void) 4016 { 4017 *(state_stack_p)++ = yy_start; 4018 BEGIN (EXPRESSION); 4019 } 4020 4021 void 4022 ldlex_wild (void) 4023 { 4024 *(state_stack_p)++ = yy_start; 4025 BEGIN (WILD); 4026 } 4027 4028 void 4029 ldlex_popstate (void) 4030 { 4031 yy_start = *(--state_stack_p); 4032 } 4033 4034 /* In cases where the parser needs to look ahead and the context 4035 changes from expression to script or vice-versa, throw away a 4036 NAME. What constitutes a NAME depends on context. */ 4037 4038 void 4039 ldlex_backup (void) 4040 { 4041 yyless (0); 4042 } 4043 4044 /* Return the current file name, or the previous file if no file is 4045 current. */ 4046 4047 const char* 4048 ldlex_filename (void) 4049 { 4050 return file_name_stack[include_stack_ptr - (include_stack_ptr != 0)]; 4051 } 4052 4053 4055 /* Place up to MAX_SIZE characters in BUF and return 4056 either the number of characters read, or 0 to indicate EOF. */ 4057 4058 static int 4059 yy_input (char *buf, int max_size) 4060 { 4061 int result = 0; 4062 if (YY_CURRENT_BUFFER != NULL && YY_CURRENT_BUFFER->yy_input_file) 4063 { 4064 if (yyin) 4065 { 4066 result = fread (buf, 1, max_size, yyin); 4067 if (result < max_size && ferror (yyin)) 4068 fatal (_("%P: read in flex scanner failed\n")); 4069 } 4070 } 4071 return result; 4072 } 4073 4074 /* Eat the rest of a C-style comment. */ 4075 4076 static void 4077 comment (void) 4078 { 4079 int c; 4080 4081 while (1) 4082 { 4083 c = input(); 4084 while (c != '*' && c != 0) 4085 { 4086 if (c == '\n') 4087 lineno++; 4088 c = input(); 4089 } 4090 4091 if (c == '*') 4092 { 4093 c = input(); 4094 while (c == '*') 4095 c = input(); 4096 if (c == '/') 4097 break; /* found the end */ 4098 } 4099 4100 if (c == '\n') 4101 lineno++; 4102 4103 if (c == 0) 4104 { 4105 fatal (_("%P: EOF in comment\n")); 4106 break; 4107 } 4108 } 4109 } 4110 4111 /* Warn the user about a garbage character WHAT in the input 4112 in context WHERE. */ 4113 4114 static void 4115 lex_warn_invalid (char *where, char *what) 4116 { 4117 char buf[5]; 4118 4119 /* If we have found an input file whose format we do not recognize, 4120 and we are therefore treating it as a linker script, and we find 4121 an invalid character, then most likely this is a real object file 4122 of some different format. Treat it as such. */ 4123 if (ldfile_assumed_script) 4124 { 4125 bfd_set_error (bfd_error_file_not_recognized); 4126 fatal (_("%s: file not recognized: %E\n"), ldlex_filename ()); 4127 } 4128 4129 if (! ISPRINT (*what)) 4130 { 4131 sprintf (buf, "\\%03o", *(unsigned char *) what); 4132 what = buf; 4133 } 4134 4135 einfo (_("%P:%pS: ignoring invalid character `%s'%s\n"), NULL, what, where); 4136 } 4137 4138