imap_cern_lex.c 51.7 KB
Newer Older
Sven Neumann's avatar
Sven Neumann committed
1

2 3 4 5 6
#line 3 "<stdout>"

#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 cern__create_buffer
#define yy_delete_buffer cern__delete_buffer
#define yy_flex_debug cern__flex_debug
#define yy_init_buffer cern__init_buffer
#define yy_flush_buffer cern__flush_buffer
#define yy_load_buffer_state cern__load_buffer_state
#define yy_switch_to_buffer cern__switch_to_buffer
#define yyin cern_in
#define yyleng cern_leng
#define yylex cern_lex
#define yylineno cern_lineno
#define yyout cern_out
#define yyrestart cern_restart
#define yytext cern_text
#define yywrap cern_wrap
#define yyalloc cern_alloc
#define yyrealloc cern_realloc
#define yyfree cern_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
#if YY_FLEX_SUBMINOR_VERSION > 0
#define FLEX_BETA
#endif
Sven Neumann's avatar
Sven Neumann committed
34

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

/* begin standard C headers. */
Sven Neumann's avatar
Sven Neumann committed
38
#include <stdio.h>
39 40 41
#include <string.h>
#include <errno.h>
#include <stdlib.h>
Sven Neumann's avatar
Sven Neumann committed
42

43
/* end standard C headers. */
Sven Neumann's avatar
Sven Neumann committed
44

45 46 47 48 49 50 51
/* 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 60
#endif

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
typedef unsigned short int flex_uint16_t;
typedef unsigned int flex_uint32_t;
Sven Neumann's avatar
Sven Neumann committed
75

76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
/* 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)
#endif
#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)
#endif
Sven Neumann's avatar
Sven Neumann committed
104

105 106
#endif /* ! C99 */

107
#endif /* ! FLEXINT_H */
108

109
#ifdef __cplusplus
110

