imap_csim_lex.c 54.4 KB
Newer Older
Sven Neumann's avatar
Sven Neumann committed
1

2
#line 3 "<stdout>"
Maurits Rijk's avatar
Maurits Rijk committed
3

4 5 6
#define  YY_INT_ALIGNED short int

/* A lexical scanner generated by flex */
7

8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
#define yy_create_buffer csim__create_buffer
#define yy_delete_buffer csim__delete_buffer
#define yy_flex_debug csim__flex_debug
#define yy_init_buffer csim__init_buffer
#define yy_flush_buffer csim__flush_buffer
#define yy_load_buffer_state csim__load_buffer_state
#define yy_switch_to_buffer csim__switch_to_buffer
#define yyin csim_in
#define yyleng csim_leng
#define yylex csim_lex
#define yylineno csim_lineno
#define yyout csim_out
#define yyrestart csim_restart
#define yytext csim_text
#define yywrap csim_wrap
#define yyalloc csim_alloc
#define yyrealloc csim_realloc
#define yyfree csim_free

Sven Neumann's avatar
Sven Neumann committed
27 28 29
#define FLEX_SCANNER
#define YY_FLEX_MAJOR_VERSION 2
#define YY_FLEX_MINOR_VERSION 5
30
#define YY_FLEX_SUBMINOR_VERSION 36
31 32 33 34 35
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif

/* First, we deal with  platform-specific or compiler-specific issues. */
36

37
/* begin standard C headers. */
Sven Neumann's avatar
Sven Neumann committed
38
#include <stdio.h>
39 40 41 42 43 44 45 46 47 48 49 50 51
#include <string.h>
#include <errno.h>
#include <stdlib.h>

/* end standard C headers. */

/* flex integer type definitions */

#ifndef FLEXINT_H
#define FLEXINT_H

/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */

52
#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
53 54

/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
55
 * if you want the limit (max/min) macros for int types.
56 57 58
 */
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS 1
Sven Neumann's avatar
Sven Neumann committed
59
#endif
60

61 62 63 64 65 66 67 68 69 70 71
#include <inttypes.h>
typedef int8_t flex_int8_t;
typedef uint8_t flex_uint8_t;
typedef int16_t flex_int16_t;
typedef uint16_t flex_uint16_t;
typedef int32_t flex_int32_t;
typedef uint32_t flex_uint32_t;
#else
typedef signed char flex_int8_t;
typedef short int flex_int16_t;
typedef int flex_int32_t;
72
typedef unsigned char flex_uint8_t;
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;

/* Limits of integral types. */
#ifndef INT8_MIN
#define INT8_MIN               (-128)
#endif
#ifndef INT16_MIN
#define INT16_MIN              (-32767-1)
#endif
#ifndef INT32_MIN
#define INT32_MIN              (-2147483647-1)
#endif
#ifndef INT8_MAX
#define INT8_MAX               (127)
Sven Neumann's avatar
Sven Neumann committed
88
#endif
89 90 91 92 93 94 95 96 97 98 99 100 101 102
#ifndef INT16_MAX
#define INT16_MAX              (32767)
#endif
#ifndef INT32_MAX
#define INT32_MAX              (2147483647)
#endif
#ifndef UINT8_MAX
#define UINT8_MAX              (255U)
#endif
#ifndef UINT16_MAX
#define UINT16_MAX             (65535U)
#endif
#ifndef UINT32_MAX
#define UINT32_MAX             (4294967295U)
Sven Neumann's avatar
Sven Neumann committed
103 104
#endif

105 106
#endif /* ! C99 */

107
#endif /* ! FLEXINT_H */
Sven Neumann's avatar
Sven Neumann committed
108 109 110 111 112 113

#ifdef __cplusplus

/* The "const" storage-class-modifier is valid. */
#define YY_USE_CONST

Mukund Sivaraman's avatar
Mukund Sivaraman committed
114
#else	/* ! __cplusplus */
Sven Neumann's avatar
Sven Neumann committed
115

116 117
/* C99 requires __STDC__ to be defined as 1. */
#if defined (__STDC__)
Sven Neumann's avatar
Sven Neumann committed
118 119 120

#define YY_USE_CONST

Mukund Sivaraman's avatar
Mukund Sivaraman committed
121 122
#endif	/* defined (__STDC__) */
#endif	/* ! __cplusplus */
Sven Neumann's avatar
Sven Neumann committed
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143

#ifdef YY_USE_CONST
#define yyconst const
#else
#define yyconst
#endif

/* Returned upon end-of-file. */
#define YY_NULL 0

/* Promotes a possibly negative, possibly signed char to an unsigned
 * integer for use as an array index.  If the signed char is negative,
 * we want to instead treat it as an 8-bit unsigned char, hence the
 * double cast.
 */
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)

/* Enter a start condition.  This macro really ought to take a parameter,
 * but we do it the disgusting crufty way forced on us by the ()-less
 * definition of BEGIN.
 */
144
#define BEGIN (yy_start) = 1 + 2 *
Sven Neumann's avatar
Sven Neumann committed
145 146 147 148 149

/* Translate the current start state into a value that can be later handed
 * to BEGIN to return to the state.  The YYSTATE alias is for lex
 * compatibility.
 */
150
#define YY_START (((yy_start) - 1) / 2)
Sven Neumann's avatar
Sven Neumann committed
151 152 153 154 155 156
#define YYSTATE YY_START

/* Action number for EOF rule of a given start state. */
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)

/* Special action meaning "start processing a new file". */
157
#define YY_NEW_FILE csim_restart(csim_in  )
Sven Neumann's avatar
Sven Neumann committed
158 159 160 161

#define YY_END_OF_BUFFER_CHAR 0

/* Size of default input buffer. */
162
#ifndef YY_BUF_SIZE
Sven Neumann's avatar
Sven Neumann committed
163
#define YY_BUF_SIZE 16384
164
#endif
Sven Neumann's avatar
Sven Neumann committed
165

166 167 168 169 170 171
/* The state buf must be large enough to hold one state per character in the main buffer.
 */
#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))

