5 #define YY_INT_ALIGNED short int
7 /* A lexical scanner generated by flex */
9 #define yy_create_buffer ld_create_buffer
10 #define yy_delete_buffer ld_delete_buffer
11 #define yy_flex_debug ld_flex_debug
12 #define yy_init_buffer ld_init_buffer
13 #define yy_flush_buffer ld_flush_buffer
14 #define yy_load_buffer_state ld_load_buffer_state
15 #define yy_switch_to_buffer ld_switch_to_buffer
19 #define yylineno ldlineno
21 #define yyrestart ldrestart
24 #define yyalloc ldalloc
25 #define yyrealloc ldrealloc
29 #define YY_FLEX_MAJOR_VERSION 2
30 #define YY_FLEX_MINOR_VERSION 5
31 #define YY_FLEX_SUBMINOR_VERSION 39
32 #if YY_FLEX_SUBMINOR_VERSION > 0
36 /* First, we deal with platform-specific or compiler-specific issues. */
38 /* begin standard C headers. */
44 /* end standard C headers. */
46 /* flex integer type definitions */
51 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
53 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
55 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
56 * if you want the limit (max/min) macros for int types.
58 #ifndef __STDC_LIMIT_MACROS
59 #define __STDC_LIMIT_MACROS 1
63 typedef int8_t flex_int8_t;
64 typedef uint8_t flex_uint8_t;
65 typedef int16_t flex_int16_t;
66 typedef uint16_t flex_uint16_t;
67 typedef int32_t flex_int32_t;
68 typedef uint32_t flex_uint32_t;
70 typedef signed char flex_int8_t;
71 typedef short int flex_int16_t;
72 typedef int flex_int32_t;
73 typedef unsigned char flex_uint8_t;
74 typedef unsigned short int flex_uint16_t;
75 typedef unsigned int flex_uint32_t;
77 /* Limits of integral types. */
79 #define INT8_MIN (-128)
82 #define INT16_MIN (-32767-1)
85 #define INT32_MIN (-2147483647-1)
88 #define INT8_MAX (127)
91 #define INT16_MAX (32767)
94 #define INT32_MAX (2147483647)
97 #define UINT8_MAX (255U)
100 #define UINT16_MAX (65535U)
103 #define UINT32_MAX (4294967295U)
108 #endif /* ! FLEXINT_H */
112 /* The "const" storage-class-modifier is valid. */
115 #else /* ! __cplusplus */
117 /* C99 requires __STDC__ to be defined as 1. */
118 #if defined (__STDC__)
122 #endif /* defined (__STDC__) */
123 #endif /* ! __cplusplus */
126 #define yyconst const
131 /* Returned upon end-of-file. */
134 /* Promotes a possibly negative, possibly signed char to an unsigned
135 * integer for use as an array index. If the signed char is negative,
136 * we want to instead treat it as an 8-bit unsigned char, hence the
139 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
141 /* Enter a start condition. This macro really ought to take a parameter,
142 * but we do it the disgusting crufty way forced on us by the ()-less
143 * definition of BEGIN.
145 #define BEGIN (yy_start) = 1 + 2 *
147 /* Translate the current start state into a value that can be later handed
148 * to BEGIN to return to the state. The YYSTATE alias is for lex
151 #define YY_START (((yy_start) - 1) / 2)
152 #define YYSTATE YY_START
154 /* Action number for EOF rule of a given start state. */
155 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
157 /* Special action meaning "start processing a new file". */
158 #define YY_NEW_FILE ldrestart(ldin )
160 #define YY_END_OF_BUFFER_CHAR 0
162 /* Size of default input buffer. */
164 #define YY_BUF_SIZE 16384
167 /* The state buf must be large enough to hold one state per character in the main buffer.
169 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
171 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
172 #define YY_TYPEDEF_YY_BUFFER_STATE
173 typedef struct yy_buffer_state *YY_BUFFER_STATE;
176 #ifndef YY_TYPEDEF_YY_SIZE_T
177 #define YY_TYPEDEF_YY_SIZE_T
178 typedef size_t yy_size_t;
181 extern yy_size_t ldleng;
183 extern FILE *ldin, *ldout;
185 #define EOB_ACT_CONTINUE_SCAN 0
186 #define EOB_ACT_END_OF_FILE 1
187 #define EOB_ACT_LAST_MATCH 2
189 /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
190 * access to the local variable yy_act. Since yyless() is a macro, it would break
191 * existing scanners that call yyless() from OUTSIDE ldlex.
192 * One obvious solution it to make yy_act a global. I tried that, and saw
193 * a 5% performance hit in a non-ldlineno scanner, because yy_act is
194 * normally declared as a register variable-- so it is not worth it.
196 #define YY_LESS_LINENO(n) \
199 for ( yyl = n; yyl < ldleng; ++yyl )\
200 if ( ldtext[yyl] == '\n' )\
203 #define YY_LINENO_REWIND_TO(dst) \
206 for ( p = yy_cp-1; p >= (dst); --p)\
211 /* Return all but the first "n" matched characters back to the input stream. */
215 /* Undo effects of setting up ldtext. */ \
216 int yyless_macro_arg = (n); \
217 YY_LESS_LINENO(yyless_macro_arg);\
218 *yy_cp = (yy_hold_char); \
219 YY_RESTORE_YY_MORE_OFFSET \
220 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
221 YY_DO_BEFORE_ACTION; /* set up ldtext again */ \
225 #define unput(c) yyunput( c, (yytext_ptr) )
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
233 char *yy_ch_buf; /* input buffer */
234 char *yy_buf_pos; /* current position in input buffer */
236 /* Size of input buffer in bytes, not including room for EOB
239 yy_size_t yy_buf_size;
241 /* Number of characters read into yy_ch_buf, not including EOB
244 yy_size_t yy_n_chars;
246 /* Whether we "own" the buffer - i.e., we know we created it,
247 * and can realloc() it to grow it, and should free() it to
250 int yy_is_our_buffer;
252 /* Whether this is an "interactive" input source; if so, and
253 * if we're using stdio for input, then we want to use getc()
254 * instead of fread(), to make sure we stop fetching input after
257 int yy_is_interactive;
259 /* Whether we're considered to be at the beginning of a line.
260 * If so, '^' rules will be active on the next match, otherwise
265 int yy_bs_lineno; /**< The line count. */
266 int yy_bs_column; /**< The column count. */
268 /* Whether to try to fill the input buffer when we reach the
273 int yy_buffer_status;
275 #define YY_BUFFER_NEW 0
276 #define YY_BUFFER_NORMAL 1
277 /* When an EOF's been seen but there's still some text to process
278 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
279 * shouldn't try reading from the input source any more. We might
280 * still have a bunch of tokens to match, though, because of
281 * possible backing-up.
283 * When we actually see the EOF, we change the status to "new"
284 * (via ldrestart()), so that the user can continue scanning by
285 * just pointing ldin at a new input file.
287 #define YY_BUFFER_EOF_PENDING 2
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
292 /* Stack of input buffers. */
293 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
294 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
295 static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
297 /* We provide macros for accessing buffer states in case in the
298 * future we want to put the buffer states in a more general
301 * Returns the top of the stack, or NULL.
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
307 /* Same as previous macro, but useful when we know that the buffer stack is not
308 * NULL or when we need an lvalue. For internal use only.
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
312 /* yy_hold_char holds the character lost when ldtext is formed. */
313 static char yy_hold_char;
314 static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */
317 /* Points to current character in buffer. */
318 static char *yy_c_buf_p = (char *) 0;
319 static int yy_init = 0; /* whether we need to initialize */
320 static int yy_start = 0; /* start state number */
322 /* Flag which is used to allow ldwrap()'s to do buffer switches
323 * instead of setting up a fresh ldin. A bit of a hack ...
325 static int yy_did_buffer_switch_on_eof;
327 void ldrestart (FILE *input_file );
328 void ld_switch_to_buffer (YY_BUFFER_STATE new_buffer );
329 YY_BUFFER_STATE ld_create_buffer (FILE *file,int size );
330 void ld_delete_buffer (YY_BUFFER_STATE b );
331 void ld_flush_buffer (YY_BUFFER_STATE b );
332 void ldpush_buffer_state (YY_BUFFER_STATE new_buffer );
333 void ldpop_buffer_state (void );
335 static void ldensure_buffer_stack (void );
336 static void ld_load_buffer_state (void );
337 static void ld_init_buffer (YY_BUFFER_STATE b,FILE *file );
339 #define YY_FLUSH_BUFFER ld_flush_buffer(YY_CURRENT_BUFFER )
341 YY_BUFFER_STATE ld_scan_buffer (char *base,yy_size_t size );
342 YY_BUFFER_STATE ld_scan_string (yyconst char *yy_str );
343 YY_BUFFER_STATE ld_scan_bytes (yyconst char *bytes,yy_size_t len );
345 void *ldalloc (yy_size_t );
346 void *ldrealloc (void *,yy_size_t );
347 void ldfree (void * );
349 #define yy_new_buffer ld_create_buffer
351 #define yy_set_interactive(is_interactive) \
353 if ( ! YY_CURRENT_BUFFER ){ \
354 ldensure_buffer_stack (); \
355 YY_CURRENT_BUFFER_LVALUE = \
356 ld_create_buffer(ldin,YY_BUF_SIZE ); \
358 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
361 #define yy_set_bol(at_bol) \
363 if ( ! YY_CURRENT_BUFFER ){\
364 ldensure_buffer_stack (); \
365 YY_CURRENT_BUFFER_LVALUE = \
366 ld_create_buffer(ldin,YY_BUF_SIZE ); \
368 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
373 /* Begin user sect3 */
376 #define YY_SKIP_YYWRAP
378 typedef unsigned char YY_CHAR;
380 FILE *ldin = (FILE *) 0, *ldout = (FILE *) 0;
382 typedef int yy_state_type;
389 #define yytext_ptr ldtext
391 static yy_state_type yy_get_previous_state (void );
392 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
393 static int yy_get_next_buffer (void );
394 static void yy_fatal_error (yyconst char msg[] );
396 /* Done after the current pattern has been matched and before the
397 * corresponding action - sets up ldtext.
399 #define YY_DO_BEFORE_ACTION \
400 (yytext_ptr) = yy_bp; \
401 ldleng = (size_t) (yy_cp - yy_bp); \
402 (yy_hold_char) = *yy_cp; \
404 (yy_c_buf_p) = yy_cp;
406 #define YY_NUM_RULES 50
407 #define YY_END_OF_BUFFER 51
408 /* This struct is not used in this scanner,
409 but its presence is necessary. */
412 flex_int32_t yy_verify;
415 static yyconst flex_int16_t yy_accept[219] =
417 0, 0, 0, 0, 51, 49, 48, 48, 41, 42,
418 32, 33, 39, 37, 44, 38, 46, 40, 45, 45,
419 34, 35, 36, 46, 46, 46, 46, 46, 46, 46,
420 46, 46, 46, 49, 49, 46, 46, 30, 43, 31,
421 49, 9, 9, 48, 46, 47, 46, 10, 45, 45,
422 45, 46, 45, 46, 46, 46, 46, 46, 46, 46,
423 46, 46, 46, 46, 46, 46, 46, 0, 29, 46,
424 46, 0, 0, 0, 0, 45, 46, 46, 46, 46,
425 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,
426 46, 46, 0, 46, 46, 0, 0, 0, 0, 0,
428 0, 45, 46, 46, 46, 46, 46, 46, 46, 19,
429 46, 46, 46, 46, 46, 46, 27, 46, 0, 46,
430 46, 0, 0, 0, 0, 0, 0, 0, 0, 11,
431 46, 13, 46, 16, 17, 46, 46, 46, 46, 46,
432 46, 46, 46, 46, 46, 0, 0, 0, 0, 0,
433 0, 0, 0, 46, 46, 18, 46, 46, 46, 46,
434 46, 46, 46, 46, 20, 0, 2, 0, 0, 0,
435 6, 0, 0, 46, 46, 46, 46, 23, 46, 25,
436 46, 28, 15, 0, 4, 1, 0, 8, 5, 46,
437 46, 46, 22, 46, 46, 0, 0, 12, 46, 46,
439 46, 46, 3, 7, 46, 46, 24, 46, 46, 46,
440 46, 14, 46, 46, 21, 46, 26, 0
443 static yyconst flex_int32_t yy_ec[256] =
445 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
446 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
447 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
448 1, 2, 1, 1, 4, 1, 5, 6, 1, 7,
449 8, 9, 10, 11, 12, 13, 14, 15, 16, 16,
450 16, 16, 16, 16, 16, 17, 17, 18, 19, 1,
451 20, 1, 21, 1, 22, 23, 24, 25, 26, 27,
452 28, 29, 30, 13, 31, 32, 33, 34, 35, 36,
453 13, 37, 38, 39, 40, 41, 42, 43, 44, 45,
454 46, 47, 48, 1, 49, 1, 50, 51, 52, 53,
456 54, 55, 56, 13, 57, 13, 58, 59, 58, 60,
457 61, 13, 13, 13, 62, 13, 13, 13, 13, 63,
458 13, 13, 64, 65, 66, 47, 1, 1, 1, 1,
459 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
460 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
461 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
462 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
463 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
464 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
465 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
467 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
468 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
469 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
470 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
471 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
475 static yyconst flex_int32_t yy_meta[67] =
477 1, 2, 2, 1, 1, 1, 2, 2, 3, 1,
478 1, 3, 3, 1, 3, 3, 3, 2, 2, 1,
479 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
480 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
481 3, 3, 3, 3, 3, 2, 1, 2, 3, 3,
482 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
486 static yyconst flex_int16_t yy_base[223] =
488 0, 217, 0, 216, 216, 2250, 65, 67, 2250, 2250,
489 2250, 2250, 0, 2250, 2250, 2250, 70, 206, 135, 62,
490 2250, 2250, 2250, 0, 186, 70, 127, 146, 179, 210,
491 259, 308, 246, 46, 0, 268, 297, 2250, 2250, 2250,
492 25, 2250, 42, 70, 0, 0, 304, 0, 48, 224,
493 337, 386, 389, 438, 441, 444, 493, 496, 545, 532,
494 554, 583, 589, 638, 634, 641, 672, 73, 2250, 691,
495 695, 38, 159, 47, 158, 69, 728, 747, 751, 780,
496 784, 813, 819, 842, 848, 871, 877, 900, 908, 929,
497 937, 958, 81, 966, 987, 52, 158, 155, 69, 154,
499 153, 995, 1018, 1031, 1039, 1070, 1062, 1091, 1120, 1127,
500 1131, 1160, 1171, 1193, 1204, 1164, 1226, 1233, 151, 1237,
501 1266, 142, 138, 134, 134, 132, 132, 124, 115, 1277,
502 1288, 1301, 1322, 1341, 1345, 1374, 1380, 1409, 1430, 1433,
503 1464, 1485, 1488, 1509, 1538, 114, 135, 110, 104, 81,
504 145, 77, 75, 1545, 1549, 1578, 1582, 1589, 1611, 1633,
505 1640, 1644, 1684, 1693, 2250, 68, 2250, 151, 154, 65,
506 2250, 169, 171, 1697, 1728, 1737, 1750, 1772, 1781, 1794,
507 1803, 1825, 2250, 57, 2250, 2250, 53, 2250, 2250, 1834,
508 1847, 1838, 1869, 1878, 1900, 173, 181, 1907, 1929, 1936,
510 1960, 1967, 2250, 2250, 1989, 1996, 2000, 2040, 2051, 2029,
511 2064, 2085, 2108, 2119, 2142, 2148, 2177, 2250, 2240, 89,
515 static yyconst flex_int16_t yy_def[223] =
517 218, 1, 219, 219, 218, 218, 218, 218, 218, 218,
518 218, 218, 220, 218, 218, 218, 221, 222, 221, 19,
519 218, 218, 218, 220, 19, 19, 19, 19, 19, 19,
520 19, 19, 19, 218, 222, 19, 19, 218, 218, 218,
521 218, 218, 218, 218, 220, 222, 19, 222, 19, 19,
522 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
523 19, 19, 19, 19, 19, 19, 19, 218, 218, 19,
524 19, 218, 218, 218, 218, 52, 19, 19, 19, 19,
525 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
526 19, 19, 218, 19, 19, 218, 218, 218, 218, 218,
528 218, 19, 19, 19, 19, 19, 19, 19, 19, 19,
529 19, 19, 19, 19, 19, 19, 19, 19, 218, 19,
530 19, 218, 218, 218, 218, 218, 218, 218, 218, 19,
531 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
532 19, 19, 19, 19, 19, 218, 218, 218, 218, 218,
533 218, 218, 218, 19, 19, 19, 19, 19, 19, 19,
534 19, 19, 19, 19, 218, 218, 218, 218, 218, 218,
535 218, 218, 218, 19, 19, 19, 19, 19, 19, 19,
536 19, 19, 218, 218, 218, 218, 218, 218, 218, 19,
537 19, 19, 19, 19, 19, 218, 218, 19, 19, 19,
539 19, 19, 218, 218, 19, 19, 19, 19, 19, 19,
540 19, 19, 19, 19, 19, 19, 19, 0, 218, 218,
544 static yyconst flex_int16_t yy_nxt[2317] =
546 6, 7, 8, 6, 9, 10, 11, 12, 13, 14,
547 15, 16, 17, 18, 19, 20, 20, 21, 22, 23,
548 24, 25, 17, 17, 17, 26, 17, 27, 17, 28,
549 29, 17, 17, 17, 30, 31, 17, 32, 17, 17,
550 33, 17, 17, 17, 17, 34, 35, 6, 17, 17,
551 17, 17, 17, 17, 17, 36, 17, 17, 37, 17,
552 17, 17, 17, 38, 39, 40, 44, 44, 44, 44,
553 46, 44, 44, 46, 46, 46, 50, 50, 72, 46,
554 46, 73, 68, 46, 47, 47, 47, 68, 68, 46,
555 47, 45, 53, 69, 53, 74, 96, 97, 75, 102,
557 47, 102, 47, 56, 47, 99, 100, 197, 122, 93,
558 47, 196, 57, 123, 93, 93, 46, 119, 187, 53,
559 69, 184, 119, 119, 47, 126, 102, 47, 69, 173,
560 127, 172, 47, 170, 46, 46, 167, 167, 46, 46,
561 46, 47, 47, 47, 46, 46, 171, 171, 46, 49,
562 49, 50, 185, 185, 46, 186, 186, 47, 169, 47,
563 47, 47, 47, 58, 168, 51, 166, 51, 153, 47,
564 188, 188, 189, 189, 203, 203, 47, 52, 47, 59,
565 152, 46, 204, 204, 47, 151, 150, 149, 47, 47,
566 148, 147, 51, 47, 47, 47, 146, 52, 69, 46,
568 47, 47, 47, 47, 60, 129, 128, 125, 47, 47,
569 124, 47, 101, 98, 48, 218, 47, 54, 47, 43,
570 41, 47, 218, 55, 47, 47, 47, 218, 47, 218,
571 218, 218, 218, 218, 218, 218, 47, 218, 50, 50,
572 47, 47, 47, 47, 218, 218, 218, 218, 47, 61,
573 218, 218, 47, 218, 53, 218, 53, 218, 218, 218,
574 47, 47, 47, 218, 218, 218, 47, 47, 218, 218,
575 218, 67, 47, 47, 47, 47, 47, 218, 47, 218,
576 62, 53, 47, 47, 47, 218, 47, 218, 47, 47,
577 218, 47, 218, 218, 218, 63, 218, 218, 47, 218,
579 47, 47, 218, 47, 218, 218, 218, 218, 47, 218,
580 47, 47, 47, 47, 218, 218, 47, 218, 47, 47,
581 47, 47, 47, 47, 47, 47, 70, 47, 218, 47,
582 47, 218, 218, 64, 47, 218, 47, 65, 47, 47,
583 47, 218, 66, 218, 218, 218, 47, 218, 218, 218,
584 47, 47, 47, 47, 47, 218, 218, 71, 218, 47,
585 218, 47, 218, 218, 218, 47, 47, 47, 218, 47,
586 47, 218, 218, 218, 218, 218, 218, 218, 218, 47,
587 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
588 218, 218, 218, 218, 47, 218, 218, 218, 218, 47,
590 76, 76, 76, 47, 47, 47, 218, 76, 76, 76,
591 76, 76, 76, 218, 218, 218, 47, 218, 47, 47,
592 218, 47, 218, 218, 218, 218, 218, 218, 47, 218,
593 218, 47, 218, 218, 218, 76, 76, 76, 76, 76,
594 76, 218, 218, 47, 218, 218, 47, 218, 47, 218,
595 218, 47, 47, 47, 47, 47, 47, 47, 47, 47,
596 47, 218, 218, 218, 218, 218, 218, 77, 47, 218,
597 47, 47, 218, 47, 47, 218, 47, 218, 218, 218,
598 47, 218, 79, 47, 218, 218, 47, 218, 218, 78,
599 218, 218, 218, 218, 218, 47, 218, 218, 47, 218,
601 47, 47, 218, 47, 218, 218, 47, 47, 47, 47,
602 47, 47, 47, 218, 218, 218, 80, 218, 218, 218,
603 218, 218, 218, 47, 218, 47, 47, 218, 47, 218,
604 81, 218, 218, 218, 218, 47, 218, 218, 47, 218,
605 218, 218, 218, 218, 218, 218, 47, 47, 47, 218,
606 47, 218, 218, 47, 218, 47, 218, 84, 47, 47,
607 47, 47, 47, 218, 47, 218, 218, 218, 47, 47,
608 47, 218, 218, 218, 47, 47, 218, 47, 218, 218,
609 82, 218, 218, 83, 47, 218, 47, 47, 218, 47,
610 218, 218, 85, 218, 47, 218, 47, 47, 47, 47,
612 218, 218, 47, 47, 47, 47, 218, 47, 218, 218,
613 86, 47, 218, 47, 218, 47, 47, 218, 218, 47,
614 218, 47, 218, 87, 218, 47, 218, 218, 218, 218,
615 218, 47, 218, 218, 218, 218, 218, 218, 218, 218,
616 47, 218, 218, 218, 218, 47, 47, 218, 47, 47,
617 47, 47, 47, 47, 47, 47, 47, 47, 218, 88,
618 218, 218, 218, 218, 47, 89, 47, 218, 47, 218,
619 47, 47, 218, 47, 218, 218, 47, 91, 90, 218,
620 47, 218, 218, 47, 218, 218, 47, 47, 47, 218,
621 218, 47, 218, 218, 218, 47, 47, 218, 47, 218,
623 47, 218, 47, 47, 47, 47, 47, 47, 92, 47,
624 47, 47, 218, 218, 47, 218, 218, 218, 218, 218,
625 218, 47, 218, 47, 218, 47, 218, 47, 218, 47,
626 218, 218, 218, 47, 47, 218, 218, 47, 218, 218,
627 218, 218, 47, 47, 47, 218, 95, 218, 47, 218,
628 218, 94, 47, 47, 218, 103, 218, 47, 47, 218,
629 47, 47, 47, 47, 218, 47, 47, 47, 218, 218,
630 47, 218, 218, 218, 218, 218, 218, 47, 218, 47,
631 104, 47, 218, 47, 218, 47, 218, 105, 218, 47,
632 47, 218, 218, 47, 47, 47, 47, 218, 47, 47,
634 47, 218, 218, 218, 47, 218, 218, 218, 47, 47,
635 47, 106, 47, 47, 47, 218, 47, 218, 218, 218,
636 218, 218, 47, 107, 218, 218, 47, 47, 47, 47,
637 218, 218, 218, 47, 47, 47, 218, 47, 218, 218,
638 218, 47, 47, 47, 109, 47, 47, 218, 218, 47,
639 218, 47, 108, 218, 218, 47, 47, 47, 47, 218,
640 218, 47, 47, 47, 47, 218, 218, 218, 218, 218,
641 47, 218, 47, 218, 47, 47, 47, 110, 47, 218,
642 47, 47, 218, 111, 47, 47, 47, 47, 218, 218,
643 47, 47, 47, 47, 218, 218, 112, 218, 218, 47,
645 218, 47, 218, 47, 47, 47, 218, 47, 218, 47,
646 47, 218, 218, 47, 47, 47, 47, 113, 218, 47,
647 218, 218, 47, 47, 47, 218, 218, 218, 47, 218,
648 47, 218, 47, 47, 47, 218, 114, 218, 47, 47,
649 115, 218, 47, 47, 47, 47, 218, 218, 218, 218,
650 47, 47, 47, 47, 116, 218, 218, 47, 218, 47,
651 218, 47, 47, 218, 218, 47, 218, 47, 218, 47,
652 47, 47, 47, 47, 47, 117, 218, 218, 218, 47,
653 47, 47, 47, 218, 218, 218, 47, 218, 47, 218,
654 47, 47, 218, 218, 47, 118, 47, 218, 47, 47,
656 47, 47, 47, 47, 218, 218, 218, 218, 47, 47,
657 47, 47, 218, 218, 218, 47, 120, 47, 218, 47,
658 47, 218, 218, 47, 218, 47, 218, 47, 47, 47,
659 218, 218, 47, 47, 47, 218, 121, 47, 218, 218,
660 218, 218, 218, 218, 47, 47, 47, 47, 47, 47,
661 47, 130, 47, 47, 47, 47, 131, 47, 218, 218,
662 47, 47, 218, 47, 218, 218, 218, 218, 218, 47,
663 218, 47, 218, 47, 218, 47, 47, 47, 47, 218,
664 47, 47, 132, 218, 47, 47, 47, 218, 47, 218,
665 218, 218, 47, 47, 47, 218, 47, 134, 218, 218,
667 47, 47, 47, 218, 47, 47, 47, 47, 218, 133,
668 218, 218, 47, 218, 218, 218, 218, 218, 218, 47,
669 218, 47, 218, 47, 47, 218, 218, 47, 218, 135,
670 218, 218, 47, 47, 47, 47, 47, 218, 218, 218,
671 218, 47, 47, 47, 218, 47, 47, 47, 47, 218,
672 47, 218, 47, 47, 218, 218, 136, 47, 218, 47,
673 218, 47, 47, 47, 218, 218, 218, 218, 218, 47,
674 137, 218, 218, 47, 47, 47, 47, 47, 47, 47,
675 47, 218, 47, 218, 47, 47, 47, 47, 47, 47,
676 47, 218, 47, 47, 47, 218, 47, 138, 142, 218,
678 139, 47, 47, 47, 218, 218, 47, 47, 47, 47,
679 218, 218, 218, 47, 218, 218, 140, 47, 47, 47,
680 47, 47, 47, 47, 218, 47, 47, 218, 47, 141,
681 218, 218, 218, 47, 47, 47, 47, 218, 218, 218,
682 47, 47, 47, 218, 218, 218, 47, 47, 47, 47,
683 47, 47, 47, 47, 218, 47, 47, 218, 47, 218,
684 218, 47, 143, 47, 218, 47, 47, 47, 47, 47,
685 218, 218, 218, 218, 218, 47, 218, 218, 218, 47,
686 47, 47, 47, 47, 218, 218, 144, 218, 47, 218,
687 47, 47, 47, 47, 47, 47, 47, 218, 47, 47,
689 218, 218, 47, 47, 47, 218, 218, 47, 47, 47,
690 218, 218, 218, 154, 218, 47, 47, 47, 47, 47,
691 47, 218, 218, 47, 145, 218, 218, 218, 47, 218,
692 47, 47, 218, 47, 47, 218, 47, 47, 47, 47,
693 218, 218, 218, 47, 218, 47, 155, 218, 218, 218,
694 47, 218, 47, 218, 47, 47, 47, 47, 47, 47,
695 47, 47, 218, 47, 47, 218, 218, 218, 218, 218,
696 218, 47, 218, 47, 218, 47, 218, 47, 218, 47,
697 218, 218, 218, 47, 47, 218, 218, 47, 47, 47,
698 47, 218, 218, 218, 47, 47, 47, 218, 47, 218,
700 218, 218, 47, 47, 47, 218, 47, 47, 218, 156,
701 47, 218, 47, 218, 218, 218, 47, 218, 157, 218,
702 218, 218, 47, 47, 47, 47, 218, 218, 218, 218,
703 218, 47, 218, 218, 218, 218, 47, 47, 158, 47,
704 218, 47, 47, 218, 47, 47, 47, 47, 47, 47,
705 218, 47, 218, 218, 159, 218, 218, 218, 218, 218,
706 47, 160, 47, 47, 218, 47, 47, 218, 218, 218,
707 218, 47, 47, 218, 218, 47, 218, 218, 47, 47,
708 47, 218, 218, 218, 218, 218, 218, 47, 218, 218,
709 47, 218, 47, 218, 47, 47, 47, 161, 218, 47,
711 47, 47, 47, 47, 47, 218, 47, 218, 218, 218,
712 218, 162, 218, 218, 218, 47, 218, 47, 47, 218,
713 47, 47, 163, 47, 47, 47, 47, 47, 218, 218,
714 47, 218, 218, 218, 218, 218, 218, 218, 218, 47,
715 218, 47, 47, 218, 218, 47, 218, 47, 218, 218,
716 47, 47, 47, 47, 47, 165, 218, 218, 218, 47,
717 47, 47, 218, 47, 47, 47, 47, 164, 47, 174,
718 47, 47, 218, 218, 175, 47, 218, 47, 218, 47,
719 47, 47, 218, 218, 218, 218, 218, 47, 218, 218,
720 218, 47, 47, 47, 47, 47, 47, 47, 47, 218,
722 47, 218, 47, 47, 47, 47, 47, 47, 47, 218,
723 47, 47, 47, 218, 47, 218, 218, 218, 218, 47,
724 47, 47, 218, 218, 47, 47, 47, 47, 218, 218,
725 176, 47, 218, 177, 218, 47, 178, 218, 218, 47,
726 47, 47, 218, 47, 47, 218, 47, 47, 47, 47,
727 218, 47, 218, 47, 47, 47, 47, 218, 47, 47,
728 47, 218, 218, 47, 218, 47, 218, 218, 47, 218,
729 47, 218, 47, 47, 47, 47, 47, 218, 180, 218,
730 218, 179, 47, 218, 218, 218, 47, 218, 218, 218,
731 47, 218, 181, 218, 218, 47, 218, 47, 47, 47,
733 47, 47, 47, 218, 218, 218, 47, 47, 47, 47,
734 183, 47, 47, 47, 47, 218, 47, 182, 218, 218,
735 218, 218, 190, 47, 218, 47, 47, 47, 218, 47,
736 218, 218, 218, 218, 218, 47, 218, 218, 218, 47,
737 218, 47, 47, 47, 47, 218, 47, 218, 218, 218,
738 47, 47, 47, 47, 47, 47, 218, 218, 47, 47,
739 47, 218, 218, 192, 47, 47, 47, 47, 218, 47,
740 47, 218, 218, 218, 218, 193, 191, 218, 218, 47,
741 47, 218, 47, 218, 218, 47, 47, 47, 47, 218,
742 47, 218, 47, 218, 47, 47, 47, 47, 218, 47,
744 218, 218, 47, 218, 47, 194, 218, 47, 47, 47,
745 47, 47, 47, 47, 47, 218, 218, 47, 47, 47,
746 218, 218, 218, 47, 47, 218, 47, 218, 218, 47,
747 218, 195, 218, 47, 47, 47, 47, 218, 47, 47,
748 47, 47, 218, 47, 218, 47, 218, 218, 47, 47,
749 47, 47, 47, 47, 47, 47, 47, 47, 198, 218,
750 47, 47, 47, 47, 47, 47, 47, 47, 47, 218,
751 47, 218, 200, 199, 218, 218, 47, 47, 218, 47,
752 47, 218, 47, 47, 47, 47, 218, 47, 218, 47,
753 218, 47, 47, 47, 47, 47, 47, 218, 218, 47,
755 47, 47, 218, 218, 47, 218, 218, 201, 47, 47,
756 47, 47, 218, 218, 47, 47, 47, 218, 218, 218,
757 47, 47, 47, 47, 218, 202, 47, 218, 218, 218,
758 47, 47, 47, 218, 218, 47, 218, 47, 218, 47,
759 47, 218, 47, 47, 47, 47, 218, 218, 218, 47,
760 47, 47, 47, 218, 218, 218, 218, 47, 205, 47,
761 218, 47, 47, 218, 47, 218, 47, 218, 47, 47,
762 218, 47, 206, 218, 47, 47, 47, 218, 47, 218,
763 218, 47, 47, 47, 218, 218, 47, 218, 208, 218,
764 47, 47, 47, 47, 218, 218, 207, 47, 47, 47,
766 218, 218, 47, 47, 47, 47, 218, 218, 218, 47,
767 47, 47, 47, 218, 47, 47, 47, 47, 218, 47,
768 209, 47, 47, 218, 47, 218, 47, 218, 210, 47,
769 47, 47, 47, 218, 218, 218, 218, 218, 47, 218,
770 218, 218, 47, 47, 47, 47, 47, 218, 218, 218,
771 213, 47, 218, 47, 47, 47, 47, 47, 47, 47,
772 218, 47, 47, 218, 211, 47, 47, 47, 218, 218,
773 47, 47, 47, 218, 218, 218, 212, 218, 47, 47,
774 47, 47, 47, 47, 218, 218, 47, 218, 218, 214,
775 218, 47, 218, 47, 47, 218, 47, 47, 218, 47,
777 47, 47, 47, 218, 218, 218, 47, 218, 47, 218,
778 218, 218, 218, 47, 218, 47, 218, 47, 218, 218,
779 218, 47, 47, 47, 47, 218, 47, 47, 218, 218,
780 218, 218, 218, 47, 47, 47, 218, 218, 47, 218,
781 47, 218, 47, 218, 218, 218, 215, 47, 218, 47,
782 47, 47, 218, 218, 218, 216, 47, 47, 47, 218,
783 218, 47, 47, 47, 47, 47, 218, 218, 218, 218,
784 47, 218, 47, 218, 47, 218, 47, 218, 47, 218,
785 47, 47, 218, 218, 47, 217, 218, 218, 218, 218,
786 47, 47, 47, 47, 218, 218, 218, 218, 218, 47,
788 218, 218, 218, 218, 47, 47, 218, 47, 218, 47,
789 47, 218, 218, 218, 218, 218, 218, 218, 218, 47,
790 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
791 218, 218, 218, 218, 47, 218, 218, 218, 218, 47,
792 42, 42, 42, 47, 218, 47, 46, 218, 46, 5,
793 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
794 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
795 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
796 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
797 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
799 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
800 218, 218, 218, 218, 218, 218
803 static yyconst flex_int16_t yy_chk[2317] =
805 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
806 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
807 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
808 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
809 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
810 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
811 1, 1, 1, 1, 1, 1, 7, 7, 8, 8,
812 17, 44, 44, 17, 17, 17, 20, 20, 41, 17,
813 17, 41, 34, 17, 26, 26, 26, 34, 34, 17,
814 49, 220, 20, 34, 20, 43, 72, 72, 43, 76,
816 26, 76, 26, 26, 20, 74, 74, 187, 96, 68,
817 49, 184, 26, 96, 68, 68, 17, 93, 170, 20,
818 68, 166, 93, 93, 20, 99, 76, 26, 93, 153,
819 99, 152, 26, 150, 17, 19, 147, 147, 19, 19,
820 19, 27, 27, 27, 19, 19, 151, 151, 19, 19,
821 19, 19, 168, 168, 19, 169, 169, 27, 149, 27,
822 28, 28, 28, 27, 148, 19, 146, 19, 129, 27,
823 172, 172, 173, 173, 196, 196, 28, 19, 28, 28,
824 128, 19, 197, 197, 27, 127, 126, 125, 28, 27,
825 124, 123, 19, 29, 29, 29, 122, 19, 119, 19,
827 25, 25, 25, 28, 29, 101, 100, 98, 28, 29,
828 97, 29, 75, 73, 18, 5, 25, 25, 25, 4,
829 2, 29, 0, 25, 30, 30, 30, 0, 25, 0,
830 0, 0, 0, 0, 0, 0, 29, 0, 50, 50,
831 30, 29, 30, 25, 0, 0, 0, 0, 25, 30,
832 0, 0, 30, 0, 50, 0, 50, 0, 0, 0,
833 33, 33, 33, 0, 0, 0, 50, 30, 0, 0,
834 0, 33, 30, 31, 31, 31, 33, 0, 33, 0,
835 31, 50, 36, 36, 36, 0, 50, 0, 33, 31,
836 0, 31, 0, 0, 0, 31, 0, 0, 36, 0,
838 36, 31, 0, 33, 0, 0, 0, 0, 33, 0,
839 36, 37, 37, 37, 0, 0, 31, 0, 47, 47,
840 47, 31, 32, 32, 32, 36, 36, 37, 0, 37,
841 36, 0, 0, 32, 47, 0, 47, 32, 32, 37,
842 32, 0, 32, 0, 0, 0, 47, 0, 0, 0,
843 32, 51, 51, 51, 37, 0, 0, 37, 0, 37,
844 0, 47, 0, 0, 0, 32, 47, 51, 0, 51,
845 32, 0, 0, 0, 0, 0, 0, 0, 0, 51,
846 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
847 0, 0, 0, 0, 51, 0, 0, 0, 0, 51,
849 52, 52, 52, 53, 53, 53, 0, 52, 52, 52,
850 52, 52, 52, 0, 0, 0, 52, 0, 52, 53,
851 0, 53, 0, 0, 0, 0, 0, 0, 52, 0,
852 0, 53, 0, 0, 0, 52, 52, 52, 52, 52,
853 52, 0, 0, 52, 0, 0, 53, 0, 52, 0,
854 0, 53, 54, 54, 54, 55, 55, 55, 56, 56,
855 56, 0, 0, 0, 0, 0, 0, 54, 54, 0,
856 54, 55, 0, 55, 56, 0, 56, 0, 0, 0,
857 54, 0, 56, 55, 0, 0, 56, 0, 0, 55,
858 0, 0, 0, 0, 0, 54, 0, 0, 55, 0,
860 54, 56, 0, 55, 0, 0, 56, 57, 57, 57,
861 58, 58, 58, 0, 0, 0, 57, 0, 0, 0,
862 0, 0, 0, 57, 0, 57, 58, 0, 58, 0,
863 58, 0, 0, 0, 0, 57, 0, 0, 58, 0,
864 0, 0, 0, 0, 0, 0, 60, 60, 60, 0,
865 57, 0, 0, 58, 0, 57, 0, 60, 58, 59,
866 59, 59, 60, 0, 60, 0, 0, 0, 61, 61,
867 61, 0, 0, 0, 60, 59, 0, 59, 0, 0,
868 59, 0, 0, 59, 61, 0, 61, 59, 0, 60,
869 0, 0, 61, 0, 60, 0, 61, 62, 62, 62,
871 0, 0, 59, 63, 63, 63, 0, 59, 0, 0,
872 62, 61, 0, 62, 0, 62, 61, 0, 0, 63,
873 0, 63, 0, 63, 0, 62, 0, 0, 0, 0,
874 0, 63, 0, 0, 0, 0, 0, 0, 0, 0,
875 62, 0, 0, 0, 0, 62, 63, 0, 65, 65,
876 65, 63, 64, 64, 64, 66, 66, 66, 0, 64,
877 0, 0, 0, 0, 65, 64, 65, 0, 64, 0,
878 64, 66, 0, 66, 0, 0, 65, 66, 65, 0,
879 64, 0, 0, 66, 0, 0, 67, 67, 67, 0,
880 0, 65, 0, 0, 0, 64, 65, 0, 66, 0,
882 64, 0, 67, 66, 67, 70, 70, 70, 67, 71,
883 71, 71, 0, 0, 67, 0, 0, 0, 0, 0,
884 0, 70, 0, 70, 0, 71, 0, 71, 0, 67,
885 0, 0, 0, 70, 67, 0, 0, 71, 0, 0,
886 0, 0, 77, 77, 77, 0, 71, 0, 70, 0,
887 0, 70, 71, 70, 0, 77, 0, 71, 77, 0,
888 77, 78, 78, 78, 0, 79, 79, 79, 0, 0,
889 77, 0, 0, 0, 0, 0, 0, 78, 0, 78,
890 78, 79, 0, 79, 0, 77, 0, 79, 0, 78,
891 77, 0, 0, 79, 80, 80, 80, 0, 81, 81,
893 81, 0, 0, 0, 78, 0, 0, 0, 79, 78,
894 80, 80, 80, 79, 81, 0, 81, 0, 0, 0,
895 0, 0, 80, 81, 0, 0, 81, 82, 82, 82,
896 0, 0, 0, 83, 83, 83, 0, 80, 0, 0,
897 0, 81, 80, 82, 83, 82, 81, 0, 0, 83,
898 0, 83, 82, 0, 0, 82, 84, 84, 84, 0,
899 0, 83, 85, 85, 85, 0, 0, 0, 0, 0,
900 82, 0, 84, 0, 84, 82, 83, 84, 85, 0,
901 85, 83, 0, 85, 84, 86, 86, 86, 0, 0,
902 85, 87, 87, 87, 0, 0, 86, 0, 0, 84,
904 0, 86, 0, 86, 84, 85, 0, 87, 0, 87,
905 85, 0, 0, 86, 88, 88, 88, 87, 0, 87,
906 0, 0, 89, 89, 89, 0, 0, 0, 86, 0,
907 88, 0, 88, 86, 87, 0, 88, 0, 89, 87,
908 89, 0, 88, 90, 90, 90, 0, 0, 0, 0,
909 89, 91, 91, 91, 90, 0, 0, 88, 0, 90,
910 0, 90, 88, 0, 0, 89, 0, 91, 0, 91,
911 89, 90, 92, 92, 92, 91, 0, 0, 0, 91,
912 94, 94, 94, 0, 0, 0, 90, 0, 92, 0,
913 92, 90, 0, 0, 91, 92, 94, 0, 94, 91,
915 92, 95, 95, 95, 0, 0, 0, 0, 94, 102,
916 102, 102, 0, 0, 0, 92, 94, 95, 0, 95,
917 92, 0, 0, 94, 0, 102, 0, 102, 94, 95,
918 0, 0, 103, 103, 103, 0, 95, 102, 0, 0,
919 0, 0, 0, 0, 95, 104, 104, 104, 103, 95,
920 103, 103, 102, 105, 105, 105, 104, 102, 0, 0,
921 103, 104, 0, 104, 0, 0, 0, 0, 0, 105,
922 0, 105, 0, 104, 0, 103, 107, 107, 107, 0,
923 103, 105, 105, 0, 106, 106, 106, 0, 104, 0,
924 0, 0, 107, 104, 107, 0, 105, 107, 0, 0,
926 106, 105, 106, 0, 107, 108, 108, 108, 0, 106,
927 0, 0, 106, 0, 0, 0, 0, 0, 0, 107,
928 0, 108, 0, 108, 107, 0, 0, 106, 0, 108,
929 0, 0, 106, 108, 109, 109, 109, 0, 0, 0,
930 0, 110, 110, 110, 0, 111, 111, 111, 108, 0,
931 109, 0, 109, 108, 0, 0, 109, 110, 0, 110,
932 0, 111, 109, 111, 0, 0, 0, 0, 0, 110,
933 111, 0, 0, 111, 112, 112, 112, 109, 116, 116,
934 116, 0, 109, 0, 110, 113, 113, 113, 111, 110,
935 112, 0, 112, 111, 116, 0, 116, 112, 116, 0,
937 113, 113, 112, 113, 0, 0, 116, 114, 114, 114,
938 0, 0, 0, 113, 0, 0, 114, 112, 115, 115,
939 115, 116, 112, 114, 0, 114, 116, 0, 113, 115,
940 0, 0, 0, 113, 115, 114, 115, 0, 0, 0,
941 117, 117, 117, 0, 0, 0, 115, 118, 118, 118,
942 114, 120, 120, 120, 0, 114, 117, 0, 117, 0,
943 0, 115, 118, 118, 0, 118, 115, 120, 117, 120,
944 0, 0, 0, 0, 0, 118, 0, 0, 0, 120,
945 121, 121, 121, 117, 0, 0, 120, 0, 117, 0,
946 118, 130, 130, 130, 120, 118, 121, 0, 121, 120,
948 0, 0, 131, 131, 131, 0, 0, 130, 121, 130,
949 0, 0, 0, 131, 0, 132, 132, 132, 131, 130,
950 131, 0, 0, 121, 121, 0, 0, 0, 121, 0,
951 131, 132, 0, 132, 130, 0, 133, 133, 133, 130,
952 0, 0, 0, 132, 0, 131, 133, 0, 0, 0,
953 131, 0, 133, 0, 133, 134, 134, 134, 132, 135,
954 135, 135, 0, 132, 133, 0, 0, 0, 0, 0,
955 0, 134, 0, 134, 0, 135, 0, 135, 0, 133,
956 0, 0, 0, 134, 133, 0, 0, 135, 136, 136,
957 136, 0, 0, 0, 137, 137, 137, 0, 134, 0,
959 0, 0, 135, 134, 136, 0, 136, 135, 0, 136,
960 137, 0, 137, 0, 0, 0, 136, 0, 137, 0,
961 0, 0, 137, 138, 138, 138, 0, 0, 0, 0,
962 0, 136, 0, 0, 0, 0, 136, 137, 138, 138,
963 0, 138, 137, 0, 139, 139, 139, 140, 140, 140,
964 0, 138, 0, 0, 139, 0, 0, 0, 0, 0,
965 139, 140, 139, 140, 0, 140, 138, 0, 0, 0,
966 0, 138, 139, 0, 0, 140, 0, 0, 141, 141,
967 141, 0, 0, 0, 0, 0, 0, 139, 0, 0,
968 140, 0, 139, 0, 141, 140, 141, 141, 0, 142,
970 142, 142, 143, 143, 143, 0, 141, 0, 0, 0,
971 0, 142, 0, 0, 0, 142, 0, 142, 143, 0,
972 143, 141, 143, 144, 144, 144, 141, 142, 0, 0,
973 143, 0, 0, 0, 0, 0, 0, 0, 0, 144,
974 0, 144, 142, 0, 0, 143, 0, 142, 0, 0,
975 143, 144, 145, 145, 145, 145, 0, 0, 0, 154,
976 154, 154, 0, 155, 155, 155, 144, 144, 145, 154,
977 145, 144, 0, 0, 155, 154, 0, 154, 0, 155,
978 145, 155, 0, 0, 0, 0, 0, 154, 0, 0,
979 0, 155, 156, 156, 156, 145, 157, 157, 157, 0,
981 145, 0, 154, 158, 158, 158, 155, 154, 156, 0,
982 156, 155, 157, 0, 157, 0, 0, 0, 0, 158,
983 156, 158, 0, 0, 157, 159, 159, 159, 0, 0,
984 157, 158, 0, 158, 0, 156, 159, 0, 0, 157,
985 156, 159, 0, 159, 157, 0, 158, 160, 160, 160,
986 0, 158, 0, 159, 161, 161, 161, 0, 162, 162,
987 162, 0, 0, 160, 0, 160, 0, 0, 159, 0,
988 161, 0, 161, 159, 162, 160, 162, 0, 161, 0,
989 0, 160, 161, 0, 0, 0, 162, 0, 0, 0,
990 160, 0, 162, 0, 0, 160, 0, 161, 163, 163,
992 163, 162, 161, 0, 0, 0, 162, 164, 164, 164,
993 164, 174, 174, 174, 163, 0, 163, 163, 0, 0,
994 0, 0, 174, 164, 0, 164, 163, 174, 0, 174,
995 0, 0, 0, 0, 0, 164, 0, 0, 0, 174,
996 0, 163, 175, 175, 175, 0, 163, 0, 0, 0,
997 164, 176, 176, 176, 174, 164, 0, 0, 175, 174,
998 175, 0, 0, 176, 177, 177, 177, 176, 0, 176,
999 175, 0, 0, 0, 0, 177, 175, 0, 0, 176,
1000 177, 0, 177, 0, 0, 175, 178, 178, 178, 0,
1001 175, 0, 177, 0, 176, 179, 179, 179, 0, 176,
1003 0, 0, 178, 0, 178, 179, 0, 177, 180, 180,
1004 180, 179, 177, 179, 178, 0, 0, 181, 181, 181,
1005 0, 0, 0, 179, 180, 0, 180, 0, 0, 178,
1006 0, 181, 0, 181, 178, 181, 180, 0, 179, 182,
1007 182, 182, 0, 179, 0, 181, 0, 0, 190, 190,
1008 190, 180, 192, 192, 192, 182, 180, 182, 190, 0,
1009 181, 191, 191, 191, 190, 181, 190, 182, 192, 0,
1010 192, 0, 192, 191, 0, 0, 190, 191, 0, 191,
1011 192, 0, 182, 193, 193, 193, 0, 182, 0, 191,
1012 0, 190, 194, 194, 194, 192, 190, 0, 0, 193,
1014 192, 193, 0, 0, 191, 0, 0, 194, 194, 191,
1015 194, 193, 0, 0, 195, 195, 195, 0, 0, 0,
1016 194, 198, 198, 198, 0, 195, 193, 0, 0, 0,
1017 195, 193, 195, 0, 0, 194, 0, 198, 0, 198,
1018 194, 0, 195, 199, 199, 199, 0, 0, 0, 198,
1019 200, 200, 200, 0, 0, 0, 0, 195, 199, 199,
1020 0, 199, 195, 0, 198, 0, 200, 0, 200, 198,
1021 0, 199, 200, 0, 201, 201, 201, 0, 200, 0,
1022 0, 202, 202, 202, 0, 0, 199, 0, 202, 0,
1023 201, 199, 201, 200, 0, 0, 201, 202, 200, 202,
1025 0, 0, 201, 205, 205, 205, 0, 0, 0, 202,
1026 206, 206, 206, 0, 207, 207, 207, 201, 0, 205,
1027 205, 205, 201, 0, 202, 0, 206, 0, 206, 202,
1028 207, 205, 207, 0, 0, 0, 0, 0, 206, 0,
1029 0, 0, 207, 210, 210, 210, 205, 0, 0, 0,
1030 210, 205, 0, 206, 208, 208, 208, 207, 206, 210,
1031 0, 210, 207, 0, 208, 209, 209, 209, 0, 0,
1032 208, 210, 208, 0, 0, 0, 209, 0, 211, 211,
1033 211, 209, 208, 209, 0, 0, 210, 0, 0, 211,
1034 0, 210, 0, 209, 211, 0, 211, 208, 0, 212,
1036 212, 212, 208, 0, 0, 0, 211, 0, 209, 0,
1037 0, 0, 0, 209, 0, 212, 0, 212, 0, 0,
1038 0, 211, 213, 213, 213, 0, 211, 212, 0, 0,
1039 0, 0, 0, 214, 214, 214, 0, 0, 213, 0,
1040 213, 0, 212, 0, 0, 0, 213, 212, 0, 214,
1041 213, 214, 0, 0, 0, 214, 215, 215, 215, 0,
1042 0, 214, 216, 216, 216, 213, 0, 0, 0, 0,
1043 213, 0, 215, 0, 215, 0, 214, 0, 216, 0,
1044 216, 214, 0, 0, 215, 216, 0, 0, 0, 0,
1045 216, 217, 217, 217, 0, 0, 0, 0, 0, 215,
1047 0, 0, 0, 0, 215, 216, 0, 217, 0, 217,
1048 216, 0, 0, 0, 0, 0, 0, 0, 0, 217,
1049 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, 0, 217, 0, 0, 0, 0, 217,
1051 219, 219, 219, 221, 0, 221, 222, 0, 222, 218,
1052 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
1053 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
1054 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
1055 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
1056 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
1058 218, 218, 218, 218, 218, 218, 218, 218, 218, 218,
1059 218, 218, 218, 218, 218, 218
1062 /* Table of booleans, true if rule could match eol. */
1063 static yyconst flex_int32_t yy_rule_can_match_eol[51] =
1065 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1067 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, };
1069 static yy_state_type yy_last_accepting_state;
1070 static char *yy_last_accepting_cpos;
1072 extern int ld_flex_debug;
1073 int ld_flex_debug = 0;
1075 /* The intent behind this definition is that it'll catch
1076 * any uses of REJECT which flex missed.
1078 #define REJECT reject_used_but_not_detected
1079 #define yymore() yymore_used_but_not_detected
1080 #define YY_MORE_ADJ 0
1081 #define YY_RESTORE_YY_MORE_OFFSET
1083 #line 1 "/home/mark/src/elfutils/src/ldlex.l"
1084 #line 2 "/home/mark/src/elfutils/src/ldlex.l"
1085 /* Copyright (C) 2001, 2002, 2003, 2004, 2005, 2008 Red Hat, Inc.
1086 This file is part of elfutils.
1087 Written by Ulrich Drepper <drepper@redhat.com>, 2001.
1089 This file is free software; you can redistribute it and/or modify
1090 it under the terms of the GNU General Public License as published by
1091 the Free Software Foundation; either version 3 of the License, or
1092 (at your option) any later version.
1094 elfutils is distributed in the hope that it will be useful, but
1095 WITHOUT ANY WARRANTY; without even the implied warranty of
1096 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1097 GNU General Public License for more details.
1099 You should have received a copy of the GNU General Public License
1100 along with this program. If not, see <http://www.gnu.org/licenses/>. */
1102 #ifdef HAVE_CONFIG_H
1103 # include <config.h>
1110 #include <inttypes.h>
1111 #include <libintl.h>
1112 #include <stdbool.h>
1118 #include "ldscript.h"
1120 /* We sure use no threads to read the stream, so use the _unlocked
1121 variants of the functions. */
1123 #define getc(s) getc_unlocked (s)
1125 #define ferror(s) ferror_unlocked (s)
1127 #define fread(b, m, n, s) fread_unlocked (b, m, n, s)
1129 #define fwrite(b, m, n, s) fwrite_unlocked (b, m, n, s)
1131 /* ECHO must be redefined since the default implementation ignores
1132 the return value of fwrite_unlocked. */
1133 #define ECHO do { size_t n__ __attribute__ ((unused)) \
1134 = fwrite (ldtext, ldleng, 1, ldout); } while (0)
1136 /* Defined in ld.c. */
1137 extern int ld_scan_version_script;
1139 #define MAX_PREPDEPTH 20
1140 static enum prepstate
1145 } prepstate[MAX_PREPDEPTH];
1146 static int prepdepth;
1148 static void eat_comment (void);
1149 static void eat_to_eol (bool empty);
1150 static int attrib_convert (int c);
1151 static void push_state (enum prepstate);
1152 static int pop_state (void);
1153 static int handle_ifdef (void);
1154 static void invalid_char (int ch);
1156 #line 1157 "ldlex.c"
1161 #ifndef YY_NO_UNISTD_H
1162 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1163 * down here because we want the user's section 1 to have been scanned first.
1164 * The user has a chance to override it with an option.
1169 #ifndef YY_EXTRA_TYPE
1170 #define YY_EXTRA_TYPE void *
1173 static int yy_init_globals (void );
1175 /* Accessor methods to globals.
1176 These are made visible to non-reentrant scanners for convenience. */
1178 int ldlex_destroy (void );
1180 int ldget_debug (void );
1182 void ldset_debug (int debug_flag );
1184 YY_EXTRA_TYPE ldget_extra (void );
1186 void ldset_extra (YY_EXTRA_TYPE user_defined );
1188 FILE *ldget_in (void );
1190 void ldset_in (FILE * in_str );
1192 FILE *ldget_out (void );
1194 void ldset_out (FILE * out_str );
1196 yy_size_t ldget_leng (void );
1198 char *ldget_text (void );
1200 int ldget_lineno (void );
1202 void ldset_lineno (int line_number );
1204 /* Macros after this point can all be overridden by user definitions in
1208 #ifndef YY_SKIP_YYWRAP
1210 extern "C" int ldwrap (void );
1212 extern int ldwrap (void );
1216 static void yyunput (int c,char *buf_ptr );
1219 static void yy_flex_strncpy (char *,yyconst char *,int );
1222 #ifdef YY_NEED_STRLEN
1223 static int yy_flex_strlen (yyconst char * );
1229 static int yyinput (void );
1231 static int input (void );
1236 /* Amount of stuff to slurp up with each read. */
1237 #ifndef YY_READ_BUF_SIZE
1238 #define YY_READ_BUF_SIZE 8192
1241 /* Copy whatever the last rule matched to the standard output. */
1243 /* This used to be an fputs(), but since the string might contain NUL's,
1244 * we now use fwrite().
1246 #define ECHO do { if (fwrite( ldtext, ldleng, 1, ldout )) {} } while (0)
1249 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1250 * is returned in "result".
1253 #define YY_INPUT(buf,result,max_size) \
1254 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1258 for ( n = 0; n < max_size && \
1259 (c = getc( ldin )) != EOF && c != '\n'; ++n ) \
1260 buf[n] = (char) c; \
1262 buf[n++] = (char) c; \
1263 if ( c == EOF && ferror( ldin ) ) \
1264 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1270 while ( (result = fread(buf, 1, max_size, ldin))==0 && ferror(ldin)) \
1272 if( errno != EINTR) \
1274 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1285 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1286 * we don't want an extra ';' after the "return" because that will cause
1287 * some compilers to complain about unreachable statements.
1290 #define yyterminate() return YY_NULL
1293 /* Number of entries by which start-condition stack grows. */
1294 #ifndef YY_START_STACK_INCR
1295 #define YY_START_STACK_INCR 25
1298 /* Report a fatal error. */
1299 #ifndef YY_FATAL_ERROR
1300 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1303 /* end tables serialization structures and prototypes */
1305 /* Default declaration of generated scanner - a define so the user can
1306 * easily add parameters.
1309 #define YY_DECL_IS_OURS 1
1311 extern int ldlex (void);
1313 #define YY_DECL int ldlex (void)
1314 #endif /* !YY_DECL */
1316 /* Code executed at the beginning of each rule, after ldtext and ldleng
1319 #ifndef YY_USER_ACTION
1320 #define YY_USER_ACTION
1323 /* Code executed at the end of each rule. */
1325 #define YY_BREAK break;
1328 #define YY_RULE_SETUP \
1330 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1331 (ldtext[ldleng - 1] == '\n'); \
1334 /** The main scanner function which does all the work.
1338 register yy_state_type yy_current_state;
1339 register char *yy_cp, *yy_bp;
1340 register int yy_act;
1351 (yy_start) = 1; /* first start state */
1359 if ( ! YY_CURRENT_BUFFER ) {
1360 ldensure_buffer_stack ();
1361 YY_CURRENT_BUFFER_LVALUE =
1362 ld_create_buffer(ldin,YY_BUF_SIZE );
1365 ld_load_buffer_state( );
1369 #line 88 "/home/mark/src/elfutils/src/ldlex.l"
1371 if (unlikely (ld_scan_version_script))
1373 ld_scan_version_script = -1;
1374 return kVERSION_SCRIPT;
1377 #line 1378 "ldlex.c"
1379 while ( 1 ) /* loops until end-of-file is reached */
1381 yy_cp = (yy_c_buf_p);
1383 /* Support of ldtext. */
1384 *yy_cp = (yy_hold_char);
1386 /* yy_bp points to the position in yy_ch_buf of the start of
1391 yy_current_state = (yy_start);
1392 yy_current_state += YY_AT_BOL();
1396 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1397 if ( yy_accept[yy_current_state] )
1399 (yy_last_accepting_state) = yy_current_state;
1400 (yy_last_accepting_cpos) = yy_cp;
1402 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1404 yy_current_state = (int) yy_def[yy_current_state];
1405 if ( yy_current_state >= 219 )
1406 yy_c = yy_meta[(unsigned int) yy_c];
1408 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1411 while ( yy_current_state != 218 );
1412 yy_cp = (yy_last_accepting_cpos);
1413 yy_current_state = (yy_last_accepting_state);
1416 yy_act = yy_accept[yy_current_state];
1418 YY_DO_BEFORE_ACTION;
1420 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
1423 for ( yyl = 0; yyl < ldleng; ++yyl )
1424 if ( ldtext[yyl] == '\n' )
1430 do_action: /* This label is used only to access EOF actions. */
1433 { /* beginning of action switch */
1434 case 0: /* must back up */
1435 /* undo the effects of YY_DO_BEFORE_ACTION */
1436 *yy_cp = (yy_hold_char);
1437 yy_cp = (yy_last_accepting_cpos);
1438 yy_current_state = (yy_last_accepting_state);
1439 goto yy_find_action;
1442 /* rule 1 can match eol */
1443 *yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
1444 YY_LINENO_REWIND_TO(yy_bp + 6);
1445 (yy_c_buf_p) = yy_cp = yy_bp + 6;
1446 YY_DO_BEFORE_ACTION; /* set up ldtext again */
1448 #line 95 "/home/mark/src/elfutils/src/ldlex.l"
1449 { BEGIN (handle_ifdef ()); }
1452 /* rule 2 can match eol */
1453 *yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
1454 YY_LINENO_REWIND_TO(yy_bp + 5);
1455 (yy_c_buf_p) = yy_cp = yy_bp + 5;
1456 YY_DO_BEFORE_ACTION; /* set up ldtext again */
1458 #line 96 "/home/mark/src/elfutils/src/ldlex.l"
1459 { eat_to_eol (true);
1460 push_state (skip_to_endif);
1464 /* rule 3 can match eol */
1465 *yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
1466 YY_LINENO_REWIND_TO(yy_bp + 8);
1467 (yy_c_buf_p) = yy_cp = yy_bp + 8;
1468 YY_DO_BEFORE_ACTION; /* set up ldtext again */
1470 #line 99 "/home/mark/src/elfutils/src/ldlex.l"
1471 { eat_to_eol (false);
1472 push_state (skip_to_endif);
1476 /* rule 4 can match eol */
1477 *yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
1478 YY_LINENO_REWIND_TO(yy_bp + 6);
1479 (yy_c_buf_p) = yy_cp = yy_bp + 6;
1480 YY_DO_BEFORE_ACTION; /* set up ldtext again */
1482 #line 102 "/home/mark/src/elfutils/src/ldlex.l"
1483 { eat_to_eol (true) ; }
1486 /* rule 5 can match eol */
1487 *yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
1488 YY_LINENO_REWIND_TO(yy_bp + 6);
1489 (yy_c_buf_p) = yy_cp = yy_bp + 6;
1490 YY_DO_BEFORE_ACTION; /* set up ldtext again */
1492 #line 104 "/home/mark/src/elfutils/src/ldlex.l"
1493 { eat_to_eol (false);
1494 push_state (skip_to_endif); }
1497 /* rule 6 can match eol */
1498 *yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
1499 YY_LINENO_REWIND_TO(yy_bp + 5);
1500 (yy_c_buf_p) = yy_cp = yy_bp + 5;
1501 YY_DO_BEFORE_ACTION; /* set up ldtext again */
1503 #line 106 "/home/mark/src/elfutils/src/ldlex.l"
1504 { eat_to_eol (true);
1505 assert (prepdepth > 0);
1506 if (prepstate[prepdepth - 1] == skip_if)
1508 /* Back to normal processing. */
1509 assert (prepdepth == 1);
1510 BEGIN (pop_state ());
1515 /* rule 7 can match eol */
1516 *yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
1517 YY_LINENO_REWIND_TO(yy_bp + 8);
1518 (yy_c_buf_p) = yy_cp = yy_bp + 8;
1519 YY_DO_BEFORE_ACTION; /* set up ldtext again */
1521 #line 115 "/home/mark/src/elfutils/src/ldlex.l"
1522 { assert (prepdepth > 0);
1523 if (prepstate[prepdepth - 1] == skip_if)
1525 /* Maybe this symbol is defined. */
1527 BEGIN (handle_ifdef ());
1532 /* rule 8 can match eol */
1533 *yy_cp = (yy_hold_char); /* undo effects of setting up ldtext */
1534 YY_LINENO_REWIND_TO(yy_bp + 6);
1535 (yy_c_buf_p) = yy_cp = yy_bp + 6;
1536 YY_DO_BEFORE_ACTION; /* set up ldtext again */
1538 #line 123 "/home/mark/src/elfutils/src/ldlex.l"
1539 { eat_to_eol (true);
1540 BEGIN (pop_state ()); }
1543 /* rule 9 can match eol */
1545 #line 125 "/home/mark/src/elfutils/src/ldlex.l"
1550 #line 128 "/home/mark/src/elfutils/src/ldlex.l"
1555 #line 130 "/home/mark/src/elfutils/src/ldlex.l"
1560 #line 131 "/home/mark/src/elfutils/src/ldlex.l"
1561 { return kAS_NEEDED; }
1565 #line 132 "/home/mark/src/elfutils/src/ldlex.l"
1570 #line 133 "/home/mark/src/elfutils/src/ldlex.l"
1571 { return kEXCLUDE_FILE; }
1575 #line 134 "/home/mark/src/elfutils/src/ldlex.l"
1580 #line 135 "/home/mark/src/elfutils/src/ldlex.l"
1585 #line 136 "/home/mark/src/elfutils/src/ldlex.l"
1590 #line 137 "/home/mark/src/elfutils/src/ldlex.l"
1595 #line 138 "/home/mark/src/elfutils/src/ldlex.l"
1600 #line 139 "/home/mark/src/elfutils/src/ldlex.l"
1605 #line 140 "/home/mark/src/elfutils/src/ldlex.l"
1606 { return kOUTPUT_FORMAT; }
1610 #line 141 "/home/mark/src/elfutils/src/ldlex.l"
1611 { return kPAGESIZE; }
1615 #line 142 "/home/mark/src/elfutils/src/ldlex.l"
1616 { return kPROVIDE; }
1620 #line 143 "/home/mark/src/elfutils/src/ldlex.l"
1621 { return kSEARCH_DIR; }
1625 #line 144 "/home/mark/src/elfutils/src/ldlex.l"
1626 { return kSEGMENT; }
1630 #line 145 "/home/mark/src/elfutils/src/ldlex.l"
1631 { return kSIZEOF_HEADERS; }
1635 #line 146 "/home/mark/src/elfutils/src/ldlex.l"
1640 #line 147 "/home/mark/src/elfutils/src/ldlex.l"
1641 { return kVERSION; }
1645 #line 149 "/home/mark/src/elfutils/src/ldlex.l"
1646 { unsigned int cnt = 1 ;
1648 while (cnt < ldleng - 1)
1649 ldlval.num |= attrib_convert (ldtext[cnt++]);
1654 #line 155 "/home/mark/src/elfutils/src/ldlex.l"
1659 #line 156 "/home/mark/src/elfutils/src/ldlex.l"
1664 #line 157 "/home/mark/src/elfutils/src/ldlex.l"
1669 #line 158 "/home/mark/src/elfutils/src/ldlex.l"
1674 #line 159 "/home/mark/src/elfutils/src/ldlex.l"
1679 #line 160 "/home/mark/src/elfutils/src/ldlex.l"
1684 #line 161 "/home/mark/src/elfutils/src/ldlex.l"
1689 #line 162 "/home/mark/src/elfutils/src/ldlex.l"
1690 { ldlval.op = exp_plus; return kADD_OP; }
1694 #line 163 "/home/mark/src/elfutils/src/ldlex.l"
1695 { ldlval.op = exp_minus; return kADD_OP; }
1699 #line 164 "/home/mark/src/elfutils/src/ldlex.l"
1704 #line 165 "/home/mark/src/elfutils/src/ldlex.l"
1705 { ldlval.op = exp_div; return kMUL_OP; }
1709 #line 166 "/home/mark/src/elfutils/src/ldlex.l"
1710 { ldlval.op = exp_mod; return kMUL_OP; }
1714 #line 167 "/home/mark/src/elfutils/src/ldlex.l"
1719 #line 168 "/home/mark/src/elfutils/src/ldlex.l"
1724 #line 170 "/home/mark/src/elfutils/src/ldlex.l"
1729 #line 172 "/home/mark/src/elfutils/src/ldlex.l"
1731 ldlval.num = strtoumax (ldtext, &endp, 0);
1734 if (tolower (*endp) == 'k')
1738 assert (tolower (*endp) == 'm');
1739 ldlval.num *= 1024 * 1024;
1746 #line 186 "/home/mark/src/elfutils/src/ldlex.l"
1747 { ldlval.str = obstack_strndup (&ld_state.smem,
1753 #line 190 "/home/mark/src/elfutils/src/ldlex.l"
1754 { ldlval.str = obstack_strndup (&ld_state.smem,
1759 /* rule 48 can match eol */
1761 #line 194 "/home/mark/src/elfutils/src/ldlex.l"
1766 #line 196 "/home/mark/src/elfutils/src/ldlex.l"
1767 { invalid_char (*ldtext); }
1771 #line 198 "/home/mark/src/elfutils/src/ldlex.l"
1774 #line 1775 "ldlex.c"
1775 case YY_STATE_EOF(INITIAL):
1776 case YY_STATE_EOF(IGNORE):
1779 case YY_END_OF_BUFFER:
1781 /* Amount of text matched not including the EOB char. */
1782 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1784 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1785 *yy_cp = (yy_hold_char);
1786 YY_RESTORE_YY_MORE_OFFSET
1788 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1790 /* We're scanning a new file or input source. It's
1791 * possible that this happened because the user
1792 * just pointed ldin at a new source and called
1793 * ldlex(). If so, then we have to assure
1794 * consistency between YY_CURRENT_BUFFER and our
1795 * globals. Here is the right place to do so, because
1796 * this is the first action (other than possibly a
1797 * back-up) that will match for the new input source.
1799 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1800 YY_CURRENT_BUFFER_LVALUE->yy_input_file = ldin;
1801 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1804 /* Note that here we test for yy_c_buf_p "<=" to the position
1805 * of the first EOB in the buffer, since yy_c_buf_p will
1806 * already have been incremented past the NUL character
1807 * (since all states make transitions on EOB to the
1808 * end-of-buffer state). Contrast this with the test
1811 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1812 { /* This was really a NUL. */
1813 yy_state_type yy_next_state;
1815 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1817 yy_current_state = yy_get_previous_state( );
1819 /* Okay, we're now positioned to make the NUL
1820 * transition. We couldn't have
1821 * yy_get_previous_state() go ahead and do it
1822 * for us because it doesn't know how to deal
1823 * with the possibility of jamming (and we don't
1824 * want to build jamming into it because then it
1825 * will run more slowly).
1828 yy_next_state = yy_try_NUL_trans( yy_current_state );
1830 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1832 if ( yy_next_state )
1834 /* Consume the NUL. */
1835 yy_cp = ++(yy_c_buf_p);
1836 yy_current_state = yy_next_state;
1842 yy_cp = (yy_last_accepting_cpos);
1843 yy_current_state = (yy_last_accepting_state);
1844 goto yy_find_action;
1848 else switch ( yy_get_next_buffer( ) )
1850 case EOB_ACT_END_OF_FILE:
1852 (yy_did_buffer_switch_on_eof) = 0;
1856 /* Note: because we've taken care in
1857 * yy_get_next_buffer() to have set up
1858 * ldtext, we can now set up
1859 * yy_c_buf_p so that if some total
1860 * hoser (like flex itself) wants to
1861 * call the scanner after we return the
1862 * YY_NULL, it'll still work - another
1863 * YY_NULL will get returned.
1865 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1867 yy_act = YY_STATE_EOF(YY_START);
1873 if ( ! (yy_did_buffer_switch_on_eof) )
1879 case EOB_ACT_CONTINUE_SCAN:
1881 (yytext_ptr) + yy_amount_of_matched_text;
1883 yy_current_state = yy_get_previous_state( );
1885 yy_cp = (yy_c_buf_p);
1886 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1889 case EOB_ACT_LAST_MATCH:
1891 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1893 yy_current_state = yy_get_previous_state( );
1895 yy_cp = (yy_c_buf_p);
1896 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1897 goto yy_find_action;
1904 "fatal flex scanner internal error--no action found" );
1905 } /* end of action switch */
1906 } /* end of scanning one token */
1907 } /* end of user's declarations */
1908 } /* end of ldlex */
1910 /* yy_get_next_buffer - try to read in a new buffer
1912 * Returns a code representing an action:
1913 * EOB_ACT_LAST_MATCH -
1914 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1915 * EOB_ACT_END_OF_FILE - end of file
1917 static int yy_get_next_buffer (void)
1919 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1920 register char *source = (yytext_ptr);
1921 register int number_to_move, i;
1924 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1926 "fatal flex scanner internal error--end of buffer missed" );
1928 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1929 { /* Don't try to fill the buffer, so this is an EOF. */
1930 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1932 /* We matched a single character, the EOB, so
1933 * treat this as a final EOF.
1935 return EOB_ACT_END_OF_FILE;
1940 /* We matched some text prior to the EOB, first
1943 return EOB_ACT_LAST_MATCH;
1947 /* Try to read more data. */
1949 /* First move last chars to start of buffer. */
1950 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1952 for ( i = 0; i < number_to_move; ++i )
1953 *(dest++) = *(source++);
1955 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1956 /* don't do the read, it's not guaranteed to return an EOF,
1959 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1963 yy_size_t num_to_read =
1964 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1966 while ( num_to_read <= 0 )
1967 { /* Not enough room in the buffer - grow it. */
1969 /* just a shorter name for the current buffer */
1970 YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1972 int yy_c_buf_p_offset =
1973 (int) ((yy_c_buf_p) - b->yy_ch_buf);
1975 if ( b->yy_is_our_buffer )
1977 yy_size_t new_size = b->yy_buf_size * 2;
1979 if ( new_size <= 0 )
1980 b->yy_buf_size += b->yy_buf_size / 8;
1982 b->yy_buf_size *= 2;
1984 b->yy_ch_buf = (char *)
1985 /* Include room in for 2 EOB chars. */
1986 ldrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
1989 /* Can't grow it, we don't own it. */
1992 if ( ! b->yy_ch_buf )
1994 "fatal error - scanner input buffer overflow" );
1996 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1998 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2003 if ( num_to_read > YY_READ_BUF_SIZE )
2004 num_to_read = YY_READ_BUF_SIZE;
2006 /* Read in more data. */
2007 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2008 (yy_n_chars), num_to_read );
2010 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2013 if ( (yy_n_chars) == 0 )
2015 if ( number_to_move == YY_MORE_ADJ )
2017 ret_val = EOB_ACT_END_OF_FILE;
2023 ret_val = EOB_ACT_LAST_MATCH;
2024 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2025 YY_BUFFER_EOF_PENDING;
2030 ret_val = EOB_ACT_CONTINUE_SCAN;
2032 if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2033 /* Extend the array by 50%, plus the number we really need. */
2034 yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
2035 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) ldrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
2036 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2037 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2040 (yy_n_chars) += number_to_move;
2041 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2042 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2044 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2049 /* yy_get_previous_state - get the state just before the EOB char was reached */
2051 static yy_state_type yy_get_previous_state (void)
2053 register yy_state_type yy_current_state;
2054 register char *yy_cp;
2056 yy_current_state = (yy_start);
2057 yy_current_state += YY_AT_BOL();
2059 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2061 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2062 if ( yy_accept[yy_current_state] )
2064 (yy_last_accepting_state) = yy_current_state;
2065 (yy_last_accepting_cpos) = yy_cp;
2067 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2069 yy_current_state = (int) yy_def[yy_current_state];
2070 if ( yy_current_state >= 219 )
2071 yy_c = yy_meta[(unsigned int) yy_c];
2073 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2076 return yy_current_state;
2079 /* yy_try_NUL_trans - try to make a transition on the NUL character
2082 * next_state = yy_try_NUL_trans( current_state );
2084 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2086 register int yy_is_jam;
2087 register char *yy_cp = (yy_c_buf_p);
2089 register YY_CHAR yy_c = 1;
2090 if ( yy_accept[yy_current_state] )
2092 (yy_last_accepting_state) = yy_current_state;
2093 (yy_last_accepting_cpos) = yy_cp;
2095 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2097 yy_current_state = (int) yy_def[yy_current_state];
2098 if ( yy_current_state >= 219 )
2099 yy_c = yy_meta[(unsigned int) yy_c];
2101 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2102 yy_is_jam = (yy_current_state == 218);
2104 return yy_is_jam ? 0 : yy_current_state;
2107 static void yyunput (int c, register char * yy_bp )
2109 register char *yy_cp;
2111 yy_cp = (yy_c_buf_p);
2113 /* undo effects of setting up ldtext */
2114 *yy_cp = (yy_hold_char);
2116 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2117 { /* need to shift things up to make room */
2118 /* +2 for EOB chars. */
2119 register yy_size_t number_to_move = (yy_n_chars) + 2;
2120 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2121 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2122 register char *source =
2123 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2125 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2126 *--dest = *--source;
2128 yy_cp += (int) (dest - source);
2129 yy_bp += (int) (dest - source);
2130 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2131 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2133 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2134 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2137 *--yy_cp = (char) c;
2143 (yytext_ptr) = yy_bp;
2144 (yy_hold_char) = *yy_cp;
2145 (yy_c_buf_p) = yy_cp;
2150 static int yyinput (void)
2152 static int input (void)
2158 *(yy_c_buf_p) = (yy_hold_char);
2160 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2162 /* yy_c_buf_p now points to the character we want to return.
2163 * If this occurs *before* the EOB characters, then it's a
2164 * valid NUL; if not, then we've hit the end of the buffer.
2166 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2167 /* This was really a NUL. */
2168 *(yy_c_buf_p) = '\0';
2171 { /* need more input */
2172 yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
2175 switch ( yy_get_next_buffer( ) )
2177 case EOB_ACT_LAST_MATCH:
2178 /* This happens because yy_g_n_b()
2179 * sees that we've accumulated a
2180 * token and flags that we need to
2181 * try matching the token before
2182 * proceeding. But for input(),
2183 * there's no matching to consider.
2184 * So convert the EOB_ACT_LAST_MATCH
2185 * to EOB_ACT_END_OF_FILE.
2188 /* Reset buffer status. */
2193 case EOB_ACT_END_OF_FILE:
2198 if ( ! (yy_did_buffer_switch_on_eof) )
2207 case EOB_ACT_CONTINUE_SCAN:
2208 (yy_c_buf_p) = (yytext_ptr) + offset;
2214 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2215 *(yy_c_buf_p) = '\0'; /* preserve ldtext */
2216 (yy_hold_char) = *++(yy_c_buf_p);
2218 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
2219 if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
2226 #endif /* ifndef YY_NO_INPUT */
2228 /** Immediately switch to a different input stream.
2229 * @param input_file A readable stream.
2231 * @note This function does not reset the start condition to @c INITIAL .
2233 void ldrestart (FILE * input_file )
2236 if ( ! YY_CURRENT_BUFFER ){
2237 ldensure_buffer_stack ();
2238 YY_CURRENT_BUFFER_LVALUE =
2239 ld_create_buffer(ldin,YY_BUF_SIZE );
2242 ld_init_buffer(YY_CURRENT_BUFFER,input_file );
2243 ld_load_buffer_state( );
2246 /** Switch to a different input buffer.
2247 * @param new_buffer The new input buffer.
2250 void ld_switch_to_buffer (YY_BUFFER_STATE new_buffer )
2253 /* TODO. We should be able to replace this entire function body
2255 * ldpop_buffer_state();
2256 * ldpush_buffer_state(new_buffer);
2258 ldensure_buffer_stack ();
2259 if ( YY_CURRENT_BUFFER == new_buffer )
2262 if ( YY_CURRENT_BUFFER )
2264 /* Flush out information for old buffer. */
2265 *(yy_c_buf_p) = (yy_hold_char);
2266 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2267 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2270 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2271 ld_load_buffer_state( );
2273 /* We don't actually know whether we did this switch during
2274 * EOF (ldwrap()) processing, but the only time this flag
2275 * is looked at is after ldwrap() is called, so it's safe
2276 * to go ahead and always set it.
2278 (yy_did_buffer_switch_on_eof) = 1;
2281 static void ld_load_buffer_state (void)
2283 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2284 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2285 ldin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2286 (yy_hold_char) = *(yy_c_buf_p);
2289 /** Allocate and initialize an input buffer state.
2290 * @param file A readable stream.
2291 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2293 * @return the allocated buffer state.
2295 YY_BUFFER_STATE ld_create_buffer (FILE * file, int size )
2299 b = (YY_BUFFER_STATE) ldalloc(sizeof( struct yy_buffer_state ) );
2301 YY_FATAL_ERROR( "out of dynamic memory in ld_create_buffer()" );
2303 b->yy_buf_size = size;
2305 /* yy_ch_buf has to be 2 characters longer than the size given because
2306 * we need to put in 2 end-of-buffer characters.
2308 b->yy_ch_buf = (char *) ldalloc(b->yy_buf_size + 2 );
2309 if ( ! b->yy_ch_buf )
2310 YY_FATAL_ERROR( "out of dynamic memory in ld_create_buffer()" );
2312 b->yy_is_our_buffer = 1;
2314 ld_init_buffer(b,file );
2319 /** Destroy the buffer.
2320 * @param b a buffer created with ld_create_buffer()
2323 void ld_delete_buffer (YY_BUFFER_STATE b )
2329 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2330 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2332 if ( b->yy_is_our_buffer )
2333 ldfree((void *) b->yy_ch_buf );
2335 ldfree((void *) b );
2338 /* Initializes or reinitializes a buffer.
2339 * This function is sometimes called more than once on the same buffer,
2340 * such as during a ldrestart() or at EOF.
2342 static void ld_init_buffer (YY_BUFFER_STATE b, FILE * file )
2347 ld_flush_buffer(b );
2349 b->yy_input_file = file;
2350 b->yy_fill_buffer = 1;
2352 /* If b is the current buffer, then ld_init_buffer was _probably_
2353 * called from ldrestart() or through yy_get_next_buffer.
2354 * In that case, we don't want to reset the lineno or column.
2356 if (b != YY_CURRENT_BUFFER){
2357 b->yy_bs_lineno = 1;
2358 b->yy_bs_column = 0;
2361 b->yy_is_interactive = 0;
2366 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2367 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2370 void ld_flush_buffer (YY_BUFFER_STATE b )
2377 /* We always need two end-of-buffer characters. The first causes
2378 * a transition to the end-of-buffer state. The second causes
2379 * a jam in that state.
2381 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2382 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2384 b->yy_buf_pos = &b->yy_ch_buf[0];
2387 b->yy_buffer_status = YY_BUFFER_NEW;
2389 if ( b == YY_CURRENT_BUFFER )
2390 ld_load_buffer_state( );
2393 /** Pushes the new state onto the stack. The new state becomes
2394 * the current state. This function will allocate the stack
2396 * @param new_buffer The new state.
2399 void ldpush_buffer_state (YY_BUFFER_STATE new_buffer )
2401 if (new_buffer == NULL)
2404 ldensure_buffer_stack();
2406 /* This block is copied from ld_switch_to_buffer. */
2407 if ( YY_CURRENT_BUFFER )
2409 /* Flush out information for old buffer. */
2410 *(yy_c_buf_p) = (yy_hold_char);
2411 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2412 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2415 /* Only push if top exists. Otherwise, replace top. */
2416 if (YY_CURRENT_BUFFER)
2417 (yy_buffer_stack_top)++;
2418 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2420 /* copied from ld_switch_to_buffer. */
2421 ld_load_buffer_state( );
2422 (yy_did_buffer_switch_on_eof) = 1;
2425 /** Removes and deletes the top of the stack, if present.
2426 * The next element becomes the new top.
2429 void ldpop_buffer_state (void)
2431 if (!YY_CURRENT_BUFFER)
2434 ld_delete_buffer(YY_CURRENT_BUFFER );
2435 YY_CURRENT_BUFFER_LVALUE = NULL;
2436 if ((yy_buffer_stack_top) > 0)
2437 --(yy_buffer_stack_top);
2439 if (YY_CURRENT_BUFFER) {
2440 ld_load_buffer_state( );
2441 (yy_did_buffer_switch_on_eof) = 1;
2445 /* Allocates the stack if it does not exist.
2446 * Guarantees space for at least one push.
2448 static void ldensure_buffer_stack (void)
2450 yy_size_t num_to_alloc;
2452 if (!(yy_buffer_stack)) {
2454 /* First allocation is just for 2 elements, since we don't know if this
2455 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2456 * immediate realloc on the next call.
2459 (yy_buffer_stack) = (struct yy_buffer_state**)ldalloc
2460 (num_to_alloc * sizeof(struct yy_buffer_state*)
2462 if ( ! (yy_buffer_stack) )
2463 YY_FATAL_ERROR( "out of dynamic memory in ldensure_buffer_stack()" );
2465 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2467 (yy_buffer_stack_max) = num_to_alloc;
2468 (yy_buffer_stack_top) = 0;
2472 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2474 /* Increase the buffer to prepare for a possible push. */
2475 int grow_size = 8 /* arbitrary grow size */;
2477 num_to_alloc = (yy_buffer_stack_max) + grow_size;
2478 (yy_buffer_stack) = (struct yy_buffer_state**)ldrealloc
2480 num_to_alloc * sizeof(struct yy_buffer_state*)
2482 if ( ! (yy_buffer_stack) )
2483 YY_FATAL_ERROR( "out of dynamic memory in ldensure_buffer_stack()" );
2485 /* zero only the new slots.*/
2486 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2487 (yy_buffer_stack_max) = num_to_alloc;
2491 /** Setup the input buffer state to scan directly from a user-specified character buffer.
2492 * @param base the character buffer
2493 * @param size the size in bytes of the character buffer
2495 * @return the newly allocated buffer state object.
2497 YY_BUFFER_STATE ld_scan_buffer (char * base, yy_size_t size )
2502 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2503 base[size-1] != YY_END_OF_BUFFER_CHAR )
2504 /* They forgot to leave room for the EOB's. */
2507 b = (YY_BUFFER_STATE) ldalloc(sizeof( struct yy_buffer_state ) );
2509 YY_FATAL_ERROR( "out of dynamic memory in ld_scan_buffer()" );
2511 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2512 b->yy_buf_pos = b->yy_ch_buf = base;
2513 b->yy_is_our_buffer = 0;
2514 b->yy_input_file = 0;
2515 b->yy_n_chars = b->yy_buf_size;
2516 b->yy_is_interactive = 0;
2518 b->yy_fill_buffer = 0;
2519 b->yy_buffer_status = YY_BUFFER_NEW;
2521 ld_switch_to_buffer(b );
2526 /** Setup the input buffer state to scan a string. The next call to ldlex() will
2527 * scan from a @e copy of @a str.
2528 * @param yystr a NUL-terminated string to scan
2530 * @return the newly allocated buffer state object.
2531 * @note If you want to scan bytes that may contain NUL values, then use
2532 * ld_scan_bytes() instead.
2534 YY_BUFFER_STATE ld_scan_string (yyconst char * yystr )
2537 return ld_scan_bytes(yystr,strlen(yystr) );
2540 /** Setup the input buffer state to scan the given bytes. The next call to ldlex() will
2541 * scan from a @e copy of @a bytes.
2542 * @param yybytes the byte buffer to scan
2543 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2545 * @return the newly allocated buffer state object.
2547 YY_BUFFER_STATE ld_scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len )
2554 /* Get memory for full buffer, including space for trailing EOB's. */
2555 n = _yybytes_len + 2;
2556 buf = (char *) ldalloc(n );
2558 YY_FATAL_ERROR( "out of dynamic memory in ld_scan_bytes()" );
2560 for ( i = 0; i < _yybytes_len; ++i )
2561 buf[i] = yybytes[i];
2563 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2565 b = ld_scan_buffer(buf,n );
2567 YY_FATAL_ERROR( "bad buffer in ld_scan_bytes()" );
2569 /* It's okay to grow etc. this buffer, and we should throw it
2570 * away when we're done.
2572 b->yy_is_our_buffer = 1;
2577 #ifndef YY_EXIT_FAILURE
2578 #define YY_EXIT_FAILURE 2
2581 static void yy_fatal_error (yyconst char* msg )
2583 (void) fprintf( stderr, "%s\n", msg );
2584 exit( YY_EXIT_FAILURE );
2587 /* Redefine yyless() so it works in section 3 code. */
2593 /* Undo effects of setting up ldtext. */ \
2594 int yyless_macro_arg = (n); \
2595 YY_LESS_LINENO(yyless_macro_arg);\
2596 ldtext[ldleng] = (yy_hold_char); \
2597 (yy_c_buf_p) = ldtext + yyless_macro_arg; \
2598 (yy_hold_char) = *(yy_c_buf_p); \
2599 *(yy_c_buf_p) = '\0'; \
2600 ldleng = yyless_macro_arg; \
2604 /* Accessor methods (get/set functions) to struct members. */
2606 /** Get the current line number.
2609 int ldget_lineno (void)
2615 /** Get the input stream.
2618 FILE *ldget_in (void)
2623 /** Get the output stream.
2626 FILE *ldget_out (void)
2631 /** Get the length of the current token.
2634 yy_size_t ldget_leng (void)
2639 /** Get the current token.
2643 char *ldget_text (void)
2648 /** Set the current line number.
2649 * @param line_number
2652 void ldset_lineno (int line_number )
2655 ldlineno = line_number;
2658 /** Set the input stream. This does not discard the current
2660 * @param in_str A readable stream.
2662 * @see ld_switch_to_buffer
2664 void ldset_in (FILE * in_str )
2669 void ldset_out (FILE * out_str )
2674 int ldget_debug (void)
2676 return ld_flex_debug;
2679 void ldset_debug (int bdebug )
2681 ld_flex_debug = bdebug ;
2684 static int yy_init_globals (void)
2686 /* Initialization is the same as for the non-reentrant scanner.
2687 * This function is called from ldlex_destroy(), so don't allocate here.
2690 /* We do not touch ldlineno unless the option is enabled. */
2693 (yy_buffer_stack) = 0;
2694 (yy_buffer_stack_top) = 0;
2695 (yy_buffer_stack_max) = 0;
2696 (yy_c_buf_p) = (char *) 0;
2700 /* Defined in main.c */
2709 /* For future reference: Set errno on error, since we are called by
2715 /* ldlex_destroy is for both reentrant and non-reentrant scanners. */
2716 int ldlex_destroy (void)
2719 /* Pop the buffer stack, destroying each element. */
2720 while(YY_CURRENT_BUFFER){
2721 ld_delete_buffer(YY_CURRENT_BUFFER );
2722 YY_CURRENT_BUFFER_LVALUE = NULL;
2723 ldpop_buffer_state();
2726 /* Destroy the stack itself. */
2727 ldfree((yy_buffer_stack) );
2728 (yy_buffer_stack) = NULL;
2730 /* Reset the globals. This is important in a non-reentrant scanner so the next time
2731 * ldlex() is called, initialization will occur. */
2738 * Internal utility routines.
2742 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2745 for ( i = 0; i < n; ++i )
2750 #ifdef YY_NEED_STRLEN
2751 static int yy_flex_strlen (yyconst char * s )
2754 for ( n = 0; s[n]; ++n )
2761 void *ldalloc (yy_size_t size )
2763 return (void *) malloc( size );
2766 void *ldrealloc (void * ptr, yy_size_t size )
2768 /* The cast to (char *) in the following accommodates both
2769 * implementations that use char* generic pointers, and those
2770 * that use void* generic pointers. It works with the latter
2771 * because both ANSI C and C++ allow castless assignment from
2772 * any pointer type to void*, and deal with argument conversions
2773 * as though doing an assignment.
2775 return (void *) realloc( (char *) ptr, size );
2778 void ldfree (void * ptr )
2780 free( (char *) ptr ); /* see ldrealloc() for (char *) cast */
2783 #define YYTABLES_NAME "yytables"
2785 #line 198 "/home/mark/src/elfutils/src/ldlex.l"
2796 while (c != '*' && c != EOF)
2810 /* XXX Use the setjmp buffer and signal EOF in comment */
2811 error (0, 0, gettext ("EOF in comment"));
2819 eat_to_eol (bool empty)
2821 bool warned = false;
2835 if (empty && ! isspace (c) && ! warned)
2837 error (0, 0, gettext ("%d: garbage at end of line"), ldlineno);
2845 attrib_convert (int c)
2857 push_state (enum prepstate state)
2859 if (prepdepth >= MAX_PREPDEPTH)
2860 error (EXIT_FAILURE, 0, gettext ("%d: conditionals nested too deep"),
2863 prepstate[prepdepth++] = state;
2871 error (0, 0, gettext ("%d: unexpected #endif"), ldlineno);
2875 return prepdepth == 0 ? INITIAL : IGNORE;
2885 size_t idmax = sizeof (idbuf);
2886 bool ignore_ws = true;
2887 bool defined = false;
2894 if (isspace (c) && ignore_ws)
2897 if (c != '_' && (c < 'a' || c > 'z') && (c < 'A' || c > 'Z')
2898 && (idlen == 0 || c < '0' || c > '9'))
2906 char *newp = (char *) alloca (idmax *= 2);
2907 id = memcpy (newp, id, idlen);
2914 /* XXX Compare in a better way. */
2915 if (idlen == 6 && strncmp (id, "SHARED", 6) == 0)
2916 defined = ld_state.file_type == dso_file_type;
2922 push_state (skip_if);
2931 invalid_char (int ch)
2933 error (0, 0, (isascii (ch)
2934 ? gettext ("invalid character '%c' at line %d; ignored")
2935 : gettext ("invalid character '\\%o' at line %d; ignored")),