Sven Neumann's avatar
Sven Neumann committed
111 112 113
/* 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 cern_restart(cern_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 165 166 167 168
#endif

/* 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))
Sven Neumann's avatar
Sven Neumann committed
169

170 171
#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 cern_leng;
Sven Neumann's avatar
Sven Neumann committed
181

182
extern FILE *cern_in, *cern_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 cern_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 cern_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 cern_restart()), so that the user can continue scanning by
	 * just pointing cern_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 cern_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 cern_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 cern_wrap()'s to do buffer switches
 * instead of setting up a fresh cern_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
void cern_restart (FILE *input_file  );
void cern__switch_to_buffer (YY_BUFFER_STATE new_buffer  );
YY_BUFFER_STATE cern__create_buffer (FILE *file,int size  );
void cern__delete_buffer (YY_BUFFER_STATE b  );
void cern__flush_buffer (YY_BUFFER_STATE b  );
void cern_push_buffer_state (YY_BUFFER_STATE new_buffer  );
void cern_pop_buffer_state (void );
Sven Neumann's avatar
Sven Neumann committed
313

314 315 316
static void cern_ensure_buffer_stack (void );
static void cern__load_buffer_state (void );
static void cern__init_buffer (YY_BUFFER_STATE b,FILE *file  );
Sven Neumann's avatar
Sven Neumann committed
317

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

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

324 325 326 327 328
void *cern_alloc (yy_size_t  );
void *cern_realloc (void *,yy_size_t  );
void cern_free (void *  );

#define yy_new_buffer cern__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
        cern_ensure_buffer_stack (); \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
334
		YY_CURRENT_BUFFER_LVALUE =    \
335
            cern__create_buffer(cern_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
        cern_ensure_buffer_stack (); \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
344
		YY_CURRENT_BUFFER_LVALUE =    \
345
            cern__create_buffer(cern_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 cern_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 *cern_in = (FILE *) 0, *cern_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 cern_lineno;

int cern_lineno = 1;

extern char *cern_text;
#define yytext_ptr cern_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 cern_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; \
	cern_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 13
#define YY_END_OF_BUFFER 14
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[94] =
Sven Neumann's avatar
Sven Neumann committed
395 396 397 398 399 400 401 402 403 404 405 406 407 408
    {   0,
       10,   10,    0,    0,   14,   12,   11,   11,   12,   10,
       10,   10,   12,   12,   10,   12,   12,   13,    4,    0,
        9,   11,   10,   10,   10,   10,    0,    0,   10,   10,
        0,    0,    0,    4,    0,    0,    0,    0,    6,    0,
        7,    5,    0,    0,    9,    0,    0,    8,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    3,
        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
        0,    0,    0,    0,    0,    1,    0,    0,    0,    0,
        0,    2,    0

    } ;

409
static yyconst flex_int32_t yy_ec[256] =
Sven Neumann's avatar
Sven Neumann committed
410 411 412 413 414 415 416 417 418 419
    {   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,    2,    1,    1,    4,    5,    1,    1,    1,    6,
        7,    1,    8,    9,   10,   11,    1,   12,   13,   13,
       13,   14,   13,   15,   13,   13,   16,   17,    1,    1,
        1,    1,    1,    1,   18,    1,   19,   20,   21,   22,
        1,   23,   24,    1,    1,   25,    1,   26,   27,   28,
        1,   29,   30,   31,   32,    1,    1,    1,   33,    1,
420
        1,    1,    1,    1,    1,    1,   34,    1,   35,   36,
Sven Neumann's avatar
Sven Neumann committed
421

422 423 424
       37,   38,    1,   39,   40,    1,    1,   41,    1,   42,
       43,   44,    1,   45,   46,   47,   48,    1,    1,    1,
       49,    1,    1,    1,    1,    1,    1,    1,    1,    1,
Sven Neumann's avatar
Sven Neumann committed
425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440
        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
    } ;

441
static yyconst flex_int32_t yy_meta[50] =
Sven Neumann's avatar
Sven Neumann committed
442 443 444 445
    {   0,
        1,    2,    3,    1,    1,    1,    1,    1,    2,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
446 447
        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
448 449
    } ;

450
static yyconst flex_int16_t yy_base[98] =
Sven Neumann's avatar
Sven Neumann committed
451
    {   0,
452 453 454 455 456 457 458 459 460 461
        0,    0,  276,  275,  277,  270,   48,   50,  309,   51,
       86,  121,   52,   53,  156,   54,   56,  269,  309,  268,
      309,   58,  170,  205,  240,  254,   65,   81,  101,  115,
       55,   76,  262,  309,  103,  122,   72,  143,  261,  109,
      260,   67,  136,   80,  141,  145,  248,  258,  235,  230,
      230,  235,  224,  224,  218,  217,  223,  106,  147,  213,
      199,  189,  187,  184,  161,  151,  139,  111,  113,   83,
       81,  147,  161,  156,  141,  163,  150,  183,  194,  185,
      195,  196,  199,   74,  205,   69,  227,  211,  233,  255,
      197,   67,  309,  297,  300,  303,  306
Sven Neumann's avatar
Sven Neumann committed
462 463 464

    } ;

465
static yyconst flex_int16_t yy_def[98] =
Sven Neumann's avatar
Sven Neumann committed
466 467
    {   0,
       93,    1,   94,   94,   93,   95,   93,   93,   93,   95,
468 469
       95,   95,   95,   95,   95,   95,   95,   96,   93,   95,
       93,   93,   95,   95,   95,   95,   95,   95,   95,   95,
Sven Neumann's avatar
Sven Neumann committed
470 471 472 473 474 475 476 477 478 479
       95,   95,   96,   93,   95,   95,   95,   95,   95,   95,
       95,   95,   95,   93,   93,   95,   93,   95,   93,   93,
       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
       93,   93,   93,   93,   93,   93,   93,   93,   93,   97,
       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
       97,   97,   97,   97,   97,   97,   97,   97,   97,   97,
       97,   97,    0,   93,   93,   93,   93

    } ;

480
static yyconst flex_int16_t yy_nxt[359] =
Sven Neumann's avatar
Sven Neumann committed
481 482 483 484
    {   0,
        6,    7,    8,    6,    6,    6,    6,    6,    9,   10,
       11,   12,   12,   12,   12,   12,    6,    6,   13,   14,
       15,    6,    6,    6,    6,    6,    6,   16,   17,    6,
485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517
        6,    6,    6,    6,   13,   14,   15,    6,    6,    6,
        6,    6,    6,   16,   17,    6,    6,    6,    6,   22,
       22,   22,   22,   21,   21,   21,   21,   21,   21,   22,
       22,   23,   24,   24,   24,   24,   24,   21,   44,   45,
       72,   25,   72,   28,   21,   27,   32,   72,   21,   37,
       31,   44,   44,   21,   72,   47,   72,   25,   21,   28,
       86,   27,   32,   35,   38,   37,   31,   26,   26,   26,

       26,   26,   36,   21,   41,   21,   25,   59,   59,   35,
       38,   21,   30,   30,   30,   30,   30,   21,   36,   70,
       41,   39,   25,   21,   21,   69,   30,   30,   30,   30,
       30,   23,   24,   24,   24,   24,   24,   39,   21,   40,
       43,   25,   44,   44,   72,   21,   47,   21,   59,   59,
       72,   73,   60,   72,   68,   40,   43,   25,   21,   72,
       46,   77,   67,   29,   72,   29,   72,   30,   30,   30,
       30,   30,   21,   42,   66,   48,   46,   77,   74,   79,
       75,   26,   26,   26,   26,   26,   72,   76,   72,   42,
       25,   48,   65,   78,   74,   79,   75,   72,   72,   72,

       72,   64,   72,   76,   63,   80,   25,   21,   72,   78,
       62,   82,   81,   92,   72,   23,   24,   24,   24,   24,
       24,   80,   85,   83,   84,   25,   61,   82,   81,   58,
       72,   57,   87,   56,   89,   55,   72,   54,   85,   83,
       84,   25,   21,   53,   52,   51,   50,   29,   87,   29,
       89,   30,   30,   30,   30,   30,   21,   88,   72,   90,
       21,   49,   21,   21,   34,   26,   26,   26,   26,   26,
       21,   34,   21,   88,   25,   90,   93,   19,   19,   93,
       91,   93,   93,   93,   93,   93,   93,   93,   93,   93,
       25,   93,   93,   93,   93,   93,   91,   18,   18,   18,

       20,   93,   20,   33,   33,   33,   71,   71,    5,   93,
       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
Sven Neumann's avatar
Sven Neumann committed
518 519
       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
520
       93,   93,   93,   93,   93,   93,   93,   93
Sven Neumann's avatar
Sven Neumann committed
521 522
    } ;

523
static yyconst flex_int16_t yy_chk[359] =
Sven Neumann's avatar
Sven Neumann committed
524 525 526 527
    {   0,
        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,
528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559
        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
        1,    1,    1,    1,    1,    1,    1,    1,    1,    7,
        7,    8,    8,   10,   13,   14,   16,   31,   17,   22,
       22,   10,   10,   10,   10,   10,   10,   27,   42,   42,
       92,   10,   86,   14,   37,   13,   17,   84,   32,   31,
       16,   44,   44,   28,   71,   44,   70,   10,   11,   14,
       84,   13,   17,   27,   32,   31,   16,   11,   11,   11,

       11,   11,   28,   29,   37,   35,   11,   58,   58,   27,
       32,   40,   29,   29,   29,   29,   29,   30,   28,   69,
       37,   35,   11,   12,   36,   68,   30,   30,   30,   30,
       30,   12,   12,   12,   12,   12,   12,   35,   43,   36,
       40,   12,   45,   45,   75,   38,   45,   46,   59,   59,
       72,   72,   59,   77,   67,   36,   40,   12,   15,   74,
       43,   75,   66,   15,   73,   15,   76,   15,   15,   15,
       15,   15,   23,   38,   65,   46,   43,   75,   73,   77,
       73,   23,   23,   23,   23,   23,   78,   74,   80,   38,
       23,   46,   64,   76,   73,   77,   73,   79,   81,   82,

       91,   63,   83,   74,   62,   78,   23,   24,   85,   76,
       61,   80,   79,   91,   88,   24,   24,   24,   24,   24,
       24,   78,   83,   81,   82,   24,   60,   80,   79,   57,
       87,   56,   85,   55,   88,   54,   89,   53,   83,   81,
       82,   24,   25,   52,   51,   50,   49,   25,   85,   25,
       88,   25,   25,   25,   25,   25,   26,   87,   90,   89,
       48,   47,   41,   39,   33,   26,   26,   26,   26,   26,
       20,   18,    6,   87,   26,   89,    5,    4,    3,    0,
       90,    0,    0,    0,    0,    0,    0,    0,    0,    0,
       26,    0,    0,    0,    0,    0,   90,   94,   94,   94,

       95,    0,   95,   96,   96,   96,   97,   97,   93,   93,
       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
Sven Neumann's avatar
Sven Neumann committed
560 561
       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
562 563
       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
       93,   93,   93,   93,   93,   93,   93,   93
Sven Neumann's avatar
Sven Neumann committed
564 565 566 567 568
    } ;

static yy_state_type yy_last_accepting_state;
static char *yy_last_accepting_cpos;

569 570 571
extern int cern__flex_debug;
int cern__flex_debug = 0;

Sven Neumann's avatar
Sven Neumann committed
572 573 574 575 576 577 578
/* 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
579
char *cern_text;
Sven Neumann's avatar
Sven Neumann committed
580 581 582
#line 1 "imap_cern.l"
#line 2 "imap_cern.l"
/*
583
 * This is a plug-in for GIMP.
Sven Neumann's avatar
Sven Neumann committed
584 585 586 587 588
 *
 * Generates clickable image maps.
 *
 * Copyright (C) 1998-1999 Maurits Rijk  lpeek.mrijk@consunet.nl
 *
589
 * This program is free software: you can redistribute it and/or modify
Sven Neumann's avatar
Sven Neumann committed
590
 * it under the terms of the GNU General Public License as published by
591
 * the Free Software Foundation; either version 3 of the License, or
Sven Neumann's avatar
Sven Neumann committed
592 593 594 595 596 597 598 599
 * (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
600
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
Sven Neumann's avatar
Sven Neumann committed
601 602 603
 *
 */