#ifndef YY_TYPEDEF_YY_BUFFER_STATE
#define YY_TYPEDEF_YY_BUFFER_STATE
Sven Neumann's avatar
Sven Neumann committed
172
typedef struct yy_buffer_state *YY_BUFFER_STATE;
173 174
#endif

175 176 177 178 179 180
#ifndef YY_TYPEDEF_YY_SIZE_T
#define YY_TYPEDEF_YY_SIZE_T
typedef size_t yy_size_t;
#endif

extern yy_size_t csim_leng;
Sven Neumann's avatar
Sven Neumann committed
181

182
extern FILE *csim_in, *csim_out;
Sven Neumann's avatar
Sven Neumann committed
183 184 185 186 187

#define EOB_ACT_CONTINUE_SCAN 0
#define EOB_ACT_END_OF_FILE 1
#define EOB_ACT_LAST_MATCH 2

188
    #define YY_LESS_LINENO(n)
189

190
/* Return all but the first "n" matched characters back to the input stream. */
Sven Neumann's avatar
Sven Neumann committed
191
#define yyless(n) \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
192 193 194
	do \
		{ \
		/* Undo effects of setting up csim_text. */ \
195 196
        int yyless_macro_arg = (n); \
        YY_LESS_LINENO(yyless_macro_arg);\
Mukund Sivaraman's avatar
Mukund Sivaraman committed
197 198 199 200 201 202
		*yy_cp = (yy_hold_char); \
		YY_RESTORE_YY_MORE_OFFSET \
		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
		YY_DO_BEFORE_ACTION; /* set up csim_text again */ \
		} \
	while ( 0 )
Sven Neumann's avatar
Sven Neumann committed
203

204
#define unput(c) yyunput( c, (yytext_ptr)  )
Sven Neumann's avatar
Sven Neumann committed
205

206 207
#ifndef YY_STRUCT_YY_BUFFER_STATE
#define YY_STRUCT_YY_BUFFER_STATE
Sven Neumann's avatar
Sven Neumann committed
208
struct yy_buffer_state
Mukund Sivaraman's avatar
Mukund Sivaraman committed
209 210 211 212 213 214 215 216 217 218 219 220 221 222
	{
	FILE *yy_input_file;

	char *yy_ch_buf;		/* input buffer */
	char *yy_buf_pos;		/* current position in input buffer */

	/* Size of input buffer in bytes, not including room for EOB
	 * characters.
	 */
	yy_size_t yy_buf_size;

	/* Number of characters read into yy_ch_buf, not including EOB
	 * characters.
	 */
223
	yy_size_t yy_n_chars;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242

	/* Whether we "own" the buffer - i.e., we know we created it,
	 * and can realloc() it to grow it, and should free() it to
	 * delete it.
	 */
	int yy_is_our_buffer;

	/* Whether this is an "interactive" input source; if so, and
	 * if we're using stdio for input, then we want to use getc()
	 * instead of fread(), to make sure we stop fetching input after
	 * each newline.
	 */
	int yy_is_interactive;

	/* Whether we're considered to be at the beginning of a line.
	 * If so, '^' rules will be active on the next match, otherwise
	 * not.
	 */
	int yy_at_bol;
Sven Neumann's avatar
Sven Neumann committed
243

244 245
    int yy_bs_lineno; /**< The line count. */
    int yy_bs_column; /**< The column count. */
246

Mukund Sivaraman's avatar
Mukund Sivaraman committed
247 248 249 250
	/* Whether to try to fill the input buffer when we reach the
	 * end of it.
	 */
	int yy_fill_buffer;
Sven Neumann's avatar
Sven Neumann committed
251

Mukund Sivaraman's avatar
Mukund Sivaraman committed
252
	int yy_buffer_status;
253

Sven Neumann's avatar
Sven Neumann committed
254 255
#define YY_BUFFER_NEW 0
#define YY_BUFFER_NORMAL 1
Mukund Sivaraman's avatar
Mukund Sivaraman committed
256 257 258 259 260 261 262 263 264 265
	/* When an EOF's been seen but there's still some text to process
	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
	 * shouldn't try reading from the input source any more.  We might
	 * still have a bunch of tokens to match, though, because of
	 * possible backing-up.
	 *
	 * When we actually see the EOF, we change the status to "new"
	 * (via csim_restart()), so that the user can continue scanning by
	 * just pointing csim_in at a new input file.
	 */
Sven Neumann's avatar
Sven Neumann committed
266
#define YY_BUFFER_EOF_PENDING 2
267

Mukund Sivaraman's avatar
Mukund Sivaraman committed
268
	};
269
#endif /* !YY_STRUCT_YY_BUFFER_STATE */
Sven Neumann's avatar
Sven Neumann committed
270

271 272 273 274
/* Stack of input buffers. */
static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
Sven Neumann's avatar
Sven Neumann committed
275 276 277 278

/* We provide macros for accessing buffer states in case in the
 * future we want to put the buffer states in a more general
 * "scanner state".
279 280
 *
 * Returns the top of the stack, or NULL.
Sven Neumann's avatar
Sven Neumann committed
281
 */
282 283 284
#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
                          : NULL)
Sven Neumann's avatar
Sven Neumann committed
285

286 287 288 289
/* Same as previous macro, but useful when we know that the buffer stack is not
 * NULL or when we need an lvalue. For internal use only.
 */
#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
Sven Neumann's avatar
Sven Neumann committed
290

291
/* yy_hold_char holds the character lost when csim_text is formed. */
Sven Neumann's avatar
Sven Neumann committed
292
static char yy_hold_char;
293 294
static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
yy_size_t csim_leng;
Sven Neumann's avatar
Sven Neumann committed
295 296 297

/* Points to current character in buffer. */
static char *yy_c_buf_p = (char *) 0;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
298 299
static int yy_init = 0;		/* whether we need to initialize */
static int yy_start = 0;	/* start state number */
Sven Neumann's avatar
Sven Neumann committed
300

301 302
/* Flag which is used to allow csim_wrap()'s to do buffer switches
 * instead of setting up a fresh csim_in.  A bit of a hack ...
Sven Neumann's avatar
Sven Neumann committed
303 304 305
 */
static int yy_did_buffer_switch_on_eof;

