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