Sven Neumann's avatar
Sven Neumann committed
604 605
#include <string.h>

606 607
#include <glib.h>

Sven Neumann's avatar
Sven Neumann committed
608
#include "imap_cern_parse.h"
609 610 611 612 613

#ifdef FLEX_SCANNER
#define YY_NO_UNPUT
#endif /* FLEX_SCANNER */

614
#define YY_NO_INPUT 1
615

616
#line 617 "<stdout>"
617 618

#define INITIAL 0
Sven Neumann's avatar
Sven Neumann committed
619 620
#define comment 1

621 622 623 624 625 626 627 628 629 630 631 632 633
#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
634

635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655
/* Accessor methods to globals.
   These are made visible to non-reentrant scanners for convenience. */

int cern_lex_destroy (void );

int cern_get_debug (void );

void cern_set_debug (int debug_flag  );

YY_EXTRA_TYPE cern_get_extra (void );

void cern_set_extra (YY_EXTRA_TYPE user_defined  );

FILE *cern_get_in (void );

void cern_set_in  (FILE * in_str  );

FILE *cern_get_out (void );

void cern_set_out  (FILE * out_str  );

656
yy_size_t cern_get_leng (void );
657 658 659 660 661 662 663

char *cern_get_text (void );

int cern_get_lineno (void );

