1#line 1 "lib/route/cls/ematch_grammar.c"
2 #include "nl-default.h"
4#line 4 "lib/route/cls/ematch_grammar.c"
6#define YY_INT_ALIGNED short int
11#define YY_FLEX_MAJOR_VERSION 2
12#define YY_FLEX_MINOR_VERSION 6
13#define YY_FLEX_SUBMINOR_VERSION 4
14#if YY_FLEX_SUBMINOR_VERSION > 0
18#ifdef yy_create_buffer
19#define ematch__create_buffer_ALREADY_DEFINED
21#define yy_create_buffer ematch__create_buffer
24#ifdef yy_delete_buffer
25#define ematch__delete_buffer_ALREADY_DEFINED
27#define yy_delete_buffer ematch__delete_buffer
31#define ematch__scan_buffer_ALREADY_DEFINED
33#define yy_scan_buffer ematch__scan_buffer
37#define ematch__scan_string_ALREADY_DEFINED
39#define yy_scan_string ematch__scan_string
43#define ematch__scan_bytes_ALREADY_DEFINED
45#define yy_scan_bytes ematch__scan_bytes
49#define ematch__init_buffer_ALREADY_DEFINED
51#define yy_init_buffer ematch__init_buffer
55#define ematch__flush_buffer_ALREADY_DEFINED
57#define yy_flush_buffer ematch__flush_buffer
60#ifdef yy_load_buffer_state
61#define ematch__load_buffer_state_ALREADY_DEFINED
63#define yy_load_buffer_state ematch__load_buffer_state
66#ifdef yy_switch_to_buffer
67#define ematch__switch_to_buffer_ALREADY_DEFINED
69#define yy_switch_to_buffer ematch__switch_to_buffer
72#ifdef yypush_buffer_state
73#define ematch_push_buffer_state_ALREADY_DEFINED
75#define yypush_buffer_state ematch_push_buffer_state
78#ifdef yypop_buffer_state
79#define ematch_pop_buffer_state_ALREADY_DEFINED
81#define yypop_buffer_state ematch_pop_buffer_state
84#ifdef yyensure_buffer_stack
85#define ematch_ensure_buffer_stack_ALREADY_DEFINED
87#define yyensure_buffer_stack ematch_ensure_buffer_stack
91#define ematch_lex_ALREADY_DEFINED
93#define yylex ematch_lex
97#define ematch_restart_ALREADY_DEFINED
99#define yyrestart ematch_restart
103#define ematch_lex_init_ALREADY_DEFINED
105#define yylex_init ematch_lex_init
108#ifdef yylex_init_extra
109#define ematch_lex_init_extra_ALREADY_DEFINED
111#define yylex_init_extra ematch_lex_init_extra
115#define ematch_lex_destroy_ALREADY_DEFINED
117#define yylex_destroy ematch_lex_destroy
121#define ematch_get_debug_ALREADY_DEFINED
123#define yyget_debug ematch_get_debug
127#define ematch_set_debug_ALREADY_DEFINED
129#define yyset_debug ematch_set_debug
133#define ematch_get_extra_ALREADY_DEFINED
135#define yyget_extra ematch_get_extra
139#define ematch_set_extra_ALREADY_DEFINED
141#define yyset_extra ematch_set_extra
145#define ematch_get_in_ALREADY_DEFINED
147#define yyget_in ematch_get_in
151#define ematch_set_in_ALREADY_DEFINED
153#define yyset_in ematch_set_in
157#define ematch_get_out_ALREADY_DEFINED
159#define yyget_out ematch_get_out
163#define ematch_set_out_ALREADY_DEFINED
165#define yyset_out ematch_set_out
169#define ematch_get_leng_ALREADY_DEFINED
171#define yyget_leng ematch_get_leng
175#define ematch_get_text_ALREADY_DEFINED
177#define yyget_text ematch_get_text
181#define ematch_get_lineno_ALREADY_DEFINED
183#define yyget_lineno ematch_get_lineno
187#define ematch_set_lineno_ALREADY_DEFINED
189#define yyset_lineno ematch_set_lineno
193#define ematch_get_column_ALREADY_DEFINED
195#define yyget_column ematch_get_column
199#define ematch_set_column_ALREADY_DEFINED
201#define yyset_column ematch_set_column
205#define ematch_wrap_ALREADY_DEFINED
207#define yywrap ematch_wrap
211#define ematch_get_lval_ALREADY_DEFINED
213#define yyget_lval ematch_get_lval
217#define ematch_set_lval_ALREADY_DEFINED
219#define yyset_lval ematch_set_lval
223#define ematch_alloc_ALREADY_DEFINED
225#define yyalloc ematch_alloc
229#define ematch_realloc_ALREADY_DEFINED
231#define yyrealloc ematch_realloc
235#define ematch_free_ALREADY_DEFINED
237#define yyfree ematch_free
257#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
262#ifndef __STDC_LIMIT_MACROS
263#define __STDC_LIMIT_MACROS 1
267typedef int8_t flex_int8_t;
268typedef uint8_t flex_uint8_t;
269typedef int16_t flex_int16_t;
270typedef uint16_t flex_uint16_t;
271typedef int32_t flex_int32_t;
272typedef uint32_t flex_uint32_t;
274typedef signed char flex_int8_t;
275typedef short int flex_int16_t;
276typedef int flex_int32_t;
277typedef unsigned char flex_uint8_t;
278typedef unsigned short int flex_uint16_t;
279typedef unsigned int flex_uint32_t;
283#define INT8_MIN (-128)
286#define INT16_MIN (-32767-1)
289#define INT32_MIN (-2147483647-1)
292#define INT8_MAX (127)
295#define INT16_MAX (32767)
298#define INT32_MAX (2147483647)
301#define UINT8_MAX (255U)
304#define UINT16_MAX (65535U)
307#define UINT32_MAX (4294967295U)
311#define SIZE_MAX (~(size_t)0)
323#if defined(__GNUC__) && __GNUC__ >= 3
324#define yynoreturn __attribute__((__noreturn__))
335#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
338#ifndef YY_TYPEDEF_YY_SCANNER_T
339#define YY_TYPEDEF_YY_SCANNER_T
340typedef void* yyscan_t;
345#define yyin yyg->yyin_r
346#define yyout yyg->yyout_r
347#define yyextra yyg->yyextra_r
348#define yyleng yyg->yyleng_r
349#define yytext yyg->yytext_r
350#define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
351#define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
352#define yy_flex_debug yyg->yy_flex_debug_r
358#define BEGIN yyg->yy_start = 1 + 2 *
363#define YY_START ((yyg->yy_start - 1) / 2)
364#define YYSTATE YY_START
366#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
368#define YY_NEW_FILE yyrestart( yyin , yyscanner )
369#define YY_END_OF_BUFFER_CHAR 0
378#define YY_BUF_SIZE 32768
380#define YY_BUF_SIZE 16384
386#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
388#ifndef YY_TYPEDEF_YY_BUFFER_STATE
389#define YY_TYPEDEF_YY_BUFFER_STATE
393#ifndef YY_TYPEDEF_YY_SIZE_T
394#define YY_TYPEDEF_YY_SIZE_T
395typedef size_t yy_size_t;
398#define EOB_ACT_CONTINUE_SCAN 0
399#define EOB_ACT_END_OF_FILE 1
400#define EOB_ACT_LAST_MATCH 2
402 #define YY_LESS_LINENO(n)
403 #define YY_LINENO_REWIND_TO(ptr)
410 int yyless_macro_arg = (n); \
411 YY_LESS_LINENO(yyless_macro_arg);\
412 *yy_cp = yyg->yy_hold_char; \
413 YY_RESTORE_YY_MORE_OFFSET \
414 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
415 YY_DO_BEFORE_ACTION; \
418#define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
420#ifndef YY_STRUCT_YY_BUFFER_STATE
421#define YY_STRUCT_YY_BUFFER_STATE
443 int yy_is_our_buffer;
450 int yy_is_interactive;
466 int yy_buffer_status;
468#define YY_BUFFER_NEW 0
469#define YY_BUFFER_NORMAL 1
480#define YY_BUFFER_EOF_PENDING 2
491#define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
492 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
497#define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
499void yyrestart ( FILE *input_file , yyscan_t yyscanner );
500void yy_switch_to_buffer (
YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
501YY_BUFFER_STATE yy_create_buffer ( FILE *file,
int size , yyscan_t yyscanner );
504void yypush_buffer_state (
YY_BUFFER_STATE new_buffer , yyscan_t yyscanner );
505void yypop_buffer_state ( yyscan_t yyscanner );
507static void yyensure_buffer_stack ( yyscan_t yyscanner );
508static void yy_load_buffer_state ( yyscan_t yyscanner );
509static void yy_init_buffer (
YY_BUFFER_STATE b, FILE *file , yyscan_t yyscanner );
510#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER , yyscanner)
512YY_BUFFER_STATE yy_scan_buffer (
char *base, yy_size_t size , yyscan_t yyscanner );
513YY_BUFFER_STATE yy_scan_string (
const char *yy_str , yyscan_t yyscanner );
514YY_BUFFER_STATE yy_scan_bytes (
const char *bytes,
int len , yyscan_t yyscanner );
516void *
yyalloc ( yy_size_t , yyscan_t yyscanner );
517void *yyrealloc (
void *, yy_size_t , yyscan_t yyscanner );
518void yyfree (
void * , yyscan_t yyscanner );
520#define yy_new_buffer yy_create_buffer
521#define yy_set_interactive(is_interactive) \
523 if ( ! YY_CURRENT_BUFFER ){ \
524 yyensure_buffer_stack (yyscanner); \
525 YY_CURRENT_BUFFER_LVALUE = \
526 yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
528 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
530#define yy_set_bol(at_bol) \
532 if ( ! YY_CURRENT_BUFFER ){\
533 yyensure_buffer_stack (yyscanner); \
534 YY_CURRENT_BUFFER_LVALUE = \
535 yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner); \
537 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
539#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
541#define ematch_wrap(yyscanner) (1)
542#define YY_SKIP_YYWRAP
543typedef flex_uint8_t YY_CHAR;
545typedef int yy_state_type;
547#define yytext_ptr yytext_r
549static yy_state_type yy_get_previous_state ( yyscan_t yyscanner );
550static yy_state_type yy_try_NUL_trans ( yy_state_type current_state , yyscan_t yyscanner);
551static int yy_get_next_buffer ( yyscan_t yyscanner );
552static void yynoreturn yy_fatal_error (
const char* msg , yyscan_t yyscanner );
557#define YY_DO_BEFORE_ACTION \
558 yyg->yytext_ptr = yy_bp; \
559 yyleng = (int) (yy_cp - yy_bp); \
560 yyg->yy_hold_char = *yy_cp; \
562 yyg->yy_c_buf_p = yy_cp;
563#define YY_NUM_RULES 91
564#define YY_END_OF_BUFFER 92
569 flex_int32_t yy_verify;
572static const flex_int16_t yy_accept[393] =
574 0, 0, 0, 0, 92, 90, 1, 18, 2, 26,
575 23, 24, 30, 5, 5, 12, 8, 10, 90, 90,
576 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
577 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
578 90, 91, 3, 91, 4, 90, 1, 14, 5, 90,
579 28, 90, 29, 90, 90, 90, 40, 90, 90, 90,
580 90, 90, 15, 90, 90, 90, 90, 32, 90, 90,
581 90, 33, 90, 90, 7, 9, 90, 11, 90, 90,
582 90, 90, 90, 90, 90, 90, 90, 16, 3, 6,
583 13, 19, 37, 90, 39, 90, 90, 90, 38, 17,
585 90, 90, 42, 90, 90, 34, 35, 90, 47, 90,
586 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
587 90, 90, 31, 36, 25, 22, 90, 90, 21, 90,
588 90, 90, 90, 90, 54, 90, 90, 48, 90, 90,
589 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
590 90, 90, 90, 90, 90, 90, 86, 90, 27, 90,
591 90, 90, 90, 90, 90, 90, 49, 90, 90, 57,
592 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
593 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
594 90, 90, 90, 90, 90, 90, 90, 90, 53, 51,
596 90, 43, 90, 87, 90, 90, 90, 90, 90, 90,
597 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
598 90, 90, 90, 90, 90, 90, 90, 90, 20, 90,
599 52, 88, 90, 50, 90, 90, 90, 90, 90, 90,
600 90, 76, 90, 90, 80, 90, 90, 90, 90, 90,
601 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
602 66, 90, 90, 55, 90, 90, 90, 90, 90, 90,
603 90, 90, 90, 90, 90, 65, 90, 90, 90, 90,
604 90, 60, 90, 90, 90, 90, 90, 90, 90, 59,
605 90, 90, 41, 44, 45, 46, 56, 90, 74, 90,
607 90, 58, 90, 90, 90, 90, 62, 90, 90, 61,
608 90, 90, 90, 90, 90, 63, 90, 90, 90, 90,
609 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
610 90, 90, 90, 90, 90, 90, 90, 90, 90, 89,
611 72, 90, 90, 90, 70, 81, 82, 90, 90, 90,
612 64, 71, 83, 90, 90, 90, 90, 90, 90, 90,
613 90, 90, 90, 90, 90, 90, 90, 90, 77, 90,
614 67, 75, 90, 68, 90, 90, 78, 90, 90, 84,
615 69, 90, 90, 90, 90, 90, 90, 85, 73, 90,
620static const YY_CHAR yy_ec[256] =
622 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
623 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
624 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
625 1, 2, 4, 5, 1, 1, 1, 6, 1, 7,
626 8, 1, 9, 1, 1, 1, 1, 10, 11, 12,
627 13, 14, 14, 15, 14, 16, 14, 1, 1, 17,
628 18, 19, 1, 1, 20, 21, 22, 23, 24, 25,
629 1, 26, 27, 1, 28, 29, 30, 31, 32, 33,
630 1, 34, 35, 36, 37, 1, 1, 38, 1, 1,
631 1, 39, 1, 1, 40, 1, 41, 42, 43, 44,
633 45, 46, 47, 48, 49, 1, 50, 51, 52, 53,
634 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
635 64, 1, 1, 65, 1, 1, 1, 1, 1, 1,
636 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
637 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
638 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
639 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
640 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
641 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
642 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
644 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
645 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
646 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
647 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
648 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
652static const YY_CHAR yy_meta[66] =
654 1, 2, 3, 1, 3, 2, 2, 2, 2, 1,
655 1, 1, 1, 1, 1, 1, 2, 2, 2, 1,
656 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
657 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
658 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
659 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
663static const flex_int16_t yy_base[396] =
665 0, 0, 63, 64, 537, 0, 68, 0, 538, 530,
666 538, 538, 538, 62, 69, 538, 538, 516, 55, 57,
667 52, 55, 60, 67, 72, 73, 64, 79, 75, 100,
668 115, 65, 83, 475, 102, 117, 118, 89, 121, 131,
669 482, 467, 0, 538, 538, 0, 133, 538, 167, 179,
670 538, 123, 0, 111, 124, 132, 516, 153, 138, 151,
671 169, 171, 0, 172, 170, 178, 171, 0, 129, 515,
672 517, 0, 469, 466, 0, 0, 485, 0, 183, 466,
673 41, 471, 186, 475, 482, 183, 480, 538, 0, 0,
674 0, 0, 0, 184, 0, 187, 189, 207, 0, 0,
676 206, 218, 0, 208, 215, 0, 0, 479, 466, 474,
677 466, 466, 194, 461, 455, 469, 461, 462, 469, 228,
678 456, 455, 0, 0, 0, 0, 226, 213, 0, 217,
679 456, 465, 464, 459, 0, 458, 438, 0, 447, 446,
680 458, 452, 439, 204, 442, 438, 237, 453, 444, 451,
681 434, 249, 236, 426, 199, 445, 0, 220, 0, 227,
682 443, 435, 425, 432, 431, 428, 0, 430, 423, 0,
683 432, 429, 427, 417, 419, 423, 417, 415, 419, 408,
684 208, 409, 152, 424, 408, 414, 406, 421, 423, 408,
685 417, 412, 415, 235, 261, 406, 413, 410, 0, 0,
687 411, 0, 397, 0, 414, 399, 399, 411, 401, 387,
688 400, 400, 406, 391, 385, 257, 400, 384, 389, 381,
689 395, 379, 258, 378, 391, 383, 375, 370, 0, 262,
690 0, 0, 392, 0, 382, 388, 386, 384, 371, 375,
691 384, 0, 379, 382, 0, 368, 365, 360, 365, 369,
692 364, 371, 375, 369, 361, 368, 355, 350, 360, 363,
693 0, 367, 361, 0, 266, 294, 361, 363, 345, 362,
694 350, 336, 342, 341, 354, 0, 345, 349, 332, 341,
695 333, 0, 350, 350, 331, 334, 336, 340, 333, 0,
696 266, 344, 0, 0, 0, 0, 0, 340, 0, 333,
698 336, 0, 336, 320, 328, 332, 0, 335, 330, 0,
699 323, 330, 325, 309, 325, 0, 324, 317, 307, 311,
700 315, 318, 310, 322, 312, 320, 306, 299, 303, 305,
701 314, 314, 300, 299, 297, 299, 304, 303, 296, 0,
702 0, 305, 293, 302, 0, 0, 0, 289, 287, 287,
703 0, 0, 0, 286, 279, 285, 283, 285, 287, 290,
704 281, 265, 275, 277, 273, 270, 266, 261, 0, 268,
705 0, 0, 264, 0, 265, 214, 0, 207, 209, 0,
706 0, 205, 170, 109, 93, 75, 53, 0, 0, 57,
707 0, 538, 325, 329, 333
711static const flex_int16_t yy_def[396] =
713 392, 1, 393, 393, 392, 394, 392, 394, 392, 392,
714 392, 392, 392, 394, 394, 392, 392, 392, 394, 394,
715 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
716 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
717 394, 392, 395, 392, 392, 394, 392, 392, 394, 394,
718 392, 394, 394, 394, 394, 394, 394, 394, 394, 394,
719 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
720 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
721 394, 394, 394, 394, 394, 394, 394, 392, 395, 50,
722 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
724 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
725 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
726 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
727 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
728 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
729 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
730 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
731 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
732 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
733 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
735 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
736 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
737 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
738 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
739 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
740 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
741 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
742 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
743 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
744 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
746 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
747 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
748 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
749 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
750 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
751 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
752 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
753 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
754 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
755 394, 0, 392, 392, 392
759static const flex_int16_t yy_nxt[604] =
761 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
762 15, 15, 15, 15, 15, 15, 16, 17, 18, 19,
763 6, 20, 6, 21, 22, 6, 23, 6, 24, 25,
764 26, 27, 28, 6, 29, 30, 31, 6, 6, 6,
765 19, 6, 20, 32, 33, 22, 34, 6, 23, 6,
766 35, 36, 26, 27, 37, 6, 38, 39, 40, 31,
767 41, 6, 6, 6, 42, 44, 44, 45, 45, 47,
768 47, 49, 49, 49, 49, 49, 49, 49, 49, 49,
769 49, 49, 49, 49, 49, 52, 54, 55, 56, 114,
770 53, 59, 57, 58, 115, 60, 61, 63, 64, 50,
772 65, 44, 44, 391, 62, 73, 390, 52, 54, 74,
773 55, 56, 59, 53, 57, 58, 60, 61, 55, 64,
774 63, 66, 65, 67, 50, 70, 62, 71, 58, 82,
775 72, 68, 389, 69, 47, 47, 59, 64, 75, 388,
776 60, 55, 66, 92, 67, 91, 65, 83, 105, 93,
777 58, 84, 66, 68, 67, 77, 69, 79, 64, 387,
778 78, 60, 68, 94, 69, 92, 91, 80, 65, 105,
779 85, 93, 97, 86, 81, 67, 49, 49, 49, 49,
780 49, 49, 49, 96, 68, 94, 98, 69, 90, 90,
781 90, 90, 90, 90, 90, 97, 102, 217, 90, 90,
783 90, 90, 90, 90, 99, 96, 100, 101, 104, 98,
784 103, 218, 386, 123, 124, 103, 125, 97, 102, 90,
785 90, 90, 90, 90, 90, 111, 126, 99, 117, 100,
786 101, 121, 103, 104, 118, 123, 124, 103, 125, 112,
787 97, 127, 128, 129, 136, 130, 172, 126, 159, 158,
788 191, 160, 137, 194, 173, 192, 214, 385, 384, 195,
789 383, 215, 382, 128, 127, 229, 129, 130, 144, 145,
790 158, 159, 146, 147, 160, 148, 194, 176, 149, 150,
791 186, 195, 151, 187, 152, 153, 154, 229, 188, 155,
792 177, 182, 230, 183, 189, 265, 247, 257, 248, 258,
794 184, 293, 185, 294, 295, 296, 318, 249, 381, 380,
795 379, 378, 377, 376, 230, 250, 259, 375, 265, 374,
796 373, 319, 372, 371, 293, 43, 43, 43, 43, 46,
797 370, 369, 46, 89, 89, 368, 367, 366, 365, 364,
798 363, 362, 361, 360, 359, 358, 357, 356, 355, 354,
799 353, 352, 351, 350, 349, 348, 347, 346, 345, 344,
800 343, 342, 341, 340, 339, 338, 337, 336, 335, 334,
801 333, 332, 331, 330, 329, 328, 327, 326, 325, 324,
802 323, 322, 321, 320, 317, 316, 315, 314, 313, 312,
803 311, 310, 309, 308, 307, 306, 305, 304, 303, 302,
805 301, 300, 299, 298, 297, 292, 291, 290, 289, 288,
806 287, 286, 285, 284, 283, 282, 281, 280, 279, 278,
807 277, 276, 275, 274, 273, 272, 271, 270, 269, 268,
808 267, 266, 264, 263, 262, 261, 260, 256, 255, 254,
809 253, 252, 251, 246, 245, 244, 243, 242, 241, 240,
810 239, 238, 237, 236, 235, 234, 233, 232, 231, 228,
811 227, 226, 225, 224, 223, 222, 221, 220, 219, 216,
812 213, 212, 211, 210, 209, 208, 207, 206, 205, 204,
813 203, 202, 201, 200, 199, 198, 197, 196, 193, 190,
814 181, 180, 179, 178, 175, 174, 171, 170, 169, 168,
816 167, 166, 165, 164, 163, 162, 161, 157, 156, 143,
817 142, 141, 140, 139, 138, 135, 134, 133, 132, 131,
818 122, 120, 119, 116, 113, 110, 109, 108, 107, 106,
819 95, 88, 87, 76, 51, 48, 392, 5, 392, 392,
820 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
821 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
822 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
823 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
824 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
825 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
830static const flex_int16_t yy_chk[604] =
832 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
833 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
834 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
835 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
836 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
837 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
838 1, 1, 1, 1, 1, 3, 4, 3, 4, 7,
839 7, 14, 14, 14, 14, 14, 14, 14, 15, 15,
840 15, 15, 15, 15, 15, 19, 20, 21, 22, 81,
841 19, 25, 23, 24, 81, 25, 26, 27, 28, 14,
843 29, 3, 4, 390, 26, 32, 387, 19, 20, 32,
844 21, 22, 25, 19, 23, 24, 25, 26, 33, 28,
845 27, 30, 29, 30, 14, 31, 26, 31, 35, 38,
846 31, 30, 386, 30, 47, 47, 36, 37, 33, 385,
847 36, 33, 30, 54, 30, 52, 39, 38, 69, 55,
848 35, 38, 40, 30, 40, 35, 30, 36, 37, 384,
849 35, 36, 40, 56, 40, 54, 52, 37, 39, 69,
850 39, 55, 59, 40, 37, 40, 49, 49, 49, 49,
851 49, 49, 49, 58, 40, 56, 60, 40, 50, 50,
852 50, 50, 50, 50, 50, 59, 65, 183, 50, 50,
854 50, 50, 50, 50, 61, 58, 62, 64, 67, 60,
855 66, 183, 383, 94, 96, 86, 97, 79, 65, 50,
856 50, 50, 50, 50, 50, 79, 98, 61, 83, 62,
857 64, 86, 66, 67, 83, 94, 96, 86, 97, 79,
858 79, 101, 102, 104, 113, 105, 144, 98, 128, 127,
859 155, 130, 113, 158, 144, 155, 181, 382, 379, 160,
860 378, 181, 376, 102, 101, 194, 104, 105, 120, 120,
861 127, 128, 120, 120, 130, 120, 158, 147, 120, 120,
862 153, 160, 120, 153, 120, 120, 120, 194, 153, 120,
863 147, 152, 195, 152, 153, 230, 216, 223, 216, 223,
865 152, 265, 152, 266, 266, 266, 291, 216, 375, 373,
866 370, 368, 367, 366, 195, 216, 223, 365, 230, 364,
867 363, 291, 362, 361, 265, 393, 393, 393, 393, 394,
868 360, 359, 394, 395, 395, 358, 357, 356, 355, 354,
869 350, 349, 348, 344, 343, 342, 339, 338, 337, 336,
870 335, 334, 333, 332, 331, 330, 329, 328, 327, 326,
871 325, 324, 323, 322, 321, 320, 319, 318, 317, 315,
872 314, 313, 312, 311, 309, 308, 306, 305, 304, 303,
873 301, 300, 298, 292, 289, 288, 287, 286, 285, 284,
874 283, 281, 280, 279, 278, 277, 275, 274, 273, 272,
876 271, 270, 269, 268, 267, 263, 262, 260, 259, 258,
877 257, 256, 255, 254, 253, 252, 251, 250, 249, 248,
878 247, 246, 244, 243, 241, 240, 239, 238, 237, 236,
879 235, 233, 228, 227, 226, 225, 224, 222, 221, 220,
880 219, 218, 217, 215, 214, 213, 212, 211, 210, 209,
881 208, 207, 206, 205, 203, 201, 198, 197, 196, 193,
882 192, 191, 190, 189, 188, 187, 186, 185, 184, 182,
883 180, 179, 178, 177, 176, 175, 174, 173, 172, 171,
884 169, 168, 166, 165, 164, 163, 162, 161, 156, 154,
885 151, 150, 149, 148, 146, 145, 143, 142, 141, 140,
887 139, 137, 136, 134, 133, 132, 131, 122, 121, 119,
888 118, 117, 116, 115, 114, 112, 111, 110, 109, 108,
889 87, 85, 84, 82, 80, 77, 74, 73, 71, 70,
890 57, 42, 41, 34, 18, 10, 5, 392, 392, 392,
891 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
892 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
893 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
894 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
895 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
896 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
904#define REJECT reject_used_but_not_detected
905#define yymore() yymore_used_but_not_detected
907#define YY_RESTORE_YY_MORE_OFFSET
908#line 1 "lib/route/cls/ematch_grammar.l"
914#line 10 "lib/route/cls/ematch_grammar.l"
915 #include <linux/tc_ematch/tc_em_cmp.h>
917 #include <netlink/netlink.h>
918 #include <netlink/route/cls/ematch.h>
919 #include <netlink/route/cls/ematch/cmp.h>
921 #include "nl-route.h"
923 #include "ematch_syntax.h"
925 int ematch_get_column(yyscan_t);
926 void ematch_set_column(
int, yyscan_t);
927#line 927 "lib/route/cls/ematch_grammar.c"
930#line 930 "lib/route/cls/ematch_grammar.c"
935#ifndef YY_NO_UNISTD_H
944#define YY_EXTRA_TYPE void *
952 YY_EXTRA_TYPE yyextra_r;
955 FILE *yyin_r, *yyout_r;
965 int yy_did_buffer_switch_on_eof;
966 int yy_start_stack_ptr;
967 int yy_start_stack_depth;
969 yy_state_type yy_last_accepting_state;
970 char* yy_last_accepting_cpos;
983static int yy_init_globals ( yyscan_t yyscanner );
987 # define yylval yyg->yylval_r
989int yylex_init (yyscan_t* scanner);
991int yylex_init_extra ( YY_EXTRA_TYPE user_defined, yyscan_t* scanner);
996int yylex_destroy ( yyscan_t yyscanner );
998int yyget_debug ( yyscan_t yyscanner );
1000void yyset_debug (
int debug_flag , yyscan_t yyscanner );
1002YY_EXTRA_TYPE yyget_extra ( yyscan_t yyscanner );
1004void yyset_extra ( YY_EXTRA_TYPE user_defined , yyscan_t yyscanner );
1006FILE *yyget_in ( yyscan_t yyscanner );
1008void yyset_in ( FILE * _in_str , yyscan_t yyscanner );
1010FILE *yyget_out ( yyscan_t yyscanner );
1012void yyset_out ( FILE * _out_str , yyscan_t yyscanner );
1014 int yyget_leng ( yyscan_t yyscanner );
1016char *yyget_text ( yyscan_t yyscanner );
1018int yyget_lineno ( yyscan_t yyscanner );
1020void yyset_lineno (
int _line_number , yyscan_t yyscanner );
1022int yyget_column ( yyscan_t yyscanner );
1024void yyset_column (
int _column_no , yyscan_t yyscanner );
1026YYSTYPE * yyget_lval ( yyscan_t yyscanner );
1028void yyset_lval (
YYSTYPE * yylval_param , yyscan_t yyscanner );
1034#ifndef YY_SKIP_YYWRAP
1036extern "C" int yywrap ( yyscan_t yyscanner );
1038extern int yywrap ( yyscan_t yyscanner );
1047static void yy_flex_strncpy (
char *,
const char *,
int , yyscan_t yyscanner);
1050#ifdef YY_NEED_STRLEN
1051static int yy_flex_strlen (
const char * , yyscan_t yyscanner);
1056static int yyinput ( yyscan_t yyscanner );
1058static int input ( yyscan_t yyscanner );
1064#ifndef YY_READ_BUF_SIZE
1067#define YY_READ_BUF_SIZE 16384
1069#define YY_READ_BUF_SIZE 8192
1078#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
1085#define YY_INPUT(buf,result,max_size) \
1086 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1090 for ( n = 0; n < max_size && \
1091 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1092 buf[n] = (char) c; \
1094 buf[n++] = (char) c; \
1095 if ( c == EOF && ferror( yyin ) ) \
1096 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1102 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
1104 if( errno != EINTR) \
1106 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1122#define yyterminate() return YY_NULL
1126#ifndef YY_START_STACK_INCR
1127#define YY_START_STACK_INCR 25
1131#ifndef YY_FATAL_ERROR
1132#define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
1141#define YY_DECL_IS_OURS 1
1144 (
YYSTYPE * yylval_param , yyscan_t yyscanner);
1146#define YY_DECL int yylex \
1147 (YYSTYPE * yylval_param , yyscan_t yyscanner)
1153#ifndef YY_USER_ACTION
1154#define YY_USER_ACTION
1159#define YY_BREAK break;
1162#define YY_RULE_SETUP \
1169 yy_state_type yy_current_state;
1170 char *yy_cp, *yy_bp;
1174 yylval = yylval_param;
1176 if ( !yyg->yy_init )
1184 if ( ! yyg->yy_start )
1193 if ( ! YY_CURRENT_BUFFER ) {
1194 yyensure_buffer_stack (yyscanner);
1195 YY_CURRENT_BUFFER_LVALUE =
1196 yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
1199 yy_load_buffer_state( yyscanner );
1203#line 35 "lib/route/cls/ematch_grammar.l"
1206#line 1206 "lib/route/cls/ematch_grammar.c"
1210 yy_cp = yyg->yy_c_buf_p;
1213 *yy_cp = yyg->yy_hold_char;
1220 yy_current_state = yyg->yy_start;
1224 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
1225 if ( yy_accept[yy_current_state] )
1227 yyg->yy_last_accepting_state = yy_current_state;
1228 yyg->yy_last_accepting_cpos = yy_cp;
1230 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1232 yy_current_state = (int) yy_def[yy_current_state];
1233 if ( yy_current_state >= 393 )
1234 yy_c = yy_meta[yy_c];
1236 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
1239 while ( yy_base[yy_current_state] != 538 );
1242 yy_act = yy_accept[yy_current_state];
1245 yy_cp = yyg->yy_last_accepting_cpos;
1246 yy_current_state = yyg->yy_last_accepting_state;
1247 yy_act = yy_accept[yy_current_state];
1250 YY_DO_BEFORE_ACTION;
1258 *yy_cp = yyg->yy_hold_char;
1259 yy_cp = yyg->yy_last_accepting_cpos;
1260 yy_current_state = yyg->yy_last_accepting_state;
1261 goto yy_find_action;
1266#line 37 "lib/route/cls/ematch_grammar.l"
1271#line 39 "lib/route/cls/ematch_grammar.l"
1273 NL_DBG(4,
"Beginning of quote\n");
1275 if (!(yylval->q.data = calloc(1, yylval->q.len)))
1278 yylval->q.index = 0;
1284#line 49 "lib/route/cls/ematch_grammar.l"
1286 memcpy(yylval->q.data + yylval->q.index, yytext,
1288 yylval->q.index += strlen(yytext);
1293#line 55 "lib/route/cls/ematch_grammar.l"
1300#line 62 "lib/route/cls/ematch_grammar.l"
1303#line 62 "lib/route/cls/ematch_grammar.l"
1305 yylval->i = strtoul(yytext, NULL, 0);
1310#line 68 "lib/route/cls/ematch_grammar.l"
1313#line 68 "lib/route/cls/ematch_grammar.l"
1317#line 70 "lib/route/cls/ematch_grammar.l"
1320#line 70 "lib/route/cls/ematch_grammar.l"
1324#line 72 "lib/route/cls/ematch_grammar.l"
1327#line 72 "lib/route/cls/ematch_grammar.l"
1331#line 75 "lib/route/cls/ematch_grammar.l"
1334#line 75 "lib/route/cls/ematch_grammar.l"
1335{ yylval->i = TCF_EM_REL_AND;
return LOGIC; }
1338#line 77 "lib/route/cls/ematch_grammar.l"
1341#line 77 "lib/route/cls/ematch_grammar.l"
1342{ yylval->i = TCF_EM_REL_OR;
return LOGIC; }
1345#line 79 "lib/route/cls/ematch_grammar.l"
1348#line 79 "lib/route/cls/ematch_grammar.l"
1353#line 81 "lib/route/cls/ematch_grammar.l"
1354{ yylval->i = TCF_EM_CMP;
return EMATCH_CMP; }
1358#line 82 "lib/route/cls/ematch_grammar.l"
1359{ yylval->i = TCF_EM_NBYTE;
return EMATCH_NBYTE; }
1363#line 83 "lib/route/cls/ematch_grammar.l"
1364{ yylval->i = TCF_EM_TEXT;
return EMATCH_TEXT; }
1368#line 84 "lib/route/cls/ematch_grammar.l"
1369{ yylval->i = TCF_EM_META;
return EMATCH_META; }
1373#line 86 "lib/route/cls/ematch_grammar.l"
1378#line 87 "lib/route/cls/ematch_grammar.l"
1382#line 89 "lib/route/cls/ematch_grammar.l"
1385#line 89 "lib/route/cls/ematch_grammar.l"
1389#line 91 "lib/route/cls/ematch_grammar.l"
1392#line 91 "lib/route/cls/ematch_grammar.l"
1397#line 92 "lib/route/cls/ematch_grammar.l"
1402#line 93 "lib/route/cls/ematch_grammar.l"
1407#line 94 "lib/route/cls/ematch_grammar.l"
1412#line 95 "lib/route/cls/ematch_grammar.l"
1417#line 97 "lib/route/cls/ematch_grammar.l"
1418{ yylval->i = TCF_EM_ALIGN_U8;
return ALIGN; }
1422#line 98 "lib/route/cls/ematch_grammar.l"
1423{ yylval->i = TCF_EM_ALIGN_U16;
return ALIGN; }
1427#line 99 "lib/route/cls/ematch_grammar.l"
1428{ yylval->i = TCF_EM_ALIGN_U32;
return ALIGN; }
1431#line 102 "lib/route/cls/ematch_grammar.l"
1434#line 102 "lib/route/cls/ematch_grammar.l"
1435{ yylval->i = TCF_LAYER_LINK;
return LAYER; }
1438#line 104 "lib/route/cls/ematch_grammar.l"
1440#line 105 "lib/route/cls/ematch_grammar.l"
1443#line 105 "lib/route/cls/ematch_grammar.l"
1444{ yylval->i = TCF_LAYER_NETWORK;
return LAYER; }
1447#line 107 "lib/route/cls/ematch_grammar.l"
1450#line 107 "lib/route/cls/ematch_grammar.l"
1451{ yylval->i = TCF_LAYER_TRANSPORT;
return LAYER; }
1455#line 109 "lib/route/cls/ematch_grammar.l"
1460#line 110 "lib/route/cls/ematch_grammar.l"
1461return META_LOADAVG_0;
1465#line 111 "lib/route/cls/ematch_grammar.l"
1466return META_LOADAVG_1;
1470#line 112 "lib/route/cls/ematch_grammar.l"
1471return META_LOADAVG_2;
1475#line 113 "lib/route/cls/ematch_grammar.l"
1480#line 114 "lib/route/cls/ematch_grammar.l"
1485#line 115 "lib/route/cls/ematch_grammar.l"
1490#line 116 "lib/route/cls/ematch_grammar.l"
1495#line 117 "lib/route/cls/ematch_grammar.l"
1500#line 118 "lib/route/cls/ematch_grammar.l"
1505#line 119 "lib/route/cls/ematch_grammar.l"
1510#line 120 "lib/route/cls/ematch_grammar.l"
1515#line 121 "lib/route/cls/ematch_grammar.l"
1520#line 122 "lib/route/cls/ematch_grammar.l"
1521return META_RTCLASSID;
1525#line 123 "lib/route/cls/ematch_grammar.l"
1530#line 124 "lib/route/cls/ematch_grammar.l"
1531return META_SK_FAMILY;
1535#line 125 "lib/route/cls/ematch_grammar.l"
1536return META_SK_STATE;
1540#line 126 "lib/route/cls/ematch_grammar.l"
1541return META_SK_REUSE;
1545#line 127 "lib/route/cls/ematch_grammar.l"
1546return META_SK_REFCNT;
1550#line 128 "lib/route/cls/ematch_grammar.l"
1551return META_SK_RCVBUF;
1555#line 129 "lib/route/cls/ematch_grammar.l"
1556return META_SK_SNDBUF;
1560#line 130 "lib/route/cls/ematch_grammar.l"
1561return META_SK_SHUTDOWN;
1565#line 131 "lib/route/cls/ematch_grammar.l"
1566return META_SK_PROTO;
1570#line 132 "lib/route/cls/ematch_grammar.l"
1575#line 133 "lib/route/cls/ematch_grammar.l"
1576return META_SK_RMEM_ALLOC;
1580#line 134 "lib/route/cls/ematch_grammar.l"
1581return META_SK_WMEM_ALLOC;
1585#line 135 "lib/route/cls/ematch_grammar.l"
1586return META_SK_WMEM_QUEUED;
1590#line 136 "lib/route/cls/ematch_grammar.l"
1591return META_SK_RCV_QLEN;
1595#line 137 "lib/route/cls/ematch_grammar.l"
1596return META_SK_SND_QLEN;
1600#line 138 "lib/route/cls/ematch_grammar.l"
1601return META_SK_ERR_QLEN;
1605#line 139 "lib/route/cls/ematch_grammar.l"
1606return META_SK_FORWARD_ALLOCS;
1610#line 140 "lib/route/cls/ematch_grammar.l"
1611return META_SK_ALLOCS;
1615#line 141 "lib/route/cls/ematch_grammar.l"
1616return META_SK_ROUTE_CAPS;
1620#line 142 "lib/route/cls/ematch_grammar.l"
1625#line 143 "lib/route/cls/ematch_grammar.l"
1626return META_SK_LINGERTIME;
1630#line 144 "lib/route/cls/ematch_grammar.l"
1631return META_SK_ACK_BACKLOG;
1635#line 145 "lib/route/cls/ematch_grammar.l"
1636return META_SK_MAX_ACK_BACKLOG;
1640#line 146 "lib/route/cls/ematch_grammar.l"
1645#line 147 "lib/route/cls/ematch_grammar.l"
1646return META_SK_RCVLOWAT;
1650#line 148 "lib/route/cls/ematch_grammar.l"
1651return META_SK_RCVTIMEO;
1655#line 149 "lib/route/cls/ematch_grammar.l"
1656return META_SK_SNDTIMEO;
1660#line 150 "lib/route/cls/ematch_grammar.l"
1661return META_SK_SENDMSG_OFF;
1665#line 151 "lib/route/cls/ematch_grammar.l"
1666return META_SK_WRITE_PENDING;
1670#line 152 "lib/route/cls/ematch_grammar.l"
1675#line 153 "lib/route/cls/ematch_grammar.l"
1680#line 155 "lib/route/cls/ematch_grammar.l"
1685#line 156 "lib/route/cls/ematch_grammar.l"
1686return META_SK_BOUND_IF;
1690#line 159 "lib/route/cls/ematch_grammar.l"
1692 yylval->s = strdup(yytext);
1693 if (yylval->s == NULL)
1695 NL_DBG(4,
"lex STR=%s\n", yylval->s);
1701#line 166 "lib/route/cls/ematch_grammar.l"
1704#line 1704 "lib/route/cls/ematch_grammar.c"
1705case YY_STATE_EOF(INITIAL):
1706case YY_STATE_EOF(QUOTE):
1709 case YY_END_OF_BUFFER:
1712 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
1715 *yy_cp = yyg->yy_hold_char;
1716 YY_RESTORE_YY_MORE_OFFSET
1718 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1729 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1730 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1731 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1741 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1743 yy_state_type yy_next_state;
1745 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
1747 yy_current_state = yy_get_previous_state( yyscanner );
1758 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
1760 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1762 if ( yy_next_state )
1765 yy_cp = ++yyg->yy_c_buf_p;
1766 yy_current_state = yy_next_state;
1772 yy_cp = yyg->yy_c_buf_p;
1773 goto yy_find_action;
1777 else switch ( yy_get_next_buffer( yyscanner ) )
1779 case EOB_ACT_END_OF_FILE:
1781 yyg->yy_did_buffer_switch_on_eof = 0;
1783 if ( yywrap( yyscanner ) )
1794 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
1796 yy_act = YY_STATE_EOF(YY_START);
1802 if ( ! yyg->yy_did_buffer_switch_on_eof )
1808 case EOB_ACT_CONTINUE_SCAN:
1810 yyg->yytext_ptr + yy_amount_of_matched_text;
1812 yy_current_state = yy_get_previous_state( yyscanner );
1814 yy_cp = yyg->yy_c_buf_p;
1815 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1818 case EOB_ACT_LAST_MATCH:
1820 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
1822 yy_current_state = yy_get_previous_state( yyscanner );
1824 yy_cp = yyg->yy_c_buf_p;
1825 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1826 goto yy_find_action;
1833 "fatal flex scanner internal error--no action found" );
1846static int yy_get_next_buffer (yyscan_t yyscanner)
1849 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1850 char *source = yyg->yytext_ptr;
1851 int number_to_move, i;
1854 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
1856 "fatal flex scanner internal error--end of buffer missed" );
1858 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1860 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
1865 return EOB_ACT_END_OF_FILE;
1873 return EOB_ACT_LAST_MATCH;
1880 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr - 1);
1882 for ( i = 0; i < number_to_move; ++i )
1883 *(dest++) = *(source++);
1885 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1889 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
1894 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1896 while ( num_to_read <= 0 )
1902 int yy_c_buf_p_offset =
1903 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
1905 if ( b->yy_is_our_buffer )
1907 int new_size = b->yy_buf_size * 2;
1909 if ( new_size <= 0 )
1910 b->yy_buf_size += b->yy_buf_size / 8;
1912 b->yy_buf_size *= 2;
1914 b->yy_ch_buf = (
char *)
1916 yyrealloc( (
void *) b->yy_ch_buf,
1917 (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
1921 b->yy_ch_buf = NULL;
1923 if ( ! b->yy_ch_buf )
1925 "fatal error - scanner input buffer overflow" );
1927 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1929 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1934 if ( num_to_read > YY_READ_BUF_SIZE )
1935 num_to_read = YY_READ_BUF_SIZE;
1938 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1939 yyg->yy_n_chars, num_to_read );
1941 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1944 if ( yyg->yy_n_chars == 0 )
1946 if ( number_to_move == YY_MORE_ADJ )
1948 ret_val = EOB_ACT_END_OF_FILE;
1949 yyrestart( yyin , yyscanner);
1954 ret_val = EOB_ACT_LAST_MATCH;
1955 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1956 YY_BUFFER_EOF_PENDING;
1961 ret_val = EOB_ACT_CONTINUE_SCAN;
1963 if ((yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1965 int new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
1966 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (
char *) yyrealloc(
1967 (
void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size , yyscanner );
1968 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1969 YY_FATAL_ERROR(
"out of dynamic memory in yy_get_next_buffer()" );
1971 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
1974 yyg->yy_n_chars += number_to_move;
1975 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1976 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1978 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1985 static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
1987 yy_state_type yy_current_state;
1991 yy_current_state = yyg->yy_start;
1993 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
1995 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1996 if ( yy_accept[yy_current_state] )
1998 yyg->yy_last_accepting_state = yy_current_state;
1999 yyg->yy_last_accepting_cpos = yy_cp;
2001 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2003 yy_current_state = (int) yy_def[yy_current_state];
2004 if ( yy_current_state >= 393 )
2005 yy_c = yy_meta[yy_c];
2007 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2010 return yy_current_state;
2018 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
2022 char *yy_cp = yyg->yy_c_buf_p;
2025 if ( yy_accept[yy_current_state] )
2027 yyg->yy_last_accepting_state = yy_current_state;
2028 yyg->yy_last_accepting_cpos = yy_cp;
2030 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2032 yy_current_state = (int) yy_def[yy_current_state];
2033 if ( yy_current_state >= 393 )
2034 yy_c = yy_meta[yy_c];
2036 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
2037 yy_is_jam = (yy_current_state == 392);
2040 return yy_is_jam ? 0 : yy_current_state;
2049 static int yyinput (yyscan_t yyscanner)
2051 static int input (yyscan_t yyscanner)
2058 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2060 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
2066 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
2068 *yyg->yy_c_buf_p =
'\0';
2072 int offset = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr);
2075 switch ( yy_get_next_buffer( yyscanner ) )
2077 case EOB_ACT_LAST_MATCH:
2089 yyrestart( yyin , yyscanner);
2093 case EOB_ACT_END_OF_FILE:
2095 if ( yywrap( yyscanner ) )
2098 if ( ! yyg->yy_did_buffer_switch_on_eof )
2101 return yyinput(yyscanner);
2103 return input(yyscanner);
2107 case EOB_ACT_CONTINUE_SCAN:
2108 yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
2114 c = *(
unsigned char *) yyg->yy_c_buf_p;
2115 *yyg->yy_c_buf_p =
'\0';
2116 yyg->yy_hold_char = *++yyg->yy_c_buf_p;
2127 void yyrestart (FILE * input_file , yyscan_t yyscanner)
2131 if ( ! YY_CURRENT_BUFFER ){
2132 yyensure_buffer_stack (yyscanner);
2133 YY_CURRENT_BUFFER_LVALUE =
2134 yy_create_buffer( yyin, YY_BUF_SIZE , yyscanner);
2137 yy_init_buffer( YY_CURRENT_BUFFER, input_file , yyscanner);
2138 yy_load_buffer_state( yyscanner );
2145 void yy_switch_to_buffer (
YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2154 yyensure_buffer_stack (yyscanner);
2155 if ( YY_CURRENT_BUFFER == new_buffer )
2158 if ( YY_CURRENT_BUFFER )
2161 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2162 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2163 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2166 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2167 yy_load_buffer_state( yyscanner );
2174 yyg->yy_did_buffer_switch_on_eof = 1;
2177static void yy_load_buffer_state (yyscan_t yyscanner)
2180 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2181 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2182 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2183 yyg->yy_hold_char = *yyg->yy_c_buf_p;
2192 YY_BUFFER_STATE yy_create_buffer (FILE * file,
int size , yyscan_t yyscanner)
2198 YY_FATAL_ERROR(
"out of dynamic memory in yy_create_buffer()" );
2200 b->yy_buf_size = size;
2205 b->yy_ch_buf = (
char *)
yyalloc( (yy_size_t) (b->yy_buf_size + 2) , yyscanner );
2206 if ( ! b->yy_ch_buf )
2207 YY_FATAL_ERROR(
"out of dynamic memory in yy_create_buffer()" );
2209 b->yy_is_our_buffer = 1;
2211 yy_init_buffer( b, file , yyscanner);
2227 if ( b == YY_CURRENT_BUFFER )
2230 if ( b->yy_is_our_buffer )
2231 yyfree( (
void *) b->yy_ch_buf , yyscanner );
2233 yyfree( (
void *) b , yyscanner );
2240 static void yy_init_buffer (
YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
2246 yy_flush_buffer( b , yyscanner);
2248 b->yy_input_file = file;
2249 b->yy_fill_buffer = 1;
2255 if (b != YY_CURRENT_BUFFER){
2260 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2281 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2282 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2284 b->yy_buf_pos = &b->yy_ch_buf[0];
2287 b->yy_buffer_status = YY_BUFFER_NEW;
2289 if ( b == YY_CURRENT_BUFFER )
2290 yy_load_buffer_state( yyscanner );
2299void yypush_buffer_state (
YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2302 if (new_buffer == NULL)
2305 yyensure_buffer_stack(yyscanner);
2308 if ( YY_CURRENT_BUFFER )
2311 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2312 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2313 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2317 if (YY_CURRENT_BUFFER)
2319 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2322 yy_load_buffer_state( yyscanner );
2323 yyg->yy_did_buffer_switch_on_eof = 1;
2330void yypop_buffer_state (yyscan_t yyscanner)
2333 if (!YY_CURRENT_BUFFER)
2336 yy_delete_buffer(YY_CURRENT_BUFFER , yyscanner);
2337 YY_CURRENT_BUFFER_LVALUE = NULL;
2341 if (YY_CURRENT_BUFFER) {
2342 yy_load_buffer_state( yyscanner );
2343 yyg->yy_did_buffer_switch_on_eof = 1;
2350static void yyensure_buffer_stack (yyscan_t yyscanner)
2352 yy_size_t num_to_alloc;
2366 YY_FATAL_ERROR(
"out of dynamic memory in yyensure_buffer_stack()" );
2378 yy_size_t grow_size = 8 ;
2386 YY_FATAL_ERROR(
"out of dynamic memory in yyensure_buffer_stack()" );
2400YY_BUFFER_STATE yy_scan_buffer (
char * base, yy_size_t size , yyscan_t yyscanner)
2405 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2406 base[size-1] != YY_END_OF_BUFFER_CHAR )
2412 YY_FATAL_ERROR(
"out of dynamic memory in yy_scan_buffer()" );
2414 b->yy_buf_size = (int) (size - 2);
2415 b->yy_buf_pos = b->yy_ch_buf = base;
2416 b->yy_is_our_buffer = 0;
2417 b->yy_input_file = NULL;
2418 b->yy_n_chars = b->yy_buf_size;
2419 b->yy_is_interactive = 0;
2421 b->yy_fill_buffer = 0;
2422 b->yy_buffer_status = YY_BUFFER_NEW;
2424 yy_switch_to_buffer( b , yyscanner );
2437YY_BUFFER_STATE yy_scan_string (
const char * yystr , yyscan_t yyscanner)
2440 return yy_scan_bytes( yystr, (
int) strlen(yystr) , yyscanner);
2450YY_BUFFER_STATE yy_scan_bytes (
const char * yybytes,
int _yybytes_len , yyscan_t yyscanner)
2458 n = (yy_size_t) (_yybytes_len + 2);
2459 buf = (
char *)
yyalloc( n , yyscanner );
2461 YY_FATAL_ERROR(
"out of dynamic memory in yy_scan_bytes()" );
2463 for ( i = 0; i < _yybytes_len; ++i )
2464 buf[i] = yybytes[i];
2466 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2468 b = yy_scan_buffer( buf, n , yyscanner);
2470 YY_FATAL_ERROR(
"bad buffer in yy_scan_bytes()" );
2475 b->yy_is_our_buffer = 1;
2480#ifndef YY_EXIT_FAILURE
2481#define YY_EXIT_FAILURE 2
2484static void yynoreturn yy_fatal_error (
const char* msg , yyscan_t yyscanner)
2488 fprintf( stderr,
"%s\n", msg );
2489 exit( YY_EXIT_FAILURE );
2499 int yyless_macro_arg = (n); \
2500 YY_LESS_LINENO(yyless_macro_arg);\
2501 yytext[yyleng] = yyg->yy_hold_char; \
2502 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2503 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2504 *yyg->yy_c_buf_p = '\0'; \
2505 yyleng = yyless_macro_arg; \
2514YY_EXTRA_TYPE yyget_extra (yyscan_t yyscanner)
2523int yyget_lineno (yyscan_t yyscanner)
2527 if (! YY_CURRENT_BUFFER)
2536int yyget_column (yyscan_t yyscanner)
2540 if (! YY_CURRENT_BUFFER)
2549FILE *yyget_in (yyscan_t yyscanner)
2558FILE *yyget_out (yyscan_t yyscanner)
2567int yyget_leng (yyscan_t yyscanner)
2577char *yyget_text (yyscan_t yyscanner)
2587void yyset_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
2590 yyextra = user_defined ;
2597void yyset_lineno (
int _line_number , yyscan_t yyscanner)
2602 if (! YY_CURRENT_BUFFER )
2603 YY_FATAL_ERROR(
"yyset_lineno called with no buffer" );
2605 yylineno = _line_number;
2612void yyset_column (
int _column_no , yyscan_t yyscanner)
2617 if (! YY_CURRENT_BUFFER )
2618 YY_FATAL_ERROR(
"yyset_column called with no buffer" );
2620 yycolumn = _column_no;
2629void yyset_in (FILE * _in_str , yyscan_t yyscanner)
2635void yyset_out (FILE * _out_str , yyscan_t yyscanner)
2641int yyget_debug (yyscan_t yyscanner)
2644 return yy_flex_debug;
2647void yyset_debug (
int _bdebug , yyscan_t yyscanner)
2650 yy_flex_debug = _bdebug ;
2655YYSTYPE * yyget_lval (yyscan_t yyscanner)
2661void yyset_lval (
YYSTYPE * yylval_param , yyscan_t yyscanner)
2664 yylval = yylval_param;
2673int yylex_init(yyscan_t* ptr_yy_globals)
2675 if (ptr_yy_globals == NULL){
2680 *ptr_yy_globals = (yyscan_t)
yyalloc (
sizeof(
struct yyguts_t ), NULL );
2682 if (*ptr_yy_globals == NULL){
2688 memset(*ptr_yy_globals,0x00,
sizeof(
struct yyguts_t));
2690 return yy_init_globals ( *ptr_yy_globals );
2700int yylex_init_extra( YY_EXTRA_TYPE yy_user_defined, yyscan_t* ptr_yy_globals )
2704 yyset_extra (yy_user_defined, &dummy_yyguts);
2706 if (ptr_yy_globals == NULL){
2711 *ptr_yy_globals = (yyscan_t)
yyalloc (
sizeof(
struct yyguts_t ), &dummy_yyguts );
2713 if (*ptr_yy_globals == NULL){
2720 memset(*ptr_yy_globals,0x00,
sizeof(
struct yyguts_t));
2722 yyset_extra (yy_user_defined, *ptr_yy_globals);
2724 return yy_init_globals ( *ptr_yy_globals );
2727static int yy_init_globals (yyscan_t yyscanner)
2737 yyg->yy_c_buf_p = NULL;
2741 yyg->yy_start_stack_ptr = 0;
2742 yyg->yy_start_stack_depth = 0;
2743 yyg->yy_start_stack = NULL;
2761int yylex_destroy (yyscan_t yyscanner)
2766 while(YY_CURRENT_BUFFER){
2767 yy_delete_buffer( YY_CURRENT_BUFFER , yyscanner );
2768 YY_CURRENT_BUFFER_LVALUE = NULL;
2769 yypop_buffer_state(yyscanner);
2777 yyfree( yyg->yy_start_stack , yyscanner );
2778 yyg->yy_start_stack = NULL;
2782 yy_init_globals( yyscanner);
2785 yyfree ( yyscanner , yyscanner );
2795static void yy_flex_strncpy (
char* s1,
const char * s2,
int n , yyscan_t yyscanner)
2801 for ( i = 0; i < n; ++i )
2806#ifdef YY_NEED_STRLEN
2807static int yy_flex_strlen (
const char * s , yyscan_t yyscanner)
2810 for ( n = 0; s[n]; ++n )
2817void *
yyalloc (yy_size_t size , yyscan_t yyscanner)
2821 return malloc(size);
2824void *yyrealloc (
void * ptr, yy_size_t size , yyscan_t yyscanner)
2836 return realloc(ptr, size);
2839void yyfree (
void * ptr , yyscan_t yyscanner)
2843 free( (
char *) ptr );
2846#define YYTABLES_NAME "yytables"
2848#line 166 "lib/route/cls/ematch_grammar.l"
int yy_bs_column
The column count.
int yy_bs_lineno
The line count.
size_t yy_buffer_stack_max
capacity of stack.
YY_BUFFER_STATE * yy_buffer_stack
Stack as an array.
size_t yy_buffer_stack_top
index of top of stack.