~ubuntu-branches/ubuntu/hoary/binutils/hoary

« back to all changes in this revision

Viewing changes to binutils/deflex.c

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2005-03-18 13:07:52 UTC
  • mfrom: (1.1.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20050318130752-j4i37zgqclj53b94
Tags: 2.15-5ubuntu2
debian/rules: Call pkgstriptranslations if present (the package does not
use debhelper, thus it does not happen automatically).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* A lexical scanner generated by flex */
 
2
 
 
3
/* Scanner skeleton version:
 
4
 * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $
 
5
 */
 
6
 
 
7
#define FLEX_SCANNER
 
8
#define YY_FLEX_MAJOR_VERSION 2
 
9
#define YY_FLEX_MINOR_VERSION 5
 
10
 
 
11
#include <stdio.h>
 
12
#include <errno.h>
 
13
 
 
14
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
 
15
#ifdef c_plusplus
 
16
#ifndef __cplusplus
 
17
#define __cplusplus
 
18
#endif
 
19
#endif
 
20
 
 
21
 
 
22
#ifdef __cplusplus
 
23
 
 
24
#include <stdlib.h>
 
25
#ifndef _WIN32
 
26
#include <unistd.h>
 
27
#endif
 
28
 
 
29
/* Use prototypes in function declarations. */
 
30
#define YY_USE_PROTOS
 
31
 
 
32
/* The "const" storage-class-modifier is valid. */
 
33
#define YY_USE_CONST
 
34
 
 
35
#else   /* ! __cplusplus */
 
36
 
 
37
#if __STDC__
 
38
 
 
39
#define YY_USE_PROTOS
 
40
#define YY_USE_CONST
 
41
 
 
42
#endif  /* __STDC__ */
 
43
#endif  /* ! __cplusplus */
 
44
 
 
45
#ifdef __TURBOC__
 
46
 #pragma warn -rch
 
47
 #pragma warn -use
 
48
#include <io.h>
 
49
#include <stdlib.h>
 
50
#define YY_USE_CONST
 
51
#define YY_USE_PROTOS
 
52
#endif
 
53
 
 
54
#ifdef YY_USE_CONST
 
55
#define yyconst const
 
56
#else
 
57
#define yyconst
 
58
#endif
 
59
 
 
60
 
 
61
#ifdef YY_USE_PROTOS
 
62
#define YY_PROTO(proto) proto
 
63
#else
 
64
#define YY_PROTO(proto) ()
 
65
#endif
 
66
 
 
67
 
 
68
/* Returned upon end-of-file. */
 
69
#define YY_NULL 0
 
70
 
 
71
/* Promotes a possibly negative, possibly signed char to an unsigned
 
72
 * integer for use as an array index.  If the signed char is negative,
 
73
 * we want to instead treat it as an 8-bit unsigned char, hence the
 
74
 * double cast.
 
75
 */
 
76
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
 
77
 
 
78
/* Enter a start condition.  This macro really ought to take a parameter,
 
79
 * but we do it the disgusting crufty way forced on us by the ()-less
 
80
 * definition of BEGIN.
 
81
 */
 
82
#define BEGIN yy_start = 1 + 2 *
 
83
 
 
84
/* Translate the current start state into a value that can be later handed
 
85
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
 
86
 * compatibility.
 
87
 */
 
88
#define YY_START ((yy_start - 1) / 2)
 
89
#define YYSTATE YY_START
 
90
 
 
91
/* Action number for EOF rule of a given start state. */
 
92
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
 
93
 
 
94
/* Special action meaning "start processing a new file". */
 
95
#define YY_NEW_FILE yyrestart( yyin )
 
96
 
 
97
#define YY_END_OF_BUFFER_CHAR 0
 
98
 
 
99
/* Size of default input buffer. */
 
100
#define YY_BUF_SIZE 16384
 
101
 
 
102
typedef struct yy_buffer_state *YY_BUFFER_STATE;
 
103
 
 
104
extern int yyleng;
 
105
extern FILE *yyin, *yyout;
 
106
 
 
107
#define EOB_ACT_CONTINUE_SCAN 0
 
108
#define EOB_ACT_END_OF_FILE 1
 
109
#define EOB_ACT_LAST_MATCH 2
 
110
 
 
111
/* The funky do-while in the following #define is used to turn the definition
 
112
 * int a single C statement (which needs a semi-colon terminator).  This
 
113
 * avoids problems with code like:
 
114
 *
 
115
 *      if ( condition_holds )
 
116
 *              yyless( 5 );
 
117
 *      else
 
118
 *              do_something_else();
 
119
 *
 
120
 * Prior to using the do-while the compiler would get upset at the
 
121
 * "else" because it interpreted the "if" statement as being all
 
122
 * done when it reached the ';' after the yyless() call.
 
123
 */
 
124
 
 
125
/* Return all but the first 'n' matched characters back to the input stream. */
 
126
 
 
127
#define yyless(n) \
 
128
        do \
 
129
                { \
 
130
                /* Undo effects of setting up yytext. */ \
 
131
                *yy_cp = yy_hold_char; \
 
132
                YY_RESTORE_YY_MORE_OFFSET \
 
133
                yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
 
134
                YY_DO_BEFORE_ACTION; /* set up yytext again */ \
 
135
                } \
 
136
        while ( 0 )
 
137
 
 
138
#define unput(c) yyunput( c, yytext_ptr )
 
139
 
 
140
/* The following is because we cannot portably get our hands on size_t
 
141
 * (without autoconf's help, which isn't available because we want
 
142
 * flex-generated scanners to compile on their own).
 
143
 */
 
144
typedef unsigned int yy_size_t;
 
145
 
 
146
 
 
147
struct yy_buffer_state
 
148
        {
 
149
        FILE *yy_input_file;
 
150
 
 
151
        char *yy_ch_buf;                /* input buffer */
 
152
        char *yy_buf_pos;               /* current position in input buffer */
 
153
 
 
154
        /* Size of input buffer in bytes, not including room for EOB
 
155
         * characters.
 
156
         */
 
157
        yy_size_t yy_buf_size;
 
158
 
 
159
        /* Number of characters read into yy_ch_buf, not including EOB
 
160
         * characters.
 
161
         */
 
162
        int yy_n_chars;
 
163
 
 
164
        /* Whether we "own" the buffer - i.e., we know we created it,
 
165
         * and can realloc() it to grow it, and should free() it to
 
166
         * delete it.
 
167
         */
 
168
        int yy_is_our_buffer;
 
169
 
 
170
        /* Whether this is an "interactive" input source; if so, and
 
171
         * if we're using stdio for input, then we want to use getc()
 
172
         * instead of fread(), to make sure we stop fetching input after
 
173
         * each newline.
 
174
         */
 
175
        int yy_is_interactive;
 
176
 
 
177
        /* Whether we're considered to be at the beginning of a line.
 
178
         * If so, '^' rules will be active on the next match, otherwise
 
179
         * not.
 
180
         */
 
181
        int yy_at_bol;
 
182
 
 
183
        /* Whether to try to fill the input buffer when we reach the
 
184
         * end of it.
 
185
         */
 
186
        int yy_fill_buffer;
 
187
 
 
188
        int yy_buffer_status;
 
189
#define YY_BUFFER_NEW 0
 
190
#define YY_BUFFER_NORMAL 1
 
191
        /* When an EOF's been seen but there's still some text to process
 
192
         * then we mark the buffer as YY_EOF_PENDING, to indicate that we
 
193
         * shouldn't try reading from the input source any more.  We might
 
194
         * still have a bunch of tokens to match, though, because of
 
195
         * possible backing-up.
 
196
         *
 
197
         * When we actually see the EOF, we change the status to "new"
 
198
         * (via yyrestart()), so that the user can continue scanning by
 
199
         * just pointing yyin at a new input file.
 
200
         */
 
201
#define YY_BUFFER_EOF_PENDING 2
 
202
        };
 
203
 
 
204
static YY_BUFFER_STATE yy_current_buffer = 0;
 
205
 
 
206
/* We provide macros for accessing buffer states in case in the
 
207
 * future we want to put the buffer states in a more general
 
208
 * "scanner state".
 
209
 */
 
210
#define YY_CURRENT_BUFFER yy_current_buffer
 
211
 
 
212
 
 
213
/* yy_hold_char holds the character lost when yytext is formed. */
 
214
static char yy_hold_char;
 
215
 
 
216
static int yy_n_chars;          /* number of characters read into yy_ch_buf */
 
217
 
 
218
 
 
219
int yyleng;
 
220
 
 
221
/* Points to current character in buffer. */
 
222
static char *yy_c_buf_p = (char *) 0;
 
223
static int yy_init = 1;         /* whether we need to initialize */
 
224
static int yy_start = 0;        /* start state number */
 
225
 
 
226
/* Flag which is used to allow yywrap()'s to do buffer switches
 
227
 * instead of setting up a fresh yyin.  A bit of a hack ...
 
228
 */
 
229
static int yy_did_buffer_switch_on_eof;
 
230
 
 
231
void yyrestart YY_PROTO(( FILE *input_file ));
 
232
 
 
233
void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
 
234
void yy_load_buffer_state YY_PROTO(( void ));
 
235
YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
 
236
void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
 
237
void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
 
238
void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
 
239
#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
 
240
 
 
241
YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
 
242
YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
 
243
YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
 
244
 
 
245
static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
 
246
static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));
 