void cern_set_lineno (int line_number  );

Sven Neumann's avatar
Sven Neumann committed
664 665 666 667 668 669
/* Macros after this point can all be overridden by user definitions in
 * section 1.
 */

#ifndef YY_SKIP_YYWRAP
#ifdef __cplusplus
670
extern "C" int cern_wrap (void );
Sven Neumann's avatar
Sven Neumann committed
671
#else
672
extern int cern_wrap (void );
673
#endif
Sven Neumann's avatar
Sven Neumann committed
674
#endif
675

Sven Neumann's avatar
Sven Neumann committed
676
#ifndef yytext_ptr
677
static void yy_flex_strncpy (char *,yyconst char *,int );
Sven Neumann's avatar
Sven Neumann committed
678 679 680
#endif

#ifdef YY_NEED_STRLEN
681
static int yy_flex_strlen (yyconst char * );
Sven Neumann's avatar
Sven Neumann committed
682 683 684
#endif

#ifndef YY_NO_INPUT
685

Sven Neumann's avatar
Sven Neumann committed
686
#ifdef __cplusplus
687
static int yyinput (void );
Sven Neumann's avatar
Sven Neumann committed
688
#else
689
static int input (void );
690 691
#endif

Sven Neumann's avatar
Sven Neumann committed
692 693 694 695 696 697 698 699 700 701 702 703
#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().
 */
