1 #line 2 "route/cls/ematch_grammar.c" 3 #line 4 "route/cls/ematch_grammar.c" 5 #define YY_INT_ALIGNED short int 10 #define YY_FLEX_MAJOR_VERSION 2 11 #define YY_FLEX_MINOR_VERSION 5 12 #define YY_FLEX_SUBMINOR_VERSION 39 13 #if YY_FLEX_SUBMINOR_VERSION > 0 34 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 39 #ifndef __STDC_LIMIT_MACROS 40 #define __STDC_LIMIT_MACROS 1 44 typedef int8_t flex_int8_t;
45 typedef uint8_t flex_uint8_t;
46 typedef int16_t flex_int16_t;
47 typedef uint16_t flex_uint16_t;
48 typedef int32_t flex_int32_t;
49 typedef uint32_t flex_uint32_t;
51 typedef signed char flex_int8_t;
52 typedef short int flex_int16_t;
53 typedef int flex_int32_t;
54 typedef unsigned char flex_uint8_t;
55 typedef unsigned short int flex_uint16_t;
56 typedef unsigned int flex_uint32_t;
60 #define INT8_MIN (-128) 63 #define INT16_MIN (-32767-1) 66 #define INT32_MIN (-2147483647-1) 69 #define INT8_MAX (127) 72 #define INT16_MAX (32767) 75 #define INT32_MAX (2147483647) 78 #define UINT8_MAX (255U) 81 #define UINT16_MAX (65535U) 84 #define UINT32_MAX (4294967295U) 99 #if defined (__STDC__) 107 #define yyconst const 120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) 123 #ifndef YY_TYPEDEF_YY_SCANNER_T 124 #define YY_TYPEDEF_YY_SCANNER_T 125 typedef void* yyscan_t;
130 #define yyin yyg->yyin_r 131 #define yyout yyg->yyout_r 132 #define yyextra yyg->yyextra_r 133 #define yyleng yyg->yyleng_r 134 #define yytext yyg->yytext_r 135 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) 136 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) 137 #define yy_flex_debug yyg->yy_flex_debug_r 143 #define BEGIN yyg->yy_start = 1 + 2 * 149 #define YY_START ((yyg->yy_start - 1) / 2) 150 #define YYSTATE YY_START 153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 156 #define YY_NEW_FILE ematch_restart(yyin ,yyscanner ) 158 #define YY_END_OF_BUFFER_CHAR 0 162 #define YY_BUF_SIZE 16384 167 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) 169 #ifndef YY_TYPEDEF_YY_BUFFER_STATE 170 #define YY_TYPEDEF_YY_BUFFER_STATE 174 #ifndef YY_TYPEDEF_YY_SIZE_T 175 #define YY_TYPEDEF_YY_SIZE_T 176 typedef size_t yy_size_t;
179 #define EOB_ACT_CONTINUE_SCAN 0 180 #define EOB_ACT_END_OF_FILE 1 181 #define EOB_ACT_LAST_MATCH 2 183 #define YY_LESS_LINENO(n) 184 #define YY_LINENO_REWIND_TO(ptr) 191 int yyless_macro_arg = (n); \ 192 YY_LESS_LINENO(yyless_macro_arg);\ 193 *yy_cp = yyg->yy_hold_char; \ 194 YY_RESTORE_YY_MORE_OFFSET \ 195 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ 196 YY_DO_BEFORE_ACTION; \ 200 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) 202 #ifndef YY_STRUCT_YY_BUFFER_STATE 203 #define YY_STRUCT_YY_BUFFER_STATE 214 yy_size_t yy_buf_size;
219 yy_size_t yy_n_chars;
225 int yy_is_our_buffer;
232 int yy_is_interactive;
248 int yy_buffer_status;
250 #define YY_BUFFER_NEW 0 251 #define YY_BUFFER_NORMAL 1 262 #define YY_BUFFER_EOF_PENDING 2 273 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ 274 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ 280 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] 282 void ematch_restart (FILE *input_file ,yyscan_t yyscanner );
283 void ematch__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
284 YY_BUFFER_STATE ematch__create_buffer (FILE *file,
int size ,yyscan_t yyscanner );
285 void ematch__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
286 void ematch__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
287 void ematch_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
288 void ematch_pop_buffer_state (yyscan_t yyscanner );
290 static void ematch_ensure_buffer_stack (yyscan_t yyscanner );
291 static void ematch__load_buffer_state (yyscan_t yyscanner );
292 static void ematch__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
294 #define YY_FLUSH_BUFFER ematch__flush_buffer(YY_CURRENT_BUFFER ,yyscanner) 296 YY_BUFFER_STATE ematch__scan_buffer (
char *base,yy_size_t size ,yyscan_t yyscanner );
297 YY_BUFFER_STATE ematch__scan_string (yyconst
char *yy_str ,yyscan_t yyscanner );
298 YY_BUFFER_STATE ematch__scan_bytes (yyconst
char *bytes,yy_size_t len ,yyscan_t yyscanner );
300 void *ematch_alloc (yy_size_t ,yyscan_t yyscanner );
301 void *ematch_realloc (
void *,yy_size_t ,yyscan_t yyscanner );
302 void ematch_free (
void * ,yyscan_t yyscanner );
304 #define yy_new_buffer ematch__create_buffer 306 #define yy_set_interactive(is_interactive) \ 308 if ( ! YY_CURRENT_BUFFER ){ \ 309 ematch_ensure_buffer_stack (yyscanner); \ 310 YY_CURRENT_BUFFER_LVALUE = \ 311 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ 313 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ 316 #define yy_set_bol(at_bol) \ 318 if ( ! YY_CURRENT_BUFFER ){\ 319 ematch_ensure_buffer_stack (yyscanner); \ 320 YY_CURRENT_BUFFER_LVALUE = \ 321 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ 323 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ 326 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) 328 #define ematch_wrap(yyscanner) 1 329 #define YY_SKIP_YYWRAP 331 typedef unsigned char YY_CHAR;
333 typedef int yy_state_type;
335 #define yytext_ptr yytext_r 337 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
338 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
339 static int yy_get_next_buffer (yyscan_t yyscanner );
340 static void yy_fatal_error (yyconst
char msg[] ,yyscan_t yyscanner );
345 #define YY_DO_BEFORE_ACTION \ 346 yyg->yytext_ptr = yy_bp; \ 347 yyleng = (size_t) (yy_cp - yy_bp); \ 348 yyg->yy_hold_char = *yy_cp; \ 350 yyg->yy_c_buf_p = yy_cp; 352 #define YY_NUM_RULES 91 353 #define YY_END_OF_BUFFER 92 358 flex_int32_t yy_verify;
361 static yyconst flex_int16_t yy_accept[393] =
363 0, 0, 0, 0, 92, 90, 1, 18, 2, 26,
364 23, 24, 30, 5, 5, 12, 8, 10, 90, 90,
365 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
366 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
367 90, 91, 3, 91, 4, 90, 1, 14, 5, 90,
368 28, 90, 29, 90, 90, 90, 40, 90, 90, 90,
369 90, 90, 15, 90, 90, 90, 90, 32, 90, 90,
370 90, 33, 90, 90, 7, 9, 90, 11, 90, 90,
371 90, 90, 90, 90, 90, 90, 90, 16, 3, 6,
372 13, 19, 37, 90, 39, 90, 90, 90, 38, 17,
374 90, 90, 42, 90, 90, 34, 35, 90, 47, 90,
375 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
376 90, 90, 31, 36, 25, 22, 90, 90, 21, 90,
377 90, 90, 90, 90, 54, 90, 90, 48, 90, 90,
378 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
379 90, 90, 90, 90, 90, 90, 86, 90, 27, 90,
380 90, 90, 90, 90, 90, 90, 49, 90, 90, 57,
381 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
382 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
383 90, 90, 90, 90, 90, 90, 90, 90, 53, 51,
385 90, 43, 90, 87, 90, 90, 90, 90, 90, 90,
386 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
387 90, 90, 90, 90, 90, 90, 90, 90, 20, 90,
388 52, 88, 90, 50, 90, 90, 90, 90, 90, 90,
389 90, 76, 90, 90, 80, 90, 90, 90, 90, 90,
390 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
391 66, 90, 90, 55, 90, 90, 90, 90, 90, 90,
392 90, 90, 90, 90, 90, 65, 90, 90, 90, 90,
393 90, 60, 90, 90, 90, 90, 90, 90, 90, 59,
394 90, 90, 41, 44, 45, 46, 56, 90, 74, 90,
396 90, 58, 90, 90, 90, 90, 62, 90, 90, 61,
397 90, 90, 90, 90, 90, 63, 90, 90, 90, 90,
398 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
399 90, 90, 90, 90, 90, 90, 90, 90, 90, 89,
400 72, 90, 90, 90, 70, 81, 82, 90, 90, 90,
401 64, 71, 83, 90, 90, 90, 90, 90, 90, 90,
402 90, 90, 90, 90, 90, 90, 90, 90, 77, 90,
403 67, 75, 90, 68, 90, 90, 78, 90, 90, 84,
404 69, 90, 90, 90, 90, 90, 90, 85, 73, 90,
409 static yyconst flex_int32_t yy_ec[256] =
411 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
412 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
413 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
414 1, 2, 4, 5, 1, 1, 1, 6, 1, 7,
415 8, 1, 9, 1, 1, 1, 1, 10, 11, 12,
416 13, 14, 14, 15, 14, 16, 14, 1, 1, 17,
417 18, 19, 1, 1, 20, 21, 22, 23, 24, 25,
418 1, 26, 27, 1, 28, 29, 30, 31, 32, 33,
419 1, 34, 35, 36, 37, 1, 1, 38, 1, 1,
420 1, 39, 1, 1, 40, 1, 41, 42, 43, 44,
422 45, 46, 47, 48, 49, 1, 50, 51, 52, 53,
423 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
424 64, 1, 1, 65, 1, 1, 1, 1, 1, 1,
425 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
426 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
427 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
428 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
429 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
430 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
431 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
433 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
434 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
435 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
436 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
437 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
441 static yyconst flex_int32_t yy_meta[66] =
443 1, 2, 3, 1, 3, 2, 2, 2, 2, 1,
444 1, 1, 1, 1, 1, 1, 2, 2, 2, 1,
445 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
446 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
447 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
448 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
452 static yyconst flex_int16_t yy_base[396] =
454 0, 0, 63, 64, 537, 0, 68, 0, 538, 530,
455 538, 538, 538, 62, 69, 538, 538, 516, 55, 57,
456 52, 55, 60, 67, 72, 73, 64, 79, 75, 100,
457 115, 65, 83, 475, 102, 117, 118, 89, 121, 131,
458 482, 467, 0, 538, 538, 0, 133, 538, 167, 179,
459 538, 123, 0, 111, 124, 132, 516, 153, 138, 151,
460 169, 171, 0, 172, 170, 178, 171, 0, 129, 515,
461 517, 0, 469, 466, 0, 0, 485, 0, 183, 466,
462 41, 471, 186, 475, 482, 183, 480, 538, 0, 0,
463 0, 0, 0, 184, 0, 187, 189, 207, 0, 0,
465 206, 218, 0, 208, 215, 0, 0, 479, 466, 474,
466 466, 466, 194, 461, 455, 469, 461, 462, 469, 228,
467 456, 455, 0, 0, 0, 0, 226, 213, 0, 217,
468 456, 465, 464, 459, 0, 458, 438, 0, 447, 446,
469 458, 452, 439, 204, 442, 438, 237, 453, 444, 451,
470 434, 249, 236, 426, 199, 445, 0, 220, 0, 227,
471 443, 435, 425, 432, 431, 428, 0, 430, 423, 0,
472 432, 429, 427, 417, 419, 423, 417, 415, 419, 408,
473 208, 409, 152, 424, 408, 414, 406, 421, 423, 408,
474 417, 412, 415, 235, 261, 406, 413, 410, 0, 0,
476 411, 0, 397, 0, 414, 399, 399, 411, 401, 387,
477 400, 400, 406, 391, 385, 257, 400, 384, 389, 381,
478 395, 379, 258, 378, 391, 383, 375, 370, 0, 262,
479 0, 0, 392, 0, 382, 388, 386, 384, 371, 375,
480 384, 0, 379, 382, 0, 368, 365, 360, 365, 369,
481 364, 371, 375, 369, 361, 368, 355, 350, 360, 363,
482 0, 367, 361, 0, 266, 294, 361, 363, 345, 362,
483 350, 336, 342, 341, 354, 0, 345, 349, 332, 341,
484 333, 0, 350, 350, 331, 334, 336, 340, 333, 0,
485 266, 344, 0, 0, 0, 0, 0, 340, 0, 333,
487 336, 0, 336, 320, 328, 332, 0, 335, 330, 0,
488 323, 330, 325, 309, 325, 0, 324, 317, 307, 311,
489 315, 318, 310, 322, 312, 320, 306, 299, 303, 305,
490 314, 314, 300, 299, 297, 299, 304, 303, 296, 0,
491 0, 305, 293, 302, 0, 0, 0, 289, 287, 287,
492 0, 0, 0, 286, 279, 285, 283, 285, 287, 290,
493 281, 265, 275, 277, 273, 270, 266, 261, 0, 268,
494 0, 0, 264, 0, 265, 214, 0, 207, 209, 0,
495 0, 205, 170, 109, 93, 75, 53, 0, 0, 57,
496 0, 538, 325, 329, 333
500 static yyconst flex_int16_t yy_def[396] =
502 392, 1, 393, 393, 392, 394, 392, 394, 392, 392,
503 392, 392, 392, 394, 394, 392, 392, 392, 394, 394,
504 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
505 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
506 394, 392, 395, 392, 392, 394, 392, 392, 394, 394,
507 392, 394, 394, 394, 394, 394, 394, 394, 394, 394,
508 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
509 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
510 394, 394, 394, 394, 394, 394, 394, 392, 395, 50,
511 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
513 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
514 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
515 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
516 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
517 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
518 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
519 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
520 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
521 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
522 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
524 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
525 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
526 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
527 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
528 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
529 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
530 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
531 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
532 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
533 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
535 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
536 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
537 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
538 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
539 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
540 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
541 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
542 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
543 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
544 394, 0, 392, 392, 392
548 static yyconst flex_int16_t yy_nxt[604] =
550 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
551 15, 15, 15, 15, 15, 15, 16, 17, 18, 19,
552 6, 20, 6, 21, 22, 6, 23, 6, 24, 25,
553 26, 27, 28, 6, 29, 30, 31, 6, 6, 6,
554 19, 6, 20, 32, 33, 22, 34, 6, 23, 6,
555 35, 36, 26, 27, 37, 6, 38, 39, 40, 31,
556 41, 6, 6, 6, 42, 44, 44, 45, 45, 47,
557 47, 49, 49, 49, 49, 49, 49, 49, 49, 49,
558 49, 49, 49, 49, 49, 52, 54, 55, 56, 114,
559 53, 59, 57, 58, 115, 60, 61, 63, 64, 50,
561 65, 44, 44, 391, 62, 73, 390, 52, 54, 74,
562 55, 56, 59, 53, 57, 58, 60, 61, 55, 64,
563 63, 66, 65, 67, 50, 70, 62, 71, 58, 82,
564 72, 68, 389, 69, 47, 47, 59, 64, 75, 388,
565 60, 55, 66, 92, 67, 91, 65, 83, 105, 93,
566 58, 84, 66, 68, 67, 77, 69, 79, 64, 387,
567 78, 60, 68, 94, 69, 92, 91, 80, 65, 105,
568 85, 93, 97, 86, 81, 67, 49, 49, 49, 49,
569 49, 49, 49, 96, 68, 94, 98, 69, 90, 90,
570 90, 90, 90, 90, 90, 97, 102, 217, 90, 90,
572 90, 90, 90, 90, 99, 96, 100, 101, 104, 98,
573 103, 218, 386, 123, 124, 103, 125, 97, 102, 90,
574 90, 90, 90, 90, 90, 111, 126, 99, 117, 100,
575 101, 121, 103, 104, 118, 123, 124, 103, 125, 112,
576 97, 127, 128, 129, 136, 130, 172, 126, 159, 158,
577 191, 160, 137, 194, 173, 192, 214, 385, 384, 195,
578 383, 215, 382, 128, 127, 229, 129, 130, 144, 145,
579 158, 159, 146, 147, 160, 148, 194, 176, 149, 150,
580 186, 195, 151, 187, 152, 153, 154, 229, 188, 155,
581 177, 182, 230, 183, 189, 265, 247, 257, 248, 258,
583 184, 293, 185, 294, 295, 296, 318, 249, 381, 380,
584 379, 378, 377, 376, 230, 250, 259, 375, 265, 374,
585 373, 319, 372, 371, 293, 43, 43, 43, 43, 46,
586 370, 369, 46, 89, 89, 368, 367, 366, 365, 364,
587 363, 362, 361, 360, 359, 358, 357, 356, 355, 354,
588 353, 352, 351, 350, 349, 348, 347, 346, 345, 344,
589 343, 342, 341, 340, 339, 338, 337, 336, 335, 334,
590 333, 332, 331, 330, 329, 328, 327, 326, 325, 324,
591 323, 322, 321, 320, 317, 316, 315, 314, 313, 312,
592 311, 310, 309, 308, 307, 306, 305, 304, 303, 302,
594 301, 300, 299, 298, 297, 292, 291, 290, 289, 288,
595 287, 286, 285, 284, 283, 282, 281, 280, 279, 278,
596 277, 276, 275, 274, 273, 272, 271, 270, 269, 268,
597 267, 266, 264, 263, 262, 261, 260, 256, 255, 254,
598 253, 252, 251, 246, 245, 244, 243, 242, 241, 240,
599 239, 238, 237, 236, 235, 234, 233, 232, 231, 228,
600 227, 226, 225, 224, 223, 222, 221, 220, 219, 216,
601 213, 212, 211, 210, 209, 208, 207, 206, 205, 204,
602 203, 202, 201, 200, 199, 198, 197, 196, 193, 190,
603 181, 180, 179, 178, 175, 174, 171, 170, 169, 168,
605 167, 166, 165, 164, 163, 162, 161, 157, 156, 143,
606 142, 141, 140, 139, 138, 135, 134, 133, 132, 131,
607 122, 120, 119, 116, 113, 110, 109, 108, 107, 106,
608 95, 88, 87, 76, 51, 48, 392, 5, 392, 392,
609 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
610 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
611 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
612 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
613 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
614 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
619 static yyconst flex_int16_t yy_chk[604] =
621 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
622 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
623 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
624 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
625 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
626 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
627 1, 1, 1, 1, 1, 3, 4, 3, 4, 7,
628 7, 14, 14, 14, 14, 14, 14, 14, 15, 15,
629 15, 15, 15, 15, 15, 19, 20, 21, 22, 81,
630 19, 25, 23, 24, 81, 25, 26, 27, 28, 14,
632 29, 3, 4, 390, 26, 32, 387, 19, 20, 32,
633 21, 22, 25, 19, 23, 24, 25, 26, 33, 28,
634 27, 30, 29, 30, 14, 31, 26, 31, 35, 38,
635 31, 30, 386, 30, 47, 47, 36, 37, 33, 385,
636 36, 33, 30, 54, 30, 52, 39, 38, 69, 55,
637 35, 38, 40, 30, 40, 35, 30, 36, 37, 384,
638 35, 36, 40, 56, 40, 54, 52, 37, 39, 69,
639 39, 55, 59, 40, 37, 40, 49, 49, 49, 49,
640 49, 49, 49, 58, 40, 56, 60, 40, 50, 50,
641 50, 50, 50, 50, 50, 59, 65, 183, 50, 50,
643 50, 50, 50, 50, 61, 58, 62, 64, 67, 60,
644 66, 183, 383, 94, 96, 86, 97, 79, 65, 50,
645 50, 50, 50, 50, 50, 79, 98, 61, 83, 62,
646 64, 86, 66, 67, 83, 94, 96, 86, 97, 79,
647 79, 101, 102, 104, 113, 105, 144, 98, 128, 127,
648 155, 130, 113, 158, 144, 155, 181, 382, 379, 160,
649 378, 181, 376, 102, 101, 194, 104, 105, 120, 120,
650 127, 128, 120, 120, 130, 120, 158, 147, 120, 120,
651 153, 160, 120, 153, 120, 120, 120, 194, 153, 120,
652 147, 152, 195, 152, 153, 230, 216, 223, 216, 223,
654 152, 265, 152, 266, 266, 266, 291, 216, 375, 373,
655 370, 368, 367, 366, 195, 216, 223, 365, 230, 364,
656 363, 291, 362, 361, 265, 393, 393, 393, 393, 394,
657 360, 359, 394, 395, 395, 358, 357, 356, 355, 354,
658 350, 349, 348, 344, 343, 342, 339, 338, 337, 336,
659 335, 334, 333, 332, 331, 330, 329, 328, 327, 326,
660 325, 324, 323, 322, 321, 320, 319, 318, 317, 315,
661 314, 313, 312, 311, 309, 308, 306, 305, 304, 303,
662 301, 300, 298, 292, 289, 288, 287, 286, 285, 284,
663 283, 281, 280, 279, 278, 277, 275, 274, 273, 272,
665 271, 270, 269, 268, 267, 263, 262, 260, 259, 258,
666 257, 256, 255, 254, 253, 252, 251, 250, 249, 248,
667 247, 246, 244, 243, 241, 240, 239, 238, 237, 236,
668 235, 233, 228, 227, 226, 225, 224, 222, 221, 220,
669 219, 218, 217, 215, 214, 213, 212, 211, 210, 209,
670 208, 207, 206, 205, 203, 201, 198, 197, 196, 193,
671 192, 191, 190, 189, 188, 187, 186, 185, 184, 182,
672 180, 179, 178, 177, 176, 175, 174, 173, 172, 171,
673 169, 168, 166, 165, 164, 163, 162, 161, 156, 154,
674 151, 150, 149, 148, 146, 145, 143, 142, 141, 140,
676 139, 137, 136, 134, 133, 132, 131, 122, 121, 119,
677 118, 117, 116, 115, 114, 112, 111, 110, 109, 108,
678 87, 85, 84, 82, 80, 77, 74, 73, 71, 70,
679 57, 42, 41, 34, 18, 10, 5, 392, 392, 392,
680 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
681 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
682 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
683 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
684 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
685 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
693 #define REJECT reject_used_but_not_detected 694 #define yymore() yymore_used_but_not_detected 695 #define YY_MORE_ADJ 0 696 #define YY_RESTORE_YY_MORE_OFFSET 697 #line 1 "route/cls/ematch_grammar.l" 708 #line 13 "route/cls/ematch_grammar.l" 709 #include <netlink-private/netlink.h> 710 #include <netlink-private/tc.h> 711 #include <netlink/netlink.h> 712 #include <netlink/route/cls/ematch.h> 713 #include <netlink/route/cls/ematch/cmp.h> 714 #include "ematch_syntax.h" 715 #define YY_NO_INPUT 1 717 #line 718 "route/cls/ematch_grammar.c" 722 #ifndef YY_NO_UNISTD_H 730 #ifndef YY_EXTRA_TYPE 731 #define YY_EXTRA_TYPE void * 739 YY_EXTRA_TYPE yyextra_r;
742 FILE *yyin_r, *yyout_r;
747 yy_size_t yy_n_chars;
752 int yy_did_buffer_switch_on_eof;
753 int yy_start_stack_ptr;
754 int yy_start_stack_depth;
756 yy_state_type yy_last_accepting_state;
757 char* yy_last_accepting_cpos;
770 static int yy_init_globals (yyscan_t yyscanner );
774 # define yylval yyg->yylval_r 776 int ematch_lex_init (yyscan_t* scanner);
778 int ematch_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
783 int ematch_lex_destroy (yyscan_t yyscanner );
785 int ematch_get_debug (yyscan_t yyscanner );
787 void ematch_set_debug (
int debug_flag ,yyscan_t yyscanner );
789 YY_EXTRA_TYPE ematch_get_extra (yyscan_t yyscanner );
791 void ematch_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
793 FILE *ematch_get_in (yyscan_t yyscanner );
795 void ematch_set_in (FILE * in_str ,yyscan_t yyscanner );
797 FILE *ematch_get_out (yyscan_t yyscanner );
799 void ematch_set_out (FILE * out_str ,yyscan_t yyscanner );
801 yy_size_t ematch_get_leng (yyscan_t yyscanner );
803 char *ematch_get_text (yyscan_t yyscanner );
805 int ematch_get_lineno (yyscan_t yyscanner );
807 void ematch_set_lineno (
int line_number ,yyscan_t yyscanner );
809 int ematch_get_column (yyscan_t yyscanner );
811 void ematch_set_column (
int column_no ,yyscan_t yyscanner );
813 YYSTYPE * ematch_get_lval (yyscan_t yyscanner );
815 void ematch_set_lval (
YYSTYPE * yylval_param ,yyscan_t yyscanner );
821 #ifndef YY_SKIP_YYWRAP 823 extern "C" int ematch_wrap (yyscan_t yyscanner );
825 extern int ematch_wrap (yyscan_t yyscanner );
830 static void yy_flex_strncpy (
char *,yyconst
char *,
int ,yyscan_t yyscanner);
833 #ifdef YY_NEED_STRLEN 834 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner);
840 static int yyinput (yyscan_t yyscanner );
842 static int input (yyscan_t yyscanner );
848 #ifndef YY_READ_BUF_SIZE 849 #define YY_READ_BUF_SIZE 8192 857 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) 864 #define YY_INPUT(buf,result,max_size) \ 865 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ 869 for ( n = 0; n < max_size && \ 870 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ 873 buf[n++] = (char) c; \ 874 if ( c == EOF && ferror( yyin ) ) \ 875 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 881 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ 883 if( errno != EINTR) \ 885 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 901 #define yyterminate() return YY_NULL 905 #ifndef YY_START_STACK_INCR 906 #define YY_START_STACK_INCR 25 910 #ifndef YY_FATAL_ERROR 911 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) 920 #define YY_DECL_IS_OURS 1 922 extern int ematch_lex \
923 (
YYSTYPE * yylval_param ,yyscan_t yyscanner);
925 #define YY_DECL int ematch_lex \ 926 (YYSTYPE * yylval_param , yyscan_t yyscanner) 932 #ifndef YY_USER_ACTION 933 #define YY_USER_ACTION 938 #define YY_BREAK break; 941 #define YY_RULE_SETUP \ 948 register yy_state_type yy_current_state;
949 register char *yy_cp, *yy_bp;
953 yylval = yylval_param;
963 if ( ! yyg->yy_start )
972 if ( ! YY_CURRENT_BUFFER ) {
973 ematch_ensure_buffer_stack (yyscanner);
974 YY_CURRENT_BUFFER_LVALUE =
975 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
978 ematch__load_buffer_state(yyscanner );
982 #line 32 "route/cls/ematch_grammar.l" 985 #line 986 "route/cls/ematch_grammar.c" 989 yy_cp = yyg->yy_c_buf_p;
992 *yy_cp = yyg->yy_hold_char;
999 yy_current_state = yyg->yy_start;
1003 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1004 if ( yy_accept[yy_current_state] )
1006 yyg->yy_last_accepting_state = yy_current_state;
1007 yyg->yy_last_accepting_cpos = yy_cp;
1009 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1011 yy_current_state = (int) yy_def[yy_current_state];
1012 if ( yy_current_state >= 393 )
1013 yy_c = yy_meta[(
unsigned int) yy_c];
1015 yy_current_state = yy_nxt[yy_base[yy_current_state] + (
unsigned int) yy_c];
1018 while ( yy_base[yy_current_state] != 538 );
1021 yy_act = yy_accept[yy_current_state];
1024 yy_cp = yyg->yy_last_accepting_cpos;
1025 yy_current_state = yyg->yy_last_accepting_state;
1026 yy_act = yy_accept[yy_current_state];
1029 YY_DO_BEFORE_ACTION;
1037 *yy_cp = yyg->yy_hold_char;
1038 yy_cp = yyg->yy_last_accepting_cpos;
1039 yy_current_state = yyg->yy_last_accepting_state;
1040 goto yy_find_action;
1045 #line 34 "route/cls/ematch_grammar.l" 1050 #line 36 "route/cls/ematch_grammar.l" 1052 NL_DBG(4,
"Beginning of quote\n");
1054 if (!(yylval->q.data = calloc(1, yylval->q.len)))
1057 yylval->q.index = 0;
1063 #line 46 "route/cls/ematch_grammar.l" 1065 memcpy(yylval->q.data + yylval->q.index, yytext,
1067 yylval->q.index += strlen(yytext);
1072 #line 52 "route/cls/ematch_grammar.l" 1079 #line 59 "route/cls/ematch_grammar.l" 1082 #line 59 "route/cls/ematch_grammar.l" 1084 yylval->i = strtoul(yytext, NULL, 0);
1089 #line 65 "route/cls/ematch_grammar.l" 1092 #line 65 "route/cls/ematch_grammar.l" 1096 #line 67 "route/cls/ematch_grammar.l" 1099 #line 67 "route/cls/ematch_grammar.l" 1103 #line 69 "route/cls/ematch_grammar.l" 1106 #line 69 "route/cls/ematch_grammar.l" 1110 #line 72 "route/cls/ematch_grammar.l" 1113 #line 72 "route/cls/ematch_grammar.l" 1114 { yylval->i = TCF_EM_REL_AND;
return LOGIC; }
1117 #line 74 "route/cls/ematch_grammar.l" 1120 #line 74 "route/cls/ematch_grammar.l" 1121 { yylval->i = TCF_EM_REL_OR;
return LOGIC; }
1124 #line 76 "route/cls/ematch_grammar.l" 1127 #line 76 "route/cls/ematch_grammar.l" 1132 #line 78 "route/cls/ematch_grammar.l" 1133 { yylval->i = TCF_EM_CMP;
return EMATCH_CMP; }
1137 #line 79 "route/cls/ematch_grammar.l" 1138 { yylval->i = TCF_EM_NBYTE;
return EMATCH_NBYTE; }
1142 #line 80 "route/cls/ematch_grammar.l" 1143 { yylval->i = TCF_EM_TEXT;
return EMATCH_TEXT; }
1147 #line 81 "route/cls/ematch_grammar.l" 1148 { yylval->i = TCF_EM_META;
return EMATCH_META; }
1152 #line 83 "route/cls/ematch_grammar.l" 1157 #line 84 "route/cls/ematch_grammar.l" 1161 #line 86 "route/cls/ematch_grammar.l" 1164 #line 86 "route/cls/ematch_grammar.l" 1168 #line 88 "route/cls/ematch_grammar.l" 1171 #line 88 "route/cls/ematch_grammar.l" 1176 #line 89 "route/cls/ematch_grammar.l" 1181 #line 90 "route/cls/ematch_grammar.l" 1186 #line 91 "route/cls/ematch_grammar.l" 1191 #line 92 "route/cls/ematch_grammar.l" 1196 #line 94 "route/cls/ematch_grammar.l" 1197 { yylval->i = TCF_EM_ALIGN_U8;
return ALIGN; }
1201 #line 95 "route/cls/ematch_grammar.l" 1202 { yylval->i = TCF_EM_ALIGN_U16;
return ALIGN; }
1206 #line 96 "route/cls/ematch_grammar.l" 1207 { yylval->i = TCF_EM_ALIGN_U32;
return ALIGN; }
1210 #line 99 "route/cls/ematch_grammar.l" 1213 #line 99 "route/cls/ematch_grammar.l" 1214 { yylval->i = TCF_LAYER_LINK;
return LAYER; }
1217 #line 101 "route/cls/ematch_grammar.l" 1219 #line 102 "route/cls/ematch_grammar.l" 1222 #line 102 "route/cls/ematch_grammar.l" 1223 { yylval->i = TCF_LAYER_NETWORK;
return LAYER; }
1226 #line 104 "route/cls/ematch_grammar.l" 1229 #line 104 "route/cls/ematch_grammar.l" 1230 { yylval->i = TCF_LAYER_TRANSPORT;
return LAYER; }
1234 #line 106 "route/cls/ematch_grammar.l" 1239 #line 107 "route/cls/ematch_grammar.l" 1240 return META_LOADAVG_0;
1244 #line 108 "route/cls/ematch_grammar.l" 1245 return META_LOADAVG_1;
1249 #line 109 "route/cls/ematch_grammar.l" 1250 return META_LOADAVG_2;
1254 #line 110 "route/cls/ematch_grammar.l" 1259 #line 111 "route/cls/ematch_grammar.l" 1264 #line 112 "route/cls/ematch_grammar.l" 1269 #line 113 "route/cls/ematch_grammar.l" 1270 return META_PKTTYPE;
1274 #line 114 "route/cls/ematch_grammar.l" 1279 #line 115 "route/cls/ematch_grammar.l" 1280 return META_DATALEN;
1284 #line 116 "route/cls/ematch_grammar.l" 1289 #line 117 "route/cls/ematch_grammar.l" 1294 #line 118 "route/cls/ematch_grammar.l" 1295 return META_TCINDEX;
1299 #line 119 "route/cls/ematch_grammar.l" 1300 return META_RTCLASSID;
1304 #line 120 "route/cls/ematch_grammar.l" 1309 #line 121 "route/cls/ematch_grammar.l" 1310 return META_SK_FAMILY;
1314 #line 122 "route/cls/ematch_grammar.l" 1315 return META_SK_STATE;
1319 #line 123 "route/cls/ematch_grammar.l" 1320 return META_SK_REUSE;
1324 #line 124 "route/cls/ematch_grammar.l" 1325 return META_SK_REFCNT;
1329 #line 125 "route/cls/ematch_grammar.l" 1330 return META_SK_RCVBUF;
1334 #line 126 "route/cls/ematch_grammar.l" 1335 return META_SK_SNDBUF;
1339 #line 127 "route/cls/ematch_grammar.l" 1340 return META_SK_SHUTDOWN;
1344 #line 128 "route/cls/ematch_grammar.l" 1345 return META_SK_PROTO;
1349 #line 129 "route/cls/ematch_grammar.l" 1350 return META_SK_TYPE;
1354 #line 130 "route/cls/ematch_grammar.l" 1355 return META_SK_RMEM_ALLOC;
1359 #line 131 "route/cls/ematch_grammar.l" 1360 return META_SK_WMEM_ALLOC;
1364 #line 132 "route/cls/ematch_grammar.l" 1365 return META_SK_WMEM_QUEUED;
1369 #line 133 "route/cls/ematch_grammar.l" 1370 return META_SK_RCV_QLEN;
1374 #line 134 "route/cls/ematch_grammar.l" 1375 return META_SK_SND_QLEN;
1379 #line 135 "route/cls/ematch_grammar.l" 1380 return META_SK_ERR_QLEN;
1384 #line 136 "route/cls/ematch_grammar.l" 1385 return META_SK_FORWARD_ALLOCS;
1389 #line 137 "route/cls/ematch_grammar.l" 1390 return META_SK_ALLOCS;
1394 #line 138 "route/cls/ematch_grammar.l" 1395 return META_SK_ROUTE_CAPS;
1399 #line 139 "route/cls/ematch_grammar.l" 1400 return META_SK_HASH;
1404 #line 140 "route/cls/ematch_grammar.l" 1405 return META_SK_LINGERTIME;
1409 #line 141 "route/cls/ematch_grammar.l" 1410 return META_SK_ACK_BACKLOG;
1414 #line 142 "route/cls/ematch_grammar.l" 1415 return META_SK_MAX_ACK_BACKLOG;
1419 #line 143 "route/cls/ematch_grammar.l" 1420 return META_SK_PRIO;
1424 #line 144 "route/cls/ematch_grammar.l" 1425 return META_SK_RCVLOWAT;
1429 #line 145 "route/cls/ematch_grammar.l" 1430 return META_SK_RCVTIMEO;
1434 #line 146 "route/cls/ematch_grammar.l" 1435 return META_SK_SNDTIMEO;
1439 #line 147 "route/cls/ematch_grammar.l" 1440 return META_SK_SENDMSG_OFF;
1444 #line 148 "route/cls/ematch_grammar.l" 1445 return META_SK_WRITE_PENDING;
1449 #line 149 "route/cls/ematch_grammar.l" 1454 #line 150 "route/cls/ematch_grammar.l" 1459 #line 152 "route/cls/ematch_grammar.l" 1460 return META_DEVNAME;
1464 #line 153 "route/cls/ematch_grammar.l" 1465 return META_SK_BOUND_IF;
1469 #line 156 "route/cls/ematch_grammar.l" 1471 yylval->s = strdup(yytext);
1472 if (yylval->s == NULL)
1474 NL_DBG(4,
"lex STR=%s\n", yylval->s);
1480 #line 163 "route/cls/ematch_grammar.l" 1483 #line 1484 "route/cls/ematch_grammar.c" 1484 case YY_STATE_EOF(INITIAL):
1485 case YY_STATE_EOF(QUOTE):
1488 case YY_END_OF_BUFFER:
1491 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
1494 *yy_cp = yyg->yy_hold_char;
1495 YY_RESTORE_YY_MORE_OFFSET
1497 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1508 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1509 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1510 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1520 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1522 yy_state_type yy_next_state;
1524 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
1526 yy_current_state = yy_get_previous_state( yyscanner );
1537 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
1539 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1541 if ( yy_next_state )
1544 yy_cp = ++yyg->yy_c_buf_p;
1545 yy_current_state = yy_next_state;
1551 yy_cp = yyg->yy_c_buf_p;
1552 goto yy_find_action;
1556 else switch ( yy_get_next_buffer( yyscanner ) )
1558 case EOB_ACT_END_OF_FILE:
1560 yyg->yy_did_buffer_switch_on_eof = 0;
1562 if ( ematch_wrap(yyscanner ) )
1573 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
1575 yy_act = YY_STATE_EOF(YY_START);
1581 if ( ! yyg->yy_did_buffer_switch_on_eof )
1587 case EOB_ACT_CONTINUE_SCAN:
1589 yyg->yytext_ptr + yy_amount_of_matched_text;
1591 yy_current_state = yy_get_previous_state( yyscanner );
1593 yy_cp = yyg->yy_c_buf_p;
1594 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1597 case EOB_ACT_LAST_MATCH:
1599 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
1601 yy_current_state = yy_get_previous_state( yyscanner );
1603 yy_cp = yyg->yy_c_buf_p;
1604 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1605 goto yy_find_action;
1612 "fatal flex scanner internal error--no action found" );
1625 static int yy_get_next_buffer (yyscan_t yyscanner)
1628 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1629 register char *source = yyg->yytext_ptr;
1630 register int number_to_move, i;
1633 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
1635 "fatal flex scanner internal error--end of buffer missed" );
1637 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1639 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
1644 return EOB_ACT_END_OF_FILE;
1652 return EOB_ACT_LAST_MATCH;
1659 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
1661 for ( i = 0; i < number_to_move; ++i )
1662 *(dest++) = *(source++);
1664 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1668 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
1672 yy_size_t num_to_read =
1673 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1675 while ( num_to_read <= 0 )
1679 YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1681 int yy_c_buf_p_offset =
1682 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
1684 if ( b->yy_is_our_buffer )
1686 yy_size_t new_size = b->yy_buf_size * 2;
1688 if ( new_size <= 0 )
1689 b->yy_buf_size += b->yy_buf_size / 8;
1691 b->yy_buf_size *= 2;
1693 b->yy_ch_buf = (
char *)
1695 ematch_realloc((
void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
1701 if ( ! b->yy_ch_buf )
1703 "fatal error - scanner input buffer overflow" );
1705 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1707 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1712 if ( num_to_read > YY_READ_BUF_SIZE )
1713 num_to_read = YY_READ_BUF_SIZE;
1716 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1717 yyg->yy_n_chars, num_to_read );
1719 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1722 if ( yyg->yy_n_chars == 0 )
1724 if ( number_to_move == YY_MORE_ADJ )
1726 ret_val = EOB_ACT_END_OF_FILE;
1727 ematch_restart(yyin ,yyscanner);
1732 ret_val = EOB_ACT_LAST_MATCH;
1733 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1734 YY_BUFFER_EOF_PENDING;
1739 ret_val = EOB_ACT_CONTINUE_SCAN;
1741 if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1743 yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
1744 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (
char *) ematch_realloc((
void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
1745 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1746 YY_FATAL_ERROR(
"out of dynamic memory in yy_get_next_buffer()" );
1749 yyg->yy_n_chars += number_to_move;
1750 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1751 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1753 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1760 static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
1762 register yy_state_type yy_current_state;
1763 register char *yy_cp;
1766 yy_current_state = yyg->yy_start;
1768 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
1770 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1771 if ( yy_accept[yy_current_state] )
1773 yyg->yy_last_accepting_state = yy_current_state;
1774 yyg->yy_last_accepting_cpos = yy_cp;
1776 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1778 yy_current_state = (int) yy_def[yy_current_state];
1779 if ( yy_current_state >= 393 )
1780 yy_c = yy_meta[(
unsigned int) yy_c];
1782 yy_current_state = yy_nxt[yy_base[yy_current_state] + (
unsigned int) yy_c];
1785 return yy_current_state;
1793 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
1795 register int yy_is_jam;
1797 register char *yy_cp = yyg->yy_c_buf_p;
1799 register YY_CHAR yy_c = 1;
1800 if ( yy_accept[yy_current_state] )
1802 yyg->yy_last_accepting_state = yy_current_state;
1803 yyg->yy_last_accepting_cpos = yy_cp;
1805 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1807 yy_current_state = (int) yy_def[yy_current_state];
1808 if ( yy_current_state >= 393 )
1809 yy_c = yy_meta[(
unsigned int) yy_c];
1811 yy_current_state = yy_nxt[yy_base[yy_current_state] + (
unsigned int) yy_c];
1812 yy_is_jam = (yy_current_state == 392);
1815 return yy_is_jam ? 0 : yy_current_state;
1820 static int yyinput (yyscan_t yyscanner)
1822 static int input (yyscan_t yyscanner)
1829 *yyg->yy_c_buf_p = yyg->yy_hold_char;
1831 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
1837 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1839 *yyg->yy_c_buf_p =
'\0';
1843 yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
1846 switch ( yy_get_next_buffer( yyscanner ) )
1848 case EOB_ACT_LAST_MATCH:
1860 ematch_restart(yyin ,yyscanner);
1864 case EOB_ACT_END_OF_FILE:
1866 if ( ematch_wrap(yyscanner ) )
1869 if ( ! yyg->yy_did_buffer_switch_on_eof )
1872 return yyinput(yyscanner);
1874 return input(yyscanner);
1878 case EOB_ACT_CONTINUE_SCAN:
1879 yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
1885 c = *(
unsigned char *) yyg->yy_c_buf_p;
1886 *yyg->yy_c_buf_p =
'\0';
1887 yyg->yy_hold_char = *++yyg->yy_c_buf_p;
1898 void ematch_restart (FILE * input_file , yyscan_t yyscanner)
1902 if ( ! YY_CURRENT_BUFFER ){
1903 ematch_ensure_buffer_stack (yyscanner);
1904 YY_CURRENT_BUFFER_LVALUE =
1905 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1908 ematch__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
1909 ematch__load_buffer_state(yyscanner );
1916 void ematch__switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
1925 ematch_ensure_buffer_stack (yyscanner);
1926 if ( YY_CURRENT_BUFFER == new_buffer )
1929 if ( YY_CURRENT_BUFFER )
1932 *yyg->yy_c_buf_p = yyg->yy_hold_char;
1933 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
1934 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1937 YY_CURRENT_BUFFER_LVALUE = new_buffer;
1938 ematch__load_buffer_state(yyscanner );
1945 yyg->yy_did_buffer_switch_on_eof = 1;
1948 static void ematch__load_buffer_state (yyscan_t yyscanner)
1951 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1952 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1953 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1954 yyg->yy_hold_char = *yyg->yy_c_buf_p;
1963 YY_BUFFER_STATE ematch__create_buffer (FILE * file,
int size , yyscan_t yyscanner)
1967 b = (YY_BUFFER_STATE) ematch_alloc(
sizeof(
struct yy_buffer_state ) ,yyscanner );
1969 YY_FATAL_ERROR(
"out of dynamic memory in ematch__create_buffer()" );
1971 b->yy_buf_size = size;
1976 b->yy_ch_buf = (
char *) ematch_alloc(b->yy_buf_size + 2 ,yyscanner );
1977 if ( ! b->yy_ch_buf )
1978 YY_FATAL_ERROR(
"out of dynamic memory in ematch__create_buffer()" );
1980 b->yy_is_our_buffer = 1;
1982 ematch__init_buffer(b,file ,yyscanner);
1991 void ematch__delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
1998 if ( b == YY_CURRENT_BUFFER )
1999 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2001 if ( b->yy_is_our_buffer )
2002 ematch_free((
void *) b->yy_ch_buf ,yyscanner );
2004 ematch_free((
void *) b ,yyscanner );
2011 static void ematch__init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
2017 ematch__flush_buffer(b ,yyscanner);
2019 b->yy_input_file = file;
2020 b->yy_fill_buffer = 1;
2026 if (b != YY_CURRENT_BUFFER){
2031 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2040 void ematch__flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2052 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2053 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2055 b->yy_buf_pos = &b->yy_ch_buf[0];
2058 b->yy_buffer_status = YY_BUFFER_NEW;
2060 if ( b == YY_CURRENT_BUFFER )
2061 ematch__load_buffer_state(yyscanner );
2070 void ematch_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2073 if (new_buffer == NULL)
2076 ematch_ensure_buffer_stack(yyscanner);
2079 if ( YY_CURRENT_BUFFER )
2082 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2083 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2084 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2088 if (YY_CURRENT_BUFFER)
2090 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2093 ematch__load_buffer_state(yyscanner );
2094 yyg->yy_did_buffer_switch_on_eof = 1;
2101 void ematch_pop_buffer_state (yyscan_t yyscanner)
2104 if (!YY_CURRENT_BUFFER)
2107 ematch__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
2108 YY_CURRENT_BUFFER_LVALUE = NULL;
2112 if (YY_CURRENT_BUFFER) {
2113 ematch__load_buffer_state(yyscanner );
2114 yyg->yy_did_buffer_switch_on_eof = 1;
2121 static void ematch_ensure_buffer_stack (yyscan_t yyscanner)
2123 yy_size_t num_to_alloc;
2137 YY_FATAL_ERROR(
"out of dynamic memory in ematch_ensure_buffer_stack()" );
2157 YY_FATAL_ERROR(
"out of dynamic memory in ematch_ensure_buffer_stack()" );
2171 YY_BUFFER_STATE ematch__scan_buffer (
char * base, yy_size_t size , yyscan_t yyscanner)
2176 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2177 base[size-1] != YY_END_OF_BUFFER_CHAR )
2181 b = (YY_BUFFER_STATE) ematch_alloc(
sizeof(
struct yy_buffer_state ) ,yyscanner );
2183 YY_FATAL_ERROR(
"out of dynamic memory in ematch__scan_buffer()" );
2185 b->yy_buf_size = size - 2;
2186 b->yy_buf_pos = b->yy_ch_buf = base;
2187 b->yy_is_our_buffer = 0;
2188 b->yy_input_file = 0;
2189 b->yy_n_chars = b->yy_buf_size;
2190 b->yy_is_interactive = 0;
2192 b->yy_fill_buffer = 0;
2193 b->yy_buffer_status = YY_BUFFER_NEW;
2195 ematch__switch_to_buffer(b ,yyscanner );
2208 YY_BUFFER_STATE ematch__scan_string (yyconst
char * yystr , yyscan_t yyscanner)
2211 return ematch__scan_bytes(yystr,strlen(yystr) ,yyscanner);
2221 YY_BUFFER_STATE ematch__scan_bytes (yyconst
char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner)
2229 n = _yybytes_len + 2;
2230 buf = (
char *) ematch_alloc(n ,yyscanner );
2232 YY_FATAL_ERROR(
"out of dynamic memory in ematch__scan_bytes()" );
2234 for ( i = 0; i < _yybytes_len; ++i )
2235 buf[i] = yybytes[i];
2237 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2239 b = ematch__scan_buffer(buf,n ,yyscanner);
2241 YY_FATAL_ERROR(
"bad buffer in ematch__scan_bytes()" );
2246 b->yy_is_our_buffer = 1;
2251 #ifndef YY_EXIT_FAILURE 2252 #define YY_EXIT_FAILURE 2 2255 static void yy_fatal_error (yyconst
char* msg , yyscan_t yyscanner)
2257 (void) fprintf( stderr,
"%s\n", msg );
2258 exit( YY_EXIT_FAILURE );
2268 int yyless_macro_arg = (n); \ 2269 YY_LESS_LINENO(yyless_macro_arg);\ 2270 yytext[yyleng] = yyg->yy_hold_char; \ 2271 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ 2272 yyg->yy_hold_char = *yyg->yy_c_buf_p; \ 2273 *yyg->yy_c_buf_p = '\0'; \ 2274 yyleng = yyless_macro_arg; \ 2283 YY_EXTRA_TYPE ematch_get_extra (yyscan_t yyscanner)
2292 int ematch_get_lineno (yyscan_t yyscanner)
2296 if (! YY_CURRENT_BUFFER)
2305 int ematch_get_column (yyscan_t yyscanner)
2309 if (! YY_CURRENT_BUFFER)
2318 FILE *ematch_get_in (yyscan_t yyscanner)
2327 FILE *ematch_get_out (yyscan_t yyscanner)
2336 yy_size_t ematch_get_leng (yyscan_t yyscanner)
2346 char *ematch_get_text (yyscan_t yyscanner)
2356 void ematch_set_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
2359 yyextra = user_defined ;
2366 void ematch_set_lineno (
int line_number , yyscan_t yyscanner)
2371 if (! YY_CURRENT_BUFFER )
2372 YY_FATAL_ERROR(
"ematch_set_lineno called with no buffer" );
2374 yylineno = line_number;
2381 void ematch_set_column (
int column_no , yyscan_t yyscanner)
2386 if (! YY_CURRENT_BUFFER )
2387 YY_FATAL_ERROR(
"ematch_set_column called with no buffer" );
2389 yycolumn = column_no;
2398 void ematch_set_in (FILE * in_str , yyscan_t yyscanner)
2404 void ematch_set_out (FILE * out_str , yyscan_t yyscanner)
2410 int ematch_get_debug (yyscan_t yyscanner)
2413 return yy_flex_debug;
2416 void ematch_set_debug (
int bdebug , yyscan_t yyscanner)
2419 yy_flex_debug = bdebug ;
2424 YYSTYPE * ematch_get_lval (yyscan_t yyscanner)
2430 void ematch_set_lval (
YYSTYPE * yylval_param , yyscan_t yyscanner)
2433 yylval = yylval_param;
2443 int ematch_lex_init(yyscan_t* ptr_yy_globals)
2446 if (ptr_yy_globals == NULL){
2451 *ptr_yy_globals = (yyscan_t) ematch_alloc (
sizeof(
struct yyguts_t ), NULL );
2453 if (*ptr_yy_globals == NULL){
2459 memset(*ptr_yy_globals,0x00,
sizeof(
struct yyguts_t));
2461 return yy_init_globals ( *ptr_yy_globals );
2472 int ematch_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
2477 ematch_set_extra (yy_user_defined, &dummy_yyguts);
2479 if (ptr_yy_globals == NULL){
2484 *ptr_yy_globals = (yyscan_t) ematch_alloc (
sizeof(
struct yyguts_t ), &dummy_yyguts );
2486 if (*ptr_yy_globals == NULL){
2493 memset(*ptr_yy_globals,0x00,
sizeof(
struct yyguts_t));
2495 ematch_set_extra (yy_user_defined, *ptr_yy_globals);
2497 return yy_init_globals ( *ptr_yy_globals );
2500 static int yy_init_globals (yyscan_t yyscanner)
2510 yyg->yy_c_buf_p = (
char *) 0;
2514 yyg->yy_start_stack_ptr = 0;
2515 yyg->yy_start_stack_depth = 0;
2516 yyg->yy_start_stack = NULL;
2534 int ematch_lex_destroy (yyscan_t yyscanner)
2539 while(YY_CURRENT_BUFFER){
2540 ematch__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
2541 YY_CURRENT_BUFFER_LVALUE = NULL;
2542 ematch_pop_buffer_state(yyscanner);
2550 ematch_free(yyg->yy_start_stack ,yyscanner );
2551 yyg->yy_start_stack = NULL;
2555 yy_init_globals( yyscanner);
2558 ematch_free ( yyscanner , yyscanner );
2568 static void yy_flex_strncpy (
char* s1, yyconst
char * s2,
int n , yyscan_t yyscanner)
2571 for ( i = 0; i < n; ++i )
2576 #ifdef YY_NEED_STRLEN 2577 static int yy_flex_strlen (yyconst
char * s , yyscan_t yyscanner)
2580 for ( n = 0; s[n]; ++n )
2587 void *ematch_alloc (yy_size_t size , yyscan_t yyscanner)
2589 return (
void *) malloc( size );
2592 void *ematch_realloc (
void * ptr, yy_size_t size , yyscan_t yyscanner)
2601 return (
void *) realloc( (
char *) ptr, size );
2604 void ematch_free (
void * ptr , yyscan_t yyscanner)
2606 free( (
char *) ptr );
2609 #define YYTABLES_NAME "yytables" 2611 #line 163 "route/cls/ematch_grammar.l"
size_t yy_buffer_stack_top
index of top of stack.
int yy_bs_lineno
The line count.
size_t yy_buffer_stack_max
capacity of stack.
int yy_bs_column
The column count.
YY_BUFFER_STATE * yy_buffer_stack
Stack as an array.