306 307 308 309 310 311 312 313 314 315 316
void csim_restart (FILE *input_file  );
void csim__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
YY_BUFFER_STATE csim__create_buffer (FILE *file,int size  );
void csim__delete_buffer (YY_BUFFER_STATE b  );
void csim__flush_buffer (YY_BUFFER_STATE b  );
void csim_push_buffer_state (YY_BUFFER_STATE new_buffer  );
void csim_pop_buffer_state (void );

static void csim_ensure_buffer_stack (void );
static void csim__load_buffer_state (void );
static void csim__init_buffer (YY_BUFFER_STATE b,FILE *file  );
317

318
#define YY_FLUSH_BUFFER csim__flush_buffer(YY_CURRENT_BUFFER )
Sven Neumann's avatar
Sven Neumann committed
319

320 321
YY_BUFFER_STATE csim__scan_buffer (char *base,yy_size_t size  );
YY_BUFFER_STATE csim__scan_string (yyconst char *yy_str  );
322
YY_BUFFER_STATE csim__scan_bytes (yyconst char *bytes,yy_size_t len  );
Sven Neumann's avatar
Sven Neumann committed
323

324 325 326
void *csim_alloc (yy_size_t  );
void *csim_realloc (void *,yy_size_t  );
void csim_free (void *  );
Sven Neumann's avatar
Sven Neumann committed
327

328
#define yy_new_buffer csim__create_buffer
Sven Neumann's avatar
Sven Neumann committed
329 330

#define yy_set_interactive(is_interactive) \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
331 332
	{ \
	if ( ! YY_CURRENT_BUFFER ){ \
333
        csim_ensure_buffer_stack (); \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
334
		YY_CURRENT_BUFFER_LVALUE =    \
335
            csim__create_buffer(csim_in,YY_BUF_SIZE ); \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
336 337 338
	} \
	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
	}
Sven Neumann's avatar
Sven Neumann committed
339 340

#define yy_set_bol(at_bol) \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
341 342
	{ \
	if ( ! YY_CURRENT_BUFFER ){\
343
        csim_ensure_buffer_stack (); \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
344
		YY_CURRENT_BUFFER_LVALUE =    \
345
            csim__create_buffer(csim_in,YY_BUF_SIZE ); \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
346 347 348
	} \
	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
	}
Sven Neumann's avatar
Sven Neumann committed
349

350
#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
Sven Neumann's avatar
Sven Neumann committed
351

352
/* Begin user sect3 */
Sven Neumann's avatar
Sven Neumann committed
353

354
#define csim_wrap() 1
Sven Neumann's avatar
Sven Neumann committed
355
#define YY_SKIP_YYWRAP
356

Sven Neumann's avatar
Sven Neumann committed
357
typedef unsigned char YY_CHAR;
358 359 360

FILE *csim_in = (FILE *) 0, *csim_out = (FILE *) 0;

Sven Neumann's avatar
Sven Neumann committed
361 362
typedef int yy_state_type;

363 364 365 366 367 368 369 370 371 372 373
extern int csim_lineno;

int csim_lineno = 1;

extern char *csim_text;
#define yytext_ptr csim_text

static yy_state_type yy_get_previous_state (void );
static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
static int yy_get_next_buffer (void );
static void yy_fatal_error (yyconst char msg[]  );
Sven Neumann's avatar
Sven Neumann committed
374 375

/* Done after the current pattern has been matched and before the
376
 * corresponding action - sets up csim_text.
Sven Neumann's avatar
Sven Neumann committed
377 378
 */
#define YY_DO_BEFORE_ACTION \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
379 380 381 382 383
	(yytext_ptr) = yy_bp; \
	csim_leng = (size_t) (yy_cp - yy_bp); \
	(yy_hold_char) = *yy_cp; \
	*yy_cp = '\0'; \
	(yy_c_buf_p) = yy_cp;
Sven Neumann's avatar
Sven Neumann committed
384 385 386

#define YY_NUM_RULES 32
#define YY_END_OF_BUFFER 33
387 388 389
/* This struct is not used in this scanner,
   but its presence is necessary. */
struct yy_trans_info
Mukund Sivaraman's avatar
Mukund Sivaraman committed
390 391 392 393
	{
	flex_int32_t yy_verify;
	flex_int32_t yy_nxt;
	};
394
static yyconst flex_int16_t yy_accept[154] =
Sven Neumann's avatar
Sven Neumann committed
395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414
    {   0,
       29,   29,   28,   28,    0,    0,   33,   31,   30,   30,
       26,   29,   29,   31,   29,   31,   31,   31,   31,   29,
       31,   31,   31,   31,   31,   31,   31,   31,   31,   28,
       27,   32,   32,   32,   30,   29,   29,   29,   29,    0,
        0,    0,    0,    0,    0,   29,   29,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,   28,
        0,    0,    0,    0,    0,   23,    0,    0,    0,    0,
        0,    6,   12,    0,    0,    0,    0,    0,    0,    7,
        0,    0,    0,    0,    4,   13,    3,   15,    0,    0,
        0,   24,   14,    0,    0,    0,    0,    0,    0,    0,

        0,    5,    0,    0,    0,    0,    0,    0,    0,    0,
       16,    0,    0,    8,    0,   10,   17,    9,   25,   22,
        0,    0,   18,   11,    0,   21,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,   20,    0,    0,    0,
       19,    0,    0,    0,    0,    1,    0,    0,    0,    0,
        0,    2,    0
    } ;

415
static yyconst flex_int32_t yy_ec[256] =
Sven Neumann's avatar
Sven Neumann committed
416 417 418 419 420 421 422 423 424 425
    {   0,
        1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    4,    5,    6,    7,    8,    1,    1,    1,    1,
        1,    1,    9,    1,   10,   11,   12,   13,   13,   13,
       13,   13,   13,   13,   13,   13,   13,   14,    1,   15,
        1,   16,    1,    1,   17,   18,   19,   20,   21,   22,
       23,   24,   25,    1,    1,   26,   27,   28,   29,   30,
        1,   31,   32,   33,   34,   35,   36,    1,    1,    1,
426
        1,    1,    1,    1,    1,    1,   37,   38,   39,   40,
Sven Neumann's avatar
Sven Neumann committed
427

428 429
       41,   42,   43,   44,   45,    1,    1,   46,   47,   48,
       49,   50,    1,   51,   52,   53,   54,   55,   56,    1,
Sven Neumann's avatar
Sven Neumann committed
430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,

        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1
    } ;

