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