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>
43 typedef int8_t flex_int8_t;
44 typedef uint8_t flex_uint8_t;
45 typedef int16_t flex_int16_t;
46 typedef uint16_t flex_uint16_t;
47 typedef int32_t flex_int32_t;
48 typedef uint32_t flex_uint32_t;
49 #else
50 typedef signed char flex_int8_t;
51 typedef short int flex_int16_t;
52 typedef int flex_int32_t;
53 typedef unsigned char flex_uint8_t;
54 typedef unsigned short int flex_uint16_t;
55 typedef 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
124 typedef 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
178 typedef 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
205 typedef size_t yy_size_t;
206 #endif
207
208 #ifndef YY_STRUCT_YY_BUFFER_STATE
209 #define YY_STRUCT_YY_BUFFER_STATE
210 struct 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
288 void parse_events_restart (FILE *input_file ,yyscan_t yyscanner );
289 void parse_events__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
290 YY_BUFFER_STATE parse_events__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
291 void parse_events__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
292 void parse_events__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
293 void parse_events_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
294 void parse_events_pop_buffer_state (yyscan_t yyscanner );
295
296 static void parse_events_ensure_buffer_stack (yyscan_t yyscanner );
297 static void parse_events__load_buffer_state (yyscan_t yyscanner );
298 static 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
302 YY_BUFFER_STATE parse_events__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
303 YY_BUFFER_STATE parse_events__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
304 YY_BUFFER_STATE parse_events__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
305
306 void *parse_events_alloc (yy_size_t ,yyscan_t yyscanner );
307 void *parse_events_realloc (void *,yy_size_t ,yyscan_t yyscanner );
308 void 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
336 typedef unsigned char YY_CHAR;
337
338 typedef int yy_state_type;
339
340 #define yytext_ptr yytext_r
341
342 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
343 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
344 static int yy_get_next_buffer (yyscan_t yyscanner );
345 static 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. */
361 struct yy_trans_info
362 {
363 flex_int32_t yy_verify;
364 flex_int32_t yy_nxt;
365 };
366 static 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
469 static 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
501 static 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
510 static 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
615 static 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
720 static 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
873 static 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
1040 char *parse_events_get_text(yyscan_t yyscanner);
1041 YYSTYPE *parse_events_get_lval(yyscan_t yyscanner);
1042
__value(YYSTYPE * yylval,char * str,int base,int token)1043 static 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
value(yyscan_t scanner,int base)1056 static 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
raw(yyscan_t scanner)1064 static 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
str(yyscan_t scanner,int token)1072 static 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
sym(yyscan_t scanner,int type,int config)1081 static 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
term(yyscan_t scanner,int type)1089 static 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. */
1121 struct 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
1156 static 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
1162 int parse_events_lex_init (yyscan_t* scanner);
1163
1164 int 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
1169 int parse_events_lex_destroy (yyscan_t yyscanner );
1170
1171 int parse_events_get_debug (yyscan_t yyscanner );
1172
1173 void parse_events_set_debug (int debug_flag ,yyscan_t yyscanner );
1174
1175 YY_EXTRA_TYPE parse_events_get_extra (yyscan_t yyscanner );
1176
1177 void parse_events_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
1178
1179 FILE *parse_events_get_in (yyscan_t yyscanner );
1180
1181 void parse_events_set_in (FILE * in_str ,yyscan_t yyscanner );
1182
1183 FILE *parse_events_get_out (yyscan_t yyscanner );
1184
1185 void parse_events_set_out (FILE * out_str ,yyscan_t yyscanner );
1186
1187 int parse_events_get_leng (yyscan_t yyscanner );
1188
1189 char *parse_events_get_text (yyscan_t yyscanner );
1190
1191 int parse_events_get_lineno (yyscan_t yyscanner );
1192
1193 void parse_events_set_lineno (int line_number ,yyscan_t yyscanner );
1194
1195 YYSTYPE * parse_events_get_lval (yyscan_t yyscanner );
1196
1197 void 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
1205 extern "C" int parse_events_wrap (yyscan_t yyscanner );
1206 #else
1207 extern 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
1214 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
1215 #endif
1216
1217 #ifdef YY_NEED_STRLEN
1218 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
1219 #endif
1220
1221 #ifndef YY_NO_INPUT
1222
1223 #ifdef __cplusplus
1224 static int yyinput (yyscan_t yyscanner );
1225 #else
1226 static 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
1317 extern 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 */
1341 YY_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;
1412 yy_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
1432 yy_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
1443 do_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
1454 case 1:
1455 /* rule 1 can match eol */
1456 YY_RULE_SETUP
1457 #line 111 "util/parse-events.l"
1458 {
1459 BEGIN(INITIAL); yyless(0);
1460 }
1461 YY_BREAK
1462 case 2:
1463 /* rule 2 can match eol */
1464 #line 116 "util/parse-events.l"
1465 case 3:
1466 /* rule 3 can match eol */
1467 YY_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
1475 case 4:
1476 #line 123 "util/parse-events.l"
1477 case YY_STATE_EOF(event):
1478 #line 123 "util/parse-events.l"
1479 {
1480 BEGIN(INITIAL); yyless(0);
1481 }
1482 YY_BREAK
1483
1484 case 5:
1485 YY_RULE_SETUP
1486 #line 129 "util/parse-events.l"
1487 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES); }
1488 YY_BREAK
1489 case 6:
1490 YY_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
1494 case 7:
1495 YY_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
1499 case 8:
1500 YY_RULE_SETUP
1501 #line 132 "util/parse-events.l"
1502 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS); }
1503 YY_BREAK
1504 case 9:
1505 YY_RULE_SETUP
1506 #line 133 "util/parse-events.l"
1507 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_REFERENCES); }
1508 YY_BREAK
1509 case 10:
1510 YY_RULE_SETUP
1511 #line 134 "util/parse-events.l"
1512 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_MISSES); }
1513 YY_BREAK
1514 case 11:
1515 YY_RULE_SETUP
1516 #line 135 "util/parse-events.l"
1517 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_BRANCH_INSTRUCTIONS); }
1518 YY_BREAK
1519 case 12:
1520 YY_RULE_SETUP
1521 #line 136 "util/parse-events.l"
1522 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_BRANCH_MISSES); }
1523 YY_BREAK
1524 case 13:
1525 YY_RULE_SETUP
1526 #line 137 "util/parse-events.l"
1527 { return sym(yyscanner, PERF_TYPE_HARDWARE, PERF_COUNT_HW_BUS_CYCLES); }
1528 YY_BREAK
1529 case 14:
1530 YY_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
1534 case 15:
1535 YY_RULE_SETUP
1536 #line 139 "util/parse-events.l"
1537 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CPU_CLOCK); }
1538 YY_BREAK
1539 case 16:
1540 YY_RULE_SETUP
1541 #line 140 "util/parse-events.l"
1542 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_TASK_CLOCK); }
1543 YY_BREAK
1544 case 17:
1545 YY_RULE_SETUP
1546 #line 141 "util/parse-events.l"
1547 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_PAGE_FAULTS); }
1548 YY_BREAK
1549 case 18:
1550 YY_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
1554 case 19:
1555 YY_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
1559 case 20:
1560 YY_RULE_SETUP
1561 #line 144 "util/parse-events.l"
1562 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CONTEXT_SWITCHES); }
1563 YY_BREAK
1564 case 21:
1565 YY_RULE_SETUP
1566 #line 145 "util/parse-events.l"
1567 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_CPU_MIGRATIONS); }
1568 YY_BREAK
1569 case 22:
1570 YY_RULE_SETUP
1571 #line 146 "util/parse-events.l"
1572 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_ALIGNMENT_FAULTS); }
1573 YY_BREAK
1574 case 23:
1575 YY_RULE_SETUP
1576 #line 147 "util/parse-events.l"
1577 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_EMULATION_FAULTS); }
1578 YY_BREAK
1579 case 24:
1580 YY_RULE_SETUP
1581 #line 148 "util/parse-events.l"
1582 { return sym(yyscanner, PERF_TYPE_SOFTWARE, PERF_COUNT_SW_DUMMY); }
1583 YY_BREAK
1584 case 25:
1585 #line 151 "util/parse-events.l"
1586 case 26:
1587 #line 152 "util/parse-events.l"
1588 case 27:
1589 #line 153 "util/parse-events.l"
1590 case 28:
1591 #line 154 "util/parse-events.l"
1592 case 29:
1593 #line 155 "util/parse-events.l"
1594 case 30:
1595 #line 156 "util/parse-events.l"
1596 case 31:
1597 YY_RULE_SETUP
1598 #line 156 "util/parse-events.l"
1599 { return str(yyscanner, PE_NAME_CACHE_TYPE); }
1600 YY_BREAK
1601 case 32:
1602 #line 159 "util/parse-events.l"
1603 case 33:
1604 #line 160 "util/parse-events.l"
1605 case 34:
1606 #line 161 "util/parse-events.l"
1607 case 35:
1608 #line 162 "util/parse-events.l"
1609 case 36:
1610 #line 163 "util/parse-events.l"
1611 case 37:
1612 YY_RULE_SETUP
1613 #line 163 "util/parse-events.l"
1614 { return str(yyscanner, PE_NAME_CACHE_OP_RESULT); }
1615 YY_BREAK
1616
1617 case 38:
1618 YY_RULE_SETUP
1619 #line 166 "util/parse-events.l"
1620 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_CONFIG); }
1621 YY_BREAK
1622 case 39:
1623 YY_RULE_SETUP
1624 #line 167 "util/parse-events.l"
1625 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_CONFIG1); }
1626 YY_BREAK
1627 case 40:
1628 YY_RULE_SETUP
1629 #line 168 "util/parse-events.l"
1630 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_CONFIG2); }
1631 YY_BREAK
1632 case 41:
1633 YY_RULE_SETUP
1634 #line 169 "util/parse-events.l"
1635 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_NAME); }
1636 YY_BREAK
1637 case 42:
1638 YY_RULE_SETUP
1639 #line 170 "util/parse-events.l"
1640 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_SAMPLE_PERIOD); }
1641 YY_BREAK
1642 case 43:
1643 YY_RULE_SETUP
1644 #line 171 "util/parse-events.l"
1645 { return term(yyscanner, PARSE_EVENTS__TERM_TYPE_BRANCH_SAMPLE_TYPE); }
1646 YY_BREAK
1647 case 44:
1648 YY_RULE_SETUP
1649 #line 172 "util/parse-events.l"
1650 { return ','; }
1651 YY_BREAK
1652 case 45:
1653 YY_RULE_SETUP
1654 #line 173 "util/parse-events.l"
1655 { BEGIN(INITIAL); return '/'; }
1656 YY_BREAK
1657 case 46:
1658 YY_RULE_SETUP
1659 #line 174 "util/parse-events.l"
1660 { return str(yyscanner, PE_NAME); }
1661 YY_BREAK
1662
1663 case 47:
1664 YY_RULE_SETUP
1665 #line 177 "util/parse-events.l"
1666 { BEGIN(mem); return PE_PREFIX_MEM; }
1667 YY_BREAK
1668 case 48:
1669 YY_RULE_SETUP
1670 #line 178 "util/parse-events.l"
1671 { return raw(yyscanner); }
1672 YY_BREAK
1673 case 49:
1674 YY_RULE_SETUP
1675 #line 179 "util/parse-events.l"
1676 { return value(yyscanner, 10); }
1677 YY_BREAK
1678 case 50:
1679 YY_RULE_SETUP
1680 #line 180 "util/parse-events.l"
1681 { return value(yyscanner, 16); }
1682 YY_BREAK
1683 case 51:
1684 YY_RULE_SETUP
1685 #line 182 "util/parse-events.l"
1686 { return str(yyscanner, PE_MODIFIER_EVENT); }
1687 YY_BREAK
1688 case 52:
1689 YY_RULE_SETUP
1690 #line 183 "util/parse-events.l"
1691 { return str(yyscanner, PE_NAME); }
1692 YY_BREAK
1693 case 53:
1694 YY_RULE_SETUP
1695 #line 184 "util/parse-events.l"
1696 { BEGIN(config); return '/'; }
1697 YY_BREAK
1698 case 54:
1699 YY_RULE_SETUP
1700 #line 185 "util/parse-events.l"
1701 { return '-'; }
1702 YY_BREAK
1703 case 55:
1704 YY_RULE_SETUP
1705 #line 186 "util/parse-events.l"
1706 { BEGIN(event); return ','; }
1707 YY_BREAK
1708 case 56:
1709 YY_RULE_SETUP
1710 #line 187 "util/parse-events.l"
1711 { return ':'; }
1712 YY_BREAK
1713 case 57:
1714 YY_RULE_SETUP
1715 #line 188 "util/parse-events.l"
1716 { BEGIN(event); return '{'; }
1717 YY_BREAK
1718 case 58:
1719 YY_RULE_SETUP
1720 #line 189 "util/parse-events.l"
1721 { return '}'; }
1722 YY_BREAK
1723 case 59:
1724 YY_RULE_SETUP
1725 #line 190 "util/parse-events.l"
1726 { return '='; }
1727 YY_BREAK
1728 case 60:
1729 /* rule 60 can match eol */
1730 YY_RULE_SETUP
1731 #line 191 "util/parse-events.l"
1732 { }
1733 YY_BREAK
1734
1735 case 61:
1736 YY_RULE_SETUP
1737 #line 194 "util/parse-events.l"
1738 { return str(yyscanner, PE_MODIFIER_BP); }
1739 YY_BREAK
1740 case 62:
1741 YY_RULE_SETUP
1742 #line 195 "util/parse-events.l"
1743 { return ':'; }
1744 YY_BREAK
1745 case 63:
1746 YY_RULE_SETUP
1747 #line 196 "util/parse-events.l"
1748 { return value(yyscanner, 10); }
1749 YY_BREAK
1750 case 64:
1751 YY_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 */
1761 case 65:
1762 YY_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 */
1770 case YY_STATE_EOF(mem):
1771 #line 209 "util/parse-events.l"
1772 { BEGIN(INITIAL); }
1773 YY_BREAK
1774
1775 case 66:
1776 YY_RULE_SETUP
1777 #line 212 "util/parse-events.l"
1778 ECHO;
1779 YY_BREAK
1780 #line 1781 "<stdout>"
1781 case YY_STATE_EOF(INITIAL):
1782 case 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 */
yy_get_next_buffer(yyscan_t yyscanner)1921 static 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
yy_get_previous_state(yyscan_t yyscanner)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 */
yy_try_NUL_trans(yy_state_type yy_current_state,yyscan_t yyscanner)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
yyunput(int c,register char * yy_bp,yyscan_t yyscanner)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
yyinput(yyscan_t yyscanner)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 */
parse_events_restart(FILE * input_file,yyscan_t yyscanner)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 */
parse_events__switch_to_buffer(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)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
parse_events__load_buffer_state(yyscan_t yyscanner)2281 static 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 */
parse_events__create_buffer(FILE * file,int size,yyscan_t yyscanner)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 */
parse_events__delete_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)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
2341 extern 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 */
parse_events__init_buffer(YY_BUFFER_STATE b,FILE * file,yyscan_t yyscanner)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 */
parse_events__flush_buffer(YY_BUFFER_STATE b,yyscan_t yyscanner)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 */
parse_events_push_buffer_state(YY_BUFFER_STATE new_buffer,yyscan_t yyscanner)2407 void 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 */
parse_events_pop_buffer_state(yyscan_t yyscanner)2438 void 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 */
parse_events_ensure_buffer_stack(yyscan_t yyscanner)2458 static 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 */
parse_events__scan_buffer(char * base,yy_size_t size,yyscan_t yyscanner)2508 YY_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 */
parse_events__scan_string(yyconst char * yystr,yyscan_t yyscanner)2545 YY_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 */
parse_events__scan_bytes(yyconst char * yybytes,int _yybytes_len,yyscan_t yyscanner)2558 YY_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
yy_push_state(int new_state,yyscan_t yyscanner)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
yy_pop_state(yyscan_t yyscanner)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
yy_top_state(yyscan_t yyscanner)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
yy_fatal_error(yyconst char * msg,yyscan_t yyscanner)2632 static 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 */
parse_events_get_extra(yyscan_t yyscanner)2660 YY_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 */
parse_events_get_lineno(yyscan_t yyscanner)2669 int 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 */
parse_events_get_column(yyscan_t yyscanner)2682 int 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 */
parse_events_get_in(yyscan_t yyscanner)2695 FILE *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 */
parse_events_get_out(yyscan_t yyscanner)2704 FILE *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 */
parse_events_get_leng(yyscan_t yyscanner)2713 int 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
parse_events_get_text(yyscan_t yyscanner)2723 char *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 */
parse_events_set_extra(YY_EXTRA_TYPE user_defined,yyscan_t yyscanner)2733 void 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 */
parse_events_set_lineno(int line_number,yyscan_t yyscanner)2743 void 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 */
parse_events_set_column(int column_no,yyscan_t yyscanner)2758 void 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 */
parse_events_set_in(FILE * in_str,yyscan_t yyscanner)2775 void 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
parse_events_set_out(FILE * out_str,yyscan_t yyscanner)2781 void 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
parse_events_get_debug(yyscan_t yyscanner)2787 int parse_events_get_debug (yyscan_t yyscanner)
2788 {
2789 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2790 return yy_flex_debug;
2791 }
2792
parse_events_set_debug(int bdebug,yyscan_t yyscanner)2793 void 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
parse_events_get_lval(yyscan_t yyscanner)2801 YYSTYPE * parse_events_get_lval (yyscan_t yyscanner)
2802 {
2803 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
2804 return yylval;
2805 }
2806
parse_events_set_lval(YYSTYPE * yylval_param,yyscan_t yyscanner)2807 void 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
parse_events_lex_init(yyscan_t * ptr_yy_globals)2820 int 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
parse_events_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t * ptr_yy_globals)2849 int 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
yy_init_globals(yyscan_t yyscanner)2877 static 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. */
parse_events_lex_destroy(yyscan_t yyscanner)2911 int 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
yy_flex_strncpy(char * s1,yyconst char * s2,int n,yyscan_t yyscanner)2945 static 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
yy_flex_strlen(yyconst char * s,yyscan_t yyscanner)2954 static 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
parse_events_alloc(yy_size_t size,yyscan_t yyscanner)2964 void *parse_events_alloc (yy_size_t size , yyscan_t yyscanner)
2965 {
2966 return (void *) malloc( size );
2967 }
2968
parse_events_realloc(void * ptr,yy_size_t size,yyscan_t yyscanner)2969 void *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
parse_events_free(void * ptr,yyscan_t yyscanner)2981 void 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
parse_events_wrap(void * scanner __maybe_unused)2992 int parse_events_wrap(void *scanner __maybe_unused)
2993 {
2994 return 1;
2995 }
2996
2997