447
static yyconst flex_int32_t yy_meta[57] =
Sven Neumann's avatar
Sven Neumann committed
448 449 450 451
    {   0,
        1,    1,    2,    1,    1,    3,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
452 453
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Maurits Rijk's avatar
Maurits Rijk committed
454
        1,    1,    1,    1,    1,    1
Sven Neumann's avatar
Sven Neumann committed
455 456
    } ;

457
static yyconst flex_int16_t yy_base[158] =
Sven Neumann's avatar
Sven Neumann committed
458
    {   0,
459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475
        0,    0,  315,  314,   54,   55,  318,  322,   57,   64,
      322,   58,   49,   36,   61,  301,   47,   46,   47,   71,
       56,   58,   69,   71,   61,   70,   74,   60,   78,    0,
      322,  295,  322,  294,  113,   97,  111,  116,  106,   96,
      293,   95,  109,  100,  105,  289,  288,  110,  115,  114,
      109,  113,  117,  131,  125,  124,  113,  124,  126,    0,
      290,  289,  158,  137,  287,  322,  153,  151,  141,  152,
      154,  322,  322,  156,  148,  154,  152,  153,  153,  322,
      161,  158,  153,  178,  286,  322,  291,  322,  168,  173,
      174,  322,  322,  186,  174,  191,  177,  191,  193,  198,

      192,  284,  285,  186,  187,  187,  199,  191,  189,  192,
      322,  192,  196,  322,  283,  322,  322,  322,  322,  322,
      197,  212,  322,  322,  230,  322,  209,  214,  230,  220,
      219,  224,  224,  238,  236,  242,  322,  231,  234,  233,
      322,  234,  241,  276,  239,  322,  240,  253,  258,  260,
       90,  322,  322,  308,  311,  314,  316
Sven Neumann's avatar
Sven Neumann committed
476 477
    } ;

478
static yyconst flex_int16_t yy_def[158] =
Sven Neumann's avatar
Sven Neumann committed
479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498
    {   0,
      153,    1,  154,  154,  155,  155,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  156,
      153,  157,  153,  157,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  156,
      157,  157,  157,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  157,  157,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,

      153,  157,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,    0,  153,  153,  153,  153
    } ;

499
static yyconst flex_int16_t yy_nxt[379] =
Sven Neumann's avatar
Sven Neumann committed
500 501 502
    {   0,
        8,    9,   10,    9,    8,   11,    8,    8,    8,   12,
       13,   14,   15,    8,   16,    8,   17,   18,   19,    8,
503 504
       20,    8,    8,   21,   22,    8,   23,   24,   25,    8,
        8,   26,   27,   28,    8,   29,   17,   18,   19,    8,
Sven Neumann's avatar
Sven Neumann committed
505
       20,    8,    8,   21,   22,    8,   23,   24,   25,    8,
Maurits Rijk's avatar
Maurits Rijk committed
506
        8,   26,   27,   28,    8,   29,   33,   33,   35,   35,
507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536
       35,   39,   40,   34,   34,   35,   35,   35,   36,   38,
       37,   36,   42,   37,   44,   45,   48,   43,   38,   46,
       46,   38,   40,   47,   50,   51,   49,   52,   54,   38,
       57,   58,   42,   55,   44,   45,   48,   43,   38,   53,

       56,   38,   59,  152,   50,   51,   49,   52,   54,   39,
       57,   58,   64,   55,   35,   35,   35,   38,   39,   53,
       56,   36,   59,   37,   46,   46,   38,   66,   47,   67,
       68,   38,   64,   69,   70,   71,   72,   38,   73,   74,
       75,   79,   80,   81,   82,   83,   38,   66,   76,   67,
       68,   38,   77,   69,   70,   71,   72,   78,   73,   74,
       75,   79,   80,   81,   82,   83,   86,   84,   76,   88,
       89,   90,   77,   85,   91,   92,   93,   78,   94,   95,
       96,   97,   98,   99,  100,  101,   86,   84,  104,   88,
       89,   90,  105,  102,   91,   92,   93,  106,   94,   95,

       96,   97,   98,   99,  100,  101,  107,  108,  104,  109,
      110,  111,  105,  112,  113,  114,  116,  106,  117,  118,
      119,  120,  121,  122,  123,  124,  107,  108,  126,  109,
      110,  111,  127,  112,  113,  114,  116,  130,  117,  118,
      119,  120,  121,  122,  123,  124,  128,  131,  126,  129,
      132,  135,  127,  133,  134,  136,  137,  130,  138,  139,
      140,  141,  142,  143,  144,  145,  128,  131,  147,  129,
      132,  135,  148,  133,  134,  136,  137,  149,  138,  139,
      140,  141,  142,  143,  144,  145,  150,  151,  147,  146,
      125,  115,  148,   62,  103,   62,   87,  149,   84,   62,

       47,   47,   65,   63,   62,   41,  150,  151,   30,   30,
       30,   32,   32,   32,   60,   60,   61,  153,   61,   31,
       31,    7,  153,  153,  153,  153,  153,  153,  153,  153,
Sven Neumann's avatar
Sven Neumann committed
537 538 539
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
540 541
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153
Sven Neumann's avatar
Sven Neumann committed
542 543
    } ;