247
static void yy_flex_free YY_PROTO(( void * ));
 
248
 
 
249
#define yy_new_buffer yy_create_buffer
 
250
 
 
251
#define yy_set_interactive(is_interactive) \
 
252
        { \
 
253
        if ( ! yy_current_buffer ) \
 
254
                yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
 
255
        yy_current_buffer->yy_is_interactive = is_interactive; \
 
256
        }
 
257
 
 
258
#define yy_set_bol(at_bol) \
 
259
        { \
 
260
        if ( ! yy_current_buffer ) \
 
261
                yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
 
262
        yy_current_buffer->yy_at_bol = at_bol; \
 
263
        }
 
264
 
 
265
#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
 
266
 
 
267
typedef unsigned char YY_CHAR;
 
268
FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
 
269
typedef int yy_state_type;
 
270
extern char *yytext;
 
271
#define yytext_ptr yytext
 
272
 
 
273
static yy_state_type yy_get_previous_state YY_PROTO(( void ));
 
274
static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
 
275
static int yy_get_next_buffer YY_PROTO(( void ));
 
276
static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
 
277
 
 
278
/* Done after the current pattern has been matched and before the
 
279
 * corresponding action - sets up yytext.
 
280
 */
 
281
#define YY_DO_BEFORE_ACTION \
 
282
        yytext_ptr = yy_bp; \
 
283
        yyleng = (int) (yy_cp - yy_bp); \
 
284
        yy_hold_char = *yy_cp; \
 
285
        *yy_cp = '\0'; \
 
286
        yy_c_buf_p = yy_cp;
 
287
 
 
288
#define YY_NUM_RULES 40
 
289
#define YY_END_OF_BUFFER 41
 
290
static yyconst short int yy_accept[197] =
 
291
    {   0,
 
292
        0,    0,   41,   40,   34,   35,   33,   40,   28,   40,
 
293
       31,   39,   37,   27,   32,   36,   38,   28,   28,   28,
 
294
       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
 
295
       28,   28,    0,   29,   28,    0,   30,   31,   27,   32,
 
296
       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
 
297
       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
 
298
       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
 
299
       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
 
300
       28,   28,   28,   28,   28,   12,    6,   28,    7,   28,
 
301
       28,   28,   28,   28,   28,   28,   28,    1,   28,   28,
 
302
 
 
303
       28,   16,   28,   28,   28,   28,   28,   28,   28,   28,
 
304
       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
 
305
       28,   28,   28,   28,   28,   28,   28,   28,   28,   17,
 
306
       28,   28,   28,   28,   28,   28,   28,   28,   28,   28,
 
307
       14,   28,   28,   28,   19,   21,   28,   28,   28,   28,
 
308
       28,   28,   18,    9,   28,   10,   28,   28,    2,   28,
 
309
       28,   15,   28,   28,   28,   28,   11,   13,   28,    5,
 
310
       28,   28,   22,   28,    8,   28,   28,   28,   28,   28,
 
311
       28,   20,    4,   28,   28,   28,   24,   28,   26,   28,
 
312
        3,   28,   28,   23,   25,    0
 
313
 
 
314
    } ;
 
315
 
 
316
static yyconst int yy_ec[256] =
 
317
    {   0,
 
318
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
 
319
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
320
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
321
        1,    4,    1,    5,    1,    6,    1,    1,    7,    1,
 
322
        1,    8,    1,    9,    6,   10,   11,   12,   12,   12,
 
323
       12,   12,   12,   12,   12,   12,   12,    6,   13,    1,
 
324
       14,    1,    6,   15,   16,   17,   18,   19,   20,   21,
 
325
       22,   23,   24,    6,   25,   26,   27,   28,   29,   30,
 
326
        6,   31,   32,   33,   34,   35,   36,   37,   38,   39,
 
327
        1,    1,    1,    1,    6,    1,   21,   21,   21,   21,
 
328
 
 
329
       21,   21,    6,    6,    6,    6,    6,    6,    6,    6,
 
330
        6,    6,    6,    6,    6,    6,    6,    6,    6,   21,
 
331
        6,    6,    1,    1,    1,    1,    1,    1,    1,    1,
 
332
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
333
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
334
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
335
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
336
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
337
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
338
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
339
 
 
340
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
341
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
342
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
343
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
344
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
345
        1,    1,    1,    1,    1
 
346
    } ;
 
347
 
 
348
static yyconst int yy_meta[40] =
 
349
    {   0,
 
350
        1,    1,    2,    1,    1,    3,    1,    1,    1,    1,
 
351
        4,    5,    1,    1,    4,    6,    6,    6,    6,    6,
 
352
        6,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 
353
        3,    3,    3,    3,    3,    3,    3,    3,    3
 
354
    } ;
 
355
 
 
356
static yyconst short int yy_base[204] =
 
357
    {   0,
 
358
        0,    0,  228,  229,  229,  229,  229,  222,    0,  219,
 
359
        0,  229,  229,    0,    0,  229,    0,  209,  195,   24,
 
360
      186,  202,   14,  197,  186,   27,  188,  198,   25,  197,
 
361
      196,  184,  209,  229,    0,  206,  229,    0,    0,    0,
 
362
        0,  180,   27,  178,  178,   27,  193,  178,  183,  189,
 
363
      179,  177,  175,  178,  185,  182,  183,  170,  181,  165,
 
364
      164,  170,  173,  172,  159,  174,  171,  170,  158,  156,
 
365
      156,  151,  152,  149,  161,   34,  145,  160,  145,  146,
 
366
      154,  157,  147,  141,  139,    0,    0,  138,    0,  139,
 
367
      135,  137,  135,  135,   29,  149,  140,    0,  136,  139,
 
368
 
 
369
      145,    0,  136,  139,  132,  132,   30,  132,  135,  138,
 
370
      129,  119,  118,  126,  116,  122,  119,  115,  115,  124,
 
371
      127,  109,  112,  121,  119,  106,  111,  108,  106,    0,
 
372
      106,  103,  112,   99,   91,   97,   99,   95,   88,   99,
 
373
        0,   93,  103,   94,    0,    0,   97,   91,   87,   90,
 
374
       84,   83,    0,    0,   95,    0,   97,   80,    0,   92,
 
375
       91,    0,   78,   70,   91,   74,    0,    0,   82,    0,
 
376
       89,   88,    0,   84,    0,   82,   85,   83,   69,   66,
 
377
       56,    0,    0,   39,   36,   35,    0,   44,    0,   43,
 
378
        0,   40,   39,    0,    0,  229,   66,   70,   76,   82,
 
379
 
 
380
       84,   90,   94
 
381
    } ;
 
382
 
 
383
static yyconst short int yy_def[204] =
 
384
    {   0,
 
385
      196,    1,  196,  196,  196,  196,  196,  197,  198,  199,
 
386
      200,  196,  196,  201,  202,  196,  203,  198,  198,  198,
 
387
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
388
      198,  198,  197,  196,  198,  199,  196,  200,  201,  202,
 
389
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
390
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
391
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
392
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
393
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
394
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
395
 
 
396
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
397
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
398
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
399
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
400
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
401
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
402
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
403
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
404
      198,  198,  198,  198,  198,  198,  198,  198,  198,  198,
 
405
      198,  198,  198,  198,  198,    0,  196,  196,  196,  196,
 
406
 
 
407
      196,  196,  196
 
408
    } ;
 
409
 
 
410
static yyconst short int yy_nxt[269] =
 
411
    {   0,
 
412
        4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
 
413
        4,   14,   15,   16,   17,    9,   18,   19,   20,   21,
 
414
        9,    9,   22,   23,    9,   24,   25,   26,    9,   27,
 
415
       28,   29,   30,    9,   31,   32,    9,    9,    9,   44,
 
416
       48,   49,   52,   45,   56,   64,   68,   57,   58,   99,
 
417
      116,  127,  117,  128,   65,   53,   69,   59,  195,  194,
 
418
      193,  192,  191,  190,  189,  100,   33,   33,   33,   33,
 
419
       33,   33,   35,   35,   35,   35,   36,   36,   36,   36,
 
420
       36,   36,   38,  188,   38,   38,   38,   38,   39,   39,
 
421
       40,  187,   40,   40,   40,   40,   41,  186,  185,   41,
 
422
 
 
423
      184,  183,  182,  181,  180,  179,  178,  177,  176,  175,
 
424
      174,  173,  172,  171,  170,  169,  168,  167,  166,  165,
 
425
      164,  163,  162,  161,  160,  159,  158,  157,  156,  155,
 
426
      154,  153,  152,  151,  150,  149,  148,  147,  146,  145,
 
427
      144,  143,  142,  141,  140,  139,  138,  137,  136,  135,
 
428
      134,  133,  132,  131,  130,  129,  126,  125,  124,  123,
 
429
      122,  121,  120,  119,  118,  115,  114,  113,  112,  111,
 
430
      110,  109,  108,  107,  106,  105,  104,  103,  102,  101,
 
431
       98,   97,   96,   95,   94,   93,   92,   91,   90,   89,
 
432
       88,   87,   86,   85,   84,   83,   82,   81,   80,   79,
 
433
 
 
434
       78,   77,   76,   75,   74,   73,   72,   71,   70,   67,
 
435
       66,   63,   37,   34,   62,   61,   60,   55,   54,   51,
 
436
       50,   47,   46,   43,   42,   37,   34,  196,    3,  196,
 
437
      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
 
438
      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
 
439
      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
 
440
      196,  196,  196,  196,  196,  196,  196,  196
 
441
    } ;
 
