1
2#line 3 "<stdout>"
3
4#define  YY_INT_ALIGNED short int
5
6/* A lexical scanner generated by flex */
7
8#define FLEX_SCANNER
9#define YY_FLEX_MAJOR_VERSION 2
10#define YY_FLEX_MINOR_VERSION 5
11#define YY_FLEX_SUBMINOR_VERSION 35
12#if YY_FLEX_SUBMINOR_VERSION > 0
13#define FLEX_BETA
14#endif
15
16/* First, we deal with  platform-specific or compiler-specific issues. */
17
18/* begin standard C headers. */
19#include <stdio.h>
20#include <string.h>
21#include <errno.h>
22#include <stdlib.h>
23
24/* end standard C headers. */
25
26/* flex integer type definitions */
27
28#ifndef FLEXINT_H
29#define FLEXINT_H
30
31/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
34
35/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
36 * if you want the limit (max/min) macros for int types.
37 */
38#ifndef __STDC_LIMIT_MACROS
39#define __STDC_LIMIT_MACROS 1
40#endif
41
42#include <inttypes.h>
43typedef int8_t flex_int8_t;
44typedef uint8_t flex_uint8_t;
45typedef int16_t flex_int16_t;
46typedef uint16_t flex_uint16_t;
47typedef int32_t flex_int32_t;
48typedef uint32_t flex_uint32_t;
49#else
50typedef signed char flex_int8_t;
51typedef short int flex_int16_t;
52typedef int flex_int32_t;
53typedef unsigned char flex_uint8_t;
54typedef unsigned short int flex_uint16_t;
55typedef unsigned int flex_uint32_t;
56
57/* Limits of integral types. */
58#ifndef INT8_MIN
59#define INT8_MIN               (-128)
60#endif
61#ifndef INT16_MIN
62#define INT16_MIN              (-32767-1)
63#endif
64#ifndef INT32_MIN
65#define INT32_MIN              (-2147483647-1)
66#endif
67#ifndef INT8_MAX
68#define INT8_MAX               (127)
69#endif
70#ifndef INT16_MAX
71#define INT16_MAX              (32767)
72#endif
73#ifndef INT32_MAX
74#define INT32_MAX              (2147483647)
75#endif
76#ifndef UINT8_MAX
77#define UINT8_MAX              (255U)
78#endif
79#ifndef UINT16_MAX
80#define UINT16_MAX             (65535U)
81#endif
82#ifndef UINT32_MAX
83#define UINT32_MAX             (4294967295U)
84#endif
85
86#endif /* ! C99 */
87
88#endif /* ! FLEXINT_H */
89
90#ifdef __cplusplus
91
92/* The "const" storage-class-modifier is valid. */
93#define YY_USE_CONST
94
95#else	/* ! __cplusplus */
96
97/* C99 requires __STDC__ to be defined as 1. */
98#if defined (__STDC__)
99
100#define YY_USE_CONST
101
102#endif	/* defined (__STDC__) */
103#endif	/* ! __cplusplus */
104
105#ifdef YY_USE_CONST
106#define yyconst const
107#else
108#define yyconst
109#endif
110
111/* Returned upon end-of-file. */
112#define YY_NULL 0
113
114/* Promotes a possibly negative, possibly signed char to an unsigned
115 * integer for use as an array index.  If the signed char is negative,
116 * we want to instead treat it as an 8-bit unsigned char, hence the
117 * double cast.
118 */
119#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
120
121/* An opaque pointer. */
122#ifndef YY_TYPEDEF_YY_SCANNER_T
123#define YY_TYPEDEF_YY_SCANNER_T
124typedef void* yyscan_t;
125#endif
126
127/* For convenience, these vars (plus the bison vars far below)
128   are macros in the reentrant scanner. */
129#define yyin yyg->yyin_r
130#define yyout yyg->yyout_r
131#define yyextra yyg->yyextra_r
132#define yyleng yyg->yyleng_r
133#define yytext yyg->yytext_r
134#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
135#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
136#define yy_flex_debug yyg->yy_flex_debug_r
137
138/* Enter a start condition.  This macro really ought to take a parameter,
139 * but we do it the disgusting crufty way forced on us by the ()-less
140 * definition of BEGIN.
141 */
142#define BEGIN yyg->yy_start = 1 + 2 *
143
144/* Translate the current start state into a value that can be later handed
145 * to BEGIN to return to the state.  The YYSTATE alias is for lex
146 * compatibility.
147 */
148#define YY_START ((yyg->yy_start - 1) / 2)
149#define YYSTATE YY_START
150
151/* Action number for EOF rule of a given start state. */
152#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
153
154/* Special action meaning "start processing a new file". */
155#define YY_NEW_FILE parse_events_restart(yyin ,yyscanner )
156
157#define YY_END_OF_BUFFER_CHAR 0
158
159/* Size of default input buffer. */
160#ifndef YY_BUF_SIZE
161#ifdef __ia64__
162/* On IA-64, the buffer size is 16k, not 8k.
163 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
164 * Ditto for the __ia64__ case accordingly.
165 */
166#define YY_BUF_SIZE 32768
167#else
168#define YY_BUF_SIZE 16384
169#endif /* __ia64__ */
170#endif
171
172/* The state buf must be large enough to hold one state per character in the main buffer.
173 */
174#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
175
176#ifndef YY_TYPEDEF_YY_BUFFER_STATE
177#define YY_TYPEDEF_YY_BUFFER_STATE
178typedef struct yy_buffer_state *YY_BUFFER_STATE;
179#endif
180
181#define EOB_ACT_CONTINUE_SCAN 0
182#define EOB_ACT_END_OF_FILE 1
183#define EOB_ACT_LAST_MATCH 2
184
185    #define YY_LESS_LINENO(n)
186
187/* Return all but the first "n" matched characters back to the input stream. */
188#define yyless(n) \
189	do \
190		{ \
191		/* Undo effects of setting up yytext. */ \
192        int yyless_macro_arg = (n); \
193        YY_LESS_LINENO(yyless_macro_arg);\
194		*yy_cp = yyg->yy_hold_char; \
195		YY_RESTORE_YY_MORE_OFFSET \
196		yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
197		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
198		} \
199	while ( 0 )
200
201#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
202
203#ifndef YY_TYPEDEF_YY_SIZE_T
204#define YY_TYPEDEF_YY_SIZE_T
205typedef size_t yy_size_t;
206#endif
207
208#ifndef YY_STRUCT_YY_BUFFER_STATE
209#define YY_STRUCT_YY_BUFFER_STATE
210struct yy_buffer_state
211	{
212	FILE *yy_input_file;
213
214	char *yy_ch_buf;		/* input buffer */
215	char *yy_buf_pos;		/* current position in input buffer */
216
217	/* Size of input buffer in bytes, not including room for EOB
218	 * characters.
219	 */
220	yy_size_t yy_buf_size;
221
222	/* Number of characters read into yy_ch_buf, not including EOB
223	 * characters.
224	 */
225	int yy_n_chars;
226
227	/* Whether we "own" the buffer - i.e., we know we created it,
228	 * and can realloc() it to grow it, and should free() it to
229	 * delete it.
230	 */
231	int yy_is_our_buffer;
232
233	/* Whether this is an "interactive" input source; if so, and
234	 * if we're using stdio for input, then we want to use getc()
235	 * instead of fread(), to make sure we stop fetching input after
236	 * each newline.
237	 */
238	int yy_is_interactive;
239
240	/* Whether we're considered to be at the beginning of a line.
241	 * If so, '^' rules will be active on the next match, otherwise
242	 * not.
243	 */
244	int yy_at_bol;
245
246    int yy_bs_lineno; /**< The line count. */
247    int yy_bs_column; /**< The column count. */
248
249	/* Whether to try to fill the input buffer when we reach the
250	 * end of it.
251	 */
252	int yy_fill_buffer;
253
254	int yy_buffer_status;
255
256#define YY_BUFFER_NEW 0
257#define YY_BUFFER_NORMAL 1
258	/* When an EOF's been seen but there's still some text to process
259	 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
260	 * shouldn't try reading from the input source any more.  We might
261	 * still have a bunch of tokens to match, though, because of
262	 * possible backing-up.
263	 *
264	 * When we actually see the EOF, we change the status to "new"
265	 * (via parse_events_restart()), so that the user can continue scanning by
266	 * just pointing yyin at a new input file.
267	 */
268#define YY_BUFFER_EOF_PENDING 2
269
270	};
271#endif /* !YY_STRUCT_YY_BUFFER_STATE */
272
273/* We provide macros for accessing buffer states in case in the
274 * future we want to put the buffer states in a more general
275 * "scanner state".
276 *
277 * Returns the top of the stack, or NULL.
278 */
279#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
280                          ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
281                          : NULL)
282
283/* Same as previous macro, but useful when we know that the buffer stack is not
284 * NULL or when we need an lvalue. For internal use only.
285 */
286#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
287
288void parse_events_restart (FILE *input_file ,yyscan_t yyscanner );
289void parse_events__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
290YY_BUFFER_STATE parse_events__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
291void parse_events__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
292void parse_events__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
293void parse_events_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
294void parse_events_pop_buffer_state (yyscan_t yyscanner );
295
296static void parse_events_ensure_buffer_stack (yyscan_t yyscanner );
297static void parse_events__load_buffer_state (yyscan_t yyscanner );
298static void parse_events__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
299
300#define YY_FLUSH_BUFFER parse_events__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
301
302YY_BUFFER_STATE parse_events__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
303YY_BUFFER_STATE parse_events__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
304YY_BUFFER_STATE parse_events__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
305
306void *parse_events_alloc (yy_size_t ,yyscan_t yyscanner );
307void *parse_events_realloc (void *,yy_size_t ,yyscan_t yyscanner );
308void parse_events_free (void * ,yyscan_t yyscanner );
309
310#define yy_new_buffer parse_events__create_buffer
311
312#define yy_set_interactive(is_interactive) \
313	{ \
314	if ( ! YY_CURRENT_BUFFER ){ \
315        parse_events_ensure_buffer_stack (yyscanner); \
316		YY_CURRENT_BUFFER_LVALUE =    \
317            parse_events__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
318	} \
319	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
320	}
321
322#define yy_set_bol(at_bol) \
323	{ \
324	if ( ! YY_CURRENT_BUFFER ){\
325        parse_events_ensure_buffer_stack (yyscanner); \
326		YY_CURRENT_BUFFER_LVALUE =    \
327            parse_events__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
328	} \
329	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
330	}
331
332#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
333
334/* Begin user sect3 */
335
336typedef unsigned char YY_CHAR;
337
338typedef int yy_state_type;
339
340#define yytext_ptr yytext_r
341
342static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
343static yy_state_type yy_try_NUL_trans (yy_state_type current_state  ,yyscan_t yyscanner);
344static int yy_get_next_buffer (yyscan_t yyscanner );
345static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
346
347/* Done after the current pattern has been matched and before the
348 * corresponding action - sets up yytext.
349 */
350#define YY_DO_BEFORE_ACTION \
351	yyg->yytext_ptr = yy_bp; \
352	yyleng = (size_t) (yy_cp - yy_bp); \
353	yyg->yy_hold_char = *yy_cp; \
354	*yy_cp = '\0'; \
355	yyg->yy_c_buf_p = yy_cp;
356
357#define YY_NUM_RULES 66
358#define YY_END_OF_BUFFER 67
359/* This struct is not used in this scanner,
360   but its presence is necessary. */
361struct yy_trans_info
362	{
363	flex_int32_t yy_verify;
364	flex_int32_t yy_nxt;
365	};
366static yyconst flex_int16_t yy_accept[900] =
367    {   0,
368        0,    0,    0,    0,    0,    0,    0,    0,   67,   66,
369       60,   52,   55,   54,   53,   49,   49,   56,   59,   51,
370       51,   52,   52,   52,   52,   52,   52,   52,   52,   52,
371       52,   52,   52,   52,   52,   51,   52,   52,   52,   52,
372       57,   58,   65,   63,   63,   62,   61,   46,   44,   45,
373       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
374       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
375       46,    3,    3,    4,    4,   52,   49,    0,   51,   52,
376       52,   52,   27,   52,   52,   52,   52,   52,   52,   52,
377       52,   52,   52,   52,   20,   52,    0,   52,   52,   52,
378
379       52,    0,   52,   52,   52,   52,   52,   52,   52,   52,
380       52,   52,   52,   52,   48,   48,   52,   52,   52,   52,
381       63,    0,   61,   46,   46,   46,   46,   46,   46,   27,
382       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
383       46,   20,   46,   46,   46,   46,   46,   46,   46,   46,
384       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
385       46,   46,   46,   46,   46,   46,   46,   46,   46,    3,
386        0,    0,    0,    1,   50,   52,   52,    0,   52,   52,
387       52,   30,   52,   52,   52,   52,   52,   52,    0,   52,
388       52,   52,   52,    0,   52,   52,   52,    0,   25,   26,
389
390       52,   52,   52,   52,   52,   52,   52,   36,   52,   52,
391       48,   48,   52,   52,   52,   52,   52,   64,   61,   46,
392       46,   46,   46,   46,   46,   30,   46,   46,   46,   46,
393       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
394       46,   46,   25,   26,   46,   46,   46,   46,   46,   46,
395       46,   46,   36,   46,   46,   46,   46,   46,   46,   46,
396       46,   46,   46,    0,    2,    1,   52,   52,    0,    0,
397       52,   52,   52,   52,    0,   52,   52,    0,   52,    0,
398       28,   52,   52,   52,    0,   29,   52,   52,   25,   26,
399       32,   52,   47,   52,   52,   37,   31,   52,   52,   32,
400
401        0,   52,   52,   52,   52,   52,   46,   46,   46,   46,
402       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
403       46,   28,   46,   46,   46,   46,   29,   46,   46,   25,
404       26,   32,   46,   46,   46,   37,   41,   31,   46,   46,
405       46,   32,   46,   46,   46,   46,   46,   46,    2,    0,
406       52,    0,    0,    0,    0,   52,   52,   52,   52,    0,
407       52,   52,    0,    0,   52,   28,   24,   52,   52,   29,
408        0,   52,   32,   52,   52,   52,   52,    0,   52,    0,
409       52,   52,   33,    0,   33,   46,   46,   46,   46,   46,
410       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
411
412       46,   46,   28,   24,   46,   46,   29,   46,   46,   32,
413       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
414       33,   46,   33,    0,   52,    0,    0,    0,    0,   52,
415       52,   30,    0,    0,   52,    0,    0,    0,    5,   52,
416       17,    0,   52,    0,   52,    0,   37,    0,   52,    0,
417       52,   52,    0,   46,   46,   46,   46,   46,   46,   46,
418       46,   30,   46,   46,   38,   46,   46,   46,   46,    5,
419       46,   17,   46,   46,   46,   46,   46,   37,   46,   42,
420       46,   46,   46,   46,   46,    0,   52,    0,    0,    0,
421       52,   52,    0,   52,    0,    0,    0,   52,    0,    0,
422
423        0,   52,    0,   52,    0,   52,    0,    0,   52,    0,
424       52,   52,    0,   46,   46,   46,   46,   46,   46,   46,
425       46,   46,   46,   46,   46,   46,   39,   40,   46,   46,
426       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
427       46,   46,   46,   46,   52,    0,    0,    0,   52,   52,
428        0,    0,   11,    0,    0,    0,    0,    0,    0,    0,
429       52,    0,   52,    0,   52,    0,    0,   34,    0,   52,
430        0,    0,   46,   46,   46,   46,   46,   46,   46,   46,
431       46,   11,   46,   46,   46,   46,   46,   46,   46,   46,
432       46,   46,   46,   46,   46,   46,   34,   46,   46,   46,
433
434       46,   52,    0,   52,    0,    0,    0,    0,    0,    0,
435       15,    0,    0,   52,    0,   52,    0,   52,    0,    0,
436       52,    0,   52,    0,    0,   46,   46,   46,   46,   46,
437       46,   46,   46,   46,   46,   15,   46,   46,   46,   46,
438       46,   46,   46,   46,   46,   46,   46,   46,   46,   46,
439       52,    0,    0,    0,    0,   13,    0,    0,    0,    5,
440        0,    0,    0,   52,    0,   21,    0,    0,   34,   14,
441       52,    0,   16,   46,   46,   46,   46,   46,   46,   13,
442       46,   46,   46,    5,   46,   46,   46,   46,   46,   21,
443       46,   46,   34,   14,   46,   46,   16,   52,    0,    0,
444
445        0,    0,    0,    0,    0,    0,    0,    0,   52,    0,
446        0,   17,   52,    0,   46,   46,   46,   46,   46,   43,
447       46,   46,   46,   46,   46,   46,   46,   46,   46,   17,
448       46,   46,    0,    0,    0,    0,    0,   10,    0,    0,
449        0,    0,    0,    8,   19,   18,    0,    0,   46,   46,
450       46,   46,   46,   10,   46,   46,   46,   46,   46,    8,
451       19,   18,   46,   46,    0,    0,    0,    0,   12,    0,
452        0,    0,    0,    0,    0,    0,    0,    0,   46,   46,
453       46,   46,   12,   46,   46,   46,   46,   46,   46,   46,
454       46,   46,    0,    0,    0,    0,    0,   21,    0,    0,
455
456        0,    0,    0,    0,   46,   46,   46,   46,   46,   21,
457       46,   46,   46,   46,   46,   46,    0,    0,    0,    0,
458        0,    0,    0,    0,    0,    0,   46,   46,   46,   46,
459       46,   46,   46,   46,   46,   46,   22,    0,    9,   20,
460       23,    0,    0,   35,    0,    0,   22,   46,    9,   20,
461       23,   46,   46,   35,   46,   46,    0,    0,    0,    0,
462        0,   46,   46,   46,   46,   46,    0,    0,    0,    0,
463        0,   46,   46,   46,   46,   46,   11,    7,    0,    0,
464        0,   11,    7,   46,   46,   46,    6,    0,    0,    6,
465       46,   46,    0,    0,   46,   46,    0,   46,    0
466
467    } ;
468
469static yyconst flex_int32_t yy_ec[256] =
470    {   0,
471        1,    1,    1,    1,    1,    1,    1,    1,    1,    2,
472        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
473        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
474        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
475        1,    3,    1,    4,    5,    1,    6,    7,    8,    9,
476       10,   10,   10,   10,   10,   10,   10,   11,    1,    1,
477       12,    1,    3,    1,   13,   14,   15,   16,   13,   13,
478       17,   17,   18,    3,    3,   19,    3,    3,    3,    3,
479        3,   20,   17,   21,    3,    3,    3,    3,    3,    3,
480        1,    1,    1,    1,   22,    1,   23,   24,   25,   26,
481
482       27,   28,   29,   30,   31,   32,   33,   34,   35,   36,
483       37,   38,    3,   39,   40,   41,   42,   43,   44,   45,
484       46,    3,   47,    1,   48,    1,    1,    1,    1,    1,
485        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
486        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
487        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
488        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
489        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
490        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
491        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
492
493        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
494        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
495        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
496        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
497        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
498        1,    1,    1,    1,    1
499    } ;
500
501static yyconst flex_int32_t yy_meta[49] =
502    {   0,
503        1,    1,    2,    3,    4,    5,    6,    6,    6,    6,
504        1,    1,    6,    6,    6,    6,    2,    2,    2,    2,
505        2,    2,    6,    6,    6,    6,    6,    6,    2,    2,
506        2,    2,    2,    2,    2,    2,    2,    2,    2,    2,
507        2,    2,    2,    2,    2,    2,    5,    3
508    } ;
509
510static yyconst flex_int16_t yy_base[912] =
511    {   0,
512        0,    0,   47,   91,  136,    0,   57,   60, 1304, 1305,
513     1305,    0, 1305, 1305, 1305,   43,   60, 1305, 1305,   73,
514      169, 1267,   63, 1275,   40,   37,   72,   92, 1266, 1277,
515      182,   77,   50, 1262, 1260,  203,  239,   42, 1274, 1257,
516     1305, 1305, 1305,  182,  112, 1305,   84, 1290, 1305, 1305,
517      263, 1271,   89,  196,  183,  188,  190,  235,  193,   82,
518      189,  256,  201,  264,  220,  192,  251,  301,  218,  211,
519      212,  190,  238, 1305, 1245,    0,  290,    0,   93, 1251,
520     1251, 1285,    0, 1274, 1260, 1262, 1255,  246, 1262, 1260,
521     1243, 1257, 1245, 1238,    0, 1254, 1237, 1258, 1241, 1233,
522
523     1232, 1232, 1253, 1237, 1230,  307, 1246, 1236, 1232,  294,
524     1240, 1225, 1235, 1236, 1235,  308, 1234,  247, 1220, 1228,
525      311,    0,  298, 1253,    0, 1234,  219,  299, 1251, 1250,
526      298,  317,  327,  245,  335,  216,  278,  336,  339,  342,
527      341, 1249,  343, 1212,  344,  345,  346,  348, 1211,  350,
528      351,  349,  353,  284,  354,  352,  362,  357,  356,  360,
529       55,  365,  366, 1224,  378,  367,  376,  368,  390,  360,
530     1244, 1201, 1200,    0,    0, 1224, 1205,  100, 1218, 1217,
531     1214,    0, 1206, 1236, 1210, 1198, 1233, 1203, 1202, 1221,
532     1199, 1199, 1198, 1197, 1216, 1202, 1187,  383,    0,    0,
533
534     1201, 1189, 1214, 1185, 1186, 1182, 1194,    0, 1193, 1191,
535      348,  391, 1193, 1183, 1177, 1182, 1173,    0, 1305,  392,
536      398,  385,  405,  407,  412, 1208,  414, 1207,  415,  418,
537     1206,  417, 1176,  119,  419,  421,  422, 1175,  423,  420,
538      424,  404, 1203, 1202,  431,  433,  437,  428,  435,  438,
539      439,  444, 1201,  447,  448,  453,  434,  457,  458,  459,
540      463,  468,  464, 1199,    0,    0, 1199, 1164,  452,  451,
541     1163, 1161, 1164, 1174, 1173, 1170, 1169,  455, 1168, 1170,
542        0, 1147, 1169, 1150, 1166,    0, 1184, 1149, 1305, 1305,
543     1147, 1147, 1305, 1162, 1145, 1156,    0, 1177, 1154, 1153,
544
545     1154, 1136, 1143, 1149, 1170, 1147, 1168,  477,  463,  460,
546      484,  486,  489,  487, 1147,  490,  493,  494,  475,  501,
547     1147, 1165,  498,  499,  502, 1145, 1163, 1162,  503,    0,
548        0,  506,  508,  504,  509,  510, 1161, 1160, 1159,  513,
549      514, 1136, 1137,  515,  524,  525, 1156,  526,    0, 1139,
550     1117, 1117, 1134, 1133, 1115, 1127, 1113, 1117, 1121, 1104,
551     1144, 1103,  499, 1116, 1106, 1305,    0, 1104, 1104, 1305,
552     1118, 1100,    0, 1136, 1099, 1134, 1098, 1109, 1095, 1089,
553     1100, 1106, 1092, 1106,    0, 1109,  527, 1088, 1105, 1104,
554     1086,  529,  530,  531,  533, 1079, 1119,  535,  534,  515,
555
556     1092,  546,    0, 1117,  549,  554,    0, 1096,  550, 1115,
557     1114,  555, 1113,  557, 1089,  562,  560, 1070,  566,  568,
558      563, 1090, 1109, 1094, 1087, 1088, 1085, 1084, 1067, 1071,
559     1079,  571, 1080,  539, 1063, 1066, 1077, 1072,    0, 1069,
560        0, 1053, 1073, 1069, 1065, 1067,    0, 1071, 1068, 1067,
561     1068, 1064, 1055, 1069,  577, 1064, 1061, 1060, 1043,  570,
562      572,  582, 1058,  545,  602,  567, 1045, 1056, 1051, 1074,
563      584, 1073, 1031,  580, 1048,  586, 1047, 1069, 1050, 1067,
564      588, 1046,  607,  609, 1036, 1055, 1027, 1037, 1036, 1026,
565     1039, 1027,  585, 1022, 1027, 1029, 1032, 1053, 1032, 1022,
566
567     1016, 1017, 1028, 1011, 1028, 1013, 1026, 1006, 1017, 1012,
568     1004, 1039, 1006, 1028,  578, 1011, 1010, 1000,  613,  616,
569      591,  618,  620, 1004, 1006, 1009, 1030, 1029, 1028, 1007,
570      997,  991,  619, 1004,  622, 1005,  624, 1004,  984,  623,
571      991,  626, 1019,  986,  991,  994,  993,  977,  991,  976,
572      980,  984,    0,  987,  973,  984,  971,  977,  982,  985,
573      971,  972,  974,  962,  967,  960,  967,  973,  972,  967,
574      972,  971,  627,  968,  967,  951,  628,  629,  956,  960,
575      631,  985,  962,  948,  959,  946,  952,  957,  960,  632,
576      948,  634,  939,  635,  938,  945,  637,  951,  638,  952,
577
578      951,  938,  949,  968,  932,  931,  930,  929,  941,  923,
579     1305,  926,  924,  959,  936,  925,  927,  920,  925,  917,
580      917,  916,  912,  908,  920,  636,  927,  946,  910,  909,
581      640,  908,  907,  919,  901,    0,  904,  902,  937,  914,
582      639,  906,  641,  905,  897,  642,  897,  643,  890,  902,
583      898,  892,  904,  890,  890, 1305,  902,  889,  896, 1305,
584      895,  897,  884,  887,  881,    0,  880,  880,    0, 1305,
585      892,  893, 1305,  644,  876,  888,  874,  874,  645,    0,
586      886,  873,  880,    0,  879,  881,  868,  649,  866,  901,
587      864,  864,  898,    0,  652,  877,    0,  896,  869,  876,
588
589      859,  870,  856,  868,  853,  856,  869,  886,  850,  849,
590      848, 1305,  882,  852,  880,  853,  860,  843,  854,  875,
591      839,  851,  836,  839,  852,  869,  657,  833,  832,    0,
592      866,  836,  848,  831,  825,  824,  825, 1305,  828,  838,
593      826,  819,  659,    0, 1305, 1305,  650,  833,  838,  821,
594      815,  814,  815,    0,  818,  828,  816,  809,  664,  845,
595        0,    0,  656,  822,  829,  811,  812,  820, 1305,  819,
596      813,  802,  807,  817,  800,  801,  810,  796,  816,  798,
597      799,  807,    0,  806,  800,  789,  794,  804,  787,  788,
598      797,  783,  808,  780,  779,  792,  791, 1305,  776,  791,
599
600      777,  789,  785,  801,  782,  753,  742,  752,  750,    0,
601      733,  102,  163,  271,  558,  646,  626,  643,  635,  651,
602      653,  661,  660,  672,  673,  676,  661,  671,  663,  665,
603      666,  674,  672,  683,  684,  687, 1305,  675, 1305, 1305,
604     1305,  686,  673, 1305,  693,  678,    0,  681,    0,    0,
605        0,  692,  679,    0,  698,  683,  687,  688,  698,  701,
606      690,  692,  693,  703,  706,  695,  693,  708,  699,  703,
607      701,  698,  713,  704,  708,  706, 1305, 1305,  717,  717,
608      704,    0,    0,  720,  720,  707, 1305,  713,  723,    0,
609      715,  725,  727,  718,  729,  720,  731,  732, 1305,  758,
610
611      764,  769,  774,  780,  786,  766,  767,  791,  797,  803,
612      809
613    } ;
614
615static yyconst flex_int16_t yy_def[912] =
616    {   0,
617      899,    1,  900,  900,  899,    5,  901,  901,  899,  899,
618      899,  902,  899,  899,  899,  899,  899,  899,  899,  902,
619      902,  902,  902,  902,  902,  902,  902,  902,  902,  902,
620      902,  902,  902,  902,  902,  902,  902,  902,  902,  902,
621      899,  899,  899,  899,  899,  899,  899,  903,  899,  899,
622      903,   51,  903,  903,  903,  903,  903,  903,  903,  903,
623      903,  903,  903,  903,  903,  903,   51,  903,  903,  903,
624      903,  904,  904,  899,  905,  902,  899,  906,   36,  902,
625      902,  902,  902,  902,  902,  902,  902,  902,  902,  902,
626      902,  902,  902,  902,  902,  902,  899,  902,  902,  902,
627
628      902,  899,  902,  902,  902,  902,  902,  902,  902,  902,
629      902,  902,  902,  902,   37,   37,  902,  902,  902,  902,
630      899,  907,  899,  903,  908,   51,  903,  903,  903,  903,
631      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
632      903,  903,  903,  908,  903,  903,  903,  903,  908,  903,
633      903,  903,  903,  903,  903,  903,  903,  903,  903,  903,
634      903,  903,  903,   68,   68,  903,  903,  903,  903,  904,
635      909,  905,  905,  910,  906,  902,  902,  899,  902,  902,
636      902,  902,  902,  902,  902,  902,  902,  902,  899,  902,
637      902,  902,  902,  899,  902,  902,  902,  899,  902,  902,
638
639      902,  902,  902,  902,  902,  902,  902,  902,  902,  902,
640       37,   37,  902,  902,  902,  902,  902,  907,  899,  903,
641      903,  908,  903,  903,  903,  903,  903,  903,  903,  903,
642      903,  903,  908,  903,  903,  903,  903,  908,  903,  903,
643      903,  908,  903,  903,  903,  903,  903,  903,  903,  903,
644      903,  903,  903,  903,  903,  903,   68,   68,  903,  903,
645      903,  903,  903,  909,  911,  910,  902,  902,  899,  899,
646      902,  902,  902,  902,  899,  902,  902,  899,  902,  899,
647      902,  902,  902,  902,  899,  902,  902,  902,  899,  899,
648      902,  902,  899,  902,  902,  902,  902,  902,  902,   37,
649
650      899,  902,  902,  902,  902,  902,  903,  903,  908,  908,
651      903,  903,  903,  903,  908,  903,  903,  903,  908,  903,
652      908,  903,  903,  903,  903,  908,  903,  903,  903,  908,
653      908,  903,  903,  903,  903,  903,  903,  903,  903,  903,
654      903,   68,  908,  903,  903,  903,  903,  903,  911,  899,
655      902,  899,  899,  899,  899,  902,  902,  902,  902,  899,
656      902,  902,  899,  899,  902,  899,  902,  902,  902,  899,
657      899,  902,  902,  902,  902,  902,  902,  899,  902,  899,
658      902,  902,  902,  899,  902,  908,  903,  908,  908,  908,
659      908,  903,  903,  903,  903,  908,  903,  903,  903,  908,
660
661      908,  903,  908,  903,  903,  903,  908,  908,  903,  903,
662      903,  903,  903,  903,  908,  903,  903,  908,  903,  903,
663      903,  908,  903,  899,  902,  899,  899,  899,  899,  902,
664      902,  902,  899,  899,  902,  899,  899,  899,  902,  902,
665      902,  899,  902,  899,  902,  899,  902,  899,  902,  899,
666      902,  902,  899,  908,  903,  908,  908,  908,  908,  903,
667      903,  903,  908,  908,  903,  903,  908,  908,  908,  903,
668      903,  903,  908,  903,  908,  903,  908,  903,  908,  903,
669      903,  908,  903,  903,  908,  899,  902,  899,  899,  899,
670      902,  902,  899,  902,  899,  899,  899,  902,  899,  899,
671
672      899,  902,  899,  902,  899,  902,  899,  899,  902,  899,
673      902,  902,  899,  908,  903,  908,  908,  908,  903,  903,
674      908,  903,  903,  908,  908,  908,  903,  903,  903,  908,
675      908,  908,  903,  908,  903,  908,  903,  908,  908,  903,
676      908,  903,  903,  908,  902,  899,  899,  899,  902,  902,
677      899,  899,  902,  899,  899,  899,  899,  899,  899,  899,
678      902,  899,  902,  899,  902,  899,  899,  902,  899,  902,
679      899,  899,  903,  908,  908,  908,  903,  903,  908,  908,
680      903,  903,  908,  908,  908,  908,  908,  908,  908,  903,
681      908,  903,  908,  903,  908,  908,  903,  908,  903,  908,
682
683      908,  902,  899,  902,  899,  899,  899,  899,  899,  899,
684      899,  899,  899,  902,  899,  902,  899,  902,  899,  899,
685      902,  899,  902,  899,  899,  903,  908,  903,  908,  908,
686      903,  908,  908,  908,  908,  908,  908,  908,  903,  908,
687      903,  908,  903,  908,  908,  903,  908,  903,  908,  908,
688      902,  899,  899,  899,  899,  899,  899,  899,  899,  899,
689      899,  899,  899,  902,  899,  902,  899,  899,  902,  899,
690      902,  899,  899,  903,  908,  908,  908,  908,  903,  908,
691      908,  908,  908,  908,  908,  908,  908,  903,  908,  903,
692      908,  908,  903,  908,  903,  908,  908,  902,  899,  899,
693
694      899,  899,  899,  899,  899,  899,  899,  899,  902,  899,
695      899,  899,  902,  899,  903,  908,  908,  908,  908,  903,
696      908,  908,  908,  908,  908,  908,  903,  908,  908,  908,
697      903,  908,  899,  899,  899,  899,  899,  899,  899,  899,
698      899,  899,  899,  902,  899,  899,  899,  899,  908,  908,
699      908,  908,  908,  908,  908,  908,  908,  908,  908,  903,
700      908,  908,  908,  908,  899,  899,  899,  899,  899,  899,
701      899,  899,  899,  899,  899,  899,  899,  899,  908,  908,
702      908,  908,  908,  908,  908,  908,  908,  908,  908,  908,
703      908,  908,  899,  899,  899,  899,  899,  899,  899,  899,
704
705      899,  899,  899,  899,  908,  908,  908,  908,  908,  908,
706      908,  908,  908,  908,  908,  908,  899,  899,  899,  899,
707      899,  899,  899,  899,  899,  899,  908,  908,  908,  908,
708      908,  908,  908,  908,  908,  908,  899,  899,  899,  899,
709      899,  899,  899,  899,  899,  899,  908,  908,  908,  908,
710      908,  908,  908,  908,  908,  908,  899,  899,  899,  899,
711      899,  908,  908,  908,  908,  908,  899,  899,  899,  899,
712      899,  908,  908,  908,  908,  908,  899,  899,  899,  899,
713      899,  908,  908,  908,  908,  908,  899,  899,  899,  908,
714      908,  908,  899,  899,  908,  908,  899,  908,    0,  899,
715
716      899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
717      899
718    } ;
719
720static yyconst flex_int16_t yy_nxt[1354] =
721    {   0,
722       10,   11,   12,   13,   14,   15,   16,   17,   17,   17,
723       18,   19,   12,   12,   12,   20,   21,   22,   23,   24,
724       12,   12,   25,   26,   27,   28,   29,   30,   12,   21,
725       31,   12,   21,   32,   33,   34,   35,   36,   37,   38,
726       39,   21,   12,   40,   12,   12,   41,   42,   10,   77,
727       77,   77,   77,   44,   45,   45,   45,   46,   73,  125,
728       74,   73,   74,   74,   86,   74,   77,   77,   77,   77,
729       82,   83,  108,   87,   88,   89,  109,   90,   91,  117,
730      110,   84,  118,  254,  106,   47,  125,   78,   79,   79,
731       47,   47,   10,  125,   92,   80,   97,   44,   45,   45,
732
733       45,   46,   79,   75,   74,   79,   75,   74,   93,   94,
734       79,   95,   98,  107,   79,   76,  147,   96,  121,  121,
735      121,  121,  123,  125,  128,  269,  832,  123,  123,   47,
736      270,   76,  322,   99,   47,   47,   10,   11,   48,   49,
737       14,   50,   16,   17,   17,   17,   18,   19,   48,   48,
738       48,   51,   52,   53,   54,   55,   48,   48,   56,   57,
739       58,   59,   60,   61,   48,   52,   62,   48,   52,   63,
740       64,   65,   66,   67,   68,   69,   70,   52,   48,   71,
741       48,   48,   41,   42,   79,   79,  102,  125,  121,  121,
742      121,  121,  125,  125,  125,  171,  125,  144,   79,  833,
743
744      125,   79,  103,  129,  130,  125,   79,  104,  153,  132,
745       79,  148,  133,  145,  131,  125,  125,  105,   79,   79,
746      125,  134,  125,  125,  125,  113,  122,  135,  136,  160,
747      137,  138,   79,  168,  146,   79,  172,  154,  227,  125,
748       79,  114,  158,  171,   79,  115,  115,  115,  115,  125,
749      169,  115,  115,  115,  115,  166,  159,  139,  167,  220,
750      149,  115,  115,  115,  115,  116,  115,  125,  125,  214,
751      182,  140,  141,  161,  142,  225,  150,  162,  126,  126,
752      143,  151,  125,  215,  172,  127,  155,  182,  125,  163,
753      156,  152,  126,  834,  157,  126,   77,   77,   77,   77,
754
755      126,  226,  125,  125,  126,  125,  245,  164,  164,  164,
756      164,  198,  130,  164,  164,  164,  164,  121,  121,  121,
757      121,  125,  204,  164,  164,  164,  164,  165,  164,  205,
758      211,  125,  199,  206,  115,  212,  219,  200,  221,  125,
759      125,  219,  219,  125,  223,  125,  125,  125,  125,  125,
760      125,  224,  125,  125,  125,  125,  125,  242,  125,  226,
761      125,  125,  234,  229,  125,  171,  125,  232,  239,  125,
762      125,  125,  125,  300,  115,  228,  226,  230,  243,  235,
763      125,  252,  231,  244,  240,  246,  247,  236,  241,  237,
764      248,  251,  256,  259,  125,  301,  125,  249,  260,  253,
765
766      257,  250,  125,  255,  164,  258,  172,  262,  289,  125,
767      309,  125,  261,  290,  307,  310,  125,  115,  125,  125,
768      263,  125,  125,  125,  125,  125,  125,  125,  125,  330,
769      208,  311,  125,  312,  331,  125,  327,  125,  308,  125,
770      313,  125,  125,  125,  316,  317,  328,  293,  125,  314,
771      320,  125,  125,  323,  324,  325,  332,  125,  318,  342,
772      164,  343,  125,  125,  329,  337,  334,  125,  125,  333,
773      338,  335,  125,  339,  352,  354,  353,  336,  340,  363,
774      341,  125,  344,  164,  390,  388,  355,  389,  125,  364,
775      125,  125,  345,  125,  125,  391,  253,  125,  125,  400,
776
777      347,  346,  125,  125,  348,  125,  125,  125,  125,  401,
778      125,  395,  125,  125,  125,  387,  397,  125,  125,  125,
779      399,  405,  392,  398,  394,  393,  412,  402,  125,  125,
780      125,  125,  436,  125,  125,  125,  414,  125,  125,  125,
781      417,  409,  406,  404,  437,  410,  411,  413,  467,  416,
782      125,  421,  423,  125,  125,  460,  419,  420,  125,  125,
783      468,  125,  462,  465,  125,  461,  125,  125,  455,  253,
784      125,  125,  125,  496,  125,  493,  125,  497,  466,  525,
785      835,  125,  125,  526,  125,  470,  521,  480,  125,  471,
786      125,  474,  125,  472,  484,  476,  478,  494,  520,  483,
787
788      481,  515,  423,  522,  535,  519,  125,  529,  523,  527,
789      528,  125,  540,  125,  533,  551,  537,  125,  573,  552,
790      125,  579,  125,  125,  125,  580,  125,  125,  125,  542,
791      125,  125,  125,  125,  543,  125,  125,  577,  125,  125,
792      125,  125,  125,  125,  125,  125,  125,  125,  125,  125,
793      836,  578,  597,  125,  253,  590,  125,  626,  581,  582,
794      594,  125,  592,  646,  641,  837,  599,  639,  648,  628,
795      643,  720,  674,  838,  839,  688,  631,  679,  731,  715,
796      690,  693,  774,  776,  727,  695,  775,  788,  777,  790,
797      840,  789,  841,  842,  791,  843,  760,  844,  844,  845,
798
799      847,  848,  849,  846,  850,  851,  852,  853,  854,  854,
800      855,  857,  858,  859,  856,  860,  861,  862,  863,  864,
801      865,  866,  867,  868,  869,  870,  871,  872,  873,  874,
802      875,  876,  877,  878,  879,  880,  881,  882,  883,  884,
803      885,  886,  887,  888,  889,  890,  891,  892,  893,  894,
804      895,  896,  878,  897,  883,  898,  887,  890,   43,   43,
805       43,   43,   43,   43,   72,   72,   72,   72,   72,   72,
806       76,  175,  218,  831,   76,  124,  830,  124,  829,  124,
807      170,  170,  828,  170,  170,  170,  173,  173,  173,  173,
808      173,  173,  125,  827,  125,  407,  125,  264,  264,  264,
809
810      264,  264,  264,  266,  266,  826,  266,  825,  266,  349,
811      349,  824,  349,  823,  349,  822,  821,  820,  819,  818,
812      817,  370,  816,  815,  814,  813,  812,  811,  810,  809,
813      808,  807,  806,  331,  805,  804,  803,  802,  801,  800,
814      799,  798,  797,  796,  795,  794,  290,  793,  792,  125,
815      787,  786,  785,  784,  783,  782,  781,  780,  779,  778,
816      773,  772,  771,  770,  769,  768,  767,  766,  765,  764,
817      763,  762,  761,  759,  758,  757,  756,  755,  754,  125,
818      753,  752,  751,  750,  749,  748,  747,  746,  745,  744,
819      743,  742,  741,  740,  739,  738,  737,  736,  735,  734,
820
821      733,  732,  125,  730,  729,  125,  728,  726,  725,  724,
822      723,  722,  721,  719,  718,  717,  716,  714,  713,  712,
823      711,  710,  709,  708,  707,  706,  705,  704,  703,  702,
824      701,  700,  699,  698,  697,  696,  694,  692,  691,  689,
825      687,  686,  685,  684,  683,  682,  681,  680,  678,  677,
826      676,  675,  673,  672,  671,  670,  669,  668,  667,  666,
827      665,  664,  663,  662,  661,  660,  659,  658,  657,  656,
828      655,  654,  653,  652,  651,  650,  649,  647,  645,  644,
829      642,  640,  638,  637,  636,  635,  634,  633,  632,  125,
830      630,  629,  627,  331,  330,  625,  624,  623,  622,  621,
831
832      620,  619,  618,  617,  616,  615,  614,  613,  612,  611,
833      610,  609,  608,  607,  606,  605,  604,  208,  603,  290,
834      289,  602,  601,  600,  598,  596,  595,  593,  591,  589,
835      588,  587,  586,  125,  125,  585,  584,  583,  576,  575,
836      574,  403,  572,  571,  570,  569,  568,  567,  566,  565,
837      564,  563,  562,  561,  560,  559,  558,  557,  556,  555,
838      554,  553,  550,  549,  548,  547,  546,  545,  366,  544,
839      541,  125,  539,  125,  538,  536,  534,  125,  125,  532,
840      531,  530,  524,  518,  517,  516,  330,  514,  513,  512,
841      511,  510,  509,  508,  507,  506,  505,  504,  503,  502,
842
843      501,  500,  499,  498,  495,  492,  491,  490,  489,  488,
844      289,  487,  486,  125,  485,  482,  479,  477,  475,  125,
845      473,  125,  469,  464,  463,  459,  458,  457,  456,  454,
846      453,  385,  452,  451,  450,  449,  448,  447,  446,  445,
847      444,  443,  442,  441,  440,  439,  438,  435,  434,  433,
848      432,  431,  208,  430,  429,  428,  427,  426,  425,  424,
849      422,  418,  164,  415,  125,  125,  408,  125,  407,  125,
850      403,  396,  386,  385,  384,  383,  382,  381,  380,  115,
851      379,  378,  377,  376,  375,  374,  373,  372,  371,  370,
852      369,  368,  367,  366,  365,  362,  361,  360,  359,  358,
853
854      357,  356,  351,  350,  265,  125,  125,  125,  326,  321,
855      319,  315,  125,  306,  305,  304,  303,  302,  299,  298,
856      297,  296,  295,  294,  293,  292,  291,  288,  287,  286,
857      285,  284,  283,  282,  281,  280,  279,  278,  277,  276,
858      275,  274,  273,  272,  271,  268,  267,  174,  174,  265,
859      164,  238,  233,  125,  125,  222,  124,  125,  217,  216,
860      213,  115,  210,  209,  208,  207,  203,  202,  201,  197,
861      196,  195,  194,  193,  192,  191,  190,  189,  188,  187,
862      186,  185,  184,  182,  183,  181,  180,  179,   83,  178,
863      177,  176,  174,  124,  125,  120,  119,  112,  111,  101,
864
865      100,   85,   81,  899,    9,  899,  899,  899,  899,  899,
866      899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
867      899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
868      899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
869      899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
870      899,  899,  899
871    } ;
872
873static yyconst flex_int16_t yy_chk[1354] =
874    {   0,
875        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
876        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
877        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
878        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
879        1,    1,    1,    1,    1,    1,    1,    1,    3,   16,
880       16,   16,   16,    3,    3,    3,    3,    3,    7,  161,
881        7,    8,    7,    8,   25,    8,   17,   17,   17,   17,
882       23,   23,   33,   25,   26,   26,   33,   26,   26,   38,
883       33,   23,   38,  161,   32,    3,   60,   16,   20,   20,
884        3,    3,    4,   53,   27,   20,   28,    4,    4,    4,
885
886        4,    4,   20,    7,    7,   20,    8,    8,   27,   27,
887       20,   27,   28,   32,   20,   79,   60,   27,   45,   45,
888       45,   45,   47,  234,   53,  178,  812,   47,   47,    4,
889      178,   79,  234,   28,    4,    4,    5,    5,    5,    5,
890        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
891        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
892        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
893        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
894        5,    5,    5,    5,   21,   21,   31,   55,   44,   44,
895       44,   44,   56,   61,   57,   72,   66,   59,   21,  813,
896
897       54,   21,   31,   54,   54,   63,   21,   31,   63,   55,
898       21,   61,   56,   59,   54,   70,   71,   31,   36,   36,
899      136,   56,   69,  127,   65,   36,   44,   57,   57,   66,
900       57,   57,   36,   70,   59,   36,   72,   63,  136,   58,
901       36,   36,   65,   73,   36,   37,   37,   37,   37,  134,
902       71,   37,   37,   37,   37,   69,   65,   58,   69,  127,
903       62,   37,   37,   37,   37,   37,   37,   51,   64,  118,
904       88,   58,   58,   67,   58,  134,   62,   67,   51,   51,
905       58,   62,  137,  118,   73,   51,   64,   88,  154,   67,
906       64,   62,   51,  814,   64,   51,   77,   77,   77,   77,
907
908       51,  137,  131,  128,   51,   68,  154,   68,   68,   68,
909       68,  106,  131,   68,   68,   68,   68,  121,  121,  121,
910      121,  132,  110,   68,   68,   68,   68,   68,   68,  110,
911      116,  133,  106,  110,  116,  116,  123,  106,  128,  135,
912      138,  123,  123,  139,  132,  141,  140,  143,  145,  146,
913      147,  133,  148,  152,  150,  151,  156,  153,  155,  135,
914      159,  158,  145,  139,  160,  170,  157,  143,  150,  162,
915      163,  166,  168,  211,  211,  138,  135,  140,  153,  146,
916      167,  159,  141,  153,  151,  155,  156,  147,  152,  148,
917      157,  158,  163,  166,  169,  212,  220,  157,  167,  160,
918
919      165,  157,  221,  162,  165,  165,  170,  168,  198,  223,
920      222,  224,  167,  198,  220,  222,  225,  212,  227,  229,
921      169,  232,  230,  235,  240,  236,  237,  239,  241,  242,
922      212,  223,  248,  224,  242,  245,  239,  246,  221,  249,
923      225,  247,  250,  251,  229,  230,  240,  247,  252,  227,
924      232,  254,  255,  235,  236,  237,  245,  256,  230,  257,
925      257,  258,  259,  260,  241,  251,  248,  261,  263,  246,
926      252,  249,  262,  254,  269,  270,  269,  250,  255,  278,
927      256,  308,  259,  258,  310,  309,  270,  309,  311,  278,
928      312,  314,  260,  313,  316,  310,  258,  317,  318,  319,
929
930      262,  261,  323,  324,  263,  320,  325,  329,  334,  319,
931      332,  314,  333,  335,  336,  308,  316,  340,  341,  344,
932      318,  324,  311,  317,  313,  312,  334,  320,  345,  346,
933      348,  387,  363,  392,  393,  394,  336,  395,  399,  398,
934      341,  329,  325,  323,  363,  332,  333,  335,  400,  340,
935      402,  346,  348,  405,  409,  392,  344,  345,  406,  412,
936      400,  414,  395,  398,  417,  394,  416,  421,  387,  393,
937      419,  466,  420,  434,  460,  432,  461,  434,  399,  464,
938      815,  455,  515,  464,  474,  402,  462,  416,  471,  405,
939      476,  409,  481,  406,  420,  412,  414,  432,  461,  419,
940
941      417,  455,  421,  462,  474,  460,  465,  466,  462,  465,
942      465,  483,  481,  484,  471,  493,  476,  519,  515,  493,
943      520,  521,  522,  533,  523,  521,  535,  540,  537,  483,
944      542,  573,  577,  578,  484,  581,  590,  519,  592,  594,
945      626,  597,  599,  641,  631,  643,  646,  648,  674,  679,
946      816,  520,  540,  688,  577,  533,  695,  573,  522,  523,
947      537,  727,  535,  597,  592,  817,  542,  590,  599,  578,
948      594,  679,  626,  818,  819,  641,  581,  631,  695,  674,
949      643,  646,  743,  747,  688,  648,  743,  759,  747,  763,
950      820,  759,  821,  822,  763,  823,  727,  824,  825,  826,
951
952      827,  828,  829,  826,  830,  831,  832,  833,  834,  835,
953      836,  838,  842,  843,  836,  845,  846,  848,  852,  853,
954      855,  856,  857,  858,  859,  860,  861,  862,  863,  864,
955      865,  866,  867,  868,  869,  870,  871,  872,  873,  874,
956      875,  876,  879,  880,  881,  884,  885,  886,  888,  889,
957      891,  892,  893,  894,  895,  896,  897,  898,  900,  900,
958      900,  900,  900,  900,  901,  901,  901,  901,  901,  901,
959      902,  906,  907,  811,  902,  903,  809,  903,  808,  903,
960      904,  904,  807,  904,  904,  904,  905,  905,  905,  905,
961      905,  905,  908,  806,  908,  805,  908,  909,  909,  909,
962
963      909,  909,  909,  910,  910,  804,  910,  803,  910,  911,
964      911,  802,  911,  801,  911,  800,  799,  797,  796,  795,
965      794,  793,  792,  791,  790,  789,  788,  787,  786,  785,
966      784,  782,  781,  780,  779,  778,  777,  776,  775,  774,
967      773,  772,  771,  770,  768,  767,  766,  765,  764,  760,
968      758,  757,  756,  755,  753,  752,  751,  750,  749,  748,
969      742,  741,  740,  739,  737,  736,  735,  734,  733,  732,
970      731,  729,  728,  726,  725,  724,  723,  722,  721,  720,
971      719,  718,  717,  716,  715,  714,  713,  711,  710,  709,
972      708,  707,  706,  705,  704,  703,  702,  701,  700,  699,
973
974      698,  696,  693,  692,  691,  690,  689,  687,  686,  685,
975      683,  682,  681,  678,  677,  676,  675,  672,  671,  668,
976      667,  665,  664,  663,  662,  661,  659,  658,  657,  655,
977      654,  653,  652,  651,  650,  649,  647,  645,  644,  642,
978      640,  639,  638,  637,  635,  634,  633,  632,  630,  629,
979      628,  627,  625,  624,  623,  622,  621,  620,  619,  618,
980      617,  616,  615,  614,  613,  612,  610,  609,  608,  607,
981      606,  605,  604,  603,  602,  601,  600,  598,  596,  595,
982      593,  591,  589,  588,  587,  586,  585,  584,  583,  582,
983      580,  579,  576,  575,  574,  572,  571,  570,  569,  568,
984
985      567,  566,  565,  564,  563,  562,  561,  560,  559,  558,
986      557,  556,  555,  554,  552,  551,  550,  549,  548,  547,
987      546,  545,  544,  543,  541,  539,  538,  536,  534,  532,
988      531,  530,  529,  528,  527,  526,  525,  524,  518,  517,
989      516,  514,  513,  512,  511,  510,  509,  508,  507,  506,
990      505,  504,  503,  502,  501,  500,  499,  498,  497,  496,
991      495,  494,  492,  491,  490,  489,  488,  487,  486,  485,
992      482,  480,  479,  478,  477,  475,  473,  472,  470,  469,
993      468,  467,  463,  459,  458,  457,  456,  454,  453,  452,
994      451,  450,  449,  448,  446,  445,  444,  443,  442,  440,
995
996      438,  437,  436,  435,  433,  431,  430,  429,  428,  427,
997      426,  425,  424,  423,  422,  418,  415,  413,  411,  410,
998      408,  404,  401,  397,  396,  391,  390,  389,  388,  386,
999      384,  383,  382,  381,  380,  379,  378,  377,  376,  375,
1000      374,  372,  371,  369,  368,  365,  364,  362,  361,  360,
1001      359,  358,  357,  356,  355,  354,  353,  352,  351,  350,
1002      347,  343,  342,  339,  338,  337,  328,  327,  326,  322,
1003      321,  315,  307,  306,  305,  304,  303,  302,  301,  300,
1004      299,  298,  296,  295,  294,  292,  291,  288,  287,  285,
1005      284,  283,  282,  280,  279,  277,  276,  275,  274,  273,
1006
1007      272,  271,  268,  267,  264,  253,  244,  243,  238,  233,
1008      231,  228,  226,  217,  216,  215,  214,  213,  210,  209,
1009      207,  206,  205,  204,  203,  202,  201,  197,  196,  195,
1010      194,  193,  192,  191,  190,  189,  188,  187,  186,  185,
1011      184,  183,  181,  180,  179,  177,  176,  173,  172,  171,
1012      164,  149,  144,  142,  130,  129,  126,  124,  120,  119,
1013      117,  115,  114,  113,  112,  111,  109,  108,  107,  105,
1014      104,  103,  102,  101,  100,   99,   98,   97,   96,   94,
1015       93,   92,   91,   90,   89,   87,   86,   85,   84,   82,
1016       81,   80,   75,   52,   48,   40,   39,   35,   34,   30,
1017
1018       29,   24,   22,    9,  899,  899,  899,  899,  899,  899,
1019      899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1020      899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1021      899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1022      899,  899,  899,  899,  899,  899,  899,  899,  899,  899,
1023      899,  899,  899
1024    } ;
1025
1026/* The intent behind this definition is that it'll catch
1027 * any uses of REJECT which flex missed.
1028 */
1029#define REJECT reject_used_but_not_detected
1030#define yymore() yymore_used_but_not_detected
1031#define YY_MORE_ADJ 0
1032#define YY_RESTORE_YY_MORE_OFFSET
1033#line 1 "util/parse-events.l"
1034#line 8 "util/parse-events.l"
1035#include <errno.h>
1036#include "../perf.h"
1037#include "parse-events-bison.h"
1038#include "parse-events.h"
1039
1040char *parse_events_get_text(yyscan_t yyscanner);
1041YYSTYPE *parse_events_get_lval(yyscan_t yyscanner);
1042
1043static int __value(YYSTYPE *yylval, char *str, int base, int token)
1044{
1045	u64 num;
1046
1047	errno = 0;
1048	num = strtoull(str, NULL, base);
1049	if (errno)
1050		return PE_ERROR;
1051
1052	yylval->num = num;
1053	return token;
1054}
1055
1056static int value(yyscan_t scanner, int base)
1057{
1058	YYSTYPE *yylval = parse_events_get_lval(scanner);
1059	char *text = parse_events_get_text(scanner);
1060
1061	return __value(yylval, text, base, PE_VALUE);
1062}
1063
1064static int raw(yyscan_t scanner)
1065{
1066	YYSTYPE *yylval = parse_events_get_lval(scanner);
1067	char *text = parse_events_get_text(scanner);
1068
1069	return __value(yylval, text + 1, 16, PE_RAW);
1070}
1071
1072static int str(yyscan_t scanner, int token)
1073{
1074	YYSTYPE *yylval = parse_events_get_lval(scanner);
1075	char *text = parse_events_get_text(scanner);
1076
1077	yylval->str = strdup(text);
1078	return token;
1079}
1080
1081static int sym(yyscan_t scanner, int type, int config)
1082{
1083	YYSTYPE *yylval = parse_events_get_lval(scanner);
1084
1085	yylval->num = (type << 16) + config;
1086	return type == PERF_TYPE_HARDWARE ? PE_VALUE_SYM_HW : PE_VALUE_SYM_SW;
1087}
1088
1089static int term(yyscan_t scanner, int type)
1090{
1091	YYSTYPE *yylval = parse_events_get_lval(scanner);
1092
1093	yylval->num = type;
1094	return PE_TERM;
1095}
1096
1097
1098
1099
1100/* If you add a modifier you need to update check_modifier() */
1101#line 1102 "<stdout>"
1102
1103#define INITIAL 0
1104#define mem 1
1105#define config 2
1106#define event 3
1107
1108#ifndef YY_NO_UNISTD_H
1109/* Special case for "unistd.h", since it is non-ANSI. We include it way
1110 * down here because we want the user's section 1 to have been scanned first.
1111 * The user has a chance to override it with an option.
1112 */
1113#include <unistd.h>
1114#endif
1115
1116#ifndef YY_EXTRA_TYPE
1117#define YY_EXTRA_TYPE void *
1118#endif
1119
1120/* Holds the entire state of the reentrant scanner. */
1121struct yyguts_t
1122    {
1123
1124    /* User-defined. Not touched by flex. */
1125    YY_EXTRA_TYPE yyextra_r;
1126
1127    /* The rest are the same as the globals declared in the non-reentrant scanner. */
1128    FILE *yyin_r, *yyout_r;
1129    size_t yy_buffer_stack_top; /**< index of top of stack. */
1130    size_t yy_buffer_stack_max; /**< capacity of stack. */
1131    YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */
1132    char yy_hold_char;
1133    int yy_n_chars;
1134    int yyleng_r;
1135    char *yy_c_buf_p;
1136    int yy_init;
1137    int yy_start;
1138    int yy_did_buffer_switch_on_eof;
1139    int yy_start_stack_ptr;
1140    int yy_start_stack_depth;
1141    int *yy_start_stack;
1142    yy_state_type yy_last_accepting_state;
1143    char* yy_last_accepting_cpos;
1144
1145    int yylineno_r;
1146    int yy_flex_debug_r;
1147
1148    char *yytext_r;
1149    int yy_more_flag;
1150    int yy_more_len;
1151
1152    YYSTYPE * yylval_r;
1153
1154    }; /* end struct yyguts_t */
1155
1156static int yy_init_globals (yyscan_t yyscanner );
1157
1158    /* This must go here because YYSTYPE and YYLTYPE are included
1159     * from bison output in section 1.*/
1160    #    define yylval yyg->yylval_r
1161
1162int parse_events_lex_init (yyscan_t* scanner);
1163
1164int parse_events_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
1165
1166/* Accessor methods to globals.
1167   These are made visible to non-reentrant scanners for convenience. */
1168
1169int parse_events_lex_destroy (yyscan_t yyscanner );
1170
1171int parse_events_get_debug (yyscan_t yyscanner );
1172
1173void parse_events_set_debug (int debug_flag ,yyscan_t yyscanner );
1174
1175YY_EXTRA_TYPE parse_events_get_extra (yyscan_t yyscanner );
1176
1177void parse_events_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
1178
1179FILE *parse_events_get_in (yyscan_t yyscanner );
1180
1181void parse_events_set_in  (FILE * in_str ,yyscan_t yyscanner );
1182
1183FILE *parse_events_get_out (yyscan_t yyscanner );
1184
1185void parse_events_set_out  (FILE * out_str ,yyscan_t yyscanner );
1186
1187int parse_events_get_leng (yyscan_t yyscanner );
1188
1189char *parse_events_get_text (yyscan_t yyscanner );
1190
1191int parse_events_get_lineno (yyscan_t yyscanner );
1192
1193void parse_events_set_lineno (int line_number ,yyscan_t yyscanner );
1194
1195YYSTYPE * parse_events_get_lval (yyscan_t yyscanner );
1196
1197void parse_events_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
1198
1199/* Macros after this point can all be overridden by user definitions in
1200 * section 1.
1201 */
1202
1203#ifndef YY_SKIP_YYWRAP
1204#ifdef __cplusplus
1205extern "C" int parse_events_wrap (yyscan_t yyscanner );
1206#else
1207extern int parse_events_wrap (yyscan_t yyscanner );
1208#endif
1209#endif
1210
1211    static void yyunput (int c,char *buf_ptr  ,yyscan_t yyscanner);
1212
1213#ifndef yytext_ptr
1214static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
1215#endif
1216
1217#ifdef YY_NEED_STRLEN
1218static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
1219#endif
1220
1221#ifndef YY_NO_INPUT
1222
1223#ifdef __cplusplus
1224static int yyinput (yyscan_t yyscanner );
1225#else
1226static int input (yyscan_t yyscanner );
1227#endif
1228
1229#endif
1230
1231    static void yy_push_state (int new_state ,yyscan_t yyscanner);
1232
1233    static void yy_pop_state (yyscan_t yyscanner );
1234
1235    static int yy_top_state (yyscan_t yyscanner );
1236
1237/* Amount of stuff to slurp up with each read. */
1238#ifndef YY_READ_BUF_SIZE
1239#ifdef __ia64__
1240/* On IA-64, the buffer size is 16k, not 8k */
1241#define YY_READ_BUF_SIZE 16384
1242#else
1243#define YY_READ_BUF_SIZE 8192
1244#endif /* __ia64__ */
1245#endif
1246
1247/* Copy whatever the last rule matched to the standard output. */
1248#ifndef ECHO
1249/* This used to be an fputs(), but since the string might contain NUL's,
1250 * we now use fwrite().
1251 */
1252#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1253#endif
1254
1255/* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
1256 * is returned in "result".
1257 */
1258#ifndef YY_INPUT
1259#define YY_INPUT(buf,result,max_size) \
1260	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1261		{ \
1262		int c = '*'; \
1263		size_t n; \
1264		for ( n = 0; n < max_size && \
1265			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1266			buf[n] = (char) c; \
1267		if ( c == '\n' ) \
1268			buf[n++] = (char) c; \
1269		if ( c == EOF && ferror( yyin ) ) \
1270			YY_FATAL_ERROR( "input in flex scanner failed" ); \
1271		result = n; \
1272		} \
1273	else \
1274		{ \
1275		errno=0; \
1276		while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1277			{ \
1278			if( errno != EINTR) \
1279				{ \
1280				YY_FATAL_ERROR( "input in flex scanner failed" ); \
1281				break; \
1282				} \
1283			errno=0; \
1284			clearerr(yyin); \
1285			} \
1286		}\
1287\
1288
1289#endif
1290
1291/* No semi-colon after return; correct usage is to write "yyterminate();" -
1292 * we don't want an extra ';' after the "return" because that will cause
1293 * some compilers to complain about unreachable statements.
1294 */
1295#ifndef yyterminate
1296#define yyterminate() return YY_NULL
1297#endif
1298
1299/* Number of entries by which start-condition stack grows. */
1300#ifndef YY_START_STACK_INCR
1301#define YY_START_STACK_INCR 25
1302#endif
1303
1304/* Report a fatal error. */
1305#ifndef YY_FATAL_ERROR
1306#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1307#endif
1308
1309/* end tables serialization structures and prototypes */
1310
1311/* Default declaration of generated scanner - a define so the user can
1312 * easily add parameters.
1313 */
1314#ifndef YY_DECL
1315#define YY_DECL_IS_OURS 1
1316
1317extern int parse_events_lex \
1318               (YYSTYPE * yylval_param ,yyscan_t yyscanner);
1319
1320#define YY_DECL int parse_events_lex \
1321               (YYSTYPE * yylval_param , yyscan_t yyscanner)
1322#endif /* !YY_DECL */
1323
1324/* Code executed at the beginning of each rule, after yytext and yyleng
1325 * have been set up.
1326 */
1327#ifndef YY_USER_ACTION
1328#define YY_USER_ACTION
1329#endif
1330
1331/* Code executed at the end of each rule. */
1332#ifndef YY_BREAK
1333#define YY_BREAK break;
1334#endif
1335
1336#define YY_RULE_SETUP \
1337	YY_USER_ACTION
1338
1339/** The main scanner function which does all the work.
1340 */
1341YY_DECL
1342{
1343	register yy_state_type yy_current_state;
1344	register char *yy_cp, *yy_bp;
1345	register int yy_act;
1346    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1347
1348#line 89 "util/parse-events.l"
1349
1350
1351
1352	{
1353		int start_token;
1354
1355		start_token = parse_events_get_extra(yyscanner);
1356
1357		if (start_token == PE_START_TERMS)
1358			BEGIN(config);
1359		else if (start_token == PE_START_EVENTS)
1360			BEGIN(event);
1361
1362		if (start_token) {
1363			parse_events_set_extra(NULL, yyscanner);
1364			return start_token;
1365		}
1366         }
1367
1368
1369#line 1370 "<stdout>"
1370
1371    yylval = yylval_param;
1372
1373	if ( !yyg->yy_init )
1374		{
1375		yyg->yy_init = 1;
1376
1377#ifdef YY_USER_INIT
1378		YY_USER_INIT;
1379#endif
1380
1381		if ( ! yyg->yy_start )
1382			yyg->yy_start = 1;	/* first start state */
1383
1384		if ( ! yyin )
1385			yyin = stdin;
1386
1387		if ( ! yyout )
1388			yyout = stdout;
1389
1390		if ( ! YY_CURRENT_BUFFER ) {
1391			parse_events_ensure_buffer_stack (yyscanner);
1392			YY_CURRENT_BUFFER_LVALUE =
1393				parse_events__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1394		}
1395
1396		parse_events__load_buffer_state(yyscanner );
1397		}
1398
1399	while ( 1 )		/* loops until end-of-file is reached */
1400		{
1401		yy_cp = yyg->yy_c_buf_p;
1402
1403		/* Support of yytext. */
1404		*yy_cp = yyg->yy_hold_char;
1405
1406		/* yy_bp points to the position in yy_ch_buf of the start of
1407		 * the current run.
1408		 */
1409		yy_bp = yy_cp;
1410
1411		yy_current_state = yyg->yy_start;
1412yy_match:
1413		do
1414			{
1415			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1416			if ( yy_accept[yy_current_state] )
1417				{
1418				yyg->yy_last_accepting_state = yy_current_state;
1419				yyg->yy_last_accepting_cpos = yy_cp;
1420				}
1421			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1422				{
1423				yy_current_state = (int) yy_def[yy_current_state];
1424				if ( yy_current_state >= 900 )
1425					yy_c = yy_meta[(unsigned int) yy_c];
1426				}
1427			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1428			++yy_cp;
1429			}
1430		while ( yy_base[yy_current_state] != 1305 );
1431
1432yy_find_action:
1433		yy_act = yy_accept[yy_current_state];
1434		if ( yy_act == 0 )
1435			{ /* have to back up */
1436			yy_cp = yyg->yy_last_accepting_cpos;
1437			yy_current_state = yyg->yy_last_accepting_state;
1438			yy_act = yy_accept[yy_current_state];
1439			}
1440
1441		YY_DO_BEFORE_ACTION;
1442
1443do_action:	/* This label is used only to access EOF actions. */
1444
1445		switch ( yy_act )
1446	{ /* beginning of action switch */
1447			case 0: /* must back up */
1448			/* undo the effects of YY_DO_BEFORE_ACTION */
1449			*yy_cp = yyg->yy_hold_char;
1450			yy_cp = yyg->yy_last_accepting_cpos;
1451			yy_current_state = yyg->yy_last_accepting_state;
1452			goto yy_find_action;
1453
1454case 1:
1455/* rule 1 can match eol */
1456YY_RULE_SETUP
1457#line 111 "util/parse-events.l"
1458{
1459			BEGIN(INITIAL); yyless(0);
1460		}
1461	YY_BREAK
1462case 2:
1463/* rule 2 can match eol */
1464#line 116 "util/parse-events.l"
1465case 3:
1466/* rule 3 can match eol */
1467YY_RULE_SETUP
1468#line 116 "util/parse-events.l"
1469{
1470			str(yyscanner, PE_EVENT_NAME);
1471			BEGIN(INITIAL); yyless(0);
1472			return PE_EVENT_NAME;
1473		}
1474	YY_BREAK
1475case 4:
1476#line 123 "util/parse-events.l"
1477case YY_STATE_EOF(event):
1478#line 123 "util/parse-events.l"
1479{
1480			BEGIN(INITIAL); yyless(0);
1481		}
1482	YY_BREAK
1483
1484case 5:
1485YY_RULE_SETUP
1486#line 129 "util/parse-events.l"
1487{ return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES); }
1488	YY_BREAK
1489case 6:
1490YY_RULE_SETUP
1491#line 130 "util/parse-events.l"
1492{ return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_STALLED_CYCLES_FRONTEND); }
1493	YY_BREAK
1494case 7:
1495YY_RULE_SETUP
1496#line 131 "util/parse-events.l"
1497{ return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_STALLED_CYCLES_BACKEND); }
1498	YY_BREAK
1499case 8:
1500YY_RULE_SETUP
1501#line 132 "util/parse-events.l"
1502{ return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS); }
1503	YY_BREAK
1504case 9:
1505YY_RULE_SETUP
1506#line 133 "util/parse-events.l"
1507{ return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_REFERENCES); }
1508	YY_BREAK
1509case 10:
1510YY_RULE_SETUP
1511#line 134 "util/parse-events.l"
1512{ return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_MISSES); }
1513	YY_BREAK
1514case 11:
1515YY_RULE_SETUP
1516#line 135 "util/parse-events.l"
1517{ return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_BRANCH_INSTRUCTIONS); }
1518	YY_BREAK
1519case 12:
1520YY_RULE_SETUP
1521#line 136 "util/parse-events.l"
1522{ return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_BRANCH_MISSES); }
1523	YY_BREAK
1524case 13:
1525YY_RULE_SETUP
1526#line 137 "util/parse-events.l"
1527{ return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_BUS_CYCLES); }
1528	YY_BREAK
1529case 14:
1530YY_RULE_SETUP
1531#line 138 "util/parse-events.l"
1532{ return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_REF_CPU_CYCLES); }
1533	YY_BREAK
1534case 15:
1535YY_RULE_SETUP
1536#line 139 "util/parse-events.l"
1537{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CPU_CLOCK); }
1538	YY_BREAK
1539case 16:
1540YY_RULE_SETUP
1541#line 140 "util/parse-events.l"
1542{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_TASK_CLOCK); }
1543	YY_BREAK
1544case 17:
1545YY_RULE_SETUP
1546#line 141 "util/parse-events.l"
1547{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_PAGE_FAULTS); }
1548	YY_BREAK
1549case 18:
1550YY_RULE_SETUP
1551#line 142 "util/parse-events.l"
1552{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_PAGE_FAULTS_MIN); }
1553	YY_BREAK
1554case 19:
1555YY_RULE_SETUP
1556#line 143 "util/parse-events.l"
1557{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_PAGE_FAULTS_MAJ); }
1558	YY_BREAK
1559case 20:
1560YY_RULE_SETUP
1561#line 144 "util/parse-events.l"
1562{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CONTEXT_SWITCHES); }
1563	YY_BREAK
1564case 21:
1565YY_RULE_SETUP
1566#line 145 "util/parse-events.l"
1567{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CPU_MIGRATIONS); }
1568	YY_BREAK
1569case 22:
1570YY_RULE_SETUP
1571#line 146 "util/parse-events.l"
1572{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_ALIGNMENT_FAULTS); }
1573	YY_BREAK
1574case 23:
1575YY_RULE_SETUP
1576#line 147 "util/parse-events.l"
1577{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_EMULATION_FAULTS); }
1578	YY_BREAK
1579case 24:
1580YY_RULE_SETUP
1581#line 148 "util/parse-events.l"
1582{ return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_DUMMY); }
1583	YY_BREAK
1584case 25:
1585#line 151 "util/parse-events.l"
1586case 26:
1587#line 152 "util/parse-events.l"
1588case 27:
1589#line 153 "util/parse-events.l"
1590case 28:
1591#line 154 "util/parse-events.l"
1592case 29:
1593#line 155 "util/parse-events.l"
1594case 30:
1595#line 156 "util/parse-events.l"
1596case 31:
1597YY_RULE_SETUP
1598#line 156 "util/parse-events.l"
1599{ return str(yyscanner, PE_NAME_CACHE_TYPE); }
1600	YY_BREAK
1601case 32:
1602#line 159 "util/parse-events.l"
1603case 33:
1604#line 160 "util/parse-events.l"
1605case 34:
1606#line 161 "util/parse-events.l"
1607case 35:
1608#line 162 "util/parse-events.l"
1609case 36:
1610#line 163 "util/parse-events.l"
1611case 37:
1612YY_RULE_SETUP
1613#line 163 "util/parse-events.l"
1614{ return str(yyscanner, PE_NAME_CACHE_OP_RESULT); }
1615	YY_BREAK
1616
1617case 38:
1618YY_RULE_SETUP
1619#line 166 "util/parse-events.l"
1620{ return term(yyscanner, PARSE_EVENTS__TERM_TYPE_CONFIG); }
1621	YY_BREAK
1622case 39:
1623YY_RULE_SETUP
1624#line 167 "util/parse-events.l"
1625{ return term(yyscanner, PARSE_EVENTS__TERM_TYPE_CONFIG1); }
1626	YY_BREAK
1627case 40:
1628YY_RULE_SETUP
1629#line 168 "util/parse-events.l"
1630{ return term(yyscanner, PARSE_EVENTS__TERM_TYPE_CONFIG2); }
1631	YY_BREAK
1632case 41:
1633YY_RULE_SETUP
1634#line 169 "util/parse-events.l"
1635{ return term(yyscanner, PARSE_EVENTS__TERM_TYPE_NAME); }
1636	YY_BREAK
1637case 42:
1638YY_RULE_SETUP
1639#line 170 "util/parse-events.l"
1640{ return term(yyscanner, PARSE_EVENTS__TERM_TYPE_SAMPLE_PERIOD); }
1641	YY_BREAK
1642case 43:
1643YY_RULE_SETUP
1644#line 171 "util/parse-events.l"
1645{ return term(yyscanner, PARSE_EVENTS__TERM_TYPE_BRANCH_SAMPLE_TYPE); }
1646	YY_BREAK
1647case 44:
1648YY_RULE_SETUP
1649#line 172 "util/parse-events.l"
1650{ return ','; }
1651	YY_BREAK
1652case 45:
1653YY_RULE_SETUP
1654#line 173 "util/parse-events.l"
1655{ BEGIN(INITIAL); return '/'; }
1656	YY_BREAK
1657case 46:
1658YY_RULE_SETUP
1659#line 174 "util/parse-events.l"
1660{ return str(yyscanner, PE_NAME); }
1661	YY_BREAK
1662
1663case 47:
1664YY_RULE_SETUP
1665#line 177 "util/parse-events.l"
1666{ BEGIN(mem); return PE_PREFIX_MEM; }
1667	YY_BREAK
1668case 48:
1669YY_RULE_SETUP
1670#line 178 "util/parse-events.l"
1671{ return raw(yyscanner); }
1672	YY_BREAK
1673case 49:
1674YY_RULE_SETUP
1675#line 179 "util/parse-events.l"
1676{ return value(yyscanner, 10); }
1677	YY_BREAK
1678case 50:
1679YY_RULE_SETUP
1680#line 180 "util/parse-events.l"
1681{ return value(yyscanner, 16); }
1682	YY_BREAK
1683case 51:
1684YY_RULE_SETUP
1685#line 182 "util/parse-events.l"
1686{ return str(yyscanner, PE_MODIFIER_EVENT); }
1687	YY_BREAK
1688case 52:
1689YY_RULE_SETUP
1690#line 183 "util/parse-events.l"
1691{ return str(yyscanner, PE_NAME); }
1692	YY_BREAK
1693case 53:
1694YY_RULE_SETUP
1695#line 184 "util/parse-events.l"
1696{ BEGIN(config); return '/'; }
1697	YY_BREAK
1698case 54:
1699YY_RULE_SETUP
1700#line 185 "util/parse-events.l"
1701{ return '-'; }
1702	YY_BREAK
1703case 55:
1704YY_RULE_SETUP
1705#line 186 "util/parse-events.l"
1706{ BEGIN(event); return ','; }
1707	YY_BREAK
1708case 56:
1709YY_RULE_SETUP
1710#line 187 "util/parse-events.l"
1711{ return ':'; }
1712	YY_BREAK
1713case 57:
1714YY_RULE_SETUP
1715#line 188 "util/parse-events.l"
1716{ BEGIN(event); return '{'; }
1717	YY_BREAK
1718case 58:
1719YY_RULE_SETUP
1720#line 189 "util/parse-events.l"
1721{ return '}'; }
1722	YY_BREAK
1723case 59:
1724YY_RULE_SETUP
1725#line 190 "util/parse-events.l"
1726{ return '='; }
1727	YY_BREAK
1728case 60:
1729/* rule 60 can match eol */
1730YY_RULE_SETUP
1731#line 191 "util/parse-events.l"
1732{ }
1733	YY_BREAK
1734
1735case 61:
1736YY_RULE_SETUP
1737#line 194 "util/parse-events.l"
1738{ return str(yyscanner, PE_MODIFIER_BP); }
1739	YY_BREAK
1740case 62:
1741YY_RULE_SETUP
1742#line 195 "util/parse-events.l"
1743{ return ':'; }
1744	YY_BREAK
1745case 63:
1746YY_RULE_SETUP
1747#line 196 "util/parse-events.l"
1748{ return value(yyscanner, 10); }
1749	YY_BREAK
1750case 64:
1751YY_RULE_SETUP
1752#line 197 "util/parse-events.l"
1753{ return value(yyscanner, 16); }
1754	YY_BREAK
1755/*
1756	 * We need to separate 'mem:' scanner part, in order to get specific
1757	 * modifier bits parsed out. Otherwise we would need to handle PE_NAME
1758	 * and we'd need to parse it manually. During the escape from <mem>
1759	 * state we need to put the escaping char back, so we dont miss it.
1760	 */
1761case 65:
1762YY_RULE_SETUP
1763#line 204 "util/parse-events.l"
1764{ unput(*yytext); BEGIN(INITIAL); }
1765	YY_BREAK
1766/*
1767	 * We destroy the scanner after reaching EOF,
1768	 * but anyway just to be sure get back to INIT state.
1769	 */
1770case YY_STATE_EOF(mem):
1771#line 209 "util/parse-events.l"
1772{ BEGIN(INITIAL); }
1773	YY_BREAK
1774
1775case 66:
1776YY_RULE_SETUP
1777#line 212 "util/parse-events.l"
1778ECHO;
1779	YY_BREAK
1780#line 1781 "<stdout>"
1781case YY_STATE_EOF(INITIAL):
1782case YY_STATE_EOF(config):
1783	yyterminate();
1784
1785	case YY_END_OF_BUFFER:
1786		{
1787		/* Amount of text matched not including the EOB char. */
1788		int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
1789
1790		/* Undo the effects of YY_DO_BEFORE_ACTION. */
1791		*yy_cp = yyg->yy_hold_char;
1792		YY_RESTORE_YY_MORE_OFFSET
1793
1794		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1795			{
1796			/* We're scanning a new file or input source.  It's
1797			 * possible that this happened because the user
1798			 * just pointed yyin at a new source and called
1799			 * parse_events_lex().  If so, then we have to assure
1800			 * consistency between YY_CURRENT_BUFFER and our
1801			 * globals.  Here is the right place to do so, because
1802			 * this is the first action (other than possibly a
1803			 * back-up) that will match for the new input source.
1804			 */
1805			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1806			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1807			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1808			}
1809
1810		/* Note that here we test for yy_c_buf_p "<=" to the position
1811		 * of the first EOB in the buffer, since yy_c_buf_p will
1812		 * already have been incremented past the NUL character
1813		 * (since all states make transitions on EOB to the
1814		 * end-of-buffer state).  Contrast this with the test
1815		 * in input().
1816		 */
1817		if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1818			{ /* This was really a NUL. */
1819			yy_state_type yy_next_state;
1820
1821			yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
1822
1823			yy_current_state = yy_get_previous_state( yyscanner );
1824
1825			/* Okay, we're now positioned to make the NUL
1826			 * transition.  We couldn't have
1827			 * yy_get_previous_state() go ahead and do it
1828			 * for us because it doesn't know how to deal
1829			 * with the possibility of jamming (and we don't
1830			 * want to build jamming into it because then it
1831			 * will run more slowly).
1832			 */
1833
1834			yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
1835
1836			yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1837
1838			if ( yy_next_state )
1839				{
1840				/* Consume the NUL. */
1841				yy_cp = ++yyg->yy_c_buf_p;
1842				yy_current_state = yy_next_state;
1843				goto yy_match;
1844				}
1845
1846			else
1847				{
1848				yy_cp = yyg->yy_c_buf_p;
1849				goto yy_find_action;
1850				}
1851			}
1852
1853		else switch ( yy_get_next_buffer( yyscanner ) )
1854			{
1855			case EOB_ACT_END_OF_FILE:
1856				{
1857				yyg->yy_did_buffer_switch_on_eof = 0;
1858
1859				if ( parse_events_wrap(yyscanner ) )
1860					{
1861					/* Note: because we've taken care in
1862					 * yy_get_next_buffer() to have set up
1863					 * yytext, we can now set up
1864					 * yy_c_buf_p so that if some total
1865					 * hoser (like flex itself) wants to
1866					 * call the scanner after we return the
1867					 * YY_NULL, it'll still work - another
1868					 * YY_NULL will get returned.
1869					 */
1870					yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
1871
1872					yy_act = YY_STATE_EOF(YY_START);
1873					goto do_action;
1874					}
1875
1876				else
1877					{
1878					if ( ! yyg->yy_did_buffer_switch_on_eof )
1879						YY_NEW_FILE;
1880					}
1881				break;
1882				}
1883
1884			case EOB_ACT_CONTINUE_SCAN:
1885				yyg->yy_c_buf_p =
1886					yyg->yytext_ptr + yy_amount_of_matched_text;
1887
1888				yy_current_state = yy_get_previous_state( yyscanner );
1889
1890				yy_cp = yyg->yy_c_buf_p;
1891				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1892				goto yy_match;
1893
1894			case EOB_ACT_LAST_MATCH:
1895				yyg->yy_c_buf_p =
1896				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
1897
1898				yy_current_state = yy_get_previous_state( yyscanner );
1899
1900				yy_cp = yyg->yy_c_buf_p;
1901				yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1902				goto yy_find_action;
1903			}
1904		break;
1905		}
1906
1907	default:
1908		YY_FATAL_ERROR(
1909			"fatal flex scanner internal error--no action found" );
1910	} /* end of action switch */
1911		} /* end of scanning one token */
1912} /* end of parse_events_lex */
1913
1914/* yy_get_next_buffer - try to read in a new buffer
1915 *
1916 * Returns a code representing an action:
1917 *	EOB_ACT_LAST_MATCH -
1918 *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1919 *	EOB_ACT_END_OF_FILE - end of file
1920 */
1921static int yy_get_next_buffer (yyscan_t yyscanner)
1922{
1923    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
1924	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1925	register char *source = yyg->yytext_ptr;
1926	register int number_to_move, i;
1927	int ret_val;
1928
1929	if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
1930		YY_FATAL_ERROR(
1931		"fatal flex scanner internal error--end of buffer missed" );
1932
1933	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1934		{ /* Don't try to fill the buffer, so this is an EOF. */
1935		if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
1936			{
1937			/* We matched a single character, the EOB, so
1938			 * treat this as a final EOF.
1939			 */
1940			return EOB_ACT_END_OF_FILE;
1941			}
1942
1943		else
1944			{
1945			/* We matched some text prior to the EOB, first
1946			 * process it.
1947			 */
1948			return EOB_ACT_LAST_MATCH;
1949			}
1950		}
1951
1952	/* Try to read more data. */
1953
1954	/* First move last chars to start of buffer. */
1955	number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
1956
1957	for ( i = 0; i < number_to_move; ++i )
1958		*(dest++) = *(source++);
1959
1960	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1961		/* don't do the read, it's not guaranteed to return an EOF,
1962		 * just force an EOF
1963		 */
1964		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
1965
1966	else
1967		{
1968			int num_to_read =
1969			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1970
1971		while ( num_to_read <= 0 )
1972			{ /* Not enough room in the buffer - grow it. */
1973
1974			/* just a shorter name for the current buffer */
1975			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
1976
1977			int yy_c_buf_p_offset =
1978				(int) (yyg->yy_c_buf_p - b->yy_ch_buf);
1979
1980			if ( b->yy_is_our_buffer )
1981				{
1982				int new_size = b->yy_buf_size * 2;
1983
1984				if ( new_size <= 0 )
1985					b->yy_buf_size += b->yy_buf_size / 8;
1986				else
1987					b->yy_buf_size *= 2;
1988
1989				b->yy_ch_buf = (char *)
1990					/* Include room in for 2 EOB chars. */
1991					parse_events_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
1992				}
1993			else
1994				/* Can't grow it, we don't own it. */
1995				b->yy_ch_buf = 0;
1996
1997			if ( ! b->yy_ch_buf )
1998				YY_FATAL_ERROR(
1999				"fatal error - scanner input buffer overflow" );
2000
2001			yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
2002
2003			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2004						number_to_move - 1;
2005
2006			}
2007
2008		if ( num_to_read > YY_READ_BUF_SIZE )
2009			num_to_read = YY_READ_BUF_SIZE;
2010
2011		/* Read in more data. */
2012		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2013			yyg->yy_n_chars, (size_t) num_to_read );
2014
2015		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2016		}
2017
2018	if ( yyg->yy_n_chars == 0 )
2019		{
2020		if ( number_to_move == YY_MORE_ADJ )
2021			{
2022			ret_val = EOB_ACT_END_OF_FILE;
2023			parse_events_restart(yyin  ,yyscanner);
2024			}
2025
2026		else
2027			{
2028			ret_val = EOB_ACT_LAST_MATCH;
2029			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2030				YY_BUFFER_EOF_PENDING;
2031			}
2032		}
2033
2034	else
2035		ret_val = EOB_ACT_CONTINUE_SCAN;
2036
2037	if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
2038		/* Extend the array by 50%, plus the number we really need. */
2039		yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
2040		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) parse_events_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
2041		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2042			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2043	}
2044
2045	yyg->yy_n_chars += number_to_move;
2046	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
2047	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
2048
2049	yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2050
2051	return ret_val;
2052}
2053
2054/* yy_get_previous_state - get the state just before the EOB char was reached */
2055
2056    static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
2057{
2058	register yy_state_type yy_current_state;
2059	register char *yy_cp;
2060    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2061
2062	yy_current_state = yyg->yy_start;
2063
2064	for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
2065		{
2066		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2067		if ( yy_accept[yy_current_state] )
2068			{
2069			yyg->yy_last_accepting_state = yy_current_state;
2070			yyg->yy_last_accepting_cpos = yy_cp;
2071			}
2072		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2073			{
2074			yy_current_state = (int) yy_def[yy_current_state];
2075			if ( yy_current_state >= 900 )
2076				yy_c = yy_meta[(unsigned int) yy_c];
2077			}
2078		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2079		}
2080
2081	return yy_current_state;
2082}
2083
2084/* yy_try_NUL_trans - try to make a transition on the NUL character
2085 *
2086 * synopsis
2087 *	next_state = yy_try_NUL_trans( current_state );
2088 */
2089    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state , yyscan_t yyscanner)
2090{
2091	register int yy_is_jam;
2092    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */
2093	register char *yy_cp = yyg->yy_c_buf_p;
2094
2095	register YY_CHAR yy_c = 1;
2096	if ( yy_accept[yy_current_state] )
2097		{
2098		yyg->yy_last_accepting_state = yy_current_state;
2099		yyg->yy_last_accepting_cpos = yy_cp;
2100		}
2101	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2102		{
2103		yy_current_state = (int) yy_def[yy_current_state];
2104		if ( yy_current_state >= 900 )
2105			yy_c = yy_meta[(unsigned int) yy_c];
2106		}
2107	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2108	yy_is_jam = (yy_current_state == 899);
2109
2110	return yy_is_jam ? 0 : yy_current_state;
2111}
2112
2113    static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner)
2114{
2115	register char *yy_cp;
2116    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2117
2118    yy_cp = yyg->yy_c_buf_p;
2119
2120	/* undo effects of setting up yytext */
2121	*yy_cp = yyg->yy_hold_char;
2122
2123	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2124		{ /* need to shift things up to make room */
2125		/* +2 for EOB chars. */
2126		register int number_to_move = yyg->yy_n_chars + 2;
2127		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2128					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2129		register char *source =
2130				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2131
2132		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2133			*--dest = *--source;
2134
2135		yy_cp += (int) (dest - source);
2136		yy_bp += (int) (dest - source);
2137		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2138			yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2139
2140		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2141			YY_FATAL_ERROR( "flex scanner push-back overflow" );
2142		}
2143
2144	*--yy_cp = (char) c;
2145
2146	yyg->yytext_ptr = yy_bp;
2147	yyg->yy_hold_char = *yy_cp;
2148	yyg->yy_c_buf_p = yy_cp;
2149}
2150
2151#ifndef YY_NO_INPUT
2152#ifdef __cplusplus
2153    static int yyinput (yyscan_t yyscanner)
2154#else
2155    static int input  (yyscan_t yyscanner)
2156#endif
2157
2158{
2159	int c;
2160    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2161
2162	*yyg->yy_c_buf_p = yyg->yy_hold_char;
2163
2164	if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2165		{
2166		/* yy_c_buf_p now points to the character we want to return.
2167		 * If this occurs *before* the EOB characters, then it's a
2168		 * valid NUL; if not, then we've hit the end of the buffer.
2169		 */
2170		if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2171			/* This was really a NUL. */
2172			*yyg->yy_c_buf_p = '\0';
2173
2174		else
2175			{ /* need more input */
2176			int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
2177			++yyg->yy_c_buf_p;
2178
2179			switch ( yy_get_next_buffer( yyscanner ) )
2180				{
2181				case EOB_ACT_LAST_MATCH:
2182					/* This happens because yy_g_n_b()
2183					 * sees that we've accumulated a
2184					 * token and flags that we need to
2185					 * try matching the token before
2186					 * proceeding.  But for input(),
2187					 * there's no matching to consider.
2188					 * So convert the EOB_ACT_LAST_MATCH
2189					 * to EOB_ACT_END_OF_FILE.
2190					 */
2191
2192					/* Reset buffer status. */
2193					parse_events_restart(yyin ,yyscanner);
2194
2195					/*FALLTHROUGH*/
2196
2197				case EOB_ACT_END_OF_FILE:
2198					{
2199					if ( parse_events_wrap(yyscanner ) )
2200						return EOF;
2201
2202					if ( ! yyg->yy_did_buffer_switch_on_eof )
2203						YY_NEW_FILE;
2204#ifdef __cplusplus
2205					return yyinput(yyscanner);
2206#else
2207					return input(yyscanner);
2208#endif
2209					}
2210
2211				case EOB_ACT_CONTINUE_SCAN:
2212					yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
2213					break;
2214				}
2215			}
2216		}
2217
2218	c = *(unsigned char *) yyg->yy_c_buf_p;	/* cast for 8-bit char's */
2219	*yyg->yy_c_buf_p = '\0';	/* preserve yytext */
2220	yyg->yy_hold_char = *++yyg->yy_c_buf_p;
2221
2222	return c;
2223}
2224#endif	/* ifndef YY_NO_INPUT */
2225
2226/** Immediately switch to a different input stream.
2227 * @param input_file A readable stream.
2228 * @param yyscanner The scanner object.
2229 * @note This function does not reset the start condition to @c INITIAL .
2230 */
2231    void parse_events_restart  (FILE * input_file , yyscan_t yyscanner)
2232{
2233    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2234
2235	if ( ! YY_CURRENT_BUFFER ){
2236        parse_events_ensure_buffer_stack (yyscanner);
2237		YY_CURRENT_BUFFER_LVALUE =
2238            parse_events__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
2239	}
2240
2241	parse_events__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
2242	parse_events__load_buffer_state(yyscanner );
2243}
2244
2245/** Switch to a different input buffer.
2246 * @param new_buffer The new input buffer.
2247 * @param yyscanner The scanner object.
2248 */
2249    void parse_events__switch_to_buffer  (YY_BUFFER_STATE  new_buffer , yyscan_t yyscanner)
2250{
2251    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2252
2253	/* TODO. We should be able to replace this entire function body
2254	 * with
2255	 *		parse_events_pop_buffer_state();
2256	 *		parse_events_push_buffer_state(new_buffer);
2257     */
2258	parse_events_ensure_buffer_stack (yyscanner);
2259	if ( YY_CURRENT_BUFFER == new_buffer )
2260		return;
2261
2262	if ( YY_CURRENT_BUFFER )
2263		{
2264		/* Flush out information for old buffer. */
2265		*yyg->yy_c_buf_p = yyg->yy_hold_char;
2266		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2267		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2268		}
2269
2270	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2271	parse_events__load_buffer_state(yyscanner );
2272
2273	/* We don't actually know whether we did this switch during
2274	 * EOF (parse_events_wrap()) processing, but the only time this flag
2275	 * is looked at is after parse_events_wrap() is called, so it's safe
2276	 * to go ahead and always set it.
2277	 */
2278	yyg->yy_did_buffer_switch_on_eof = 1;
2279}
2280
2281static void parse_events__load_buffer_state  (yyscan_t yyscanner)
2282{
2283    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2284	yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2285	yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2286	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2287	yyg->yy_hold_char = *yyg->yy_c_buf_p;
2288}
2289
2290/** Allocate and initialize an input buffer state.
2291 * @param file A readable stream.
2292 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2293 * @param yyscanner The scanner object.
2294 * @return the allocated buffer state.
2295 */
2296    YY_BUFFER_STATE parse_events__create_buffer  (FILE * file, int  size , yyscan_t yyscanner)
2297{
2298	YY_BUFFER_STATE b;
2299
2300	b = (YY_BUFFER_STATE) parse_events_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2301	if ( ! b )
2302		YY_FATAL_ERROR( "out of dynamic memory in parse_events__create_buffer()" );
2303
2304	b->yy_buf_size = size;
2305
2306	/* yy_ch_buf has to be 2 characters longer than the size given because
2307	 * we need to put in 2 end-of-buffer characters.
2308	 */
2309	b->yy_ch_buf = (char *) parse_events_alloc(b->yy_buf_size + 2 ,yyscanner );
2310	if ( ! b->yy_ch_buf )
2311		YY_FATAL_ERROR( "out of dynamic memory in parse_events__create_buffer()" );
2312
2313	b->yy_is_our_buffer = 1;
2314
2315	parse_events__init_buffer(b,file ,yyscanner);
2316
2317	return b;
2318}
2319
2320/** Destroy the buffer.
2321 * @param b a buffer created with parse_events__create_buffer()
2322 * @param yyscanner The scanner object.
2323 */
2324    void parse_events__delete_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
2325{
2326    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2327
2328	if ( ! b )
2329		return;
2330
2331	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2332		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2333
2334	if ( b->yy_is_our_buffer )
2335		parse_events_free((void *) b->yy_ch_buf ,yyscanner );
2336
2337	parse_events_free((void *) b ,yyscanner );
2338}
2339
2340#ifndef __cplusplus
2341extern int isatty (int );
2342#endif /* __cplusplus */
2343
2344/* Initializes or reinitializes a buffer.
2345 * This function is sometimes called more than once on the same buffer,
2346 * such as during a parse_events_restart() or at EOF.
2347 */
2348    static void parse_events__init_buffer  (YY_BUFFER_STATE  b, FILE * file , yyscan_t yyscanner)
2349
2350{
2351	int oerrno = errno;
2352    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2353
2354	parse_events__flush_buffer(b ,yyscanner);
2355
2356	b->yy_input_file = file;
2357	b->yy_fill_buffer = 1;
2358
2359    /* If b is the current buffer, then parse_events__init_buffer was _probably_
2360     * called from parse_events_restart() or through yy_get_next_buffer.
2361     * In that case, we don't want to reset the lineno or column.
2362     */
2363    if (b != YY_CURRENT_BUFFER){
2364        b->yy_bs_lineno = 1;
2365        b->yy_bs_column = 0;
2366    }
2367
2368        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2369
2370	errno = oerrno;
2371}
2372
2373/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2374 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2375 * @param yyscanner The scanner object.
2376 */
2377    void parse_events__flush_buffer (YY_BUFFER_STATE  b , yyscan_t yyscanner)
2378{
2379    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2380	if ( ! b )
2381		return;
2382
2383	b->yy_n_chars = 0;
2384
2385	/* We always need two end-of-buffer characters.  The first causes
2386	 * a transition to the end-of-buffer state.  The second causes
2387	 * a jam in that state.
2388	 */
2389	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2390	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2391
2392	b->yy_buf_pos = &b->yy_ch_buf[0];
2393
2394	b->yy_at_bol = 1;
2395	b->yy_buffer_status = YY_BUFFER_NEW;
2396
2397	if ( b == YY_CURRENT_BUFFER )
2398		parse_events__load_buffer_state(yyscanner );
2399}
2400
2401/** Pushes the new state onto the stack. The new state becomes
2402 *  the current state. This function will allocate the stack
2403 *  if necessary.
2404 *  @param new_buffer The new state.
2405 *  @param yyscanner The scanner object.
2406 */
2407void parse_events_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2408{
2409    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2410	if (new_buffer == NULL)
2411		return;
2412
2413	parse_events_ensure_buffer_stack(yyscanner);
2414
2415	/* This block is copied from parse_events__switch_to_buffer. */
2416	if ( YY_CURRENT_BUFFER )
2417		{
2418		/* Flush out information for old buffer. */
2419		*yyg->yy_c_buf_p = yyg->yy_hold_char;
2420		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2421		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2422		}
2423
2424	/* Only push if top exists. Otherwise, replace top. */
2425	if (YY_CURRENT_BUFFER)
2426		yyg->yy_buffer_stack_top++;
2427	YY_CURRENT_BUFFER_LVALUE = new_buffer;
2428
2429	/* copied from parse_events__switch_to_buffer. */
2430	parse_events__load_buffer_state(yyscanner );
2431	yyg->yy_did_buffer_switch_on_eof = 1;
2432}
2433
2434/** Removes and deletes the top of the stack, if present.
2435 *  The next element becomes the new top.
2436 *  @param yyscanner The scanner object.
2437 */
2438void parse_events_pop_buffer_state (yyscan_t yyscanner)
2439{
2440    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2441	if (!YY_CURRENT_BUFFER)
2442		return;
2443
2444	parse_events__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
2445	YY_CURRENT_BUFFER_LVALUE = NULL;
2446	if (yyg->yy_buffer_stack_top > 0)
2447		--yyg->yy_buffer_stack_top;
2448
2449	if (YY_CURRENT_BUFFER) {
2450		parse_events__load_buffer_state(yyscanner );
2451		yyg->yy_did_buffer_switch_on_eof = 1;
2452	}
2453}
2454
2455/* Allocates the stack if it does not exist.
2456 *  Guarantees space for at least one push.
2457 */
2458static void parse_events_ensure_buffer_stack (yyscan_t yyscanner)
2459{
2460	int num_to_alloc;
2461    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2462
2463	if (!yyg->yy_buffer_stack) {
2464
2465		/* First allocation is just for 2 elements, since we don't know if this
2466		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2467		 * immediate realloc on the next call.
2468         */
2469		num_to_alloc = 1;
2470		yyg->yy_buffer_stack = (struct yy_buffer_state**)parse_events_alloc
2471								(num_to_alloc * sizeof(struct yy_buffer_state*)
2472								, yyscanner);
2473		if ( ! yyg->yy_buffer_stack )
2474			YY_FATAL_ERROR( "out of dynamic memory in parse_events_ensure_buffer_stack()" );
2475
2476		memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2477
2478		yyg->yy_buffer_stack_max = num_to_alloc;
2479		yyg->yy_buffer_stack_top = 0;
2480		return;
2481	}
2482
2483	if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
2484
2485		/* Increase the buffer to prepare for a possible push. */
2486		int grow_size = 8 /* arbitrary grow size */;
2487
2488		num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
2489		yyg->yy_buffer_stack = (struct yy_buffer_state**)parse_events_realloc
2490								(yyg->yy_buffer_stack,
2491								num_to_alloc * sizeof(struct yy_buffer_state*)
2492								, yyscanner);
2493		if ( ! yyg->yy_buffer_stack )
2494			YY_FATAL_ERROR( "out of dynamic memory in parse_events_ensure_buffer_stack()" );
2495
2496		/* zero only the new slots.*/
2497		memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
2498		yyg->yy_buffer_stack_max = num_to_alloc;
2499	}
2500}
2501
2502/** Setup the input buffer state to scan directly from a user-specified character buffer.
2503 * @param base the character buffer
2504 * @param size the size in bytes of the character buffer
2505 * @param yyscanner The scanner object.
2506 * @return the newly allocated buffer state object.
2507 */
2508YY_BUFFER_STATE parse_events__scan_buffer  (char * base, yy_size_t  size , yyscan_t yyscanner)
2509{
2510	YY_BUFFER_STATE b;
2511
2512	if ( size < 2 ||
2513	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
2514	     base[size-1] != YY_END_OF_BUFFER_CHAR )
2515		/* They forgot to leave room for the EOB's. */
2516		return 0;
2517
2518	b = (YY_BUFFER_STATE) parse_events_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
2519	if ( ! b )
2520		YY_FATAL_ERROR( "out of dynamic memory in parse_events__scan_buffer()" );
2521
2522	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
2523	b->yy_buf_pos = b->yy_ch_buf = base;
2524	b->yy_is_our_buffer = 0;
2525	b->yy_input_file = 0;
2526	b->yy_n_chars = b->yy_buf_size;
2527	b->yy_is_interactive = 0;
2528	b->yy_at_bol = 1;
2529	b->yy_fill_buffer = 0;
2530	b->yy_buffer_status = YY_BUFFER_NEW;
2531
2532	parse_events__switch_to_buffer(b ,yyscanner );
2533
2534	return b;
2535}
2536
2537/** Setup the input buffer state to scan a string. The next call to parse_events_lex() will
2538 * scan from a @e copy of @a str.
2539 * @param yystr a NUL-terminated string to scan
2540 * @param yyscanner The scanner object.
2541 * @return the newly allocated buffer state object.
2542 * @note If you want to scan bytes that may contain NUL values, then use
2543 *       parse_events__scan_bytes() instead.
2544 */
2545YY_BUFFER_STATE parse_events__scan_string (yyconst char * yystr , yyscan_t yyscanner)
2546{
2547
2548	return parse_events__scan_bytes(yystr,strlen(yystr) ,yyscanner);
2549}
2550
2551/** Setup the input buffer state to scan the given bytes. The next call to parse_events_lex() will
2552 * scan from a @e copy of @a bytes.
2553 * @param yybytes the byte buffer to scan
2554 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
2555 * @param yyscanner The scanner object.
2556 * @return the newly allocated buffer state object.
2557 */
2558YY_BUFFER_STATE parse_events__scan_bytes  (yyconst char * yybytes, int  _yybytes_len , yyscan_t yyscanner)
2559{
2560	YY_BUFFER_STATE b;
2561	char *buf;
2562	yy_size_t n;
2563	int i;
2564
2565	/* Get memory for full buffer, including space for trailing EOB's. */
2566	n = _yybytes_len + 2;
2567	buf = (char *) parse_events_alloc(n ,yyscanner );
2568	if ( ! buf )
2569		YY_FATAL_ERROR( "out of dynamic memory in parse_events__scan_bytes()" );
2570
2571	for ( i = 0; i < _yybytes_len; ++i )
2572		buf[i] = yybytes[i];
2573
2574	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2575
2576	b = parse_events__scan_buffer(buf,n ,yyscanner);
2577	if ( ! b )
2578		YY_FATAL_ERROR( "bad buffer in parse_events__scan_bytes()" );
2579
2580	/* It's okay to grow etc. this buffer, and we should throw it
2581	 * away when we're done.
2582	 */
2583	b->yy_is_our_buffer = 1;
2584
2585	return b;
2586}
2587
2588    static void yy_push_state (int  new_state , yyscan_t yyscanner)
2589{
2590    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2591	if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth )
2592		{
2593		yy_size_t new_size;
2594
2595		yyg->yy_start_stack_depth += YY_START_STACK_INCR;
2596		new_size = yyg->yy_start_stack_depth * sizeof( int );
2597
2598		if ( ! yyg->yy_start_stack )
2599			yyg->yy_start_stack = (int *) parse_events_alloc(new_size ,yyscanner );
2600
2601		else
2602			yyg->yy_start_stack = (int *) parse_events_realloc((void *) yyg->yy_start_stack,new_size ,yyscanner );
2603
2604		if ( ! yyg->yy_start_stack )
2605			YY_FATAL_ERROR( "out of memory expanding start-condition stack" );
2606		}
2607
2608	yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START;
2609
2610	BEGIN(new_state);
2611}
2612
2613    static void yy_pop_state  (yyscan_t yyscanner)
2614{
2615    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2616	if ( --yyg->yy_start_stack_ptr < 0 )
2617		YY_FATAL_ERROR( "start-condition stack underflow" );
2618
2619	BEGIN(yyg->yy_start_stack[yyg->yy_start_stack_ptr]);
2620}
2621
2622    static int yy_top_state  (yyscan_t yyscanner)
2623{
2624    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2625	return yyg->yy_start_stack[yyg->yy_start_stack_ptr - 1];
2626}
2627
2628#ifndef YY_EXIT_FAILURE
2629#define YY_EXIT_FAILURE 2
2630#endif
2631
2632static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
2633{
2634    	(void) fprintf( stderr, "%s\n", msg );
2635	exit( YY_EXIT_FAILURE );
2636}
2637
2638/* Redefine yyless() so it works in section 3 code. */
2639
2640#undef yyless
2641#define yyless(n) \
2642	do \
2643		{ \
2644		/* Undo effects of setting up yytext. */ \
2645        int yyless_macro_arg = (n); \
2646        YY_LESS_LINENO(yyless_macro_arg);\
2647		yytext[yyleng] = yyg->yy_hold_char; \
2648		yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2649		yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2650		*yyg->yy_c_buf_p = '\0'; \
2651		yyleng = yyless_macro_arg; \
2652		} \
2653	while ( 0 )
2654
2655/* Accessor  methods (get/set functions) to struct members. */
2656
2657/** Get the user-defined data for this scanner.
2658 * @param yyscanner The scanner object.
2659 */
2660YY_EXTRA_TYPE parse_events_get_extra  (yyscan_t yyscanner)
2661{
2662    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2663    return yyextra;
2664}
2665
2666/** Get the current line number.
2667 * @param yyscanner The scanner object.
2668 */
2669int parse_events_get_lineno  (yyscan_t yyscanner)
2670{
2671    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2672
2673        if (! YY_CURRENT_BUFFER)
2674            return 0;
2675
2676    return yylineno;
2677}
2678
2679/** Get the current column number.
2680 * @param yyscanner The scanner object.
2681 */
2682int parse_events_get_column  (yyscan_t yyscanner)
2683{
2684    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2685
2686        if (! YY_CURRENT_BUFFER)
2687            return 0;
2688
2689    return yycolumn;
2690}
2691
2692/** Get the input stream.
2693 * @param yyscanner The scanner object.
2694 */
2695FILE *parse_events_get_in  (yyscan_t yyscanner)
2696{
2697    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2698    return yyin;
2699}
2700
2701/** Get the output stream.
2702 * @param yyscanner The scanner object.
2703 */
2704FILE *parse_events_get_out  (yyscan_t yyscanner)
2705{
2706    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2707    return yyout;
2708}
2709
2710/** Get the length of the current token.
2711 * @param yyscanner The scanner object.
2712 */
2713int parse_events_get_leng  (yyscan_t yyscanner)
2714{
2715    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2716    return yyleng;
2717}
2718
2719/** Get the current token.
2720 * @param yyscanner The scanner object.
2721 */
2722
2723char *parse_events_get_text  (yyscan_t yyscanner)
2724{
2725    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2726    return yytext;
2727}
2728
2729/** Set the user-defined data. This data is never touched by the scanner.
2730 * @param user_defined The data to be associated with this scanner.
2731 * @param yyscanner The scanner object.
2732 */
2733void parse_events_set_extra (YY_EXTRA_TYPE  user_defined , yyscan_t yyscanner)
2734{
2735    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2736    yyextra = user_defined ;
2737}
2738
2739/** Set the current line number.
2740 * @param line_number
2741 * @param yyscanner The scanner object.
2742 */
2743void parse_events_set_lineno (int  line_number , yyscan_t yyscanner)
2744{
2745    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2746
2747        /* lineno is only valid if an input buffer exists. */
2748        if (! YY_CURRENT_BUFFER )
2749           yy_fatal_error( "parse_events_set_lineno called with no buffer" , yyscanner);
2750
2751    yylineno = line_number;
2752}
2753
2754/** Set the current column.
2755 * @param line_number
2756 * @param yyscanner The scanner object.
2757 */
2758void parse_events_set_column (int  column_no , yyscan_t yyscanner)
2759{
2760    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2761
2762        /* column is only valid if an input buffer exists. */
2763        if (! YY_CURRENT_BUFFER )
2764           yy_fatal_error( "parse_events_set_column called with no buffer" , yyscanner);
2765
2766    yycolumn = column_no;
2767}
2768
2769/** Set the input stream. This does not discard the current
2770 * input buffer.
2771 * @param in_str A readable stream.
2772 * @param yyscanner The scanner object.
2773 * @see parse_events__switch_to_buffer
2774 */
2775void parse_events_set_in (FILE *  in_str , yyscan_t yyscanner)
2776{
2777    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2778    yyin = in_str ;
2779}
2780
2781void parse_events_set_out (FILE *  out_str , yyscan_t yyscanner)
2782{
2783    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2784    yyout = out_str ;
2785}
2786
2787int parse_events_get_debug  (yyscan_t yyscanner)
2788{
2789    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2790    return yy_flex_debug;
2791}
2792
2793void parse_events_set_debug (int  bdebug , yyscan_t yyscanner)
2794{
2795    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2796    yy_flex_debug = bdebug ;
2797}
2798
2799/* Accessor methods for yylval and yylloc */
2800
2801YYSTYPE * parse_events_get_lval  (yyscan_t yyscanner)
2802{
2803    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2804    return yylval;
2805}
2806
2807void parse_events_set_lval (YYSTYPE *  yylval_param , yyscan_t yyscanner)
2808{
2809    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2810    yylval = yylval_param;
2811}
2812
2813/* User-visible API */
2814
2815/* parse_events_lex_init is special because it creates the scanner itself, so it is
2816 * the ONLY reentrant function that doesn't take the scanner as the last argument.
2817 * That's why we explicitly handle the declaration, instead of using our macros.
2818 */
2819
2820int parse_events_lex_init(yyscan_t* ptr_yy_globals)
2821
2822{
2823    if (ptr_yy_globals == NULL){
2824        errno = EINVAL;
2825        return 1;
2826    }
2827
2828    *ptr_yy_globals = (yyscan_t) parse_events_alloc ( sizeof( struct yyguts_t ), NULL );
2829
2830    if (*ptr_yy_globals == NULL){
2831        errno = ENOMEM;
2832        return 1;
2833    }
2834
2835    /* By setting to 0xAA, we expose bugs in yy_init_globals. Leave at 0x00 for releases. */
2836    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
2837
2838    return yy_init_globals ( *ptr_yy_globals );
2839}
2840
2841/* parse_events_lex_init_extra has the same functionality as parse_events_lex_init, but follows the
2842 * convention of taking the scanner as the last argument. Note however, that
2843 * this is a *pointer* to a scanner, as it will be allocated by this call (and
2844 * is the reason, too, why this function also must handle its own declaration).
2845 * The user defined value in the first argument will be available to parse_events_alloc in
2846 * the yyextra field.
2847 */
2848
2849int parse_events_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
2850
2851{
2852    struct yyguts_t dummy_yyguts;
2853
2854    parse_events_set_extra (yy_user_defined, &dummy_yyguts);
2855
2856    if (ptr_yy_globals == NULL){
2857        errno = EINVAL;
2858        return 1;
2859    }
2860
2861    *ptr_yy_globals = (yyscan_t) parse_events_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
2862
2863    if (*ptr_yy_globals == NULL){
2864        errno = ENOMEM;
2865        return 1;
2866    }
2867
2868    /* By setting to 0xAA, we expose bugs in
2869    yy_init_globals. Leave at 0x00 for releases. */
2870    memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
2871
2872    parse_events_set_extra (yy_user_defined, *ptr_yy_globals);
2873
2874    return yy_init_globals ( *ptr_yy_globals );
2875}
2876
2877static int yy_init_globals (yyscan_t yyscanner)
2878{
2879    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2880    /* Initialization is the same as for the non-reentrant scanner.
2881     * This function is called from parse_events_lex_destroy(), so don't allocate here.
2882     */
2883
2884    yyg->yy_buffer_stack = 0;
2885    yyg->yy_buffer_stack_top = 0;
2886    yyg->yy_buffer_stack_max = 0;
2887    yyg->yy_c_buf_p = (char *) 0;
2888    yyg->yy_init = 0;
2889    yyg->yy_start = 0;
2890
2891    yyg->yy_start_stack_ptr = 0;
2892    yyg->yy_start_stack_depth = 0;
2893    yyg->yy_start_stack =  NULL;
2894
2895/* Defined in main.c */
2896#ifdef YY_STDINIT
2897    yyin = stdin;
2898    yyout = stdout;
2899#else
2900    yyin = (FILE *) 0;
2901    yyout = (FILE *) 0;
2902#endif
2903
2904    /* For future reference: Set errno on error, since we are called by
2905     * parse_events_lex_init()
2906     */
2907    return 0;
2908}
2909
2910/* parse_events_lex_destroy is for both reentrant and non-reentrant scanners. */
2911int parse_events_lex_destroy  (yyscan_t yyscanner)
2912{
2913    struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2914
2915    /* Pop the buffer stack, destroying each element. */
2916	while(YY_CURRENT_BUFFER){
2917		parse_events__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
2918		YY_CURRENT_BUFFER_LVALUE = NULL;
2919		parse_events_pop_buffer_state(yyscanner);
2920	}
2921
2922	/* Destroy the stack itself. */
2923	parse_events_free(yyg->yy_buffer_stack ,yyscanner);
2924	yyg->yy_buffer_stack = NULL;
2925
2926    /* Destroy the start condition stack. */
2927        parse_events_free(yyg->yy_start_stack ,yyscanner );
2928        yyg->yy_start_stack = NULL;
2929
2930    /* Reset the globals. This is important in a non-reentrant scanner so the next time
2931     * parse_events_lex() is called, initialization will occur. */
2932    yy_init_globals( yyscanner);
2933
2934    /* Destroy the main struct (reentrant only). */
2935    parse_events_free ( yyscanner , yyscanner );
2936    yyscanner = NULL;
2937    return 0;
2938}
2939
2940/*
2941 * Internal utility routines.
2942 */
2943
2944#ifndef yytext_ptr
2945static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
2946{
2947	register int i;
2948	for ( i = 0; i < n; ++i )
2949		s1[i] = s2[i];
2950}
2951#endif
2952
2953#ifdef YY_NEED_STRLEN
2954static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
2955{
2956	register int n;
2957	for ( n = 0; s[n]; ++n )
2958		;
2959
2960	return n;
2961}
2962#endif
2963
2964void *parse_events_alloc (yy_size_t  size , yyscan_t yyscanner)
2965{
2966	return (void *) malloc( size );
2967}
2968
2969void *parse_events_realloc  (void * ptr, yy_size_t  size , yyscan_t yyscanner)
2970{
2971	/* The cast to (char *) in the following accommodates both
2972	 * implementations that use char* generic pointers, and those
2973	 * that use void* generic pointers.  It works with the latter
2974	 * because both ANSI C and C++ allow castless assignment from
2975	 * any pointer type to void*, and deal with argument conversions
2976	 * as though doing an assignment.
2977	 */
2978	return (void *) realloc( (char *) ptr, size );
2979}
2980
2981void parse_events_free (void * ptr , yyscan_t yyscanner)
2982{
2983	free( (char *) ptr );	/* see parse_events_realloc() for (char *) cast */
2984}
2985
2986#define YYTABLES_NAME "yytables"
2987
2988#line 212 "util/parse-events.l"
2989
2990
2991
2992int parse_events_wrap(void *scanner __maybe_unused)
2993{
2994	return 1;
2995}
2996
2997