544
static yyconst flex_int16_t yy_chk[379] =
Sven Neumann's avatar
Sven Neumann committed
545
    {   0,
546 547
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Sven Neumann's avatar
Sven Neumann committed
548 549 550
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Maurits Rijk's avatar
Maurits Rijk committed
551
        1,    1,    1,    1,    1,    1,    5,    6,    9,    9,
552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581
        9,   13,   14,    5,    6,   10,   10,   10,   12,   13,
       12,   15,   17,   15,   18,   19,   21,   17,   12,   20,
       20,   15,   14,   20,   22,   23,   21,   24,   25,   13,
       27,   28,   17,   26,   18,   19,   21,   17,   12,   24,

       26,   15,   29,  151,   22,   23,   21,   24,   25,   36,
       27,   28,   40,   26,   35,   35,   35,   36,   39,   24,
       26,   37,   29,   37,   38,   38,   39,   42,   38,   43,
       44,   37,   40,   45,   48,   49,   50,   36,   51,   52,
       53,   55,   56,   57,   58,   59,   39,   42,   54,   43,
       44,   37,   54,   45,   48,   49,   50,   54,   51,   52,
       53,   55,   56,   57,   58,   59,   64,   63,   54,   67,
       68,   69,   54,   63,   70,   71,   74,   54,   75,   76,
       77,   78,   79,   81,   82,   83,   64,   84,   89,   67,
       68,   69,   90,   84,   70,   71,   74,   91,   75,   76,

       77,   78,   79,   81,   82,   83,   94,   95,   89,   96,
       97,   98,   90,   99,  100,  101,  104,   91,  105,  106,
      107,  108,  109,  110,  112,  113,   94,   95,  121,   96,
       97,   98,  122,   99,  100,  101,  104,  127,  105,  106,
      107,  108,  109,  110,  112,  113,  125,  128,  121,  125,
      129,  131,  122,  130,  130,  132,  133,  127,  134,  135,
      136,  138,  139,  140,  142,  143,  125,  128,  145,  125,
      129,  131,  147,  130,  130,  132,  133,  148,  134,  135,
      136,  138,  139,  140,  142,  143,  149,  150,  145,  144,
      115,  103,  147,  102,   87,   85,   65,  148,   62,   61,

       47,   46,   41,   34,   32,   16,  149,  150,  154,  154,
      154,  155,  155,  155,  156,  156,  157,    7,  157,    4,
        3,  153,  153,  153,  153,  153,  153,  153,  153,  153,
Sven Neumann's avatar
Sven Neumann committed
582 583 584
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
585 586
      153,  153,  153,  153,  153,  153,  153,  153,  153,  153,
      153,  153,  153,  153,  153,  153,  153,  153
Sven Neumann's avatar
Sven Neumann committed
587 588 589 590 591
    } ;

static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;

592 593 594
extern int csim__flex_debug;
int csim__flex_debug = 0;

Sven Neumann's avatar
Sven Neumann committed
595 596 597 598 599 600 601
/* The intent behind this definition is that it'll catch
 * any uses of REJECT which flex missed.
 */
#define REJECT reject_used_but_not_detected
#define yymore() yymore_used_but_not_detected
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
602
char *csim_text;
Sven Neumann's avatar
Sven Neumann committed
603 604 605
#line 1 "imap_csim.l"
#line 2 "imap_csim.l"
/*
606
 * This is a plug-in for GIMP.
Sven Neumann's avatar
Sven Neumann committed
607 608 609
 *
 * Generates clickable image maps.
 *
610
 * Copyright (C) 1998-2000 Maurits Rijk  lpeek.mrijk@consunet.nl
Sven Neumann's avatar
Sven Neumann committed
611
 *
612
 * This program is free software: you can redistribute it and/or modify
Sven Neumann's avatar
Sven Neumann committed
613
 * it under the terms of the GNU General Public License as published by
614
 * the Free Software Foundation; either version 3 of the License, or
Sven Neumann's avatar
Sven Neumann committed
615 616 617 618 619 620 621 622
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
623
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
Sven Neumann's avatar
Sven Neumann committed
624 625 626
 *
 */

627 628
#include <string.h>

629 630
#include <glib.h>

Sven Neumann's avatar
Sven Neumann committed
631 632
#include "imap_csim_parse.h"

633 634 635 636
#ifdef FLEX_SCANNER
#define YY_NO_UNPUT
#endif /* FLEX_SCANNER */

637
#define YY_NO_INPUT 1
638

639

640
#line 641 "<stdout>"
641 642 643

#define INITIAL 0
#define quoted_string 1
644
#define comment 2
Sven Neumann's avatar
Sven Neumann committed
645

646 647 648 649 650 651 652 653 654 655 656 657 658
#ifndef YY_NO_UNISTD_H
/* Special case for "unistd.h", since it is non-ANSI. We include it way
 * down here because we want the user's section 1 to have been scanned first.
 * The user has a chance to override it with an option.
 */
#include <unistd.h>
#endif

#ifndef YY_EXTRA_TYPE
#define YY_EXTRA_TYPE void *
#endif

static int yy_init_globals (void );
Sven Neumann's avatar
Sven Neumann committed
659

660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680
/* Accessor methods to globals.
   These are made visible to non-reentrant scanners for convenience. */

int csim_lex_destroy (void );

int csim_get_debug (void );

void csim_set_debug (int debug_flag  );

YY_EXTRA_TYPE csim_get_extra (void );

void csim_set_extra (YY_EXTRA_TYPE user_defined  );

FILE *csim_get_in (void );

void csim_set_in  (FILE * in_str  );

FILE *csim_get_out (void );

void csim_set_out  (FILE * out_str  );

681
yy_size_t csim_get_leng (void );
682 683 684 685 686 687 688

char *csim_get_text (void );

int csim_get_lineno (void );

void csim_set_lineno (int line_number  );

Sven Neumann's avatar
Sven Neumann committed
689 690 691 692 693 694
/* Macros after this point can all be overridden by user definitions in
 * section 1.
 */

#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
695
extern "C" int csim_wrap (void );
Sven Neumann's avatar
Sven Neumann committed
696
#else
697
extern int csim_wrap (void );
Sven Neumann's avatar
Sven Neumann committed
698
#endif
Maurits Rijk's avatar
Maurits Rijk committed
699 700
#endif

Sven Neumann's avatar
Sven Neumann committed
701
#ifndef yytext_ptr
702
static void yy_flex_strncpy (char *,yyconst char *,int );
Sven Neumann's avatar
Sven Neumann committed
703 704 705
#endif

#ifdef YY_NEED_STRLEN
706
static int yy_flex_strlen (yyconst char * );
Sven Neumann's avatar
Sven Neumann committed
707 708 709
#endif

#ifndef YY_NO_INPUT
710

