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