~ubuntu-branches/ubuntu/hoary/gimp/hoary

« back to all changes in this revision

Viewing changes to plug-ins/imagemap/imap_cern_lex.c

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2005-04-04 14:51:23 UTC
  • Revision ID: james.westby@ubuntu.com-20050404145123-9py049eeelfymur8
Tags: upstream-2.2.2
ImportĀ upstreamĀ versionĀ 2.2.2

Show diffs side-by-side

added added

removed removed

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