711 712
#ifdef __cplusplus
static int yyinput (void );
Maurits Rijk's avatar
Maurits Rijk committed
713
#else
714
static int input (void );
Maurits Rijk's avatar
Maurits Rijk committed
715 716
#endif

Sven Neumann's avatar
Sven Neumann committed
717 718 719 720 721 722 723 724 725 726 727 728
#endif

/* Amount of stuff to slurp up with each read. */
#ifndef YY_READ_BUF_SIZE
#define YY_READ_BUF_SIZE 8192
#endif

/* Copy whatever the last rule matched to the standard output. */
#ifndef ECHO
/* This used to be an fputs(), but since the string might contain NUL's,
 * we now use fwrite().
 */
729
#define ECHO do { if (fwrite( csim_text, csim_leng, 1, csim_out )) {} } while (0)
Sven Neumann's avatar
Sven Neumann committed
730 731 732 733 734 735 736
#endif

/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
 * is returned in "result".
 */
#ifndef YY_INPUT
#define YY_INPUT(buf,result,max_size) \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
737 738 739
	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
		{ \
		int c = '*'; \
740
		size_t n; \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763
		for ( n = 0; n < max_size && \
			     (c = getc( csim_in )) != EOF && c != '\n'; ++n ) \
			buf[n] = (char) c; \
		if ( c == '\n' ) \
			buf[n++] = (char) c; \
		if ( c == EOF && ferror( csim_in ) ) \
			YY_FATAL_ERROR( "input in flex scanner failed" ); \
		result = n; \
		} \
	else \
		{ \
		errno=0; \
		while ( (result = fread(buf, 1, max_size, csim_in))==0 && ferror(csim_in)) \
			{ \
			if( errno != EINTR) \
				{ \
				YY_FATAL_ERROR( "input in flex scanner failed" ); \
				break; \
				} \
			errno=0; \
			clearerr(csim_in); \
			} \
		}\
764 765
\

Sven Neumann's avatar
Sven Neumann committed
766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785
#endif

/* No semi-colon after return; correct usage is to write "yyterminate();" -
 * we don't want an extra ';' after the "return" because that will cause
 * some compilers to complain about unreachable statements.
 */
#ifndef yyterminate
#define yyterminate() return YY_NULL
#endif

/* Number of entries by which start-condition stack grows. */
#ifndef YY_START_STACK_INCR
#define YY_START_STACK_INCR 25
#endif

/* Report a fatal error. */
#ifndef YY_FATAL_ERROR
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
#endif

786 787
/* end tables serialization structures and prototypes */

Sven Neumann's avatar
Sven Neumann committed
788 789 790 791
/* Default declaration of generated scanner - a define so the user can
 * easily add parameters.
 */
#ifndef YY_DECL
792
#define YY_DECL_IS_OURS 1
Sven Neumann's avatar
Sven Neumann committed
793

794 795 796 797 798 799
extern int csim_lex (void);

#define YY_DECL int csim_lex (void)
#endif /* !YY_DECL */

/* Code executed at the beginning of each rule, after csim_text and csim_leng
Sven Neumann's avatar
Sven Neumann committed
800 801 802 803 804 805 806 807 808 809 810 811
 * have been set up.
 */
#ifndef YY_USER_ACTION
#define YY_USER_ACTION
#endif

/* Code executed at the end of each rule. */
#ifndef YY_BREAK
#define YY_BREAK break;
#endif

#define YY_RULE_SETUP \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
812
	YY_USER_ACTION
Sven Neumann's avatar
Sven Neumann committed
813

814 815
/** The main scanner function which does all the work.
 */
Sven Neumann's avatar
Sven Neumann committed
816
YY_DECL
817
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
818 819 820
	register yy_state_type yy_current_state;
	register char *yy_cp, *yy_bp;
	register int yy_act;
821

822
#line 47 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
823 824


825
#line 826 "<stdout>"
Sven Neumann's avatar
Sven Neumann committed
826

Mukund Sivaraman's avatar
Mukund Sivaraman committed
827 828 829
	if ( !(yy_init) )
		{
		(yy_init) = 1;
Sven Neumann's avatar
Sven Neumann committed
830 831

#ifdef YY_USER_INIT
Mukund Sivaraman's avatar
Mukund Sivaraman committed
832
		YY_USER_INIT;
Sven Neumann's avatar
Sven Neumann committed
833 834
#endif

Mukund Sivaraman's avatar
Mukund Sivaraman committed
835 836
		if ( ! (yy_start) )
			(yy_start) = 1;	/* first start state */
Sven Neumann's avatar
Sven Neumann committed
837

Mukund Sivaraman's avatar
Mukund Sivaraman committed
838 839
		if ( ! csim_in )
			csim_in = stdin;
Sven Neumann's avatar
Sven Neumann committed
840

Mukund Sivaraman's avatar
Mukund Sivaraman committed
841 842
		if ( ! csim_out )
			csim_out = stdout;
Sven Neumann's avatar
Sven Neumann committed
843

Mukund Sivaraman's avatar
Mukund Sivaraman committed
844 845 846 847 848
		if ( ! YY_CURRENT_BUFFER ) {
			csim_ensure_buffer_stack ();
			YY_CURRENT_BUFFER_LVALUE =
				csim__create_buffer(csim_in,YY_BUF_SIZE );
		}
Sven Neumann's avatar
Sven Neumann committed
849

Mukund Sivaraman's avatar
Mukund Sivaraman committed
850 851
		csim__load_buffer_state( );
		}
Sven Neumann's avatar
Sven Neumann committed
852

