1 #line 2 "route/cls/ematch_grammar.c"
3 #line 4 "route/cls/ematch_grammar.c"
5 #define YY_INT_ALIGNED short int
10 #define YY_FLEX_MAJOR_VERSION 2
11 #define YY_FLEX_MINOR_VERSION 5
12 #define YY_FLEX_SUBMINOR_VERSION 35
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;
61 #define INT8_MIN (-128)
64 #define INT16_MIN (-32767-1)
67 #define INT32_MIN (-2147483647-1)
70 #define INT8_MAX (127)
73 #define INT16_MAX (32767)
76 #define INT32_MAX (2147483647)
79 #define UINT8_MAX (255U)
82 #define UINT16_MAX (65535U)
85 #define UINT32_MAX (4294967295U)
98 #if defined (__STDC__)
106 #define yyconst const
119 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
122 #ifndef YY_TYPEDEF_YY_SCANNER_T
123 #define YY_TYPEDEF_YY_SCANNER_T
124 typedef void* yyscan_t;
129 #define yyin yyg->yyin_r
130 #define yyout yyg->yyout_r
131 #define yyextra yyg->yyextra_r
132 #define yyleng yyg->yyleng_r
133 #define yytext yyg->yytext_r
134 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
135 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
136 #define yy_flex_debug yyg->yy_flex_debug_r
142 #define BEGIN yyg->yy_start = 1 + 2 *
148 #define YY_START ((yyg->yy_start - 1) / 2)
149 #define YYSTATE YY_START
152 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
155 #define YY_NEW_FILE ematch_restart(yyin ,yyscanner )
157 #define YY_END_OF_BUFFER_CHAR 0
161 #define YY_BUF_SIZE 16384
166 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
168 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
169 #define YY_TYPEDEF_YY_BUFFER_STATE
173 #define EOB_ACT_CONTINUE_SCAN 0
174 #define EOB_ACT_END_OF_FILE 1
175 #define EOB_ACT_LAST_MATCH 2
177 #define YY_LESS_LINENO(n)
184 int yyless_macro_arg = (n); \
185 YY_LESS_LINENO(yyless_macro_arg);\
186 *yy_cp = yyg->yy_hold_char; \
187 YY_RESTORE_YY_MORE_OFFSET \
188 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
189 YY_DO_BEFORE_ACTION; \
193 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
195 #ifndef YY_TYPEDEF_YY_SIZE_T
196 #define YY_TYPEDEF_YY_SIZE_T
197 typedef size_t yy_size_t;
200 #ifndef YY_STRUCT_YY_BUFFER_STATE
201 #define YY_STRUCT_YY_BUFFER_STATE
212 yy_size_t yy_buf_size;
223 int yy_is_our_buffer;
230 int yy_is_interactive;
246 int yy_buffer_status;
248 #define YY_BUFFER_NEW 0
249 #define YY_BUFFER_NORMAL 1
260 #define YY_BUFFER_EOF_PENDING 2
271 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
272 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
278 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
280 void ematch_restart (FILE *input_file ,yyscan_t yyscanner );
281 void ematch__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
282 YY_BUFFER_STATE ematch__create_buffer (FILE *file,
int size ,yyscan_t yyscanner );
283 void ematch__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
284 void ematch__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
285 void ematch_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
286 void ematch_pop_buffer_state (yyscan_t yyscanner );
288 static void ematch_ensure_buffer_stack (yyscan_t yyscanner );
289 static void ematch__load_buffer_state (yyscan_t yyscanner );
290 static void ematch__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
292 #define YY_FLUSH_BUFFER ematch__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
294 YY_BUFFER_STATE ematch__scan_buffer (
char *base,yy_size_t size ,yyscan_t yyscanner );
295 YY_BUFFER_STATE ematch__scan_string (yyconst
char *yy_str ,yyscan_t yyscanner );
296 YY_BUFFER_STATE ematch__scan_bytes (yyconst
char *bytes,
int len ,yyscan_t yyscanner );
298 void *ematch_alloc (yy_size_t ,yyscan_t yyscanner );
299 void *ematch_realloc (
void *,yy_size_t ,yyscan_t yyscanner );
300 void ematch_free (
void * ,yyscan_t yyscanner );
302 #define yy_new_buffer ematch__create_buffer
304 #define yy_set_interactive(is_interactive) \
306 if ( ! YY_CURRENT_BUFFER ){ \
307 ematch_ensure_buffer_stack (yyscanner); \
308 YY_CURRENT_BUFFER_LVALUE = \
309 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
311 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
314 #define yy_set_bol(at_bol) \
316 if ( ! YY_CURRENT_BUFFER ){\
317 ematch_ensure_buffer_stack (yyscanner); \
318 YY_CURRENT_BUFFER_LVALUE = \
319 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
321 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
324 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
326 #define ematch_wrap(n) 1
327 #define YY_SKIP_YYWRAP
329 typedef unsigned char YY_CHAR;
331 typedef int yy_state_type;
333 #define yytext_ptr yytext_r
335 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
336 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
337 static int yy_get_next_buffer (yyscan_t yyscanner );
338 static void yy_fatal_error (yyconst
char msg[] ,yyscan_t yyscanner );
343 #define YY_DO_BEFORE_ACTION \
344 yyg->yytext_ptr = yy_bp; \
345 yyleng = (size_t) (yy_cp - yy_bp); \
346 yyg->yy_hold_char = *yy_cp; \
348 yyg->yy_c_buf_p = yy_cp;
350 #define YY_NUM_RULES 91
351 #define YY_END_OF_BUFFER 92
356 flex_int32_t yy_verify;
359 static yyconst flex_int16_t yy_accept[393] =
361 0, 0, 0, 0, 92, 90, 1, 18, 2, 26,
362 23, 24, 30, 5, 5, 12, 8, 10, 90, 90,
363 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
364 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
365 90, 91, 3, 91, 4, 90, 1, 14, 5, 90,
366 28, 90, 29, 90, 90, 90, 40, 90, 90, 90,
367 90, 90, 15, 90, 90, 90, 90, 32, 90, 90,
368 90, 33, 90, 90, 7, 9, 90, 11, 90, 90,
369 90, 90, 90, 90, 90, 90, 90, 16, 3, 6,
370 13, 19, 37, 90, 39, 90, 90, 90, 38, 17,
372 90, 90, 42, 90, 90, 34, 35, 90, 47, 90,
373 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
374 90, 90, 31, 36, 25, 22, 90, 90, 21, 90,
375 90, 90, 90, 90, 54, 90, 90, 48, 90, 90,
376 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
377 90, 90, 90, 90, 90, 90, 86, 90, 27, 90,
378 90, 90, 90, 90, 90, 90, 49, 90, 90, 57,
379 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
380 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
381 90, 90, 90, 90, 90, 90, 90, 90, 53, 51,
383 90, 43, 90, 87, 90, 90, 90, 90, 90, 90,
384 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
385 90, 90, 90, 90, 90, 90, 90, 90, 20, 90,
386 52, 88, 90, 50, 90, 90, 90, 90, 90, 90,
387 90, 76, 90, 90, 80, 90, 90, 90, 90, 90,
388 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
389 66, 90, 90, 55, 90, 90, 90, 90, 90, 90,
390 90, 90, 90, 90, 90, 65, 90, 90, 90, 90,
391 90, 60, 90, 90, 90, 90, 90, 90, 90, 59,
392 90, 90, 41, 44, 45, 46, 56, 90, 74, 90,
394 90, 58, 90, 90, 90, 90, 62, 90, 90, 61,
395 90, 90, 90, 90, 90, 63, 90, 90, 90, 90,
396 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
397 90, 90, 90, 90, 90, 90, 90, 90, 90, 89,
398 72, 90, 90, 90, 70, 81, 82, 90, 90, 90,
399 64, 71, 83, 90, 90, 90, 90, 90, 90, 90,
400 90, 90, 90, 90, 90, 90, 90, 90, 77, 90,
401 67, 75, 90, 68, 90, 90, 78, 90, 90, 84,
402 69, 90, 90, 90, 90, 90, 90, 85, 73, 90,
407 static yyconst flex_int32_t yy_ec[256] =
409 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
410 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
411 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
412 1, 2, 4, 5, 1, 1, 1, 6, 1, 7,
413 8, 1, 9, 1, 1, 1, 1, 10, 11, 12,
414 13, 14, 14, 15, 14, 16, 14, 1, 1, 17,
415 18, 19, 1, 1, 20, 21, 22, 23, 24, 25,
416 1, 26, 27, 1, 28, 29, 30, 31, 32, 33,
417 1, 34, 35, 36, 37, 1, 1, 38, 1, 1,
418 1, 39, 1, 1, 40, 1, 41, 42, 43, 44,
420 45, 46, 47, 48, 49, 1, 50, 51, 52, 53,
421 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
422 64, 1, 1, 65, 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,
428 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
429 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,
434 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
435 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
439 static yyconst flex_int32_t yy_meta[66] =
441 1, 2, 3, 1, 3, 2, 2, 2, 2, 1,
442 1, 1, 1, 1, 1, 1, 2, 2, 2, 1,
443 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
444 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
445 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
446 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
450 static yyconst flex_int16_t yy_base[396] =
452 0, 0, 63, 64, 537, 0, 68, 0, 538, 530,
453 538, 538, 538, 62, 69, 538, 538, 516, 55, 57,
454 52, 55, 60, 67, 72, 73, 64, 79, 75, 100,
455 115, 65, 83, 475, 102, 117, 118, 89, 121, 131,
456 482, 467, 0, 538, 538, 0, 133, 538, 167, 179,
457 538, 123, 0, 111, 124, 132, 516, 153, 138, 151,
458 169, 171, 0, 172, 170, 178, 171, 0, 129, 515,
459 517, 0, 469, 466, 0, 0, 485, 0, 183, 466,
460 41, 471, 186, 475, 482, 183, 480, 538, 0, 0,
461 0, 0, 0, 184, 0, 187, 189, 207, 0, 0,
463 206, 218, 0, 208, 215, 0, 0, 479, 466, 474,
464 466, 466, 194, 461, 455, 469, 461, 462, 469, 228,
465 456, 455, 0, 0, 0, 0, 226, 213, 0, 217,
466 456, 465, 464, 459, 0, 458, 438, 0, 447, 446,
467 458, 452, 439, 204, 442, 438, 237, 453, 444, 451,
468 434, 249, 236, 426, 199, 445, 0, 220, 0, 227,
469 443, 435, 425, 432, 431, 428, 0, 430, 423, 0,
470 432, 429, 427, 417, 419, 423, 417, 415, 419, 408,
471 208, 409, 152, 424, 408, 414, 406, 421, 423, 408,
472 417, 412, 415, 235, 261, 406, 413, 410, 0, 0,
474 411, 0, 397, 0, 414, 399, 399, 411, 401, 387,
475 400, 400, 406, 391, 385, 257, 400, 384, 389, 381,
476 395, 379, 258, 378, 391, 383, 375, 370, 0, 262,
477 0, 0, 392, 0, 382, 388, 386, 384, 371, 375,
478 384, 0, 379, 382, 0, 368, 365, 360, 365, 369,
479 364, 371, 375, 369, 361, 368, 355, 350, 360, 363,
480 0, 367, 361, 0, 266, 294, 361, 363, 345, 362,
481 350, 336, 342, 341, 354, 0, 345, 349, 332, 341,
482 333, 0, 350, 350, 331, 334, 336, 340, 333, 0,
483 266, 344, 0, 0, 0, 0, 0, 340, 0, 333,
485 336, 0, 336, 320, 328, 332, 0, 335, 330, 0,
486 323, 330, 325, 309, 325, 0, 324, 317, 307, 311,
487 315, 318, 310, 322, 312, 320, 306, 299, 303, 305,
488 314, 314, 300, 299, 297, 299, 304, 303, 296, 0,
489 0, 305, 293, 302, 0, 0, 0, 289, 287, 287,
490 0, 0, 0, 286, 279, 285, 283, 285, 287, 290,
491 281, 265, 275, 277, 273, 270, 266, 261, 0, 268,
492 0, 0, 264, 0, 265, 214, 0, 207, 209, 0,
493 0, 205, 170, 109, 93, 75, 53, 0, 0, 57,
494 0, 538, 325, 329, 333
498 static yyconst flex_int16_t yy_def[396] =
500 392, 1, 393, 393, 392, 394, 392, 394, 392, 392,
501 392, 392, 392, 394, 394, 392, 392, 392, 394, 394,
502 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
503 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
504 394, 392, 395, 392, 392, 394, 392, 392, 394, 394,
505 392, 394, 394, 394, 394, 394, 394, 394, 394, 394,
506 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
507 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
508 394, 394, 394, 394, 394, 394, 394, 392, 395, 50,
509 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,
519 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
520 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,
530 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
531 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, 394, 394, 394, 394, 394, 394, 394, 394, 394,
541 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
542 394, 0, 392, 392, 392
546 static yyconst flex_int16_t yy_nxt[604] =
548 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
549 15, 15, 15, 15, 15, 15, 16, 17, 18, 19,
550 6, 20, 6, 21, 22, 6, 23, 6, 24, 25,
551 26, 27, 28, 6, 29, 30, 31, 6, 6, 6,
552 19, 6, 20, 32, 33, 22, 34, 6, 23, 6,
553 35, 36, 26, 27, 37, 6, 38, 39, 40, 31,
554 41, 6, 6, 6, 42, 44, 44, 45, 45, 47,
555 47, 49, 49, 49, 49, 49, 49, 49, 49, 49,
556 49, 49, 49, 49, 49, 52, 54, 55, 56, 114,
557 53, 59, 57, 58, 115, 60, 61, 63, 64, 50,
559 65, 44, 44, 391, 62, 73, 390, 52, 54, 74,
560 55, 56, 59, 53, 57, 58, 60, 61, 55, 64,
561 63, 66, 65, 67, 50, 70, 62, 71, 58, 82,
562 72, 68, 389, 69, 47, 47, 59, 64, 75, 388,
563 60, 55, 66, 92, 67, 91, 65, 83, 105, 93,
564 58, 84, 66, 68, 67, 77, 69, 79, 64, 387,
565 78, 60, 68, 94, 69, 92, 91, 80, 65, 105,
566 85, 93, 97, 86, 81, 67, 49, 49, 49, 49,
567 49, 49, 49, 96, 68, 94, 98, 69, 90, 90,
568 90, 90, 90, 90, 90, 97, 102, 217, 90, 90,
570 90, 90, 90, 90, 99, 96, 100, 101, 104, 98,
571 103, 218, 386, 123, 124, 103, 125, 97, 102, 90,
572 90, 90, 90, 90, 90, 111, 126, 99, 117, 100,
573 101, 121, 103, 104, 118, 123, 124, 103, 125, 112,
574 97, 127, 128, 129, 136, 130, 172, 126, 159, 158,
575 191, 160, 137, 194, 173, 192, 214, 385, 384, 195,
576 383, 215, 382, 128, 127, 229, 129, 130, 144, 145,
577 158, 159, 146, 147, 160, 148, 194, 176, 149, 150,
578 186, 195, 151, 187, 152, 153, 154, 229, 188, 155,
579 177, 182, 230, 183, 189, 265, 247, 257, 248, 258,
581 184, 293, 185, 294, 295, 296, 318, 249, 381, 380,
582 379, 378, 377, 376, 230, 250, 259, 375, 265, 374,
583 373, 319, 372, 371, 293, 43, 43, 43, 43, 46,
584 370, 369, 46, 89, 89, 368, 367, 366, 365, 364,
585 363, 362, 361, 360, 359, 358, 357, 356, 355, 354,
586 353, 352, 351, 350, 349, 348, 347, 346, 345, 344,
587 343, 342, 341, 340, 339, 338, 337, 336, 335, 334,
588 333, 332, 331, 330, 329, 328, 327, 326, 325, 324,
589 323, 322, 321, 320, 317, 316, 315, 314, 313, 312,
590 311, 310, 309, 308, 307, 306, 305, 304, 303, 302,
592 301, 300, 299, 298, 297, 292, 291, 290, 289, 288,
593 287, 286, 285, 284, 283, 282, 281, 280, 279, 278,
594 277, 276, 275, 274, 273, 272, 271, 270, 269, 268,
595 267, 266, 264, 263, 262, 261, 260, 256, 255, 254,
596 253, 252, 251, 246, 245, 244, 243, 242, 241, 240,
597 239, 238, 237, 236, 235, 234, 233, 232, 231, 228,
598 227, 226, 225, 224, 223, 222, 221, 220, 219, 216,
599 213, 212, 211, 210, 209, 208, 207, 206, 205, 204,
600 203, 202, 201, 200, 199, 198, 197, 196, 193, 190,
601 181, 180, 179, 178, 175, 174, 171, 170, 169, 168,
603 167, 166, 165, 164, 163, 162, 161, 157, 156, 143,
604 142, 141, 140, 139, 138, 135, 134, 133, 132, 131,
605 122, 120, 119, 116, 113, 110, 109, 108, 107, 106,
606 95, 88, 87, 76, 51, 48, 392, 5, 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,
611 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
612 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
617 static yyconst flex_int16_t yy_chk[604] =
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, 1, 1, 1, 1, 1,
624 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
625 1, 1, 1, 1, 1, 3, 4, 3, 4, 7,
626 7, 14, 14, 14, 14, 14, 14, 14, 15, 15,
627 15, 15, 15, 15, 15, 19, 20, 21, 22, 81,
628 19, 25, 23, 24, 81, 25, 26, 27, 28, 14,
630 29, 3, 4, 390, 26, 32, 387, 19, 20, 32,
631 21, 22, 25, 19, 23, 24, 25, 26, 33, 28,
632 27, 30, 29, 30, 14, 31, 26, 31, 35, 38,
633 31, 30, 386, 30, 47, 47, 36, 37, 33, 385,
634 36, 33, 30, 54, 30, 52, 39, 38, 69, 55,
635 35, 38, 40, 30, 40, 35, 30, 36, 37, 384,
636 35, 36, 40, 56, 40, 54, 52, 37, 39, 69,
637 39, 55, 59, 40, 37, 40, 49, 49, 49, 49,
638 49, 49, 49, 58, 40, 56, 60, 40, 50, 50,
639 50, 50, 50, 50, 50, 59, 65, 183, 50, 50,
641 50, 50, 50, 50, 61, 58, 62, 64, 67, 60,
642 66, 183, 383, 94, 96, 86, 97, 79, 65, 50,
643 50, 50, 50, 50, 50, 79, 98, 61, 83, 62,
644 64, 86, 66, 67, 83, 94, 96, 86, 97, 79,
645 79, 101, 102, 104, 113, 105, 144, 98, 128, 127,
646 155, 130, 113, 158, 144, 155, 181, 382, 379, 160,
647 378, 181, 376, 102, 101, 194, 104, 105, 120, 120,
648 127, 128, 120, 120, 130, 120, 158, 147, 120, 120,
649 153, 160, 120, 153, 120, 120, 120, 194, 153, 120,
650 147, 152, 195, 152, 153, 230, 216, 223, 216, 223,
652 152, 265, 152, 266, 266, 266, 291, 216, 375, 373,
653 370, 368, 367, 366, 195, 216, 223, 365, 230, 364,
654 363, 291, 362, 361, 265, 393, 393, 393, 393, 394,
655 360, 359, 394, 395, 395, 358, 357, 356, 355, 354,
656 350, 349, 348, 344, 343, 342, 339, 338, 337, 336,
657 335, 334, 333, 332, 331, 330, 329, 328, 327, 326,
658 325, 324, 323, 322, 321, 320, 319, 318, 317, 315,
659 314, 313, 312, 311, 309, 308, 306, 305, 304, 303,
660 301, 300, 298, 292, 289, 288, 287, 286, 285, 284,
661 283, 281, 280, 279, 278, 277, 275, 274, 273, 272,
663 271, 270, 269, 268, 267, 263, 262, 260, 259, 258,
664 257, 256, 255, 254, 253, 252, 251, 250, 249, 248,
665 247, 246, 244, 243, 241, 240, 239, 238, 237, 236,
666 235, 233, 228, 227, 226, 225, 224, 222, 221, 220,
667 219, 218, 217, 215, 214, 213, 212, 211, 210, 209,
668 208, 207, 206, 205, 203, 201, 198, 197, 196, 193,
669 192, 191, 190, 189, 188, 187, 186, 185, 184, 182,
670 180, 179, 178, 177, 176, 175, 174, 173, 172, 171,
671 169, 168, 166, 165, 164, 163, 162, 161, 156, 154,
672 151, 150, 149, 148, 146, 145, 143, 142, 141, 140,
674 139, 137, 136, 134, 133, 132, 131, 122, 121, 119,
675 118, 117, 116, 115, 114, 112, 111, 110, 109, 108,
676 87, 85, 84, 82, 80, 77, 74, 73, 71, 70,
677 57, 42, 41, 34, 18, 10, 5, 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,
682 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
683 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
691 #define REJECT reject_used_but_not_detected
692 #define yymore() yymore_used_but_not_detected
693 #define YY_MORE_ADJ 0
694 #define YY_RESTORE_YY_MORE_OFFSET
695 #line 1 "route/cls/ematch_grammar.l"
706 #line 13 "route/cls/ematch_grammar.l"
707 #include <netlink-local.h>
708 #include <netlink-tc.h>
709 #include <netlink/netlink.h>
710 #include <netlink/route/cls/ematch.h>
711 #include <netlink/route/cls/ematch/cmp.h>
712 #include "ematch_syntax.h"
713 #define YY_NO_INPUT 1
715 #line 716 "route/cls/ematch_grammar.c"
720 #ifndef YY_NO_UNISTD_H
728 #ifndef YY_EXTRA_TYPE
729 #define YY_EXTRA_TYPE void *
737 YY_EXTRA_TYPE yyextra_r;
740 FILE *yyin_r, *yyout_r;
750 int yy_did_buffer_switch_on_eof;
751 int yy_start_stack_ptr;
752 int yy_start_stack_depth;
754 yy_state_type yy_last_accepting_state;
755 char* yy_last_accepting_cpos;
768 static int yy_init_globals (yyscan_t yyscanner );
772 # define yylval yyg->yylval_r
774 int ematch_lex_init (yyscan_t* scanner);
776 int ematch_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
781 int ematch_lex_destroy (yyscan_t yyscanner );
783 int ematch_get_debug (yyscan_t yyscanner );
785 void ematch_set_debug (
int debug_flag ,yyscan_t yyscanner );
787 YY_EXTRA_TYPE ematch_get_extra (yyscan_t yyscanner );
789 void ematch_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
791 FILE *ematch_get_in (yyscan_t yyscanner );
793 void ematch_set_in (FILE * in_str ,yyscan_t yyscanner );
795 FILE *ematch_get_out (yyscan_t yyscanner );
797 void ematch_set_out (FILE * out_str ,yyscan_t yyscanner );
799 int ematch_get_leng (yyscan_t yyscanner );
801 char *ematch_get_text (yyscan_t yyscanner );
803 int ematch_get_lineno (yyscan_t yyscanner );
805 void ematch_set_lineno (
int line_number ,yyscan_t yyscanner );
807 int ematch_get_column (yyscan_t yyscanner );
809 void ematch_set_column (
int column_no ,yyscan_t yyscanner );
811 YYSTYPE * ematch_get_lval (yyscan_t yyscanner );
813 void ematch_set_lval (
YYSTYPE * yylval_param ,yyscan_t yyscanner );
819 #ifndef YY_SKIP_YYWRAP
821 extern "C" int ematch_wrap (yyscan_t yyscanner );
823 extern int ematch_wrap (yyscan_t yyscanner );
828 static void yy_flex_strncpy (
char *,yyconst
char *,
int ,yyscan_t yyscanner);
831 #ifdef YY_NEED_STRLEN
832 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner);
838 static int yyinput (yyscan_t yyscanner );
840 static int input (yyscan_t yyscanner );
846 #ifndef YY_READ_BUF_SIZE
847 #define YY_READ_BUF_SIZE 8192
855 #define ECHO fwrite( yytext, yyleng, 1, yyout )
862 #define YY_INPUT(buf,result,max_size) \
863 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
867 for ( n = 0; n < max_size && \
868 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
871 buf[n++] = (char) c; \
872 if ( c == EOF && ferror( yyin ) ) \
873 YY_FATAL_ERROR( "input in flex scanner failed" ); \
879 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
881 if( errno != EINTR) \
883 YY_FATAL_ERROR( "input in flex scanner failed" ); \
899 #define yyterminate() return YY_NULL
903 #ifndef YY_START_STACK_INCR
904 #define YY_START_STACK_INCR 25
908 #ifndef YY_FATAL_ERROR
909 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
918 #define YY_DECL_IS_OURS 1
920 extern int ematch_lex \
921 (
YYSTYPE * yylval_param ,yyscan_t yyscanner);
923 #define YY_DECL int ematch_lex \
924 (YYSTYPE * yylval_param , yyscan_t yyscanner)
930 #ifndef YY_USER_ACTION
931 #define YY_USER_ACTION
936 #define YY_BREAK break;
939 #define YY_RULE_SETUP \
946 register yy_state_type yy_current_state;
947 register char *yy_cp, *yy_bp;
951 #line 32 "route/cls/ematch_grammar.l"
954 #line 955 "route/cls/ematch_grammar.c"
956 yylval = yylval_param;
966 if ( ! yyg->yy_start )
975 if ( ! YY_CURRENT_BUFFER ) {
976 ematch_ensure_buffer_stack (yyscanner);
977 YY_CURRENT_BUFFER_LVALUE =
978 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
981 ematch__load_buffer_state(yyscanner );
986 yy_cp = yyg->yy_c_buf_p;
989 *yy_cp = yyg->yy_hold_char;
996 yy_current_state = yyg->yy_start;
1000 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1001 if ( yy_accept[yy_current_state] )
1003 yyg->yy_last_accepting_state = yy_current_state;
1004 yyg->yy_last_accepting_cpos = yy_cp;
1006 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1008 yy_current_state = (int) yy_def[yy_current_state];
1009 if ( yy_current_state >= 393 )
1010 yy_c = yy_meta[(
unsigned int) yy_c];
1012 yy_current_state = yy_nxt[yy_base[yy_current_state] + (
unsigned int) yy_c];
1015 while ( yy_base[yy_current_state] != 538 );
1018 yy_act = yy_accept[yy_current_state];
1021 yy_cp = yyg->yy_last_accepting_cpos;
1022 yy_current_state = yyg->yy_last_accepting_state;
1023 yy_act = yy_accept[yy_current_state];
1026 YY_DO_BEFORE_ACTION;
1034 *yy_cp = yyg->yy_hold_char;
1035 yy_cp = yyg->yy_last_accepting_cpos;
1036 yy_current_state = yyg->yy_last_accepting_state;
1037 goto yy_find_action;
1042 #line 34 "route/cls/ematch_grammar.l"
1047 #line 36 "route/cls/ematch_grammar.l"
1049 NL_DBG(4,
"Beginning of quote\n");
1051 if (!(yylval->q.data = calloc(1, yylval->q.len)))
1054 yylval->q.index = 0;
1060 #line 46 "route/cls/ematch_grammar.l"
1062 memcpy(yylval->q.data + yylval->q.index, yytext,
1064 yylval->q.index += strlen(yytext);
1069 #line 52 "route/cls/ematch_grammar.l"
1076 #line 59 "route/cls/ematch_grammar.l"
1079 #line 59 "route/cls/ematch_grammar.l"
1081 yylval->i = strtoul(yytext, NULL, 0);
1086 #line 65 "route/cls/ematch_grammar.l"
1089 #line 65 "route/cls/ematch_grammar.l"
1093 #line 67 "route/cls/ematch_grammar.l"
1096 #line 67 "route/cls/ematch_grammar.l"
1100 #line 69 "route/cls/ematch_grammar.l"
1103 #line 69 "route/cls/ematch_grammar.l"
1107 #line 72 "route/cls/ematch_grammar.l"
1110 #line 72 "route/cls/ematch_grammar.l"
1111 { yylval->i = TCF_EM_REL_AND;
return LOGIC; }
1114 #line 74 "route/cls/ematch_grammar.l"
1117 #line 74 "route/cls/ematch_grammar.l"
1118 { yylval->i = TCF_EM_REL_OR;
return LOGIC; }
1121 #line 76 "route/cls/ematch_grammar.l"
1124 #line 76 "route/cls/ematch_grammar.l"
1129 #line 78 "route/cls/ematch_grammar.l"
1130 { yylval->i = TCF_EM_CMP;
return EMATCH_CMP; }
1134 #line 79 "route/cls/ematch_grammar.l"
1135 { yylval->i = TCF_EM_NBYTE;
return EMATCH_NBYTE; }
1139 #line 80 "route/cls/ematch_grammar.l"
1140 { yylval->i = TCF_EM_TEXT;
return EMATCH_TEXT; }
1144 #line 81 "route/cls/ematch_grammar.l"
1145 { yylval->i = TCF_EM_META;
return EMATCH_META; }
1149 #line 83 "route/cls/ematch_grammar.l"
1154 #line 84 "route/cls/ematch_grammar.l"
1158 #line 86 "route/cls/ematch_grammar.l"
1161 #line 86 "route/cls/ematch_grammar.l"
1165 #line 88 "route/cls/ematch_grammar.l"
1168 #line 88 "route/cls/ematch_grammar.l"
1173 #line 89 "route/cls/ematch_grammar.l"
1178 #line 90 "route/cls/ematch_grammar.l"
1183 #line 91 "route/cls/ematch_grammar.l"
1188 #line 92 "route/cls/ematch_grammar.l"
1193 #line 94 "route/cls/ematch_grammar.l"
1194 { yylval->i = TCF_EM_ALIGN_U8;
return ALIGN; }
1198 #line 95 "route/cls/ematch_grammar.l"
1199 { yylval->i = TCF_EM_ALIGN_U16;
return ALIGN; }
1203 #line 96 "route/cls/ematch_grammar.l"
1204 { yylval->i = TCF_EM_ALIGN_U32;
return ALIGN; }
1207 #line 99 "route/cls/ematch_grammar.l"
1210 #line 99 "route/cls/ematch_grammar.l"
1211 { yylval->i = TCF_LAYER_LINK;
return LAYER; }
1214 #line 101 "route/cls/ematch_grammar.l"
1216 #line 102 "route/cls/ematch_grammar.l"
1219 #line 102 "route/cls/ematch_grammar.l"
1220 { yylval->i = TCF_LAYER_NETWORK;
return LAYER; }
1223 #line 104 "route/cls/ematch_grammar.l"
1226 #line 104 "route/cls/ematch_grammar.l"
1227 { yylval->i = TCF_LAYER_TRANSPORT;
return LAYER; }
1231 #line 106 "route/cls/ematch_grammar.l"
1236 #line 107 "route/cls/ematch_grammar.l"
1237 return META_LOADAVG_0;
1241 #line 108 "route/cls/ematch_grammar.l"
1242 return META_LOADAVG_1;
1246 #line 109 "route/cls/ematch_grammar.l"
1247 return META_LOADAVG_2;
1251 #line 110 "route/cls/ematch_grammar.l"
1256 #line 111 "route/cls/ematch_grammar.l"
1261 #line 112 "route/cls/ematch_grammar.l"
1266 #line 113 "route/cls/ematch_grammar.l"
1267 return META_PKTTYPE;
1271 #line 114 "route/cls/ematch_grammar.l"
1276 #line 115 "route/cls/ematch_grammar.l"
1277 return META_DATALEN;
1281 #line 116 "route/cls/ematch_grammar.l"
1286 #line 117 "route/cls/ematch_grammar.l"
1291 #line 118 "route/cls/ematch_grammar.l"
1292 return META_TCINDEX;
1296 #line 119 "route/cls/ematch_grammar.l"
1297 return META_RTCLASSID;
1301 #line 120 "route/cls/ematch_grammar.l"
1306 #line 121 "route/cls/ematch_grammar.l"
1307 return META_SK_FAMILY;
1311 #line 122 "route/cls/ematch_grammar.l"
1312 return META_SK_STATE;
1316 #line 123 "route/cls/ematch_grammar.l"
1317 return META_SK_REUSE;
1321 #line 124 "route/cls/ematch_grammar.l"
1322 return META_SK_REFCNT;
1326 #line 125 "route/cls/ematch_grammar.l"
1327 return META_SK_RCVBUF;
1331 #line 126 "route/cls/ematch_grammar.l"
1332 return META_SK_SNDBUF;
1336 #line 127 "route/cls/ematch_grammar.l"
1337 return META_SK_SHUTDOWN;
1341 #line 128 "route/cls/ematch_grammar.l"
1342 return META_SK_PROTO;
1346 #line 129 "route/cls/ematch_grammar.l"
1347 return META_SK_TYPE;
1351 #line 130 "route/cls/ematch_grammar.l"
1352 return META_SK_RMEM_ALLOC;
1356 #line 131 "route/cls/ematch_grammar.l"
1357 return META_SK_WMEM_ALLOC;
1361 #line 132 "route/cls/ematch_grammar.l"
1362 return META_SK_WMEM_QUEUED;
1366 #line 133 "route/cls/ematch_grammar.l"
1367 return META_SK_RCV_QLEN;
1371 #line 134 "route/cls/ematch_grammar.l"
1372 return META_SK_SND_QLEN;
1376 #line 135 "route/cls/ematch_grammar.l"
1377 return META_SK_ERR_QLEN;
1381 #line 136 "route/cls/ematch_grammar.l"
1382 return META_SK_FORWARD_ALLOCS;
1386 #line 137 "route/cls/ematch_grammar.l"
1387 return META_SK_ALLOCS;
1391 #line 138 "route/cls/ematch_grammar.l"
1392 return META_SK_ROUTE_CAPS;
1396 #line 139 "route/cls/ematch_grammar.l"
1397 return META_SK_HASH;
1401 #line 140 "route/cls/ematch_grammar.l"
1402 return META_SK_LINGERTIME;
1406 #line 141 "route/cls/ematch_grammar.l"
1407 return META_SK_ACK_BACKLOG;
1411 #line 142 "route/cls/ematch_grammar.l"
1412 return META_SK_MAX_ACK_BACKLOG;
1416 #line 143 "route/cls/ematch_grammar.l"
1417 return META_SK_PRIO;
1421 #line 144 "route/cls/ematch_grammar.l"
1422 return META_SK_RCVLOWAT;
1426 #line 145 "route/cls/ematch_grammar.l"
1427 return META_SK_RCVTIMEO;
1431 #line 146 "route/cls/ematch_grammar.l"
1432 return META_SK_SNDTIMEO;
1436 #line 147 "route/cls/ematch_grammar.l"
1437 return META_SK_SENDMSG_OFF;
1441 #line 148 "route/cls/ematch_grammar.l"
1442 return META_SK_WRITE_PENDING;
1446 #line 149 "route/cls/ematch_grammar.l"
1451 #line 150 "route/cls/ematch_grammar.l"
1456 #line 152 "route/cls/ematch_grammar.l"
1457 return META_DEVNAME;
1461 #line 153 "route/cls/ematch_grammar.l"
1462 return META_SK_BOUND_IF;
1466 #line 156 "route/cls/ematch_grammar.l"
1468 yylval->s = strdup(yytext);
1469 if (yylval->s == NULL)
1471 NL_DBG(4,
"lex STR=%s\n", yylval->s);
1477 #line 163 "route/cls/ematch_grammar.l"
1480 #line 1481 "route/cls/ematch_grammar.c"
1481 case YY_STATE_EOF(INITIAL):
1482 case YY_STATE_EOF(QUOTE):
1485 case YY_END_OF_BUFFER:
1488 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
1491 *yy_cp = yyg->yy_hold_char;
1492 YY_RESTORE_YY_MORE_OFFSET
1494 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1505 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1506 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1507 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1517 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1519 yy_state_type yy_next_state;
1521 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
1523 yy_current_state = yy_get_previous_state( yyscanner );
1534 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
1536 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1538 if ( yy_next_state )
1541 yy_cp = ++yyg->yy_c_buf_p;
1542 yy_current_state = yy_next_state;
1548 yy_cp = yyg->yy_c_buf_p;
1549 goto yy_find_action;
1553 else switch ( yy_get_next_buffer( yyscanner ) )
1555 case EOB_ACT_END_OF_FILE:
1557 yyg->yy_did_buffer_switch_on_eof = 0;
1559 if ( ematch_wrap(yyscanner ) )
1570 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
1572 yy_act = YY_STATE_EOF(YY_START);
1578 if ( ! yyg->yy_did_buffer_switch_on_eof )
1584 case EOB_ACT_CONTINUE_SCAN:
1586 yyg->yytext_ptr + yy_amount_of_matched_text;
1588 yy_current_state = yy_get_previous_state( yyscanner );
1590 yy_cp = yyg->yy_c_buf_p;
1591 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1594 case EOB_ACT_LAST_MATCH:
1596 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
1598 yy_current_state = yy_get_previous_state( yyscanner );
1600 yy_cp = yyg->yy_c_buf_p;
1601 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1602 goto yy_find_action;
1609 "fatal flex scanner internal error--no action found" );
1621 static int yy_get_next_buffer (yyscan_t yyscanner)
1624 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1625 register char *source = yyg->yytext_ptr;
1626 register int number_to_move, i;
1629 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
1631 "fatal flex scanner internal error--end of buffer missed" );
1633 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1635 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
1640 return EOB_ACT_END_OF_FILE;
1648 return EOB_ACT_LAST_MATCH;
1655 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
1657 for ( i = 0; i < number_to_move; ++i )
1658 *(dest++) = *(source++);
1660 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1664 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
1669 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1671 while ( num_to_read <= 0 )
1675 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
1677 int yy_c_buf_p_offset =
1678 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
1680 if ( b->yy_is_our_buffer )
1682 int new_size = b->yy_buf_size * 2;
1684 if ( new_size <= 0 )
1685 b->yy_buf_size += b->yy_buf_size / 8;
1687 b->yy_buf_size *= 2;
1689 b->yy_ch_buf = (
char *)
1691 ematch_realloc((
void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
1697 if ( ! b->yy_ch_buf )
1699 "fatal error - scanner input buffer overflow" );
1701 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1703 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1708 if ( num_to_read > YY_READ_BUF_SIZE )
1709 num_to_read = YY_READ_BUF_SIZE;
1712 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1713 yyg->yy_n_chars, (
size_t) num_to_read );
1715 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1718 if ( yyg->yy_n_chars == 0 )
1720 if ( number_to_move == YY_MORE_ADJ )
1722 ret_val = EOB_ACT_END_OF_FILE;
1723 ematch_restart(yyin ,yyscanner);
1728 ret_val = EOB_ACT_LAST_MATCH;
1729 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1730 YY_BUFFER_EOF_PENDING;
1735 ret_val = EOB_ACT_CONTINUE_SCAN;
1737 if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1739 yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
1740 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (
char *) ematch_realloc((
void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
1741 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1742 YY_FATAL_ERROR(
"out of dynamic memory in yy_get_next_buffer()" );
1745 yyg->yy_n_chars += number_to_move;
1746 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1747 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1749 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1756 static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
1758 register yy_state_type yy_current_state;
1759 register char *yy_cp;
1762 yy_current_state = yyg->yy_start;
1764 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
1766 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1767 if ( yy_accept[yy_current_state] )
1769 yyg->yy_last_accepting_state = yy_current_state;
1770 yyg->yy_last_accepting_cpos = yy_cp;
1772 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1774 yy_current_state = (int) yy_def[yy_current_state];
1775 if ( yy_current_state >= 393 )
1776 yy_c = yy_meta[(
unsigned int) yy_c];
1778 yy_current_state = yy_nxt[yy_base[yy_current_state] + (
unsigned int) yy_c];
1781 return yy_current_state;
1789 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
1791 register int yy_is_jam;
1793 register char *yy_cp = yyg->yy_c_buf_p;
1795 register YY_CHAR yy_c = 1;
1796 if ( yy_accept[yy_current_state] )
1798 yyg->yy_last_accepting_state = yy_current_state;
1799 yyg->yy_last_accepting_cpos = yy_cp;
1801 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1803 yy_current_state = (int) yy_def[yy_current_state];
1804 if ( yy_current_state >= 393 )
1805 yy_c = yy_meta[(
unsigned int) yy_c];
1807 yy_current_state = yy_nxt[yy_base[yy_current_state] + (
unsigned int) yy_c];
1808 yy_is_jam = (yy_current_state == 392);
1810 return yy_is_jam ? 0 : yy_current_state;
1815 static int yyinput (yyscan_t yyscanner)
1817 static int input (yyscan_t yyscanner)
1824 *yyg->yy_c_buf_p = yyg->yy_hold_char;
1826 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
1832 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1834 *yyg->yy_c_buf_p =
'\0';
1838 int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
1841 switch ( yy_get_next_buffer( yyscanner ) )
1843 case EOB_ACT_LAST_MATCH:
1855 ematch_restart(yyin ,yyscanner);
1859 case EOB_ACT_END_OF_FILE:
1861 if ( ematch_wrap(yyscanner ) )
1864 if ( ! yyg->yy_did_buffer_switch_on_eof )
1867 return yyinput(yyscanner);
1869 return input(yyscanner);
1873 case EOB_ACT_CONTINUE_SCAN:
1874 yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
1880 c = *(
unsigned char *) yyg->yy_c_buf_p;
1881 *yyg->yy_c_buf_p =
'\0';
1882 yyg->yy_hold_char = *++yyg->yy_c_buf_p;
1893 void ematch_restart (FILE * input_file , yyscan_t yyscanner)
1897 if ( ! YY_CURRENT_BUFFER ){
1898 ematch_ensure_buffer_stack (yyscanner);
1899 YY_CURRENT_BUFFER_LVALUE =
1900 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1903 ematch__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
1904 ematch__load_buffer_state(yyscanner );
1911 void ematch__switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
1920 ematch_ensure_buffer_stack (yyscanner);
1921 if ( YY_CURRENT_BUFFER == new_buffer )
1924 if ( YY_CURRENT_BUFFER )
1927 *yyg->yy_c_buf_p = yyg->yy_hold_char;
1928 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
1929 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1932 YY_CURRENT_BUFFER_LVALUE = new_buffer;
1933 ematch__load_buffer_state(yyscanner );
1940 yyg->yy_did_buffer_switch_on_eof = 1;
1943 static void ematch__load_buffer_state (yyscan_t yyscanner)
1946 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1947 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1948 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1949 yyg->yy_hold_char = *yyg->yy_c_buf_p;
1958 YY_BUFFER_STATE ematch__create_buffer (FILE * file,
int size , yyscan_t yyscanner)
1962 b = (YY_BUFFER_STATE) ematch_alloc(
sizeof(
struct yy_buffer_state ) ,yyscanner );
1964 YY_FATAL_ERROR(
"out of dynamic memory in ematch__create_buffer()" );
1966 b->yy_buf_size = size;
1971 b->yy_ch_buf = (
char *) ematch_alloc(b->yy_buf_size + 2 ,yyscanner );
1972 if ( ! b->yy_ch_buf )
1973 YY_FATAL_ERROR(
"out of dynamic memory in ematch__create_buffer()" );
1975 b->yy_is_our_buffer = 1;
1977 ematch__init_buffer(b,file ,yyscanner);
1986 void ematch__delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
1993 if ( b == YY_CURRENT_BUFFER )
1994 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1996 if ( b->yy_is_our_buffer )
1997 ematch_free((
void *) b->yy_ch_buf ,yyscanner );
1999 ematch_free((
void *) b ,yyscanner );
2003 extern int isatty (
int );
2010 static void ematch__init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
2016 ematch__flush_buffer(b ,yyscanner);
2018 b->yy_input_file = file;
2019 b->yy_fill_buffer = 1;
2025 if (b != YY_CURRENT_BUFFER){
2030 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2039 void ematch__flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2051 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2052 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2054 b->yy_buf_pos = &b->yy_ch_buf[0];
2057 b->yy_buffer_status = YY_BUFFER_NEW;
2059 if ( b == YY_CURRENT_BUFFER )
2060 ematch__load_buffer_state(yyscanner );
2069 void ematch_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2072 if (new_buffer == NULL)
2075 ematch_ensure_buffer_stack(yyscanner);
2078 if ( YY_CURRENT_BUFFER )
2081 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2082 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2083 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2087 if (YY_CURRENT_BUFFER)
2089 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2092 ematch__load_buffer_state(yyscanner );
2093 yyg->yy_did_buffer_switch_on_eof = 1;
2100 void ematch_pop_buffer_state (yyscan_t yyscanner)
2103 if (!YY_CURRENT_BUFFER)
2106 ematch__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
2107 YY_CURRENT_BUFFER_LVALUE = NULL;
2111 if (YY_CURRENT_BUFFER) {
2112 ematch__load_buffer_state(yyscanner );
2113 yyg->yy_did_buffer_switch_on_eof = 1;
2120 static void ematch_ensure_buffer_stack (yyscan_t yyscanner)
2136 YY_FATAL_ERROR(
"out of dynamic memory in ematch_ensure_buffer_stack()" );
2156 YY_FATAL_ERROR(
"out of dynamic memory in ematch_ensure_buffer_stack()" );
2170 YY_BUFFER_STATE ematch__scan_buffer (
char * base, yy_size_t size , yyscan_t yyscanner)
2175 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2176 base[size-1] != YY_END_OF_BUFFER_CHAR )
2180 b = (YY_BUFFER_STATE) ematch_alloc(
sizeof(
struct yy_buffer_state ) ,yyscanner );
2182 YY_FATAL_ERROR(
"out of dynamic memory in ematch__scan_buffer()" );
2184 b->yy_buf_size = size - 2;
2185 b->yy_buf_pos = b->yy_ch_buf = base;
2186 b->yy_is_our_buffer = 0;
2187 b->yy_input_file = 0;
2188 b->yy_n_chars = b->yy_buf_size;
2189 b->yy_is_interactive = 0;
2191 b->yy_fill_buffer = 0;
2192 b->yy_buffer_status = YY_BUFFER_NEW;
2194 ematch__switch_to_buffer(b ,yyscanner );
2207 YY_BUFFER_STATE ematch__scan_string (yyconst
char * yystr , yyscan_t yyscanner)
2210 return ematch__scan_bytes(yystr,strlen(yystr) ,yyscanner);
2220 YY_BUFFER_STATE ematch__scan_bytes (yyconst
char * yybytes,
int _yybytes_len , yyscan_t yyscanner)
2228 n = _yybytes_len + 2;
2229 buf = (
char *) ematch_alloc(n ,yyscanner );
2231 YY_FATAL_ERROR(
"out of dynamic memory in ematch__scan_bytes()" );
2233 for ( i = 0; i < _yybytes_len; ++i )
2234 buf[i] = yybytes[i];
2236 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2238 b = ematch__scan_buffer(buf,n ,yyscanner);
2240 YY_FATAL_ERROR(
"bad buffer in ematch__scan_bytes()" );
2245 b->yy_is_our_buffer = 1;
2250 #ifndef YY_EXIT_FAILURE
2251 #define YY_EXIT_FAILURE 2
2254 static void yy_fatal_error (yyconst
char* msg , yyscan_t yyscanner)
2256 (void) fprintf( stderr,
"%s\n", msg );
2257 exit( YY_EXIT_FAILURE );
2267 int yyless_macro_arg = (n); \
2268 YY_LESS_LINENO(yyless_macro_arg);\
2269 yytext[yyleng] = yyg->yy_hold_char; \
2270 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2271 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2272 *yyg->yy_c_buf_p = '\0'; \
2273 yyleng = yyless_macro_arg; \
2282 YY_EXTRA_TYPE ematch_get_extra (yyscan_t yyscanner)
2291 int ematch_get_lineno (yyscan_t yyscanner)
2295 if (! YY_CURRENT_BUFFER)
2304 int ematch_get_column (yyscan_t yyscanner)
2308 if (! YY_CURRENT_BUFFER)
2317 FILE *ematch_get_in (yyscan_t yyscanner)
2326 FILE *ematch_get_out (yyscan_t yyscanner)
2335 int ematch_get_leng (yyscan_t yyscanner)
2345 char *ematch_get_text (yyscan_t yyscanner)
2355 void ematch_set_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
2358 yyextra = user_defined ;
2365 void ematch_set_lineno (
int line_number , yyscan_t yyscanner)
2370 if (! YY_CURRENT_BUFFER )
2371 yy_fatal_error(
"ematch_set_lineno called with no buffer" , yyscanner);
2373 yylineno = line_number;
2380 void ematch_set_column (
int column_no , yyscan_t yyscanner)
2385 if (! YY_CURRENT_BUFFER )
2386 yy_fatal_error(
"ematch_set_column called with no buffer" , yyscanner);
2388 yycolumn = column_no;
2397 void ematch_set_in (FILE * in_str , yyscan_t yyscanner)
2403 void ematch_set_out (FILE * out_str , yyscan_t yyscanner)
2409 int ematch_get_debug (yyscan_t yyscanner)
2412 return yy_flex_debug;
2415 void ematch_set_debug (
int bdebug , yyscan_t yyscanner)
2418 yy_flex_debug = bdebug ;
2423 YYSTYPE * ematch_get_lval (yyscan_t yyscanner)
2429 void ematch_set_lval (
YYSTYPE * yylval_param , yyscan_t yyscanner)
2432 yylval = yylval_param;
2442 int ematch_lex_init(yyscan_t* ptr_yy_globals)
2445 if (ptr_yy_globals == NULL){
2450 *ptr_yy_globals = (yyscan_t) ematch_alloc (
sizeof(
struct yyguts_t ), NULL );
2452 if (*ptr_yy_globals == NULL){
2458 memset(*ptr_yy_globals,0x00,
sizeof(
struct yyguts_t));
2460 return yy_init_globals ( *ptr_yy_globals );
2471 int ematch_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
2476 ematch_set_extra (yy_user_defined, &dummy_yyguts);
2478 if (ptr_yy_globals == NULL){
2483 *ptr_yy_globals = (yyscan_t) ematch_alloc (
sizeof(
struct yyguts_t ), &dummy_yyguts );
2485 if (*ptr_yy_globals == NULL){
2492 memset(*ptr_yy_globals,0x00,
sizeof(
struct yyguts_t));
2494 ematch_set_extra (yy_user_defined, *ptr_yy_globals);
2496 return yy_init_globals ( *ptr_yy_globals );
2499 static int yy_init_globals (yyscan_t yyscanner)
2509 yyg->yy_c_buf_p = (
char *) 0;
2513 yyg->yy_start_stack_ptr = 0;
2514 yyg->yy_start_stack_depth = 0;
2515 yyg->yy_start_stack = NULL;
2533 int ematch_lex_destroy (yyscan_t yyscanner)
2538 while(YY_CURRENT_BUFFER){
2539 ematch__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
2540 YY_CURRENT_BUFFER_LVALUE = NULL;
2541 ematch_pop_buffer_state(yyscanner);
2549 ematch_free(yyg->yy_start_stack ,yyscanner );
2550 yyg->yy_start_stack = NULL;
2554 yy_init_globals( yyscanner);
2557 ematch_free ( yyscanner , yyscanner );
2567 static void yy_flex_strncpy (
char* s1, yyconst
char * s2,
int n , yyscan_t yyscanner)
2570 for ( i = 0; i < n; ++i )
2575 #ifdef YY_NEED_STRLEN
2576 static int yy_flex_strlen (yyconst
char * s , yyscan_t yyscanner)
2579 for ( n = 0; s[n]; ++n )
2586 void *ematch_alloc (yy_size_t size , yyscan_t yyscanner)
2588 return (
void *) malloc( size );
2591 void *ematch_realloc (
void * ptr, yy_size_t size , yyscan_t yyscanner)
2600 return (
void *) realloc( (
char *) ptr, size );
2603 void ematch_free (
void * ptr , yyscan_t yyscanner)
2605 free( (
char *) ptr );
2608 #define YYTABLES_NAME "yytables"
2610 #line 163 "route/cls/ematch_grammar.l"