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 37
13 #if YY_FLEX_SUBMINOR_VERSION > 0
34 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
39 #ifndef __STDC_LIMIT_MACROS
40 #define __STDC_LIMIT_MACROS 1
44 typedef int8_t flex_int8_t;
45 typedef uint8_t flex_uint8_t;
46 typedef int16_t flex_int16_t;
47 typedef uint16_t flex_uint16_t;
48 typedef int32_t flex_int32_t;
49 typedef uint32_t flex_uint32_t;
51 typedef signed char flex_int8_t;
52 typedef short int flex_int16_t;
53 typedef int flex_int32_t;
54 typedef unsigned char flex_uint8_t;
55 typedef unsigned short int flex_uint16_t;
56 typedef unsigned int flex_uint32_t;
60 #define INT8_MIN (-128)
63 #define INT16_MIN (-32767-1)
66 #define INT32_MIN (-2147483647-1)
69 #define INT8_MAX (127)
72 #define INT16_MAX (32767)
75 #define INT32_MAX (2147483647)
78 #define UINT8_MAX (255U)
81 #define UINT16_MAX (65535U)
84 #define UINT32_MAX (4294967295U)
99 #if defined (__STDC__)
107 #define yyconst const
120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
123 #ifndef YY_TYPEDEF_YY_SCANNER_T
124 #define YY_TYPEDEF_YY_SCANNER_T
125 typedef void* yyscan_t;
130 #define yyin yyg->yyin_r
131 #define yyout yyg->yyout_r
132 #define yyextra yyg->yyextra_r
133 #define yyleng yyg->yyleng_r
134 #define yytext yyg->yytext_r
135 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
136 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
137 #define yy_flex_debug yyg->yy_flex_debug_r
143 #define BEGIN yyg->yy_start = 1 + 2 *
149 #define YY_START ((yyg->yy_start - 1) / 2)
150 #define YYSTATE YY_START
153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
156 #define YY_NEW_FILE ematch_restart(yyin ,yyscanner )
158 #define YY_END_OF_BUFFER_CHAR 0
162 #define YY_BUF_SIZE 16384
167 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
169 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
170 #define YY_TYPEDEF_YY_BUFFER_STATE
174 #ifndef YY_TYPEDEF_YY_SIZE_T
175 #define YY_TYPEDEF_YY_SIZE_T
176 typedef size_t yy_size_t;
179 #define EOB_ACT_CONTINUE_SCAN 0
180 #define EOB_ACT_END_OF_FILE 1
181 #define EOB_ACT_LAST_MATCH 2
183 #define YY_LESS_LINENO(n)
190 int yyless_macro_arg = (n); \
191 YY_LESS_LINENO(yyless_macro_arg);\
192 *yy_cp = yyg->yy_hold_char; \
193 YY_RESTORE_YY_MORE_OFFSET \
194 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
195 YY_DO_BEFORE_ACTION; \
199 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
201 #ifndef YY_STRUCT_YY_BUFFER_STATE
202 #define YY_STRUCT_YY_BUFFER_STATE
213 yy_size_t yy_buf_size;
218 yy_size_t yy_n_chars;
224 int yy_is_our_buffer;
231 int yy_is_interactive;
247 int yy_buffer_status;
249 #define YY_BUFFER_NEW 0
250 #define YY_BUFFER_NORMAL 1
261 #define YY_BUFFER_EOF_PENDING 2
272 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
273 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
279 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
281 void ematch_restart (FILE *input_file ,yyscan_t yyscanner );
282 void ematch__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
283 YY_BUFFER_STATE ematch__create_buffer (FILE *file,
int size ,yyscan_t yyscanner );
284 void ematch__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
285 void ematch__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
286 void ematch_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
287 void ematch_pop_buffer_state (yyscan_t yyscanner );
289 static void ematch_ensure_buffer_stack (yyscan_t yyscanner );
290 static void ematch__load_buffer_state (yyscan_t yyscanner );
291 static void ematch__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
293 #define YY_FLUSH_BUFFER ematch__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
295 YY_BUFFER_STATE ematch__scan_buffer (
char *base,yy_size_t size ,yyscan_t yyscanner );
296 YY_BUFFER_STATE ematch__scan_string (yyconst
char *yy_str ,yyscan_t yyscanner );
297 YY_BUFFER_STATE ematch__scan_bytes (yyconst
char *bytes,yy_size_t len ,yyscan_t yyscanner );
299 void *ematch_alloc (yy_size_t ,yyscan_t yyscanner );
300 void *ematch_realloc (
void *,yy_size_t ,yyscan_t yyscanner );
301 void ematch_free (
void * ,yyscan_t yyscanner );
303 #define yy_new_buffer ematch__create_buffer
305 #define yy_set_interactive(is_interactive) \
307 if ( ! YY_CURRENT_BUFFER ){ \
308 ematch_ensure_buffer_stack (yyscanner); \
309 YY_CURRENT_BUFFER_LVALUE = \
310 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
312 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
315 #define yy_set_bol(at_bol) \
317 if ( ! YY_CURRENT_BUFFER ){\
318 ematch_ensure_buffer_stack (yyscanner); \
319 YY_CURRENT_BUFFER_LVALUE = \
320 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
322 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
325 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
327 #define ematch_wrap(yyscanner) 1
328 #define YY_SKIP_YYWRAP
330 typedef unsigned char YY_CHAR;
332 typedef int yy_state_type;
334 #define yytext_ptr yytext_r
336 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
337 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
338 static int yy_get_next_buffer (yyscan_t yyscanner );
339 static void yy_fatal_error (yyconst
char msg[] ,yyscan_t yyscanner );
344 #define YY_DO_BEFORE_ACTION \
345 yyg->yytext_ptr = yy_bp; \
346 yyleng = (size_t) (yy_cp - yy_bp); \
347 yyg->yy_hold_char = *yy_cp; \
349 yyg->yy_c_buf_p = yy_cp;
351 #define YY_NUM_RULES 91
352 #define YY_END_OF_BUFFER 92
357 flex_int32_t yy_verify;
360 static yyconst flex_int16_t yy_accept[393] =
362 0, 0, 0, 0, 92, 90, 1, 18, 2, 26,
363 23, 24, 30, 5, 5, 12, 8, 10, 90, 90,
364 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
365 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
366 90, 91, 3, 91, 4, 90, 1, 14, 5, 90,
367 28, 90, 29, 90, 90, 90, 40, 90, 90, 90,
368 90, 90, 15, 90, 90, 90, 90, 32, 90, 90,
369 90, 33, 90, 90, 7, 9, 90, 11, 90, 90,
370 90, 90, 90, 90, 90, 90, 90, 16, 3, 6,
371 13, 19, 37, 90, 39, 90, 90, 90, 38, 17,
373 90, 90, 42, 90, 90, 34, 35, 90, 47, 90,
374 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
375 90, 90, 31, 36, 25, 22, 90, 90, 21, 90,
376 90, 90, 90, 90, 54, 90, 90, 48, 90, 90,
377 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
378 90, 90, 90, 90, 90, 90, 86, 90, 27, 90,
379 90, 90, 90, 90, 90, 90, 49, 90, 90, 57,
380 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
381 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
382 90, 90, 90, 90, 90, 90, 90, 90, 53, 51,
384 90, 43, 90, 87, 90, 90, 90, 90, 90, 90,
385 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
386 90, 90, 90, 90, 90, 90, 90, 90, 20, 90,
387 52, 88, 90, 50, 90, 90, 90, 90, 90, 90,
388 90, 76, 90, 90, 80, 90, 90, 90, 90, 90,
389 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
390 66, 90, 90, 55, 90, 90, 90, 90, 90, 90,
391 90, 90, 90, 90, 90, 65, 90, 90, 90, 90,
392 90, 60, 90, 90, 90, 90, 90, 90, 90, 59,
393 90, 90, 41, 44, 45, 46, 56, 90, 74, 90,
395 90, 58, 90, 90, 90, 90, 62, 90, 90, 61,
396 90, 90, 90, 90, 90, 63, 90, 90, 90, 90,
397 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
398 90, 90, 90, 90, 90, 90, 90, 90, 90, 89,
399 72, 90, 90, 90, 70, 81, 82, 90, 90, 90,
400 64, 71, 83, 90, 90, 90, 90, 90, 90, 90,
401 90, 90, 90, 90, 90, 90, 90, 90, 77, 90,
402 67, 75, 90, 68, 90, 90, 78, 90, 90, 84,
403 69, 90, 90, 90, 90, 90, 90, 85, 73, 90,
408 static yyconst flex_int32_t yy_ec[256] =
410 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
411 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
412 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
413 1, 2, 4, 5, 1, 1, 1, 6, 1, 7,
414 8, 1, 9, 1, 1, 1, 1, 10, 11, 12,
415 13, 14, 14, 15, 14, 16, 14, 1, 1, 17,
416 18, 19, 1, 1, 20, 21, 22, 23, 24, 25,
417 1, 26, 27, 1, 28, 29, 30, 31, 32, 33,
418 1, 34, 35, 36, 37, 1, 1, 38, 1, 1,
419 1, 39, 1, 1, 40, 1, 41, 42, 43, 44,
421 45, 46, 47, 48, 49, 1, 50, 51, 52, 53,
422 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
423 64, 1, 1, 65, 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,
430 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,
436 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
440 static yyconst flex_int32_t yy_meta[66] =
442 1, 2, 3, 1, 3, 2, 2, 2, 2, 1,
443 1, 1, 1, 1, 1, 1, 2, 2, 2, 1,
444 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
445 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
446 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
447 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
451 static yyconst flex_int16_t yy_base[396] =
453 0, 0, 63, 64, 537, 0, 68, 0, 538, 530,
454 538, 538, 538, 62, 69, 538, 538, 516, 55, 57,
455 52, 55, 60, 67, 72, 73, 64, 79, 75, 100,
456 115, 65, 83, 475, 102, 117, 118, 89, 121, 131,
457 482, 467, 0, 538, 538, 0, 133, 538, 167, 179,
458 538, 123, 0, 111, 124, 132, 516, 153, 138, 151,
459 169, 171, 0, 172, 170, 178, 171, 0, 129, 515,
460 517, 0, 469, 466, 0, 0, 485, 0, 183, 466,
461 41, 471, 186, 475, 482, 183, 480, 538, 0, 0,
462 0, 0, 0, 184, 0, 187, 189, 207, 0, 0,
464 206, 218, 0, 208, 215, 0, 0, 479, 466, 474,
465 466, 466, 194, 461, 455, 469, 461, 462, 469, 228,
466 456, 455, 0, 0, 0, 0, 226, 213, 0, 217,
467 456, 465, 464, 459, 0, 458, 438, 0, 447, 446,
468 458, 452, 439, 204, 442, 438, 237, 453, 444, 451,
469 434, 249, 236, 426, 199, 445, 0, 220, 0, 227,
470 443, 435, 425, 432, 431, 428, 0, 430, 423, 0,
471 432, 429, 427, 417, 419, 423, 417, 415, 419, 408,
472 208, 409, 152, 424, 408, 414, 406, 421, 423, 408,
473 417, 412, 415, 235, 261, 406, 413, 410, 0, 0,
475 411, 0, 397, 0, 414, 399, 399, 411, 401, 387,
476 400, 400, 406, 391, 385, 257, 400, 384, 389, 381,
477 395, 379, 258, 378, 391, 383, 375, 370, 0, 262,
478 0, 0, 392, 0, 382, 388, 386, 384, 371, 375,
479 384, 0, 379, 382, 0, 368, 365, 360, 365, 369,
480 364, 371, 375, 369, 361, 368, 355, 350, 360, 363,
481 0, 367, 361, 0, 266, 294, 361, 363, 345, 362,
482 350, 336, 342, 341, 354, 0, 345, 349, 332, 341,
483 333, 0, 350, 350, 331, 334, 336, 340, 333, 0,
484 266, 344, 0, 0, 0, 0, 0, 340, 0, 333,
486 336, 0, 336, 320, 328, 332, 0, 335, 330, 0,
487 323, 330, 325, 309, 325, 0, 324, 317, 307, 311,
488 315, 318, 310, 322, 312, 320, 306, 299, 303, 305,
489 314, 314, 300, 299, 297, 299, 304, 303, 296, 0,
490 0, 305, 293, 302, 0, 0, 0, 289, 287, 287,
491 0, 0, 0, 286, 279, 285, 283, 285, 287, 290,
492 281, 265, 275, 277, 273, 270, 266, 261, 0, 268,
493 0, 0, 264, 0, 265, 214, 0, 207, 209, 0,
494 0, 205, 170, 109, 93, 75, 53, 0, 0, 57,
495 0, 538, 325, 329, 333
499 static yyconst flex_int16_t yy_def[396] =
501 392, 1, 393, 393, 392, 394, 392, 394, 392, 392,
502 392, 392, 392, 394, 394, 392, 392, 392, 394, 394,
503 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
504 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
505 394, 392, 395, 392, 392, 394, 392, 392, 394, 394,
506 392, 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, 394, 394, 394,
509 394, 394, 394, 394, 394, 394, 394, 392, 395, 50,
510 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,
521 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,
532 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, 394, 394, 394, 394, 394, 394, 394, 394, 394,
543 394, 0, 392, 392, 392
547 static yyconst flex_int16_t yy_nxt[604] =
549 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
550 15, 15, 15, 15, 15, 15, 16, 17, 18, 19,
551 6, 20, 6, 21, 22, 6, 23, 6, 24, 25,
552 26, 27, 28, 6, 29, 30, 31, 6, 6, 6,
553 19, 6, 20, 32, 33, 22, 34, 6, 23, 6,
554 35, 36, 26, 27, 37, 6, 38, 39, 40, 31,
555 41, 6, 6, 6, 42, 44, 44, 45, 45, 47,
556 47, 49, 49, 49, 49, 49, 49, 49, 49, 49,
557 49, 49, 49, 49, 49, 52, 54, 55, 56, 114,
558 53, 59, 57, 58, 115, 60, 61, 63, 64, 50,
560 65, 44, 44, 391, 62, 73, 390, 52, 54, 74,
561 55, 56, 59, 53, 57, 58, 60, 61, 55, 64,
562 63, 66, 65, 67, 50, 70, 62, 71, 58, 82,
563 72, 68, 389, 69, 47, 47, 59, 64, 75, 388,
564 60, 55, 66, 92, 67, 91, 65, 83, 105, 93,
565 58, 84, 66, 68, 67, 77, 69, 79, 64, 387,
566 78, 60, 68, 94, 69, 92, 91, 80, 65, 105,
567 85, 93, 97, 86, 81, 67, 49, 49, 49, 49,
568 49, 49, 49, 96, 68, 94, 98, 69, 90, 90,
569 90, 90, 90, 90, 90, 97, 102, 217, 90, 90,
571 90, 90, 90, 90, 99, 96, 100, 101, 104, 98,
572 103, 218, 386, 123, 124, 103, 125, 97, 102, 90,
573 90, 90, 90, 90, 90, 111, 126, 99, 117, 100,
574 101, 121, 103, 104, 118, 123, 124, 103, 125, 112,
575 97, 127, 128, 129, 136, 130, 172, 126, 159, 158,
576 191, 160, 137, 194, 173, 192, 214, 385, 384, 195,
577 383, 215, 382, 128, 127, 229, 129, 130, 144, 145,
578 158, 159, 146, 147, 160, 148, 194, 176, 149, 150,
579 186, 195, 151, 187, 152, 153, 154, 229, 188, 155,
580 177, 182, 230, 183, 189, 265, 247, 257, 248, 258,
582 184, 293, 185, 294, 295, 296, 318, 249, 381, 380,
583 379, 378, 377, 376, 230, 250, 259, 375, 265, 374,
584 373, 319, 372, 371, 293, 43, 43, 43, 43, 46,
585 370, 369, 46, 89, 89, 368, 367, 366, 365, 364,
586 363, 362, 361, 360, 359, 358, 357, 356, 355, 354,
587 353, 352, 351, 350, 349, 348, 347, 346, 345, 344,
588 343, 342, 341, 340, 339, 338, 337, 336, 335, 334,
589 333, 332, 331, 330, 329, 328, 327, 326, 325, 324,
590 323, 322, 321, 320, 317, 316, 315, 314, 313, 312,
591 311, 310, 309, 308, 307, 306, 305, 304, 303, 302,
593 301, 300, 299, 298, 297, 292, 291, 290, 289, 288,
594 287, 286, 285, 284, 283, 282, 281, 280, 279, 278,
595 277, 276, 275, 274, 273, 272, 271, 270, 269, 268,
596 267, 266, 264, 263, 262, 261, 260, 256, 255, 254,
597 253, 252, 251, 246, 245, 244, 243, 242, 241, 240,
598 239, 238, 237, 236, 235, 234, 233, 232, 231, 228,
599 227, 226, 225, 224, 223, 222, 221, 220, 219, 216,
600 213, 212, 211, 210, 209, 208, 207, 206, 205, 204,
601 203, 202, 201, 200, 199, 198, 197, 196, 193, 190,
602 181, 180, 179, 178, 175, 174, 171, 170, 169, 168,
604 167, 166, 165, 164, 163, 162, 161, 157, 156, 143,
605 142, 141, 140, 139, 138, 135, 134, 133, 132, 131,
606 122, 120, 119, 116, 113, 110, 109, 108, 107, 106,
607 95, 88, 87, 76, 51, 48, 392, 5, 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,
613 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
618 static yyconst flex_int16_t yy_chk[604] =
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, 1, 1, 1, 1, 1,
626 1, 1, 1, 1, 1, 3, 4, 3, 4, 7,
627 7, 14, 14, 14, 14, 14, 14, 14, 15, 15,
628 15, 15, 15, 15, 15, 19, 20, 21, 22, 81,
629 19, 25, 23, 24, 81, 25, 26, 27, 28, 14,
631 29, 3, 4, 390, 26, 32, 387, 19, 20, 32,
632 21, 22, 25, 19, 23, 24, 25, 26, 33, 28,
633 27, 30, 29, 30, 14, 31, 26, 31, 35, 38,
634 31, 30, 386, 30, 47, 47, 36, 37, 33, 385,
635 36, 33, 30, 54, 30, 52, 39, 38, 69, 55,
636 35, 38, 40, 30, 40, 35, 30, 36, 37, 384,
637 35, 36, 40, 56, 40, 54, 52, 37, 39, 69,
638 39, 55, 59, 40, 37, 40, 49, 49, 49, 49,
639 49, 49, 49, 58, 40, 56, 60, 40, 50, 50,
640 50, 50, 50, 50, 50, 59, 65, 183, 50, 50,
642 50, 50, 50, 50, 61, 58, 62, 64, 67, 60,
643 66, 183, 383, 94, 96, 86, 97, 79, 65, 50,
644 50, 50, 50, 50, 50, 79, 98, 61, 83, 62,
645 64, 86, 66, 67, 83, 94, 96, 86, 97, 79,
646 79, 101, 102, 104, 113, 105, 144, 98, 128, 127,
647 155, 130, 113, 158, 144, 155, 181, 382, 379, 160,
648 378, 181, 376, 102, 101, 194, 104, 105, 120, 120,
649 127, 128, 120, 120, 130, 120, 158, 147, 120, 120,
650 153, 160, 120, 153, 120, 120, 120, 194, 153, 120,
651 147, 152, 195, 152, 153, 230, 216, 223, 216, 223,
653 152, 265, 152, 266, 266, 266, 291, 216, 375, 373,
654 370, 368, 367, 366, 195, 216, 223, 365, 230, 364,
655 363, 291, 362, 361, 265, 393, 393, 393, 393, 394,
656 360, 359, 394, 395, 395, 358, 357, 356, 355, 354,
657 350, 349, 348, 344, 343, 342, 339, 338, 337, 336,
658 335, 334, 333, 332, 331, 330, 329, 328, 327, 326,
659 325, 324, 323, 322, 321, 320, 319, 318, 317, 315,
660 314, 313, 312, 311, 309, 308, 306, 305, 304, 303,
661 301, 300, 298, 292, 289, 288, 287, 286, 285, 284,
662 283, 281, 280, 279, 278, 277, 275, 274, 273, 272,
664 271, 270, 269, 268, 267, 263, 262, 260, 259, 258,
665 257, 256, 255, 254, 253, 252, 251, 250, 249, 248,
666 247, 246, 244, 243, 241, 240, 239, 238, 237, 236,
667 235, 233, 228, 227, 226, 225, 224, 222, 221, 220,
668 219, 218, 217, 215, 214, 213, 212, 211, 210, 209,
669 208, 207, 206, 205, 203, 201, 198, 197, 196, 193,
670 192, 191, 190, 189, 188, 187, 186, 185, 184, 182,
671 180, 179, 178, 177, 176, 175, 174, 173, 172, 171,
672 169, 168, 166, 165, 164, 163, 162, 161, 156, 154,
673 151, 150, 149, 148, 146, 145, 143, 142, 141, 140,
675 139, 137, 136, 134, 133, 132, 131, 122, 121, 119,
676 118, 117, 116, 115, 114, 112, 111, 110, 109, 108,
677 87, 85, 84, 82, 80, 77, 74, 73, 71, 70,
678 57, 42, 41, 34, 18, 10, 5, 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,
684 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
692 #define REJECT reject_used_but_not_detected
693 #define yymore() yymore_used_but_not_detected
694 #define YY_MORE_ADJ 0
695 #define YY_RESTORE_YY_MORE_OFFSET
696 #line 1 "route/cls/ematch_grammar.l"
707 #line 13 "route/cls/ematch_grammar.l"
708 #include <netlink-private/netlink.h>
709 #include <netlink-private/tc.h>
710 #include <netlink/netlink.h>
711 #include <netlink/route/cls/ematch.h>
712 #include <netlink/route/cls/ematch/cmp.h>
713 #include "ematch_syntax.h"
714 #define YY_NO_INPUT 1
716 #line 717 "route/cls/ematch_grammar.c"
721 #ifndef YY_NO_UNISTD_H
729 #ifndef YY_EXTRA_TYPE
730 #define YY_EXTRA_TYPE void *
738 YY_EXTRA_TYPE yyextra_r;
741 FILE *yyin_r, *yyout_r;
746 yy_size_t yy_n_chars;
751 int yy_did_buffer_switch_on_eof;
752 int yy_start_stack_ptr;
753 int yy_start_stack_depth;
755 yy_state_type yy_last_accepting_state;
756 char* yy_last_accepting_cpos;
769 static int yy_init_globals (yyscan_t yyscanner );
773 # define yylval yyg->yylval_r
775 int ematch_lex_init (yyscan_t* scanner);
777 int ematch_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
782 int ematch_lex_destroy (yyscan_t yyscanner );
784 int ematch_get_debug (yyscan_t yyscanner );
786 void ematch_set_debug (
int debug_flag ,yyscan_t yyscanner );
788 YY_EXTRA_TYPE ematch_get_extra (yyscan_t yyscanner );
790 void ematch_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
792 FILE *ematch_get_in (yyscan_t yyscanner );
794 void ematch_set_in (FILE * in_str ,yyscan_t yyscanner );
796 FILE *ematch_get_out (yyscan_t yyscanner );
798 void ematch_set_out (FILE * out_str ,yyscan_t yyscanner );
800 yy_size_t ematch_get_leng (yyscan_t yyscanner );
802 char *ematch_get_text (yyscan_t yyscanner );
804 int ematch_get_lineno (yyscan_t yyscanner );
806 void ematch_set_lineno (
int line_number ,yyscan_t yyscanner );
808 int ematch_get_column (yyscan_t yyscanner );
810 void ematch_set_column (
int column_no ,yyscan_t yyscanner );
812 YYSTYPE * ematch_get_lval (yyscan_t yyscanner );
814 void ematch_set_lval (
YYSTYPE * yylval_param ,yyscan_t yyscanner );
820 #ifndef YY_SKIP_YYWRAP
822 extern "C" int ematch_wrap (yyscan_t yyscanner );
824 extern int ematch_wrap (yyscan_t yyscanner );
829 static void yy_flex_strncpy (
char *,yyconst
char *,
int ,yyscan_t yyscanner);
832 #ifdef YY_NEED_STRLEN
833 static int yy_flex_strlen (yyconst
char * ,yyscan_t yyscanner);
839 static int yyinput (yyscan_t yyscanner );
841 static int input (yyscan_t yyscanner );
847 #ifndef YY_READ_BUF_SIZE
848 #define YY_READ_BUF_SIZE 8192
856 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
863 #define YY_INPUT(buf,result,max_size) \
864 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
868 for ( n = 0; n < max_size && \
869 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
872 buf[n++] = (char) c; \
873 if ( c == EOF && ferror( yyin ) ) \
874 YY_FATAL_ERROR( "input in flex scanner failed" ); \
880 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
882 if( errno != EINTR) \
884 YY_FATAL_ERROR( "input in flex scanner failed" ); \
900 #define yyterminate() return YY_NULL
904 #ifndef YY_START_STACK_INCR
905 #define YY_START_STACK_INCR 25
909 #ifndef YY_FATAL_ERROR
910 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
919 #define YY_DECL_IS_OURS 1
921 extern int ematch_lex \
922 (
YYSTYPE * yylval_param ,yyscan_t yyscanner);
924 #define YY_DECL int ematch_lex \
925 (YYSTYPE * yylval_param , yyscan_t yyscanner)
931 #ifndef YY_USER_ACTION
932 #define YY_USER_ACTION
937 #define YY_BREAK break;
940 #define YY_RULE_SETUP \
947 register yy_state_type yy_current_state;
948 register char *yy_cp, *yy_bp;
952 #line 32 "route/cls/ematch_grammar.l"
955 #line 956 "route/cls/ematch_grammar.c"
957 yylval = yylval_param;
967 if ( ! yyg->yy_start )
976 if ( ! YY_CURRENT_BUFFER ) {
977 ematch_ensure_buffer_stack (yyscanner);
978 YY_CURRENT_BUFFER_LVALUE =
979 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
982 ematch__load_buffer_state(yyscanner );
987 yy_cp = yyg->yy_c_buf_p;
990 *yy_cp = yyg->yy_hold_char;
997 yy_current_state = yyg->yy_start;
1001 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1002 if ( yy_accept[yy_current_state] )
1004 yyg->yy_last_accepting_state = yy_current_state;
1005 yyg->yy_last_accepting_cpos = yy_cp;
1007 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1009 yy_current_state = (int) yy_def[yy_current_state];
1010 if ( yy_current_state >= 393 )
1011 yy_c = yy_meta[(
unsigned int) yy_c];
1013 yy_current_state = yy_nxt[yy_base[yy_current_state] + (
unsigned int) yy_c];
1016 while ( yy_base[yy_current_state] != 538 );
1019 yy_act = yy_accept[yy_current_state];
1022 yy_cp = yyg->yy_last_accepting_cpos;
1023 yy_current_state = yyg->yy_last_accepting_state;
1024 yy_act = yy_accept[yy_current_state];
1027 YY_DO_BEFORE_ACTION;
1035 *yy_cp = yyg->yy_hold_char;
1036 yy_cp = yyg->yy_last_accepting_cpos;
1037 yy_current_state = yyg->yy_last_accepting_state;
1038 goto yy_find_action;
1043 #line 34 "route/cls/ematch_grammar.l"
1048 #line 36 "route/cls/ematch_grammar.l"
1050 NL_DBG(4,
"Beginning of quote\n");
1052 if (!(yylval->q.data = calloc(1, yylval->q.len)))
1055 yylval->q.index = 0;
1061 #line 46 "route/cls/ematch_grammar.l"
1063 memcpy(yylval->q.data + yylval->q.index, yytext,
1065 yylval->q.index += strlen(yytext);
1070 #line 52 "route/cls/ematch_grammar.l"
1077 #line 59 "route/cls/ematch_grammar.l"
1080 #line 59 "route/cls/ematch_grammar.l"
1082 yylval->i = strtoul(yytext, NULL, 0);
1087 #line 65 "route/cls/ematch_grammar.l"
1090 #line 65 "route/cls/ematch_grammar.l"
1094 #line 67 "route/cls/ematch_grammar.l"
1097 #line 67 "route/cls/ematch_grammar.l"
1101 #line 69 "route/cls/ematch_grammar.l"
1104 #line 69 "route/cls/ematch_grammar.l"
1108 #line 72 "route/cls/ematch_grammar.l"
1111 #line 72 "route/cls/ematch_grammar.l"
1112 { yylval->i = TCF_EM_REL_AND;
return LOGIC; }
1115 #line 74 "route/cls/ematch_grammar.l"
1118 #line 74 "route/cls/ematch_grammar.l"
1119 { yylval->i = TCF_EM_REL_OR;
return LOGIC; }
1122 #line 76 "route/cls/ematch_grammar.l"
1125 #line 76 "route/cls/ematch_grammar.l"
1130 #line 78 "route/cls/ematch_grammar.l"
1131 { yylval->i = TCF_EM_CMP;
return EMATCH_CMP; }
1135 #line 79 "route/cls/ematch_grammar.l"
1136 { yylval->i = TCF_EM_NBYTE;
return EMATCH_NBYTE; }
1140 #line 80 "route/cls/ematch_grammar.l"
1141 { yylval->i = TCF_EM_TEXT;
return EMATCH_TEXT; }
1145 #line 81 "route/cls/ematch_grammar.l"
1146 { yylval->i = TCF_EM_META;
return EMATCH_META; }
1150 #line 83 "route/cls/ematch_grammar.l"
1155 #line 84 "route/cls/ematch_grammar.l"
1159 #line 86 "route/cls/ematch_grammar.l"
1162 #line 86 "route/cls/ematch_grammar.l"
1166 #line 88 "route/cls/ematch_grammar.l"
1169 #line 88 "route/cls/ematch_grammar.l"
1174 #line 89 "route/cls/ematch_grammar.l"
1179 #line 90 "route/cls/ematch_grammar.l"
1184 #line 91 "route/cls/ematch_grammar.l"
1189 #line 92 "route/cls/ematch_grammar.l"
1194 #line 94 "route/cls/ematch_grammar.l"
1195 { yylval->i = TCF_EM_ALIGN_U8;
return ALIGN; }
1199 #line 95 "route/cls/ematch_grammar.l"
1200 { yylval->i = TCF_EM_ALIGN_U16;
return ALIGN; }
1204 #line 96 "route/cls/ematch_grammar.l"
1205 { yylval->i = TCF_EM_ALIGN_U32;
return ALIGN; }
1208 #line 99 "route/cls/ematch_grammar.l"
1211 #line 99 "route/cls/ematch_grammar.l"
1212 { yylval->i = TCF_LAYER_LINK;
return LAYER; }
1215 #line 101 "route/cls/ematch_grammar.l"
1217 #line 102 "route/cls/ematch_grammar.l"
1220 #line 102 "route/cls/ematch_grammar.l"
1221 { yylval->i = TCF_LAYER_NETWORK;
return LAYER; }
1224 #line 104 "route/cls/ematch_grammar.l"
1227 #line 104 "route/cls/ematch_grammar.l"
1228 { yylval->i = TCF_LAYER_TRANSPORT;
return LAYER; }
1232 #line 106 "route/cls/ematch_grammar.l"
1237 #line 107 "route/cls/ematch_grammar.l"
1238 return META_LOADAVG_0;
1242 #line 108 "route/cls/ematch_grammar.l"
1243 return META_LOADAVG_1;
1247 #line 109 "route/cls/ematch_grammar.l"
1248 return META_LOADAVG_2;
1252 #line 110 "route/cls/ematch_grammar.l"
1257 #line 111 "route/cls/ematch_grammar.l"
1262 #line 112 "route/cls/ematch_grammar.l"
1267 #line 113 "route/cls/ematch_grammar.l"
1268 return META_PKTTYPE;
1272 #line 114 "route/cls/ematch_grammar.l"
1277 #line 115 "route/cls/ematch_grammar.l"
1278 return META_DATALEN;
1282 #line 116 "route/cls/ematch_grammar.l"
1287 #line 117 "route/cls/ematch_grammar.l"
1292 #line 118 "route/cls/ematch_grammar.l"
1293 return META_TCINDEX;
1297 #line 119 "route/cls/ematch_grammar.l"
1298 return META_RTCLASSID;
1302 #line 120 "route/cls/ematch_grammar.l"
1307 #line 121 "route/cls/ematch_grammar.l"
1308 return META_SK_FAMILY;
1312 #line 122 "route/cls/ematch_grammar.l"
1313 return META_SK_STATE;
1317 #line 123 "route/cls/ematch_grammar.l"
1318 return META_SK_REUSE;
1322 #line 124 "route/cls/ematch_grammar.l"
1323 return META_SK_REFCNT;
1327 #line 125 "route/cls/ematch_grammar.l"
1328 return META_SK_RCVBUF;
1332 #line 126 "route/cls/ematch_grammar.l"
1333 return META_SK_SNDBUF;
1337 #line 127 "route/cls/ematch_grammar.l"
1338 return META_SK_SHUTDOWN;
1342 #line 128 "route/cls/ematch_grammar.l"
1343 return META_SK_PROTO;
1347 #line 129 "route/cls/ematch_grammar.l"
1348 return META_SK_TYPE;
1352 #line 130 "route/cls/ematch_grammar.l"
1353 return META_SK_RMEM_ALLOC;
1357 #line 131 "route/cls/ematch_grammar.l"
1358 return META_SK_WMEM_ALLOC;
1362 #line 132 "route/cls/ematch_grammar.l"
1363 return META_SK_WMEM_QUEUED;
1367 #line 133 "route/cls/ematch_grammar.l"
1368 return META_SK_RCV_QLEN;
1372 #line 134 "route/cls/ematch_grammar.l"
1373 return META_SK_SND_QLEN;
1377 #line 135 "route/cls/ematch_grammar.l"
1378 return META_SK_ERR_QLEN;
1382 #line 136 "route/cls/ematch_grammar.l"
1383 return META_SK_FORWARD_ALLOCS;
1387 #line 137 "route/cls/ematch_grammar.l"
1388 return META_SK_ALLOCS;
1392 #line 138 "route/cls/ematch_grammar.l"
1393 return META_SK_ROUTE_CAPS;
1397 #line 139 "route/cls/ematch_grammar.l"
1398 return META_SK_HASH;
1402 #line 140 "route/cls/ematch_grammar.l"
1403 return META_SK_LINGERTIME;
1407 #line 141 "route/cls/ematch_grammar.l"
1408 return META_SK_ACK_BACKLOG;
1412 #line 142 "route/cls/ematch_grammar.l"
1413 return META_SK_MAX_ACK_BACKLOG;
1417 #line 143 "route/cls/ematch_grammar.l"
1418 return META_SK_PRIO;
1422 #line 144 "route/cls/ematch_grammar.l"
1423 return META_SK_RCVLOWAT;
1427 #line 145 "route/cls/ematch_grammar.l"
1428 return META_SK_RCVTIMEO;
1432 #line 146 "route/cls/ematch_grammar.l"
1433 return META_SK_SNDTIMEO;
1437 #line 147 "route/cls/ematch_grammar.l"
1438 return META_SK_SENDMSG_OFF;
1442 #line 148 "route/cls/ematch_grammar.l"
1443 return META_SK_WRITE_PENDING;
1447 #line 149 "route/cls/ematch_grammar.l"
1452 #line 150 "route/cls/ematch_grammar.l"
1457 #line 152 "route/cls/ematch_grammar.l"
1458 return META_DEVNAME;
1462 #line 153 "route/cls/ematch_grammar.l"
1463 return META_SK_BOUND_IF;
1467 #line 156 "route/cls/ematch_grammar.l"
1469 yylval->s = strdup(yytext);
1470 if (yylval->s == NULL)
1472 NL_DBG(4,
"lex STR=%s\n", yylval->s);
1478 #line 163 "route/cls/ematch_grammar.l"
1481 #line 1482 "route/cls/ematch_grammar.c"
1482 case YY_STATE_EOF(INITIAL):
1483 case YY_STATE_EOF(QUOTE):
1486 case YY_END_OF_BUFFER:
1489 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
1492 *yy_cp = yyg->yy_hold_char;
1493 YY_RESTORE_YY_MORE_OFFSET
1495 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1506 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1507 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1508 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1518 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1520 yy_state_type yy_next_state;
1522 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
1524 yy_current_state = yy_get_previous_state( yyscanner );
1535 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
1537 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1539 if ( yy_next_state )
1542 yy_cp = ++yyg->yy_c_buf_p;
1543 yy_current_state = yy_next_state;
1549 yy_cp = yyg->yy_c_buf_p;
1550 goto yy_find_action;
1554 else switch ( yy_get_next_buffer( yyscanner ) )
1556 case EOB_ACT_END_OF_FILE:
1558 yyg->yy_did_buffer_switch_on_eof = 0;
1560 if ( ematch_wrap(yyscanner ) )
1571 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
1573 yy_act = YY_STATE_EOF(YY_START);
1579 if ( ! yyg->yy_did_buffer_switch_on_eof )
1585 case EOB_ACT_CONTINUE_SCAN:
1587 yyg->yytext_ptr + yy_amount_of_matched_text;
1589 yy_current_state = yy_get_previous_state( yyscanner );
1591 yy_cp = yyg->yy_c_buf_p;
1592 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1595 case EOB_ACT_LAST_MATCH:
1597 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
1599 yy_current_state = yy_get_previous_state( yyscanner );
1601 yy_cp = yyg->yy_c_buf_p;
1602 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
1603 goto yy_find_action;
1610 "fatal flex scanner internal error--no action found" );
1622 static int yy_get_next_buffer (yyscan_t yyscanner)
1625 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1626 register char *source = yyg->yytext_ptr;
1627 register int number_to_move, i;
1630 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
1632 "fatal flex scanner internal error--end of buffer missed" );
1634 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1636 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
1641 return EOB_ACT_END_OF_FILE;
1649 return EOB_ACT_LAST_MATCH;
1656 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
1658 for ( i = 0; i < number_to_move; ++i )
1659 *(dest++) = *(source++);
1661 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1665 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
1669 yy_size_t num_to_read =
1670 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1672 while ( num_to_read <= 0 )
1676 YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
1678 int yy_c_buf_p_offset =
1679 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
1681 if ( b->yy_is_our_buffer )
1683 yy_size_t new_size = b->yy_buf_size * 2;
1685 if ( new_size <= 0 )
1686 b->yy_buf_size += b->yy_buf_size / 8;
1688 b->yy_buf_size *= 2;
1690 b->yy_ch_buf = (
char *)
1692 ematch_realloc((
void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
1698 if ( ! b->yy_ch_buf )
1700 "fatal error - scanner input buffer overflow" );
1702 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
1704 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
1709 if ( num_to_read > YY_READ_BUF_SIZE )
1710 num_to_read = YY_READ_BUF_SIZE;
1713 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1714 yyg->yy_n_chars, num_to_read );
1716 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1719 if ( yyg->yy_n_chars == 0 )
1721 if ( number_to_move == YY_MORE_ADJ )
1723 ret_val = EOB_ACT_END_OF_FILE;
1724 ematch_restart(yyin ,yyscanner);
1729 ret_val = EOB_ACT_LAST_MATCH;
1730 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1731 YY_BUFFER_EOF_PENDING;
1736 ret_val = EOB_ACT_CONTINUE_SCAN;
1738 if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1740 yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
1741 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (
char *) ematch_realloc((
void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
1742 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
1743 YY_FATAL_ERROR(
"out of dynamic memory in yy_get_next_buffer()" );
1746 yyg->yy_n_chars += number_to_move;
1747 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
1748 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
1750 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
1757 static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
1759 register yy_state_type yy_current_state;
1760 register char *yy_cp;
1763 yy_current_state = yyg->yy_start;
1765 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
1767 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
1768 if ( yy_accept[yy_current_state] )
1770 yyg->yy_last_accepting_state = yy_current_state;
1771 yyg->yy_last_accepting_cpos = yy_cp;
1773 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1775 yy_current_state = (int) yy_def[yy_current_state];
1776 if ( yy_current_state >= 393 )
1777 yy_c = yy_meta[(
unsigned int) yy_c];
1779 yy_current_state = yy_nxt[yy_base[yy_current_state] + (
unsigned int) yy_c];
1782 return yy_current_state;
1790 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
1792 register int yy_is_jam;
1794 register char *yy_cp = yyg->yy_c_buf_p;
1796 register YY_CHAR yy_c = 1;
1797 if ( yy_accept[yy_current_state] )
1799 yyg->yy_last_accepting_state = yy_current_state;
1800 yyg->yy_last_accepting_cpos = yy_cp;
1802 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1804 yy_current_state = (int) yy_def[yy_current_state];
1805 if ( yy_current_state >= 393 )
1806 yy_c = yy_meta[(
unsigned int) yy_c];
1808 yy_current_state = yy_nxt[yy_base[yy_current_state] + (
unsigned int) yy_c];
1809 yy_is_jam = (yy_current_state == 392);
1812 return yy_is_jam ? 0 : yy_current_state;
1817 static int yyinput (yyscan_t yyscanner)
1819 static int input (yyscan_t yyscanner)
1826 *yyg->yy_c_buf_p = yyg->yy_hold_char;
1828 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
1834 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
1836 *yyg->yy_c_buf_p =
'\0';
1840 yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
1843 switch ( yy_get_next_buffer( yyscanner ) )
1845 case EOB_ACT_LAST_MATCH:
1857 ematch_restart(yyin ,yyscanner);
1861 case EOB_ACT_END_OF_FILE:
1863 if ( ematch_wrap(yyscanner ) )
1866 if ( ! yyg->yy_did_buffer_switch_on_eof )
1869 return yyinput(yyscanner);
1871 return input(yyscanner);
1875 case EOB_ACT_CONTINUE_SCAN:
1876 yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
1882 c = *(
unsigned char *) yyg->yy_c_buf_p;
1883 *yyg->yy_c_buf_p =
'\0';
1884 yyg->yy_hold_char = *++yyg->yy_c_buf_p;
1895 void ematch_restart (FILE * input_file , yyscan_t yyscanner)
1899 if ( ! YY_CURRENT_BUFFER ){
1900 ematch_ensure_buffer_stack (yyscanner);
1901 YY_CURRENT_BUFFER_LVALUE =
1902 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
1905 ematch__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
1906 ematch__load_buffer_state(yyscanner );
1913 void ematch__switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
1922 ematch_ensure_buffer_stack (yyscanner);
1923 if ( YY_CURRENT_BUFFER == new_buffer )
1926 if ( YY_CURRENT_BUFFER )
1929 *yyg->yy_c_buf_p = yyg->yy_hold_char;
1930 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
1931 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
1934 YY_CURRENT_BUFFER_LVALUE = new_buffer;
1935 ematch__load_buffer_state(yyscanner );
1942 yyg->yy_did_buffer_switch_on_eof = 1;
1945 static void ematch__load_buffer_state (yyscan_t yyscanner)
1948 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1949 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
1950 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
1951 yyg->yy_hold_char = *yyg->yy_c_buf_p;
1960 YY_BUFFER_STATE ematch__create_buffer (FILE * file,
int size , yyscan_t yyscanner)
1964 b = (YY_BUFFER_STATE) ematch_alloc(
sizeof(
struct yy_buffer_state ) ,yyscanner );
1966 YY_FATAL_ERROR(
"out of dynamic memory in ematch__create_buffer()" );
1968 b->yy_buf_size = size;
1973 b->yy_ch_buf = (
char *) ematch_alloc(b->yy_buf_size + 2 ,yyscanner );
1974 if ( ! b->yy_ch_buf )
1975 YY_FATAL_ERROR(
"out of dynamic memory in ematch__create_buffer()" );
1977 b->yy_is_our_buffer = 1;
1979 ematch__init_buffer(b,file ,yyscanner);
1988 void ematch__delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
1995 if ( b == YY_CURRENT_BUFFER )
1996 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
1998 if ( b->yy_is_our_buffer )
1999 ematch_free((
void *) b->yy_ch_buf ,yyscanner );
2001 ematch_free((
void *) b ,yyscanner );
2008 static void ematch__init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
2014 ematch__flush_buffer(b ,yyscanner);
2016 b->yy_input_file = file;
2017 b->yy_fill_buffer = 1;
2023 if (b != YY_CURRENT_BUFFER){
2028 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2037 void ematch__flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
2049 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2050 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2052 b->yy_buf_pos = &b->yy_ch_buf[0];
2055 b->yy_buffer_status = YY_BUFFER_NEW;
2057 if ( b == YY_CURRENT_BUFFER )
2058 ematch__load_buffer_state(yyscanner );
2067 void ematch_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
2070 if (new_buffer == NULL)
2073 ematch_ensure_buffer_stack(yyscanner);
2076 if ( YY_CURRENT_BUFFER )
2079 *yyg->yy_c_buf_p = yyg->yy_hold_char;
2080 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
2081 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
2085 if (YY_CURRENT_BUFFER)
2087 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2090 ematch__load_buffer_state(yyscanner );
2091 yyg->yy_did_buffer_switch_on_eof = 1;
2098 void ematch_pop_buffer_state (yyscan_t yyscanner)
2101 if (!YY_CURRENT_BUFFER)
2104 ematch__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
2105 YY_CURRENT_BUFFER_LVALUE = NULL;
2109 if (YY_CURRENT_BUFFER) {
2110 ematch__load_buffer_state(yyscanner );
2111 yyg->yy_did_buffer_switch_on_eof = 1;
2118 static void ematch_ensure_buffer_stack (yyscan_t yyscanner)
2120 yy_size_t num_to_alloc;
2134 YY_FATAL_ERROR(
"out of dynamic memory in ematch_ensure_buffer_stack()" );
2154 YY_FATAL_ERROR(
"out of dynamic memory in ematch_ensure_buffer_stack()" );
2168 YY_BUFFER_STATE ematch__scan_buffer (
char * base, yy_size_t size , yyscan_t yyscanner)
2173 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2174 base[size-1] != YY_END_OF_BUFFER_CHAR )
2178 b = (YY_BUFFER_STATE) ematch_alloc(
sizeof(
struct yy_buffer_state ) ,yyscanner );
2180 YY_FATAL_ERROR(
"out of dynamic memory in ematch__scan_buffer()" );
2182 b->yy_buf_size = size - 2;
2183 b->yy_buf_pos = b->yy_ch_buf = base;
2184 b->yy_is_our_buffer = 0;
2185 b->yy_input_file = 0;
2186 b->yy_n_chars = b->yy_buf_size;
2187 b->yy_is_interactive = 0;
2189 b->yy_fill_buffer = 0;
2190 b->yy_buffer_status = YY_BUFFER_NEW;
2192 ematch__switch_to_buffer(b ,yyscanner );
2205 YY_BUFFER_STATE ematch__scan_string (yyconst
char * yystr , yyscan_t yyscanner)
2208 return ematch__scan_bytes(yystr,strlen(yystr) ,yyscanner);
2218 YY_BUFFER_STATE ematch__scan_bytes (yyconst
char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner)
2226 n = _yybytes_len + 2;
2227 buf = (
char *) ematch_alloc(n ,yyscanner );
2229 YY_FATAL_ERROR(
"out of dynamic memory in ematch__scan_bytes()" );
2231 for ( i = 0; i < _yybytes_len; ++i )
2232 buf[i] = yybytes[i];
2234 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2236 b = ematch__scan_buffer(buf,n ,yyscanner);
2238 YY_FATAL_ERROR(
"bad buffer in ematch__scan_bytes()" );
2243 b->yy_is_our_buffer = 1;
2248 #ifndef YY_EXIT_FAILURE
2249 #define YY_EXIT_FAILURE 2
2252 static void yy_fatal_error (yyconst
char* msg , yyscan_t yyscanner)
2254 (void) fprintf( stderr,
"%s\n", msg );
2255 exit( YY_EXIT_FAILURE );
2265 int yyless_macro_arg = (n); \
2266 YY_LESS_LINENO(yyless_macro_arg);\
2267 yytext[yyleng] = yyg->yy_hold_char; \
2268 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
2269 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
2270 *yyg->yy_c_buf_p = '\0'; \
2271 yyleng = yyless_macro_arg; \
2280 YY_EXTRA_TYPE ematch_get_extra (yyscan_t yyscanner)
2289 int ematch_get_lineno (yyscan_t yyscanner)
2293 if (! YY_CURRENT_BUFFER)
2302 int ematch_get_column (yyscan_t yyscanner)
2306 if (! YY_CURRENT_BUFFER)
2315 FILE *ematch_get_in (yyscan_t yyscanner)
2324 FILE *ematch_get_out (yyscan_t yyscanner)
2333 yy_size_t ematch_get_leng (yyscan_t yyscanner)
2343 char *ematch_get_text (yyscan_t yyscanner)
2353 void ematch_set_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
2356 yyextra = user_defined ;
2363 void ematch_set_lineno (
int line_number , yyscan_t yyscanner)
2368 if (! YY_CURRENT_BUFFER )
2369 YY_FATAL_ERROR(
"ematch_set_lineno called with no buffer" );
2371 yylineno = line_number;
2378 void ematch_set_column (
int column_no , yyscan_t yyscanner)
2383 if (! YY_CURRENT_BUFFER )
2384 YY_FATAL_ERROR(
"ematch_set_column called with no buffer" );
2386 yycolumn = column_no;
2395 void ematch_set_in (FILE * in_str , yyscan_t yyscanner)
2401 void ematch_set_out (FILE * out_str , yyscan_t yyscanner)
2407 int ematch_get_debug (yyscan_t yyscanner)
2410 return yy_flex_debug;
2413 void ematch_set_debug (
int bdebug , yyscan_t yyscanner)
2416 yy_flex_debug = bdebug ;
2421 YYSTYPE * ematch_get_lval (yyscan_t yyscanner)
2427 void ematch_set_lval (
YYSTYPE * yylval_param , yyscan_t yyscanner)
2430 yylval = yylval_param;
2440 int ematch_lex_init(yyscan_t* ptr_yy_globals)
2443 if (ptr_yy_globals == NULL){
2448 *ptr_yy_globals = (yyscan_t) ematch_alloc (
sizeof(
struct yyguts_t ), NULL );
2450 if (*ptr_yy_globals == NULL){
2456 memset(*ptr_yy_globals,0x00,
sizeof(
struct yyguts_t));
2458 return yy_init_globals ( *ptr_yy_globals );
2469 int ematch_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
2474 ematch_set_extra (yy_user_defined, &dummy_yyguts);
2476 if (ptr_yy_globals == NULL){
2481 *ptr_yy_globals = (yyscan_t) ematch_alloc (
sizeof(
struct yyguts_t ), &dummy_yyguts );
2483 if (*ptr_yy_globals == NULL){
2490 memset(*ptr_yy_globals,0x00,
sizeof(
struct yyguts_t));
2492 ematch_set_extra (yy_user_defined, *ptr_yy_globals);
2494 return yy_init_globals ( *ptr_yy_globals );
2497 static int yy_init_globals (yyscan_t yyscanner)
2507 yyg->yy_c_buf_p = (
char *) 0;
2511 yyg->yy_start_stack_ptr = 0;
2512 yyg->yy_start_stack_depth = 0;
2513 yyg->yy_start_stack = NULL;
2531 int ematch_lex_destroy (yyscan_t yyscanner)
2536 while(YY_CURRENT_BUFFER){
2537 ematch__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
2538 YY_CURRENT_BUFFER_LVALUE = NULL;
2539 ematch_pop_buffer_state(yyscanner);
2547 ematch_free(yyg->yy_start_stack ,yyscanner );
2548 yyg->yy_start_stack = NULL;
2552 yy_init_globals( yyscanner);
2555 ematch_free ( yyscanner , yyscanner );
2565 static void yy_flex_strncpy (
char* s1, yyconst
char * s2,
int n , yyscan_t yyscanner)
2568 for ( i = 0; i < n; ++i )
2573 #ifdef YY_NEED_STRLEN
2574 static int yy_flex_strlen (yyconst
char * s , yyscan_t yyscanner)
2577 for ( n = 0; s[n]; ++n )
2584 void *ematch_alloc (yy_size_t size , yyscan_t yyscanner)
2586 return (
void *) malloc( size );
2589 void *ematch_realloc (
void * ptr, yy_size_t size , yyscan_t yyscanner)
2598 return (
void *) realloc( (
char *) ptr, size );
2601 void ematch_free (
void * ptr , yyscan_t yyscanner)
2603 free( (
char *) ptr );
2606 #define YYTABLES_NAME "yytables"
2608 #line 163 "route/cls/ematch_grammar.l"