704
#define ECHO do { if (fwrite( cern_text, cern_leng, 1, cern_out )) {} } while (0)
Sven Neumann's avatar
Sven Neumann committed
705 706 707 708 709 710 711
#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
712 713 714
	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
		{ \
		int c = '*'; \
715
		size_t n; \
Mukund Sivaraman's avatar
Mukund Sivaraman committed
716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738
		for ( n = 0; n < max_size && \
			     (c = getc( cern_in )) != EOF && c != '\n'; ++n ) \
			buf[n] = (char) c; \
		if ( c == '\n' ) \
			buf[n++] = (char) c; \
		if ( c == EOF && ferror( cern_in ) ) \
			YY_FATAL_ERROR( "input in flex scanner failed" ); \
		result = n; \
		} \
	else \
		{ \
		errno=0; \
		while ( (result = fread(buf, 1, max_size, cern_in))==0 && ferror(cern_in)) \
			{ \
			if( errno != EINTR) \
				{ \
				YY_FATAL_ERROR( "input in flex scanner failed" ); \
				break; \
				} \
			errno=0; \
			clearerr(cern_in); \
			} \
		}\
739 740
\

Sven Neumann's avatar
Sven Neumann committed
741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760
#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

761 762
/* end tables serialization structures and prototypes */

Sven Neumann's avatar
Sven Neumann committed
763 764 765 766
/* Default declaration of generated scanner - a define so the user can
 * easily add parameters.
 */
#ifndef YY_DECL
767
#define YY_DECL_IS_OURS 1
Sven Neumann's avatar
Sven Neumann committed
768

769 770 771 772 773 774
extern int cern_lex (void);

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

/* Code executed at the beginning of each rule, after cern_text and cern_leng
Sven Neumann's avatar
Sven Neumann committed
775 776 777 778 779 780 781 782 783 784 785 786
 * 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
787
	YY_USER_ACTION
Sven Neumann's avatar
Sven Neumann committed
788

789 790
/** The main scanner function which does all the work.
 */
Sven Neumann's avatar
Sven Neumann committed
791
YY_DECL
792
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
793 794 795
	register yy_state_type yy_current_state;
	register char *yy_cp, *yy_bp;
	register int yy_act;
796

797
#line 46 "imap_cern.l"
Sven Neumann's avatar
Sven Neumann committed
798 799


800
#line 801 "<stdout>"
801

Mukund Sivaraman's avatar
Mukund Sivaraman committed
802 803 804
	if ( !(yy_init) )
		{
		(yy_init) = 1;
Sven Neumann's avatar
Sven Neumann committed
805 806

#ifdef YY_USER_INIT
Mukund Sivaraman's avatar
Mukund Sivaraman committed
807
		YY_USER_INIT;
Sven Neumann's avatar
Sven Neumann committed
808 809
#endif

Mukund Sivaraman's avatar
Mukund Sivaraman committed
810 811
		if ( ! (yy_start) )
			(yy_start) = 1;	/* first start state */
Sven Neumann's avatar
Sven Neumann committed
812

Mukund Sivaraman's avatar
Mukund Sivaraman committed
813 814
		if ( ! cern_in )
			cern_in = stdin;
Sven Neumann's avatar
Sven Neumann committed
815

Mukund Sivaraman's avatar
Mukund Sivaraman committed
816 817
		if ( ! cern_out )
			cern_out = stdout;
Sven Neumann's avatar
Sven Neumann committed
818

Mukund Sivaraman's avatar
Mukund Sivaraman committed
819 820 821 822 823
		if ( ! YY_CURRENT_BUFFER ) {
			cern_ensure_buffer_stack ();
			YY_CURRENT_BUFFER_LVALUE =
				cern__create_buffer(cern_in,YY_BUF_SIZE );
		}
Sven Neumann's avatar
Sven Neumann committed
824

Mukund Sivaraman's avatar
Mukund Sivaraman committed
825 826
		cern__load_buffer_state( );
		}
Sven Neumann's avatar
Sven Neumann committed
827

