1 #line 2 "lib/route/cls/ematch_grammar.c" 3 #line 4 "lib/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 6 12 #define YY_FLEX_SUBMINOR_VERSION 1 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) 94 #if defined(__GNUC__) && __GNUC__ >= 3 95 #define yynoreturn __attribute__((__noreturn__)) 108 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) 111 #ifndef YY_TYPEDEF_YY_SCANNER_T 112 #define YY_TYPEDEF_YY_SCANNER_T 113 typedef void* yyscan_t;
118 #define yyin yyg->yyin_r 119 #define yyout yyg->yyout_r 120 #define yyextra yyg->yyextra_r 121 #define yyleng yyg->yyleng_r 122 #define yytext yyg->yytext_r 123 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno) 124 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column) 125 #define yy_flex_debug yyg->yy_flex_debug_r 131 #define BEGIN yyg->yy_start = 1 + 2 * 137 #define YY_START ((yyg->yy_start - 1) / 2) 138 #define YYSTATE YY_START 141 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 144 #define YY_NEW_FILE ematch_restart(yyin ,yyscanner ) 146 #define YY_END_OF_BUFFER_CHAR 0 155 #define YY_BUF_SIZE 32768 157 #define YY_BUF_SIZE 16384 163 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) 165 #ifndef YY_TYPEDEF_YY_BUFFER_STATE 166 #define YY_TYPEDEF_YY_BUFFER_STATE 170 #ifndef YY_TYPEDEF_YY_SIZE_T 171 #define YY_TYPEDEF_YY_SIZE_T 172 typedef size_t yy_size_t;
175 #define EOB_ACT_CONTINUE_SCAN 0 176 #define EOB_ACT_END_OF_FILE 1 177 #define EOB_ACT_LAST_MATCH 2 179 #define YY_LESS_LINENO(n) 180 #define YY_LINENO_REWIND_TO(ptr) 187 yy_size_t yyless_macro_arg = (n); \ 188 YY_LESS_LINENO(yyless_macro_arg);\ 189 *yy_cp = yyg->yy_hold_char; \ 190 YY_RESTORE_YY_MORE_OFFSET \ 191 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ 192 YY_DO_BEFORE_ACTION; \ 196 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) 198 #ifndef YY_STRUCT_YY_BUFFER_STATE 199 #define YY_STRUCT_YY_BUFFER_STATE 221 int yy_is_our_buffer;
228 int yy_is_interactive;
244 int yy_buffer_status;
246 #define YY_BUFFER_NEW 0 247 #define YY_BUFFER_NORMAL 1 258 #define YY_BUFFER_EOF_PENDING 2 269 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \ 270 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \ 276 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] 278 void ematch_restart (FILE *input_file ,yyscan_t yyscanner );
279 void ematch__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
280 YY_BUFFER_STATE ematch__create_buffer (FILE *file,
int size ,yyscan_t yyscanner );
281 void ematch__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
282 void ematch__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
283 void ematch_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
284 void ematch_pop_buffer_state (yyscan_t yyscanner );
286 static void ematch_ensure_buffer_stack (yyscan_t yyscanner );
287 static void ematch__load_buffer_state (yyscan_t yyscanner );
288 static void ematch__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
290 #define YY_FLUSH_BUFFER ematch__flush_buffer(YY_CURRENT_BUFFER ,yyscanner) 292 YY_BUFFER_STATE ematch__scan_buffer (
char *base,yy_size_t size ,yyscan_t yyscanner );
293 YY_BUFFER_STATE ematch__scan_string (yyconst
char *yy_str ,yyscan_t yyscanner );
294 YY_BUFFER_STATE ematch__scan_bytes (yyconst
char *bytes,
int len ,yyscan_t yyscanner );
296 void *ematch_alloc (yy_size_t ,yyscan_t yyscanner );
297 void *ematch_realloc (
void *,yy_size_t ,yyscan_t yyscanner );
298 void ematch_free (
void * ,yyscan_t yyscanner );
300 #define yy_new_buffer ematch__create_buffer 302 #define yy_set_interactive(is_interactive) \ 304 if ( ! YY_CURRENT_BUFFER ){ \ 305 ematch_ensure_buffer_stack (yyscanner); \ 306 YY_CURRENT_BUFFER_LVALUE = \ 307 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ 309 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ 312 #define yy_set_bol(at_bol) \ 314 if ( ! YY_CURRENT_BUFFER ){\ 315 ematch_ensure_buffer_stack (yyscanner); \ 316 YY_CURRENT_BUFFER_LVALUE = \ 317 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \ 319 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ 322 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) 324 #define ematch_wrap(yyscanner) (1) 325 #define YY_SKIP_YYWRAP 327 typedef unsigned char YY_CHAR;
329 typedef int yy_state_type;
331 #define yytext_ptr yytext_r 333 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
334 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
335 static int yy_get_next_buffer (yyscan_t yyscanner );
336 static void yynoreturn yy_fatal_error (yyconst
char* msg ,yyscan_t yyscanner );
341 #define YY_DO_BEFORE_ACTION \ 342 yyg->yytext_ptr = yy_bp; \ 343 yyleng = (int) (yy_cp - yy_bp); \ 344 yyg->yy_hold_char = *yy_cp; \ 346 yyg->yy_c_buf_p = yy_cp; 348 #define YY_NUM_RULES 91 349 #define YY_END_OF_BUFFER 92 354 flex_int32_t yy_verify;
357 static yyconst flex_int16_t yy_accept[393] =
359 0, 0, 0, 0, 92, 90, 1, 18, 2, 26,
360 23, 24, 30, 5, 5, 12, 8, 10, 90, 90,
361 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
362 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
363 90, 91, 3, 91, 4, 90, 1, 14, 5, 90,
364 28, 90, 29, 90, 90, 90, 40, 90, 90, 90,
365 90, 90, 15, 90, 90, 90, 90, 32, 90, 90,
366 90, 33, 90, 90, 7, 9, 90, 11, 90, 90,
367 90, 90, 90, 90, 90, 90, 90, 16, 3, 6,
368 13, 19, 37, 90, 39, 90, 90, 90, 38, 17,
370 90, 90, 42, 90, 90, 34, 35, 90, 47, 90,
371 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
372 90, 90, 31, 36, 25, 22, 90, 90, 21, 90,
373 90, 90, 90, 90, 54, 90, 90, 48, 90, 90,
374 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
375 90, 90, 90, 90, 90, 90, 86, 90, 27, 90,
376 90, 90, 90, 90, 90, 90, 49, 90, 90, 57,
377 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
378 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
379 90, 90, 90, 90, 90, 90, 90, 90, 53, 51,
381 90, 43, 90, 87, 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, 20, 90,
384 52, 88, 90, 50, 90, 90, 90, 90, 90, 90,
385 90, 76, 90, 90, 80, 90, 90, 90, 90, 90,
386 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
387 66, 90, 90, 55, 90, 90, 90, 90, 90, 90,
388 90, 90, 90, 90, 90, 65, 90, 90, 90, 90,
389 90, 60, 90, 90, 90, 90, 90, 90, 90, 59,
390 90, 90, 41, 44, 45, 46, 56, 90, 74, 90,
392 90, 58, 90, 90, 90, 90, 62, 90, 90, 61,
393 90, 90, 90, 90, 90, 63, 90, 90, 90, 90,
394 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
395 90, 90, 90, 90, 90, 90, 90, 90, 90, 89,
396 72, 90, 90, 90, 70, 81, 82, 90, 90, 90,
397 64, 71, 83, 90, 90, 90, 90, 90, 90, 90,
398 90, 90, 90, 90, 90, 90, 90, 90, 77, 90,
399 67, 75, 90, 68, 90, 90, 78, 90, 90, 84,
400 69, 90, 90, 90, 90, 90, 90, 85, 73, 90,
405 static yyconst YY_CHAR yy_ec[256] =
407 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
408 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
409 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
410 1, 2, 4, 5, 1, 1, 1, 6, 1, 7,
411 8, 1, 9, 1, 1, 1, 1, 10, 11, 12,
412 13, 14, 14, 15, 14, 16, 14, 1, 1, 17,
413 18, 19, 1, 1, 20, 21, 22, 23, 24, 25,
414 1, 26, 27, 1, 28, 29, 30, 31, 32, 33,
415 1, 34, 35, 36, 37, 1, 1, 38, 1, 1,
416 1, 39, 1, 1, 40, 1, 41, 42, 43, 44,
418 45, 46, 47, 48, 49, 1, 50, 51, 52, 53,
419 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
420 64, 1, 1, 65, 1, 1, 1, 1, 1, 1,
421 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
422 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
423 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
424 1, 1, 1, 1, 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,
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,
432 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
433 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
437 static yyconst YY_CHAR yy_meta[66] =
439 1, 2, 3, 1, 3, 2, 2, 2, 2, 1,
440 1, 1, 1, 1, 1, 1, 2, 2, 2, 1,
441 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
442 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
443 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
444 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
448 static yyconst flex_uint16_t yy_base[396] =
450 0, 0, 63, 64, 537, 0, 68, 0, 538, 530,
451 538, 538, 538, 62, 69, 538, 538, 516, 55, 57,
452 52, 55, 60, 67, 72, 73, 64, 79, 75, 100,
453 115, 65, 83, 475, 102, 117, 118, 89, 121, 131,
454 482, 467, 0, 538, 538, 0, 133, 538, 167, 179,
455 538, 123, 0, 111, 124, 132, 516, 153, 138, 151,
456 169, 171, 0, 172, 170, 178, 171, 0, 129, 515,
457 517, 0, 469, 466, 0, 0, 485, 0, 183, 466,
458 41, 471, 186, 475, 482, 183, 480, 538, 0, 0,
459 0, 0, 0, 184, 0, 187, 189, 207, 0, 0,
461 206, 218, 0, 208, 215, 0, 0, 479, 466, 474,
462 466, 466, 194, 461, 455, 469, 461, 462, 469, 228,
463 456, 455, 0, 0, 0, 0, 226, 213, 0, 217,
464 456, 465, 464, 459, 0, 458, 438, 0, 447, 446,
465 458, 452, 439, 204, 442, 438, 237, 453, 444, 451,
466 434, 249, 236, 426, 199, 445, 0, 220, 0, 227,
467 443, 435, 425, 432, 431, 428, 0, 430, 423, 0,
468 432, 429, 427, 417, 419, 423, 417, 415, 419, 408,
469 208, 409, 152, 424, 408, 414, 406, 421, 423, 408,
470 417, 412, 415, 235, 261, 406, 413, 410, 0, 0,
472 411, 0, 397, 0, 414, 399, 399, 411, 401, 387,
473 400, 400, 406, 391, 385, 257, 400, 384, 389, 381,
474 395, 379, 258, 378, 391, 383, 375, 370, 0, 262,
475 0, 0, 392, 0, 382, 388, 386, 384, 371, 375,
476 384, 0, 379, 382, 0, 368, 365, 360, 365, 369,
477 364, 371, 375, 369, 361, 368, 355, 350, 360, 363,
478 0, 367, 361, 0, 266, 294, 361, 363, 345, 362,
479 350, 336, 342, 341, 354, 0, 345, 349, 332, 341,
480 333, 0, 350, 350, 331, 334, 336, 340, 333, 0,
481 266, 344, 0, 0, 0, 0, 0, 340, 0, 333,
483 336, 0, 336, 320, 328, 332, 0, 335, 330, 0,
484 323, 330, 325, 309, 325, 0, 324, 317, 307, 311,
485 315, 318, 310, 322, 312, 320, 306, 299, 303, 305,
486 314, 314, 300, 299, 297, 299, 304, 303, 296, 0,
487 0, 305, 293, 302, 0, 0, 0, 289, 287, 287,
488 0, 0, 0, 286, 279, 285, 283, 285, 287, 290,
489 281, 265, 275, 277, 273, 270, 266, 261, 0, 268,
490 0, 0, 264, 0, 265, 214, 0, 207, 209, 0,
491 0, 205, 170, 109, 93, 75, 53, 0, 0, 57,
492 0, 538, 325, 329, 333
496 static yyconst flex_int16_t yy_def[396] =
498 392, 1, 393, 393, 392, 394, 392, 394, 392, 392,
499 392, 392, 392, 394, 394, 392, 392, 392, 394, 394,
500 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
501 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
502 394, 392, 395, 392, 392, 394, 392, 392, 394, 394,
503 392, 394, 394, 394, 394, 394, 394, 394, 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, 394, 394, 394, 394, 394, 394, 392, 395, 50,
507 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, 394, 394, 394,
511 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
512 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,
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,
523 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,
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,
534 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, 0, 392, 392, 392
544 static yyconst flex_uint16_t yy_nxt[604] =
546 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
547 15, 15, 15, 15, 15, 15, 16, 17, 18, 19,
548 6, 20, 6, 21, 22, 6, 23, 6, 24, 25,
549 26, 27, 28, 6, 29, 30, 31, 6, 6, 6,
550 19, 6, 20, 32, 33, 22, 34, 6, 23, 6,
551 35, 36, 26, 27, 37, 6, 38, 39, 40, 31,
552 41, 6, 6, 6, 42, 44, 44, 45, 45, 47,
553 47, 49, 49, 49, 49, 49, 49, 49, 49, 49,
554 49, 49, 49, 49, 49, 52, 54, 55, 56, 114,
555 53, 59, 57, 58, 115, 60, 61, 63, 64, 50,
557 65, 44, 44, 391, 62, 73, 390, 52, 54, 74,
558 55, 56, 59, 53, 57, 58, 60, 61, 55, 64,
559 63, 66, 65, 67, 50, 70, 62, 71, 58, 82,
560 72, 68, 389, 69, 47, 47, 59, 64, 75, 388,
561 60, 55, 66, 92, 67, 91, 65, 83, 105, 93,
562 58, 84, 66, 68, 67, 77, 69, 79, 64, 387,
563 78, 60, 68, 94, 69, 92, 91, 80, 65, 105,
564 85, 93, 97, 86, 81, 67, 49, 49, 49, 49,
565 49, 49, 49, 96, 68, 94, 98, 69, 90, 90,
566 90, 90, 90, 90, 90, 97, 102, 217, 90, 90,
568 90, 90, 90, 90, 99, 96, 100, 101, 104, 98,
569 103, 218, 386, 123, 124, 103, 125, 97, 102, 90,
570 90, 90, 90, 90, 90, 111, 126, 99, 117, 100,
571 101, 121, 103, 104, 118, 123, 124, 103, 125, 112,
572 97, 127, 128, 129, 136, 130, 172, 126, 159, 158,
573 191, 160, 137, 194, 173, 192, 214, 385, 384, 195,
574 383, 215, 382, 128, 127, 229, 129, 130, 144, 145,
575 158, 159, 146, 147, 160, 148, 194, 176, 149, 150,
576 186, 195, 151, 187, 152, 153, 154, 229, 188, 155,
577 177, 182, 230, 183, 189, 265, 247, 257, 248, 258,
579 184, 293, 185, 294, 295, 296, 318, 249, 381, 380,
580 379, 378, 377, 376, 230, 250, 259, 375, 265, 374,
581 373, 319, 372, 371, 293, 43, 43, 43, 43, 46,
582 370, 369, 46, 89, 89, 368, 367, 366, 365, 364,
583 363, 362, 361, 360, 359, 358, 357, 356, 355, 354,
584 353, 352, 351, 350, 349, 348, 347, 346, 345, 344,
585 343, 342, 341, 340, 339, 338, 337, 336, 335, 334,
586 333, 332, 331, 330, 329, 328, 327, 326, 325, 324,
587 323, 322, 321, 320, 317, 316, 315, 314, 313, 312,
588 311, 310, 309, 308, 307, 306, 305, 304, 303, 302,
590 301, 300, 299, 298, 297, 292, 291, 290, 289, 288,
591 287, 286, 285, 284, 283, 282, 281, 280, 279, 278,
592 277, 276, 275, 274, 273, 272, 271, 270, 269, 268,
593 267, 266, 264, 263, 262, 261, 260, 256, 255, 254,
594 253, 252, 251, 246, 245, 244, 243, 242, 241, 240,
595 239, 238, 237, 236, 235, 234, 233, 232, 231, 228,
596 227, 226, 225, 224, 223, 222, 221, 220, 219, 216,
597 213, 212, 211, 210, 209, 208, 207, 206, 205, 204,
598 203, 202, 201, 200, 199, 198, 197, 196, 193, 190,
599 181, 180, 179, 178, 175, 174, 171, 170, 169, 168,
601 167, 166, 165, 164, 163, 162, 161, 157, 156, 143,
602 142, 141, 140, 139, 138, 135, 134, 133, 132, 131,
603 122, 120, 119, 116, 113, 110, 109, 108, 107, 106,
604 95, 88, 87, 76, 51, 48, 392, 5, 392, 392,
605 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
606 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
607 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
608 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
609 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
610 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
615 static yyconst flex_int16_t yy_chk[604] =
617 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
618 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
619 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
620 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
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, 3, 4, 3, 4, 7,
624 7, 14, 14, 14, 14, 14, 14, 14, 15, 15,
625 15, 15, 15, 15, 15, 19, 20, 21, 22, 81,
626 19, 25, 23, 24, 81, 25, 26, 27, 28, 14,
628 29, 3, 4, 390, 26, 32, 387, 19, 20, 32,
629 21, 22, 25, 19, 23, 24, 25, 26, 33, 28,
630 27, 30, 29, 30, 14, 31, 26, 31, 35, 38,
631 31, 30, 386, 30, 47, 47, 36, 37, 33, 385,
632 36, 33, 30, 54, 30, 52, 39, 38, 69, 55,
633 35, 38, 40, 30, 40, 35, 30, 36, 37, 384,
634 35, 36, 40, 56, 40, 54, 52, 37, 39, 69,
635 39, 55, 59, 40, 37, 40, 49, 49, 49, 49,
636 49, 49, 49, 58, 40, 56, 60, 40, 50, 50,
637 50, 50, 50, 50, 50, 59, 65, 183, 50, 50,
639 50, 50, 50, 50, 61, 58, 62, 64, 67, 60,
640 66, 183, 383, 94, 96, 86, 97, 79, 65, 50,
641 50, 50, 50, 50, 50, 79, 98, 61, 83, 62,
642 64, 86, 66, 67, 83, 94, 96, 86, 97, 79,
643 79, 101, 102, 104, 113, 105, 144, 98, 128, 127,
644 155, 130, 113, 158, 144, 155, 181, 382, 379, 160,
645 378, 181, 376, 102, 101, 194, 104, 105, 120, 120,
646 127, 128, 120, 120, 130, 120, 158, 147, 120, 120,
647 153, 160, 120, 153, 120, 120, 120, 194, 153, 120,
648 147, 152, 195, 152, 153, 230, 216, 223, 216, 223,
650 152, 265, 152, 266, 266, 266, 291, 216, 375, 373,
651 370, 368, 367, 366, 195, 216, 223, 365, 230, 364,
652 363, 291, 362, 361, 265, 393, 393, 393, 393, 394,
653 360, 359, 394, 395, 395, 358, 357, 356, 355, 354,
654 350, 349, 348, 344, 343, 342, 339, 338, 337, 336,
655 335, 334, 333, 332, 331, 330, 329, 328, 327, 326,
656 325, 324, 323, 322, 321, 320, 319, 318, 317, 315,
657 314, 313, 312, 311, 309, 308, 306, 305, 304, 303,
658 301, 300, 298, 292, 289, 288, 287, 286, 285, 284,
659 283, 281, 280, 279, 278, 277, 275, 274, 273, 272,
661 271, 270, 269, 268, 267, 263, 262, 260, 259, 258,
662 257, 256, 255, 254, 253, 252, 251, 250, 249, 248,
663 247, 246, 244, 243, 241, 240, 239, 238, 237, 236,
664 235, 233, 228, 227, 226, 225, 224, 222, 221, 220,
665 219, 218, 217, 215, 214, 213, 212, 211, 210, 209,
666 208, 207, 206, 205, 203, 201, 198, 197, 196, 193,
667 192, 191, 190, 189, 188, 187, 186, 185, 184, 182,
668 180, 179, 178, 177, 176, 175, 174, 173, 172, 171,
669 169, 168, 166, 165, 164, 163, 162, 161, 156, 154,
670 151, 150, 149, 148, 146, 145, 143, 142, 141, 140,
672 139, 137, 136, 134, 133, 132, 131, 122, 121, 119,
673 118, 117, 116, 115, 114, 112, 111, 110, 109, 108,
674 87, 85, 84, 82, 80, 77, 74, 73, 71, 70,
675 57, 42, 41, 34, 18, 10, 5, 392, 392, 392,
676 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
677 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
678 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
679 392, 392, 392, 392, 392, 392, 392, 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,
689 #define REJECT reject_used_but_not_detected 690 #define yymore() yymore_used_but_not_detected 691 #define YY_MORE_ADJ 0 692 #define YY_RESTORE_YY_MORE_OFFSET 693 #line 1 "lib/route/cls/ematch_grammar.l" 704 #line 13 "lib/route/cls/ematch_grammar.l" 705 #include <netlink-private/netlink.h> 706 #include <netlink-private/tc.h> 707 #include <netlink/netlink.h> 708 #include <netlink/route/cls/ematch.h> 709 #include <netlink/route/cls/ematch/cmp.h> 710 #include <linux/tc_ematch/tc_em_cmp.h> 711 #include "ematch_syntax.h" 713 int ematch_get_column(yyscan_t);
714 void ematch_set_column(
int, yyscan_t);
715 #define YY_NO_INPUT 1 717 #line 718 "lib/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;
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 int 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 );
834 static void yy_flex_strncpy (
char *,yyconst
char *,
int ,yyscan_t yyscanner);
837 #ifdef YY_NEED_STRLEN 838 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner);
844 static int yyinput (yyscan_t yyscanner );
846 static int input (yyscan_t yyscanner );
852 #ifndef YY_READ_BUF_SIZE 855 #define YY_READ_BUF_SIZE 16384 857 #define YY_READ_BUF_SIZE 8192 866 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) 873 #define YY_INPUT(buf,result,max_size) \ 874 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ 878 for ( n = 0; n < max_size && \ 879 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ 882 buf[n++] = (char) c; \ 883 if ( c == EOF && ferror( yyin ) ) \ 884 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 890 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ 892 if( errno != EINTR) \ 894 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 910 #define yyterminate() return YY_NULL 914 #ifndef YY_START_STACK_INCR 915 #define YY_START_STACK_INCR 25 919 #ifndef YY_FATAL_ERROR 920 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner) 929 #define YY_DECL_IS_OURS 1 931 extern int ematch_lex \
932 (
YYSTYPE * yylval_param ,yyscan_t yyscanner);
934 #define YY_DECL int ematch_lex \ 935 (YYSTYPE * yylval_param , yyscan_t yyscanner) 941 #ifndef YY_USER_ACTION 942 #define YY_USER_ACTION 947 #define YY_BREAK break; 950 #define YY_RULE_SETUP \ 957 yy_state_type yy_current_state;
962 yylval = yylval_param;
972 if ( ! yyg->yy_start )
981 if ( ! YY_CURRENT_BUFFER ) {
982 ematch_ensure_buffer_stack (yyscanner);
983 YY_CURRENT_BUFFER_LVALUE =
984 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
987 ematch__load_buffer_state(yyscanner );
991 #line 36 "lib/route/cls/ematch_grammar.l" 994 #line 995 "lib/route/cls/ematch_grammar.c" 998 yy_cp = yyg->yy_c_buf_p;
1001 *yy_cp = yyg->yy_hold_char;
1008 yy_current_state = yyg->yy_start;
1012 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1013 if ( yy_accept[yy_current_state] )
1015 yyg->yy_last_accepting_state = yy_current_state;
1016 yyg->yy_last_accepting_cpos = yy_cp;
1018 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1020 yy_current_state = (int) yy_def[yy_current_state];
1021 if ( yy_current_state >= 393 )
1022 yy_c = yy_meta[(
unsigned int) yy_c];
1024 yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
1027 while ( yy_base[yy_current_state] != 538 );
1030 yy_act = yy_accept[yy_current_state];
1033 yy_cp = yyg->yy_last_accepting_cpos;
1034 yy_current_state = yyg->yy_last_accepting_state;
1035 yy_act = yy_accept[yy_current_state];
1038 YY_DO_BEFORE_ACTION;
1046 *yy_cp = yyg->yy_hold_char;
1047 yy_cp = yyg->yy_last_accepting_cpos;
1048 yy_current_state = yyg->yy_last_accepting_state;
1049 goto yy_find_action;
1054 #line 38 "lib/route/cls/ematch_grammar.l" 1059 #line 40 "lib/route/cls/ematch_grammar.l" 1061 NL_DBG(4,
"Beginning of quote\n");
1063 if (!(yylval->q.data = calloc(1, yylval->q.len)))
1066 yylval->q.index = 0;
1072 #line 50 "lib/route/cls/ematch_grammar.l" 1074 memcpy(yylval->q.data + yylval->q.index, yytext,
1076 yylval->q.index += strlen(yytext);
1081 #line 56 "lib/route/cls/ematch_grammar.l" 1088 #line 63 "lib/route/cls/ematch_grammar.l" 1091 #line 63 "lib/route/cls/ematch_grammar.l" 1093 yylval->i = strtoul(yytext, NULL, 0);
1098 #line 69 "lib/route/cls/ematch_grammar.l" 1101 #line 69 "lib/route/cls/ematch_grammar.l" 1105 #line 71 "lib/route/cls/ematch_grammar.l" 1108 #line 71 "lib/route/cls/ematch_grammar.l" 1112 #line 73 "lib/route/cls/ematch_grammar.l" 1115 #line 73 "lib/route/cls/ematch_grammar.l" 1119 #line 76 "lib/route/cls/ematch_grammar.l" 1122 #line 76 "lib/route/cls/ematch_grammar.l" 1123 { yylval->i = TCF_EM_REL_AND;
return LOGIC; }
1126 #line 78 "lib/route/cls/ematch_grammar.l" 1129 #line 78 "lib/route/cls/ematch_grammar.l" 1130 { yylval->i = TCF_EM_REL_OR;
return LOGIC; }
1133 #line 80 "lib/route/cls/ematch_grammar.l" 1136 #line 80 "lib/route/cls/ematch_grammar.l" 1141 #line 82 "lib/route/cls/ematch_grammar.l" 1142 { yylval->i = TCF_EM_CMP;
return EMATCH_CMP; }
1146 #line 83 "lib/route/cls/ematch_grammar.l" 1147 { yylval->i = TCF_EM_NBYTE;
return EMATCH_NBYTE; }
1151 #line 84 "lib/route/cls/ematch_grammar.l" 1152 { yylval->i = TCF_EM_TEXT;
return EMATCH_TEXT; }
1156 #line 85 "lib/route/cls/ematch_grammar.l" 1157 { yylval->i = TCF_EM_META;
return EMATCH_META; }
1161 #line 87 "lib/route/cls/ematch_grammar.l" 1166 #line 88 "lib/route/cls/ematch_grammar.l" 1170 #line 90 "lib/route/cls/ematch_grammar.l" 1173 #line 90 "lib/route/cls/ematch_grammar.l" 1177 #line 92 "lib/route/cls/ematch_grammar.l" 1180 #line 92 "lib/route/cls/ematch_grammar.l" 1185 #line 93 "lib/route/cls/ematch_grammar.l" 1190 #line 94 "lib/route/cls/ematch_grammar.l" 1195 #line 95 "lib/route/cls/ematch_grammar.l" 1200 #line 96 "lib/route/cls/ematch_grammar.l" 1205 #line 98 "lib/route/cls/ematch_grammar.l" 1206 { yylval->i = TCF_EM_ALIGN_U8;
return ALIGN; }
1210 #line 99 "lib/route/cls/ematch_grammar.l" 1211 { yylval->i = TCF_EM_ALIGN_U16;
return ALIGN; }
1215 #line 100 "lib/route/cls/ematch_grammar.l" 1216 { yylval->i = TCF_EM_ALIGN_U32;
return ALIGN; }
1219 #line 103 "lib/route/cls/ematch_grammar.l" 1222 #line 103 "lib/route/cls/ematch_grammar.l" 1223 { yylval->i = TCF_LAYER_LINK;
return LAYER; }
1226 #line 105 "lib/route/cls/ematch_grammar.l" 1228 #line 106 "lib/route/cls/ematch_grammar.l" 1231 #line 106 "lib/route/cls/ematch_grammar.l" 1232 { yylval->i = TCF_LAYER_NETWORK;
return LAYER; }
1235 #line 108 "lib/route/cls/ematch_grammar.l" 1238 #line 108 "lib/route/cls/ematch_grammar.l" 1239 { yylval->i = TCF_LAYER_TRANSPORT;
return LAYER; }
1243 #line 110 "lib/route/cls/ematch_grammar.l" 1248 #line 111 "lib/route/cls/ematch_grammar.l" 1249 return META_LOADAVG_0;
1253 #line 112 "lib/route/cls/ematch_grammar.l" 1254 return META_LOADAVG_1;
1258 #line 113 "lib/route/cls/ematch_grammar.l" 1259 return META_LOADAVG_2;
1263 #line 114 "lib/route/cls/ematch_grammar.l" 1268 #line 115 "lib/route/cls/ematch_grammar.l" 1273 #line 116 "lib/route/cls/ematch_grammar.l" 1278 #line 117 "lib/route/cls/ematch_grammar.l" 1279 return META_PKTTYPE;
1283 #line 118 "lib/route/cls/ematch_grammar.l" 1288 #line 119 "lib/route/cls/ematch_grammar.l" 1289 return META_DATALEN;
1293 #line 120 "lib/route/cls/ematch_grammar.l" 1298 #line 121 "lib/route/cls/ematch_grammar.l" 1303 #line 122 "lib/route/cls/ematch_grammar.l" 1304 return META_TCINDEX;
1308 #line 123 "lib/route/cls/ematch_grammar.l" 1309 return META_RTCLASSID;
1313 #line 124 "lib/route/cls/ematch_grammar.l" 1318 #line 125 "lib/route/cls/ematch_grammar.l" 1319 return META_SK_FAMILY;
1323 #line 126 "lib/route/cls/ematch_grammar.l" 1324 return META_SK_STATE;
1328 #line 127 "lib/route/cls/ematch_grammar.l" 1329 return META_SK_REUSE;
1333 #line 128 "lib/route/cls/ematch_grammar.l" 1334 return META_SK_REFCNT;
1338 #line 129 "lib/route/cls/ematch_grammar.l" 1339 return META_SK_RCVBUF;
1343 #line 130 "lib/route/cls/ematch_grammar.l" 1344 return META_SK_SNDBUF;
1348 #line 131 "lib/route/cls/ematch_grammar.l" 1349 return META_SK_SHUTDOWN;
1353 #line 132 "lib/route/cls/ematch_grammar.l" 1354 return META_SK_PROTO;
1358 #line 133 "lib/route/cls/ematch_grammar.l" 1359 return META_SK_TYPE;
1363 #line 134 "lib/route/cls/ematch_grammar.l" 1364 return META_SK_RMEM_ALLOC;
1368 #line 135 "lib/route/cls/ematch_grammar.l" 1369 return META_SK_WMEM_ALLOC;
1373 #line 136 "lib/route/cls/ematch_grammar.l" 1374 return META_SK_WMEM_QUEUED;
1378 #line 137 "lib/route/cls/ematch_grammar.l" 1379 return META_SK_RCV_QLEN;
1383 #line 138 "lib/route/cls/ematch_grammar.l" 1384 return META_SK_SND_QLEN;
1388 #line 139 "lib/route/cls/ematch_grammar.l" 1389 return META_SK_ERR_QLEN;
1393 #line 140 "lib/route/cls/ematch_grammar.l" 1394 return META_SK_FORWARD_ALLOCS;
1398 #line 141 "lib/route/cls/ematch_grammar.l" 1399 return META_SK_ALLOCS;
1403 #line 142 "lib/route/cls/ematch_grammar.l" 1404 return META_SK_ROUTE_CAPS;
1408 #line 143 "lib/route/cls/ematch_grammar.l" 1409 return META_SK_HASH;
1413 #line 144 "lib/route/cls/ematch_grammar.l" 1414 return META_SK_LINGERTIME;
1418 #line 145 "lib/route/cls/ematch_grammar.l" 1419 return META_SK_ACK_BACKLOG;
1423 #line 146 "lib/route/cls/ematch_grammar.l" 1424 return META_SK_MAX_ACK_BACKLOG;
1428 #line 147 "lib/route/cls/ematch_grammar.l" 1429 return META_SK_PRIO;
1433 #line 148 "lib/route/cls/ematch_grammar.l" 1434 return META_SK_RCVLOWAT;
1438 #line 149 "lib/route/cls/ematch_grammar.l" 1439 return META_SK_RCVTIMEO;
1443 #line 150 "lib/route/cls/ematch_grammar.l" 1444 return META_SK_SNDTIMEO;
1448 #line 151 "lib/route/cls/ematch_grammar.l" 1449 return META_SK_SENDMSG_OFF;
1453 #line 152 "lib/route/cls/ematch_grammar.l" 1454 return META_SK_WRITE_PENDING;
1458 #line 153 "lib/route/cls/ematch_grammar.l" 1463 #line 154 "lib/route/cls/ematch_grammar.l" 1468 #line 156 "lib/route/cls/ematch_grammar.l" 1469 return META_DEVNAME;
1473 #line 157 "lib/route/cls/ematch_grammar.l" 1474 return META_SK_BOUND_IF;
1478 #line 160 "lib/route/cls/ematch_grammar.l" 1480 yylval->s = strdup(yytext);
1481 if (yylval->s == NULL)
1483 NL_DBG(4,
"lex STR=%s\n", yylval->s);
1489 #line 167 "lib/route/cls/ematch_grammar.l" 1492 #line 1493 "lib/route/cls/ematch_grammar.c" 1493 case YY_STATE_EOF(INITIAL):
1494 case YY_STATE_EOF(QUOTE):
1497 case YY_END_OF_BUFFER:
1500 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
1503 *yy_cp = yyg->yy_hold_char;
1504 YY_RESTORE_YY_MORE_OFFSET
1506 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1517 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1518 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1519 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1529 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1531 yy_state_type yy_next_state;
1533 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
1535 yy_current_state = yy_get_previous_state( yyscanner );
1546 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
1548 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1550 if ( yy_next_state )
1553 yy_cp = ++yyg->yy_c_buf_p;
1554 yy_current_state = yy_next_state;
1560 yy_cp = yyg->yy_c_buf_p;
1561 goto yy_find_action;
1565 else switch ( yy_get_next_buffer( yyscanner ) )
1567 case EOB_ACT_END_OF_FILE:
1569 yyg->yy_did_buffer_switch_on_eof = 0;
1571 if ( ematch_wrap(yyscanner ) )
1582 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
1584 yy_act = YY_STATE_EOF(YY_START);
1590 if ( ! yyg->yy_did_buffer_switch_on_eof )
1596 case EOB_ACT_CONTINUE_SCAN:
1598 yyg->yytext_ptr + yy_amount_of_matched_text;
1600 yy_current_state = yy_get_previous_state( yyscanner );
1602 yy_cp = yyg->yy_c_buf_p;
1603 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1606 case EOB_ACT_LAST_MATCH:
1608 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
1610 yy_current_state = yy_get_previous_state( yyscanner );
1612 yy_cp = yyg->yy_c_buf_p;
1613 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1614 goto yy_find_action;
1621 "fatal flex scanner internal error--no action found" );
1634 static int yy_get_next_buffer (yyscan_t yyscanner)
1637 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1638 char *source = yyg->yytext_ptr;
1639 yy_size_t number_to_move, i;
1642 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
1644 "fatal flex scanner internal error--end of buffer missed" );
1646 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1648 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
1653 return EOB_ACT_END_OF_FILE;
1661 return EOB_ACT_LAST_MATCH;
1668 number_to_move = (yy_size_t) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
1670 for ( i = 0; i < number_to_move; ++i )
1671 *(dest++) = *(source++);
1673 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1677 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
1682 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1684 while ( num_to_read <= 0 )
1688 YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1690 int yy_c_buf_p_offset =
1691 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
1693 if ( b->yy_is_our_buffer )
1695 int new_size = b->yy_buf_size * 2;
1697 if ( new_size <= 0 )
1698 b->yy_buf_size += b->yy_buf_size / 8;
1700 b->yy_buf_size *= 2;
1702 b->yy_ch_buf = (
char *)
1704 ematch_realloc((
void *) b->yy_ch_buf,(yy_size_t) (b->yy_buf_size + 2) ,yyscanner );
1708 b->yy_ch_buf = NULL;
1710 if ( ! b->yy_ch_buf )
1712 "fatal error - scanner input buffer overflow" );
1714 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1716 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1721 if ( num_to_read > YY_READ_BUF_SIZE )
1722 num_to_read = YY_READ_BUF_SIZE;
1725 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1726 yyg->yy_n_chars, num_to_read );
1728 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1731 if ( yyg->yy_n_chars == 0 )
1733 if ( number_to_move == YY_MORE_ADJ )
1735 ret_val = EOB_ACT_END_OF_FILE;
1736 ematch_restart(yyin ,yyscanner);
1741 ret_val = EOB_ACT_LAST_MATCH;
1742 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1743 YY_BUFFER_EOF_PENDING;
1748 ret_val = EOB_ACT_CONTINUE_SCAN;
1750 if ((
int) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1752 int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
1753 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (
char *) ematch_realloc((
void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,(yy_size_t) new_size ,yyscanner );
1754 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1755 YY_FATAL_ERROR(
"out of dynamic memory in yy_get_next_buffer()" );
1758 yyg->yy_n_chars += number_to_move;
1759 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1760 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1762 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1769 static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
1771 yy_state_type yy_current_state;
1775 yy_current_state = yyg->yy_start;
1777 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
1779 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1780 if ( yy_accept[yy_current_state] )
1782 yyg->yy_last_accepting_state = yy_current_state;
1783 yyg->yy_last_accepting_cpos = yy_cp;
1785 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1787 yy_current_state = (int) yy_def[yy_current_state];
1788 if ( yy_current_state >= 393 )
1789 yy_c = yy_meta[(
unsigned int) yy_c];
1791 yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
1794 return yy_current_state;
1802 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
1806 char *yy_cp = yyg->yy_c_buf_p;
1809 if ( yy_accept[yy_current_state] )
1811 yyg->yy_last_accepting_state = yy_current_state;
1812 yyg->yy_last_accepting_cpos = yy_cp;
1814 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1816 yy_current_state = (int) yy_def[yy_current_state];
1817 if ( yy_current_state >= 393 )
1818 yy_c = yy_meta[(
unsigned int) yy_c];
1820 yy_current_state = yy_nxt[yy_base[yy_current_state] + (flex_int16_t) yy_c];
1821 yy_is_jam = (yy_current_state == 392);
1824 return yy_is_jam ? 0 : yy_current_state;
1833 static int yyinput (yyscan_t yyscanner)
1835 static int input (yyscan_t yyscanner)
1842 *yyg->yy_c_buf_p = yyg->yy_hold_char;
1844 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
1850 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1852 *yyg->yy_c_buf_p =
'\0';
1856 int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
1859 switch ( yy_get_next_buffer( yyscanner ) )
1861 case EOB_ACT_LAST_MATCH:
1873 ematch_restart(yyin ,yyscanner);
1877 case EOB_ACT_END_OF_FILE:
1879 if ( ematch_wrap(yyscanner ) )
1882 if ( ! yyg->yy_did_buffer_switch_on_eof )
1885 return yyinput(yyscanner);
1887 return input(yyscanner);
1891 case EOB_ACT_CONTINUE_SCAN:
1892 yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
1898 c = *(
unsigned char *) yyg->yy_c_buf_p;
1899 *yyg->yy_c_buf_p =
'\0';
1900 yyg->yy_hold_char = *++yyg->yy_c_buf_p;
1911 void ematch_restart (FILE * input_file , yyscan_t yyscanner)
1915 if ( ! YY_CURRENT_BUFFER ){
1916 ematch_ensure_buffer_stack (yyscanner);
1917 YY_CURRENT_BUFFER_LVALUE =
1918 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1921 ematch__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
1922 ematch__load_buffer_state(yyscanner );
1929 void ematch__switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
1938 ematch_ensure_buffer_stack (yyscanner);
1939 if ( YY_CURRENT_BUFFER == new_buffer )
1942 if ( YY_CURRENT_BUFFER )
1945 *yyg->yy_c_buf_p = yyg->yy_hold_char;
1946 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
1947 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1950 YY_CURRENT_BUFFER_LVALUE = new_buffer;
1951 ematch__load_buffer_state(yyscanner );
1958 yyg->yy_did_buffer_switch_on_eof = 1;
1961 static void ematch__load_buffer_state (yyscan_t yyscanner)
1964 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1965 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1966 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1967 yyg->yy_hold_char = *yyg->yy_c_buf_p;
1976 YY_BUFFER_STATE ematch__create_buffer (FILE * file,
int size , yyscan_t yyscanner)
1980 b = (YY_BUFFER_STATE) ematch_alloc(
sizeof(
struct yy_buffer_state ) ,yyscanner );
1982 YY_FATAL_ERROR(
"out of dynamic memory in ematch__create_buffer()" );
1984 b->yy_buf_size = size;
1989 b->yy_ch_buf = (
char *) ematch_alloc((yy_size_t) (b->yy_buf_size + 2) ,yyscanner );
1990 if ( ! b->yy_ch_buf )
1991 YY_FATAL_ERROR(
"out of dynamic memory in ematch__create_buffer()" );
1993 b->yy_is_our_buffer = 1;
1995 ematch__init_buffer(b,file ,yyscanner);
2004 void ematch__delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2011 if ( b == YY_CURRENT_BUFFER )
2012 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2014 if ( b->yy_is_our_buffer )
2015 ematch_free((
void *) b->yy_ch_buf ,yyscanner );
2017 ematch_free((
void *) b ,yyscanner );
2024 static void ematch__init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
2030 ematch__flush_buffer(b ,yyscanner);
2032 b->yy_input_file = file;
2033 b->yy_fill_buffer = 1;
2039 if (b != YY_CURRENT_BUFFER){
2044 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2053 void ematch__flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2065 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2066 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2068 b->yy_buf_pos = &b->yy_ch_buf[0];
2071 b->yy_buffer_status = YY_BUFFER_NEW;
2073 if ( b == YY_CURRENT_BUFFER )
2074 ematch__load_buffer_state(yyscanner );
2083 void ematch_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2086 if (new_buffer == NULL)
2089 ematch_ensure_buffer_stack(yyscanner);
2092 if ( YY_CURRENT_BUFFER )
2095 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2096 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2097 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2101 if (YY_CURRENT_BUFFER)
2103 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2106 ematch__load_buffer_state(yyscanner );
2107 yyg->yy_did_buffer_switch_on_eof = 1;
2114 void ematch_pop_buffer_state (yyscan_t yyscanner)
2117 if (!YY_CURRENT_BUFFER)
2120 ematch__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
2121 YY_CURRENT_BUFFER_LVALUE = NULL;
2125 if (YY_CURRENT_BUFFER) {
2126 ematch__load_buffer_state(yyscanner );
2127 yyg->yy_did_buffer_switch_on_eof = 1;
2134 static void ematch_ensure_buffer_stack (yyscan_t yyscanner)
2150 YY_FATAL_ERROR(
"out of dynamic memory in ematch_ensure_buffer_stack()" );
2162 yy_size_t grow_size = 8 ;
2170 YY_FATAL_ERROR(
"out of dynamic memory in ematch_ensure_buffer_stack()" );
2184 YY_BUFFER_STATE ematch__scan_buffer (
char * base, yy_size_t size , yyscan_t yyscanner)
2189 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2190 base[size-1] != YY_END_OF_BUFFER_CHAR )
2194 b = (YY_BUFFER_STATE) ematch_alloc(
sizeof(
struct yy_buffer_state ) ,yyscanner );
2196 YY_FATAL_ERROR(
"out of dynamic memory in ematch__scan_buffer()" );
2198 b->yy_buf_size = (int) (size - 2);
2199 b->yy_buf_pos = b->yy_ch_buf = base;
2200 b->yy_is_our_buffer = 0;
2201 b->yy_input_file = NULL;
2202 b->yy_n_chars = b->yy_buf_size;
2203 b->yy_is_interactive = 0;
2205 b->yy_fill_buffer = 0;
2206 b->yy_buffer_status = YY_BUFFER_NEW;
2208 ematch__switch_to_buffer(b ,yyscanner );
2221 YY_BUFFER_STATE ematch__scan_string (yyconst
char * yystr , yyscan_t yyscanner)
2224 return ematch__scan_bytes(yystr,(
int) strlen(yystr) ,yyscanner);
2234 YY_BUFFER_STATE ematch__scan_bytes (yyconst
char * yybytes,
int _yybytes_len , yyscan_t yyscanner)
2242 n = (yy_size_t) _yybytes_len + 2;
2243 buf = (
char *) ematch_alloc(n ,yyscanner );
2245 YY_FATAL_ERROR(
"out of dynamic memory in ematch__scan_bytes()" );
2247 for ( i = 0; i < _yybytes_len; ++i )
2248 buf[i] = yybytes[i];
2250 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2252 b = ematch__scan_buffer(buf,n ,yyscanner);
2254 YY_FATAL_ERROR(
"bad buffer in ematch__scan_bytes()" );
2259 b->yy_is_our_buffer = 1;
2264 #ifndef YY_EXIT_FAILURE 2265 #define YY_EXIT_FAILURE 2 2268 static void yynoreturn yy_fatal_error (yyconst
char* msg , yyscan_t yyscanner)
2272 (void) fprintf( stderr,
"%s\n", msg );
2273 exit( YY_EXIT_FAILURE );
2283 yy_size_t yyless_macro_arg = (n); \ 2284 YY_LESS_LINENO(yyless_macro_arg);\ 2285 yytext[yyleng] = yyg->yy_hold_char; \ 2286 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \ 2287 yyg->yy_hold_char = *yyg->yy_c_buf_p; \ 2288 *yyg->yy_c_buf_p = '\0'; \ 2289 yyleng = yyless_macro_arg; \ 2298 YY_EXTRA_TYPE ematch_get_extra (yyscan_t yyscanner)
2307 int ematch_get_lineno (yyscan_t yyscanner)
2311 if (! YY_CURRENT_BUFFER)
2320 int ematch_get_column (yyscan_t yyscanner)
2324 if (! YY_CURRENT_BUFFER)
2333 FILE *ematch_get_in (yyscan_t yyscanner)
2342 FILE *ematch_get_out (yyscan_t yyscanner)
2351 int ematch_get_leng (yyscan_t yyscanner)
2361 char *ematch_get_text (yyscan_t yyscanner)
2371 void ematch_set_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
2374 yyextra = user_defined ;
2381 void ematch_set_lineno (
int _line_number , yyscan_t yyscanner)
2386 if (! YY_CURRENT_BUFFER )
2387 YY_FATAL_ERROR(
"ematch_set_lineno called with no buffer" );
2389 yylineno = _line_number;
2396 void ematch_set_column (
int _column_no , yyscan_t yyscanner)
2401 if (! YY_CURRENT_BUFFER )
2402 YY_FATAL_ERROR(
"ematch_set_column called with no buffer" );
2404 yycolumn = _column_no;
2413 void ematch_set_in (FILE * _in_str , yyscan_t yyscanner)
2419 void ematch_set_out (FILE * _out_str , yyscan_t yyscanner)
2425 int ematch_get_debug (yyscan_t yyscanner)
2428 return yy_flex_debug;
2431 void ematch_set_debug (
int _bdebug , yyscan_t yyscanner)
2434 yy_flex_debug = _bdebug ;
2439 YYSTYPE * ematch_get_lval (yyscan_t yyscanner)
2445 void ematch_set_lval (
YYSTYPE * yylval_param , yyscan_t yyscanner)
2448 yylval = yylval_param;
2458 int ematch_lex_init(yyscan_t* ptr_yy_globals)
2461 if (ptr_yy_globals == NULL){
2466 *ptr_yy_globals = (yyscan_t) ematch_alloc (
sizeof(
struct yyguts_t ), NULL );
2468 if (*ptr_yy_globals == NULL){
2474 memset(*ptr_yy_globals,0x00,
sizeof(
struct yyguts_t));
2476 return yy_init_globals ( *ptr_yy_globals );
2487 int ematch_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
2492 ematch_set_extra (yy_user_defined, &dummy_yyguts);
2494 if (ptr_yy_globals == NULL){
2499 *ptr_yy_globals = (yyscan_t) ematch_alloc (
sizeof(
struct yyguts_t ), &dummy_yyguts );
2501 if (*ptr_yy_globals == NULL){
2508 memset(*ptr_yy_globals,0x00,
sizeof(
struct yyguts_t));
2510 ematch_set_extra (yy_user_defined, *ptr_yy_globals);
2512 return yy_init_globals ( *ptr_yy_globals );
2515 static int yy_init_globals (yyscan_t yyscanner)
2525 yyg->yy_c_buf_p = NULL;
2529 yyg->yy_start_stack_ptr = 0;
2530 yyg->yy_start_stack_depth = 0;
2531 yyg->yy_start_stack = NULL;
2549 int ematch_lex_destroy (yyscan_t yyscanner)
2554 while(YY_CURRENT_BUFFER){
2555 ematch__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
2556 YY_CURRENT_BUFFER_LVALUE = NULL;
2557 ematch_pop_buffer_state(yyscanner);
2565 ematch_free(yyg->yy_start_stack ,yyscanner );
2566 yyg->yy_start_stack = NULL;
2570 yy_init_globals( yyscanner);
2573 ematch_free ( yyscanner , yyscanner );
2583 static void yy_flex_strncpy (
char* s1, yyconst
char * s2,
int n , yyscan_t yyscanner)
2589 for ( i = 0; i < n; ++i )
2594 #ifdef YY_NEED_STRLEN 2595 static int yy_flex_strlen (yyconst
char * s , yyscan_t yyscanner)
2598 for ( n = 0; s[n]; ++n )
2605 void *ematch_alloc (yy_size_t size , yyscan_t yyscanner)
2609 return malloc(size);
2612 void *ematch_realloc (
void * ptr, yy_size_t size , yyscan_t yyscanner)
2624 return realloc(ptr, size);
2627 void ematch_free (
void * ptr , yyscan_t yyscanner)
2631 free( (
char *) ptr );
2634 #define YYTABLES_NAME "yytables" 2636 #line 167 "lib/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.