442
 
 
443
static yyconst short int yy_chk[269] =
 
444
    {   0,
 
445
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
446
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
447
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
 
448
        1,    1,    1,    1,    1,    1,    1,    1,    1,   20,
 
449
       23,   23,   26,   20,   29,   43,   46,   29,   29,   76,
 
450
       95,  107,   95,  107,   43,   26,   46,   29,  193,  192,
 
451
      190,  188,  186,  185,  184,   76,  197,  197,  197,  197,
 
452
      197,  197,  198,  198,  198,  198,  199,  199,  199,  199,
 
453
      199,  199,  200,  181,  200,  200,  200,  200,  201,  201,
 
454
      202,  180,  202,  202,  202,  202,  203,  179,  178,  203,
 
455
 
 
456
      177,  176,  174,  172,  171,  169,  166,  165,  164,  163,
 
457
      161,  160,  158,  157,  155,  152,  151,  150,  149,  148,
 
458
      147,  144,  143,  142,  140,  139,  138,  137,  136,  135,
 
459
      134,  133,  132,  131,  129,  128,  127,  126,  125,  124,
 
460
      123,  122,  121,  120,  119,  118,  117,  116,  115,  114,
 
461
      113,  112,  111,  110,  109,  108,  106,  105,  104,  103,
 
462
      101,  100,   99,   97,   96,   94,   93,   92,   91,   90,
 
463
       88,   85,   84,   83,   82,   81,   80,   79,   78,   77,
 
464
       75,   74,   73,   72,   71,   70,   69,   68,   67,   66,
 
465
       65,   64,   63,   62,   61,   60,   59,   58,   57,   56,
 
466
 
 
467
       55,   54,   53,   52,   51,   50,   49,   48,   47,   45,
 
468
       44,   42,   36,   33,   32,   31,   30,   28,   27,   25,
 
469
       24,   22,   21,   19,   18,   10,    8,    3,  196,  196,
 
470
      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
 
471
      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
 
472
      196,  196,  196,  196,  196,  196,  196,  196,  196,  196,
 
473
      196,  196,  196,  196,  196,  196,  196,  196
 
474
    } ;
 
475
 
 
476
static yy_state_type yy_last_accepting_state;
 
477
static char *yy_last_accepting_cpos;
 
478
 
 
479
/* The intent behind this definition is that it'll catch
 
480
 * any uses of REJECT which flex missed.
 
481
 */
 
482
#define REJECT reject_used_but_not_detected
 
483
#define yymore() yymore_used_but_not_detected
 
484
#define YY_MORE_ADJ 0
 
485
#define YY_RESTORE_YY_MORE_OFFSET
 
486
char *yytext;
 
487
#line 1 "deflex.l"
 
488
#define INITIAL 0
 
489
#line 2 "deflex.l"
 
490
 
 
491
/*  Copyright 1995, 1997, 1998, 1999, 2002, 2003, 2004
 
492
    Free Software Foundation, Inc.
 
493
 
 
494
    This file is part of GNU Binutils.
 
495
 
 
496
    This program is free software; you can redistribute it and/or modify
 
497
    it under the terms of the GNU General Public License as published by
 
498
    the Free Software Foundation; either version 2 of the License, or
 
499
    (at your option) any later version.
 
500
 
 
501
    This program is distributed in the hope that it will be useful,
 
502
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
503
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
504
    GNU General Public License for more details.
 
505
 
 
506
    You should have received a copy of the GNU General Public License
 
507
    along with this program; if not, write to the Free Software
 
508
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
509
 
 
510
 
 
511
/* Contributed by Steve Chamberlain: sac@cygnus.com  */
 
512
 
 
513
#define DONTDECLARE_MALLOC
 
514
#include "libiberty.h"
 
515
#include "defparse.h"
 
516
#include "dlltool.h"
 
517
 
 
518
int linenumber;
 
519
 
 
520
#line 521 "lex.yy.c"
 
521
 
 
522
/* Macros after this point can all be overridden by user definitions in
 
523
 * section 1.
 
524
 */
 
525
 
 
526
#ifndef YY_SKIP_YYWRAP
 
527
#ifdef __cplusplus
 
528
extern "C" int yywrap YY_PROTO(( void ));
 
529
#else
 
530
extern int yywrap YY_PROTO(( void ));
 
531
#endif
 
532
#endif
 
533
 
 
534
#ifndef YY_NO_UNPUT
 
535
static void yyunput YY_PROTO(( int c, char *buf_ptr ));
 
536
#endif
 
537
 
 
538
#ifndef yytext_ptr
 
539
static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
 
540
#endif
 
541
 
 
542
#ifdef YY_NEED_STRLEN
 
543
static int yy_flex_strlen YY_PROTO(( yyconst char * ));
 
544
#endif
 
545
 
 
546
#ifndef YY_NO_INPUT
 
547
#ifdef __cplusplus
 
548
static int yyinput YY_PROTO(( void ));
 
549
#else
 
550
static int input YY_PROTO(( void ));
 
551
#endif
 
552
#endif
 
553
 
 
554
#if YY_STACK_USED
 
555
static int yy_start_stack_ptr = 0;
 
556
static int yy_start_stack_depth = 0;
 
557
static int *yy_start_stack = 0;
 
558
#ifndef YY_NO_PUSH_STATE
 
559
static void yy_push_state YY_PROTO(( int new_state ));
 
560
#endif
 
561
#ifndef YY_NO_POP_STATE
 
562
static void yy_pop_state YY_PROTO(( void ));
 
563
#endif
 
564
#ifndef YY_NO_TOP_STATE
 
565
static int yy_top_state YY_PROTO(( void ));
 
566
#endif
 
567
 
 
568
#else
 
569
#define YY_NO_PUSH_STATE 1
 
570
#define YY_NO_POP_STATE 1
 
571
#define YY_NO_TOP_STATE 1
 
572
#endif
 
573
 
 
574
#ifdef YY_MALLOC_DECL
 
575
YY_MALLOC_DECL
 
576
#else
 
577
#if __STDC__
 
578
#ifndef __cplusplus
 
579
#include <stdlib.h>
 
580
#endif
 
581
#else
 
582
/* Just try to get by without declaring the routines.  This will fail
 
583
 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
 
584
 * or sizeof(void*) != sizeof(int).
 
585
 */
 
586
#endif
 
587
#endif
 
588
 
 
589
/* Amount of stuff to slurp up with each read. */
 
590
#ifndef YY_READ_BUF_SIZE
 
591
#define YY_READ_BUF_SIZE 8192
 
592
#endif
 
593
 
 
594
/* Copy whatever the last rule matched to the standard output. */
 
595
 
 
596
#ifndef ECHO
 
597
/* This used to be an fputs(), but since the string might contain NUL's,
 
598
 * we now use fwrite().
 
599
 */
 
600
#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
 
601
#endif
 
602
 
 
603
/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
 
604
 * is returned in "result".
 
605
 */
 
606
#ifndef YY_INPUT
 
607
#define YY_INPUT(buf,result,max_size) \
 
608
        if ( yy_current_buffer->yy_is_interactive ) \
 
