00001 #line 2 "route/cls/ematch_grammar.c"
00002
00003 #line 4 "route/cls/ematch_grammar.c"
00004
00005 #define YY_INT_ALIGNED short int
00006
00007
00008
00009 #define FLEX_SCANNER
00010 #define YY_FLEX_MAJOR_VERSION 2
00011 #define YY_FLEX_MINOR_VERSION 5
00012 #define YY_FLEX_SUBMINOR_VERSION 35
00013 #if YY_FLEX_SUBMINOR_VERSION > 0
00014 #define FLEX_BETA
00015 #endif
00016
00017
00018
00019
00020 #include <stdio.h>
00021 #include <string.h>
00022 #include <errno.h>
00023 #include <stdlib.h>
00024
00025
00026
00027
00028
00029 #ifndef FLEXINT_H
00030 #define FLEXINT_H
00031
00032
00033
00034 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
00035
00036
00037
00038
00039 #ifndef __STDC_LIMIT_MACROS
00040 #define __STDC_LIMIT_MACROS 1
00041 #endif
00042
00043 #include <inttypes.h>
00044 typedef int8_t flex_int8_t;
00045 typedef uint8_t flex_uint8_t;
00046 typedef int16_t flex_int16_t;
00047 typedef uint16_t flex_uint16_t;
00048 typedef int32_t flex_int32_t;
00049 typedef uint32_t flex_uint32_t;
00050 #else
00051 typedef signed char flex_int8_t;
00052 typedef short int flex_int16_t;
00053 typedef int flex_int32_t;
00054 typedef unsigned char flex_uint8_t;
00055 typedef unsigned short int flex_uint16_t;
00056 typedef unsigned int flex_uint32_t;
00057
00058
00059 #ifndef INT8_MIN
00060 #define INT8_MIN (-128)
00061 #endif
00062 #ifndef INT16_MIN
00063 #define INT16_MIN (-32767-1)
00064 #endif
00065 #ifndef INT32_MIN
00066 #define INT32_MIN (-2147483647-1)
00067 #endif
00068 #ifndef INT8_MAX
00069 #define INT8_MAX (127)
00070 #endif
00071 #ifndef INT16_MAX
00072 #define INT16_MAX (32767)
00073 #endif
00074 #ifndef INT32_MAX
00075 #define INT32_MAX (2147483647)
00076 #endif
00077 #ifndef UINT8_MAX
00078 #define UINT8_MAX (255U)
00079 #endif
00080 #ifndef UINT16_MAX
00081 #define UINT16_MAX (65535U)
00082 #endif
00083 #ifndef UINT32_MAX
00084 #define UINT32_MAX (4294967295U)
00085 #endif
00086
00087 #endif
00088
00089 #endif
00090
00091 #ifdef __cplusplus
00092
00093
00094 #define YY_USE_CONST
00095
00096 #else
00097
00098
00099 #if defined (__STDC__)
00100
00101 #define YY_USE_CONST
00102
00103 #endif
00104 #endif
00105
00106 #ifdef YY_USE_CONST
00107 #define yyconst const
00108 #else
00109 #define yyconst
00110 #endif
00111
00112
00113 #define YY_NULL 0
00114
00115
00116
00117
00118
00119
00120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00121
00122
00123 #ifndef YY_TYPEDEF_YY_SCANNER_T
00124 #define YY_TYPEDEF_YY_SCANNER_T
00125 typedef void* yyscan_t;
00126 #endif
00127
00128
00129
00130 #define yyin yyg->yyin_r
00131 #define yyout yyg->yyout_r
00132 #define yyextra yyg->yyextra_r
00133 #define yyleng yyg->yyleng_r
00134 #define yytext yyg->yytext_r
00135 #define yylineno (YY_CURRENT_BUFFER_LVALUE->yy_bs_lineno)
00136 #define yycolumn (YY_CURRENT_BUFFER_LVALUE->yy_bs_column)
00137 #define yy_flex_debug yyg->yy_flex_debug_r
00138
00139
00140
00141
00142
00143 #define BEGIN yyg->yy_start = 1 + 2 *
00144
00145
00146
00147
00148
00149 #define YY_START ((yyg->yy_start - 1) / 2)
00150 #define YYSTATE YY_START
00151
00152
00153 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00154
00155
00156 #define YY_NEW_FILE ematch_restart(yyin ,yyscanner )
00157
00158 #define YY_END_OF_BUFFER_CHAR 0
00159
00160
00161 #ifndef YY_BUF_SIZE
00162 #ifdef __ia64__
00163
00164
00165
00166
00167 #define YY_BUF_SIZE 32768
00168 #else
00169 #define YY_BUF_SIZE 16384
00170 #endif
00171 #endif
00172
00173
00174
00175 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
00176
00177 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
00178 #define YY_TYPEDEF_YY_BUFFER_STATE
00179 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00180 #endif
00181
00182 #define EOB_ACT_CONTINUE_SCAN 0
00183 #define EOB_ACT_END_OF_FILE 1
00184 #define EOB_ACT_LAST_MATCH 2
00185
00186 #define YY_LESS_LINENO(n)
00187
00188
00189 #define yyless(n) \
00190 do \
00191 { \
00192 \
00193 int yyless_macro_arg = (n); \
00194 YY_LESS_LINENO(yyless_macro_arg);\
00195 *yy_cp = yyg->yy_hold_char; \
00196 YY_RESTORE_YY_MORE_OFFSET \
00197 yyg->yy_c_buf_p = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
00198 YY_DO_BEFORE_ACTION; \
00199 } \
00200 while ( 0 )
00201
00202 #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner )
00203
00204 #ifndef YY_TYPEDEF_YY_SIZE_T
00205 #define YY_TYPEDEF_YY_SIZE_T
00206 typedef size_t yy_size_t;
00207 #endif
00208
00209 #ifndef YY_STRUCT_YY_BUFFER_STATE
00210 #define YY_STRUCT_YY_BUFFER_STATE
00211 struct yy_buffer_state
00212 {
00213 FILE *yy_input_file;
00214
00215 char *yy_ch_buf;
00216 char *yy_buf_pos;
00217
00218
00219
00220
00221 yy_size_t yy_buf_size;
00222
00223
00224
00225
00226 int yy_n_chars;
00227
00228
00229
00230
00231
00232 int yy_is_our_buffer;
00233
00234
00235
00236
00237
00238
00239 int yy_is_interactive;
00240
00241
00242
00243
00244
00245 int yy_at_bol;
00246
00247 int yy_bs_lineno;
00248 int yy_bs_column;
00249
00250
00251
00252
00253 int yy_fill_buffer;
00254
00255 int yy_buffer_status;
00256
00257 #define YY_BUFFER_NEW 0
00258 #define YY_BUFFER_NORMAL 1
00259
00260
00261
00262
00263
00264
00265
00266
00267
00268
00269 #define YY_BUFFER_EOF_PENDING 2
00270
00271 };
00272 #endif
00273
00274
00275
00276
00277
00278
00279
00280 #define YY_CURRENT_BUFFER ( yyg->yy_buffer_stack \
00281 ? yyg->yy_buffer_stack[yyg->yy_buffer_stack_top] \
00282 : NULL)
00283
00284
00285
00286
00287 #define YY_CURRENT_BUFFER_LVALUE yyg->yy_buffer_stack[yyg->yy_buffer_stack_top]
00288
00289 void ematch_restart (FILE *input_file ,yyscan_t yyscanner );
00290 void ematch__switch_to_buffer (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00291 YY_BUFFER_STATE ematch__create_buffer (FILE *file,int size ,yyscan_t yyscanner );
00292 void ematch__delete_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00293 void ematch__flush_buffer (YY_BUFFER_STATE b ,yyscan_t yyscanner );
00294 void ematch_push_buffer_state (YY_BUFFER_STATE new_buffer ,yyscan_t yyscanner );
00295 void ematch_pop_buffer_state (yyscan_t yyscanner );
00296
00297 static void ematch_ensure_buffer_stack (yyscan_t yyscanner );
00298 static void ematch__load_buffer_state (yyscan_t yyscanner );
00299 static void ematch__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanner );
00300
00301 #define YY_FLUSH_BUFFER ematch__flush_buffer(YY_CURRENT_BUFFER ,yyscanner)
00302
00303 YY_BUFFER_STATE ematch__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner );
00304 YY_BUFFER_STATE ematch__scan_string (yyconst char *yy_str ,yyscan_t yyscanner );
00305 YY_BUFFER_STATE ematch__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner );
00306
00307 void *ematch_alloc (yy_size_t ,yyscan_t yyscanner );
00308 void *ematch_realloc (void *,yy_size_t ,yyscan_t yyscanner );
00309 void ematch_free (void * ,yyscan_t yyscanner );
00310
00311 #define yy_new_buffer ematch__create_buffer
00312
00313 #define yy_set_interactive(is_interactive) \
00314 { \
00315 if ( ! YY_CURRENT_BUFFER ){ \
00316 ematch_ensure_buffer_stack (yyscanner); \
00317 YY_CURRENT_BUFFER_LVALUE = \
00318 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00319 } \
00320 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
00321 }
00322
00323 #define yy_set_bol(at_bol) \
00324 { \
00325 if ( ! YY_CURRENT_BUFFER ){\
00326 ematch_ensure_buffer_stack (yyscanner); \
00327 YY_CURRENT_BUFFER_LVALUE = \
00328 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner); \
00329 } \
00330 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
00331 }
00332
00333 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
00334
00335 #define ematch_wrap(n) 1
00336 #define YY_SKIP_YYWRAP
00337
00338 typedef unsigned char YY_CHAR;
00339
00340 typedef int yy_state_type;
00341
00342 #define yytext_ptr yytext_r
00343
00344 static yy_state_type yy_get_previous_state (yyscan_t yyscanner );
00345 static yy_state_type yy_try_NUL_trans (yy_state_type current_state ,yyscan_t yyscanner);
00346 static int yy_get_next_buffer (yyscan_t yyscanner );
00347 static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner );
00348
00349
00350
00351
00352 #define YY_DO_BEFORE_ACTION \
00353 yyg->yytext_ptr = yy_bp; \
00354 yyleng = (size_t) (yy_cp - yy_bp); \
00355 yyg->yy_hold_char = *yy_cp; \
00356 *yy_cp = '\0'; \
00357 yyg->yy_c_buf_p = yy_cp;
00358
00359 #define YY_NUM_RULES 91
00360 #define YY_END_OF_BUFFER 92
00361
00362
00363 struct yy_trans_info
00364 {
00365 flex_int32_t yy_verify;
00366 flex_int32_t yy_nxt;
00367 };
00368 static yyconst flex_int16_t yy_accept[393] =
00369 { 0,
00370 0, 0, 0, 0, 92, 90, 1, 18, 2, 26,
00371 23, 24, 30, 5, 5, 12, 8, 10, 90, 90,
00372 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
00373 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
00374 90, 91, 3, 91, 4, 90, 1, 14, 5, 90,
00375 28, 90, 29, 90, 90, 90, 40, 90, 90, 90,
00376 90, 90, 15, 90, 90, 90, 90, 32, 90, 90,
00377 90, 33, 90, 90, 7, 9, 90, 11, 90, 90,
00378 90, 90, 90, 90, 90, 90, 90, 16, 3, 6,
00379 13, 19, 37, 90, 39, 90, 90, 90, 38, 17,
00380
00381 90, 90, 42, 90, 90, 34, 35, 90, 47, 90,
00382 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
00383 90, 90, 31, 36, 25, 22, 90, 90, 21, 90,
00384 90, 90, 90, 90, 54, 90, 90, 48, 90, 90,
00385 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
00386 90, 90, 90, 90, 90, 90, 86, 90, 27, 90,
00387 90, 90, 90, 90, 90, 90, 49, 90, 90, 57,
00388 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
00389 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
00390 90, 90, 90, 90, 90, 90, 90, 90, 53, 51,
00391
00392 90, 43, 90, 87, 90, 90, 90, 90, 90, 90,
00393 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
00394 90, 90, 90, 90, 90, 90, 90, 90, 20, 90,
00395 52, 88, 90, 50, 90, 90, 90, 90, 90, 90,
00396 90, 76, 90, 90, 80, 90, 90, 90, 90, 90,
00397 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
00398 66, 90, 90, 55, 90, 90, 90, 90, 90, 90,
00399 90, 90, 90, 90, 90, 65, 90, 90, 90, 90,
00400 90, 60, 90, 90, 90, 90, 90, 90, 90, 59,
00401 90, 90, 41, 44, 45, 46, 56, 90, 74, 90,
00402
00403 90, 58, 90, 90, 90, 90, 62, 90, 90, 61,
00404 90, 90, 90, 90, 90, 63, 90, 90, 90, 90,
00405 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
00406 90, 90, 90, 90, 90, 90, 90, 90, 90, 89,
00407 72, 90, 90, 90, 70, 81, 82, 90, 90, 90,
00408 64, 71, 83, 90, 90, 90, 90, 90, 90, 90,
00409 90, 90, 90, 90, 90, 90, 90, 90, 77, 90,
00410 67, 75, 90, 68, 90, 90, 78, 90, 90, 84,
00411 69, 90, 90, 90, 90, 90, 90, 85, 73, 90,
00412 79, 0
00413
00414 } ;
00415
00416 static yyconst flex_int32_t yy_ec[256] =
00417 { 0,
00418 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
00419 1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
00420 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00421 1, 2, 4, 5, 1, 1, 1, 6, 1, 7,
00422 8, 1, 9, 1, 1, 1, 1, 10, 11, 12,
00423 13, 14, 14, 15, 14, 16, 14, 1, 1, 17,
00424 18, 19, 1, 1, 20, 21, 22, 23, 24, 25,
00425 1, 26, 27, 1, 28, 29, 30, 31, 32, 33,
00426 1, 34, 35, 36, 37, 1, 1, 38, 1, 1,
00427 1, 39, 1, 1, 40, 1, 41, 42, 43, 44,
00428
00429 45, 46, 47, 48, 49, 1, 50, 51, 52, 53,
00430 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
00431 64, 1, 1, 65, 1, 1, 1, 1, 1, 1,
00432 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00433 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00434 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00435 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00436 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00437 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00438 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00439
00440 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00441 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00442 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00443 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00444 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00445 1, 1, 1, 1, 1
00446 } ;
00447
00448 static yyconst flex_int32_t yy_meta[66] =
00449 { 0,
00450 1, 2, 3, 1, 3, 2, 2, 2, 2, 1,
00451 1, 1, 1, 1, 1, 1, 2, 2, 2, 1,
00452 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00453 1, 1, 1, 1, 1, 1, 1, 1, 4, 1,
00454 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00455 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00456 1, 1, 1, 1, 2
00457 } ;
00458
00459 static yyconst flex_int16_t yy_base[396] =
00460 { 0,
00461 0, 0, 63, 64, 537, 0, 68, 0, 538, 530,
00462 538, 538, 538, 62, 69, 538, 538, 516, 55, 57,
00463 52, 55, 60, 67, 72, 73, 64, 79, 75, 100,
00464 115, 65, 83, 475, 102, 117, 118, 89, 121, 131,
00465 482, 467, 0, 538, 538, 0, 133, 538, 167, 179,
00466 538, 123, 0, 111, 124, 132, 516, 153, 138, 151,
00467 169, 171, 0, 172, 170, 178, 171, 0, 129, 515,
00468 517, 0, 469, 466, 0, 0, 485, 0, 183, 466,
00469 41, 471, 186, 475, 482, 183, 480, 538, 0, 0,
00470 0, 0, 0, 184, 0, 187, 189, 207, 0, 0,
00471
00472 206, 218, 0, 208, 215, 0, 0, 479, 466, 474,
00473 466, 466, 194, 461, 455, 469, 461, 462, 469, 228,
00474 456, 455, 0, 0, 0, 0, 226, 213, 0, 217,
00475 456, 465, 464, 459, 0, 458, 438, 0, 447, 446,
00476 458, 452, 439, 204, 442, 438, 237, 453, 444, 451,
00477 434, 249, 236, 426, 199, 445, 0, 220, 0, 227,
00478 443, 435, 425, 432, 431, 428, 0, 430, 423, 0,
00479 432, 429, 427, 417, 419, 423, 417, 415, 419, 408,
00480 208, 409, 152, 424, 408, 414, 406, 421, 423, 408,
00481 417, 412, 415, 235, 261, 406, 413, 410, 0, 0,
00482
00483 411, 0, 397, 0, 414, 399, 399, 411, 401, 387,
00484 400, 400, 406, 391, 385, 257, 400, 384, 389, 381,
00485 395, 379, 258, 378, 391, 383, 375, 370, 0, 262,
00486 0, 0, 392, 0, 382, 388, 386, 384, 371, 375,
00487 384, 0, 379, 382, 0, 368, 365, 360, 365, 369,
00488 364, 371, 375, 369, 361, 368, 355, 350, 360, 363,
00489 0, 367, 361, 0, 266, 294, 361, 363, 345, 362,
00490 350, 336, 342, 341, 354, 0, 345, 349, 332, 341,
00491 333, 0, 350, 350, 331, 334, 336, 340, 333, 0,
00492 266, 344, 0, 0, 0, 0, 0, 340, 0, 333,
00493
00494 336, 0, 336, 320, 328, 332, 0, 335, 330, 0,
00495 323, 330, 325, 309, 325, 0, 324, 317, 307, 311,
00496 315, 318, 310, 322, 312, 320, 306, 299, 303, 305,
00497 314, 314, 300, 299, 297, 299, 304, 303, 296, 0,
00498 0, 305, 293, 302, 0, 0, 0, 289, 287, 287,
00499 0, 0, 0, 286, 279, 285, 283, 285, 287, 290,
00500 281, 265, 275, 277, 273, 270, 266, 261, 0, 268,
00501 0, 0, 264, 0, 265, 214, 0, 207, 209, 0,
00502 0, 205, 170, 109, 93, 75, 53, 0, 0, 57,
00503 0, 538, 325, 329, 333
00504
00505 } ;
00506
00507 static yyconst flex_int16_t yy_def[396] =
00508 { 0,
00509 392, 1, 393, 393, 392, 394, 392, 394, 392, 392,
00510 392, 392, 392, 394, 394, 392, 392, 392, 394, 394,
00511 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00512 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00513 394, 392, 395, 392, 392, 394, 392, 392, 394, 394,
00514 392, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00515 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00516 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00517 394, 394, 394, 394, 394, 394, 394, 392, 395, 50,
00518 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00519
00520 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00521 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00522 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00523 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00524 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00525 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00526 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00527 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00528 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00529 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00530
00531 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00532 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00533 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00534 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00535 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00536 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00537 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00538 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00539 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00540 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00541
00542 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00543 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00544 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00545 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00546 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00547 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00548 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00549 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00550 394, 394, 394, 394, 394, 394, 394, 394, 394, 394,
00551 394, 0, 392, 392, 392
00552
00553 } ;
00554
00555 static yyconst flex_int16_t yy_nxt[604] =
00556 { 0,
00557 6, 7, 7, 8, 9, 10, 11, 12, 13, 14,
00558 15, 15, 15, 15, 15, 15, 16, 17, 18, 19,
00559 6, 20, 6, 21, 22, 6, 23, 6, 24, 25,
00560 26, 27, 28, 6, 29, 30, 31, 6, 6, 6,
00561 19, 6, 20, 32, 33, 22, 34, 6, 23, 6,
00562 35, 36, 26, 27, 37, 6, 38, 39, 40, 31,
00563 41, 6, 6, 6, 42, 44, 44, 45, 45, 47,
00564 47, 49, 49, 49, 49, 49, 49, 49, 49, 49,
00565 49, 49, 49, 49, 49, 52, 54, 55, 56, 114,
00566 53, 59, 57, 58, 115, 60, 61, 63, 64, 50,
00567
00568 65, 44, 44, 391, 62, 73, 390, 52, 54, 74,
00569 55, 56, 59, 53, 57, 58, 60, 61, 55, 64,
00570 63, 66, 65, 67, 50, 70, 62, 71, 58, 82,
00571 72, 68, 389, 69, 47, 47, 59, 64, 75, 388,
00572 60, 55, 66, 92, 67, 91, 65, 83, 105, 93,
00573 58, 84, 66, 68, 67, 77, 69, 79, 64, 387,
00574 78, 60, 68, 94, 69, 92, 91, 80, 65, 105,
00575 85, 93, 97, 86, 81, 67, 49, 49, 49, 49,
00576 49, 49, 49, 96, 68, 94, 98, 69, 90, 90,
00577 90, 90, 90, 90, 90, 97, 102, 217, 90, 90,
00578
00579 90, 90, 90, 90, 99, 96, 100, 101, 104, 98,
00580 103, 218, 386, 123, 124, 103, 125, 97, 102, 90,
00581 90, 90, 90, 90, 90, 111, 126, 99, 117, 100,
00582 101, 121, 103, 104, 118, 123, 124, 103, 125, 112,
00583 97, 127, 128, 129, 136, 130, 172, 126, 159, 158,
00584 191, 160, 137, 194, 173, 192, 214, 385, 384, 195,
00585 383, 215, 382, 128, 127, 229, 129, 130, 144, 145,
00586 158, 159, 146, 147, 160, 148, 194, 176, 149, 150,
00587 186, 195, 151, 187, 152, 153, 154, 229, 188, 155,
00588 177, 182, 230, 183, 189, 265, 247, 257, 248, 258,
00589
00590 184, 293, 185, 294, 295, 296, 318, 249, 381, 380,
00591 379, 378, 377, 376, 230, 250, 259, 375, 265, 374,
00592 373, 319, 372, 371, 293, 43, 43, 43, 43, 46,
00593 370, 369, 46, 89, 89, 368, 367, 366, 365, 364,
00594 363, 362, 361, 360, 359, 358, 357, 356, 355, 354,
00595 353, 352, 351, 350, 349, 348, 347, 346, 345, 344,
00596 343, 342, 341, 340, 339, 338, 337, 336, 335, 334,
00597 333, 332, 331, 330, 329, 328, 327, 326, 325, 324,
00598 323, 322, 321, 320, 317, 316, 315, 314, 313, 312,
00599 311, 310, 309, 308, 307, 306, 305, 304, 303, 302,
00600
00601 301, 300, 299, 298, 297, 292, 291, 290, 289, 288,
00602 287, 286, 285, 284, 283, 282, 281, 280, 279, 278,
00603 277, 276, 275, 274, 273, 272, 271, 270, 269, 268,
00604 267, 266, 264, 263, 262, 261, 260, 256, 255, 254,
00605 253, 252, 251, 246, 245, 244, 243, 242, 241, 240,
00606 239, 238, 237, 236, 235, 234, 233, 232, 231, 228,
00607 227, 226, 225, 224, 223, 222, 221, 220, 219, 216,
00608 213, 212, 211, 210, 209, 208, 207, 206, 205, 204,
00609 203, 202, 201, 200, 199, 198, 197, 196, 193, 190,
00610 181, 180, 179, 178, 175, 174, 171, 170, 169, 168,
00611
00612 167, 166, 165, 164, 163, 162, 161, 157, 156, 143,
00613 142, 141, 140, 139, 138, 135, 134, 133, 132, 131,
00614 122, 120, 119, 116, 113, 110, 109, 108, 107, 106,
00615 95, 88, 87, 76, 51, 48, 392, 5, 392, 392,
00616 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
00617 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
00618 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
00619 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
00620 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
00621 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
00622
00623 392, 392, 392
00624 } ;
00625
00626 static yyconst flex_int16_t yy_chk[604] =
00627 { 0,
00628 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00629 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00630 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00631 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00632 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00633 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00634 1, 1, 1, 1, 1, 3, 4, 3, 4, 7,
00635 7, 14, 14, 14, 14, 14, 14, 14, 15, 15,
00636 15, 15, 15, 15, 15, 19, 20, 21, 22, 81,
00637 19, 25, 23, 24, 81, 25, 26, 27, 28, 14,
00638
00639 29, 3, 4, 390, 26, 32, 387, 19, 20, 32,
00640 21, 22, 25, 19, 23, 24, 25, 26, 33, 28,
00641 27, 30, 29, 30, 14, 31, 26, 31, 35, 38,
00642 31, 30, 386, 30, 47, 47, 36, 37, 33, 385,
00643 36, 33, 30, 54, 30, 52, 39, 38, 69, 55,
00644 35, 38, 40, 30, 40, 35, 30, 36, 37, 384,
00645 35, 36, 40, 56, 40, 54, 52, 37, 39, 69,
00646 39, 55, 59, 40, 37, 40, 49, 49, 49, 49,
00647 49, 49, 49, 58, 40, 56, 60, 40, 50, 50,
00648 50, 50, 50, 50, 50, 59, 65, 183, 50, 50,
00649
00650 50, 50, 50, 50, 61, 58, 62, 64, 67, 60,
00651 66, 183, 383, 94, 96, 86, 97, 79, 65, 50,
00652 50, 50, 50, 50, 50, 79, 98, 61, 83, 62,
00653 64, 86, 66, 67, 83, 94, 96, 86, 97, 79,
00654 79, 101, 102, 104, 113, 105, 144, 98, 128, 127,
00655 155, 130, 113, 158, 144, 155, 181, 382, 379, 160,
00656 378, 181, 376, 102, 101, 194, 104, 105, 120, 120,
00657 127, 128, 120, 120, 130, 120, 158, 147, 120, 120,
00658 153, 160, 120, 153, 120, 120, 120, 194, 153, 120,
00659 147, 152, 195, 152, 153, 230, 216, 223, 216, 223,
00660
00661 152, 265, 152, 266, 266, 266, 291, 216, 375, 373,
00662 370, 368, 367, 366, 195, 216, 223, 365, 230, 364,
00663 363, 291, 362, 361, 265, 393, 393, 393, 393, 394,
00664 360, 359, 394, 395, 395, 358, 357, 356, 355, 354,
00665 350, 349, 348, 344, 343, 342, 339, 338, 337, 336,
00666 335, 334, 333, 332, 331, 330, 329, 328, 327, 326,
00667 325, 324, 323, 322, 321, 320, 319, 318, 317, 315,
00668 314, 313, 312, 311, 309, 308, 306, 305, 304, 303,
00669 301, 300, 298, 292, 289, 288, 287, 286, 285, 284,
00670 283, 281, 280, 279, 278, 277, 275, 274, 273, 272,
00671
00672 271, 270, 269, 268, 267, 263, 262, 260, 259, 258,
00673 257, 256, 255, 254, 253, 252, 251, 250, 249, 248,
00674 247, 246, 244, 243, 241, 240, 239, 238, 237, 236,
00675 235, 233, 228, 227, 226, 225, 224, 222, 221, 220,
00676 219, 218, 217, 215, 214, 213, 212, 211, 210, 209,
00677 208, 207, 206, 205, 203, 201, 198, 197, 196, 193,
00678 192, 191, 190, 189, 188, 187, 186, 185, 184, 182,
00679 180, 179, 178, 177, 176, 175, 174, 173, 172, 171,
00680 169, 168, 166, 165, 164, 163, 162, 161, 156, 154,
00681 151, 150, 149, 148, 146, 145, 143, 142, 141, 140,
00682
00683 139, 137, 136, 134, 133, 132, 131, 122, 121, 119,
00684 118, 117, 116, 115, 114, 112, 111, 110, 109, 108,
00685 87, 85, 84, 82, 80, 77, 74, 73, 71, 70,
00686 57, 42, 41, 34, 18, 10, 5, 392, 392, 392,
00687 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
00688 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
00689 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
00690 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
00691 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
00692 392, 392, 392, 392, 392, 392, 392, 392, 392, 392,
00693
00694 392, 392, 392
00695 } ;
00696
00697
00698
00699
00700 #define REJECT reject_used_but_not_detected
00701 #define yymore() yymore_used_but_not_detected
00702 #define YY_MORE_ADJ 0
00703 #define YY_RESTORE_YY_MORE_OFFSET
00704 #line 1 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
00705
00706
00707
00708
00709
00710
00711
00712
00713
00714
00715 #line 13 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
00716 #include <netlink-local.h>
00717 #include <netlink-tc.h>
00718 #include <netlink/netlink.h>
00719 #include <netlink/route/cls/ematch.h>
00720 #include <netlink/route/cls/ematch/cmp.h>
00721 #include "ematch_syntax.h"
00722 #define YY_NO_INPUT 1
00723
00724 #line 725 "route/cls/ematch_grammar.c"
00725
00726 #define INITIAL 0
00727 #define QUOTE 1
00728
00729 #ifndef YY_NO_UNISTD_H
00730
00731
00732
00733
00734 #include <unistd.h>
00735 #endif
00736
00737 #ifndef YY_EXTRA_TYPE
00738 #define YY_EXTRA_TYPE void *
00739 #endif
00740
00741
00742 struct yyguts_t
00743 {
00744
00745
00746 YY_EXTRA_TYPE yyextra_r;
00747
00748
00749 FILE *yyin_r, *yyout_r;
00750 size_t yy_buffer_stack_top;
00751 size_t yy_buffer_stack_max;
00752 YY_BUFFER_STATE * yy_buffer_stack;
00753 char yy_hold_char;
00754 int yy_n_chars;
00755 int yyleng_r;
00756 char *yy_c_buf_p;
00757 int yy_init;
00758 int yy_start;
00759 int yy_did_buffer_switch_on_eof;
00760 int yy_start_stack_ptr;
00761 int yy_start_stack_depth;
00762 int *yy_start_stack;
00763 yy_state_type yy_last_accepting_state;
00764 char* yy_last_accepting_cpos;
00765
00766 int yylineno_r;
00767 int yy_flex_debug_r;
00768
00769 char *yytext_r;
00770 int yy_more_flag;
00771 int yy_more_len;
00772
00773 YYSTYPE * yylval_r;
00774
00775 };
00776
00777 static int yy_init_globals (yyscan_t yyscanner );
00778
00779
00780
00781 # define yylval yyg->yylval_r
00782
00783 int ematch_lex_init (yyscan_t* scanner);
00784
00785 int ematch_lex_init_extra (YY_EXTRA_TYPE user_defined,yyscan_t* scanner);
00786
00787
00788
00789
00790 int ematch_lex_destroy (yyscan_t yyscanner );
00791
00792 int ematch_get_debug (yyscan_t yyscanner );
00793
00794 void ematch_set_debug (int debug_flag ,yyscan_t yyscanner );
00795
00796 YY_EXTRA_TYPE ematch_get_extra (yyscan_t yyscanner );
00797
00798 void ematch_set_extra (YY_EXTRA_TYPE user_defined ,yyscan_t yyscanner );
00799
00800 FILE *ematch_get_in (yyscan_t yyscanner );
00801
00802 void ematch_set_in (FILE * in_str ,yyscan_t yyscanner );
00803
00804 FILE *ematch_get_out (yyscan_t yyscanner );
00805
00806 void ematch_set_out (FILE * out_str ,yyscan_t yyscanner );
00807
00808 int ematch_get_leng (yyscan_t yyscanner );
00809
00810 char *ematch_get_text (yyscan_t yyscanner );
00811
00812 int ematch_get_lineno (yyscan_t yyscanner );
00813
00814 void ematch_set_lineno (int line_number ,yyscan_t yyscanner );
00815
00816 YYSTYPE * ematch_get_lval (yyscan_t yyscanner );
00817
00818 void ematch_set_lval (YYSTYPE * yylval_param ,yyscan_t yyscanner );
00819
00820
00821
00822
00823
00824 #ifndef YY_SKIP_YYWRAP
00825 #ifdef __cplusplus
00826 extern "C" int ematch_wrap (yyscan_t yyscanner );
00827 #else
00828 extern int ematch_wrap (yyscan_t yyscanner );
00829 #endif
00830 #endif
00831
00832 #ifndef yytext_ptr
00833 static void yy_flex_strncpy (char *,yyconst char *,int ,yyscan_t yyscanner);
00834 #endif
00835
00836 #ifdef YY_NEED_STRLEN
00837 static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner);
00838 #endif
00839
00840 #ifndef YY_NO_INPUT
00841
00842 #ifdef __cplusplus
00843 static int yyinput (yyscan_t yyscanner );
00844 #else
00845 static int input (yyscan_t yyscanner );
00846 #endif
00847
00848 #endif
00849
00850
00851 #ifndef YY_READ_BUF_SIZE
00852 #ifdef __ia64__
00853
00854 #define YY_READ_BUF_SIZE 16384
00855 #else
00856 #define YY_READ_BUF_SIZE 8192
00857 #endif
00858 #endif
00859
00860
00861 #ifndef ECHO
00862
00863
00864
00865 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
00866 #endif
00867
00868
00869
00870
00871 #ifndef YY_INPUT
00872 #define YY_INPUT(buf,result,max_size) \
00873 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
00874 { \
00875 int c = '*'; \
00876 size_t n; \
00877 for ( n = 0; n < max_size && \
00878 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
00879 buf[n] = (char) c; \
00880 if ( c == '\n' ) \
00881 buf[n++] = (char) c; \
00882 if ( c == EOF && ferror( yyin ) ) \
00883 YY_FATAL_ERROR( "input in flex scanner failed" ); \
00884 result = n; \
00885 } \
00886 else \
00887 { \
00888 errno=0; \
00889 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
00890 { \
00891 if( errno != EINTR) \
00892 { \
00893 YY_FATAL_ERROR( "input in flex scanner failed" ); \
00894 break; \
00895 } \
00896 errno=0; \
00897 clearerr(yyin); \
00898 } \
00899 }\
00900 \
00901
00902 #endif
00903
00904
00905
00906
00907
00908 #ifndef yyterminate
00909 #define yyterminate() return YY_NULL
00910 #endif
00911
00912
00913 #ifndef YY_START_STACK_INCR
00914 #define YY_START_STACK_INCR 25
00915 #endif
00916
00917
00918 #ifndef YY_FATAL_ERROR
00919 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg , yyscanner)
00920 #endif
00921
00922
00923
00924
00925
00926
00927 #ifndef YY_DECL
00928 #define YY_DECL_IS_OURS 1
00929
00930 extern int ematch_lex \
00931 (YYSTYPE * yylval_param ,yyscan_t yyscanner);
00932
00933 #define YY_DECL int ematch_lex \
00934 (YYSTYPE * yylval_param , yyscan_t yyscanner)
00935 #endif
00936
00937
00938
00939
00940 #ifndef YY_USER_ACTION
00941 #define YY_USER_ACTION
00942 #endif
00943
00944
00945 #ifndef YY_BREAK
00946 #define YY_BREAK break;
00947 #endif
00948
00949 #define YY_RULE_SETUP \
00950 YY_USER_ACTION
00951
00952
00953
00954 YY_DECL
00955 {
00956 register yy_state_type yy_current_state;
00957 register char *yy_cp, *yy_bp;
00958 register int yy_act;
00959 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
00960
00961 #line 32 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
00962
00963
00964 #line 965 "route/cls/ematch_grammar.c"
00965
00966 yylval = yylval_param;
00967
00968 if ( !yyg->yy_init )
00969 {
00970 yyg->yy_init = 1;
00971
00972 #ifdef YY_USER_INIT
00973 YY_USER_INIT;
00974 #endif
00975
00976 if ( ! yyg->yy_start )
00977 yyg->yy_start = 1;
00978
00979 if ( ! yyin )
00980 yyin = stdin;
00981
00982 if ( ! yyout )
00983 yyout = stdout;
00984
00985 if ( ! YY_CURRENT_BUFFER ) {
00986 ematch_ensure_buffer_stack (yyscanner);
00987 YY_CURRENT_BUFFER_LVALUE =
00988 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
00989 }
00990
00991 ematch__load_buffer_state(yyscanner );
00992 }
00993
00994 while ( 1 )
00995 {
00996 yy_cp = yyg->yy_c_buf_p;
00997
00998
00999 *yy_cp = yyg->yy_hold_char;
01000
01001
01002
01003
01004 yy_bp = yy_cp;
01005
01006 yy_current_state = yyg->yy_start;
01007 yy_match:
01008 do
01009 {
01010 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
01011 if ( yy_accept[yy_current_state] )
01012 {
01013 yyg->yy_last_accepting_state = yy_current_state;
01014 yyg->yy_last_accepting_cpos = yy_cp;
01015 }
01016 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01017 {
01018 yy_current_state = (int) yy_def[yy_current_state];
01019 if ( yy_current_state >= 393 )
01020 yy_c = yy_meta[(unsigned int) yy_c];
01021 }
01022 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01023 ++yy_cp;
01024 }
01025 while ( yy_base[yy_current_state] != 538 );
01026
01027 yy_find_action:
01028 yy_act = yy_accept[yy_current_state];
01029 if ( yy_act == 0 )
01030 {
01031 yy_cp = yyg->yy_last_accepting_cpos;
01032 yy_current_state = yyg->yy_last_accepting_state;
01033 yy_act = yy_accept[yy_current_state];
01034 }
01035
01036 YY_DO_BEFORE_ACTION;
01037
01038 do_action:
01039
01040 switch ( yy_act )
01041 {
01042 case 0:
01043
01044 *yy_cp = yyg->yy_hold_char;
01045 yy_cp = yyg->yy_last_accepting_cpos;
01046 yy_current_state = yyg->yy_last_accepting_state;
01047 goto yy_find_action;
01048
01049 case 1:
01050
01051 YY_RULE_SETUP
01052 #line 34 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01053
01054 YY_BREAK
01055 case 2:
01056 YY_RULE_SETUP
01057 #line 36 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01058 {
01059 NL_DBG(4, "Beginning of quote\n");
01060 yylval->q.len = 32;
01061 if (!(yylval->q.data = calloc(1, yylval->q.len)))
01062 return ERROR;
01063
01064 yylval->q.index = 0;
01065 BEGIN(QUOTE);
01066 }
01067 YY_BREAK
01068 case 3:
01069 YY_RULE_SETUP
01070 #line 46 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01071 {
01072 memcpy(yylval->q.data + yylval->q.index, yytext,
01073 strlen(yytext));
01074 yylval->q.index += strlen(yytext);
01075 }
01076 YY_BREAK
01077 case 4:
01078 YY_RULE_SETUP
01079 #line 52 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01080 {
01081 BEGIN(0);
01082 return QUOTED;
01083 }
01084 YY_BREAK
01085 case 5:
01086 #line 59 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01087 case 6:
01088 YY_RULE_SETUP
01089 #line 59 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01090 {
01091 yylval->i = strtoul(yytext, NULL, 0);
01092 return NUMBER;
01093 }
01094 YY_BREAK
01095 case 7:
01096 #line 65 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01097 case 8:
01098 YY_RULE_SETUP
01099 #line 65 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01100 return KW_EQ;
01101 YY_BREAK
01102 case 9:
01103 #line 67 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01104 case 10:
01105 YY_RULE_SETUP
01106 #line 67 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01107 return KW_GT;
01108 YY_BREAK
01109 case 11:
01110 #line 69 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01111 case 12:
01112 YY_RULE_SETUP
01113 #line 69 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01114 return KW_LT;
01115 YY_BREAK
01116 case 13:
01117 #line 72 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01118 case 14:
01119 YY_RULE_SETUP
01120 #line 72 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01121 { yylval->i = TCF_EM_REL_AND; return LOGIC; }
01122 YY_BREAK
01123 case 15:
01124 #line 74 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01125 case 16:
01126 YY_RULE_SETUP
01127 #line 74 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01128 { yylval->i = TCF_EM_REL_OR; return LOGIC; }
01129 YY_BREAK
01130 case 17:
01131 #line 76 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01132 case 18:
01133 YY_RULE_SETUP
01134 #line 76 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01135 return NOT;
01136 YY_BREAK
01137 case 19:
01138 YY_RULE_SETUP
01139 #line 78 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01140 { yylval->i = TCF_EM_CMP; return EMATCH_CMP; }
01141 YY_BREAK
01142 case 20:
01143 YY_RULE_SETUP
01144 #line 79 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01145 { yylval->i = TCF_EM_NBYTE; return EMATCH_NBYTE; }
01146 YY_BREAK
01147 case 21:
01148 YY_RULE_SETUP
01149 #line 80 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01150 { yylval->i = TCF_EM_TEXT; return EMATCH_TEXT; }
01151 YY_BREAK
01152 case 22:
01153 YY_RULE_SETUP
01154 #line 81 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01155 { yylval->i = TCF_EM_META; return EMATCH_META; }
01156 YY_BREAK
01157 case 23:
01158 YY_RULE_SETUP
01159 #line 83 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01160 return KW_OPEN;
01161 YY_BREAK
01162 case 24:
01163 YY_RULE_SETUP
01164 #line 84 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01165 return KW_CLOSE;
01166 YY_BREAK
01167 case 25:
01168 #line 86 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01169 case 26:
01170 YY_RULE_SETUP
01171 #line 86 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01172 return KW_MASK;
01173 YY_BREAK
01174 case 27:
01175 #line 88 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01176 case 28:
01177 YY_RULE_SETUP
01178 #line 88 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01179 return KW_SHIFT;
01180 YY_BREAK
01181 case 29:
01182 YY_RULE_SETUP
01183 #line 89 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01184 return KW_AT;
01185 YY_BREAK
01186 case 30:
01187 YY_RULE_SETUP
01188 #line 90 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01189 return KW_PLUS;
01190 YY_BREAK
01191 case 31:
01192 YY_RULE_SETUP
01193 #line 91 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01194 return KW_FROM;
01195 YY_BREAK
01196 case 32:
01197 YY_RULE_SETUP
01198 #line 92 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01199 return KW_TO;
01200 YY_BREAK
01201 case 33:
01202 YY_RULE_SETUP
01203 #line 94 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01204 { yylval->i = TCF_EM_ALIGN_U8; return ALIGN; }
01205 YY_BREAK
01206 case 34:
01207 YY_RULE_SETUP
01208 #line 95 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01209 { yylval->i = TCF_EM_ALIGN_U16; return ALIGN; }
01210 YY_BREAK
01211 case 35:
01212 YY_RULE_SETUP
01213 #line 96 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01214 { yylval->i = TCF_EM_ALIGN_U32; return ALIGN; }
01215 YY_BREAK
01216 case 36:
01217 #line 99 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01218 case 37:
01219 YY_RULE_SETUP
01220 #line 99 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01221 { yylval->i = TCF_LAYER_LINK; return LAYER; }
01222 YY_BREAK
01223 case 38:
01224 #line 101 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01225 case 39:
01226 #line 102 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01227 case 40:
01228 YY_RULE_SETUP
01229 #line 102 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01230 { yylval->i = TCF_LAYER_NETWORK; return LAYER; }
01231 YY_BREAK
01232 case 41:
01233 #line 104 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01234 case 42:
01235 YY_RULE_SETUP
01236 #line 104 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01237 { yylval->i = TCF_LAYER_TRANSPORT; return LAYER; }
01238 YY_BREAK
01239 case 43:
01240 YY_RULE_SETUP
01241 #line 106 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01242 return META_RANDOM;
01243 YY_BREAK
01244 case 44:
01245 YY_RULE_SETUP
01246 #line 107 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01247 return META_LOADAVG_0;
01248 YY_BREAK
01249 case 45:
01250 YY_RULE_SETUP
01251 #line 108 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01252 return META_LOADAVG_1;
01253 YY_BREAK
01254 case 46:
01255 YY_RULE_SETUP
01256 #line 109 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01257 return META_LOADAVG_2;
01258 YY_BREAK
01259 case 47:
01260 YY_RULE_SETUP
01261 #line 110 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01262 return META_DEV;
01263 YY_BREAK
01264 case 48:
01265 YY_RULE_SETUP
01266 #line 111 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01267 return META_PRIO;
01268 YY_BREAK
01269 case 49:
01270 YY_RULE_SETUP
01271 #line 112 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01272 return META_PROTO;
01273 YY_BREAK
01274 case 50:
01275 YY_RULE_SETUP
01276 #line 113 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01277 return META_PKTTYPE;
01278 YY_BREAK
01279 case 51:
01280 YY_RULE_SETUP
01281 #line 114 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01282 return META_PKTLEN;
01283 YY_BREAK
01284 case 52:
01285 YY_RULE_SETUP
01286 #line 115 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01287 return META_DATALEN;
01288 YY_BREAK
01289 case 53:
01290 YY_RULE_SETUP
01291 #line 116 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01292 return META_MACLEN;
01293 YY_BREAK
01294 case 54:
01295 YY_RULE_SETUP
01296 #line 117 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01297 return META_MARK;
01298 YY_BREAK
01299 case 55:
01300 YY_RULE_SETUP
01301 #line 118 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01302 return META_TCINDEX;
01303 YY_BREAK
01304 case 56:
01305 YY_RULE_SETUP
01306 #line 119 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01307 return META_RTCLASSID;
01308 YY_BREAK
01309 case 57:
01310 YY_RULE_SETUP
01311 #line 120 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01312 return META_RTIIF;
01313 YY_BREAK
01314 case 58:
01315 YY_RULE_SETUP
01316 #line 121 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01317 return META_SK_FAMILY;
01318 YY_BREAK
01319 case 59:
01320 YY_RULE_SETUP
01321 #line 122 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01322 return META_SK_STATE;
01323 YY_BREAK
01324 case 60:
01325 YY_RULE_SETUP
01326 #line 123 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01327 return META_SK_REUSE;
01328 YY_BREAK
01329 case 61:
01330 YY_RULE_SETUP
01331 #line 124 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01332 return META_SK_REFCNT;
01333 YY_BREAK
01334 case 62:
01335 YY_RULE_SETUP
01336 #line 125 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01337 return META_SK_RCVBUF;
01338 YY_BREAK
01339 case 63:
01340 YY_RULE_SETUP
01341 #line 126 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01342 return META_SK_SNDBUF;
01343 YY_BREAK
01344 case 64:
01345 YY_RULE_SETUP
01346 #line 127 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01347 return META_SK_SHUTDOWN;
01348 YY_BREAK
01349 case 65:
01350 YY_RULE_SETUP
01351 #line 128 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01352 return META_SK_PROTO;
01353 YY_BREAK
01354 case 66:
01355 YY_RULE_SETUP
01356 #line 129 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01357 return META_SK_TYPE;
01358 YY_BREAK
01359 case 67:
01360 YY_RULE_SETUP
01361 #line 130 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01362 return META_SK_RMEM_ALLOC;
01363 YY_BREAK
01364 case 68:
01365 YY_RULE_SETUP
01366 #line 131 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01367 return META_SK_WMEM_ALLOC;
01368 YY_BREAK
01369 case 69:
01370 YY_RULE_SETUP
01371 #line 132 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01372 return META_SK_WMEM_QUEUED;
01373 YY_BREAK
01374 case 70:
01375 YY_RULE_SETUP
01376 #line 133 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01377 return META_SK_RCV_QLEN;
01378 YY_BREAK
01379 case 71:
01380 YY_RULE_SETUP
01381 #line 134 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01382 return META_SK_SND_QLEN;
01383 YY_BREAK
01384 case 72:
01385 YY_RULE_SETUP
01386 #line 135 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01387 return META_SK_ERR_QLEN;
01388 YY_BREAK
01389 case 73:
01390 YY_RULE_SETUP
01391 #line 136 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01392 return META_SK_FORWARD_ALLOCS;
01393 YY_BREAK
01394 case 74:
01395 YY_RULE_SETUP
01396 #line 137 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01397 return META_SK_ALLOCS;
01398 YY_BREAK
01399 case 75:
01400 YY_RULE_SETUP
01401 #line 138 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01402 return META_SK_ROUTE_CAPS;
01403 YY_BREAK
01404 case 76:
01405 YY_RULE_SETUP
01406 #line 139 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01407 return META_SK_HASH;
01408 YY_BREAK
01409 case 77:
01410 YY_RULE_SETUP
01411 #line 140 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01412 return META_SK_LINGERTIME;
01413 YY_BREAK
01414 case 78:
01415 YY_RULE_SETUP
01416 #line 141 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01417 return META_SK_ACK_BACKLOG;
01418 YY_BREAK
01419 case 79:
01420 YY_RULE_SETUP
01421 #line 142 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01422 return META_SK_MAX_ACK_BACKLOG;
01423 YY_BREAK
01424 case 80:
01425 YY_RULE_SETUP
01426 #line 143 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01427 return META_SK_PRIO;
01428 YY_BREAK
01429 case 81:
01430 YY_RULE_SETUP
01431 #line 144 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01432 return META_SK_RCVLOWAT;
01433 YY_BREAK
01434 case 82:
01435 YY_RULE_SETUP
01436 #line 145 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01437 return META_SK_RCVTIMEO;
01438 YY_BREAK
01439 case 83:
01440 YY_RULE_SETUP
01441 #line 146 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01442 return META_SK_SNDTIMEO;
01443 YY_BREAK
01444 case 84:
01445 YY_RULE_SETUP
01446 #line 147 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01447 return META_SK_SENDMSG_OFF;
01448 YY_BREAK
01449 case 85:
01450 YY_RULE_SETUP
01451 #line 148 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01452 return META_SK_WRITE_PENDING;
01453 YY_BREAK
01454 case 86:
01455 YY_RULE_SETUP
01456 #line 149 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01457 return META_VLAN;
01458 YY_BREAK
01459 case 87:
01460 YY_RULE_SETUP
01461 #line 150 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01462 return META_RXHASH;
01463 YY_BREAK
01464 case 88:
01465 YY_RULE_SETUP
01466 #line 152 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01467 return META_DEVNAME;
01468 YY_BREAK
01469 case 89:
01470 YY_RULE_SETUP
01471 #line 153 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01472 return META_SK_BOUND_IF;
01473 YY_BREAK
01474 case 90:
01475 YY_RULE_SETUP
01476 #line 156 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01477 {
01478 yylval->s = strdup(yytext);
01479 if (yylval->s == NULL)
01480 return ERROR;
01481 NL_DBG(4, "lex STR=%s\n", yylval->s);
01482 return STR;
01483 }
01484 YY_BREAK
01485 case 91:
01486 YY_RULE_SETUP
01487 #line 163 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"
01488 ECHO;
01489 YY_BREAK
01490 #line 1491 "route/cls/ematch_grammar.c"
01491 case YY_STATE_EOF(INITIAL):
01492 case YY_STATE_EOF(QUOTE):
01493 yyterminate();
01494
01495 case YY_END_OF_BUFFER:
01496 {
01497
01498 int yy_amount_of_matched_text = (int) (yy_cp - yyg->yytext_ptr) - 1;
01499
01500
01501 *yy_cp = yyg->yy_hold_char;
01502 YY_RESTORE_YY_MORE_OFFSET
01503
01504 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
01505 {
01506
01507
01508
01509
01510
01511
01512
01513
01514
01515 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01516 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
01517 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
01518 }
01519
01520
01521
01522
01523
01524
01525
01526
01527 if ( yyg->yy_c_buf_p <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
01528 {
01529 yy_state_type yy_next_state;
01530
01531 yyg->yy_c_buf_p = yyg->yytext_ptr + yy_amount_of_matched_text;
01532
01533 yy_current_state = yy_get_previous_state( yyscanner );
01534
01535
01536
01537
01538
01539
01540
01541
01542
01543
01544 yy_next_state = yy_try_NUL_trans( yy_current_state , yyscanner);
01545
01546 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
01547
01548 if ( yy_next_state )
01549 {
01550
01551 yy_cp = ++yyg->yy_c_buf_p;
01552 yy_current_state = yy_next_state;
01553 goto yy_match;
01554 }
01555
01556 else
01557 {
01558 yy_cp = yyg->yy_c_buf_p;
01559 goto yy_find_action;
01560 }
01561 }
01562
01563 else switch ( yy_get_next_buffer( yyscanner ) )
01564 {
01565 case EOB_ACT_END_OF_FILE:
01566 {
01567 yyg->yy_did_buffer_switch_on_eof = 0;
01568
01569 if ( ematch_wrap(yyscanner ) )
01570 {
01571
01572
01573
01574
01575
01576
01577
01578
01579
01580 yyg->yy_c_buf_p = yyg->yytext_ptr + YY_MORE_ADJ;
01581
01582 yy_act = YY_STATE_EOF(YY_START);
01583 goto do_action;
01584 }
01585
01586 else
01587 {
01588 if ( ! yyg->yy_did_buffer_switch_on_eof )
01589 YY_NEW_FILE;
01590 }
01591 break;
01592 }
01593
01594 case EOB_ACT_CONTINUE_SCAN:
01595 yyg->yy_c_buf_p =
01596 yyg->yytext_ptr + yy_amount_of_matched_text;
01597
01598 yy_current_state = yy_get_previous_state( yyscanner );
01599
01600 yy_cp = yyg->yy_c_buf_p;
01601 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
01602 goto yy_match;
01603
01604 case EOB_ACT_LAST_MATCH:
01605 yyg->yy_c_buf_p =
01606 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars];
01607
01608 yy_current_state = yy_get_previous_state( yyscanner );
01609
01610 yy_cp = yyg->yy_c_buf_p;
01611 yy_bp = yyg->yytext_ptr + YY_MORE_ADJ;
01612 goto yy_find_action;
01613 }
01614 break;
01615 }
01616
01617 default:
01618 YY_FATAL_ERROR(
01619 "fatal flex scanner internal error--no action found" );
01620 }
01621 }
01622 }
01623
01624
01625
01626
01627
01628
01629
01630
01631 static int yy_get_next_buffer (yyscan_t yyscanner)
01632 {
01633 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01634 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
01635 register char *source = yyg->yytext_ptr;
01636 register int number_to_move, i;
01637 int ret_val;
01638
01639 if ( yyg->yy_c_buf_p > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] )
01640 YY_FATAL_ERROR(
01641 "fatal flex scanner internal error--end of buffer missed" );
01642
01643 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
01644 {
01645 if ( yyg->yy_c_buf_p - yyg->yytext_ptr - YY_MORE_ADJ == 1 )
01646 {
01647
01648
01649
01650 return EOB_ACT_END_OF_FILE;
01651 }
01652
01653 else
01654 {
01655
01656
01657
01658 return EOB_ACT_LAST_MATCH;
01659 }
01660 }
01661
01662
01663
01664
01665 number_to_move = (int) (yyg->yy_c_buf_p - yyg->yytext_ptr) - 1;
01666
01667 for ( i = 0; i < number_to_move; ++i )
01668 *(dest++) = *(source++);
01669
01670 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
01671
01672
01673
01674 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars = 0;
01675
01676 else
01677 {
01678 int num_to_read =
01679 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
01680
01681 while ( num_to_read <= 0 )
01682 {
01683
01684
01685 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
01686
01687 int yy_c_buf_p_offset =
01688 (int) (yyg->yy_c_buf_p - b->yy_ch_buf);
01689
01690 if ( b->yy_is_our_buffer )
01691 {
01692 int new_size = b->yy_buf_size * 2;
01693
01694 if ( new_size <= 0 )
01695 b->yy_buf_size += b->yy_buf_size / 8;
01696 else
01697 b->yy_buf_size *= 2;
01698
01699 b->yy_ch_buf = (char *)
01700
01701 ematch_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ,yyscanner );
01702 }
01703 else
01704
01705 b->yy_ch_buf = 0;
01706
01707 if ( ! b->yy_ch_buf )
01708 YY_FATAL_ERROR(
01709 "fatal error - scanner input buffer overflow" );
01710
01711 yyg->yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
01712
01713 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
01714 number_to_move - 1;
01715
01716 }
01717
01718 if ( num_to_read > YY_READ_BUF_SIZE )
01719 num_to_read = YY_READ_BUF_SIZE;
01720
01721
01722 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
01723 yyg->yy_n_chars, (size_t) num_to_read );
01724
01725 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
01726 }
01727
01728 if ( yyg->yy_n_chars == 0 )
01729 {
01730 if ( number_to_move == YY_MORE_ADJ )
01731 {
01732 ret_val = EOB_ACT_END_OF_FILE;
01733 ematch_restart(yyin ,yyscanner);
01734 }
01735
01736 else
01737 {
01738 ret_val = EOB_ACT_LAST_MATCH;
01739 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
01740 YY_BUFFER_EOF_PENDING;
01741 }
01742 }
01743
01744 else
01745 ret_val = EOB_ACT_CONTINUE_SCAN;
01746
01747 if ((yy_size_t) (yyg->yy_n_chars + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
01748
01749 yy_size_t new_size = yyg->yy_n_chars + number_to_move + (yyg->yy_n_chars >> 1);
01750 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) ematch_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ,yyscanner );
01751 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
01752 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
01753 }
01754
01755 yyg->yy_n_chars += number_to_move;
01756 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] = YY_END_OF_BUFFER_CHAR;
01757 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
01758
01759 yyg->yytext_ptr = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
01760
01761 return ret_val;
01762 }
01763
01764
01765
01766 static yy_state_type yy_get_previous_state (yyscan_t yyscanner)
01767 {
01768 register yy_state_type yy_current_state;
01769 register char *yy_cp;
01770 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01771
01772 yy_current_state = yyg->yy_start;
01773
01774 for ( yy_cp = yyg->yytext_ptr + YY_MORE_ADJ; yy_cp < yyg->yy_c_buf_p; ++yy_cp )
01775 {
01776 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
01777 if ( yy_accept[yy_current_state] )
01778 {
01779 yyg->yy_last_accepting_state = yy_current_state;
01780 yyg->yy_last_accepting_cpos = yy_cp;
01781 }
01782 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01783 {
01784 yy_current_state = (int) yy_def[yy_current_state];
01785 if ( yy_current_state >= 393 )
01786 yy_c = yy_meta[(unsigned int) yy_c];
01787 }
01788 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01789 }
01790
01791 return yy_current_state;
01792 }
01793
01794
01795
01796
01797
01798
01799 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state , yyscan_t yyscanner)
01800 {
01801 register int yy_is_jam;
01802 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01803 register char *yy_cp = yyg->yy_c_buf_p;
01804
01805 register YY_CHAR yy_c = 1;
01806 if ( yy_accept[yy_current_state] )
01807 {
01808 yyg->yy_last_accepting_state = yy_current_state;
01809 yyg->yy_last_accepting_cpos = yy_cp;
01810 }
01811 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
01812 {
01813 yy_current_state = (int) yy_def[yy_current_state];
01814 if ( yy_current_state >= 393 )
01815 yy_c = yy_meta[(unsigned int) yy_c];
01816 }
01817 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
01818 yy_is_jam = (yy_current_state == 392);
01819
01820 return yy_is_jam ? 0 : yy_current_state;
01821 }
01822
01823 #ifndef YY_NO_INPUT
01824 #ifdef __cplusplus
01825 static int yyinput (yyscan_t yyscanner)
01826 #else
01827 static int input (yyscan_t yyscanner)
01828 #endif
01829
01830 {
01831 int c;
01832 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01833
01834 *yyg->yy_c_buf_p = yyg->yy_hold_char;
01835
01836 if ( *yyg->yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
01837 {
01838
01839
01840
01841
01842 if ( yyg->yy_c_buf_p < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[yyg->yy_n_chars] )
01843
01844 *yyg->yy_c_buf_p = '\0';
01845
01846 else
01847 {
01848 int offset = yyg->yy_c_buf_p - yyg->yytext_ptr;
01849 ++yyg->yy_c_buf_p;
01850
01851 switch ( yy_get_next_buffer( yyscanner ) )
01852 {
01853 case EOB_ACT_LAST_MATCH:
01854
01855
01856
01857
01858
01859
01860
01861
01862
01863
01864
01865 ematch_restart(yyin ,yyscanner);
01866
01867
01868
01869 case EOB_ACT_END_OF_FILE:
01870 {
01871 if ( ematch_wrap(yyscanner ) )
01872 return EOF;
01873
01874 if ( ! yyg->yy_did_buffer_switch_on_eof )
01875 YY_NEW_FILE;
01876 #ifdef __cplusplus
01877 return yyinput(yyscanner);
01878 #else
01879 return input(yyscanner);
01880 #endif
01881 }
01882
01883 case EOB_ACT_CONTINUE_SCAN:
01884 yyg->yy_c_buf_p = yyg->yytext_ptr + offset;
01885 break;
01886 }
01887 }
01888 }
01889
01890 c = *(unsigned char *) yyg->yy_c_buf_p;
01891 *yyg->yy_c_buf_p = '\0';
01892 yyg->yy_hold_char = *++yyg->yy_c_buf_p;
01893
01894 return c;
01895 }
01896 #endif
01897
01898
01899
01900
01901
01902
01903 void ematch_restart (FILE * input_file , yyscan_t yyscanner)
01904 {
01905 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01906
01907 if ( ! YY_CURRENT_BUFFER ){
01908 ematch_ensure_buffer_stack (yyscanner);
01909 YY_CURRENT_BUFFER_LVALUE =
01910 ematch__create_buffer(yyin,YY_BUF_SIZE ,yyscanner);
01911 }
01912
01913 ematch__init_buffer(YY_CURRENT_BUFFER,input_file ,yyscanner);
01914 ematch__load_buffer_state(yyscanner );
01915 }
01916
01917
01918
01919
01920
01921 void ematch__switch_to_buffer (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
01922 {
01923 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01924
01925
01926
01927
01928
01929
01930 ematch_ensure_buffer_stack (yyscanner);
01931 if ( YY_CURRENT_BUFFER == new_buffer )
01932 return;
01933
01934 if ( YY_CURRENT_BUFFER )
01935 {
01936
01937 *yyg->yy_c_buf_p = yyg->yy_hold_char;
01938 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
01939 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
01940 }
01941
01942 YY_CURRENT_BUFFER_LVALUE = new_buffer;
01943 ematch__load_buffer_state(yyscanner );
01944
01945
01946
01947
01948
01949
01950 yyg->yy_did_buffer_switch_on_eof = 1;
01951 }
01952
01953 static void ematch__load_buffer_state (yyscan_t yyscanner)
01954 {
01955 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01956 yyg->yy_n_chars = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
01957 yyg->yytext_ptr = yyg->yy_c_buf_p = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
01958 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
01959 yyg->yy_hold_char = *yyg->yy_c_buf_p;
01960 }
01961
01962
01963
01964
01965
01966
01967
01968 YY_BUFFER_STATE ematch__create_buffer (FILE * file, int size , yyscan_t yyscanner)
01969 {
01970 YY_BUFFER_STATE b;
01971
01972 b = (YY_BUFFER_STATE) ematch_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
01973 if ( ! b )
01974 YY_FATAL_ERROR( "out of dynamic memory in ematch__create_buffer()" );
01975
01976 b->yy_buf_size = size;
01977
01978
01979
01980
01981 b->yy_ch_buf = (char *) ematch_alloc(b->yy_buf_size + 2 ,yyscanner );
01982 if ( ! b->yy_ch_buf )
01983 YY_FATAL_ERROR( "out of dynamic memory in ematch__create_buffer()" );
01984
01985 b->yy_is_our_buffer = 1;
01986
01987 ematch__init_buffer(b,file ,yyscanner);
01988
01989 return b;
01990 }
01991
01992
01993
01994
01995
01996 void ematch__delete_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
01997 {
01998 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
01999
02000 if ( ! b )
02001 return;
02002
02003 if ( b == YY_CURRENT_BUFFER )
02004 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
02005
02006 if ( b->yy_is_our_buffer )
02007 ematch_free((void *) b->yy_ch_buf ,yyscanner );
02008
02009 ematch_free((void *) b ,yyscanner );
02010 }
02011
02012 #ifndef __cplusplus
02013 extern int isatty (int );
02014 #endif
02015
02016
02017
02018
02019
02020 static void ematch__init_buffer (YY_BUFFER_STATE b, FILE * file , yyscan_t yyscanner)
02021
02022 {
02023 int oerrno = errno;
02024 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02025
02026 ematch__flush_buffer(b ,yyscanner);
02027
02028 b->yy_input_file = file;
02029 b->yy_fill_buffer = 1;
02030
02031
02032
02033
02034
02035 if (b != YY_CURRENT_BUFFER){
02036 b->yy_bs_lineno = 1;
02037 b->yy_bs_column = 0;
02038 }
02039
02040 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
02041
02042 errno = oerrno;
02043 }
02044
02045
02046
02047
02048
02049 void ematch__flush_buffer (YY_BUFFER_STATE b , yyscan_t yyscanner)
02050 {
02051 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02052 if ( ! b )
02053 return;
02054
02055 b->yy_n_chars = 0;
02056
02057
02058
02059
02060
02061 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02062 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02063
02064 b->yy_buf_pos = &b->yy_ch_buf[0];
02065
02066 b->yy_at_bol = 1;
02067 b->yy_buffer_status = YY_BUFFER_NEW;
02068
02069 if ( b == YY_CURRENT_BUFFER )
02070 ematch__load_buffer_state(yyscanner );
02071 }
02072
02073
02074
02075
02076
02077
02078
02079 void ematch_push_buffer_state (YY_BUFFER_STATE new_buffer , yyscan_t yyscanner)
02080 {
02081 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02082 if (new_buffer == NULL)
02083 return;
02084
02085 ematch_ensure_buffer_stack(yyscanner);
02086
02087
02088 if ( YY_CURRENT_BUFFER )
02089 {
02090
02091 *yyg->yy_c_buf_p = yyg->yy_hold_char;
02092 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = yyg->yy_c_buf_p;
02093 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars;
02094 }
02095
02096
02097 if (YY_CURRENT_BUFFER)
02098 yyg->yy_buffer_stack_top++;
02099 YY_CURRENT_BUFFER_LVALUE = new_buffer;
02100
02101
02102 ematch__load_buffer_state(yyscanner );
02103 yyg->yy_did_buffer_switch_on_eof = 1;
02104 }
02105
02106
02107
02108
02109
02110 void ematch_pop_buffer_state (yyscan_t yyscanner)
02111 {
02112 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02113 if (!YY_CURRENT_BUFFER)
02114 return;
02115
02116 ematch__delete_buffer(YY_CURRENT_BUFFER ,yyscanner);
02117 YY_CURRENT_BUFFER_LVALUE = NULL;
02118 if (yyg->yy_buffer_stack_top > 0)
02119 --yyg->yy_buffer_stack_top;
02120
02121 if (YY_CURRENT_BUFFER) {
02122 ematch__load_buffer_state(yyscanner );
02123 yyg->yy_did_buffer_switch_on_eof = 1;
02124 }
02125 }
02126
02127
02128
02129
02130 static void ematch_ensure_buffer_stack (yyscan_t yyscanner)
02131 {
02132 int num_to_alloc;
02133 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02134
02135 if (!yyg->yy_buffer_stack) {
02136
02137
02138
02139
02140
02141 num_to_alloc = 1;
02142 yyg->yy_buffer_stack = (struct yy_buffer_state**)ematch_alloc
02143 (num_to_alloc * sizeof(struct yy_buffer_state*)
02144 , yyscanner);
02145 if ( ! yyg->yy_buffer_stack )
02146 YY_FATAL_ERROR( "out of dynamic memory in ematch_ensure_buffer_stack()" );
02147
02148 memset(yyg->yy_buffer_stack, 0, num_to_alloc * sizeof(struct yy_buffer_state*));
02149
02150 yyg->yy_buffer_stack_max = num_to_alloc;
02151 yyg->yy_buffer_stack_top = 0;
02152 return;
02153 }
02154
02155 if (yyg->yy_buffer_stack_top >= (yyg->yy_buffer_stack_max) - 1){
02156
02157
02158 int grow_size = 8 ;
02159
02160 num_to_alloc = yyg->yy_buffer_stack_max + grow_size;
02161 yyg->yy_buffer_stack = (struct yy_buffer_state**)ematch_realloc
02162 (yyg->yy_buffer_stack,
02163 num_to_alloc * sizeof(struct yy_buffer_state*)
02164 , yyscanner);
02165 if ( ! yyg->yy_buffer_stack )
02166 YY_FATAL_ERROR( "out of dynamic memory in ematch_ensure_buffer_stack()" );
02167
02168
02169 memset(yyg->yy_buffer_stack + yyg->yy_buffer_stack_max, 0, grow_size * sizeof(struct yy_buffer_state*));
02170 yyg->yy_buffer_stack_max = num_to_alloc;
02171 }
02172 }
02173
02174
02175
02176
02177
02178
02179
02180 YY_BUFFER_STATE ematch__scan_buffer (char * base, yy_size_t size , yyscan_t yyscanner)
02181 {
02182 YY_BUFFER_STATE b;
02183
02184 if ( size < 2 ||
02185 base[size-2] != YY_END_OF_BUFFER_CHAR ||
02186 base[size-1] != YY_END_OF_BUFFER_CHAR )
02187
02188 return 0;
02189
02190 b = (YY_BUFFER_STATE) ematch_alloc(sizeof( struct yy_buffer_state ) ,yyscanner );
02191 if ( ! b )
02192 YY_FATAL_ERROR( "out of dynamic memory in ematch__scan_buffer()" );
02193
02194 b->yy_buf_size = size - 2;
02195 b->yy_buf_pos = b->yy_ch_buf = base;
02196 b->yy_is_our_buffer = 0;
02197 b->yy_input_file = 0;
02198 b->yy_n_chars = b->yy_buf_size;
02199 b->yy_is_interactive = 0;
02200 b->yy_at_bol = 1;
02201 b->yy_fill_buffer = 0;
02202 b->yy_buffer_status = YY_BUFFER_NEW;
02203
02204 ematch__switch_to_buffer(b ,yyscanner );
02205
02206 return b;
02207 }
02208
02209
02210
02211
02212
02213
02214
02215
02216
02217 YY_BUFFER_STATE ematch__scan_string (yyconst char * yystr , yyscan_t yyscanner)
02218 {
02219
02220 return ematch__scan_bytes(yystr,strlen(yystr) ,yyscanner);
02221 }
02222
02223
02224
02225
02226
02227
02228
02229
02230 YY_BUFFER_STATE ematch__scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner)
02231 {
02232 YY_BUFFER_STATE b;
02233 char *buf;
02234 yy_size_t n;
02235 int i;
02236
02237
02238 n = _yybytes_len + 2;
02239 buf = (char *) ematch_alloc(n ,yyscanner );
02240 if ( ! buf )
02241 YY_FATAL_ERROR( "out of dynamic memory in ematch__scan_bytes()" );
02242
02243 for ( i = 0; i < _yybytes_len; ++i )
02244 buf[i] = yybytes[i];
02245
02246 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
02247
02248 b = ematch__scan_buffer(buf,n ,yyscanner);
02249 if ( ! b )
02250 YY_FATAL_ERROR( "bad buffer in ematch__scan_bytes()" );
02251
02252
02253
02254
02255 b->yy_is_our_buffer = 1;
02256
02257 return b;
02258 }
02259
02260 #ifndef YY_EXIT_FAILURE
02261 #define YY_EXIT_FAILURE 2
02262 #endif
02263
02264 static void yy_fatal_error (yyconst char* msg , yyscan_t yyscanner)
02265 {
02266 (void) fprintf( stderr, "%s\n", msg );
02267 exit( YY_EXIT_FAILURE );
02268 }
02269
02270
02271
02272 #undef yyless
02273 #define yyless(n) \
02274 do \
02275 { \
02276 \
02277 int yyless_macro_arg = (n); \
02278 YY_LESS_LINENO(yyless_macro_arg);\
02279 yytext[yyleng] = yyg->yy_hold_char; \
02280 yyg->yy_c_buf_p = yytext + yyless_macro_arg; \
02281 yyg->yy_hold_char = *yyg->yy_c_buf_p; \
02282 *yyg->yy_c_buf_p = '\0'; \
02283 yyleng = yyless_macro_arg; \
02284 } \
02285 while ( 0 )
02286
02287
02288
02289
02290
02291
02292 YY_EXTRA_TYPE ematch_get_extra (yyscan_t yyscanner)
02293 {
02294 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02295 return yyextra;
02296 }
02297
02298
02299
02300
02301 int ematch_get_lineno (yyscan_t yyscanner)
02302 {
02303 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02304
02305 if (! YY_CURRENT_BUFFER)
02306 return 0;
02307
02308 return yylineno;
02309 }
02310
02311
02312
02313
02314 int ematch_get_column (yyscan_t yyscanner)
02315 {
02316 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02317
02318 if (! YY_CURRENT_BUFFER)
02319 return 0;
02320
02321 return yycolumn;
02322 }
02323
02324
02325
02326
02327 FILE *ematch_get_in (yyscan_t yyscanner)
02328 {
02329 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02330 return yyin;
02331 }
02332
02333
02334
02335
02336 FILE *ematch_get_out (yyscan_t yyscanner)
02337 {
02338 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02339 return yyout;
02340 }
02341
02342
02343
02344
02345 int ematch_get_leng (yyscan_t yyscanner)
02346 {
02347 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02348 return yyleng;
02349 }
02350
02351
02352
02353
02354
02355 char *ematch_get_text (yyscan_t yyscanner)
02356 {
02357 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02358 return yytext;
02359 }
02360
02361
02362
02363
02364
02365 void ematch_set_extra (YY_EXTRA_TYPE user_defined , yyscan_t yyscanner)
02366 {
02367 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02368 yyextra = user_defined ;
02369 }
02370
02371
02372
02373
02374
02375 void ematch_set_lineno (int line_number , yyscan_t yyscanner)
02376 {
02377 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02378
02379
02380 if (! YY_CURRENT_BUFFER )
02381 yy_fatal_error( "ematch_set_lineno called with no buffer" , yyscanner);
02382
02383 yylineno = line_number;
02384 }
02385
02386
02387
02388
02389
02390 void ematch_set_column (int column_no , yyscan_t yyscanner)
02391 {
02392 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02393
02394
02395 if (! YY_CURRENT_BUFFER )
02396 yy_fatal_error( "ematch_set_column called with no buffer" , yyscanner);
02397
02398 yycolumn = column_no;
02399 }
02400
02401
02402
02403
02404
02405
02406
02407 void ematch_set_in (FILE * in_str , yyscan_t yyscanner)
02408 {
02409 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02410 yyin = in_str ;
02411 }
02412
02413 void ematch_set_out (FILE * out_str , yyscan_t yyscanner)
02414 {
02415 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02416 yyout = out_str ;
02417 }
02418
02419 int ematch_get_debug (yyscan_t yyscanner)
02420 {
02421 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02422 return yy_flex_debug;
02423 }
02424
02425 void ematch_set_debug (int bdebug , yyscan_t yyscanner)
02426 {
02427 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02428 yy_flex_debug = bdebug ;
02429 }
02430
02431
02432
02433 YYSTYPE * ematch_get_lval (yyscan_t yyscanner)
02434 {
02435 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02436 return yylval;
02437 }
02438
02439 void ematch_set_lval (YYSTYPE * yylval_param , yyscan_t yyscanner)
02440 {
02441 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02442 yylval = yylval_param;
02443 }
02444
02445
02446
02447
02448
02449
02450
02451
02452 int ematch_lex_init(yyscan_t* ptr_yy_globals)
02453
02454 {
02455 if (ptr_yy_globals == NULL){
02456 errno = EINVAL;
02457 return 1;
02458 }
02459
02460 *ptr_yy_globals = (yyscan_t) ematch_alloc ( sizeof( struct yyguts_t ), NULL );
02461
02462 if (*ptr_yy_globals == NULL){
02463 errno = ENOMEM;
02464 return 1;
02465 }
02466
02467
02468 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
02469
02470 return yy_init_globals ( *ptr_yy_globals );
02471 }
02472
02473
02474
02475
02476
02477
02478
02479
02480
02481 int ematch_lex_init_extra(YY_EXTRA_TYPE yy_user_defined,yyscan_t* ptr_yy_globals )
02482
02483 {
02484 struct yyguts_t dummy_yyguts;
02485
02486 ematch_set_extra (yy_user_defined, &dummy_yyguts);
02487
02488 if (ptr_yy_globals == NULL){
02489 errno = EINVAL;
02490 return 1;
02491 }
02492
02493 *ptr_yy_globals = (yyscan_t) ematch_alloc ( sizeof( struct yyguts_t ), &dummy_yyguts );
02494
02495 if (*ptr_yy_globals == NULL){
02496 errno = ENOMEM;
02497 return 1;
02498 }
02499
02500
02501
02502 memset(*ptr_yy_globals,0x00,sizeof(struct yyguts_t));
02503
02504 ematch_set_extra (yy_user_defined, *ptr_yy_globals);
02505
02506 return yy_init_globals ( *ptr_yy_globals );
02507 }
02508
02509 static int yy_init_globals (yyscan_t yyscanner)
02510 {
02511 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02512
02513
02514
02515
02516 yyg->yy_buffer_stack = 0;
02517 yyg->yy_buffer_stack_top = 0;
02518 yyg->yy_buffer_stack_max = 0;
02519 yyg->yy_c_buf_p = (char *) 0;
02520 yyg->yy_init = 0;
02521 yyg->yy_start = 0;
02522
02523 yyg->yy_start_stack_ptr = 0;
02524 yyg->yy_start_stack_depth = 0;
02525 yyg->yy_start_stack = NULL;
02526
02527
02528 #ifdef YY_STDINIT
02529 yyin = stdin;
02530 yyout = stdout;
02531 #else
02532 yyin = (FILE *) 0;
02533 yyout = (FILE *) 0;
02534 #endif
02535
02536
02537
02538
02539 return 0;
02540 }
02541
02542
02543 int ematch_lex_destroy (yyscan_t yyscanner)
02544 {
02545 struct yyguts_t * yyg = (struct yyguts_t*)yyscanner;
02546
02547
02548 while(YY_CURRENT_BUFFER){
02549 ematch__delete_buffer(YY_CURRENT_BUFFER ,yyscanner );
02550 YY_CURRENT_BUFFER_LVALUE = NULL;
02551 ematch_pop_buffer_state(yyscanner);
02552 }
02553
02554
02555 ematch_free(yyg->yy_buffer_stack ,yyscanner);
02556 yyg->yy_buffer_stack = NULL;
02557
02558
02559 ematch_free(yyg->yy_start_stack ,yyscanner );
02560 yyg->yy_start_stack = NULL;
02561
02562
02563
02564 yy_init_globals( yyscanner);
02565
02566
02567 ematch_free ( yyscanner , yyscanner );
02568 yyscanner = NULL;
02569 return 0;
02570 }
02571
02572
02573
02574
02575
02576 #ifndef yytext_ptr
02577 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n , yyscan_t yyscanner)
02578 {
02579 register int i;
02580 for ( i = 0; i < n; ++i )
02581 s1[i] = s2[i];
02582 }
02583 #endif
02584
02585 #ifdef YY_NEED_STRLEN
02586 static int yy_flex_strlen (yyconst char * s , yyscan_t yyscanner)
02587 {
02588 register int n;
02589 for ( n = 0; s[n]; ++n )
02590 ;
02591
02592 return n;
02593 }
02594 #endif
02595
02596 void *ematch_alloc (yy_size_t size , yyscan_t yyscanner)
02597 {
02598 return (void *) malloc( size );
02599 }
02600
02601 void *ematch_realloc (void * ptr, yy_size_t size , yyscan_t yyscanner)
02602 {
02603
02604
02605
02606
02607
02608
02609
02610 return (void *) realloc( (char *) ptr, size );
02611 }
02612
02613 void ematch_free (void * ptr , yyscan_t yyscanner)
02614 {
02615 free( (char *) ptr );
02616 }
02617
02618 #define YYTABLES_NAME "yytables"
02619
02620 #line 163 "/root/build/iw/libnl3/libnl3-3.0/./lib/route/cls/ematch_grammar.l"