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 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 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 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 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 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 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 */ 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 2056 static yy_state_type yy_get_previous_state (yyscan_t yyscanner) 2057 { 2058 register yy_state_type yy_current_state; 2059 register char *yy_cp; 2060 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2061 2062 yy_current_state = yyg->yy_start; 2063 2064 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp ) 2065 { 2066 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 2067 if ( yy_accept[yy_current_state] ) 2068 { 2069 yyg->yy_last_accepting_state = yy_current_state; 2070 yyg->yy_last_accepting_cpos = yy_cp; 2071 } 2072 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 2073 { 2074 yy_current_state = (int) yy_def[yy_current_state]; 2075 if ( yy_current_state >= 900 ) 2076 yy_c = yy_meta[(unsigned int) yy_c]; 2077 } 2078 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 2079 } 2080 2081 return yy_current_state; 2082 } 2083 2084 /* yy_try_NUL_trans - try to make a transition on the NUL character 2085 * 2086 * synopsis 2087 * next_state = yy_try_NUL_trans( current_state ); 2088 */ 2089 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner) 2090 { 2091 register int yy_is_jam; 2092 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* This var may be unused depending upon options. */ 2093 register char *yy_cp = yyg->yy_c_buf_p; 2094 2095 register YY_CHAR yy_c = 1; 2096 if ( yy_accept[yy_current_state] ) 2097 { 2098 yyg->yy_last_accepting_state = yy_current_state; 2099 yyg->yy_last_accepting_cpos = yy_cp; 2100 } 2101 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 2102 { 2103 yy_current_state = (int) yy_def[yy_current_state]; 2104 if ( yy_current_state >= 900 ) 2105 yy_c = yy_meta[(unsigned int) yy_c]; 2106 } 2107 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 2108 yy_is_jam = (yy_current_state == 899); 2109 2110 return yy_is_jam ? 0 : yy_current_state; 2111 } 2112 2113 static void yyunput (int c, register char * yy_bp , yyscan_t yyscanner) 2114 { 2115 register char *yy_cp; 2116 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2117 2118 yy_cp = yyg->yy_c_buf_p; 2119 2120 /* undo effects of setting up yytext */ 2121 *yy_cp = yyg->yy_hold_char; 2122 2123 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 2124 { /* need to shift things up to make room */ 2125 /* +2 for EOB chars. */ 2126 register int number_to_move = yyg->yy_n_chars + 2; 2127 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ 2128 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; 2129 register char *source = 2130 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; 2131 2132 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 2133 *--dest = *--source; 2134 2135 yy_cp += (int) (dest - source); 2136 yy_bp += (int) (dest - source); 2137 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = 2138 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; 2139 2140 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 2141 YY_FATAL_ERROR( "flex scanner push-back overflow" ); 2142 } 2143 2144 *--yy_cp = (char) c; 2145 2146 yyg->yytext_ptr = yy_bp; 2147 yyg->yy_hold_char = *yy_cp; 2148 yyg->yy_c_buf_p = yy_cp; 2149 } 2150 2151 #ifndef YY_NO_INPUT 2152 #ifdef __cplusplus 2153 static int yyinput (yyscan_t yyscanner) 2154 #else 2155 static int input (yyscan_t yyscanner) 2156 #endif 2157 2158 { 2159 int c; 2160 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2161 2162 *yyg->yy_c_buf_p = yyg->yy_hold_char; 2163 2164 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) 2165 { 2166 /* yy_c_buf_p now points to the character we want to return. 2167 * If this occurs *before* the EOB characters, then it's a 2168 * valid NUL; if not, then we've hit the end of the buffer. 2169 */ 2170 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] ) 2171 /* This was really a NUL. */ 2172 *yyg->yy_c_buf_p = '\0'; 2173 2174 else 2175 { /* need more input */ 2176 int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; 2177 ++yyg->yy_c_buf_p; 2178 2179 switch ( yy_get_next_buffer( yyscanner ) ) 2180 { 2181 case EOB_ACT_LAST_MATCH: 2182 /* This happens because yy_g_n_b() 2183 * sees that we've accumulated a 2184 * token and flags that we need to 2185 * try matching the token before 2186 * proceeding. But for input(), 2187 * there's no matching to consider. 2188 * So convert the EOB_ACT_LAST_MATCH 2189 * to EOB_ACT_END_OF_FILE. 2190 */ 2191 2192 /* Reset buffer status. */ 2193 parse_events_restart(yyin ,yyscanner); 2194 2195 /*FALLTHROUGH*/ 2196 2197 case EOB_ACT_END_OF_FILE: 2198 { 2199 if ( parse_events_wrap(yyscanner ) ) 2200 return EOF; 2201 2202 if ( ! yyg->yy_did_buffer_switch_on_eof ) 2203 YY_NEW_FILE; 2204 #ifdef __cplusplus 2205 return yyinput(yyscanner); 2206 #else 2207 return input(yyscanner); 2208 #endif 2209 } 2210 2211 case EOB_ACT_CONTINUE_SCAN: 2212 yyg->yy_c_buf_p = yyg->yytext_ptr + offset; 2213 break; 2214 } 2215 } 2216 } 2217 2218 c = *(unsigned char *) yyg->yy_c_buf_p; /* cast for 8-bit char's */ 2219 *yyg->yy_c_buf_p = '\0'; /* preserve yytext */ 2220 yyg->yy_hold_char = *++yyg->yy_c_buf_p; 2221 2222 return c; 2223 } 2224 #endif /* ifndef YY_NO_INPUT */ 2225 2226 /** Immediately switch to a different input stream. 2227 * @param input_file A readable stream. 2228 * @param yyscanner The scanner object. 2229 * @note This function does not reset the start condition to @c INITIAL . 2230 */ 2231 void parse_events_restart (FILE * input_file , yyscan_t yyscanner) 2232 { 2233 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2234 2235 if ( ! YY_CURRENT_BUFFER ){ 2236 parse_events_ensure_buffer_stack (yyscanner); 2237 YY_CURRENT_BUFFER_LVALUE = 2238 parse_events__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); 2239 } 2240 2241 parse_events__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner); 2242 parse_events__load_buffer_state(yyscanner ); 2243 } 2244 2245 /** Switch to a different input buffer. 2246 * @param new_buffer The new input buffer. 2247 * @param yyscanner The scanner object. 2248 */ 2249 void parse_events__switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner) 2250 { 2251 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2252 2253 /* TODO. We should be able to replace this entire function body 2254 * with 2255 * parse_events_pop_buffer_state(); 2256 * parse_events_push_buffer_state(new_buffer); 2257 */ 2258 parse_events_ensure_buffer_stack (yyscanner); 2259 if ( YY_CURRENT_BUFFER == new_buffer ) 2260 return; 2261 2262 if ( YY_CURRENT_BUFFER ) 2263 { 2264 /* Flush out information for old buffer. */ 2265 *yyg->yy_c_buf_p = yyg->yy_hold_char; 2266 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p; 2267 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; 2268 } 2269 2270 YY_CURRENT_BUFFER_LVALUE = new_buffer; 2271 parse_events__load_buffer_state(yyscanner ); 2272 2273 /* We don't actually know whether we did this switch during 2274 * EOF (parse_events_wrap()) processing, but the only time this flag 2275 * is looked at is after parse_events_wrap() is called, so it's safe 2276 * to go ahead and always set it. 2277 */ 2278 yyg->yy_did_buffer_switch_on_eof = 1; 2279 } 2280 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 */ 2296 YY_BUFFER_STATE parse_events__create_buffer (FILE * file, int size , yyscan_t yyscanner) 2297 { 2298 YY_BUFFER_STATE b; 2299 2300 b = (YY_BUFFER_STATE) parse_events_alloc(sizeof( struct yy_buffer_state ) ,yyscanner ); 2301 if ( ! b ) 2302 YY_FATAL_ERROR( "out of dynamic memory in parse_events__create_buffer()" ); 2303 2304 b->yy_buf_size = size; 2305 2306 /* yy_ch_buf has to be 2 characters longer than the size given because 2307 * we need to put in 2 end-of-buffer characters. 2308 */ 2309 b->yy_ch_buf = (char *) parse_events_alloc(b->yy_buf_size + 2 ,yyscanner ); 2310 if ( ! b->yy_ch_buf ) 2311 YY_FATAL_ERROR( "out of dynamic memory in parse_events__create_buffer()" ); 2312 2313 b->yy_is_our_buffer = 1; 2314 2315 parse_events__init_buffer(b,file ,yyscanner); 2316 2317 return b; 2318 } 2319 2320 /** Destroy the buffer. 2321 * @param b a buffer created with parse_events__create_buffer() 2322 * @param yyscanner The scanner object. 2323 */ 2324 void parse_events__delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) 2325 { 2326 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2327 2328 if ( ! b ) 2329 return; 2330 2331 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 2332 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 2333 2334 if ( b->yy_is_our_buffer ) 2335 parse_events_free((void *) b->yy_ch_buf ,yyscanner ); 2336 2337 parse_events_free((void *) b ,yyscanner ); 2338 } 2339 2340 #ifndef __cplusplus 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 */ 2348 static void parse_events__init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner) 2349 2350 { 2351 int oerrno = errno; 2352 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2353 2354 parse_events__flush_buffer(b ,yyscanner); 2355 2356 b->yy_input_file = file; 2357 b->yy_fill_buffer = 1; 2358 2359 /* If b is the current buffer, then parse_events__init_buffer was _probably_ 2360 * called from parse_events_restart() or through yy_get_next_buffer. 2361 * In that case, we don't want to reset the lineno or column. 2362 */ 2363 if (b != YY_CURRENT_BUFFER){ 2364 b->yy_bs_lineno = 1; 2365 b->yy_bs_column = 0; 2366 } 2367 2368 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 2369 2370 errno = oerrno; 2371 } 2372 2373 /** Discard all buffered characters. On the next scan, YY_INPUT will be called. 2374 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. 2375 * @param yyscanner The scanner object. 2376 */ 2377 void parse_events__flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner) 2378 { 2379 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2380 if ( ! b ) 2381 return; 2382 2383 b->yy_n_chars = 0; 2384 2385 /* We always need two end-of-buffer characters. The first causes 2386 * a transition to the end-of-buffer state. The second causes 2387 * a jam in that state. 2388 */ 2389 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 2390 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 2391 2392 b->yy_buf_pos = &b->yy_ch_buf[0]; 2393 2394 b->yy_at_bol = 1; 2395 b->yy_buffer_status = YY_BUFFER_NEW; 2396 2397 if ( b == YY_CURRENT_BUFFER ) 2398 parse_events__load_buffer_state(yyscanner ); 2399 } 2400 2401 /** Pushes the new state onto the stack. The new state becomes 2402 * the current state. This function will allocate the stack 2403 * if necessary. 2404 * @param new_buffer The new state. 2405 * @param yyscanner The scanner object. 2406 */ 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 */ 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 */ 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 */ 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 */ 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 */ 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 2588 static void yy_push_state (int new_state , yyscan_t yyscanner) 2589 { 2590 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2591 if ( yyg->yy_start_stack_ptr >= yyg->yy_start_stack_depth ) 2592 { 2593 yy_size_t new_size; 2594 2595 yyg->yy_start_stack_depth += YY_START_STACK_INCR; 2596 new_size = yyg->yy_start_stack_depth * sizeof( int ); 2597 2598 if ( ! yyg->yy_start_stack ) 2599 yyg->yy_start_stack = (int *) parse_events_alloc(new_size ,yyscanner ); 2600 2601 else 2602 yyg->yy_start_stack = (int *) parse_events_realloc((void *) yyg->yy_start_stack,new_size ,yyscanner ); 2603 2604 if ( ! yyg->yy_start_stack ) 2605 YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); 2606 } 2607 2608 yyg->yy_start_stack[yyg->yy_start_stack_ptr++] = YY_START; 2609 2610 BEGIN(new_state); 2611 } 2612 2613 static void yy_pop_state (yyscan_t yyscanner) 2614 { 2615 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2616 if ( --yyg->yy_start_stack_ptr < 0 ) 2617 YY_FATAL_ERROR( "start-condition stack underflow" ); 2618 2619 BEGIN(yyg->yy_start_stack[yyg->yy_start_stack_ptr]); 2620 } 2621 2622 static int yy_top_state (yyscan_t yyscanner) 2623 { 2624 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2625 return yyg->yy_start_stack[yyg->yy_start_stack_ptr - 1]; 2626 } 2627 2628 #ifndef YY_EXIT_FAILURE 2629 #define YY_EXIT_FAILURE 2 2630 #endif 2631 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 */ 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 */ 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 */ 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 */ 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 */ 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 */ 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 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 */ 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 */ 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 */ 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 */ 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 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 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 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 2801 YYSTYPE * parse_events_get_lval (yyscan_t yyscanner) 2802 { 2803 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; 2804 return yylval; 2805 } 2806 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 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 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 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. */ 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 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 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 2964 void *parse_events_alloc (yy_size_t size , yyscan_t yyscanner) 2965 { 2966 return (void *) malloc( size ); 2967 } 2968 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 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 2992 int parse_events_wrap(void *scanner __maybe_unused) 2993 { 2994 return 1; 2995 } 2996 2997