Mukund Sivaraman's avatar
Mukund Sivaraman committed
828 829 830
	while ( 1 )		/* loops until end-of-file is reached */
		{
		yy_cp = (yy_c_buf_p);
Sven Neumann's avatar
Sven Neumann committed
831

Mukund Sivaraman's avatar
Mukund Sivaraman committed
832 833
		/* Support of cern_text. */
		*yy_cp = (yy_hold_char);
Sven Neumann's avatar
Sven Neumann committed
834

Mukund Sivaraman's avatar
Mukund Sivaraman committed
835 836 837 838
		/* 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
839

Mukund Sivaraman's avatar
Mukund Sivaraman committed
840
		yy_current_state = (yy_start);
Sven Neumann's avatar
Sven Neumann committed
841
yy_match:
Mukund Sivaraman's avatar
Mukund Sivaraman committed
842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859
		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 >= 94 )
					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] != 309 );
Sven Neumann's avatar
Sven Neumann committed
860 861

yy_find_action:
Mukund Sivaraman's avatar
Mukund Sivaraman committed
862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881
		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
882 883

case 1:
884
/* rule 1 can match eol */
Sven Neumann's avatar
Sven Neumann committed
885
YY_RULE_SETUP
886
#line 48 "imap_cern.l"
Sven Neumann's avatar
Sven Neumann committed
887
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
888 889 890 891
				   BEGIN(comment);
				   return AUTHOR;
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
892
case 2:
893
/* rule 2 can match eol */
Sven Neumann's avatar
Sven Neumann committed
894
YY_RULE_SETUP
895
#line 53 "imap_cern.l"
Sven Neumann's avatar
Sven Neumann committed
896
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
897 898 899 900
				   BEGIN(comment);
				   return DESCRIPTION;
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
901
case 3:
902
/* rule 3 can match eol */
Sven Neumann's avatar
Sven Neumann committed
903
YY_RULE_SETUP
904
#line 58 "imap_cern.l"
Sven Neumann's avatar
Sven Neumann committed
905
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
906 907 908 909
				   BEGIN(comment);
				   return BEGIN_COMMENT;
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
910
case 4:
911 912 913
*yy_cp = (yy_hold_char); /* undo effects of setting up cern_text */
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up cern_text again */
Sven Neumann's avatar
Sven Neumann committed
914
YY_RULE_SETUP
915
#line 63 "imap_cern.l"
Sven Neumann's avatar
Sven Neumann committed
916
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
917 918 919 920 921
				   BEGIN(INITIAL);
   				   cern_lval.id = g_strndup (cern_text, cern_leng);
   				   return COMMENT;
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
922 923
case 5:
YY_RULE_SETUP
924
#line 69 "imap_cern.l"
Sven Neumann's avatar
Sven Neumann committed
925
return RECTANGLE;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
926
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
927 928
case 6:
YY_RULE_SETUP
929
#line 71 "imap_cern.l"
Sven Neumann's avatar
Sven Neumann committed
930
return CIRCLE;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
931
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
932 933
case 7:
YY_RULE_SETUP
934
#line 73 "imap_cern.l"
Sven Neumann's avatar
Sven Neumann committed
935
return POLYGON;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
936
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
937 938
case 8:
YY_RULE_SETUP
939
#line 75 "imap_cern.l"
Sven Neumann's avatar
Sven Neumann committed
940
return DEFAULT;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
941
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
942
case 9:
943 944 945
*yy_cp = (yy_hold_char); /* undo effects of setting up cern_text */
(yy_c_buf_p) = yy_cp -= 1;
YY_DO_BEFORE_ACTION; /* set up cern_text again */
Sven Neumann's avatar
Sven Neumann committed
946
YY_RULE_SETUP
947
#line 77 "imap_cern.l"
Sven Neumann's avatar
Sven Neumann committed
948
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
949 950 951 952
   				   cern_lval.id = g_strndup (cern_text, cern_leng);
				   return LINK;
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
953 954
case 10:
YY_RULE_SETUP
955
#line 82 "imap_cern.l"
Sven Neumann's avatar
Sven Neumann committed
956
{
957
                                   cern_lval.value = g_ascii_strtod (cern_text, NULL);
Mukund Sivaraman's avatar
Mukund Sivaraman committed
958 959 960
				   return FLOAT;
				}
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
961
case 11:
962
/* rule 11 can match eol */
Sven Neumann's avatar
Sven Neumann committed
963
YY_RULE_SETUP
964
#line 87 "imap_cern.l"
Sven Neumann's avatar
Sven Neumann committed
965
; /* Eat white space */
Mukund Sivaraman's avatar
Mukund Sivaraman committed
966
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
967 968
case 12:
YY_RULE_SETUP
969
#line 89 "imap_cern.l"
970
return *cern_text;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
971
	YY_BREAK
Sven Neumann's avatar
Sven Neumann committed
972 973
case 13:
YY_RULE_SETUP
974
#line 91 "imap_cern.l"
Sven Neumann's avatar
Sven Neumann committed
975
ECHO;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
976
	YY_BREAK
977
#line 978 "<stdout>"
Sven Neumann's avatar
Sven Neumann committed
978 979
case YY_STATE_EOF(INITIAL):
case YY_STATE_EOF(comment):
Mukund Sivaraman's avatar
Mukund Sivaraman committed
980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108
	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 cern_in at a new source and called
			 * cern_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 = cern_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 ( cern_wrap( ) )
					{
					/* Note: because we've taken care in
					 * yy_get_next_buffer() to have set up
					 * cern_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 */
1109
} /* end of cern_lex */
Sven Neumann's avatar
Sven Neumann committed
1110 1111 1112 1113

/* yy_get_next_buffer - try to read in a new buffer
 *
 * Returns a code representing an action:
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1114 1115 1116
 *	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
1117
 */
1118 1119
static int yy_get_next_buffer (void)
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
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
    	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
		{
1164
			yy_size_t num_to_read =
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1165 1166 1167 1168 1169 1170
			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 */
1171
			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1172 1173 1174 1175 1176 1177

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

			if ( b->yy_is_our_buffer )
				{
1178
				yy_size_t new_size = b->yy_buf_size * 2;
Mukund Sivaraman's avatar
Mukund Sivaraman committed
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

				if ( new_size <= 0 )
					b->yy_buf_size += b->yy_buf_size / 8;
				else
					b->yy_buf_size *= 2;

				b->yy_ch_buf = (char *)
					/* Include room in for 2 EOB chars. */
					cern_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
				}
			else
				/* Can't grow it, we don't own it. */
				b->yy_ch_buf = 0;

			if ( ! b->yy_ch_buf )
				YY_FATAL_ERROR(
				"fatal error - scanner input buffer overflow" );

			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];

			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
						number_to_move - 1;

			}

		if ( num_to_read > YY_READ_BUF_SIZE )
			num_to_read = YY_READ_BUF_SIZE;

		/* Read in more data. */
		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1209
			(yy_n_chars), num_to_read );
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245

		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
		}

	if ( (yy_n_chars) == 0 )
		{
		if ( number_to_move == YY_MORE_ADJ )
			{
			ret_val = EOB_ACT_END_OF_FILE;
			cern_restart(cern_in  );
			}

		else
			{
			ret_val = EOB_ACT_LAST_MATCH;
			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
				YY_BUFFER_EOF_PENDING;
			}
		}

	else
		ret_val = EOB_ACT_CONTINUE_SCAN;

	if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
		/* Extend the array by 50%, plus the number we really need. */
		yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) cern_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size  );
		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
	}

	(yy_n_chars) += number_to_move;
	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;

	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