Mukund Sivaraman's avatar
Mukund Sivaraman committed
853 854 855
	while ( 1 )		/* loops until end-of-file is reached */
		{
		yy_cp = (yy_c_buf_p);
Sven Neumann's avatar
Sven Neumann committed
856

Mukund Sivaraman's avatar
Mukund Sivaraman committed
857 858
		/* Support of csim_text. */
		*yy_cp = (yy_hold_char);
Sven Neumann's avatar
Sven Neumann committed
859

Mukund Sivaraman's avatar
Mukund Sivaraman committed
860 861 862 863
		/* yy_bp points to the position in yy_ch_buf of the start of
		 * the current run.
		 */
		yy_bp = yy_cp;
Sven Neumann's avatar
Sven Neumann committed
864

Mukund Sivaraman's avatar
Mukund Sivaraman committed
865
		yy_current_state = (yy_start);
Sven Neumann's avatar
Sven Neumann committed
866
yy_match:
Mukund Sivaraman's avatar
Mukund Sivaraman committed
867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884
		do
			{
			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
			if ( yy_accept[yy_current_state] )
				{
				(yy_last_accepting_state) = yy_current_state;
				(yy_last_accepting_cpos) = yy_cp;
				}
			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
				{
				yy_current_state = (int) yy_def[yy_current_state];
				if ( yy_current_state >= 154 )
					yy_c = yy_meta[(unsigned int) yy_c];
				}
			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
			++yy_cp;
			}
		while ( yy_base[yy_current_state] != 322 );
Sven Neumann's avatar
Sven Neumann committed
885 886

yy_find_action:
Mukund Sivaraman's avatar
Mukund Sivaraman committed
887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906
		yy_act = yy_accept[yy_current_state];
		if ( yy_act == 0 )
			{ /* have to back up */
			yy_cp = (yy_last_accepting_cpos);
			yy_current_state = (yy_last_accepting_state);
			yy_act = yy_accept[yy_current_state];
			}

		YY_DO_BEFORE_ACTION;

do_action:	/* This label is used only to access EOF actions. */

		switch ( yy_act )
	{ /* beginning of action switch */
			case 0: /* must back up */
			/* undo the effects of YY_DO_BEFORE_ACTION */
			*yy_cp = (yy_hold_char);
			yy_cp = (yy_last_accepting_cpos);
			yy_current_state = (yy_last_accepting_state);
			goto yy_find_action;
Sven Neumann's avatar
Sven Neumann committed
907 908 909

case 1:
YY_RULE_SETUP
910
#line 49 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
911
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
912 913 914 915
				   BEGIN(comment);
				   return AUTHOR;
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
916 917
case 2:
YY_RULE_SETUP
918
#line 54 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
919
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
920 921 922 923
				   BEGIN(comment);
				   return DESCRIPTION;
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
924 925
case 3:
YY_RULE_SETUP
926
#line 59 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
927
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
928 929 930 931
				   BEGIN(comment);
				   return BEGIN_COMMENT;
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
932 933
case 4:
YY_RULE_SETUP
934
#line 64 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
935
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
936 937 938 939
				   BEGIN(INITIAL);
				   return END_COMMENT;
			        }
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
940
case 5:
941 942 943
*yy_cp = (yy_hold_char); /* undo effects of setting up csim_text */
(yy_c_buf_p) = yy_cp -= 3;
YY_DO_BEFORE_ACTION; /* set up csim_text again */
Sven Neumann's avatar
Sven Neumann committed
944
YY_RULE_SETUP
945
#line 69 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
946
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
947 948 949 950
				   csim_lval.id = g_strndup (csim_text, csim_leng);
   				   return STRING;
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
951 952
case 6:
YY_RULE_SETUP
953
#line 74 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
954
return IMG;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
955
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
956 957
case 7:
YY_RULE_SETUP
958
#line 76 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
959
return SRC;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
960
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
961 962
case 8:
YY_RULE_SETUP
963
#line 78 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
964
return WIDTH;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
965
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
966 967
case 9:
YY_RULE_SETUP
968
#line 80 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
969
return HEIGHT;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
970
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
971 972
case 10:
YY_RULE_SETUP
973
#line 82 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
974
return BORDER;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
975
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
976 977
case 11:
YY_RULE_SETUP
978
#line 84 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
979
return USEMAP;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
980
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
981 982
case 12:
YY_RULE_SETUP
983
#line 86 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
984
return START_MAP;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
985
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
986 987
case 13:
YY_RULE_SETUP
988
#line 88 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
989
return END_MAP;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
990
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
991 992
case 14:
YY_RULE_SETUP
993
#line 90 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
994
return NAME;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
995
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
996 997
case 15:
YY_RULE_SETUP
998
#line 92 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
999
return AREA;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1000
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1001 1002
case 16:
YY_RULE_SETUP
1003
#line 94 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1004
return SHAPE;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1005
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1006 1007
case 17:
YY_RULE_SETUP
1008
#line 96 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1009
return COORDS;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1010
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1011 1012
case 18:
YY_RULE_SETUP
1013
#line 98 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1014
return TARGET;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1015
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1016 1017
case 19:
YY_RULE_SETUP
1018
#line 100 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1019
return ONMOUSEOVER;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1020
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1021 1022
case 20:
YY_RULE_SETUP
1023
#line 102 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1024
return ONMOUSEOUT;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1025
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1026 1027
case 21:
YY_RULE_SETUP
1028
#line 104 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1029
return ONFOCUS;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1030
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1031 1032
case 22:
YY_RULE_SETUP
1033
#line 106 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1034
return ONBLUR;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1035
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1036 1037
case 23:
YY_RULE_SETUP
1038
#line 108 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1039
return ALT;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1040
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1041 1042
case 24:
YY_RULE_SETUP
1043
#line 110 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1044
return HREF;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1045
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1046 1047
case 25:
YY_RULE_SETUP
1048
#line 112 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1049
return NOHREF;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1050
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1051 1052
case 26:
YY_RULE_SETUP
1053
#line 114 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1054
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1055 1056 1057
				   BEGIN(quoted_string);
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1058 1059
case 27:
YY_RULE_SETUP
1060
#line 118 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1061
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1062 1063 1064 1065
				   BEGIN(INITIAL);
				   return STRING;
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1066
case 28:
1067
/* rule 28 can match eol */
Sven Neumann's avatar
Sven Neumann committed
1068
YY_RULE_SETUP
1069
#line 123 "imap_csim.l"
1070
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1071 1072 1073
				  csim_lval.id = g_strndup (csim_text, csim_leng);
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1074 1075
case 29:
YY_RULE_SETUP
1076
#line 127 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1077
{
1078
                                   csim_lval.value = g_ascii_strtod (csim_text, NULL);
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1079 1080 1081
				   return FLOAT;
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1082
case 30:
1083
/* rule 30 can match eol */
Sven Neumann's avatar
Sven Neumann committed
1084
YY_RULE_SETUP
1085
#line 132 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1086
; /* Eat white space */
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1087
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1088 1089
case 31:
YY_RULE_SETUP
1090
#line 134 "imap_csim.l"
1091
return *csim_text;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1092
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
1093 1094
case 32:
YY_RULE_SETUP
1095
#line 136 "imap_csim.l"
Sven Neumann's avatar
Sven Neumann committed
1096
ECHO;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1097
	YY_BREAK
1098
#line 1099 "<stdout>"
Sven Neumann's avatar
Sven Neumann committed
1099 1100 1101
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(quoted_string):
case YY_STATE_EOF(comment):
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230
	yyterminate();

	case YY_END_OF_BUFFER:
		{
		/* Amount of text matched not including the EOB char. */
		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;

		/* Undo the effects of YY_DO_BEFORE_ACTION. */
		*yy_cp = (yy_hold_char);
		YY_RESTORE_YY_MORE_OFFSET

		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
			{
			/* We're scanning a new file or input source.  It's
			 * possible that this happened because the user
			 * just pointed csim_in at a new source and called
			 * csim_lex().  If so, then we have to assure
			 * consistency between YY_CURRENT_BUFFER and our
			 * globals.  Here is the right place to do so, because
			 * this is the first action (other than possibly a
			 * back-up) that will match for the new input source.
			 */
			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
			YY_CURRENT_BUFFER_LVALUE->yy_input_file = csim_in;
			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
			}

		/* Note that here we test for yy_c_buf_p "<=" to the position
		 * of the first EOB in the buffer, since yy_c_buf_p will
		 * already have been incremented past the NUL character
		 * (since all states make transitions on EOB to the
		 * end-of-buffer state).  Contrast this with the test
		 * in input().
		 */
		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
			{ /* This was really a NUL. */
			yy_state_type yy_next_state;

			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;

			yy_current_state = yy_get_previous_state(  );

			/* Okay, we're now positioned to make the NUL
			 * transition.  We couldn't have
			 * yy_get_previous_state() go ahead and do it
			 * for us because it doesn't know how to deal
			 * with the possibility of jamming (and we don't
			 * want to build jamming into it because then it
			 * will run more slowly).
			 */

			yy_next_state = yy_try_NUL_trans( yy_current_state );

			yy_bp = (yytext_ptr) + YY_MORE_ADJ;

			if ( yy_next_state )
				{
				/* Consume the NUL. */
				yy_cp = ++(yy_c_buf_p);
				yy_current_state = yy_next_state;
				goto yy_match;
				}

			else
				{
				yy_cp = (yy_c_buf_p);
				goto yy_find_action;
				}
			}

		else switch ( yy_get_next_buffer(  ) )
			{
			case EOB_ACT_END_OF_FILE:
				{
				(yy_did_buffer_switch_on_eof) = 0;

				if ( csim_wrap( ) )
					{
					/* Note: because we've taken care in
					 * yy_get_next_buffer() to have set up
					 * csim_text, we can now set up
					 * yy_c_buf_p so that if some total
					 * hoser (like flex itself) wants to
					 * call the scanner after we return the
					 * YY_NULL, it'll still work - another
					 * YY_NULL will get returned.
					 */
					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;

					yy_act = YY_STATE_EOF(YY_START);
					goto do_action;
					}

				else
					{
					if ( ! (yy_did_buffer_switch_on_eof) )
						YY_NEW_FILE;
					}
				break;
				}

			case EOB_ACT_CONTINUE_SCAN:
				(yy_c_buf_p) =
					(yytext_ptr) + yy_amount_of_matched_text;

				yy_current_state = yy_get_previous_state(  );

				yy_cp = (yy_c_buf_p);
				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
				goto yy_match;

			case EOB_ACT_LAST_MATCH:
				(yy_c_buf_p) =
				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];

				yy_current_state = yy_get_previous_state(  );

				yy_cp = (yy_c_buf_p);
				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
				goto yy_find_action;
			}
		break;
		}

	default:
		YY_FATAL_ERROR(
			"fatal flex scanner internal error--no action found" );
	} /* end of action switch */
		} /* end of scanning one token */
