packaging: update homepage url
[platform/upstream/elfutils.git] / src / ldlex.c
1 #line 2 "ldlex.c"
2
3 #line 4 "ldlex.c"
4
5 #define  YY_INT_ALIGNED short int
6
7 /* A lexical scanner generated by flex */
8
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
16 #define yyin ldin
17 #define yyleng ldleng
18 #define yylex ldlex
19 #define yylineno ldlineno
20 #define yyout ldout
21 #define yyrestart ldrestart
22 #define yytext ldtext
23 #define yywrap ldwrap
24 #define yyalloc ldalloc
25 #define yyrealloc ldrealloc
26 #define yyfree ldfree
27
28 #define FLEX_SCANNER
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
33 #define FLEX_BETA
34 #endif
35
36 /* First, we deal with  platform-specific or compiler-specific issues. */
37
38 /* begin standard C headers. */
39 #include <stdio.h>
40 #include <string.h>
41 #include <errno.h>
42 #include <stdlib.h>
43
44 /* end standard C headers. */
45
46 /* flex integer type definitions */
47
48 #ifndef FLEXINT_H
49 #define FLEXINT_H
50
51 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
52
53 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
54
55 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
56  * if you want the limit (max/min) macros for int types. 
57  */
58 #ifndef __STDC_LIMIT_MACROS
59 #define __STDC_LIMIT_MACROS 1
60 #endif
61
62 #include <inttypes.h>
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;
69 #else
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;
76
77 /* Limits of integral types. */
78 #ifndef INT8_MIN
79 #define INT8_MIN               (-128)
80 #endif
81 #ifndef INT16_MIN
82 #define INT16_MIN              (-32767-1)
83 #endif
84 #ifndef INT32_MIN
85 #define INT32_MIN              (-2147483647-1)
86 #endif
87 #ifndef INT8_MAX
88 #define INT8_MAX               (127)
89 #endif
90 #ifndef INT16_MAX
91 #define INT16_MAX              (32767)
92 #endif
93 #ifndef INT32_MAX
94 #define INT32_MAX              (2147483647)
95 #endif
96 #ifndef UINT8_MAX
97 #define UINT8_MAX              (255U)
98 #endif
99 #ifndef UINT16_MAX
100 #define UINT16_MAX             (65535U)
101 #endif
102 #ifndef UINT32_MAX
103 #define UINT32_MAX             (4294967295U)
104 #endif
105
106 #endif /* ! C99 */
107
108 #endif /* ! FLEXINT_H */
109
110 #ifdef __cplusplus
111
112 /* The "const" storage-class-modifier is valid. */
113 #define YY_USE_CONST
114
115 #else   /* ! __cplusplus */
116
117 /* C99 requires __STDC__ to be defined as 1. */
118 #if defined (__STDC__)
119
120 #define YY_USE_CONST
121
122 #endif  /* defined (__STDC__) */
123 #endif  /* ! __cplusplus */
124
125 #ifdef YY_USE_CONST
126 #define yyconst const
127 #else
128 #define yyconst
129 #endif
130
131 /* Returned upon end-of-file. */
132 #define YY_NULL 0
133
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
137  * double cast.
138  */
139 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
140
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.
144  */
145 #define BEGIN (yy_start) = 1 + 2 *
146
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
149  * compatibility.
150  */
151 #define YY_START (((yy_start) - 1) / 2)
152 #define YYSTATE YY_START
153
154 /* Action number for EOF rule of a given start state. */
155 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
156
157 /* Special action meaning "start processing a new file". */
158 #define YY_NEW_FILE ldrestart(ldin  )
159
160 #define YY_END_OF_BUFFER_CHAR 0
161
162 /* Size of default input buffer. */
163 #ifndef YY_BUF_SIZE
164 #define YY_BUF_SIZE 16384
165 #endif
166
167 /* The state buf must be large enough to hold one state per character in the main buffer.
168  */
169 #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
170
171 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
172 #define YY_TYPEDEF_YY_BUFFER_STATE
173 typedef struct yy_buffer_state *YY_BUFFER_STATE;
174 #endif
175
176 #ifndef YY_TYPEDEF_YY_SIZE_T
177 #define YY_TYPEDEF_YY_SIZE_T
178 typedef size_t yy_size_t;
179 #endif
180
181 extern yy_size_t ldleng;
182
183 extern FILE *ldin, *ldout;
184
185 #define EOB_ACT_CONTINUE_SCAN 0
186 #define EOB_ACT_END_OF_FILE 1
187 #define EOB_ACT_LAST_MATCH 2
188
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.
195      */
196     #define  YY_LESS_LINENO(n) \
197             do { \
198                 int yyl;\
199                 for ( yyl = n; yyl < ldleng; ++yyl )\
200                     if ( ldtext[yyl] == '\n' )\
201                         --ldlineno;\
202             }while(0)
203     #define YY_LINENO_REWIND_TO(dst) \
204             do {\
205                 const char *p;\
206                 for ( p = yy_cp-1; p >= (dst); --p)\
207                     if ( *p == '\n' )\
208                         --ldlineno;\
209             }while(0)
210     
211 /* Return all but the first "n" matched characters back to the input stream. */
212 #define yyless(n) \
213         do \
214                 { \
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 */ \
222                 } \
223         while ( 0 )
224
225 #define unput(c) yyunput( c, (yytext_ptr)  )
226
227 #ifndef YY_STRUCT_YY_BUFFER_STATE
228 #define YY_STRUCT_YY_BUFFER_STATE
229 struct yy_buffer_state
230         {
231         FILE *yy_input_file;
232
233         char *yy_ch_buf;                /* input buffer */
234         char *yy_buf_pos;               /* current position in input buffer */
235
236         /* Size of input buffer in bytes, not including room for EOB
237          * characters.
238          */
239         yy_size_t yy_buf_size;
240
241         /* Number of characters read into yy_ch_buf, not including EOB
242          * characters.
243          */
244         yy_size_t yy_n_chars;
245
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
248          * delete it.
249          */
250         int yy_is_our_buffer;
251
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
255          * each newline.
256          */
257         int yy_is_interactive;
258
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
261          * not.
262          */
263         int yy_at_bol;
264
265     int yy_bs_lineno; /**< The line count. */
266     int yy_bs_column; /**< The column count. */
267     
268         /* Whether to try to fill the input buffer when we reach the
269          * end of it.
270          */
271         int yy_fill_buffer;
272
273         int yy_buffer_status;
274
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.
282          *
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.
286          */
287 #define YY_BUFFER_EOF_PENDING 2
288
289         };
290 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
291
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. */
296
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
299  * "scanner state".
300  *
301  * Returns the top of the stack, or NULL.
302  */
303 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
304                           ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
305                           : NULL)
306
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.
309  */
310 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
311
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 */
315 yy_size_t ldleng;
316
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 */
321
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 ...
324  */
325 static int yy_did_buffer_switch_on_eof;
326
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 );
334
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  );
338
339 #define YY_FLUSH_BUFFER ld_flush_buffer(YY_CURRENT_BUFFER )
340
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  );
344
345 void *ldalloc (yy_size_t  );
346 void *ldrealloc (void *,yy_size_t  );
347 void ldfree (void *  );
348
349 #define yy_new_buffer ld_create_buffer
350
351 #define yy_set_interactive(is_interactive) \
352         { \
353         if ( ! YY_CURRENT_BUFFER ){ \
354         ldensure_buffer_stack (); \
355                 YY_CURRENT_BUFFER_LVALUE =    \
356             ld_create_buffer(ldin,YY_BUF_SIZE ); \
357         } \
358         YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
359         }
360
361 #define yy_set_bol(at_bol) \
362         { \
363         if ( ! YY_CURRENT_BUFFER ){\
364         ldensure_buffer_stack (); \
365                 YY_CURRENT_BUFFER_LVALUE =    \
366             ld_create_buffer(ldin,YY_BUF_SIZE ); \
367         } \
368         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
369         }
370
371 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
372
373 /* Begin user sect3 */
374
375 #define ldwrap() 1
376 #define YY_SKIP_YYWRAP
377
378 typedef unsigned char YY_CHAR;
379
380 FILE *ldin = (FILE *) 0, *ldout = (FILE *) 0;
381
382 typedef int yy_state_type;
383
384 extern int ldlineno;
385
386 int ldlineno = 1;
387
388 extern char *ldtext;
389 #define yytext_ptr ldtext
390
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[]  );
395
396 /* Done after the current pattern has been matched and before the
397  * corresponding action - sets up ldtext.
398  */
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; \
403         *yy_cp = '\0'; \
404         (yy_c_buf_p) = yy_cp;
405
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. */
410 struct yy_trans_info
411         {
412         flex_int32_t yy_verify;
413         flex_int32_t yy_nxt;
414         };
415 static yyconst flex_int16_t yy_accept[219] =
416     {   0,
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,
427
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,
438
439        46,   46,    3,    7,   46,   46,   24,   46,   46,   46,
440        46,   14,   46,   46,   21,   46,   26,    0
441     } ;
442
443 static yyconst flex_int32_t yy_ec[256] =
444     {   0,
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,
455
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,
466
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,
472         1,    1,    1,    1,    1
473     } ;
474
475 static yyconst flex_int32_t yy_meta[67] =
476     {   0,
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,
483         3,    3,    3,    2,    1,    2
484     } ;
485
486 static yyconst flex_int16_t yy_base[223] =
487     {   0,
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,
498
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,
509
510      1960, 1967, 2250, 2250, 1989, 1996, 2000, 2040, 2051, 2029,
511      2064, 2085, 2108, 2119, 2142, 2148, 2177, 2250, 2240,   89,
512      2243, 2246
513     } ;
514
515 static yyconst flex_int16_t yy_def[223] =
516     {   0,
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,
527
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,
538
539        19,   19,  218,  218,   19,   19,   19,   19,   19,   19,
540        19,   19,   19,   19,   19,   19,   19,    0,  218,  218,
541       218,  218
542     } ;
543
544 static yyconst flex_int16_t yy_nxt[2317] =
545     {   0,
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,
556
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,
567
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,
578
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,
589
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,
600
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,
611
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,
622
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,
633
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,
644
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,
655
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,
666
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,
677
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,
688
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,
699
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,
710
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,
721
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,
732
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,
743
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,
754
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,
765
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,
776
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,
787
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,
798
799       218,  218,  218,  218,  218,  218,  218,  218,  218,  218,
800       218,  218,  218,  218,  218,  218
801     } ;
802
803 static yyconst flex_int16_t yy_chk[2317] =
804     {   0,
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,
815
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,
826
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,
837
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,
848
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,
859
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,
870
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,
881
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,
892
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,
903
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,
914
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,
925
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,
936
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,
947
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,
958
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,
969
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,
980
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,
991
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,
1002
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,
1013
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,
1024
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,
1035
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,
1046
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,
1057
1058       218,  218,  218,  218,  218,  218,  218,  218,  218,  218,
1059       218,  218,  218,  218,  218,  218
1060     } ;
1061
1062 /* Table of booleans, true if rule could match eol. */
1063 static yyconst flex_int32_t yy_rule_can_match_eol[51] =
1064     {   0,
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,     };
1068
1069 static yy_state_type yy_last_accepting_state;
1070 static char *yy_last_accepting_cpos;
1071
1072 extern int ld_flex_debug;
1073 int ld_flex_debug = 0;
1074
1075 /* The intent behind this definition is that it'll catch
1076  * any uses of REJECT which flex missed.
1077  */
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
1082 char *ldtext;
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.
1088
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.
1093
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.
1098
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/>.  */
1101
1102 #ifdef HAVE_CONFIG_H
1103 # include <config.h>
1104 #endif
1105
1106 #include <assert.h>
1107 #include <ctype.h>
1108 #include <elf.h>
1109 #include <error.h>
1110 #include <inttypes.h>
1111 #include <libintl.h>
1112 #include <stdbool.h>
1113 #include <stdio.h>
1114 #include <string.h>
1115
1116 #include <system.h>
1117 #include <ld.h>
1118 #include "ldscript.h"
1119
1120 /* We sure use no threads to read the stream, so use the _unlocked
1121    variants of the functions.  */
1122 #undef getc
1123 #define getc(s) getc_unlocked (s)
1124 #undef ferror
1125 #define ferror(s) ferror_unlocked (s)
1126 #undef fread
1127 #define fread(b, m, n, s) fread_unlocked (b, m, n, s)
1128 #undef fwrite
1129 #define fwrite(b, m, n, s) fwrite_unlocked (b, m, n, s)
1130
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)
1135
1136 /* Defined in ld.c.  */
1137 extern int ld_scan_version_script;
1138
1139 #define MAX_PREPDEPTH 20
1140 static enum prepstate
1141 {
1142   prep_normal,
1143   skip_if,
1144   skip_to_endif
1145 } prepstate[MAX_PREPDEPTH];
1146 static int prepdepth;
1147
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);
1155
1156 #line 1157 "ldlex.c"
1157
1158 #define INITIAL 0
1159 #define IGNORE 1
1160
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.
1165  */
1166 #include <unistd.h>
1167 #endif
1168
1169 #ifndef YY_EXTRA_TYPE
1170 #define YY_EXTRA_TYPE void *
1171 #endif
1172
1173 static int yy_init_globals (void );
1174
1175 /* Accessor methods to globals.
1176    These are made visible to non-reentrant scanners for convenience. */
1177
1178 int ldlex_destroy (void );
1179
1180 int ldget_debug (void );
1181
1182 void ldset_debug (int debug_flag  );
1183
1184 YY_EXTRA_TYPE ldget_extra (void );
1185
1186 void ldset_extra (YY_EXTRA_TYPE user_defined  );
1187
1188 FILE *ldget_in (void );
1189
1190 void ldset_in  (FILE * in_str  );
1191
1192 FILE *ldget_out (void );
1193
1194 void ldset_out  (FILE * out_str  );
1195
1196 yy_size_t ldget_leng (void );
1197
1198 char *ldget_text (void );
1199
1200 int ldget_lineno (void );
1201
1202 void ldset_lineno (int line_number  );
1203
1204 /* Macros after this point can all be overridden by user definitions in
1205  * section 1.
1206  */
1207
1208 #ifndef YY_SKIP_YYWRAP
1209 #ifdef __cplusplus
1210 extern "C" int ldwrap (void );
1211 #else
1212 extern int ldwrap (void );
1213 #endif
1214 #endif
1215
1216     static void yyunput (int c,char *buf_ptr  );
1217     
1218 #ifndef yytext_ptr
1219 static void yy_flex_strncpy (char *,yyconst char *,int );
1220 #endif
1221
1222 #ifdef YY_NEED_STRLEN
1223 static int yy_flex_strlen (yyconst char * );
1224 #endif
1225
1226 #ifndef YY_NO_INPUT
1227
1228 #ifdef __cplusplus
1229 static int yyinput (void );
1230 #else
1231 static int input (void );
1232 #endif
1233
1234 #endif
1235
1236 /* Amount of stuff to slurp up with each read. */
1237 #ifndef YY_READ_BUF_SIZE
1238 #define YY_READ_BUF_SIZE 8192
1239 #endif
1240
1241 /* Copy whatever the last rule matched to the standard output. */
1242 #ifndef ECHO
1243 /* This used to be an fputs(), but since the string might contain NUL's,
1244  * we now use fwrite().
1245  */
1246 #define ECHO do { if (fwrite( ldtext, ldleng, 1, ldout )) {} } while (0)
1247 #endif
1248
1249 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1250  * is returned in "result".
1251  */
1252 #ifndef YY_INPUT
1253 #define YY_INPUT(buf,result,max_size) \
1254         if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1255                 { \
1256                 int c = '*'; \
1257                 size_t n; \
1258                 for ( n = 0; n < max_size && \
1259                              (c = getc( ldin )) != EOF && c != '\n'; ++n ) \
1260                         buf[n] = (char) c; \
1261                 if ( c == '\n' ) \
1262                         buf[n++] = (char) c; \
1263                 if ( c == EOF && ferror( ldin ) ) \
1264                         YY_FATAL_ERROR( "input in flex scanner failed" ); \
1265                 result = n; \
1266                 } \
1267         else \
1268                 { \
1269                 errno=0; \
1270                 while ( (result = fread(buf, 1, max_size, ldin))==0 && ferror(ldin)) \
1271                         { \
1272                         if( errno != EINTR) \
1273                                 { \
1274                                 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1275                                 break; \
1276                                 } \
1277                         errno=0; \
1278                         clearerr(ldin); \
1279                         } \
1280                 }\
1281 \
1282
1283 #endif
1284
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.
1288  */
1289 #ifndef yyterminate
1290 #define yyterminate() return YY_NULL
1291 #endif
1292
1293 /* Number of entries by which start-condition stack grows. */
1294 #ifndef YY_START_STACK_INCR
1295 #define YY_START_STACK_INCR 25
1296 #endif
1297
1298 /* Report a fatal error. */
1299 #ifndef YY_FATAL_ERROR
1300 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1301 #endif
1302
1303 /* end tables serialization structures and prototypes */
1304
1305 /* Default declaration of generated scanner - a define so the user can
1306  * easily add parameters.
1307  */
1308 #ifndef YY_DECL
1309 #define YY_DECL_IS_OURS 1
1310
1311 extern int ldlex (void);
1312
1313 #define YY_DECL int ldlex (void)
1314 #endif /* !YY_DECL */
1315
1316 /* Code executed at the beginning of each rule, after ldtext and ldleng
1317  * have been set up.
1318  */
1319 #ifndef YY_USER_ACTION
1320 #define YY_USER_ACTION
1321 #endif
1322
1323 /* Code executed at the end of each rule. */
1324 #ifndef YY_BREAK
1325 #define YY_BREAK break;
1326 #endif
1327
1328 #define YY_RULE_SETUP \
1329         if ( ldleng > 0 ) \
1330                 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1331                                 (ldtext[ldleng - 1] == '\n'); \
1332         YY_USER_ACTION
1333
1334 /** The main scanner function which does all the work.
1335  */
1336 YY_DECL
1337 {
1338         register yy_state_type yy_current_state;
1339         register char *yy_cp, *yy_bp;
1340         register int yy_act;
1341     
1342         if ( !(yy_init) )
1343                 {
1344                 (yy_init) = 1;
1345
1346 #ifdef YY_USER_INIT
1347                 YY_USER_INIT;
1348 #endif
1349
1350                 if ( ! (yy_start) )
1351                         (yy_start) = 1; /* first start state */
1352
1353                 if ( ! ldin )
1354                         ldin = stdin;
1355
1356                 if ( ! ldout )
1357                         ldout = stdout;
1358
1359                 if ( ! YY_CURRENT_BUFFER ) {
1360                         ldensure_buffer_stack ();
1361                         YY_CURRENT_BUFFER_LVALUE =
1362                                 ld_create_buffer(ldin,YY_BUF_SIZE );
1363                 }
1364
1365                 ld_load_buffer_state( );
1366                 }
1367
1368         {
1369 #line 88 "/home/mark/src/elfutils/src/ldlex.l"
1370
1371                                 if (unlikely (ld_scan_version_script))
1372                                   {
1373                                     ld_scan_version_script = -1;
1374                                     return kVERSION_SCRIPT;
1375                                   }
1376
1377 #line 1378 "ldlex.c"
1378
1379         while ( 1 )             /* loops until end-of-file is reached */
1380                 {
1381                 yy_cp = (yy_c_buf_p);
1382
1383                 /* Support of ldtext. */
1384                 *yy_cp = (yy_hold_char);
1385
1386                 /* yy_bp points to the position in yy_ch_buf of the start of
1387                  * the current run.
1388                  */
1389                 yy_bp = yy_cp;
1390
1391                 yy_current_state = (yy_start);
1392                 yy_current_state += YY_AT_BOL();
1393 yy_match:
1394                 do
1395                         {
1396                         register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1397                         if ( yy_accept[yy_current_state] )
1398                                 {
1399                                 (yy_last_accepting_state) = yy_current_state;
1400                                 (yy_last_accepting_cpos) = yy_cp;
1401                                 }
1402                         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1403                                 {
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];
1407                                 }
1408                         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1409                         ++yy_cp;
1410                         }
1411                 while ( yy_current_state != 218 );
1412                 yy_cp = (yy_last_accepting_cpos);
1413                 yy_current_state = (yy_last_accepting_state);
1414
1415 yy_find_action:
1416                 yy_act = yy_accept[yy_current_state];
1417
1418                 YY_DO_BEFORE_ACTION;
1419
1420                 if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
1421                         {
1422                         yy_size_t yyl;
1423                         for ( yyl = 0; yyl < ldleng; ++yyl )
1424                                 if ( ldtext[yyl] == '\n' )
1425                                            
1426     ldlineno++;
1427 ;
1428                         }
1429
1430 do_action:      /* This label is used only to access EOF actions. */
1431
1432                 switch ( yy_act )
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;
1440
1441 case 1:
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 */
1447 YY_RULE_SETUP
1448 #line 95 "/home/mark/src/elfutils/src/ldlex.l"
1449 { BEGIN (handle_ifdef ()); }
1450         YY_BREAK
1451 case 2:
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 */
1457 YY_RULE_SETUP
1458 #line 96 "/home/mark/src/elfutils/src/ldlex.l"
1459 { eat_to_eol (true);
1460                                   push_state (skip_to_endif);
1461                                   BEGIN (IGNORE); }
1462         YY_BREAK
1463 case 3:
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 */
1469 YY_RULE_SETUP
1470 #line 99 "/home/mark/src/elfutils/src/ldlex.l"
1471 { eat_to_eol (false);
1472                                   push_state (skip_to_endif);
1473                                   BEGIN (IGNORE); }
1474         YY_BREAK
1475 case 4:
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 */
1481 YY_RULE_SETUP
1482 #line 102 "/home/mark/src/elfutils/src/ldlex.l"
1483 { eat_to_eol (true) ; }
1484         YY_BREAK
1485 case 5:
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 */
1491 YY_RULE_SETUP
1492 #line 104 "/home/mark/src/elfutils/src/ldlex.l"
1493 { eat_to_eol (false);
1494                                   push_state (skip_to_endif); }
1495         YY_BREAK
1496 case 6:
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 */
1502 YY_RULE_SETUP
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)
1507                                     {
1508                                       /* Back to normal processing.  */
1509                                       assert (prepdepth == 1);
1510                                       BEGIN (pop_state ());
1511                                     }
1512                                 }
1513         YY_BREAK
1514 case 7:
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 */
1520 YY_RULE_SETUP
1521 #line 115 "/home/mark/src/elfutils/src/ldlex.l"
1522 { assert (prepdepth > 0);
1523                                   if (prepstate[prepdepth - 1] == skip_if)
1524                                     {
1525                                       /* Maybe this symbol is defined.  */
1526                                       pop_state ();
1527                                       BEGIN (handle_ifdef ());
1528                                     }
1529                                 }
1530         YY_BREAK
1531 case 8:
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 */
1537 YY_RULE_SETUP
1538 #line 123 "/home/mark/src/elfutils/src/ldlex.l"
1539 { eat_to_eol (true);
1540                                   BEGIN (pop_state ()); }
1541         YY_BREAK
1542 case 9:
1543 /* rule 9 can match eol */
1544 YY_RULE_SETUP
1545 #line 125 "/home/mark/src/elfutils/src/ldlex.l"
1546 { /* nothing */ }
1547         YY_BREAK
1548 case 10:
1549 YY_RULE_SETUP
1550 #line 128 "/home/mark/src/elfutils/src/ldlex.l"
1551 { eat_comment (); }
1552         YY_BREAK
1553 case 11:
1554 YY_RULE_SETUP
1555 #line 130 "/home/mark/src/elfutils/src/ldlex.l"
1556 { return kALIGN; }
1557         YY_BREAK
1558 case 12:
1559 YY_RULE_SETUP
1560 #line 131 "/home/mark/src/elfutils/src/ldlex.l"
1561 { return kAS_NEEDED; }
1562         YY_BREAK
1563 case 13:
1564 YY_RULE_SETUP
1565 #line 132 "/home/mark/src/elfutils/src/ldlex.l"
1566 { return kENTRY; }
1567         YY_BREAK
1568 case 14:
1569 YY_RULE_SETUP
1570 #line 133 "/home/mark/src/elfutils/src/ldlex.l"
1571 { return kEXCLUDE_FILE; }
1572         YY_BREAK
1573 case 15:
1574 YY_RULE_SETUP
1575 #line 134 "/home/mark/src/elfutils/src/ldlex.l"
1576 { return kGLOBAL; }
1577         YY_BREAK
1578 case 16:
1579 YY_RULE_SETUP
1580 #line 135 "/home/mark/src/elfutils/src/ldlex.l"
1581 { return kGROUP; }
1582         YY_BREAK
1583 case 17:
1584 YY_RULE_SETUP
1585 #line 136 "/home/mark/src/elfutils/src/ldlex.l"
1586 { return kINPUT; }
1587         YY_BREAK
1588 case 18:
1589 YY_RULE_SETUP
1590 #line 137 "/home/mark/src/elfutils/src/ldlex.l"
1591 { return kINTERP; }
1592         YY_BREAK
1593 case 19:
1594 YY_RULE_SETUP
1595 #line 138 "/home/mark/src/elfutils/src/ldlex.l"
1596 { return kKEEP; }
1597         YY_BREAK
1598 case 20:
1599 YY_RULE_SETUP
1600 #line 139 "/home/mark/src/elfutils/src/ldlex.l"
1601 { return kLOCAL; }
1602         YY_BREAK
1603 case 21:
1604 YY_RULE_SETUP
1605 #line 140 "/home/mark/src/elfutils/src/ldlex.l"
1606 { return kOUTPUT_FORMAT; }
1607         YY_BREAK
1608 case 22:
1609 YY_RULE_SETUP
1610 #line 141 "/home/mark/src/elfutils/src/ldlex.l"
1611 { return kPAGESIZE; }
1612         YY_BREAK
1613 case 23:
1614 YY_RULE_SETUP
1615 #line 142 "/home/mark/src/elfutils/src/ldlex.l"
1616 { return kPROVIDE; }
1617         YY_BREAK
1618 case 24:
1619 YY_RULE_SETUP
1620 #line 143 "/home/mark/src/elfutils/src/ldlex.l"
1621 { return kSEARCH_DIR; }
1622         YY_BREAK
1623 case 25:
1624 YY_RULE_SETUP
1625 #line 144 "/home/mark/src/elfutils/src/ldlex.l"
1626 { return kSEGMENT; }
1627         YY_BREAK
1628 case 26:
1629 YY_RULE_SETUP
1630 #line 145 "/home/mark/src/elfutils/src/ldlex.l"
1631 { return kSIZEOF_HEADERS; }
1632         YY_BREAK
1633 case 27:
1634 YY_RULE_SETUP
1635 #line 146 "/home/mark/src/elfutils/src/ldlex.l"
1636 { return kSORT; }
1637         YY_BREAK
1638 case 28:
1639 YY_RULE_SETUP
1640 #line 147 "/home/mark/src/elfutils/src/ldlex.l"
1641 { return kVERSION; }
1642         YY_BREAK
1643 case 29:
1644 YY_RULE_SETUP
1645 #line 149 "/home/mark/src/elfutils/src/ldlex.l"
1646 { unsigned int cnt = 1 ;
1647                                   ldlval.num = 0;
1648                                   while (cnt < ldleng - 1)
1649                                     ldlval.num |= attrib_convert (ldtext[cnt++]);
1650                                   return kMODE; }
1651         YY_BREAK
1652 case 30:
1653 YY_RULE_SETUP
1654 #line 155 "/home/mark/src/elfutils/src/ldlex.l"
1655 { return '{'; }
1656         YY_BREAK
1657 case 31:
1658 YY_RULE_SETUP
1659 #line 156 "/home/mark/src/elfutils/src/ldlex.l"
1660 { return '}'; }
1661         YY_BREAK
1662 case 32:
1663 YY_RULE_SETUP
1664 #line 157 "/home/mark/src/elfutils/src/ldlex.l"
1665 { return '('; }
1666         YY_BREAK
1667 case 33:
1668 YY_RULE_SETUP
1669 #line 158 "/home/mark/src/elfutils/src/ldlex.l"
1670 { return ')'; }
1671         YY_BREAK
1672 case 34:
1673 YY_RULE_SETUP
1674 #line 159 "/home/mark/src/elfutils/src/ldlex.l"
1675 { return ':'; }
1676         YY_BREAK
1677 case 35:
1678 YY_RULE_SETUP
1679 #line 160 "/home/mark/src/elfutils/src/ldlex.l"
1680 { return ';'; }
1681         YY_BREAK
1682 case 36:
1683 YY_RULE_SETUP
1684 #line 161 "/home/mark/src/elfutils/src/ldlex.l"
1685 { return '='; }
1686         YY_BREAK
1687 case 37:
1688 YY_RULE_SETUP
1689 #line 162 "/home/mark/src/elfutils/src/ldlex.l"
1690 { ldlval.op = exp_plus; return kADD_OP; }
1691         YY_BREAK
1692 case 38:
1693 YY_RULE_SETUP
1694 #line 163 "/home/mark/src/elfutils/src/ldlex.l"
1695 { ldlval.op = exp_minus; return kADD_OP; }
1696         YY_BREAK
1697 case 39:
1698 YY_RULE_SETUP
1699 #line 164 "/home/mark/src/elfutils/src/ldlex.l"
1700 { return '*'; }
1701         YY_BREAK
1702 case 40:
1703 YY_RULE_SETUP
1704 #line 165 "/home/mark/src/elfutils/src/ldlex.l"
1705 { ldlval.op = exp_div; return kMUL_OP; }
1706         YY_BREAK
1707 case 41:
1708 YY_RULE_SETUP
1709 #line 166 "/home/mark/src/elfutils/src/ldlex.l"
1710 { ldlval.op = exp_mod; return kMUL_OP; }
1711         YY_BREAK
1712 case 42:
1713 YY_RULE_SETUP
1714 #line 167 "/home/mark/src/elfutils/src/ldlex.l"
1715 { return '&'; }
1716         YY_BREAK
1717 case 43:
1718 YY_RULE_SETUP
1719 #line 168 "/home/mark/src/elfutils/src/ldlex.l"
1720 { return '|'; }
1721         YY_BREAK
1722 case 44:
1723 YY_RULE_SETUP
1724 #line 170 "/home/mark/src/elfutils/src/ldlex.l"
1725 { return ','; }
1726         YY_BREAK
1727 case 45:
1728 YY_RULE_SETUP
1729 #line 172 "/home/mark/src/elfutils/src/ldlex.l"
1730 { char *endp;
1731                                   ldlval.num = strtoumax (ldtext, &endp, 0);
1732                                   if (*endp != '\0')
1733                                     {
1734                                       if (tolower (*endp) == 'k')
1735                                         ldlval.num *= 1024;
1736                                       else
1737                                         {
1738                                           assert (tolower (*endp) == 'm');
1739                                           ldlval.num *= 1024 * 1024;
1740                                         }
1741                                     }
1742                                   return kNUM; }
1743         YY_BREAK
1744 case 46:
1745 YY_RULE_SETUP
1746 #line 186 "/home/mark/src/elfutils/src/ldlex.l"
1747 { ldlval.str = obstack_strndup (&ld_state.smem,
1748                                                                 ldtext, ldleng);
1749                                   return kID; }
1750         YY_BREAK
1751 case 47:
1752 YY_RULE_SETUP
1753 #line 190 "/home/mark/src/elfutils/src/ldlex.l"
1754 { ldlval.str = obstack_strndup (&ld_state.smem,
1755                                                                 ldtext, ldleng);
1756                                   return kFILENAME; }
1757         YY_BREAK
1758 case 48:
1759 /* rule 48 can match eol */
1760 YY_RULE_SETUP
1761 #line 194 "/home/mark/src/elfutils/src/ldlex.l"
1762 { /* IGNORE */ }
1763         YY_BREAK
1764 case 49:
1765 YY_RULE_SETUP
1766 #line 196 "/home/mark/src/elfutils/src/ldlex.l"
1767 { invalid_char (*ldtext); }
1768         YY_BREAK
1769 case 50:
1770 YY_RULE_SETUP
1771 #line 198 "/home/mark/src/elfutils/src/ldlex.l"
1772 ECHO;
1773         YY_BREAK
1774 #line 1775 "ldlex.c"
1775 case YY_STATE_EOF(INITIAL):
1776 case YY_STATE_EOF(IGNORE):
1777         yyterminate();
1778
1779         case YY_END_OF_BUFFER:
1780                 {
1781                 /* Amount of text matched not including the EOB char. */
1782                 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1783
1784                 /* Undo the effects of YY_DO_BEFORE_ACTION. */
1785                 *yy_cp = (yy_hold_char);
1786                 YY_RESTORE_YY_MORE_OFFSET
1787
1788                 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1789                         {
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.
1798                          */
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;
1802                         }
1803
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
1809                  * in input().
1810                  */
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;
1814
1815                         (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1816
1817                         yy_current_state = yy_get_previous_state(  );
1818
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).
1826                          */
1827
1828                         yy_next_state = yy_try_NUL_trans( yy_current_state );
1829
1830                         yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1831
1832                         if ( yy_next_state )
1833                                 {
1834                                 /* Consume the NUL. */
1835                                 yy_cp = ++(yy_c_buf_p);
1836                                 yy_current_state = yy_next_state;
1837                                 goto yy_match;
1838                                 }
1839
1840                         else
1841                                 {
1842                                 yy_cp = (yy_last_accepting_cpos);
1843                                 yy_current_state = (yy_last_accepting_state);
1844                                 goto yy_find_action;
1845                                 }
1846                         }
1847
1848                 else switch ( yy_get_next_buffer(  ) )
1849                         {
1850                         case EOB_ACT_END_OF_FILE:
1851                                 {
1852                                 (yy_did_buffer_switch_on_eof) = 0;
1853
1854                                 if ( ldwrap( ) )
1855                                         {
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.
1864                                          */
1865                                         (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1866
1867                                         yy_act = YY_STATE_EOF(YY_START);
1868                                         goto do_action;
1869                                         }
1870
1871                                 else
1872                                         {
1873                                         if ( ! (yy_did_buffer_switch_on_eof) )
1874                                                 YY_NEW_FILE;
1875                                         }
1876                                 break;
1877                                 }
1878
1879                         case EOB_ACT_CONTINUE_SCAN:
1880                                 (yy_c_buf_p) =
1881                                         (yytext_ptr) + yy_amount_of_matched_text;
1882
1883                                 yy_current_state = yy_get_previous_state(  );
1884
1885                                 yy_cp = (yy_c_buf_p);
1886                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1887                                 goto yy_match;
1888
1889                         case EOB_ACT_LAST_MATCH:
1890                                 (yy_c_buf_p) =
1891                                 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1892
1893                                 yy_current_state = yy_get_previous_state(  );
1894
1895                                 yy_cp = (yy_c_buf_p);
1896                                 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1897                                 goto yy_find_action;
1898                         }
1899                 break;
1900                 }
1901
1902         default:
1903                 YY_FATAL_ERROR(
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 */
1909
1910 /* yy_get_next_buffer - try to read in a new buffer
1911  *
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
1916  */
1917 static int yy_get_next_buffer (void)
1918 {
1919         register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1920         register char *source = (yytext_ptr);
1921         register int number_to_move, i;
1922         int ret_val;
1923
1924         if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1925                 YY_FATAL_ERROR(
1926                 "fatal flex scanner internal error--end of buffer missed" );
1927
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 )
1931                         {
1932                         /* We matched a single character, the EOB, so
1933                          * treat this as a final EOF.
1934                          */
1935                         return EOB_ACT_END_OF_FILE;
1936                         }
1937
1938                 else
1939                         {
1940                         /* We matched some text prior to the EOB, first
1941                          * process it.
1942                          */
1943                         return EOB_ACT_LAST_MATCH;
1944                         }
1945                 }
1946
1947         /* Try to read more data. */
1948
1949         /* First move last chars to start of buffer. */
1950         number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1951
1952         for ( i = 0; i < number_to_move; ++i )
1953                 *(dest++) = *(source++);
1954
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,
1957                  * just force an EOF
1958                  */
1959                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1960
1961         else
1962                 {
1963                         yy_size_t num_to_read =
1964                         YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1965
1966                 while ( num_to_read <= 0 )
1967                         { /* Not enough room in the buffer - grow it. */
1968
1969                         /* just a shorter name for the current buffer */
1970                         YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1971
1972                         int yy_c_buf_p_offset =
1973                                 (int) ((yy_c_buf_p) - b->yy_ch_buf);
1974
1975                         if ( b->yy_is_our_buffer )
1976                                 {
1977                                 yy_size_t new_size = b->yy_buf_size * 2;
1978
1979                                 if ( new_size <= 0 )
1980                                         b->yy_buf_size += b->yy_buf_size / 8;
1981                                 else
1982                                         b->yy_buf_size *= 2;
1983
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  );
1987                                 }
1988                         else
1989                                 /* Can't grow it, we don't own it. */
1990                                 b->yy_ch_buf = 0;
1991
1992                         if ( ! b->yy_ch_buf )
1993                                 YY_FATAL_ERROR(
1994                                 "fatal error - scanner input buffer overflow" );
1995
1996                         (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
1997
1998                         num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1999                                                 number_to_move - 1;
2000
2001                         }
2002
2003                 if ( num_to_read > YY_READ_BUF_SIZE )
2004                         num_to_read = YY_READ_BUF_SIZE;
2005
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 );
2009
2010                 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2011                 }
2012
2013         if ( (yy_n_chars) == 0 )
2014                 {
2015                 if ( number_to_move == YY_MORE_ADJ )
2016                         {
2017                         ret_val = EOB_ACT_END_OF_FILE;
2018                         ldrestart(ldin  );
2019                         }
2020
2021                 else
2022                         {
2023                         ret_val = EOB_ACT_LAST_MATCH;
2024                         YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2025                                 YY_BUFFER_EOF_PENDING;
2026                         }
2027                 }
2028
2029         else
2030                 ret_val = EOB_ACT_CONTINUE_SCAN;
2031
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()" );
2038         }
2039
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;
2043
2044         (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2045
2046         return ret_val;
2047 }
2048
2049 /* yy_get_previous_state - get the state just before the EOB char was reached */
2050
2051     static yy_state_type yy_get_previous_state (void)
2052 {
2053         register yy_state_type yy_current_state;
2054         register char *yy_cp;
2055     
2056         yy_current_state = (yy_start);
2057         yy_current_state += YY_AT_BOL();
2058
2059         for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2060                 {
2061                 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2062                 if ( yy_accept[yy_current_state] )
2063                         {
2064                         (yy_last_accepting_state) = yy_current_state;
2065                         (yy_last_accepting_cpos) = yy_cp;
2066                         }
2067                 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2068                         {
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];
2072                         }
2073                 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2074                 }
2075
2076         return yy_current_state;
2077 }
2078
2079 /* yy_try_NUL_trans - try to make a transition on the NUL character
2080  *
2081  * synopsis
2082  *      next_state = yy_try_NUL_trans( current_state );
2083  */
2084     static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
2085 {
2086         register int yy_is_jam;
2087         register char *yy_cp = (yy_c_buf_p);
2088
2089         register YY_CHAR yy_c = 1;
2090         if ( yy_accept[yy_current_state] )
2091                 {
2092                 (yy_last_accepting_state) = yy_current_state;
2093                 (yy_last_accepting_cpos) = yy_cp;
2094                 }
2095         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2096                 {
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];
2100                 }
2101         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2102         yy_is_jam = (yy_current_state == 218);
2103
2104                 return yy_is_jam ? 0 : yy_current_state;
2105 }
2106
2107     static void yyunput (int c, register char * yy_bp )
2108 {
2109         register char *yy_cp;
2110     
2111     yy_cp = (yy_c_buf_p);
2112
2113         /* undo effects of setting up ldtext */
2114         *yy_cp = (yy_hold_char);
2115
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];
2124
2125                 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2126                         *--dest = *--source;
2127
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;
2132
2133                 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2134                         YY_FATAL_ERROR( "flex scanner push-back overflow" );
2135                 }
2136
2137         *--yy_cp = (char) c;
2138
2139     if ( c == '\n' ){
2140         --ldlineno;
2141     }
2142
2143         (yytext_ptr) = yy_bp;
2144         (yy_hold_char) = *yy_cp;
2145         (yy_c_buf_p) = yy_cp;
2146 }
2147
2148 #ifndef YY_NO_INPUT
2149 #ifdef __cplusplus
2150     static int yyinput (void)
2151 #else
2152     static int input  (void)
2153 #endif
2154
2155 {
2156         int c;
2157     
2158         *(yy_c_buf_p) = (yy_hold_char);
2159
2160         if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2161                 {
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.
2165                  */
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';
2169
2170                 else
2171                         { /* need more input */
2172                         yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
2173                         ++(yy_c_buf_p);
2174
2175                         switch ( yy_get_next_buffer(  ) )
2176                                 {
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.
2186                                          */
2187
2188                                         /* Reset buffer status. */
2189                                         ldrestart(ldin );
2190
2191                                         /*FALLTHROUGH*/
2192
2193                                 case EOB_ACT_END_OF_FILE:
2194                                         {
2195                                         if ( ldwrap( ) )
2196                                                 return EOF;
2197
2198                                         if ( ! (yy_did_buffer_switch_on_eof) )
2199                                                 YY_NEW_FILE;
2200 #ifdef __cplusplus
2201                                         return yyinput();
2202 #else
2203                                         return input();
2204 #endif
2205                                         }
2206
2207                                 case EOB_ACT_CONTINUE_SCAN:
2208                                         (yy_c_buf_p) = (yytext_ptr) + offset;
2209                                         break;
2210                                 }
2211                         }
2212                 }
2213
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);
2217
2218         YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
2219         if ( YY_CURRENT_BUFFER_LVALUE->yy_at_bol )
2220                    
2221     ldlineno++;
2222 ;
2223
2224         return c;
2225 }
2226 #endif  /* ifndef YY_NO_INPUT */
2227
2228 /** Immediately switch to a different input stream.
2229  * @param input_file A readable stream.
2230  * 
2231  * @note This function does not reset the start condition to @c INITIAL .
2232  */
2233     void ldrestart  (FILE * input_file )
2234 {
2235     
2236         if ( ! YY_CURRENT_BUFFER ){
2237         ldensure_buffer_stack ();
2238                 YY_CURRENT_BUFFER_LVALUE =
2239             ld_create_buffer(ldin,YY_BUF_SIZE );
2240         }
2241
2242         ld_init_buffer(YY_CURRENT_BUFFER,input_file );
2243         ld_load_buffer_state( );
2244 }
2245
2246 /** Switch to a different input buffer.
2247  * @param new_buffer The new input buffer.
2248  * 
2249  */
2250     void ld_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
2251 {
2252     
2253         /* TODO. We should be able to replace this entire function body
2254          * with
2255          *              ldpop_buffer_state();
2256          *              ldpush_buffer_state(new_buffer);
2257      */
2258         ldensure_buffer_stack ();
2259         if ( YY_CURRENT_BUFFER == new_buffer )
2260                 return;
2261
2262         if ( YY_CURRENT_BUFFER )
2263                 {
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);
2268                 }
2269
2270         YY_CURRENT_BUFFER_LVALUE = new_buffer;
2271         ld_load_buffer_state( );
2272
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.
2277          */
2278         (yy_did_buffer_switch_on_eof) = 1;
2279 }
2280
2281 static void ld_load_buffer_state  (void)
2282 {
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);
2287 }
2288
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.
2292  * 
2293  * @return the allocated buffer state.
2294  */
2295     YY_BUFFER_STATE ld_create_buffer  (FILE * file, int  size )
2296 {
2297         YY_BUFFER_STATE b;
2298     
2299         b = (YY_BUFFER_STATE) ldalloc(sizeof( struct yy_buffer_state )  );
2300         if ( ! b )
2301                 YY_FATAL_ERROR( "out of dynamic memory in ld_create_buffer()" );
2302
2303         b->yy_buf_size = size;
2304
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.
2307          */
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()" );
2311
2312         b->yy_is_our_buffer = 1;
2313
2314         ld_init_buffer(b,file );
2315
2316         return b;
2317 }
2318
2319 /** Destroy the buffer.
2320  * @param b a buffer created with ld_create_buffer()
2321  * 
2322  */
2323     void ld_delete_buffer (YY_BUFFER_STATE  b )
2324 {
2325     
2326         if ( ! b )
2327                 return;
2328
2329         if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2330                 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2331
2332         if ( b->yy_is_our_buffer )
2333                 ldfree((void *) b->yy_ch_buf  );
2334
2335         ldfree((void *) b  );
2336 }
2337
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.
2341  */
2342     static void ld_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
2343
2344 {
2345         int oerrno = errno;
2346     
2347         ld_flush_buffer(b );
2348
2349         b->yy_input_file = file;
2350         b->yy_fill_buffer = 1;
2351
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.
2355      */
2356     if (b != YY_CURRENT_BUFFER){
2357         b->yy_bs_lineno = 1;
2358         b->yy_bs_column = 0;
2359     }
2360
2361         b->yy_is_interactive = 0;
2362     
2363         errno = oerrno;
2364 }
2365
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.
2368  * 
2369  */
2370     void ld_flush_buffer (YY_BUFFER_STATE  b )
2371 {
2372         if ( ! b )
2373                 return;
2374
2375         b->yy_n_chars = 0;
2376
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.
2380          */
2381         b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2382         b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2383
2384         b->yy_buf_pos = &b->yy_ch_buf[0];
2385
2386         b->yy_at_bol = 1;
2387         b->yy_buffer_status = YY_BUFFER_NEW;
2388
2389         if ( b == YY_CURRENT_BUFFER )
2390                 ld_load_buffer_state( );
2391 }
2392
2393 /** Pushes the new state onto the stack. The new state becomes
2394  *  the current state. This function will allocate the stack
2395  *  if necessary.
2396  *  @param new_buffer The new state.
2397  *  
2398  */
2399 void ldpush_buffer_state (YY_BUFFER_STATE new_buffer )
2400 {
2401         if (new_buffer == NULL)
2402                 return;
2403
2404         ldensure_buffer_stack();
2405
2406         /* This block is copied from ld_switch_to_buffer. */
2407         if ( YY_CURRENT_BUFFER )
2408                 {
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);
2413                 }
2414
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;
2419
2420         /* copied from ld_switch_to_buffer. */
2421         ld_load_buffer_state( );
2422         (yy_did_buffer_switch_on_eof) = 1;
2423 }
2424
2425 /** Removes and deletes the top of the stack, if present.
2426  *  The next element becomes the new top.
2427  *  
2428  */
2429 void ldpop_buffer_state (void)
2430 {
2431         if (!YY_CURRENT_BUFFER)
2432                 return;
2433
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);
2438
2439         if (YY_CURRENT_BUFFER) {
2440                 ld_load_buffer_state( );
2441                 (yy_did_buffer_switch_on_eof) = 1;
2442         }
2443 }
2444
2445 /* Allocates the stack if it does not exist.
2446  *  Guarantees space for at least one push.
2447  */
2448 static void ldensure_buffer_stack (void)
2449 {
2450         yy_size_t num_to_alloc;
2451     
2452         if (!(yy_buffer_stack)) {
2453
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.
2457          */
2458                 num_to_alloc = 1;
2459                 (yy_buffer_stack) = (struct yy_buffer_state**)ldalloc
2460                                                                 (num_to_alloc * sizeof(struct yy_buffer_state*)
2461                                                                 );
2462                 if ( ! (yy_buffer_stack) )
2463                         YY_FATAL_ERROR( "out of dynamic memory in ldensure_buffer_stack()" );
2464                                                                   
2465                 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2466                                 
2467                 (yy_buffer_stack_max) = num_to_alloc;
2468                 (yy_buffer_stack_top) = 0;
2469                 return;
2470         }
2471
2472         if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2473
2474                 /* Increase the buffer to prepare for a possible push. */
2475                 int grow_size = 8 /* arbitrary grow size */;
2476
2477                 num_to_alloc = (yy_buffer_stack_max) + grow_size;
2478                 (yy_buffer_stack) = (struct yy_buffer_state**)ldrealloc
2479                                                                 ((yy_buffer_stack),
2480                                                                 num_to_alloc * sizeof(struct yy_buffer_state*)
2481                                                                 );
2482                 if ( ! (yy_buffer_stack) )
2483                         YY_FATAL_ERROR( "out of dynamic memory in ldensure_buffer_stack()" );
2484
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;
2488         }
2489 }
2490
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
2494  * 
2495  * @return the newly allocated buffer state object. 
2496  */
2497 YY_BUFFER_STATE ld_scan_buffer  (char * base, yy_size_t  size )
2498 {
2499         YY_BUFFER_STATE b;
2500     
2501         if ( size < 2 ||
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. */
2505                 return 0;
2506
2507         b = (YY_BUFFER_STATE) ldalloc(sizeof( struct yy_buffer_state )  );
2508         if ( ! b )
2509                 YY_FATAL_ERROR( "out of dynamic memory in ld_scan_buffer()" );
2510
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;
2517         b->yy_at_bol = 1;
2518         b->yy_fill_buffer = 0;
2519         b->yy_buffer_status = YY_BUFFER_NEW;
2520
2521         ld_switch_to_buffer(b  );
2522
2523         return b;
2524 }
2525
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
2529  * 
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.
2533  */
2534 YY_BUFFER_STATE ld_scan_string (yyconst char * yystr )
2535 {
2536     
2537         return ld_scan_bytes(yystr,strlen(yystr) );
2538 }
2539
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.
2544  * 
2545  * @return the newly allocated buffer state object.
2546  */
2547 YY_BUFFER_STATE ld_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
2548 {
2549         YY_BUFFER_STATE b;
2550         char *buf;
2551         yy_size_t n;
2552         yy_size_t i;
2553     
2554         /* Get memory for full buffer, including space for trailing EOB's. */
2555         n = _yybytes_len + 2;
2556         buf = (char *) ldalloc(n  );
2557         if ( ! buf )
2558                 YY_FATAL_ERROR( "out of dynamic memory in ld_scan_bytes()" );
2559
2560         for ( i = 0; i < _yybytes_len; ++i )
2561                 buf[i] = yybytes[i];
2562
2563         buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2564
2565         b = ld_scan_buffer(buf,n );
2566         if ( ! b )
2567                 YY_FATAL_ERROR( "bad buffer in ld_scan_bytes()" );
2568
2569         /* It's okay to grow etc. this buffer, and we should throw it
2570          * away when we're done.
2571          */
2572         b->yy_is_our_buffer = 1;
2573
2574         return b;
2575 }
2576
2577 #ifndef YY_EXIT_FAILURE
2578 #define YY_EXIT_FAILURE 2
2579 #endif
2580
2581 static void yy_fatal_error (yyconst char* msg )
2582 {
2583         (void) fprintf( stderr, "%s\n", msg );
2584         exit( YY_EXIT_FAILURE );
2585 }
2586
2587 /* Redefine yyless() so it works in section 3 code. */
2588
2589 #undef yyless
2590 #define yyless(n) \
2591         do \
2592                 { \
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; \
2601                 } \
2602         while ( 0 )
2603
2604 /* Accessor  methods (get/set functions) to struct members. */
2605
2606 /** Get the current line number.
2607  * 
2608  */
2609 int ldget_lineno  (void)
2610 {
2611         
2612     return ldlineno;
2613 }
2614
2615 /** Get the input stream.
2616  * 
2617  */
2618 FILE *ldget_in  (void)
2619 {
2620         return ldin;
2621 }
2622
2623 /** Get the output stream.
2624  * 
2625  */
2626 FILE *ldget_out  (void)
2627 {
2628         return ldout;
2629 }
2630
2631 /** Get the length of the current token.
2632  * 
2633  */
2634 yy_size_t ldget_leng  (void)
2635 {
2636         return ldleng;
2637 }
2638
2639 /** Get the current token.
2640  * 
2641  */
2642
2643 char *ldget_text  (void)
2644 {
2645         return ldtext;
2646 }
2647
2648 /** Set the current line number.
2649  * @param line_number
2650  * 
2651  */
2652 void ldset_lineno (int  line_number )
2653 {
2654     
2655     ldlineno = line_number;
2656 }
2657
2658 /** Set the input stream. This does not discard the current
2659  * input buffer.
2660  * @param in_str A readable stream.
2661  * 
2662  * @see ld_switch_to_buffer
2663  */
2664 void ldset_in (FILE *  in_str )
2665 {
2666         ldin = in_str ;
2667 }
2668
2669 void ldset_out (FILE *  out_str )
2670 {
2671         ldout = out_str ;
2672 }
2673
2674 int ldget_debug  (void)
2675 {
2676         return ld_flex_debug;
2677 }
2678
2679 void ldset_debug (int  bdebug )
2680 {
2681         ld_flex_debug = bdebug ;
2682 }
2683
2684 static int yy_init_globals (void)
2685 {
2686         /* Initialization is the same as for the non-reentrant scanner.
2687      * This function is called from ldlex_destroy(), so don't allocate here.
2688      */
2689
2690     /* We do not touch ldlineno unless the option is enabled. */
2691     ldlineno =  1;
2692     
2693     (yy_buffer_stack) = 0;
2694     (yy_buffer_stack_top) = 0;
2695     (yy_buffer_stack_max) = 0;
2696     (yy_c_buf_p) = (char *) 0;
2697     (yy_init) = 0;
2698     (yy_start) = 0;
2699
2700 /* Defined in main.c */
2701 #ifdef YY_STDINIT
2702     ldin = stdin;
2703     ldout = stdout;
2704 #else
2705     ldin = (FILE *) 0;
2706     ldout = (FILE *) 0;
2707 #endif
2708
2709     /* For future reference: Set errno on error, since we are called by
2710      * ldlex_init()
2711      */
2712     return 0;
2713 }
2714
2715 /* ldlex_destroy is for both reentrant and non-reentrant scanners. */
2716 int ldlex_destroy  (void)
2717 {
2718     
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();
2724         }
2725
2726         /* Destroy the stack itself. */
2727         ldfree((yy_buffer_stack) );
2728         (yy_buffer_stack) = NULL;
2729
2730     /* Reset the globals. This is important in a non-reentrant scanner so the next time
2731      * ldlex() is called, initialization will occur. */
2732     yy_init_globals( );
2733
2734     return 0;
2735 }
2736
2737 /*
2738  * Internal utility routines.
2739  */
2740
2741 #ifndef yytext_ptr
2742 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2743 {
2744         register int i;
2745         for ( i = 0; i < n; ++i )
2746                 s1[i] = s2[i];
2747 }
2748 #endif
2749
2750 #ifdef YY_NEED_STRLEN
2751 static int yy_flex_strlen (yyconst char * s )
2752 {
2753         register int n;
2754         for ( n = 0; s[n]; ++n )
2755                 ;
2756
2757         return n;
2758 }
2759 #endif
2760
2761 void *ldalloc (yy_size_t  size )
2762 {
2763         return (void *) malloc( size );
2764 }
2765
2766 void *ldrealloc  (void * ptr, yy_size_t  size )
2767 {
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.
2774          */
2775         return (void *) realloc( (char *) ptr, size );
2776 }
2777
2778 void ldfree (void * ptr )
2779 {
2780         free( (char *) ptr );   /* see ldrealloc() for (char *) cast */
2781 }
2782
2783 #define YYTABLES_NAME "yytables"
2784
2785 #line 198 "/home/mark/src/elfutils/src/ldlex.l"
2786
2787
2788
2789 static void
2790 eat_comment (void)
2791 {
2792   while (1)
2793     {
2794       int c = input ();
2795
2796       while (c != '*' && c != EOF)
2797         c = input ();
2798
2799       if (c == '*')
2800         {
2801           c = input ();
2802           while (c == '*')
2803             c = input ();
2804           if (c == '/')
2805             break;
2806         }
2807
2808       if (c == EOF)
2809         {
2810           /* XXX Use the setjmp buffer and signal EOF in comment */
2811           error (0, 0, gettext ("EOF in comment"));
2812           break;
2813         }
2814     }
2815 }
2816
2817
2818 static void
2819 eat_to_eol (bool empty)
2820 {
2821   bool warned = false;
2822
2823   while (1)
2824     {
2825       int c = input ();
2826
2827       if (c == EOF)
2828         break;
2829       if (c == '\n')
2830         {
2831           ++ldlineno;
2832           break;
2833         }
2834
2835       if (empty && ! isspace (c) && ! warned)
2836         {
2837           error (0, 0, gettext ("%d: garbage at end of line"), ldlineno);
2838           warned = true;
2839         }
2840     }
2841 }
2842
2843
2844 static int
2845 attrib_convert (int c)
2846 {
2847   if (c == 'X')
2848     return PF_X;
2849   if (c == 'W')
2850     return PF_W;
2851   assert (c == 'R');
2852   return PF_R;
2853 }
2854
2855
2856 static void
2857 push_state (enum prepstate state)
2858 {
2859   if (prepdepth >= MAX_PREPDEPTH)
2860     error (EXIT_FAILURE, 0, gettext ("%d: conditionals nested too deep"),
2861            ldlineno);
2862
2863   prepstate[prepdepth++] = state;
2864 }
2865
2866
2867 static int
2868 pop_state (void)
2869 {
2870   if (prepdepth == 0)
2871     error (0, 0, gettext ("%d: unexpected #endif"), ldlineno);
2872   else
2873     --prepdepth;
2874
2875   return prepdepth == 0 ? INITIAL : IGNORE;
2876 }
2877
2878
2879 static int
2880 handle_ifdef (void)
2881 {
2882   char idbuf[50];
2883   char *id = idbuf;
2884   size_t idlen = 0;
2885   size_t idmax = sizeof (idbuf);
2886   bool ignore_ws = true;
2887   bool defined = false;
2888   int result;
2889
2890   while (1)
2891     {
2892       int c = input ();
2893
2894       if (isspace (c) && ignore_ws)
2895         continue;
2896
2897       if (c != '_' && (c < 'a' || c > 'z') && (c < 'A' || c > 'Z')
2898           && (idlen == 0 || c < '0' || c > '9'))
2899         {
2900           unput (c);
2901           break;
2902         }
2903
2904       if (idlen == idmax)
2905         {
2906           char *newp = (char *) alloca (idmax *= 2);
2907           id = memcpy (newp, id, idlen);
2908         }
2909
2910       id[idlen++] = c;
2911       ignore_ws = false;
2912     }
2913
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;
2917
2918   if (defined)
2919     result = INITIAL;
2920   else
2921     {
2922       push_state (skip_if);
2923       result = IGNORE;
2924     }
2925
2926   return result;
2927 }
2928
2929
2930 static void
2931 invalid_char (int ch)
2932 {
2933   error (0, 0, (isascii (ch)
2934                 ? gettext ("invalid character '%c' at line %d; ignored")
2935                 : gettext ("invalid character '\\%o' at line %d; ignored")),
2936          ch, ldlineno);
2937 }
2938
2939
2940 // Local Variables:
2941 // mode: C
2942 // End:
2943