source: trunk/src/binutils/ld/ldlex.c@ 567

Last change on this file since 567 was 10, checked in by bird, 22 years ago

Initial revision

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