1231
} /* end of csim_lex */
Sven Neumann's avatar
Sven Neumann committed
1232 1233 1234 1235

/* yy_get_next_buffer - try to read in a new buffer
 *
 * Returns a code representing an action:
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1236 1237 1238
 *	EOB_ACT_LAST_MATCH -
 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
 *	EOB_ACT_END_OF_FILE - end of file
Sven Neumann's avatar
Sven Neumann committed
1239
 */
1240 1241
static int yy_get_next_buffer (void)
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285
    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
	register char *source = (yytext_ptr);
	register int number_to_move, i;
	int ret_val;

	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
		YY_FATAL_ERROR(
		"fatal flex scanner internal error--end of buffer missed" );

	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
		{ /* Don't try to fill the buffer, so this is an EOF. */
		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
			{
			/* We matched a single character, the EOB, so
			 * treat this as a final EOF.
			 */
			return EOB_ACT_END_OF_FILE;
			}

		else
			{
			/* We matched some text prior to the EOB, first
			 * process it.
			 */
			return EOB_ACT_LAST_MATCH;
			}
		}

	/* Try to read more data. */

	/* First move last chars to start of buffer. */
	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;

	for ( i = 0; i < number_to_move; ++i )
		*(dest++) = *(source++);

	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
		/* don't do the read, it's not guaranteed to return an EOF,
		 * just force an EOF
		 */
		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;

	else
		{
1286
			yy_size_t num_to_read =
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1287 1288 1289 1290 1291 1292
			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;

		while ( num_to_read <= 0 )
			{ /* Not enough room in the buffer - grow it. */

			/* just a shorter name for the current buffer */
1293
			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1294 1295 1296 1297 1298 1299

			int yy_c_buf_p_offset =
				(int) ((yy_c_buf_p) - b->yy_ch_buf);

			if ( b->yy_is_our_buffer )
				{
1300
				yy_size_t new_size = b->yy_buf_size * 2;