Sven Neumann's avatar
Sven Neumann committed
1246

Mukund Sivaraman's avatar
Mukund Sivaraman committed
1247
	return ret_val;
1248
}
Sven Neumann's avatar
Sven Neumann committed
1249 1250 1251

/* yy_get_previous_state - get the state just before the EOB char was reached */

1252 1253
    static yy_state_type yy_get_previous_state (void)
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1254 1255
	register yy_state_type yy_current_state;
	register char *yy_cp;
1256

Mukund Sivaraman's avatar
Mukund Sivaraman committed
1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276
	yy_current_state = (yy_start);

	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
		{
		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
		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 >= 94 )
				yy_c = yy_meta[(unsigned int) yy_c];
			}
		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
		}

	return yy_current_state;
1277
}
Sven Neumann's avatar
Sven Neumann committed
1278 1279 1280 1281

/* yy_try_NUL_trans - try to make a transition on the NUL character
 *
 * synopsis
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1282
 *	next_state = yy_try_NUL_trans( current_state );
Sven Neumann's avatar
Sven Neumann committed
1283
 */
1284 1285
    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303
	register int yy_is_jam;
    	register char *yy_cp = (yy_c_buf_p);

	register YY_CHAR yy_c = 1;
	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 >= 94 )
			yy_c = yy_meta[(unsigned int) yy_c];
		}
	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
	yy_is_jam = (yy_current_state == 93);