609
                { \
 
610
                int c = '*', n; \
 
611
                for ( n = 0; n < max_size && \
 
612
                             (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
 
613
                        buf[n] = (char) c; \
 
614
                if ( c == '\n' ) \
 
615
                        buf[n++] = (char) c; \
 
616
                if ( c == EOF && ferror( yyin ) ) \
 
617
                        YY_FATAL_ERROR( "input in flex scanner failed" ); \
 
618
                result = n; \
 
619
                } \
 
620
        else \
 
621
                { \
 
622
                errno=0; \
 
623
                while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
 
624
                        { \
 
625
                        if( errno != EINTR) \
 
626
                                { \
 
627
                                YY_FATAL_ERROR( "input in flex scanner failed" ); \
 
628
                                break; \
 
629
                                } \
 
630
                        errno=0; \
 
631
                        clearerr(yyin); \
 
632
                        } \
 
633
                }
 
634
#endif
 
635
 
 
636
/* No semi-colon after return; correct usage is to write "yyterminate();" -
 
637
 * we don't want an extra ';' after the "return" because that will cause
 
638
 * some compilers to complain about unreachable statements.
 
639
 */
 
640
#ifndef yyterminate
 
641
#define yyterminate() return YY_NULL
 
642
#endif
 
643
 
 
644
/* Number of entries by which start-condition stack grows. */
 
645
#ifndef YY_START_STACK_INCR
 
646
#define YY_START_STACK_INCR 25
 
647
#endif
 
648
 
 
649
/* Report a fatal error. */
 
650
#ifndef YY_FATAL_ERROR
 
651
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
 
652
#endif
 
653
 
 
654
/* Default declaration of generated scanner - a define so the user can
 
655
 * easily add parameters.
 
656
 */
 
657
#ifndef YY_DECL
 
658
#define YY_DECL int yylex YY_PROTO(( void ))
 
659
#endif
 
660
 
 
661
/* Code executed at the beginning of each rule, after yytext and yyleng
 
662
 * have been set up.
 
663
 */
 
664
#ifndef YY_USER_ACTION
 
665
#define YY_USER_ACTION
 
666
#endif
 
667
 
 
668
/* Code executed at the end of each rule. */
 
669
#ifndef YY_BREAK
 
670
#define YY_BREAK break;
 
671
#endif
 
672
 
 
673
#define YY_RULE_SETUP \
 
674
        YY_USER_ACTION
 
675
 
 
676
YY_DECL
 
677
        {
 
678
        register yy_state_type yy_current_state;
 
679
        register char *yy_cp, *yy_bp;
 
680
        register int yy_act;
 
681
 
 
682
#line 33 "deflex.l"
 
683
 
 
684
#line 685 "lex.yy.c"
 
685
 
 
686
        if ( yy_init )
 
687
                {
 
688
                yy_init = 0;
 
689
 
 
690
#ifdef YY_USER_INIT
 
691
                YY_USER_INIT;
 
692
#endif
 
693
 
 
694
                if ( ! yy_start )
 
695
                        yy_start = 1;   /* first start state */
 
696
 
 
697
                if ( ! yyin )
 
698
                        yyin = stdin;
 
699
 
 
700
                if ( ! yyout )
 
701
                        yyout = stdout;
 
702
 
 
703
                if ( ! yy_current_buffer )
 
704
                        yy_current_buffer =
 
705
                                yy_create_buffer( yyin, YY_BUF_SIZE );
 
706
 
 
707
                yy_load_buffer_state();
 
708
                }
 
709
 
 
710
        while ( 1 )             /* loops until end-of-file is reached */
 
711
                {
 
712
                yy_cp = yy_c_buf_p;
 
713
 
 
714
                /* Support of yytext. */
 
715
                *yy_cp = yy_hold_char;
 
716
 
 
717
                /* yy_bp points to the position in yy_ch_buf of the start of
 
718
                 * the current run.
 
719
                 */
 
720
                yy_bp = yy_cp;
 
721
 
 
722
                yy_current_state = yy_start;
 
723
yy_match:
 
724
                do
 
725
                        {
 
726
                        register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
 
727
                        if ( yy_accept[yy_current_state] )
 
728
                                {
 
729
                                yy_last_accepting_state = yy_current_state;
 
730
                                yy_last_accepting_cpos = yy_cp;
 
731
                                }
 
732
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 
733
                                {
 
734
                                yy_current_state = (int) yy_def[yy_current_state];
 
735
                                if ( yy_current_state >= 197 )
 
736
                                        yy_c = yy_meta[(unsigned int) yy_c];
 
737
                                }
 
738
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 
739
                        ++yy_cp;
 
740
                        }
 
741
                while ( yy_base[yy_current_state] != 229 );
 
742
 
 
743
yy_find_action:
 
744
                yy_act = yy_accept[yy_current_state];
 
745
                if ( yy_act == 0 )
 
746
                        { /* have to back up */
 
747
                        yy_cp = yy_last_accepting_cpos;
 
748
                        yy_current_state = yy_last_accepting_state;
 
749
                        yy_act = yy_accept[yy_current_state];
 
750
                        }
 
751
 
 
752
                YY_DO_BEFORE_ACTION;
 
753
 
 
754
 
 
755
do_action:      /* This label is used only to access EOF actions. */
 
756
 
 
757
 
 
758
                switch ( yy_act )
 
759
        { /* beginning of action switch */
 
760
                        case 0: /* must back up */
 
761
                        /* undo the effects of YY_DO_BEFORE_ACTION */
 
762
                        *yy_cp = yy_hold_char;
 
763
                        yy_cp = yy_last_accepting_cpos;
 
764
                        yy_current_state = yy_last_accepting_state;
 
765
                        goto yy_find_action;
 
766
 
 
767
case 1:
 
768
YY_RULE_SETUP
 
769
#line 34 "deflex.l"
 
770
{ return NAME;}
 
771
        YY_BREAK
 
772
case 2:
 
773
YY_RULE_SETUP
 
774
#line 35 "deflex.l"
 
775
{ return LIBRARY;}
 
776
        YY_BREAK
 
777
case 3:
 
778
YY_RULE_SETUP
 
779
#line 36 "deflex.l"
 
780
{ return DESCRIPTION;}
 
781
        YY_BREAK
 
782
case 4:
 
783
YY_RULE_SETUP
 
784
#line 37 "deflex.l"
 
785
{ return STACKSIZE;}
 
786
        YY_BREAK
 
787
case 5:
 
788
YY_RULE_SETUP
 
789
#line 38 "deflex.l"
 
790
{ return HEAPSIZE;}
 
791
        YY_BREAK
 
792
case 6:
 
793
YY_RULE_SETUP
 
794
#line 39 "deflex.l"
 
795
{ return CODE;}
 
796
        YY_BREAK
 
797
case 7:
 
798
YY_RULE_SETUP
 
799
#line 40 "deflex.l"
 
800
{ return DATA;}
 
801
        YY_BREAK
 
802
case 8:
 
803
YY_RULE_SETUP
 
804
#line 41 "deflex.l"
 
805
{ return SECTIONS;}
 
806
        YY_BREAK
 
807
case 9:
 
808
YY_RULE_SETUP
 
809
#line 42 "deflex.l"
 
810
{ return EXPORTS;}
 
811
        YY_BREAK
 
812
case 10:
 
813
YY_RULE_SETUP
 
814
#line 43 "deflex.l"
 
815
{ return IMPORTS;}
 
816
        YY_BREAK
 
817
case 11:
 
818
YY_RULE_SETUP
 
819
#line 44 "deflex.l"
 
820
{ return VERSIONK;}
 
821
        YY_BREAK
 
822
case 12:
 
823
YY_RULE_SETUP
 
824
#line 45 "deflex.l"
 
825
{ return BASE;}
 
826
        YY_BREAK
 
827
case 13:
 
828
YY_RULE_SETUP
 
829
#line 46 "deflex.l"
 
830
{ return CONSTANT; }
 
831
        YY_BREAK
 
832
case 14:
 
833
YY_RULE_SETUP
 
834
#line 47 "deflex.l"
 
835
{ return NONAME; }
 
836
        YY_BREAK
 
837
case 15:
 
838
YY_RULE_SETUP
 
839
#line 48 "deflex.l"
 
840
{ return PRIVATE; }
 
841
        YY_BREAK
 
842
case 16:
 
843
YY_RULE_SETUP
 
844
#line 49 "deflex.l"
 
845
{ return READ;}
 
846
        YY_BREAK
 
847
case 17:
 
848
YY_RULE_SETUP
 
849
#line 50 "deflex.l"
 
850
{ return WRITE;}
 
851
        YY_BREAK
 
852
case 18:
 
853
YY_RULE_SETUP
 
854
#line 51 "deflex.l"
 
855
{ return EXECUTE;}
 
856
        YY_BREAK
 
857
case 19:
 
858
YY_RULE_SETUP
 
859
#line 52 "deflex.l"
 
860
{ return SHARED;}
 
861
        YY_BREAK
 
862
case 20:
 
863
YY_RULE_SETUP
 
864
#line 53 "deflex.l"
 
865
{ return NONSHARED;}
 
866
        YY_BREAK
 
867
case 21:
 
868
YY_RULE_SETUP
 
869
#line 54 "deflex.l"
 
870
{ return SINGLE;}
 
871
        YY_BREAK
 
872
case 22:
 
873
YY_RULE_SETUP
 
874
#line 55 "deflex.l"
 
875
{ return MULTIPLE;}
 
876
        YY_BREAK
 
877
case 23:
 
878
YY_RULE_SETUP
 
879
#line 56 "deflex.l"
 
880
{ return INITINSTANCE;}
 
881
        YY_BREAK
 
882
case 24:
 
883
YY_RULE_SETUP
 
884
#line 57 "deflex.l"
 
885
{ return INITGLOBAL;}
 
886
        YY_BREAK
 
887
case 25:
 
888
YY_RULE_SETUP
 
889
#line 58 "deflex.l"
 
890
{ return TERMINSTANCE;}
 
891
        YY_BREAK
 
892
case 26:
 
893
YY_RULE_SETUP
 
894
#line 59 "deflex.l"
 
895
{ return TERMGLOBAL;}
 
896
        YY_BREAK
 
897
case 27:
 
898
YY_RULE_SETUP
 
899
#line 61 "deflex.l"
 
900
{ yylval.number = strtol (yytext,0,0); 
 
901
                return NUMBER; }
 
902
        YY_BREAK
 
903
case 28:
 
904
YY_RULE_SETUP
 
905
#line 64 "deflex.l"
 
906
{       
 
907
                yylval.id =  xstrdup (yytext);
 
908
                return ID;
 
909
                }
 
910
        YY_BREAK
 
911
case 29:
 
912
YY_RULE_SETUP
 
913
#line 69 "deflex.l"
 
914
{
 
915
                yylval.id = xstrdup (yytext+1);
 
916
                yylval.id[yyleng-2] = 0;
 
917
                return ID;
 
918
                }
 
919
        YY_BREAK
 
920
case 30:
 
921
YY_RULE_SETUP
 
922
#line 75 "deflex.l"
 
923
{
 
924
                yylval.id = xstrdup (yytext+1);
 
925
                yylval.id[yyleng-2] = 0;
 
926
                return ID;
 
927
                }
 
928
        YY_BREAK
 
929
case 31:
 
930
YY_RULE_SETUP
 
931
#line 80 "deflex.l"
 
932
{ }
 
933
        YY_BREAK
 
934
case 32:
 
935
YY_RULE_SETUP
 
936
#line 81 "deflex.l"
 
937
{ }
 
938
        YY_BREAK
 
939
case 33:
 
940
YY_RULE_SETUP
 
941
#line 82 "deflex.l"
 
942
{ }
 
943
        YY_BREAK
 
944
case 34:
 
945
YY_RULE_SETUP
 
946
#line 83 "deflex.l"
 
947
{ }
 
948
        YY_BREAK
 
949
case 35:
 
950
YY_RULE_SETUP
 
951
#line 84 "deflex.l"
 
952
{ linenumber ++ ;}
 
953
        YY_BREAK
 
954
case 36:
 
955
YY_RULE_SETUP
 
956
#line 85 "deflex.l"
 
957
{ return '=';}
 
958
        YY_BREAK
 
959
case 37:
 
960
YY_RULE_SETUP
 
961
#line 86 "deflex.l"
 
962
{ return '.';}
 
963
        YY_BREAK
 
964
case 38:
 
965
YY_RULE_SETUP
 
966
#line 87 "deflex.l"
 
967
{ return '@';}
 
968
        YY_BREAK
 
969
case 39:
 
970
YY_RULE_SETUP
 
971
#line 88 "deflex.l"
 
972
{ return ',';}
 
973
        YY_BREAK
 
974
case 40:
 
975
YY_RULE_SETUP
 
976
#line 89 "deflex.l"
 
977
ECHO;
 
978
        YY_BREAK
 
979
#line 980 "lex.yy.c"
 
980
case YY_STATE_EOF(INITIAL):
 
981
        yyterminate();
 
982
 
 
983
        case YY_END_OF_BUFFER:
 
984
                {
 
985
                /* Amount of text matched not including the EOB char. */
 
986
                int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
 
987
 
 
988
                /* Undo the effects of YY_DO_BEFORE_ACTION. */
 
989
                *yy_cp = yy_hold_char;
 
990
                YY_RESTORE_YY_MORE_OFFSET
 
991
 
 
992
                if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
 
993
                        {
 
994
                        /* We're scanning a new file or input source.  It's
 
995
                         * possible that this happened because the user
 
996
                         * just pointed yyin at a new source and called
 
997
                         * yylex().  If so, then we have to assure
 
998
                         * consistency between yy_current_buffer and our
 
999
                         * globals.  Here is the right place to do so, because
 
1000
                         * this is the first action (other than possibly a
 
1001
                         * back-up) that will match for the new input source.
 
1002
                         */
 
1003
                        yy_n_chars = yy_current_buffer->yy_n_chars;
 
1004
                        yy_current_buffer->yy_input_file = yyin;
 
1005
                        yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
 
1006
                        }
 
1007
 
 
1008
                /* Note that here we test for yy_c_buf_p "<=" to the position
 
1009
                 * of the first EOB in the buffer, since yy_c_buf_p will
 
1010
                 * already have been incremented past the NUL character
 
1011
                 * (since all states make transitions on EOB to the
 
1012
                 * end-of-buffer state).  Contrast this with the test
 
1013
                 * in input().
 
1014
                 */
 
1015
                if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
 
1016
                        { /* This was really a NUL. */
 
1017
                        yy_state_type yy_next_state;
 
1018
 
 
1019
                        yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
 
1020
 
 
1021
                        yy_current_state = yy_get_previous_state();
 
1022
 
 
1023
                        /* Okay, we're now positioned to make the NUL
 
1024
                         * transition.  We couldn't have
 
1025
                         * yy_get_previous_state() go ahead and do it
 
1026
                         * for us because it doesn't know how to deal
 
1027
                         * with the possibility of jamming (and we don't
 
1028
                         * want to build jamming into it because then it
 
1029
                         * will run more slowly).
 
1030
                         */
 
1031
 
 
1032
                        yy_next_state = yy_try_NUL_trans( yy_current_state );
 
1033
 
 
1034
                        yy_bp = yytext_ptr + YY_MORE_ADJ;
 
1035
 
 
1036
                        if ( yy_next_state )
 
1037
                                {
 
1038
                                /* Consume the NUL. */
 
1039
                                yy_cp = ++yy_c_buf_p;
 
1040
                                yy_current_state = yy_next_state;
 
1041
                                goto yy_match;
 
1042
                                }
 
1043
 
 
1044
                        else
 
1045
                                {
 
1046
                                yy_cp = yy_c_buf_p;
 
1047
                                goto yy_find_action;
 
1048
                                }
 
1049
                        }
 
1050
 
 
1051
                else switch ( yy_get_next_buffer() )
 
1052
                        {
 
1053
                        case EOB_ACT_END_OF_FILE:
 
1054
                                {
 
1055
                                yy_did_buffer_switch_on_eof = 0;
 
1056
 
 
1057
                                if ( yywrap() )
 
1058
                                        {
 
1059
                                        /* Note: because we've taken care in
 
1060
                                         * yy_get_next_buffer() to have set up
 
1061
                                         * yytext, we can now set up
 
1062
                                         * yy_c_buf_p so that if some total
 
1063
                                         * hoser (like flex itself) wants to
 
1064
                                         * call the scanner after we return the
 
1065
                                         * YY_NULL, it'll still work - another
 
1066
                                         * YY_NULL will get returned.
 
1067
                                         */
 
1068
                                        yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
 
1069
 
 
1070
                                        yy_act = YY_STATE_EOF(YY_START);
 
1071
                                        goto do_action;
 
1072
                                        }
 
1073
 
 
1074
                                else
 
1075
                                        {
 
1076
                                        if ( ! yy_did_buffer_switch_on_eof )
 
1077
                                                YY_NEW_FILE;
 
1078
                                        }
 
1079
                                break;
 
1080
                                }
 
1081
 
 
1082
                        case EOB_ACT_CONTINUE_SCAN:
 
1083
                                yy_c_buf_p =
 
1084
                                        yytext_ptr + yy_amount_of_matched_text;
 
1085
 
 
1086
                                yy_current_state = yy_get_previous_state();
 
1087
 
 
1088
                                yy_cp = yy_c_buf_p;
 
1089
                                yy_bp = yytext_ptr + YY_MORE_ADJ;
 
1090
                                goto yy_match;
 
1091
 
 
1092
                        case EOB_ACT_LAST_MATCH:
 
1093
                                yy_c_buf_p =
 
1094
                                &yy_current_buffer->yy_ch_buf[yy_n_chars];
 
1095
 
 
1096
                                yy_current_state = yy_get_previous_state();
 
1097
 
 
1098
                                yy_cp = yy_c_buf_p;
 
1099
                                yy_bp = yytext_ptr + YY_MORE_ADJ;
 
1100
                                goto yy_find_action;
 
1101
                        }
 
1102
                break;
 
1103
                }
 
1104
 
 
1105
        default:
 
1106
                YY_FATAL_ERROR(
 
1107
                        "fatal flex scanner internal error--no action found" );
 
1108
        } /* end of action switch */
 
1109
                } /* end of scanning one token */
 
1110
        } /* end of yylex */
 
1111
 
 
1112
 
 
1113
/* yy_get_next_buffer - try to read in a new buffer
 
1114
 *
 
1115
 * Returns a code representing an action:
 
1116
 *      EOB_ACT_LAST_MATCH -
 
1117
 *      EOB_ACT_CONTINUE_SCAN - continue scanning from current position
 
1118
 *      EOB_ACT_END_OF_FILE - end of file
 
1119
 */
 
1120
 
 
1121
static int yy_get_next_buffer()
 
1122
        {
 
1123
        register char *dest = yy_current_buffer->yy_ch_buf;
 
1124
        register char *source = yytext_ptr;
 
1125
        register int number_to_move, i;
 
1126
        int ret_val;
 
1127
 
 
1128
        if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
 
1129
                YY_FATAL_ERROR(
 
1130
                "fatal flex scanner internal error--end of buffer missed" );
 
1131
 
 
1132
        if ( yy_current_buffer->yy_fill_buffer == 0 )
 
1133
                { /* Don't try to fill the buffer, so this is an EOF. */
 
1134
                if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
 
1135
                        {
 
1136
                        /* We matched a single character, the EOB, so
 
1137
                         * treat this as a final EOF.
 
1138
                         */
 
1139
                        return EOB_ACT_END_OF_FILE;
 
1140
                        }
 
1141
 
 
1142
                else
 
1143
                        {
 
1144
                        /* We matched some text prior to the EOB, first
 
1145
                         * process it.
 
1146
                         */
 
1147
                        return EOB_ACT_LAST_MATCH;
 
1148
                        }
 
1149
                }
 
1150
 
 
1151
        /* Try to read more data. */
 
1152
 
 
1153
        /* First move last chars to start of buffer. */
 
1154
        number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
 
1155
 
 
1156
        for ( i = 0; i < number_to_move; ++i )
 
1157
                *(dest++) = *(source++);
 
1158
 
 
1159
        if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
 
1160
                /* don't do the read, it's not guaranteed to return an EOF,
 
1161
                 * just force an EOF
 
1162
                 */
 
1163
                yy_current_buffer->yy_n_chars = yy_n_chars = 0;
 
1164
 
 
1165
        else
 
1166
                {
 
1167
                int num_to_read =
 
1168
                        yy_current_buffer->yy_buf_size - number_to_move - 1;
 
1169
 
 
1170
                while ( num_to_read <= 0 )
 
1171
                        { /* Not enough room in the buffer - grow it. */
 
1172
#ifdef YY_USES_REJECT
 
1173
                        YY_FATAL_ERROR(
 
1174
"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
 
1175
#else
 
1176
 
 
1177
                        /* just a shorter name for the current buffer */
 
1178
                        YY_BUFFER_STATE b = yy_current_buffer;
 
1179
 
 
1180
                        int yy_c_buf_p_offset =
 
1181
                                (int) (yy_c_buf_p - b->yy_ch_buf);
 
1182
 
 
1183
                        if ( b->yy_is_our_buffer )
 
1184
                                {
 
1185
                                int new_size = b->yy_buf_size * 2;
 
1186
 
 
1187
                                if ( new_size <= 0 )
 
1188
                                        b->yy_buf_size += b->yy_buf_size / 8;
 
1189
                                else
 
1190
                                        b->yy_buf_size *= 2;
 
1191
 
 
1192
                                b->yy_ch_buf = (char *)
 
1193
                                        /* Include room in for 2 EOB chars. */
 
1194
                                        yy_flex_realloc( (void *) b->yy_ch_buf,
 
1195
                                                         b->yy_buf_size + 2 );
 
1196
                                }
 
1197
                        else
 
1198
                                /* Can't grow it, we don't own it. */
 
1199
                                b->yy_ch_buf = 0;
 
1200
 
 
1201
                        if ( ! b->yy_ch_buf )
 
1202
                                YY_FATAL_ERROR(
 
1203
                                "fatal error - scanner input buffer overflow" );
 
1204
 
 
1205
                        yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
 
1206
 
 
1207
                        num_to_read = yy_current_buffer->yy_buf_size -
 
1208
                                                number_to_move - 1;
 
1209
#endif
 
1210
                        }
 
1211
 
 
1212
                if ( num_to_read > YY_READ_BUF_SIZE )
 
1213
                        num_to_read = YY_READ_BUF_SIZE;
 
1214
 
 
1215
                /* Read in more data. */
 
1216
                YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
 
1217
                        yy_n_chars, num_to_read );
 
1218
 
 
1219
                yy_current_buffer->yy_n_chars = yy_n_chars;
 
1220
                }
 
1221
 
 
1222
        if ( yy_n_chars == 0 )
 
1223
                {
 
1224
                if ( number_to_move == YY_MORE_ADJ )
 
1225
                        {
 
1226
                        ret_val = EOB_ACT_END_OF_FILE;
 
1227
                        yyrestart( yyin );
 
1228
                        }
 
1229
 
 
1230
                else
 
1231
                        {
 
1232
                        ret_val = EOB_ACT_LAST_MATCH;
 
1233
                        yy_current_buffer->yy_buffer_status =
 
1234
                                YY_BUFFER_EOF_PENDING;
 
1235
                        }
 
1236
                }
 
1237
 
 
1238
        else
 
1239
                ret_val = EOB_ACT_CONTINUE_SCAN;
 
1240
 
 
1241
        yy_n_chars += number_to_move;
 
1242
        yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
 
1243
        yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
 
1244
 
 
1245
        yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
 
1246
 
 
1247
        return ret_val;
 
1248
        }
 
1249
 
 
1250
 
 
1251
/* yy_get_previous_state - get the state just before the EOB char was reached */
 
1252
 
 
1253
static yy_state_type yy_get_previous_state()
 
1254
        {
 
1255
        register yy_state_type yy_current_state;
 
1256
        register char *yy_cp;
 
1257
 
 
1258
        yy_current_state = yy_start;
 
1259
 
 
1260
        for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
 
1261
                {
 
1262
                register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
 
1263
                if ( yy_accept[yy_current_state] )
 
1264
                        {
 
1265
                        yy_last_accepting_state = yy_current_state;
 
1266
                        yy_last_accepting_cpos = yy_cp;
 
1267
                        }
 
1268
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 
1269
                        {
 
1270
                        yy_current_state = (int) yy_def[yy_current_state];
 
1271
                        if ( yy_current_state >= 197 )
 
1272
                                yy_c = yy_meta[(unsigned int) yy_c];
 
1273
                        }
 
1274
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 
1275
                }
 
1276
 
 
1277
        return yy_current_state;
 
1278
        }
 
1279
 
 
1280
 
 
1281
/* yy_try_NUL_trans - try to make a transition on the NUL character
 
1282
 *
 
1283
 * synopsis
 
1284
 *      next_state = yy_try_NUL_trans( current_state );
 
1285
 */
 
1286
 
 
1287
#ifdef YY_USE_PROTOS
 
1288
static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
 
1289
#else
 
1290
static yy_state_type yy_try_NUL_trans( yy_current_state )
 
1291
yy_state_type yy_current_state;
 
1292
#endif
 
1293
        {
 
1294
        register int yy_is_jam;
 
1295
        register char *yy_cp = yy_c_buf_p;
 
1296
 
 
1297
        register YY_CHAR yy_c = 1;
 
1298
        if ( yy_accept[yy_current_state] )
 
1299
                {
 
1300
                yy_last_accepting_state = yy_current_state;
 
1301
                yy_last_accepting_cpos = yy_cp;
 
1302
                }
 
1303
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 
1304
                {
 
1305
                yy_current_state = (int) yy_def[yy_current_state];
 
1306
                if ( yy_current_state >= 197 )
 
1307
                        yy_c = yy_meta[(unsigned int) yy_c];
 
1308
                }
 
1309
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 
1310
        yy_is_jam = (yy_current_state == 196);
 
1311
 
 
1312
        return yy_is_jam ? 0 : yy_current_state;
 
1313
        }
 
1314
 
 
1315
 
 
1316
#ifndef YY_NO_UNPUT
 
1317
#ifdef YY_USE_PROTOS
 
1318
static void yyunput( int c, register char *yy_bp )
 
1319
#else
 
1320
static void yyunput( c, yy_bp )
 
1321
int c;
 
1322
register char *yy_bp;
 
1323
#endif
 
1324
        {
 
1325
        register char *yy_cp = yy_c_buf_p;
 
1326
 
 
1327
        /* undo effects of setting up yytext */
 
1328
        *yy_cp = yy_hold_char;
 
1329
 
 
1330
        if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
 
1331
                { /* need to shift things up to make room */
 
1332
                /* +2 for EOB chars. */
 
1333
                register int number_to_move = yy_n_chars + 2;
 
1334
                register char *dest = &yy_current_buffer->yy_ch_buf[
 
1335
                                        yy_current_buffer->yy_buf_size + 2];
 
1336
                register char *source =
 
1337
                                &yy_current_buffer->yy_ch_buf[number_to_move];
 
1338
 
 
1339
                while ( source > yy_current_buffer->yy_ch_buf )
 
1340
                        *--dest = *--source;
 
1341
 
 
1342
                yy_cp += (int) (dest - source);
 
1343
                yy_bp += (int) (dest - source);
 
1344
                yy_current_buffer->yy_n_chars =
 
1345
                        yy_n_chars = yy_current_buffer->yy_buf_size;
 
1346
 
 
1347
                if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
 
1348
                        YY_FATAL_ERROR( "flex scanner push-back overflow" );
 
1349
                }
 
1350
 
 
1351
        *--yy_cp = (char) c;
 
1352
 
 
1353
 
 
1354
        yytext_ptr = yy_bp;
 
1355
        yy_hold_char = *yy_cp;
 
1356
        yy_c_buf_p = yy_cp;
 
1357
        }
 
1358
#endif  /* ifndef YY_NO_UNPUT */
 
1359
 
 
1360
 
 
1361
#ifdef __cplusplus
 
1362
static int yyinput()
 
1363
#else
 
1364
static int input()
 
1365
#endif
 
1366
        {
 
1367
        int c;
 
1368
 
 
1369
        *yy_c_buf_p = yy_hold_char;
 
1370
 
 
1371
        if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
 
1372
                {
 
1373
                /* yy_c_buf_p now points to the character we want to return.
 
1374
                 * If this occurs *before* the EOB characters, then it's a
 
1375
                 * valid NUL; if not, then we've hit the end of the buffer.
 
1376
                 */
 
1377
                if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
 
1378
                        /* This was really a NUL. */
 
1379
                        *yy_c_buf_p = '\0';
 
1380
 
 
1381
                else
 
1382
                        { /* need more input */
 
1383
                        int offset = yy_c_buf_p - yytext_ptr;
 
1384
                        ++yy_c_buf_p;
 
1385
 
 
1386
                        switch ( yy_get_next_buffer() )
 
1387
                                {
 
1388
                                case EOB_ACT_LAST_MATCH:
 
1389
                                        /* This happens because yy_g_n_b()
 
1390
                                         * sees that we've accumulated a
 
1391
                                         * token and flags that we need to
 
1392
                                         * try matching the token before
 
1393
                                         * proceeding.  But for input(),
 
1394
                                         * there's no matching to consider.
 
1395
                                         * So convert the EOB_ACT_LAST_MATCH
 
1396
                                         * to EOB_ACT_END_OF_FILE.
 
1397
                                         */
 
1398
 
 
1399
                                        /* Reset buffer status. */
 
1400
                                        yyrestart( yyin );
 
1401
 
 
1402
                                        /* fall through */
 
1403
 
 
1404
                                case EOB_ACT_END_OF_FILE:
 
1405
                                        {
 
1406
                                        if ( yywrap() )
 
1407
                                                return EOF;
 
1408
 
 
1409
                                        if ( ! yy_did_buffer_switch_on_eof )
 
1410
                                                YY_NEW_FILE;
 
1411
#ifdef __cplusplus
 
1412
                                        return yyinput();
 
1413
#else
 
1414
                                        return input();
 
1415
#endif
 
1416
                                        }
 
1417
 
 
1418
                                case EOB_ACT_CONTINUE_SCAN:
 
1419
                                        yy_c_buf_p = yytext_ptr + offset;
 
1420
                                        break;
 
1421
                                }
 
1422
                        }
 
1423
                }
 
1424
 
 
1425
        c = *(unsigned char *) yy_c_buf_p;      /* cast for 8-bit char's */
 
1426
        *yy_c_buf_p = '\0';     /* preserve yytext */
 
1427
        yy_hold_char = *++yy_c_buf_p;
 
1428
 
 
1429
 
 
1430
        return c;
 
1431
        }
 
1432
 
 
1433
 
 
1434
#ifdef YY_USE_PROTOS
 
1435
void yyrestart( FILE *input_file )
 
1436
#else
 
1437
void yyrestart( input_file )
 
1438
FILE *input_file;
 
1439
#endif
 
1440
        {
 
1441
        if ( ! yy_current_buffer )
 
1442
                yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
 
1443
 
 
1444
        yy_init_buffer( yy_current_buffer, input_file );
 
1445
        yy_load_buffer_state();
 
1446
        }
 
1447
 
 
1448
 
 
1449
#ifdef YY_USE_PROTOS
 
1450
void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
 
1451
#else
 
1452
void yy_switch_to_buffer( new_buffer )
 
1453
YY_BUFFER_STATE new_buffer;
 
1454
#endif
 
1455
        {
 
1456
        if ( yy_current_buffer == new_buffer )
 
1457
                return;
 
1458
 
 
1459
        if ( yy_current_buffer )
 
1460
                {
 
1461
                /* Flush out information for old buffer. */
 
1462
                *yy_c_buf_p = yy_hold_char;
 
1463
                yy_current_buffer->yy_buf_pos = yy_c_buf_p;
 
1464
                yy_current_buffer->yy_n_chars = yy_n_chars;
 
1465
                }
 
1466
 
 
1467
        yy_current_buffer = new_buffer;
 
1468
        yy_load_buffer_state();
 
1469
 
 
1470
        /* We don't actually know whether we did this switch during
 
1471
         * EOF (yywrap()) processing, but the only time this flag
 
1472
         * is looked at is after yywrap() is called, so it's safe
 
1473
         * to go ahead and always set it.
 
1474
         */
 
1475
        yy_did_buffer_switch_on_eof = 1;
 
1476
        }
 
1477
 
 
1478
 
 
1479
#ifdef YY_USE_PROTOS
 
1480
void yy_load_buffer_state( void )
 
1481
#else
 
1482
void yy_load_buffer_state()
 
1483
#endif
 
1484
        {
 
1485
        yy_n_chars = yy_current_buffer->yy_n_chars;
 
1486
        yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
 
1487
        yyin = yy_current_buffer->yy_input_file;
 
1488
        yy_hold_char = *yy_c_buf_p;
 
1489
        }
 
1490
 
 
1491
 
 
1492
#ifdef YY_USE_PROTOS
 
1493
YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
 
1494
#else
 
1495
YY_BUFFER_STATE yy_create_buffer( file, size )
 
1496
FILE *file;
 
1497
int size;
 
1498
#endif
 
1499
        {
 
1500
        YY_BUFFER_STATE b;
 
1501
 
 
1502
        b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
 
1503
        if ( ! b )
 
1504
                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
1505
 
 
1506
        b->yy_buf_size = size;
 
1507
 
 
1508
        /* yy_ch_buf has to be 2 characters longer than the size given because
 
1509
         * we need to put in 2 end-of-buffer characters.
 
1510
         */
 
1511
        b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
 
1512
        if ( ! b->yy_ch_buf )
 
1513
                YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
1514
 
 
1515
        b->yy_is_our_buffer = 1;
 
1516
 
 
1517
        yy_init_buffer( b, file );
 
1518
 
 
1519
        return b;
 
1520
        }
 
1521
 
 
1522
 
 
1523
#ifdef YY_USE_PROTOS
 
1524
void yy_delete_buffer( YY_BUFFER_STATE b )
 
1525
#else
 
1526
void yy_delete_buffer( b )
 
1527
YY_BUFFER_STATE b;
 
1528
#endif
 
1529
        {
 
1530
        if ( ! b )
 
1531
                return;
 
1532
 
 
1533
        if ( b == yy_current_buffer )
 
1534
                yy_current_buffer = (YY_BUFFER_STATE) 0;
 
1535
 
 
1536
        if ( b->yy_is_our_buffer )
 
1537
                yy_flex_free( (void *) b->yy_ch_buf );
 
1538
 
 
1539
        yy_flex_free( (void *) b );
 
1540
        }
 
1541
 
 
1542
 
 
1543
#ifndef _WIN32
 
1544
#include <unistd.h>
 
1545
#else
 
1546
#ifndef YY_ALWAYS_INTERACTIVE
 
1547
#ifndef YY_NEVER_INTERACTIVE
 
1548
extern int isatty YY_PROTO(( int ));
 
1549
#endif
 
1550
#endif
 
1551
#endif
 
1552
 
 
1553
#ifdef YY_USE_PROTOS
 
1554
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
 
1555
#else
 
1556
void yy_init_buffer( b, file )
 
1557
YY_BUFFER_STATE b;
 
1558
FILE *file;
 
1559
#endif
 
1560
 
 
1561
 
 
1562
        {
 
1563
        yy_flush_buffer( b );
 
1564
 
 
1565
        b->yy_input_file = file;
 
1566
        b->yy_fill_buffer = 1;
 
1567
 
 
1568
#if YY_ALWAYS_INTERACTIVE
 
1569
        b->yy_is_interactive = 1;
 
1570
#else
 
1571
#if YY_NEVER_INTERACTIVE
 
1572
        b->yy_is_interactive = 0;
 
1573
#else
 
1574
        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
 
1575
#endif
 
1576
#endif
 
1577
        }
 
1578
 
 
1579
 
 
1580
#ifdef YY_USE_PROTOS
 
1581
void yy_flush_buffer( YY_BUFFER_STATE b )
 
1582
#else
 
1583
void yy_flush_buffer( b )
 
1584
YY_BUFFER_STATE b;
 
1585
#endif
 
1586
 
 
1587
        {
 
1588
        if ( ! b )
 
1589
                return;
 
1590
 
 
1591
        b->yy_n_chars = 0;
 
1592
 
 
1593
        /* We always need two end-of-buffer characters.  The first causes
 
1594
         * a transition to the end-of-buffer state.  The second causes
 
1595
         * a jam in that state.
 
1596
         */
 
1597
        b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
 
1598
        b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
 
1599
 
 
1600
        b->yy_buf_pos = &b->yy_ch_buf[0];
 
1601
 
 
1602
        b->yy_at_bol = 1;
 
1603
        b->yy_buffer_status = YY_BUFFER_NEW;
 
1604
 
 
1605
        if ( b == yy_current_buffer )
 
1606
                yy_load_buffer_state();
 
1607
        }
 
1608
 
 
1609
 
 
1610
#ifndef YY_NO_SCAN_BUFFER
 
1611
#ifdef YY_USE_PROTOS
 
1612
YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
 
1613
#else
 
1614
YY_BUFFER_STATE yy_scan_buffer( base, size )
 
1615
char *base;
 
1616
yy_size_t size;
 
1617
#endif
 
1618
        {
 
1619
        YY_BUFFER_STATE b;
 
1620
 
 
1621
        if ( size < 2 ||
 
1622
             base[size-2] != YY_END_OF_BUFFER_CHAR ||
 
1623
             base[size-1] != YY_END_OF_BUFFER_CHAR )
 
1624
                /* They forgot to leave room for the EOB's. */
 
1625
                return 0;
 
1626
 
 
1627
        b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
 
1628
        if ( ! b )
 
1629
                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
 
1630
 
 
1631
        b->yy_buf_size = size - 2;      /* "- 2" to take care of EOB's */
 
1632
        b->yy_buf_pos = b->yy_ch_buf = base;
 
1633
        b->yy_is_our_buffer = 0;
 
1634
        b->yy_input_file = 0;
 
1635
        b->yy_n_chars = b->yy_buf_size;
 
1636
        b->yy_is_interactive = 0;
 
1637
        b->yy_at_bol = 1;
 
1638
        b->yy_fill_buffer = 0;
 
1639
        b->yy_buffer_status = YY_BUFFER_NEW;
 
1640
 
 
1641
        yy_switch_to_buffer( b );
 
1642
 
 
1643
        return b;
 
1644
        }
 
1645
#endif
 
1646
 
 
1647
 
 
1648
#ifndef YY_NO_SCAN_STRING
 
1649
#ifdef YY_USE_PROTOS
 
1650
YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
 
1651
#else
 
1652
YY_BUFFER_STATE yy_scan_string( yy_str )
 
1653
yyconst char *yy_str;
 
1654
#endif
 
1655
        {
 
1656
        int len;
 
1657
        for ( len = 0; yy_str[len]; ++len )
 
1658
                ;
 
1659
 
 
1660
        return yy_scan_bytes( yy_str, len );
 
1661
        }
 
1662
#endif
 
1663
 
 
1664
 
 
1665
#ifndef YY_NO_SCAN_BYTES
 
1666
#ifdef YY_USE_PROTOS
 
1667
YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
 
1668
#else
 
1669
YY_BUFFER_STATE yy_scan_bytes( bytes, len )
 
1670
yyconst char *bytes;
 
1671
int len;
 
1672
#endif
 
1673
        {
 
1674
        YY_BUFFER_STATE b;
 
1675
        char *buf;
 
1676
        yy_size_t n;
 
1677
        int i;
 
1678
 
 
1679
        /* Get memory for full buffer, including space for trailing EOB's. */
 
1680
        n = len + 2;
 
1681
        buf = (char *) yy_flex_alloc( n );
 
1682
        if ( ! buf )
 
1683
                YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
 
1684
 
 
1685
        for ( i = 0; i < len; ++i )
 
1686
                buf[i] = bytes[i];
 
1687
 
 
1688
        buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
 
1689
 
 
1690
        b = yy_scan_buffer( buf, n );
 
1691
        if ( ! b )
 
1692
                YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
 
1693
 
 
1694
        /* It's okay to grow etc. this buffer, and we should throw it
 
1695
         * away when we're done.
 
1696
         */
 
1697
        b->yy_is_our_buffer = 1;
 
1698
 
 
1699
        return b;
 
1700
        }
 
1701
#endif
 
1702
 
 
1703
 
 
1704
#ifndef YY_NO_PUSH_STATE
 
1705
#ifdef YY_USE_PROTOS
 
1706
static void yy_push_state( int new_state )
 
1707
#else
 
1708
static void yy_push_state( new_state )
 
1709
int new_state;
 
1710
#endif
 
1711
        {
 
1712
        if ( yy_start_stack_ptr >= yy_start_stack_depth )
 
1713
                {
 
1714
                yy_size_t new_size;
 
1715
 
 
1716
                yy_start_stack_depth += YY_START_STACK_INCR;
 
1717
                new_size = yy_start_stack_depth * sizeof( int );
 
1718
 
 
1719
                if ( ! yy_start_stack )
 
1720
                        yy_start_stack = (int *) yy_flex_alloc( new_size );
 
1721
 
 
1722
                else
 
1723
                        yy_start_stack = (int *) yy_flex_realloc(
 
1724
                                        (void *) yy_start_stack, new_size );
 
1725
 
 
1726
                if ( ! yy_start_stack )
 
1727
                        YY_FATAL_ERROR(
 
1728
                        "out of memory expanding start-condition stack" );
 
1729
                }
 
1730
 
 
1731
        yy_start_stack[yy_start_stack_ptr++] = YY_START;
 
1732
 
 
1733
        BEGIN(new_state);
 
1734
        }
 
1735
#endif
 
1736
 
 
1737
 
 
1738
#ifndef YY_NO_POP_STATE
 
1739
static void yy_pop_state()
 
1740
        {
 
1741
        if ( --yy_start_stack_ptr < 0 )
 
1742
                YY_FATAL_ERROR( "start-condition stack underflow" );
 
1743
 
 
1744
        BEGIN(yy_start_stack[yy_start_stack_ptr]);
 
1745
        }
 
1746
#endif
 
1747
 
 
1748
 
 
1749
#ifndef YY_NO_TOP_STATE
 
1750
static int yy_top_state()
 
1751
        {
 
1752
        return yy_start_stack[yy_start_stack_ptr - 1];
 
1753
        }
 
1754
#endif
 
1755
 
 
1756
#ifndef YY_EXIT_FAILURE
 
1757
#define YY_EXIT_FAILURE 2
 
1758
#endif
 
1759
 
 
1760
#ifdef YY_USE_PROTOS
 
1761
static void yy_fatal_error( yyconst char msg[] )
 
1762
#else
 
1763
static void yy_fatal_error( msg )
 
1764
char msg[];
 
1765
#endif
 
1766
        {
 
1767
        (void) fprintf( stderr, "%s\n", msg );
 
1768
        exit( YY_EXIT_FAILURE );
 
1769
        }
 
1770
 
 
1771
 
 
1772
 
 
1773
/* Redefine yyless() so it works in section 3 code. */
 
1774
 
 
1775
#undef yyless
 
1776
#define yyless(n) \
 
1777
        do \
 
1778
                { \
 
1779
                /* Undo effects of setting up yytext. */ \
 
1780
                yytext[yyleng] = yy_hold_char; \
 
1781
                yy_c_buf_p = yytext + n; \
 
1782
                yy_hold_char = *yy_c_buf_p; \
 
1783
                *yy_c_buf_p = '\0'; \
 
1784
                yyleng = n; \
 
1785
                } \
 
1786
        while ( 0 )
 
1787
 
 
1788
 
 
1789
/* Internal utility routines. */
 
1790
 
 
1791
#ifndef yytext_ptr
 
1792
#ifdef YY_USE_PROTOS
 
1793
static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
 
1794
#else
 
1795
static void yy_flex_strncpy( s1, s2, n )
 
1796
char *s1;
 
1797
yyconst char *s2;
 
1798
int n;
 
1799
#endif
 
1800
        {
 
1801
        register int i;
 
1802
        for ( i = 0; i < n; ++i )
 
1803
                s1[i] = s2[i];
 
1804
        }
 
1805
#endif
 
1806
 
 
1807
#ifdef YY_NEED_STRLEN
 
1808
#ifdef YY_USE_PROTOS
 
1809
static int yy_flex_strlen( yyconst char *s )
 
1810
#else
 
1811
static int yy_flex_strlen( s )
 
1812
yyconst char *s;
 
1813
#endif
 
1814
        {
 
1815
        register int n;
 
1816
        for ( n = 0; s[n]; ++n )
 
1817
                ;
 
1818
 
 
1819
        return n;
 
1820
        }
 
1821
#endif
 
1822
 
 
1823
 
 
1824
#ifdef YY_USE_PROTOS
 
1825
static void *yy_flex_alloc( yy_size_t size )
 
1826
#else
 
1827
static void *yy_flex_alloc( size )
 
1828
yy_size_t size;
 
1829
#endif
 
1830
        {
 
1831
        return (void *) malloc( size );
 
1832
        }
 
1833
 
 
1834
#ifdef YY_USE_PROTOS
 
1835
static void *yy_flex_realloc( void *ptr, yy_size_t size )
 
1836
#else
 
1837
static void *yy_flex_realloc( ptr, size )
 
1838
void *ptr;
 
1839
yy_size_t size;
 
1840
#endif
 
1841
        {
 
1842
        /* The cast to (char *) in the following accommodates both
 
1843
         * implementations that use char* generic pointers, and those
 
1844
         * that use void* generic pointers.  It works with the latter
 
1845
         * because both ANSI C and C++ allow castless assignment from
 
1846
         * any pointer type to void*, and deal with argument conversions
 
1847
         * as though doing an assignment.
 
1848
         */
 
1849
        return (void *) realloc( (char *) ptr, size );
 
1850
        }
 
1851
 
 
1852
#ifdef YY_USE_PROTOS
 
1853
static void yy_flex_free( void *ptr )
 
1854
#else
 
1855
static void yy_flex_free( ptr )
 
1856
void *ptr;
 
1857
#endif
 
1858
        {
 
1859
        free( ptr );
 
1860
        }
 
1861
 
 
1862
#if YY_MAIN
 
1863
int main()
 
1864
        {
 
1865
        yylex();
 
1866
        return 0;
 
1867
        }
 
1868
#endif
 
1869
#line 89 "deflex.l"
 
1870
 
 
1871
#ifndef yywrap
 
1872
/* Needed for lex, though not flex. */
 
1873
int yywrap(void) { return 1; }
 
1874
#endif