~ubuntu-branches/ubuntu/breezy/gimp/breezy

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2005-10-04 19:04:46 UTC
  • Revision ID: james.westby@ubuntu.com-20051004190446-ukh32kwk56s4sjhu
Tags: upstream-2.2.8
ImportĀ upstreamĀ versionĀ 2.2.8

Show diffs side-by-side

added added

removed removed

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