1304
		return yy_is_jam ? 0 : yy_current_state;
1305
}
Sven Neumann's avatar
Sven Neumann committed
1306

1307
#ifndef YY_NO_INPUT
Sven Neumann's avatar
Sven Neumann committed
1308
#ifdef __cplusplus
1309
    static int yyinput (void)
Sven Neumann's avatar
Sven Neumann committed
1310
#else
1311
    static int input  (void)
Sven Neumann's avatar
Sven Neumann committed
1312 1313
#endif

1314
{
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1315
	int c;
1316

Mukund Sivaraman's avatar
Mukund Sivaraman committed
1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330
	*(yy_c_buf_p) = (yy_hold_char);

	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
		{
		/* yy_c_buf_p now points to the character we want to return.
		 * If this occurs *before* the EOB characters, then it's a
		 * valid NUL; if not, then we've hit the end of the buffer.
		 */
		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
			/* This was really a NUL. */
			*(yy_c_buf_p) = '\0';

		else
			{ /* need more input */
1331
			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358
			++(yy_c_buf_p);

			switch ( yy_get_next_buffer(  ) )
				{
				case EOB_ACT_LAST_MATCH:
					/* This happens because yy_g_n_b()
					 * sees that we've accumulated a
					 * token and flags that we need to
					 * try matching the token before
					 * proceeding.  But for input(),
					 * there's no matching to consider.
					 * So convert the EOB_ACT_LAST_MATCH
					 * to EOB_ACT_END_OF_FILE.
					 */

					/* Reset buffer status. */
					cern_restart(cern_in );

					/*FALLTHROUGH*/

				case EOB_ACT_END_OF_FILE:
					{
					if ( cern_wrap( ) )
						return EOF;

					if ( ! (yy_did_buffer_switch_on_eof) )
						YY_NEW_FILE;
Sven Neumann's avatar
Sven Neumann committed
1359
#ifdef __cplusplus
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1360
					return yyinput();
Sven Neumann's avatar
Sven Neumann committed
1361
#else
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1362
					return input();
Sven Neumann's avatar
Sven Neumann committed
1363
#endif
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1364
					}
Sven Neumann's avatar
Sven Neumann committed
1365

Mukund Sivaraman's avatar
Mukund Sivaraman committed
1366 1367 1368 1369 1370 1371
				case EOB_ACT_CONTINUE_SCAN:
					(yy_c_buf_p) = (yytext_ptr) + offset;
					break;
				}
			}
		}
Sven Neumann's avatar
Sven Neumann committed
1372

Mukund Sivaraman's avatar
Mukund Sivaraman committed
1373 1374 1375
	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
	*(yy_c_buf_p) = '\0';	/* preserve cern_text */
	(yy_hold_char) = *++(yy_c_buf_p);
Sven Neumann's avatar
Sven Neumann committed
1376

Mukund Sivaraman's avatar
Mukund Sivaraman committed
1377
	return c;
1378
}
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1379
#endif	/* ifndef YY_NO_INPUT */
1380

1381 1382
/** Immediately switch to a different input stream.
 * @param input_file A readable stream.
1383
 *
1384 1385 1386 1387
 * @note This function does not reset the start condition to @c INITIAL .
 */
    void cern_restart  (FILE * input_file )
{
1388

Mukund Sivaraman's avatar
Mukund Sivaraman committed
1389
	if ( ! YY_CURRENT_BUFFER ){
1390
        cern_ensure_buffer_stack ();
Mukund Sivaraman's avatar
Mukund Sivaraman committed
1391
		YY_CURRENT_BUFFER_LVALUE =
1392
            cern__create_buffer(cern_in,YY_BUF_SIZE );