Return to token.c CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / ipsec-tools / src / setkey |
1.1 ! misho 1: ! 2: #line 3 "token.c" ! 3: ! 4: #define YY_INT_ALIGNED short int ! 5: ! 6: /* A lexical scanner generated by flex */ ! 7: ! 8: #define FLEX_SCANNER ! 9: #define YY_FLEX_MAJOR_VERSION 2 ! 10: #define YY_FLEX_MINOR_VERSION 5 ! 11: #define YY_FLEX_SUBMINOR_VERSION 35 ! 12: #if YY_FLEX_SUBMINOR_VERSION > 0 ! 13: #define FLEX_BETA ! 14: #endif ! 15: ! 16: /* First, we deal with platform-specific or compiler-specific issues. */ ! 17: ! 18: /* begin standard C headers. */ ! 19: #include <stdio.h> ! 20: #include <string.h> ! 21: #include <errno.h> ! 22: #include <stdlib.h> ! 23: ! 24: /* end standard C headers. */ ! 25: ! 26: /* flex integer type definitions */ ! 27: ! 28: #ifndef FLEXINT_H ! 29: #define FLEXINT_H ! 30: ! 31: /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ ! 32: ! 33: #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L ! 34: ! 35: /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, ! 36: * if you want the limit (max/min) macros for int types. ! 37: */ ! 38: #ifndef __STDC_LIMIT_MACROS ! 39: #define __STDC_LIMIT_MACROS 1 ! 40: #endif ! 41: ! 42: #include <inttypes.h> ! 43: typedef int8_t flex_int8_t; ! 44: typedef uint8_t flex_uint8_t; ! 45: typedef int16_t flex_int16_t; ! 46: typedef uint16_t flex_uint16_t; ! 47: typedef int32_t flex_int32_t; ! 48: typedef uint32_t flex_uint32_t; ! 49: #else ! 50: typedef signed char flex_int8_t; ! 51: typedef short int flex_int16_t; ! 52: typedef int flex_int32_t; ! 53: typedef unsigned char flex_uint8_t; ! 54: typedef unsigned short int flex_uint16_t; ! 55: typedef unsigned int flex_uint32_t; ! 56: ! 57: /* Limits of integral types. */ ! 58: #ifndef INT8_MIN ! 59: #define INT8_MIN (-128) ! 60: #endif ! 61: #ifndef INT16_MIN ! 62: #define INT16_MIN (-32767-1) ! 63: #endif ! 64: #ifndef INT32_MIN ! 65: #define INT32_MIN (-2147483647-1) ! 66: #endif ! 67: #ifndef INT8_MAX ! 68: #define INT8_MAX (127) ! 69: #endif ! 70: #ifndef INT16_MAX ! 71: #define INT16_MAX (32767) ! 72: #endif ! 73: #ifndef INT32_MAX ! 74: #define INT32_MAX (2147483647) ! 75: #endif ! 76: #ifndef UINT8_MAX ! 77: #define UINT8_MAX (255U) ! 78: #endif ! 79: #ifndef UINT16_MAX ! 80: #define UINT16_MAX (65535U) ! 81: #endif ! 82: #ifndef UINT32_MAX ! 83: #define UINT32_MAX (4294967295U) ! 84: #endif ! 85: ! 86: #endif /* ! C99 */ ! 87: ! 88: #endif /* ! FLEXINT_H */ ! 89: ! 90: #ifdef __cplusplus ! 91: ! 92: /* The "const" storage-class-modifier is valid. */ ! 93: #define YY_USE_CONST ! 94: ! 95: #else /* ! __cplusplus */ ! 96: ! 97: /* C99 requires __STDC__ to be defined as 1. */ ! 98: #if defined (__STDC__) ! 99: ! 100: #define YY_USE_CONST ! 101: ! 102: #endif /* defined (__STDC__) */ ! 103: #endif /* ! __cplusplus */ ! 104: ! 105: #ifdef YY_USE_CONST ! 106: #define yyconst const ! 107: #else ! 108: #define yyconst ! 109: #endif ! 110: ! 111: /* Returned upon end-of-file. */ ! 112: #define YY_NULL 0 ! 113: ! 114: /* Promotes a possibly negative, possibly signed char to an unsigned ! 115: * integer for use as an array index. If the signed char is negative, ! 116: * we want to instead treat it as an 8-bit unsigned char, hence the ! 117: * double cast. ! 118: */ ! 119: #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) ! 120: ! 121: /* Enter a start condition. This macro really ought to take a parameter, ! 122: * but we do it the disgusting crufty way forced on us by the ()-less ! 123: * definition of BEGIN. ! 124: */ ! 125: #define BEGIN (yy_start) = 1 + 2 * ! 126: ! 127: /* Translate the current start state into a value that can be later handed ! 128: * to BEGIN to return to the state. The YYSTATE alias is for lex ! 129: * compatibility. ! 130: */ ! 131: #define YY_START (((yy_start) - 1) / 2) ! 132: #define YYSTATE YY_START ! 133: ! 134: /* Action number for EOF rule of a given start state. */ ! 135: #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) ! 136: ! 137: /* Special action meaning "start processing a new file". */ ! 138: #define YY_NEW_FILE yyrestart(yyin ) ! 139: ! 140: #define YY_END_OF_BUFFER_CHAR 0 ! 141: ! 142: /* Size of default input buffer. */ ! 143: #ifndef YY_BUF_SIZE ! 144: #ifdef __ia64__ ! 145: /* On IA-64, the buffer size is 16k, not 8k. ! 146: * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. ! 147: * Ditto for the __ia64__ case accordingly. ! 148: */ ! 149: #define YY_BUF_SIZE 32768 ! 150: #else ! 151: #define YY_BUF_SIZE 16384 ! 152: #endif /* __ia64__ */ ! 153: #endif ! 154: ! 155: /* The state buf must be large enough to hold one state per character in the main buffer. ! 156: */ ! 157: #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) ! 158: ! 159: #ifndef YY_TYPEDEF_YY_BUFFER_STATE ! 160: #define YY_TYPEDEF_YY_BUFFER_STATE ! 161: typedef struct yy_buffer_state *YY_BUFFER_STATE; ! 162: #endif ! 163: ! 164: extern int yyleng; ! 165: ! 166: extern FILE *yyin, *yyout; ! 167: ! 168: #define EOB_ACT_CONTINUE_SCAN 0 ! 169: #define EOB_ACT_END_OF_FILE 1 ! 170: #define EOB_ACT_LAST_MATCH 2 ! 171: ! 172: #define YY_LESS_LINENO(n) ! 173: ! 174: /* Return all but the first "n" matched characters back to the input stream. */ ! 175: #define yyless(n) \ ! 176: do \ ! 177: { \ ! 178: /* Undo effects of setting up yytext. */ \ ! 179: int yyless_macro_arg = (n); \ ! 180: YY_LESS_LINENO(yyless_macro_arg);\ ! 181: *yy_cp = (yy_hold_char); \ ! 182: YY_RESTORE_YY_MORE_OFFSET \ ! 183: (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ ! 184: YY_DO_BEFORE_ACTION; /* set up yytext again */ \ ! 185: } \ ! 186: while ( 0 ) ! 187: ! 188: #define unput(c) yyunput( c, (yytext_ptr) ) ! 189: ! 190: #ifndef YY_TYPEDEF_YY_SIZE_T ! 191: #define YY_TYPEDEF_YY_SIZE_T ! 192: typedef size_t yy_size_t; ! 193: #endif ! 194: ! 195: #ifndef YY_STRUCT_YY_BUFFER_STATE ! 196: #define YY_STRUCT_YY_BUFFER_STATE ! 197: struct yy_buffer_state ! 198: { ! 199: FILE *yy_input_file; ! 200: ! 201: char *yy_ch_buf; /* input buffer */ ! 202: char *yy_buf_pos; /* current position in input buffer */ ! 203: ! 204: /* Size of input buffer in bytes, not including room for EOB ! 205: * characters. ! 206: */ ! 207: yy_size_t yy_buf_size; ! 208: ! 209: /* Number of characters read into yy_ch_buf, not including EOB ! 210: * characters. ! 211: */ ! 212: int yy_n_chars; ! 213: ! 214: /* Whether we "own" the buffer - i.e., we know we created it, ! 215: * and can realloc() it to grow it, and should free() it to ! 216: * delete it. ! 217: */ ! 218: int yy_is_our_buffer; ! 219: ! 220: /* Whether this is an "interactive" input source; if so, and ! 221: * if we're using stdio for input, then we want to use getc() ! 222: * instead of fread(), to make sure we stop fetching input after ! 223: * each newline. ! 224: */ ! 225: int yy_is_interactive; ! 226: ! 227: /* Whether we're considered to be at the beginning of a line. ! 228: * If so, '^' rules will be active on the next match, otherwise ! 229: * not. ! 230: */ ! 231: int yy_at_bol; ! 232: ! 233: int yy_bs_lineno; /**< The line count. */ ! 234: int yy_bs_column; /**< The column count. */ ! 235: ! 236: /* Whether to try to fill the input buffer when we reach the ! 237: * end of it. ! 238: */ ! 239: int yy_fill_buffer; ! 240: ! 241: int yy_buffer_status; ! 242: ! 243: #define YY_BUFFER_NEW 0 ! 244: #define YY_BUFFER_NORMAL 1 ! 245: /* When an EOF's been seen but there's still some text to process ! 246: * then we mark the buffer as YY_EOF_PENDING, to indicate that we ! 247: * shouldn't try reading from the input source any more. We might ! 248: * still have a bunch of tokens to match, though, because of ! 249: * possible backing-up. ! 250: * ! 251: * When we actually see the EOF, we change the status to "new" ! 252: * (via yyrestart()), so that the user can continue scanning by ! 253: * just pointing yyin at a new input file. ! 254: */ ! 255: #define YY_BUFFER_EOF_PENDING 2 ! 256: ! 257: }; ! 258: #endif /* !YY_STRUCT_YY_BUFFER_STATE */ ! 259: ! 260: /* Stack of input buffers. */ ! 261: static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ ! 262: static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ ! 263: static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ ! 264: ! 265: /* We provide macros for accessing buffer states in case in the ! 266: * future we want to put the buffer states in a more general ! 267: * "scanner state". ! 268: * ! 269: * Returns the top of the stack, or NULL. ! 270: */ ! 271: #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ! 272: ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ ! 273: : NULL) ! 274: ! 275: /* Same as previous macro, but useful when we know that the buffer stack is not ! 276: * NULL or when we need an lvalue. For internal use only. ! 277: */ ! 278: #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] ! 279: ! 280: /* yy_hold_char holds the character lost when yytext is formed. */ ! 281: static char yy_hold_char; ! 282: static int yy_n_chars; /* number of characters read into yy_ch_buf */ ! 283: int yyleng; ! 284: ! 285: /* Points to current character in buffer. */ ! 286: static char *yy_c_buf_p = (char *) 0; ! 287: static int yy_init = 0; /* whether we need to initialize */ ! 288: static int yy_start = 0; /* start state number */ ! 289: ! 290: /* Flag which is used to allow yywrap()'s to do buffer switches ! 291: * instead of setting up a fresh yyin. A bit of a hack ... ! 292: */ ! 293: static int yy_did_buffer_switch_on_eof; ! 294: ! 295: void yyrestart (FILE *input_file ); ! 296: void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ); ! 297: YY_BUFFER_STATE yy_create_buffer (FILE *file,int size ); ! 298: void yy_delete_buffer (YY_BUFFER_STATE b ); ! 299: void yy_flush_buffer (YY_BUFFER_STATE b ); ! 300: void yypush_buffer_state (YY_BUFFER_STATE new_buffer ); ! 301: void yypop_buffer_state (void ); ! 302: ! 303: static void yyensure_buffer_stack (void ); ! 304: static void yy_load_buffer_state (void ); ! 305: static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file ); ! 306: ! 307: #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER ) ! 308: ! 309: YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size ); ! 310: YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str ); ! 311: YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len ); ! 312: ! 313: void *yyalloc (yy_size_t ); ! 314: void *yyrealloc (void *,yy_size_t ); ! 315: void yyfree (void * ); ! 316: ! 317: #define yy_new_buffer yy_create_buffer ! 318: ! 319: #define yy_set_interactive(is_interactive) \ ! 320: { \ ! 321: if ( ! YY_CURRENT_BUFFER ){ \ ! 322: yyensure_buffer_stack (); \ ! 323: YY_CURRENT_BUFFER_LVALUE = \ ! 324: yy_create_buffer(yyin,YY_BUF_SIZE ); \ ! 325: } \ ! 326: YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ ! 327: } ! 328: ! 329: #define yy_set_bol(at_bol) \ ! 330: { \ ! 331: if ( ! YY_CURRENT_BUFFER ){\ ! 332: yyensure_buffer_stack (); \ ! 333: YY_CURRENT_BUFFER_LVALUE = \ ! 334: yy_create_buffer(yyin,YY_BUF_SIZE ); \ ! 335: } \ ! 336: YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ ! 337: } ! 338: ! 339: #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) ! 340: ! 341: /* Begin user sect3 */ ! 342: ! 343: typedef unsigned char YY_CHAR; ! 344: ! 345: FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; ! 346: ! 347: typedef int yy_state_type; ! 348: ! 349: extern int yylineno; ! 350: ! 351: int yylineno = 1; ! 352: ! 353: extern char *yytext; ! 354: #define yytext_ptr yytext ! 355: ! 356: static yy_state_type yy_get_previous_state (void ); ! 357: static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); ! 358: static int yy_get_next_buffer (void ); ! 359: static void yy_fatal_error (yyconst char msg[] ); ! 360: ! 361: /* Done after the current pattern has been matched and before the ! 362: * corresponding action - sets up yytext. ! 363: */ ! 364: #define YY_DO_BEFORE_ACTION \ ! 365: (yytext_ptr) = yy_bp; \ ! 366: (yytext_ptr) -= (yy_more_len); \ ! 367: yyleng = (size_t) (yy_cp - (yytext_ptr)); \ ! 368: (yy_hold_char) = *yy_cp; \ ! 369: *yy_cp = '\0'; \ ! 370: (yy_c_buf_p) = yy_cp; ! 371: ! 372: #define YY_NUM_RULES 90 ! 373: #define YY_END_OF_BUFFER 91 ! 374: /* This struct is not used in this scanner, ! 375: but its presence is necessary. */ ! 376: struct yy_trans_info ! 377: { ! 378: flex_int32_t yy_verify; ! 379: flex_int32_t yy_nxt; ! 380: }; ! 381: static yyconst flex_int16_t yy_accept[564] = ! 382: { 0, ! 383: 0, 0, 0, 0, 0, 0, 0, 0, 91, 89, ! 384: 77, 78, 89, 79, 88, 89, 81, 84, 84, 87, ! 385: 80, 82, 83, 87, 87, 87, 87, 87, 87, 87, ! 386: 87, 87, 87, 87, 87, 87, 87, 87, 17, 17, ! 387: 17, 17, 17, 17, 17, 17, 18, 17, 17, 17, ! 388: 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, ! 389: 17, 17, 87, 87, 87, 87, 87, 84, 87, 87, ! 390: 87, 87, 87, 87, 87, 87, 77, 0, 86, 79, ! 391: 88, 19, 27, 56, 42, 16, 60, 0, 0, 65, ! 392: 0, 61, 70, 64, 87, 84, 87, 87, 20, 87, ! 393: ! 394: 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, ! 395: 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, ! 396: 17, 17, 17, 17, 17, 17, 16, 17, 17, 17, ! 397: 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, ! 398: 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, ! 399: 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, ! 400: 17, 87, 87, 87, 87, 87, 87, 87, 87, 87, ! 401: 87, 87, 87, 87, 87, 19, 73, 74, 0, 71, ! 402: 72, 85, 1, 87, 76, 9, 87, 87, 87, 21, ! 403: 87, 87, 4, 87, 59, 87, 57, 87, 87, 87, ! 404: ! 405: 87, 87, 26, 87, 87, 87, 17, 17, 17, 17, ! 406: 17, 17, 17, 1, 17, 17, 9, 17, 17, 17, ! 407: 17, 17, 17, 4, 17, 17, 17, 17, 17, 17, ! 408: 17, 17, 17, 17, 17, 17, 17, 87, 87, 87, ! 409: 87, 26, 87, 87, 87, 87, 87, 87, 87, 87, ! 410: 87, 87, 75, 87, 87, 87, 6, 87, 7, 87, ! 411: 87, 87, 8, 87, 87, 87, 87, 87, 87, 87, ! 412: 87, 87, 87, 17, 17, 17, 17, 6, 17, 7, ! 413: 17, 17, 17, 8, 17, 17, 17, 17, 17, 17, ! 414: 17, 17, 17, 17, 87, 87, 87, 41, 87, 87, ! 415: ! 416: 87, 87, 87, 87, 87, 45, 87, 87, 87, 87, ! 417: 87, 87, 87, 87, 5, 87, 87, 87, 87, 87, ! 418: 87, 87, 87, 87, 87, 87, 87, 87, 17, 17, ! 419: 17, 17, 17, 5, 17, 17, 17, 17, 17, 17, ! 420: 17, 17, 17, 17, 17, 17, 17, 87, 87, 87, ! 421: 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, ! 422: 87, 87, 22, 87, 2, 87, 87, 25, 87, 87, ! 423: 87, 10, 87, 87, 87, 87, 15, 87, 63, 87, ! 424: 17, 17, 2, 17, 17, 17, 17, 17, 17, 10, ! 425: 17, 17, 17, 17, 15, 17, 17, 17, 87, 87, ! 426: ! 427: 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, ! 428: 87, 87, 87, 87, 46, 87, 58, 87, 23, 24, ! 429: 87, 87, 67, 87, 13, 87, 87, 87, 87, 17, ! 430: 17, 17, 17, 17, 17, 17, 17, 13, 17, 17, ! 431: 17, 17, 87, 87, 87, 87, 87, 87, 40, 87, ! 432: 52, 54, 87, 87, 87, 87, 43, 87, 87, 87, ! 433: 87, 87, 87, 87, 14, 87, 87, 68, 17, 17, ! 434: 17, 17, 14, 17, 17, 17, 87, 28, 87, 87, ! 435: 87, 87, 44, 87, 87, 87, 50, 87, 87, 87, ! 436: 3, 87, 87, 12, 11, 62, 3, 17, 17, 12, ! 437: ! 438: 11, 17, 87, 87, 29, 87, 87, 87, 30, 87, ! 439: 87, 87, 87, 49, 87, 87, 87, 66, 17, 17, ! 440: 87, 87, 87, 87, 87, 87, 31, 87, 87, 87, ! 441: 87, 87, 87, 17, 87, 87, 87, 87, 87, 33, ! 442: 35, 37, 87, 87, 48, 87, 51, 69, 17, 39, ! 443: 87, 87, 87, 87, 47, 55, 53, 87, 32, 34, ! 444: 36, 38, 0 ! 445: } ; ! 446: ! 447: static yyconst flex_int32_t yy_ec[256] = ! 448: { 0, ! 449: 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, ! 450: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 451: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 452: 1, 2, 1, 4, 5, 1, 6, 1, 1, 1, ! 453: 1, 1, 7, 8, 9, 10, 11, 12, 13, 14, ! 454: 15, 16, 17, 18, 19, 20, 19, 21, 22, 1, ! 455: 1, 1, 1, 1, 23, 24, 25, 24, 26, 24, ! 456: 21, 21, 21, 21, 21, 21, 21, 21, 21, 27, ! 457: 21, 28, 21, 21, 21, 21, 21, 29, 21, 21, ! 458: 30, 1, 31, 1, 32, 1, 33, 34, 35, 36, ! 459: ! 460: 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, ! 461: 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, ! 462: 57, 58, 1, 1, 1, 1, 1, 1, 1, 1, ! 463: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 464: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 465: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 466: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 467: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 468: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 469: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 470: ! 471: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 472: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 473: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 474: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 475: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 476: 1, 1, 1, 1, 1 ! 477: } ; ! 478: ! 479: static yyconst flex_int32_t yy_meta[59] = ! 480: { 0, ! 481: 1, 2, 3, 1, 1, 4, 2, 5, 4, 4, ! 482: 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, ! 483: 4, 1, 4, 4, 4, 4, 4, 4, 4, 2, ! 484: 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, ! 485: 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, ! 486: 4, 4, 4, 4, 4, 4, 4, 4 ! 487: } ; ! 488: ! 489: static yyconst flex_int16_t yy_base[570] = ! 490: { 0, ! 491: 0, 0, 58, 0, 84, 85, 123, 161, 1553, 1554, ! 492: 1550, 1554, 1547, 0, 0, 198, 1554, 244, 293, 1542, ! 493: 1554, 1554, 1554, 114, 111, 112, 115, 118, 124, 131, ! 494: 125, 133, 132, 134, 113, 140, 156, 126, 1547, 0, ! 495: 298, 0, 0, 350, 405, 197, 1554, 436, 146, 194, ! 496: 199, 107, 229, 231, 232, 234, 246, 249, 251, 282, ! 497: 338, 301, 309, 127, 144, 137, 342, 1512, 364, 332, ! 498: 185, 346, 241, 352, 421, 395, 1545, 1542, 1554, 0, ! 499: 0, 313, 1554, 1554, 1554, 1554, 1554, 104, 1493, 1554, ! 500: 127, 1554, 1554, 1554, 1536, 0, 475, 162, 193, 246, ! 501: ! 502: 209, 388, 275, 245, 386, 378, 382, 202, 288, 379, ! 503: 401, 432, 230, 307, 397, 296, 403, 438, 407, 446, ! 504: 1541, 0, 439, 0, 0, 0, 0, 0, 401, 1490, ! 505: 0, 409, 0, 0, 0, 434, 0, 506, 509, 518, ! 506: 510, 511, 525, 530, 532, 541, 543, 548, 555, 557, ! 507: 569, 566, 577, 574, 585, 586, 597, 599, 608, 606, ! 508: 613, 451, 448, 471, 290, 455, 467, 456, 469, 611, ! 509: 620, 453, 544, 470, 526, 611, 1554, 1554, 1485, 1554, ! 510: 1554, 0, 1532, 527, 1531, 1530, 509, 525, 457, 211, ! 511: 603, 616, 1529, 551, 1528, 528, 1527, 608, 630, 389, ! 512: ! 513: 632, 498, 1526, 584, 642, 552, 656, 0, 0, 1477, ! 514: 0, 0, 0, 633, 640, 653, 654, 661, 672, 674, ! 515: 675, 677, 688, 690, 691, 704, 705, 706, 707, 718, ! 516: 739, 727, 730, 732, 741, 746, 748, 669, 684, 667, ! 517: 688, 673, 698, 747, 643, 753, 683, 788, 749, 687, ! 518: 763, 766, 1554, 775, 781, 783, 1524, 790, 1523, 791, ! 519: 793, 792, 1522, 794, 797, 798, 795, 800, 799, 802, ! 520: 801, 805, 807, 0, 782, 784, 810, 813, 818, 815, ! 521: 827, 830, 842, 843, 844, 856, 857, 869, 872, 871, ! 522: 884, 887, 889, 901, 804, 860, 821, 1521, 886, 877, ! 523: ! 524: 864, 890, 892, 926, 934, 1520, 924, 906, 675, 932, ! 525: 893, 935, 936, 938, 1519, 905, 940, 943, 944, 946, ! 526: 947, 948, 828, 949, 950, 951, 953, 954, 927, 935, ! 527: 958, 965, 943, 960, 967, 972, 974, 988, 986, 987, ! 528: 999, 1000, 1001, 1002, 1014, 1015, 1027, 957, 1021, 1048, ! 529: 1022, 982, 1035, 1041, 1044, 1056, 1060, 207, 1057, 1068, ! 530: 1069, 1070, 1518, 1071, 1072, 1073, 1075, 1517, 1076, 1077, ! 531: 1082, 1516, 1083, 1081, 1084, 1089, 1515, 1085, 1514, 1091, ! 532: 1064, 1079, 1094, 1067, 1097, 1102, 1110, 1117, 1118, 1119, ! 533: 1130, 1132, 1133, 1141, 1146, 1149, 1154, 1165, 1094, 1103, ! 534: ! 535: 1090, 1104, 1152, 1144, 1128, 1106, 653, 1163, 1167, 813, ! 536: 1175, 1180, 1141, 1185, 1513, 1191, 1512, 1194, 1511, 1510, ! 537: 1198, 1196, 1509, 1199, 1508, 1201, 1202, 1205, 1204, 1181, ! 538: 1184, 1183, 1196, 1199, 1210, 1207, 1221, 1223, 1224, 1226, ! 539: 1235, 1240, 1217, 1257, 1229, 1260, 1271, 1274, 1507, 1275, ! 540: 1506, 1505, 1276, 1279, 1087, 1240, 1504, 1280, 1281, 1282, ! 541: 1284, 1287, 1289, 1290, 1497, 1292, 1291, 1485, 1265, 1294, ! 542: 1299, 1301, 1277, 1312, 1310, 1315, 1310, 1475, 1294, 1351, ! 543: 1298, 1300, 1474, 1345, 1361, 1328, 1472, 1318, 1365, 1336, ! 544: 1471, 1316, 1349, 1467, 1466, 1464, 1340, 1341, 1342, 1343, ! 545: ! 546: 1354, 1355, 1352, 1367, 1458, 1390, 956, 1395, 1334, 1396, ! 547: 1376, 1385, 1388, 1312, 1394, 1397, 1398, 1296, 1377, 1379, ! 548: 1408, 1402, 1413, 1416, 879, 1418, 1241, 1410, 1425, 1428, ! 549: 1431, 1429, 1432, 1406, 1435, 1437, 1439, 958, 1440, 1139, ! 550: 1017, 866, 1441, 1443, 832, 1449, 817, 815, 1422, 717, ! 551: 1453, 1459, 1210, 1446, 530, 478, 476, 1461, 394, 319, ! 552: 214, 121, 1554, 1484, 1490, 1492, 1495, 1500, 1505 ! 553: } ; ! 554: ! 555: static yyconst flex_int16_t yy_def[570] = ! 556: { 0, ! 557: 563, 1, 563, 3, 1, 1, 1, 1, 563, 563, ! 558: 563, 563, 564, 565, 566, 563, 563, 567, 567, 567, ! 559: 563, 563, 563, 567, 567, 567, 567, 567, 567, 567, ! 560: 567, 567, 567, 567, 567, 567, 567, 567, 568, 568, ! 561: 568, 568, 568, 569, 569, 569, 563, 569, 48, 48, ! 562: 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, ! 563: 48, 48, 567, 567, 567, 567, 567, 19, 567, 567, ! 564: 567, 567, 567, 567, 567, 567, 563, 564, 563, 565, ! 565: 566, 563, 563, 563, 563, 563, 563, 563, 563, 563, ! 566: 563, 563, 563, 563, 567, 19, 19, 567, 567, 567, ! 567: ! 568: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 569: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 570: 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, ! 571: 568, 568, 568, 568, 568, 48, 45, 45, 48, 48, ! 572: 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, ! 573: 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, ! 574: 48, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 575: 567, 567, 567, 567, 567, 563, 563, 563, 563, 563, ! 576: 563, 97, 567, 567, 567, 567, 567, 567, 567, 567, ! 577: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 578: ! 579: 567, 567, 567, 567, 567, 567, 568, 568, 568, 568, ! 580: 568, 568, 138, 48, 48, 48, 48, 48, 48, 48, ! 581: 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, ! 582: 48, 48, 48, 48, 48, 48, 48, 567, 567, 567, ! 583: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 584: 567, 567, 563, 567, 567, 567, 567, 567, 567, 567, ! 585: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 586: 567, 567, 567, 568, 48, 48, 48, 48, 48, 48, ! 587: 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, ! 588: 48, 48, 48, 48, 567, 567, 567, 567, 567, 567, ! 589: ! 590: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 591: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 592: 567, 567, 567, 567, 567, 567, 567, 567, 48, 48, ! 593: 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, ! 594: 48, 48, 48, 48, 48, 48, 48, 567, 567, 567, ! 595: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 596: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 597: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 598: 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, ! 599: 48, 48, 48, 48, 48, 48, 48, 48, 567, 567, ! 600: ! 601: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 602: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 603: 567, 567, 567, 567, 567, 567, 567, 567, 567, 48, ! 604: 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, ! 605: 48, 48, 567, 567, 567, 567, 567, 567, 567, 567, ! 606: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 607: 567, 567, 567, 567, 567, 567, 567, 567, 48, 48, ! 608: 48, 48, 48, 48, 48, 48, 567, 567, 567, 567, ! 609: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 610: 567, 567, 567, 567, 567, 567, 48, 48, 48, 48, ! 611: ! 612: 48, 48, 567, 567, 567, 567, 567, 567, 567, 567, ! 613: 567, 567, 567, 567, 567, 567, 567, 567, 48, 48, ! 614: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 615: 567, 567, 567, 48, 567, 567, 567, 567, 567, 567, ! 616: 567, 567, 567, 567, 567, 567, 567, 567, 48, 567, ! 617: 567, 567, 567, 567, 567, 567, 567, 567, 567, 567, ! 618: 567, 567, 0, 563, 563, 563, 563, 563, 563 ! 619: } ; ! 620: ! 621: static yyconst flex_int16_t yy_nxt[1613] = ! 622: { 0, ! 623: 10, 11, 12, 13, 14, 10, 10, 15, 16, 10, ! 624: 17, 18, 19, 19, 19, 19, 19, 19, 19, 19, ! 625: 20, 21, 20, 20, 20, 20, 20, 20, 20, 22, ! 626: 23, 10, 24, 25, 20, 26, 27, 28, 29, 20, ! 627: 30, 20, 20, 31, 20, 32, 33, 20, 34, 35, ! 628: 36, 37, 20, 20, 20, 20, 20, 38, 10, 39, ! 629: 40, 13, 14, 10, 10, 15, 41, 42, 43, 44, ! 630: 45, 45, 45, 45, 45, 45, 45, 45, 46, 47, ! 631: 46, 46, 46, 46, 46, 46, 46, 22, 23, 42, ! 632: 48, 49, 46, 50, 51, 52, 53, 46, 54, 46, ! 633: ! 634: 46, 55, 46, 56, 57, 46, 58, 59, 60, 61, ! 635: 46, 46, 46, 46, 46, 62, 63, 63, 563, 563, ! 636: 563, 563, 563, 64, 64, 563, 65, 65, 563, 66, ! 637: 66, 563, 563, 563, 563, 67, 67, 68, 563, 563, ! 638: 563, 563, 136, 177, 563, 113, 136, 563, 102, 98, ! 639: 147, 563, 136, 99, 178, 69, 70, 71, 72, 100, ! 640: 107, 106, 120, 563, 103, 104, 180, 101, 73, 563, ! 641: 105, 163, 74, 75, 76, 68, 114, 181, 108, 110, ! 642: 164, 136, 109, 110, 111, 136, 112, 115, 116, 165, ! 643: 117, 136, 563, 69, 70, 71, 72, 183, 122, 122, ! 644: ! 645: 563, 184, 142, 122, 563, 118, 73, 122, 119, 563, ! 646: 74, 75, 76, 82, 563, 82, 563, 170, 563, 258, ! 647: 83, 563, 84, 85, 86, 87, 122, 122, 122, 136, ! 648: 143, 88, 89, 136, 136, 90, 194, 563, 136, 136, ! 649: 412, 91, 92, 82, 136, 186, 144, 93, 563, 145, ! 650: 94, 81, 563, 563, 146, 96, 96, 96, 96, 96, ! 651: 96, 96, 96, 96, 136, 148, 136, 136, 136, 136, ! 652: 136, 136, 97, 136, 136, 199, 136, 136, 149, 136, ! 653: 151, 136, 563, 154, 136, 136, 136, 110, 136, 150, ! 654: 136, 136, 190, 172, 136, 563, 136, 563, 152, 97, ! 655: ! 656: 81, 153, 185, 563, 96, 96, 96, 96, 96, 96, ! 657: 96, 96, 96, 123, 563, 123, 563, 136, 155, 189, ! 658: 124, 136, 125, 126, 127, 128, 563, 136, 176, 156, ! 659: 176, 129, 130, 241, 202, 131, 136, 161, 195, 563, ! 660: 136, 132, 133, 123, 98, 162, 136, 134, 99, 563, ! 661: 135, 122, 122, 563, 100, 200, 122, 81, 176, 563, ! 662: 122, 137, 137, 137, 137, 137, 137, 137, 137, 137, ! 663: 157, 563, 158, 136, 116, 169, 166, 136, 138, 122, ! 664: 122, 122, 171, 136, 113, 563, 563, 159, 101, 563, ! 665: 160, 118, 173, 563, 119, 563, 563, 265, 103, 98, ! 666: ! 667: 168, 563, 563, 99, 563, 138, 122, 122, 563, 100, ! 668: 563, 122, 81, 196, 563, 122, 137, 137, 137, 137, ! 669: 137, 137, 137, 137, 137, 187, 191, 116, 563, 117, ! 670: 192, 188, 201, 193, 122, 122, 122, 122, 122, 563, ! 671: 208, 197, 122, 563, 118, 563, 122, 119, 211, 175, ! 672: 203, 209, 205, 563, 207, 563, 207, 114, 563, 212, ! 673: 563, 174, 563, 563, 563, 122, 122, 122, 115, 136, ! 674: 204, 139, 198, 136, 563, 140, 563, 563, 563, 136, ! 675: 239, 141, 563, 563, 207, 563, 182, 182, 182, 182, ! 676: 182, 182, 182, 182, 182, 206, 249, 182, 182, 182, ! 677: ! 678: 182, 238, 242, 243, 257, 563, 244, 182, 182, 182, ! 679: 182, 182, 182, 563, 251, 245, 563, 213, 213, 213, ! 680: 213, 213, 213, 213, 213, 213, 215, 240, 213, 213, ! 681: 213, 213, 563, 563, 563, 563, 270, 563, 213, 213, ! 682: 213, 213, 213, 213, 214, 136, 136, 217, 136, 136, ! 683: 136, 563, 255, 136, 136, 136, 136, 136, 563, 563, ! 684: 136, 256, 218, 136, 136, 136, 216, 136, 219, 136, ! 685: 136, 136, 252, 254, 220, 136, 136, 136, 136, 221, ! 686: 136, 222, 136, 136, 262, 250, 136, 136, 136, 225, ! 687: 136, 563, 136, 136, 136, 223, 136, 261, 273, 224, ! 688: ! 689: 136, 136, 136, 227, 136, 136, 228, 226, 136, 136, ! 690: 563, 136, 136, 136, 136, 563, 136, 229, 563, 230, ! 691: 136, 232, 136, 563, 136, 136, 176, 563, 176, 271, ! 692: 136, 136, 136, 231, 136, 233, 136, 563, 136, 563, ! 693: 235, 136, 136, 136, 136, 136, 234, 136, 136, 563, ! 694: 563, 236, 136, 136, 259, 246, 176, 187, 136, 263, ! 695: 563, 247, 237, 188, 266, 264, 260, 267, 136, 268, ! 696: 248, 207, 136, 207, 563, 136, 563, 295, 136, 136, ! 697: 563, 299, 563, 279, 269, 136, 275, 272, 136, 136, ! 698: 563, 563, 136, 136, 563, 563, 136, 302, 136, 136, ! 699: ! 700: 136, 207, 452, 297, 276, 563, 136, 136, 277, 136, ! 701: 136, 136, 136, 136, 136, 362, 136, 136, 296, 136, ! 702: 136, 278, 136, 136, 563, 136, 136, 136, 280, 136, ! 703: 136, 298, 307, 136, 304, 136, 136, 282, 281, 136, ! 704: 136, 136, 136, 136, 136, 136, 136, 286, 300, 136, ! 705: 136, 136, 136, 285, 563, 301, 563, 136, 284, 287, ! 706: 563, 283, 288, 136, 289, 136, 136, 136, 291, 136, ! 707: 563, 136, 136, 563, 136, 136, 136, 136, 136, 290, ! 708: 136, 136, 563, 136, 136, 136, 292, 136, 563, 303, ! 709: 563, 293, 306, 136, 294, 563, 305, 563, 563, 563, ! 710: ! 711: 563, 563, 563, 309, 563, 563, 563, 563, 563, 563, ! 712: 308, 563, 563, 311, 563, 328, 330, 136, 310, 136, ! 713: 563, 136, 563, 136, 563, 329, 317, 136, 563, 136, ! 714: 315, 321, 455, 320, 312, 563, 313, 316, 325, 563, ! 715: 318, 327, 314, 323, 319, 136, 324, 322, 136, 136, ! 716: 136, 326, 136, 136, 136, 136, 350, 136, 136, 348, ! 717: 136, 331, 136, 136, 332, 136, 334, 563, 349, 136, ! 718: 333, 563, 136, 563, 335, 136, 336, 136, 136, 136, ! 719: 375, 136, 136, 136, 563, 352, 563, 136, 136, 136, ! 720: 337, 136, 339, 563, 541, 136, 136, 563, 353, 563, ! 721: ! 722: 563, 136, 136, 338, 136, 340, 136, 136, 136, 347, ! 723: 136, 136, 563, 563, 136, 342, 136, 136, 343, 136, ! 724: 344, 341, 136, 136, 136, 346, 136, 354, 136, 136, ! 725: 351, 563, 136, 563, 136, 355, 136, 345, 356, 563, ! 726: 136, 563, 563, 563, 364, 563, 136, 563, 357, 361, ! 727: 563, 563, 368, 563, 563, 563, 563, 563, 563, 360, ! 728: 563, 563, 381, 563, 563, 563, 136, 363, 358, 359, ! 729: 136, 365, 136, 367, 136, 525, 371, 553, 385, 366, ! 730: 136, 372, 136, 369, 376, 377, 382, 370, 136, 563, ! 731: 373, 399, 374, 136, 383, 136, 379, 136, 378, 136, ! 732: ! 733: 136, 380, 136, 136, 136, 136, 136, 136, 384, 136, ! 734: 136, 136, 136, 136, 386, 387, 405, 136, 388, 136, ! 735: 389, 390, 136, 136, 563, 136, 136, 136, 563, 563, ! 736: 391, 136, 136, 136, 136, 136, 394, 395, 136, 136, ! 737: 136, 136, 563, 392, 136, 136, 136, 136, 563, 136, ! 738: 136, 563, 393, 136, 136, 563, 403, 404, 397, 136, ! 739: 136, 396, 136, 563, 563, 400, 136, 563, 406, 410, ! 740: 401, 402, 136, 411, 398, 563, 563, 563, 563, 563, ! 741: 563, 408, 563, 563, 563, 422, 407, 409, 563, 563, ! 742: 563, 563, 563, 413, 563, 486, 563, 563, 563, 136, ! 743: ! 744: 414, 563, 432, 136, 418, 415, 136, 417, 419, 136, ! 745: 563, 563, 136, 563, 136, 430, 421, 423, 136, 424, ! 746: 416, 427, 420, 429, 136, 435, 431, 443, 425, 136, ! 747: 445, 428, 136, 136, 426, 563, 136, 136, 444, 136, ! 748: 451, 136, 136, 446, 433, 136, 563, 136, 563, 136, ! 749: 434, 563, 136, 436, 136, 136, 136, 136, 136, 563, ! 750: 449, 450, 136, 136, 136, 136, 437, 136, 136, 136, ! 751: 563, 136, 136, 440, 563, 136, 136, 136, 136, 438, ! 752: 136, 136, 563, 439, 136, 136, 136, 563, 136, 136, ! 753: 458, 136, 563, 136, 136, 441, 447, 442, 563, 136, ! 754: ! 755: 136, 563, 448, 563, 136, 563, 563, 454, 563, 563, ! 756: 136, 563, 563, 453, 457, 456, 136, 563, 136, 136, ! 757: 136, 459, 136, 136, 563, 560, 136, 469, 136, 136, ! 758: 460, 136, 462, 470, 136, 136, 563, 461, 136, 468, ! 759: 465, 136, 136, 463, 136, 136, 136, 563, 563, 136, ! 760: 464, 477, 136, 466, 467, 136, 136, 471, 136, 136, ! 761: 136, 136, 136, 473, 563, 136, 136, 563, 136, 136, ! 762: 136, 136, 472, 478, 136, 476, 479, 474, 563, 136, ! 763: 136, 563, 563, 563, 475, 136, 563, 563, 563, 563, ! 764: 490, 563, 480, 487, 563, 492, 563, 563, 563, 563, ! 765: ! 766: 136, 563, 498, 563, 136, 563, 481, 563, 497, 483, ! 767: 136, 485, 136, 482, 509, 484, 136, 563, 503, 563, ! 768: 488, 493, 136, 563, 489, 563, 494, 491, 495, 136, ! 769: 504, 499, 510, 136, 136, 563, 136, 500, 136, 136, ! 770: 136, 563, 496, 563, 136, 136, 136, 136, 501, 136, ! 771: 136, 136, 563, 511, 136, 136, 563, 136, 563, 563, ! 772: 136, 502, 513, 505, 506, 507, 517, 508, 563, 512, ! 773: 516, 514, 563, 515, 563, 136, 136, 520, 136, 136, ! 774: 136, 136, 136, 563, 518, 136, 136, 136, 136, 136, ! 775: 136, 519, 563, 136, 136, 563, 521, 563, 523, 136, ! 776: ! 777: 136, 563, 563, 563, 563, 563, 524, 526, 527, 563, ! 778: 528, 522, 136, 534, 136, 563, 136, 563, 136, 529, ! 779: 563, 530, 136, 563, 136, 563, 537, 538, 531, 539, ! 780: 532, 542, 563, 540, 533, 563, 563, 536, 563, 563, ! 781: 535, 136, 563, 543, 563, 136, 563, 563, 563, 551, ! 782: 563, 136, 554, 563, 549, 552, 563, 136, 544, 561, ! 783: 563, 136, 545, 547, 546, 563, 563, 136, 563, 550, ! 784: 558, 563, 562, 563, 563, 555, 559, 556, 563, 563, ! 785: 548, 563, 563, 557, 78, 78, 78, 78, 78, 78, ! 786: 80, 80, 563, 80, 80, 80, 81, 81, 95, 95, ! 787: ! 788: 95, 122, 122, 122, 563, 122, 136, 136, 136, 136, ! 789: 136, 563, 563, 563, 563, 563, 563, 563, 563, 563, ! 790: 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, ! 791: 563, 563, 274, 563, 563, 563, 563, 563, 563, 563, ! 792: 253, 210, 121, 563, 179, 79, 77, 167, 121, 563, ! 793: 79, 77, 563, 9, 563, 563, 563, 563, 563, 563, ! 794: 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, ! 795: 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, ! 796: 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, ! 797: 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, ! 798: ! 799: 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, ! 800: 563, 563 ! 801: } ; ! 802: ! 803: static yyconst flex_int16_t yy_chk[1613] = ! 804: { 0, ! 805: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 806: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 807: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 808: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 809: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ! 810: 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, ! 811: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 812: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 813: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 814: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 815: ! 816: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 817: 3, 3, 3, 3, 3, 3, 5, 6, 25, 26, ! 818: 35, 24, 27, 5, 6, 28, 5, 6, 562, 5, ! 819: 6, 29, 31, 38, 64, 5, 6, 7, 30, 33, ! 820: 32, 34, 52, 88, 66, 35, 52, 36, 26, 24, ! 821: 52, 65, 52, 24, 88, 7, 7, 7, 7, 24, ! 822: 29, 28, 38, 37, 26, 27, 91, 25, 7, 98, ! 823: 27, 64, 7, 7, 7, 8, 36, 91, 30, 32, ! 824: 65, 49, 31, 66, 33, 49, 34, 36, 37, 66, ! 825: 37, 49, 71, 8, 8, 8, 8, 98, 46, 46, ! 826: ! 827: 99, 99, 49, 46, 46, 37, 8, 46, 37, 108, ! 828: 8, 8, 8, 16, 358, 16, 101, 71, 190, 190, ! 829: 16, 561, 16, 16, 16, 16, 46, 46, 46, 50, ! 830: 50, 16, 16, 50, 51, 16, 108, 113, 51, 50, ! 831: 358, 16, 16, 16, 51, 101, 50, 16, 73, 51, ! 832: 16, 18, 104, 100, 51, 18, 18, 18, 18, 18, ! 833: 18, 18, 18, 18, 53, 53, 54, 55, 53, 56, ! 834: 54, 55, 18, 56, 53, 113, 54, 55, 54, 56, ! 835: 56, 57, 103, 59, 58, 57, 59, 73, 58, 55, ! 836: 59, 57, 104, 73, 58, 109, 59, 165, 57, 18, ! 837: ! 838: 19, 58, 100, 116, 19, 19, 19, 19, 19, 19, ! 839: 19, 19, 19, 41, 114, 41, 63, 60, 60, 103, ! 840: 41, 60, 41, 41, 41, 41, 560, 60, 82, 60, ! 841: 82, 41, 41, 165, 116, 41, 62, 62, 109, 70, ! 842: 62, 41, 41, 41, 63, 63, 62, 41, 63, 67, ! 843: 41, 44, 44, 72, 63, 114, 44, 44, 82, 74, ! 844: 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, ! 845: 61, 69, 61, 61, 67, 70, 67, 61, 44, 44, ! 846: 44, 44, 72, 61, 74, 106, 110, 61, 70, 107, ! 847: 61, 67, 74, 105, 67, 102, 200, 200, 72, 69, ! 848: ! 849: 69, 559, 76, 69, 115, 44, 45, 45, 111, 69, ! 850: 117, 45, 45, 110, 119, 45, 45, 45, 45, 45, ! 851: 45, 45, 45, 45, 45, 102, 105, 76, 75, 76, ! 852: 106, 102, 115, 107, 45, 45, 45, 48, 48, 112, ! 853: 129, 111, 48, 48, 76, 118, 48, 76, 132, 76, ! 854: 117, 129, 119, 120, 123, 163, 123, 75, 162, 132, ! 855: 172, 75, 166, 168, 189, 48, 48, 48, 75, 136, ! 856: 118, 48, 112, 136, 167, 48, 169, 174, 164, 136, ! 857: 163, 48, 97, 557, 123, 556, 97, 97, 97, 97, ! 858: 97, 97, 97, 97, 97, 120, 172, 97, 97, 97, ! 859: ! 860: 97, 162, 166, 167, 189, 202, 168, 97, 97, 97, ! 861: 97, 97, 97, 138, 174, 169, 187, 138, 138, 138, ! 862: 138, 138, 138, 138, 138, 138, 140, 164, 138, 138, ! 863: 138, 138, 188, 175, 184, 196, 202, 555, 138, 138, ! 864: 138, 138, 138, 138, 139, 141, 142, 142, 139, 141, ! 865: 142, 173, 187, 140, 139, 141, 142, 140, 194, 206, ! 866: 143, 188, 143, 140, 143, 144, 141, 145, 143, 144, ! 867: 143, 145, 175, 184, 144, 144, 146, 145, 147, 145, ! 868: 146, 146, 147, 148, 196, 173, 146, 148, 147, 149, ! 869: 149, 204, 150, 148, 149, 147, 150, 194, 206, 148, ! 870: ! 871: 149, 152, 150, 151, 151, 152, 152, 150, 151, 154, ! 872: 191, 152, 153, 154, 151, 198, 153, 153, 170, 154, ! 873: 155, 156, 153, 192, 155, 156, 176, 171, 176, 204, ! 874: 155, 156, 157, 155, 158, 157, 157, 199, 158, 201, ! 875: 159, 160, 157, 159, 158, 160, 158, 159, 161, 205, ! 876: 245, 160, 161, 159, 191, 170, 176, 171, 161, 198, ! 877: 407, 170, 161, 171, 201, 199, 192, 201, 214, 201, ! 878: 171, 207, 214, 207, 240, 215, 238, 238, 214, 215, ! 879: 242, 242, 309, 221, 201, 215, 215, 205, 216, 217, ! 880: 247, 239, 216, 217, 250, 241, 218, 245, 216, 217, ! 881: ! 882: 218, 207, 407, 240, 218, 243, 218, 219, 219, 220, ! 883: 221, 219, 222, 220, 221, 309, 222, 219, 239, 220, ! 884: 221, 220, 222, 223, 550, 224, 225, 223, 222, 224, ! 885: 225, 241, 250, 223, 247, 224, 225, 225, 223, 226, ! 886: 227, 228, 229, 226, 227, 228, 229, 231, 243, 226, ! 887: 227, 228, 229, 230, 244, 244, 249, 230, 229, 232, ! 888: 246, 227, 232, 230, 232, 233, 232, 234, 233, 233, ! 889: 251, 234, 232, 252, 231, 233, 235, 234, 231, 232, ! 890: 235, 236, 254, 237, 231, 236, 235, 237, 255, 246, ! 891: 256, 236, 249, 237, 237, 248, 248, 258, 260, 262, ! 892: ! 893: 261, 264, 267, 252, 265, 266, 269, 268, 271, 270, ! 894: 251, 295, 272, 255, 273, 273, 276, 275, 254, 276, ! 895: 410, 275, 548, 276, 547, 275, 262, 275, 297, 276, ! 896: 260, 267, 410, 266, 256, 323, 258, 261, 270, 545, ! 897: 264, 272, 258, 268, 265, 277, 269, 267, 278, 277, ! 898: 280, 271, 278, 279, 280, 277, 297, 279, 278, 295, ! 899: 280, 277, 281, 279, 279, 282, 281, 296, 296, 282, ! 900: 279, 301, 281, 542, 282, 282, 283, 283, 284, 285, ! 901: 323, 283, 284, 285, 300, 300, 525, 283, 284, 285, ! 902: 285, 286, 287, 299, 525, 286, 287, 302, 301, 303, ! 903: ! 904: 311, 286, 287, 286, 288, 288, 290, 289, 288, 294, ! 905: 290, 289, 316, 308, 288, 289, 290, 289, 290, 291, ! 906: 291, 288, 292, 291, 293, 293, 292, 302, 293, 291, ! 907: 299, 307, 292, 304, 293, 303, 294, 292, 304, 310, ! 908: 294, 305, 312, 313, 311, 314, 294, 317, 305, 308, ! 909: 318, 319, 316, 320, 321, 322, 324, 325, 326, 307, ! 910: 327, 328, 329, 507, 348, 538, 329, 310, 305, 305, ! 911: 330, 312, 329, 314, 330, 507, 319, 538, 333, 313, ! 912: 330, 320, 333, 317, 324, 325, 330, 318, 333, 352, ! 913: 321, 348, 322, 331, 331, 334, 327, 331, 326, 334, ! 914: ! 915: 332, 328, 335, 331, 332, 334, 335, 336, 332, 337, ! 916: 332, 336, 335, 337, 335, 336, 352, 336, 337, 337, ! 917: 338, 339, 340, 338, 541, 339, 340, 338, 349, 351, ! 918: 340, 339, 340, 338, 341, 342, 343, 344, 341, 342, ! 919: 343, 344, 353, 341, 341, 342, 343, 344, 354, 345, ! 920: 346, 355, 342, 345, 346, 350, 350, 351, 346, 345, ! 921: 346, 345, 347, 356, 359, 349, 347, 357, 353, 356, ! 922: 349, 349, 347, 357, 347, 360, 361, 362, 364, 365, ! 923: 366, 354, 367, 369, 370, 370, 353, 355, 374, 371, ! 924: 373, 375, 378, 359, 455, 455, 376, 401, 380, 381, ! 925: ! 926: 360, 399, 384, 381, 365, 361, 384, 364, 366, 381, ! 927: 400, 402, 384, 406, 382, 382, 369, 371, 382, 373, ! 928: 362, 376, 367, 380, 382, 388, 383, 399, 374, 383, ! 929: 401, 378, 385, 383, 375, 405, 385, 386, 400, 383, ! 930: 406, 386, 385, 402, 385, 387, 540, 386, 413, 387, ! 931: 387, 404, 388, 389, 390, 387, 388, 389, 390, 403, ! 932: 404, 405, 388, 389, 390, 391, 391, 392, 393, 391, ! 933: 408, 392, 393, 394, 409, 391, 394, 392, 393, 392, ! 934: 394, 395, 411, 393, 396, 395, 394, 412, 396, 397, ! 935: 413, 395, 414, 397, 396, 396, 403, 398, 416, 397, ! 936: ! 937: 398, 418, 403, 422, 398, 421, 424, 409, 426, 427, ! 938: 398, 429, 428, 408, 412, 411, 430, 553, 432, 431, ! 939: 430, 414, 432, 431, 443, 553, 430, 431, 432, 431, ! 940: 416, 433, 421, 434, 434, 433, 445, 418, 434, 429, ! 941: 426, 433, 436, 422, 434, 435, 436, 456, 527, 435, ! 942: 424, 443, 436, 427, 428, 435, 437, 435, 438, 439, ! 943: 437, 440, 438, 439, 444, 440, 437, 446, 438, 439, ! 944: 441, 440, 437, 444, 441, 442, 445, 440, 447, 442, ! 945: 441, 448, 450, 453, 441, 442, 454, 458, 459, 460, ! 946: 460, 461, 446, 456, 462, 462, 463, 464, 467, 466, ! 947: ! 948: 469, 479, 470, 518, 469, 481, 447, 482, 469, 450, ! 949: 469, 454, 473, 448, 481, 453, 473, 477, 477, 514, ! 950: 458, 463, 473, 492, 459, 488, 464, 461, 466, 470, ! 951: 479, 471, 482, 470, 471, 486, 472, 472, 471, 470, ! 952: 472, 509, 467, 490, 471, 475, 472, 474, 474, 475, ! 953: 476, 474, 484, 484, 476, 475, 493, 474, 480, 503, ! 954: 476, 475, 486, 480, 480, 480, 492, 480, 485, 485, ! 955: 490, 488, 489, 489, 504, 497, 498, 499, 500, 497, ! 956: 498, 499, 500, 511, 493, 497, 498, 499, 500, 501, ! 957: 502, 498, 512, 501, 502, 513, 503, 506, 506, 501, ! 958: ! 959: 502, 515, 508, 510, 516, 517, 506, 508, 510, 522, ! 960: 511, 504, 519, 519, 520, 521, 519, 528, 520, 512, ! 961: 523, 513, 519, 524, 520, 526, 523, 523, 515, 523, ! 962: 516, 526, 529, 524, 517, 530, 532, 522, 531, 533, ! 963: 521, 534, 535, 528, 536, 534, 537, 539, 543, 536, ! 964: 544, 534, 539, 554, 534, 537, 546, 549, 529, 554, ! 965: 551, 549, 530, 532, 531, 505, 552, 549, 558, 535, ! 966: 551, 496, 558, 495, 494, 543, 552, 544, 491, 487, ! 967: 533, 483, 478, 546, 564, 564, 564, 564, 564, 564, ! 968: 565, 565, 468, 565, 565, 565, 566, 566, 567, 567, ! 969: ! 970: 567, 568, 568, 568, 465, 568, 569, 569, 569, 569, ! 971: 569, 457, 452, 451, 449, 425, 423, 420, 419, 417, ! 972: 415, 379, 377, 372, 368, 363, 315, 306, 298, 263, ! 973: 259, 257, 210, 203, 197, 195, 193, 186, 185, 183, ! 974: 179, 130, 121, 95, 89, 78, 77, 68, 39, 20, ! 975: 13, 11, 9, 563, 563, 563, 563, 563, 563, 563, ! 976: 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, ! 977: 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, ! 978: 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, ! 979: 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, ! 980: ! 981: 563, 563, 563, 563, 563, 563, 563, 563, 563, 563, ! 982: 563, 563 ! 983: } ; ! 984: ! 985: static yy_state_type yy_last_accepting_state; ! 986: static char *yy_last_accepting_cpos; ! 987: ! 988: extern int yy_flex_debug; ! 989: int yy_flex_debug = 0; ! 990: ! 991: /* The intent behind this definition is that it'll catch ! 992: * any uses of REJECT which flex missed. ! 993: */ ! 994: #define REJECT reject_used_but_not_detected ! 995: static int yy_more_flag = 0; ! 996: static int yy_more_len = 0; ! 997: #define yymore() ((yy_more_flag) = 1) ! 998: #define YY_MORE_ADJ (yy_more_len) ! 999: #define YY_RESTORE_YY_MORE_OFFSET ! 1000: char *yytext; ! 1001: #line 1 "token.l" ! 1002: /* $NetBSD: token.l,v 1.15 2010/06/04 13:06:03 vanhu Exp $ */ ! 1003: /* $KAME: token.l,v 1.44 2003/10/21 07:20:58 itojun Exp $ */ ! 1004: /* ! 1005: * Copyright (C) 1995, 1996, 1997, 1998, and 1999 WIDE Project. ! 1006: * All rights reserved. ! 1007: * ! 1008: * Redistribution and use in source and binary forms, with or without ! 1009: * modification, are permitted provided that the following conditions ! 1010: * are met: ! 1011: * 1. Redistributions of source code must retain the above copyright ! 1012: * notice, this list of conditions and the following disclaimer. ! 1013: * 2. Redistributions in binary form must reproduce the above copyright ! 1014: * notice, this list of conditions and the following disclaimer in the ! 1015: * documentation and/or other materials provided with the distribution. ! 1016: * 3. Neither the name of the project nor the names of its contributors ! 1017: * may be used to endorse or promote products derived from this software ! 1018: * without specific prior written permission. ! 1019: * ! 1020: * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND ! 1021: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 1022: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 1023: * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE ! 1024: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 1025: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 1026: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 1027: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 1028: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 1029: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 1030: * SUCH DAMAGE. ! 1031: */ ! 1032: #line 35 "token.l" ! 1033: ! 1034: #ifdef HAVE_CONFIG_H ! 1035: #include "config.h" ! 1036: #endif ! 1037: ! 1038: #include <sys/types.h> ! 1039: #include <sys/param.h> ! 1040: #include <sys/socket.h> ! 1041: #include <net/pfkeyv2.h> ! 1042: #include <netinet/in.h> ! 1043: #include PATH_IPSEC_H ! 1044: ! 1045: #include <stdlib.h> ! 1046: #include <limits.h> ! 1047: #include <string.h> ! 1048: #include <unistd.h> ! 1049: #include <errno.h> ! 1050: #include <netdb.h> ! 1051: ! 1052: #include "vchar.h" ! 1053: #if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__linux__) || \ ! 1054: (defined(__APPLE__) && defined(__MACH__)) ! 1055: #include "parse.h" ! 1056: #else ! 1057: #include "y.tab.h" ! 1058: #endif ! 1059: ! 1060: #include "extern.h" ! 1061: ! 1062: /* make the code compile on *BSD-current */ ! 1063: #ifndef SADB_X_AALG_SHA2_256 ! 1064: #define SADB_X_AALG_SHA2_256 (-1) ! 1065: #endif ! 1066: #ifndef SADB_X_AALG_SHA2_384 ! 1067: #define SADB_X_AALG_SHA2_384 (-1) ! 1068: #endif ! 1069: #ifndef SADB_X_AALG_SHA2_512 ! 1070: #define SADB_X_AALG_SHA2_512 (-1) ! 1071: #endif ! 1072: #ifndef SADB_X_AALG_RIPEMD160HMAC ! 1073: #define SADB_X_AALG_RIPEMD160HMAC (-1) ! 1074: #endif ! 1075: #ifndef SADB_X_AALG_AES_XCBC_MAC ! 1076: #define SADB_X_AALG_AES_XCBC_MAC (-1) ! 1077: #endif ! 1078: #ifndef SADB_X_EALG_TWOFISHCBC ! 1079: #define SADB_X_EALG_TWOFISHCBC (-1) ! 1080: #endif ! 1081: #ifndef SADB_X_EALG_AESCTR ! 1082: #define SADB_X_EALG_AESCTR (-1) ! 1083: #endif ! 1084: #if defined(SADB_X_EALG_AES) && ! defined(SADB_X_EALG_AESCBC) ! 1085: #define SADB_X_EALG_AESCBC SADB_X_EALG_AES ! 1086: #endif ! 1087: /* common section */ ! 1088: ! 1089: #define YY_NO_INPUT 1 ! 1090: #line 1091 "token.c" ! 1091: ! 1092: #define INITIAL 0 ! 1093: #define S_PL 1 ! 1094: #define S_AUTHALG 2 ! 1095: #define S_ENCALG 3 ! 1096: ! 1097: #ifndef YY_NO_UNISTD_H ! 1098: /* Special case for "unistd.h", since it is non-ANSI. We include it way ! 1099: * down here because we want the user's section 1 to have been scanned first. ! 1100: * The user has a chance to override it with an option. ! 1101: */ ! 1102: #include <unistd.h> ! 1103: #endif ! 1104: ! 1105: #ifndef YY_EXTRA_TYPE ! 1106: #define YY_EXTRA_TYPE void * ! 1107: #endif ! 1108: ! 1109: static int yy_init_globals (void ); ! 1110: ! 1111: /* Accessor methods to globals. ! 1112: These are made visible to non-reentrant scanners for convenience. */ ! 1113: ! 1114: int yylex_destroy (void ); ! 1115: ! 1116: int yyget_debug (void ); ! 1117: ! 1118: void yyset_debug (int debug_flag ); ! 1119: ! 1120: YY_EXTRA_TYPE yyget_extra (void ); ! 1121: ! 1122: void yyset_extra (YY_EXTRA_TYPE user_defined ); ! 1123: ! 1124: FILE *yyget_in (void ); ! 1125: ! 1126: void yyset_in (FILE * in_str ); ! 1127: ! 1128: FILE *yyget_out (void ); ! 1129: ! 1130: void yyset_out (FILE * out_str ); ! 1131: ! 1132: int yyget_leng (void ); ! 1133: ! 1134: char *yyget_text (void ); ! 1135: ! 1136: int yyget_lineno (void ); ! 1137: ! 1138: void yyset_lineno (int line_number ); ! 1139: ! 1140: /* Macros after this point can all be overridden by user definitions in ! 1141: * section 1. ! 1142: */ ! 1143: ! 1144: #ifndef YY_SKIP_YYWRAP ! 1145: #ifdef __cplusplus ! 1146: extern "C" int yywrap (void ); ! 1147: #else ! 1148: extern int yywrap (void ); ! 1149: #endif ! 1150: #endif ! 1151: ! 1152: #ifndef yytext_ptr ! 1153: static void yy_flex_strncpy (char *,yyconst char *,int ); ! 1154: #endif ! 1155: ! 1156: #ifdef YY_NEED_STRLEN ! 1157: static int yy_flex_strlen (yyconst char * ); ! 1158: #endif ! 1159: ! 1160: #ifndef YY_NO_INPUT ! 1161: ! 1162: #ifdef __cplusplus ! 1163: static int yyinput (void ); ! 1164: #else ! 1165: static int input (void ); ! 1166: #endif ! 1167: ! 1168: #endif ! 1169: ! 1170: /* Amount of stuff to slurp up with each read. */ ! 1171: #ifndef YY_READ_BUF_SIZE ! 1172: #ifdef __ia64__ ! 1173: /* On IA-64, the buffer size is 16k, not 8k */ ! 1174: #define YY_READ_BUF_SIZE 16384 ! 1175: #else ! 1176: #define YY_READ_BUF_SIZE 8192 ! 1177: #endif /* __ia64__ */ ! 1178: #endif ! 1179: ! 1180: /* Copy whatever the last rule matched to the standard output. */ ! 1181: #ifndef ECHO ! 1182: /* This used to be an fputs(), but since the string might contain NUL's, ! 1183: * we now use fwrite(). ! 1184: */ ! 1185: #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) ! 1186: #endif ! 1187: ! 1188: /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, ! 1189: * is returned in "result". ! 1190: */ ! 1191: #ifndef YY_INPUT ! 1192: #define YY_INPUT(buf,result,max_size) \ ! 1193: if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ ! 1194: { \ ! 1195: int c = '*'; \ ! 1196: size_t n; \ ! 1197: for ( n = 0; n < max_size && \ ! 1198: (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ ! 1199: buf[n] = (char) c; \ ! 1200: if ( c == '\n' ) \ ! 1201: buf[n++] = (char) c; \ ! 1202: if ( c == EOF && ferror( yyin ) ) \ ! 1203: YY_FATAL_ERROR( "input in flex scanner failed" ); \ ! 1204: result = n; \ ! 1205: } \ ! 1206: else \ ! 1207: { \ ! 1208: errno=0; \ ! 1209: while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \ ! 1210: { \ ! 1211: if( errno != EINTR) \ ! 1212: { \ ! 1213: YY_FATAL_ERROR( "input in flex scanner failed" ); \ ! 1214: break; \ ! 1215: } \ ! 1216: errno=0; \ ! 1217: clearerr(yyin); \ ! 1218: } \ ! 1219: }\ ! 1220: \ ! 1221: ! 1222: #endif ! 1223: ! 1224: /* No semi-colon after return; correct usage is to write "yyterminate();" - ! 1225: * we don't want an extra ';' after the "return" because that will cause ! 1226: * some compilers to complain about unreachable statements. ! 1227: */ ! 1228: #ifndef yyterminate ! 1229: #define yyterminate() return YY_NULL ! 1230: #endif ! 1231: ! 1232: /* Number of entries by which start-condition stack grows. */ ! 1233: #ifndef YY_START_STACK_INCR ! 1234: #define YY_START_STACK_INCR 25 ! 1235: #endif ! 1236: ! 1237: /* Report a fatal error. */ ! 1238: #ifndef YY_FATAL_ERROR ! 1239: #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) ! 1240: #endif ! 1241: ! 1242: /* end tables serialization structures and prototypes */ ! 1243: ! 1244: /* Default declaration of generated scanner - a define so the user can ! 1245: * easily add parameters. ! 1246: */ ! 1247: #ifndef YY_DECL ! 1248: #define YY_DECL_IS_OURS 1 ! 1249: ! 1250: extern int yylex (void); ! 1251: ! 1252: #define YY_DECL int yylex (void) ! 1253: #endif /* !YY_DECL */ ! 1254: ! 1255: /* Code executed at the beginning of each rule, after yytext and yyleng ! 1256: * have been set up. ! 1257: */ ! 1258: #ifndef YY_USER_ACTION ! 1259: #define YY_USER_ACTION ! 1260: #endif ! 1261: ! 1262: /* Code executed at the end of each rule. */ ! 1263: #ifndef YY_BREAK ! 1264: #define YY_BREAK break; ! 1265: #endif ! 1266: ! 1267: #define YY_RULE_SETUP \ ! 1268: YY_USER_ACTION ! 1269: ! 1270: /** The main scanner function which does all the work. ! 1271: */ ! 1272: YY_DECL ! 1273: { ! 1274: register yy_state_type yy_current_state; ! 1275: register char *yy_cp, *yy_bp; ! 1276: register int yy_act; ! 1277: ! 1278: #line 115 "token.l" ! 1279: ! 1280: ! 1281: ! 1282: #line 1283 "token.c" ! 1283: ! 1284: if ( !(yy_init) ) ! 1285: { ! 1286: (yy_init) = 1; ! 1287: ! 1288: #ifdef YY_USER_INIT ! 1289: YY_USER_INIT; ! 1290: #endif ! 1291: ! 1292: if ( ! (yy_start) ) ! 1293: (yy_start) = 1; /* first start state */ ! 1294: ! 1295: if ( ! yyin ) ! 1296: yyin = stdin; ! 1297: ! 1298: if ( ! yyout ) ! 1299: yyout = stdout; ! 1300: ! 1301: if ( ! YY_CURRENT_BUFFER ) { ! 1302: yyensure_buffer_stack (); ! 1303: YY_CURRENT_BUFFER_LVALUE = ! 1304: yy_create_buffer(yyin,YY_BUF_SIZE ); ! 1305: } ! 1306: ! 1307: yy_load_buffer_state( ); ! 1308: } ! 1309: ! 1310: while ( 1 ) /* loops until end-of-file is reached */ ! 1311: { ! 1312: (yy_more_len) = 0; ! 1313: if ( (yy_more_flag) ) ! 1314: { ! 1315: (yy_more_len) = (yy_c_buf_p) - (yytext_ptr); ! 1316: (yy_more_flag) = 0; ! 1317: } ! 1318: yy_cp = (yy_c_buf_p); ! 1319: ! 1320: /* Support of yytext. */ ! 1321: *yy_cp = (yy_hold_char); ! 1322: ! 1323: /* yy_bp points to the position in yy_ch_buf of the start of ! 1324: * the current run. ! 1325: */ ! 1326: yy_bp = yy_cp; ! 1327: ! 1328: yy_current_state = (yy_start); ! 1329: yy_match: ! 1330: do ! 1331: { ! 1332: register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; ! 1333: if ( yy_accept[yy_current_state] ) ! 1334: { ! 1335: (yy_last_accepting_state) = yy_current_state; ! 1336: (yy_last_accepting_cpos) = yy_cp; ! 1337: } ! 1338: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) ! 1339: { ! 1340: yy_current_state = (int) yy_def[yy_current_state]; ! 1341: if ( yy_current_state >= 564 ) ! 1342: yy_c = yy_meta[(unsigned int) yy_c]; ! 1343: } ! 1344: yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ! 1345: ++yy_cp; ! 1346: } ! 1347: while ( yy_base[yy_current_state] != 1554 ); ! 1348: ! 1349: yy_find_action: ! 1350: yy_act = yy_accept[yy_current_state]; ! 1351: if ( yy_act == 0 ) ! 1352: { /* have to back up */ ! 1353: yy_cp = (yy_last_accepting_cpos); ! 1354: yy_current_state = (yy_last_accepting_state); ! 1355: yy_act = yy_accept[yy_current_state]; ! 1356: } ! 1357: ! 1358: YY_DO_BEFORE_ACTION; ! 1359: ! 1360: do_action: /* This label is used only to access EOF actions. */ ! 1361: ! 1362: switch ( yy_act ) ! 1363: { /* beginning of action switch */ ! 1364: case 0: /* must back up */ ! 1365: /* undo the effects of YY_DO_BEFORE_ACTION */ ! 1366: *yy_cp = (yy_hold_char); ! 1367: yy_cp = (yy_last_accepting_cpos); ! 1368: yy_current_state = (yy_last_accepting_state); ! 1369: goto yy_find_action; ! 1370: ! 1371: case 1: ! 1372: YY_RULE_SETUP ! 1373: #line 118 "token.l" ! 1374: { return(ADD); } ! 1375: YY_BREAK ! 1376: case 2: ! 1377: YY_RULE_SETUP ! 1378: #line 119 "token.l" ! 1379: { return(DELETE); } ! 1380: YY_BREAK ! 1381: case 3: ! 1382: YY_RULE_SETUP ! 1383: #line 120 "token.l" ! 1384: { return(DELETEALL); } ! 1385: YY_BREAK ! 1386: case 4: ! 1387: YY_RULE_SETUP ! 1388: #line 121 "token.l" ! 1389: { return(GET); } ! 1390: YY_BREAK ! 1391: case 5: ! 1392: YY_RULE_SETUP ! 1393: #line 122 "token.l" ! 1394: { return(FLUSH); } ! 1395: YY_BREAK ! 1396: case 6: ! 1397: YY_RULE_SETUP ! 1398: #line 123 "token.l" ! 1399: { return(DUMP); } ! 1400: YY_BREAK ! 1401: case 7: ! 1402: YY_RULE_SETUP ! 1403: #line 124 "token.l" ! 1404: { return(EXIT); } ! 1405: YY_BREAK ! 1406: case 8: ! 1407: YY_RULE_SETUP ! 1408: #line 125 "token.l" ! 1409: { return(EXIT); } ! 1410: YY_BREAK ! 1411: case 9: ! 1412: YY_RULE_SETUP ! 1413: #line 126 "token.l" ! 1414: { return(EXIT); } ! 1415: YY_BREAK ! 1416: /* for management SPD */ ! 1417: case 10: ! 1418: YY_RULE_SETUP ! 1419: #line 129 "token.l" ! 1420: { return(SPDADD); } ! 1421: YY_BREAK ! 1422: case 11: ! 1423: YY_RULE_SETUP ! 1424: #line 130 "token.l" ! 1425: { return(SPDUPDATE); } ! 1426: YY_BREAK ! 1427: case 12: ! 1428: YY_RULE_SETUP ! 1429: #line 131 "token.l" ! 1430: { return(SPDDELETE); } ! 1431: YY_BREAK ! 1432: case 13: ! 1433: YY_RULE_SETUP ! 1434: #line 132 "token.l" ! 1435: { return(SPDDUMP); } ! 1436: YY_BREAK ! 1437: case 14: ! 1438: YY_RULE_SETUP ! 1439: #line 133 "token.l" ! 1440: { return(SPDFLUSH); } ! 1441: YY_BREAK ! 1442: case 15: ! 1443: YY_RULE_SETUP ! 1444: #line 134 "token.l" ! 1445: { return(TAGGED); } ! 1446: YY_BREAK ! 1447: case 16: ! 1448: YY_RULE_SETUP ! 1449: #line 135 "token.l" ! 1450: { BEGIN S_PL; return(F_POLICY); } ! 1451: YY_BREAK ! 1452: case 17: ! 1453: /* rule 17 can match eol */ ! 1454: YY_RULE_SETUP ! 1455: #line 136 "token.l" ! 1456: { ! 1457: yymore(); ! 1458: ! 1459: /* count up for nl */ ! 1460: { ! 1461: char *p; ! 1462: for (p = yytext; *p != '\0'; p++) ! 1463: if (*p == '\n') ! 1464: lineno++; ! 1465: } ! 1466: ! 1467: yylval.val.len = strlen(yytext); ! 1468: yylval.val.buf = strdup(yytext); ! 1469: if (!yylval.val.buf) ! 1470: yyfatal("insufficient memory"); ! 1471: ! 1472: return(PL_REQUESTS); ! 1473: } ! 1474: YY_BREAK ! 1475: case 18: ! 1476: YY_RULE_SETUP ! 1477: #line 154 "token.l" ! 1478: { BEGIN INITIAL; return(EOT); } ! 1479: YY_BREAK ! 1480: /* address resolution flags */ ! 1481: case 19: ! 1482: YY_RULE_SETUP ! 1483: #line 157 "token.l" ! 1484: { ! 1485: yylval.val.len = strlen(yytext); ! 1486: yylval.val.buf = strdup(yytext); ! 1487: if (!yylval.val.buf) ! 1488: yyfatal("insufficient memory"); ! 1489: return(F_AIFLAGS); ! 1490: } ! 1491: YY_BREAK ! 1492: /* security protocols */ ! 1493: case 20: ! 1494: YY_RULE_SETUP ! 1495: #line 166 "token.l" ! 1496: { yylval.num = 0; return(PR_AH); } ! 1497: YY_BREAK ! 1498: case 21: ! 1499: YY_RULE_SETUP ! 1500: #line 167 "token.l" ! 1501: { yylval.num = 0; return(PR_ESP); } ! 1502: YY_BREAK ! 1503: case 22: ! 1504: YY_RULE_SETUP ! 1505: #line 168 "token.l" ! 1506: { yylval.num = 1; return(PR_AH); } ! 1507: YY_BREAK ! 1508: case 23: ! 1509: YY_RULE_SETUP ! 1510: #line 169 "token.l" ! 1511: { yylval.num = 1; return(PR_ESP); } ! 1512: YY_BREAK ! 1513: case 24: ! 1514: YY_RULE_SETUP ! 1515: #line 170 "token.l" ! 1516: { yylval.num = 0; return(PR_ESPUDP); } ! 1517: YY_BREAK ! 1518: case 25: ! 1519: YY_RULE_SETUP ! 1520: #line 171 "token.l" ! 1521: { yylval.num = 0; return(PR_IPCOMP); } ! 1522: YY_BREAK ! 1523: case 26: ! 1524: YY_RULE_SETUP ! 1525: #line 172 "token.l" ! 1526: { ! 1527: yylval.num = 0; return(PR_TCP); ! 1528: } ! 1529: YY_BREAK ! 1530: /* authentication alogorithm */ ! 1531: case 27: ! 1532: YY_RULE_SETUP ! 1533: #line 177 "token.l" ! 1534: { BEGIN S_AUTHALG; return(F_AUTH); } ! 1535: YY_BREAK ! 1536: case 28: ! 1537: YY_RULE_SETUP ! 1538: #line 178 "token.l" ! 1539: { yylval.num = SADB_AALG_MD5HMAC; BEGIN INITIAL; return(ALG_AUTH); } ! 1540: YY_BREAK ! 1541: case 29: ! 1542: YY_RULE_SETUP ! 1543: #line 179 "token.l" ! 1544: { yylval.num = SADB_AALG_SHA1HMAC; BEGIN INITIAL; return(ALG_AUTH); } ! 1545: YY_BREAK ! 1546: case 30: ! 1547: YY_RULE_SETUP ! 1548: #line 180 "token.l" ! 1549: { yylval.num = SADB_X_AALG_MD5; BEGIN INITIAL; return(ALG_AUTH); } ! 1550: YY_BREAK ! 1551: case 31: ! 1552: YY_RULE_SETUP ! 1553: #line 181 "token.l" ! 1554: { yylval.num = SADB_X_AALG_SHA; BEGIN INITIAL; return(ALG_AUTH); } ! 1555: YY_BREAK ! 1556: case 32: ! 1557: YY_RULE_SETUP ! 1558: #line 182 "token.l" ! 1559: { yylval.num = SADB_X_AALG_SHA2_256; BEGIN INITIAL; return(ALG_AUTH); } ! 1560: YY_BREAK ! 1561: case 33: ! 1562: YY_RULE_SETUP ! 1563: #line 183 "token.l" ! 1564: { yylval.num = SADB_X_AALG_SHA2_256; BEGIN INITIAL; return(ALG_AUTH); } ! 1565: YY_BREAK ! 1566: case 34: ! 1567: YY_RULE_SETUP ! 1568: #line 184 "token.l" ! 1569: { yylval.num = SADB_X_AALG_SHA2_384; BEGIN INITIAL; return(ALG_AUTH); } ! 1570: YY_BREAK ! 1571: case 35: ! 1572: YY_RULE_SETUP ! 1573: #line 185 "token.l" ! 1574: { yylval.num = SADB_X_AALG_SHA2_384; BEGIN INITIAL; return(ALG_AUTH); } ! 1575: YY_BREAK ! 1576: case 36: ! 1577: YY_RULE_SETUP ! 1578: #line 186 "token.l" ! 1579: { yylval.num = SADB_X_AALG_SHA2_512; BEGIN INITIAL; return(ALG_AUTH); } ! 1580: YY_BREAK ! 1581: case 37: ! 1582: YY_RULE_SETUP ! 1583: #line 187 "token.l" ! 1584: { yylval.num = SADB_X_AALG_SHA2_512; BEGIN INITIAL; return(ALG_AUTH); } ! 1585: YY_BREAK ! 1586: case 38: ! 1587: YY_RULE_SETUP ! 1588: #line 188 "token.l" ! 1589: { yylval.num = SADB_X_AALG_RIPEMD160HMAC; BEGIN INITIAL; return(ALG_AUTH); } ! 1590: YY_BREAK ! 1591: case 39: ! 1592: YY_RULE_SETUP ! 1593: #line 189 "token.l" ! 1594: { yylval.num = SADB_X_AALG_AES_XCBC_MAC; BEGIN INITIAL; return(ALG_AUTH); } ! 1595: YY_BREAK ! 1596: case 40: ! 1597: YY_RULE_SETUP ! 1598: #line 190 "token.l" ! 1599: { ! 1600: #ifdef SADB_X_AALG_TCP_MD5 ! 1601: yylval.num = SADB_X_AALG_TCP_MD5; ! 1602: BEGIN INITIAL; ! 1603: return(ALG_AUTH); ! 1604: #endif ! 1605: } ! 1606: YY_BREAK ! 1607: case 41: ! 1608: YY_RULE_SETUP ! 1609: #line 197 "token.l" ! 1610: { yylval.num = SADB_X_AALG_NULL; BEGIN INITIAL; return(ALG_AUTH_NOKEY); } ! 1611: YY_BREAK ! 1612: /* encryption alogorithm */ ! 1613: case 42: ! 1614: YY_RULE_SETUP ! 1615: #line 200 "token.l" ! 1616: { BEGIN S_ENCALG; return(F_ENC); } ! 1617: YY_BREAK ! 1618: case 43: ! 1619: YY_RULE_SETUP ! 1620: #line 201 "token.l" ! 1621: { yylval.num = SADB_EALG_DESCBC; BEGIN INITIAL; return(ALG_ENC); } ! 1622: YY_BREAK ! 1623: case 44: ! 1624: YY_RULE_SETUP ! 1625: #line 202 "token.l" ! 1626: { yylval.num = SADB_EALG_3DESCBC; BEGIN INITIAL; return(ALG_ENC); } ! 1627: YY_BREAK ! 1628: case 45: ! 1629: YY_RULE_SETUP ! 1630: #line 203 "token.l" ! 1631: { yylval.num = SADB_EALG_NULL; BEGIN INITIAL; return(ALG_ENC_NOKEY); } ! 1632: YY_BREAK ! 1633: case 46: ! 1634: YY_RULE_SETUP ! 1635: #line 204 "token.l" ! 1636: { yylval.num = SADB_EALG_NULL; BEGIN INITIAL; return(ALG_ENC_OLD); } ! 1637: YY_BREAK ! 1638: case 47: ! 1639: YY_RULE_SETUP ! 1640: #line 205 "token.l" ! 1641: { yylval.num = SADB_X_EALG_BLOWFISHCBC; BEGIN INITIAL; return(ALG_ENC); } ! 1642: YY_BREAK ! 1643: case 48: ! 1644: YY_RULE_SETUP ! 1645: #line 206 "token.l" ! 1646: { yylval.num = SADB_X_EALG_CAST128CBC; BEGIN INITIAL; return(ALG_ENC); } ! 1647: YY_BREAK ! 1648: case 49: ! 1649: YY_RULE_SETUP ! 1650: #line 207 "token.l" ! 1651: { yylval.num = SADB_EALG_DESCBC; BEGIN INITIAL; return(ALG_ENC_DESDERIV); } ! 1652: YY_BREAK ! 1653: case 50: ! 1654: YY_RULE_SETUP ! 1655: #line 208 "token.l" ! 1656: { yylval.num = SADB_EALG_DESCBC; BEGIN INITIAL; return(ALG_ENC_DES32IV); } ! 1657: YY_BREAK ! 1658: case 51: ! 1659: YY_RULE_SETUP ! 1660: #line 209 "token.l" ! 1661: { yylval.num = SADB_X_EALG_TWOFISHCBC; BEGIN INITIAL; return(ALG_ENC); } ! 1662: YY_BREAK ! 1663: case 52: ! 1664: YY_RULE_SETUP ! 1665: #line 210 "token.l" ! 1666: { ! 1667: #ifdef SADB_X_EALG_AESCBC ! 1668: yylval.num = SADB_X_EALG_AESCBC; BEGIN INITIAL; return(ALG_ENC); ! 1669: #endif ! 1670: } ! 1671: YY_BREAK ! 1672: case 53: ! 1673: YY_RULE_SETUP ! 1674: #line 215 "token.l" ! 1675: { ! 1676: #ifdef SADB_X_EALG_AESCBC ! 1677: yylval.num = SADB_X_EALG_AESCBC; BEGIN INITIAL; return(ALG_ENC); ! 1678: #endif ! 1679: } ! 1680: YY_BREAK ! 1681: case 54: ! 1682: YY_RULE_SETUP ! 1683: #line 220 "token.l" ! 1684: { yylval.num = SADB_X_EALG_AESCTR; BEGIN INITIAL; return(ALG_ENC); } ! 1685: YY_BREAK ! 1686: case 55: ! 1687: YY_RULE_SETUP ! 1688: #line 221 "token.l" ! 1689: { ! 1690: #ifdef SADB_X_EALG_CAMELLIACBC ! 1691: yylval.num = SADB_X_EALG_CAMELLIACBC; BEGIN INITIAL; return(ALG_ENC); ! 1692: #endif ! 1693: } ! 1694: YY_BREAK ! 1695: /* compression algorithms */ ! 1696: case 56: ! 1697: YY_RULE_SETUP ! 1698: #line 228 "token.l" ! 1699: { return(F_COMP); } ! 1700: YY_BREAK ! 1701: case 57: ! 1702: YY_RULE_SETUP ! 1703: #line 229 "token.l" ! 1704: { yylval.num = SADB_X_CALG_OUI; return(ALG_COMP); } ! 1705: YY_BREAK ! 1706: case 58: ! 1707: YY_RULE_SETUP ! 1708: #line 230 "token.l" ! 1709: { yylval.num = SADB_X_CALG_DEFLATE; return(ALG_COMP); } ! 1710: YY_BREAK ! 1711: case 59: ! 1712: YY_RULE_SETUP ! 1713: #line 231 "token.l" ! 1714: { yylval.num = SADB_X_CALG_LZS; return(ALG_COMP); } ! 1715: YY_BREAK ! 1716: case 60: ! 1717: YY_RULE_SETUP ! 1718: #line 232 "token.l" ! 1719: { return(F_RAWCPI); } ! 1720: YY_BREAK ! 1721: /* extension */ ! 1722: case 61: ! 1723: YY_RULE_SETUP ! 1724: #line 235 "token.l" ! 1725: { return(F_MODE); } ! 1726: YY_BREAK ! 1727: case 62: ! 1728: YY_RULE_SETUP ! 1729: #line 236 "token.l" ! 1730: { yylval.num = IPSEC_MODE_TRANSPORT; return(MODE); } ! 1731: YY_BREAK ! 1732: case 63: ! 1733: YY_RULE_SETUP ! 1734: #line 237 "token.l" ! 1735: { yylval.num = IPSEC_MODE_TUNNEL; return(MODE); } ! 1736: YY_BREAK ! 1737: case 64: ! 1738: YY_RULE_SETUP ! 1739: #line 238 "token.l" ! 1740: { return(F_REQID); } ! 1741: YY_BREAK ! 1742: case 65: ! 1743: YY_RULE_SETUP ! 1744: #line 239 "token.l" ! 1745: { return(F_EXT); } ! 1746: YY_BREAK ! 1747: case 66: ! 1748: YY_RULE_SETUP ! 1749: #line 240 "token.l" ! 1750: { yylval.num = SADB_X_EXT_PRAND; return(EXTENSION); } ! 1751: YY_BREAK ! 1752: case 67: ! 1753: YY_RULE_SETUP ! 1754: #line 241 "token.l" ! 1755: { yylval.num = SADB_X_EXT_PSEQ; return(EXTENSION); } ! 1756: YY_BREAK ! 1757: case 68: ! 1758: YY_RULE_SETUP ! 1759: #line 242 "token.l" ! 1760: { yylval.num = SADB_X_EXT_PZERO; return(EXTENSION); } ! 1761: YY_BREAK ! 1762: case 69: ! 1763: YY_RULE_SETUP ! 1764: #line 243 "token.l" ! 1765: { return(NOCYCLICSEQ); } ! 1766: YY_BREAK ! 1767: case 70: ! 1768: YY_RULE_SETUP ! 1769: #line 244 "token.l" ! 1770: { return(F_REPLAY); } ! 1771: YY_BREAK ! 1772: case 71: ! 1773: YY_RULE_SETUP ! 1774: #line 245 "token.l" ! 1775: { return(F_LIFETIME_HARD); } ! 1776: YY_BREAK ! 1777: case 72: ! 1778: YY_RULE_SETUP ! 1779: #line 246 "token.l" ! 1780: { return(F_LIFETIME_SOFT); } ! 1781: YY_BREAK ! 1782: case 73: ! 1783: YY_RULE_SETUP ! 1784: #line 247 "token.l" ! 1785: { return(F_LIFEBYTE_HARD); } ! 1786: YY_BREAK ! 1787: case 74: ! 1788: YY_RULE_SETUP ! 1789: #line 248 "token.l" ! 1790: { return(F_LIFEBYTE_SOFT); } ! 1791: YY_BREAK ! 1792: case 75: ! 1793: YY_RULE_SETUP ! 1794: #line 249 "token.l" ! 1795: { return(SECURITY_CTX); } ! 1796: YY_BREAK ! 1797: /* ... */ ! 1798: case 76: ! 1799: YY_RULE_SETUP ! 1800: #line 252 "token.l" ! 1801: { return(ANY); } ! 1802: YY_BREAK ! 1803: case 77: ! 1804: YY_RULE_SETUP ! 1805: #line 253 "token.l" ! 1806: { } ! 1807: YY_BREAK ! 1808: case 78: ! 1809: /* rule 78 can match eol */ ! 1810: YY_RULE_SETUP ! 1811: #line 254 "token.l" ! 1812: { lineno++; } ! 1813: YY_BREAK ! 1814: case 79: ! 1815: YY_RULE_SETUP ! 1816: #line 255 "token.l" ! 1817: ! 1818: YY_BREAK ! 1819: case 80: ! 1820: YY_RULE_SETUP ! 1821: #line 256 "token.l" ! 1822: { return(EOT); } ! 1823: YY_BREAK ! 1824: /* for address parameters: /prefix, [port] */ ! 1825: case 81: ! 1826: YY_RULE_SETUP ! 1827: #line 259 "token.l" ! 1828: { return SLASH; } ! 1829: YY_BREAK ! 1830: case 82: ! 1831: YY_RULE_SETUP ! 1832: #line 260 "token.l" ! 1833: { return BLCL; } ! 1834: YY_BREAK ! 1835: case 83: ! 1836: YY_RULE_SETUP ! 1837: #line 261 "token.l" ! 1838: { return ELCL; } ! 1839: YY_BREAK ! 1840: /* parameter */ ! 1841: case 84: ! 1842: YY_RULE_SETUP ! 1843: #line 264 "token.l" ! 1844: { ! 1845: char *bp; ! 1846: ! 1847: yylval.ulnum = strtoul(yytext, &bp, 10); ! 1848: return(DECSTRING); ! 1849: } ! 1850: YY_BREAK ! 1851: case 85: ! 1852: YY_RULE_SETUP ! 1853: #line 271 "token.l" ! 1854: { ! 1855: yylval.val.buf = strdup(yytext + 2); ! 1856: if (!yylval.val.buf) ! 1857: yyfatal("insufficient memory"); ! 1858: yylval.val.len = strlen(yylval.val.buf); ! 1859: ! 1860: return(HEXSTRING); ! 1861: } ! 1862: YY_BREAK ! 1863: case 86: ! 1864: /* rule 86 can match eol */ ! 1865: YY_RULE_SETUP ! 1866: #line 280 "token.l" ! 1867: { ! 1868: char *p = yytext; ! 1869: while (*++p != '"') ; ! 1870: *p = '\0'; ! 1871: yytext++; ! 1872: yylval.val.len = yyleng - 2; ! 1873: yylval.val.buf = strdup(yytext); ! 1874: if (!yylval.val.buf) ! 1875: yyfatal("insufficient memory"); ! 1876: ! 1877: return(QUOTEDSTRING); ! 1878: } ! 1879: YY_BREAK ! 1880: case 87: ! 1881: YY_RULE_SETUP ! 1882: #line 293 "token.l" ! 1883: { ! 1884: yylval.val.len = yyleng; ! 1885: yylval.val.buf = strdup(yytext); ! 1886: if (!yylval.val.buf) ! 1887: yyfatal("insufficient memory"); ! 1888: return(STRING); ! 1889: } ! 1890: YY_BREAK ! 1891: case 88: ! 1892: YY_RULE_SETUP ! 1893: #line 301 "token.l" ! 1894: { ! 1895: yylval.val.len = yyleng; ! 1896: yylval.val.buf = strdup(yytext); ! 1897: if (!yylval.val.buf) ! 1898: yyfatal("insufficient memory"); ! 1899: return(STRING); ! 1900: } ! 1901: YY_BREAK ! 1902: case 89: ! 1903: YY_RULE_SETUP ! 1904: #line 309 "token.l" ! 1905: { ! 1906: yyfatal("Syntax error"); ! 1907: /*NOTREACHED*/ ! 1908: } ! 1909: YY_BREAK ! 1910: case 90: ! 1911: YY_RULE_SETUP ! 1912: #line 314 "token.l" ! 1913: ECHO; ! 1914: YY_BREAK ! 1915: #line 1916 "token.c" ! 1916: case YY_STATE_EOF(INITIAL): ! 1917: case YY_STATE_EOF(S_PL): ! 1918: case YY_STATE_EOF(S_AUTHALG): ! 1919: case YY_STATE_EOF(S_ENCALG): ! 1920: yyterminate(); ! 1921: ! 1922: case YY_END_OF_BUFFER: ! 1923: { ! 1924: /* Amount of text matched not including the EOB char. */ ! 1925: int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; ! 1926: ! 1927: /* Undo the effects of YY_DO_BEFORE_ACTION. */ ! 1928: *yy_cp = (yy_hold_char); ! 1929: YY_RESTORE_YY_MORE_OFFSET ! 1930: ! 1931: if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) ! 1932: { ! 1933: /* We're scanning a new file or input source. It's ! 1934: * possible that this happened because the user ! 1935: * just pointed yyin at a new source and called ! 1936: * yylex(). If so, then we have to assure ! 1937: * consistency between YY_CURRENT_BUFFER and our ! 1938: * globals. Here is the right place to do so, because ! 1939: * this is the first action (other than possibly a ! 1940: * back-up) that will match for the new input source. ! 1941: */ ! 1942: (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; ! 1943: YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; ! 1944: YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; ! 1945: } ! 1946: ! 1947: /* Note that here we test for yy_c_buf_p "<=" to the position ! 1948: * of the first EOB in the buffer, since yy_c_buf_p will ! 1949: * already have been incremented past the NUL character ! 1950: * (since all states make transitions on EOB to the ! 1951: * end-of-buffer state). Contrast this with the test ! 1952: * in input(). ! 1953: */ ! 1954: if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) ! 1955: { /* This was really a NUL. */ ! 1956: yy_state_type yy_next_state; ! 1957: ! 1958: (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; ! 1959: ! 1960: yy_current_state = yy_get_previous_state( ); ! 1961: ! 1962: /* Okay, we're now positioned to make the NUL ! 1963: * transition. We couldn't have ! 1964: * yy_get_previous_state() go ahead and do it ! 1965: * for us because it doesn't know how to deal ! 1966: * with the possibility of jamming (and we don't ! 1967: * want to build jamming into it because then it ! 1968: * will run more slowly). ! 1969: */ ! 1970: ! 1971: yy_next_state = yy_try_NUL_trans( yy_current_state ); ! 1972: ! 1973: yy_bp = (yytext_ptr) + YY_MORE_ADJ; ! 1974: ! 1975: if ( yy_next_state ) ! 1976: { ! 1977: /* Consume the NUL. */ ! 1978: yy_cp = ++(yy_c_buf_p); ! 1979: yy_current_state = yy_next_state; ! 1980: goto yy_match; ! 1981: } ! 1982: ! 1983: else ! 1984: { ! 1985: yy_cp = (yy_c_buf_p); ! 1986: goto yy_find_action; ! 1987: } ! 1988: } ! 1989: ! 1990: else switch ( yy_get_next_buffer( ) ) ! 1991: { ! 1992: case EOB_ACT_END_OF_FILE: ! 1993: { ! 1994: (yy_did_buffer_switch_on_eof) = 0; ! 1995: ! 1996: if ( yywrap( ) ) ! 1997: { ! 1998: /* Note: because we've taken care in ! 1999: * yy_get_next_buffer() to have set up ! 2000: * yytext, we can now set up ! 2001: * yy_c_buf_p so that if some total ! 2002: * hoser (like flex itself) wants to ! 2003: * call the scanner after we return the ! 2004: * YY_NULL, it'll still work - another ! 2005: * YY_NULL will get returned. ! 2006: */ ! 2007: (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; ! 2008: ! 2009: yy_act = YY_STATE_EOF(YY_START); ! 2010: goto do_action; ! 2011: } ! 2012: ! 2013: else ! 2014: { ! 2015: if ( ! (yy_did_buffer_switch_on_eof) ) ! 2016: YY_NEW_FILE; ! 2017: } ! 2018: break; ! 2019: } ! 2020: ! 2021: case EOB_ACT_CONTINUE_SCAN: ! 2022: (yy_c_buf_p) = ! 2023: (yytext_ptr) + yy_amount_of_matched_text; ! 2024: ! 2025: yy_current_state = yy_get_previous_state( ); ! 2026: ! 2027: yy_cp = (yy_c_buf_p); ! 2028: yy_bp = (yytext_ptr) + YY_MORE_ADJ; ! 2029: goto yy_match; ! 2030: ! 2031: case EOB_ACT_LAST_MATCH: ! 2032: (yy_c_buf_p) = ! 2033: &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; ! 2034: ! 2035: yy_current_state = yy_get_previous_state( ); ! 2036: ! 2037: yy_cp = (yy_c_buf_p); ! 2038: yy_bp = (yytext_ptr) + YY_MORE_ADJ; ! 2039: goto yy_find_action; ! 2040: } ! 2041: break; ! 2042: } ! 2043: ! 2044: default: ! 2045: YY_FATAL_ERROR( ! 2046: "fatal flex scanner internal error--no action found" ); ! 2047: } /* end of action switch */ ! 2048: } /* end of scanning one token */ ! 2049: } /* end of yylex */ ! 2050: ! 2051: /* yy_get_next_buffer - try to read in a new buffer ! 2052: * ! 2053: * Returns a code representing an action: ! 2054: * EOB_ACT_LAST_MATCH - ! 2055: * EOB_ACT_CONTINUE_SCAN - continue scanning from current position ! 2056: * EOB_ACT_END_OF_FILE - end of file ! 2057: */ ! 2058: static int yy_get_next_buffer (void) ! 2059: { ! 2060: register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; ! 2061: register char *source = (yytext_ptr); ! 2062: register int number_to_move, i; ! 2063: int ret_val; ! 2064: ! 2065: if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) ! 2066: YY_FATAL_ERROR( ! 2067: "fatal flex scanner internal error--end of buffer missed" ); ! 2068: ! 2069: if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) ! 2070: { /* Don't try to fill the buffer, so this is an EOF. */ ! 2071: if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) ! 2072: { ! 2073: /* We matched a single character, the EOB, so ! 2074: * treat this as a final EOF. ! 2075: */ ! 2076: return EOB_ACT_END_OF_FILE; ! 2077: } ! 2078: ! 2079: else ! 2080: { ! 2081: /* We matched some text prior to the EOB, first ! 2082: * process it. ! 2083: */ ! 2084: return EOB_ACT_LAST_MATCH; ! 2085: } ! 2086: } ! 2087: ! 2088: /* Try to read more data. */ ! 2089: ! 2090: /* First move last chars to start of buffer. */ ! 2091: number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; ! 2092: ! 2093: for ( i = 0; i < number_to_move; ++i ) ! 2094: *(dest++) = *(source++); ! 2095: ! 2096: if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) ! 2097: /* don't do the read, it's not guaranteed to return an EOF, ! 2098: * just force an EOF ! 2099: */ ! 2100: YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; ! 2101: ! 2102: else ! 2103: { ! 2104: int num_to_read = ! 2105: YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; ! 2106: ! 2107: while ( num_to_read <= 0 ) ! 2108: { /* Not enough room in the buffer - grow it. */ ! 2109: ! 2110: /* just a shorter name for the current buffer */ ! 2111: YY_BUFFER_STATE b = YY_CURRENT_BUFFER; ! 2112: ! 2113: int yy_c_buf_p_offset = ! 2114: (int) ((yy_c_buf_p) - b->yy_ch_buf); ! 2115: ! 2116: if ( b->yy_is_our_buffer ) ! 2117: { ! 2118: int new_size = b->yy_buf_size * 2; ! 2119: ! 2120: if ( new_size <= 0 ) ! 2121: b->yy_buf_size += b->yy_buf_size / 8; ! 2122: else ! 2123: b->yy_buf_size *= 2; ! 2124: ! 2125: b->yy_ch_buf = (char *) ! 2126: /* Include room in for 2 EOB chars. */ ! 2127: yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); ! 2128: } ! 2129: else ! 2130: /* Can't grow it, we don't own it. */ ! 2131: b->yy_ch_buf = 0; ! 2132: ! 2133: if ( ! b->yy_ch_buf ) ! 2134: YY_FATAL_ERROR( ! 2135: "fatal error - scanner input buffer overflow" ); ! 2136: ! 2137: (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; ! 2138: ! 2139: num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - ! 2140: number_to_move - 1; ! 2141: ! 2142: } ! 2143: ! 2144: if ( num_to_read > YY_READ_BUF_SIZE ) ! 2145: num_to_read = YY_READ_BUF_SIZE; ! 2146: ! 2147: /* Read in more data. */ ! 2148: YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), ! 2149: (yy_n_chars), (size_t) num_to_read ); ! 2150: ! 2151: YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); ! 2152: } ! 2153: ! 2154: if ( (yy_n_chars) == 0 ) ! 2155: { ! 2156: if ( number_to_move == YY_MORE_ADJ ) ! 2157: { ! 2158: ret_val = EOB_ACT_END_OF_FILE; ! 2159: yyrestart(yyin ); ! 2160: } ! 2161: ! 2162: else ! 2163: { ! 2164: ret_val = EOB_ACT_LAST_MATCH; ! 2165: YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = ! 2166: YY_BUFFER_EOF_PENDING; ! 2167: } ! 2168: } ! 2169: ! 2170: else ! 2171: ret_val = EOB_ACT_CONTINUE_SCAN; ! 2172: ! 2173: if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { ! 2174: /* Extend the array by 50%, plus the number we really need. */ ! 2175: yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); ! 2176: YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); ! 2177: if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) ! 2178: YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); ! 2179: } ! 2180: ! 2181: (yy_n_chars) += number_to_move; ! 2182: YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; ! 2183: YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; ! 2184: ! 2185: (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; ! 2186: ! 2187: return ret_val; ! 2188: } ! 2189: ! 2190: /* yy_get_previous_state - get the state just before the EOB char was reached */ ! 2191: ! 2192: static yy_state_type yy_get_previous_state (void) ! 2193: { ! 2194: register yy_state_type yy_current_state; ! 2195: register char *yy_cp; ! 2196: ! 2197: yy_current_state = (yy_start); ! 2198: ! 2199: for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) ! 2200: { ! 2201: register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); ! 2202: if ( yy_accept[yy_current_state] ) ! 2203: { ! 2204: (yy_last_accepting_state) = yy_current_state; ! 2205: (yy_last_accepting_cpos) = yy_cp; ! 2206: } ! 2207: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) ! 2208: { ! 2209: yy_current_state = (int) yy_def[yy_current_state]; ! 2210: if ( yy_current_state >= 564 ) ! 2211: yy_c = yy_meta[(unsigned int) yy_c]; ! 2212: } ! 2213: yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ! 2214: } ! 2215: ! 2216: return yy_current_state; ! 2217: } ! 2218: ! 2219: /* yy_try_NUL_trans - try to make a transition on the NUL character ! 2220: * ! 2221: * synopsis ! 2222: * next_state = yy_try_NUL_trans( current_state ); ! 2223: */ ! 2224: static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) ! 2225: { ! 2226: register int yy_is_jam; ! 2227: register char *yy_cp = (yy_c_buf_p); ! 2228: ! 2229: register YY_CHAR yy_c = 1; ! 2230: if ( yy_accept[yy_current_state] ) ! 2231: { ! 2232: (yy_last_accepting_state) = yy_current_state; ! 2233: (yy_last_accepting_cpos) = yy_cp; ! 2234: } ! 2235: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) ! 2236: { ! 2237: yy_current_state = (int) yy_def[yy_current_state]; ! 2238: if ( yy_current_state >= 564 ) ! 2239: yy_c = yy_meta[(unsigned int) yy_c]; ! 2240: } ! 2241: yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ! 2242: yy_is_jam = (yy_current_state == 563); ! 2243: ! 2244: return yy_is_jam ? 0 : yy_current_state; ! 2245: } ! 2246: ! 2247: #ifndef YY_NO_INPUT ! 2248: #ifdef __cplusplus ! 2249: static int yyinput (void) ! 2250: #else ! 2251: static int input (void) ! 2252: #endif ! 2253: ! 2254: { ! 2255: int c; ! 2256: ! 2257: *(yy_c_buf_p) = (yy_hold_char); ! 2258: ! 2259: if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) ! 2260: { ! 2261: /* yy_c_buf_p now points to the character we want to return. ! 2262: * If this occurs *before* the EOB characters, then it's a ! 2263: * valid NUL; if not, then we've hit the end of the buffer. ! 2264: */ ! 2265: if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) ! 2266: /* This was really a NUL. */ ! 2267: *(yy_c_buf_p) = '\0'; ! 2268: ! 2269: else ! 2270: { /* need more input */ ! 2271: int offset = (yy_c_buf_p) - (yytext_ptr); ! 2272: ++(yy_c_buf_p); ! 2273: ! 2274: switch ( yy_get_next_buffer( ) ) ! 2275: { ! 2276: case EOB_ACT_LAST_MATCH: ! 2277: /* This happens because yy_g_n_b() ! 2278: * sees that we've accumulated a ! 2279: * token and flags that we need to ! 2280: * try matching the token before ! 2281: * proceeding. But for input(), ! 2282: * there's no matching to consider. ! 2283: * So convert the EOB_ACT_LAST_MATCH ! 2284: * to EOB_ACT_END_OF_FILE. ! 2285: */ ! 2286: ! 2287: /* Reset buffer status. */ ! 2288: yyrestart(yyin ); ! 2289: ! 2290: /*FALLTHROUGH*/ ! 2291: ! 2292: case EOB_ACT_END_OF_FILE: ! 2293: { ! 2294: if ( yywrap( ) ) ! 2295: return EOF; ! 2296: ! 2297: if ( ! (yy_did_buffer_switch_on_eof) ) ! 2298: YY_NEW_FILE; ! 2299: #ifdef __cplusplus ! 2300: return yyinput(); ! 2301: #else ! 2302: return input(); ! 2303: #endif ! 2304: } ! 2305: ! 2306: case EOB_ACT_CONTINUE_SCAN: ! 2307: (yy_c_buf_p) = (yytext_ptr) + offset; ! 2308: break; ! 2309: } ! 2310: } ! 2311: } ! 2312: ! 2313: c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ ! 2314: *(yy_c_buf_p) = '\0'; /* preserve yytext */ ! 2315: (yy_hold_char) = *++(yy_c_buf_p); ! 2316: ! 2317: return c; ! 2318: } ! 2319: #endif /* ifndef YY_NO_INPUT */ ! 2320: ! 2321: /** Immediately switch to a different input stream. ! 2322: * @param input_file A readable stream. ! 2323: * ! 2324: * @note This function does not reset the start condition to @c INITIAL . ! 2325: */ ! 2326: void yyrestart (FILE * input_file ) ! 2327: { ! 2328: ! 2329: if ( ! YY_CURRENT_BUFFER ){ ! 2330: yyensure_buffer_stack (); ! 2331: YY_CURRENT_BUFFER_LVALUE = ! 2332: yy_create_buffer(yyin,YY_BUF_SIZE ); ! 2333: } ! 2334: ! 2335: yy_init_buffer(YY_CURRENT_BUFFER,input_file ); ! 2336: yy_load_buffer_state( ); ! 2337: } ! 2338: ! 2339: /** Switch to a different input buffer. ! 2340: * @param new_buffer The new input buffer. ! 2341: * ! 2342: */ ! 2343: void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) ! 2344: { ! 2345: ! 2346: /* TODO. We should be able to replace this entire function body ! 2347: * with ! 2348: * yypop_buffer_state(); ! 2349: * yypush_buffer_state(new_buffer); ! 2350: */ ! 2351: yyensure_buffer_stack (); ! 2352: if ( YY_CURRENT_BUFFER == new_buffer ) ! 2353: return; ! 2354: ! 2355: if ( YY_CURRENT_BUFFER ) ! 2356: { ! 2357: /* Flush out information for old buffer. */ ! 2358: *(yy_c_buf_p) = (yy_hold_char); ! 2359: YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); ! 2360: YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); ! 2361: } ! 2362: ! 2363: YY_CURRENT_BUFFER_LVALUE = new_buffer; ! 2364: yy_load_buffer_state( ); ! 2365: ! 2366: /* We don't actually know whether we did this switch during ! 2367: * EOF (yywrap()) processing, but the only time this flag ! 2368: * is looked at is after yywrap() is called, so it's safe ! 2369: * to go ahead and always set it. ! 2370: */ ! 2371: (yy_did_buffer_switch_on_eof) = 1; ! 2372: } ! 2373: ! 2374: static void yy_load_buffer_state (void) ! 2375: { ! 2376: (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; ! 2377: (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; ! 2378: yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; ! 2379: (yy_hold_char) = *(yy_c_buf_p); ! 2380: } ! 2381: ! 2382: /** Allocate and initialize an input buffer state. ! 2383: * @param file A readable stream. ! 2384: * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. ! 2385: * ! 2386: * @return the allocated buffer state. ! 2387: */ ! 2388: YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) ! 2389: { ! 2390: YY_BUFFER_STATE b; ! 2391: ! 2392: b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); ! 2393: if ( ! b ) ! 2394: YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); ! 2395: ! 2396: b->yy_buf_size = size; ! 2397: ! 2398: /* yy_ch_buf has to be 2 characters longer than the size given because ! 2399: * we need to put in 2 end-of-buffer characters. ! 2400: */ ! 2401: b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 ); ! 2402: if ( ! b->yy_ch_buf ) ! 2403: YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); ! 2404: ! 2405: b->yy_is_our_buffer = 1; ! 2406: ! 2407: yy_init_buffer(b,file ); ! 2408: ! 2409: return b; ! 2410: } ! 2411: ! 2412: /** Destroy the buffer. ! 2413: * @param b a buffer created with yy_create_buffer() ! 2414: * ! 2415: */ ! 2416: void yy_delete_buffer (YY_BUFFER_STATE b ) ! 2417: { ! 2418: ! 2419: if ( ! b ) ! 2420: return; ! 2421: ! 2422: if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ ! 2423: YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; ! 2424: ! 2425: if ( b->yy_is_our_buffer ) ! 2426: yyfree((void *) b->yy_ch_buf ); ! 2427: ! 2428: yyfree((void *) b ); ! 2429: } ! 2430: ! 2431: #ifndef __cplusplus ! 2432: extern int isatty (int ); ! 2433: #endif /* __cplusplus */ ! 2434: ! 2435: /* Initializes or reinitializes a buffer. ! 2436: * This function is sometimes called more than once on the same buffer, ! 2437: * such as during a yyrestart() or at EOF. ! 2438: */ ! 2439: static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) ! 2440: ! 2441: { ! 2442: int oerrno = errno; ! 2443: ! 2444: yy_flush_buffer(b ); ! 2445: ! 2446: b->yy_input_file = file; ! 2447: b->yy_fill_buffer = 1; ! 2448: ! 2449: /* If b is the current buffer, then yy_init_buffer was _probably_ ! 2450: * called from yyrestart() or through yy_get_next_buffer. ! 2451: * In that case, we don't want to reset the lineno or column. ! 2452: */ ! 2453: if (b != YY_CURRENT_BUFFER){ ! 2454: b->yy_bs_lineno = 1; ! 2455: b->yy_bs_column = 0; ! 2456: } ! 2457: ! 2458: b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; ! 2459: ! 2460: errno = oerrno; ! 2461: } ! 2462: ! 2463: /** Discard all buffered characters. On the next scan, YY_INPUT will be called. ! 2464: * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. ! 2465: * ! 2466: */ ! 2467: void yy_flush_buffer (YY_BUFFER_STATE b ) ! 2468: { ! 2469: if ( ! b ) ! 2470: return; ! 2471: ! 2472: b->yy_n_chars = 0; ! 2473: ! 2474: /* We always need two end-of-buffer characters. The first causes ! 2475: * a transition to the end-of-buffer state. The second causes ! 2476: * a jam in that state. ! 2477: */ ! 2478: b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; ! 2479: b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; ! 2480: ! 2481: b->yy_buf_pos = &b->yy_ch_buf[0]; ! 2482: ! 2483: b->yy_at_bol = 1; ! 2484: b->yy_buffer_status = YY_BUFFER_NEW; ! 2485: ! 2486: if ( b == YY_CURRENT_BUFFER ) ! 2487: yy_load_buffer_state( ); ! 2488: } ! 2489: ! 2490: /** Pushes the new state onto the stack. The new state becomes ! 2491: * the current state. This function will allocate the stack ! 2492: * if necessary. ! 2493: * @param new_buffer The new state. ! 2494: * ! 2495: */ ! 2496: void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) ! 2497: { ! 2498: if (new_buffer == NULL) ! 2499: return; ! 2500: ! 2501: yyensure_buffer_stack(); ! 2502: ! 2503: /* This block is copied from yy_switch_to_buffer. */ ! 2504: if ( YY_CURRENT_BUFFER ) ! 2505: { ! 2506: /* Flush out information for old buffer. */ ! 2507: *(yy_c_buf_p) = (yy_hold_char); ! 2508: YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); ! 2509: YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); ! 2510: } ! 2511: ! 2512: /* Only push if top exists. Otherwise, replace top. */ ! 2513: if (YY_CURRENT_BUFFER) ! 2514: (yy_buffer_stack_top)++; ! 2515: YY_CURRENT_BUFFER_LVALUE = new_buffer; ! 2516: ! 2517: /* copied from yy_switch_to_buffer. */ ! 2518: yy_load_buffer_state( ); ! 2519: (yy_did_buffer_switch_on_eof) = 1; ! 2520: } ! 2521: ! 2522: /** Removes and deletes the top of the stack, if present. ! 2523: * The next element becomes the new top. ! 2524: * ! 2525: */ ! 2526: void yypop_buffer_state (void) ! 2527: { ! 2528: if (!YY_CURRENT_BUFFER) ! 2529: return; ! 2530: ! 2531: yy_delete_buffer(YY_CURRENT_BUFFER ); ! 2532: YY_CURRENT_BUFFER_LVALUE = NULL; ! 2533: if ((yy_buffer_stack_top) > 0) ! 2534: --(yy_buffer_stack_top); ! 2535: ! 2536: if (YY_CURRENT_BUFFER) { ! 2537: yy_load_buffer_state( ); ! 2538: (yy_did_buffer_switch_on_eof) = 1; ! 2539: } ! 2540: } ! 2541: ! 2542: /* Allocates the stack if it does not exist. ! 2543: * Guarantees space for at least one push. ! 2544: */ ! 2545: static void yyensure_buffer_stack (void) ! 2546: { ! 2547: int num_to_alloc; ! 2548: ! 2549: if (!(yy_buffer_stack)) { ! 2550: ! 2551: /* First allocation is just for 2 elements, since we don't know if this ! 2552: * scanner will even need a stack. We use 2 instead of 1 to avoid an ! 2553: * immediate realloc on the next call. ! 2554: */ ! 2555: num_to_alloc = 1; ! 2556: (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc ! 2557: (num_to_alloc * sizeof(struct yy_buffer_state*) ! 2558: ); ! 2559: if ( ! (yy_buffer_stack) ) ! 2560: YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); ! 2561: ! 2562: memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); ! 2563: ! 2564: (yy_buffer_stack_max) = num_to_alloc; ! 2565: (yy_buffer_stack_top) = 0; ! 2566: return; ! 2567: } ! 2568: ! 2569: if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ ! 2570: ! 2571: /* Increase the buffer to prepare for a possible push. */ ! 2572: int grow_size = 8 /* arbitrary grow size */; ! 2573: ! 2574: num_to_alloc = (yy_buffer_stack_max) + grow_size; ! 2575: (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ! 2576: ((yy_buffer_stack), ! 2577: num_to_alloc * sizeof(struct yy_buffer_state*) ! 2578: ); ! 2579: if ( ! (yy_buffer_stack) ) ! 2580: YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); ! 2581: ! 2582: /* zero only the new slots.*/ ! 2583: memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); ! 2584: (yy_buffer_stack_max) = num_to_alloc; ! 2585: } ! 2586: } ! 2587: ! 2588: /** Setup the input buffer state to scan directly from a user-specified character buffer. ! 2589: * @param base the character buffer ! 2590: * @param size the size in bytes of the character buffer ! 2591: * ! 2592: * @return the newly allocated buffer state object. ! 2593: */ ! 2594: YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) ! 2595: { ! 2596: YY_BUFFER_STATE b; ! 2597: ! 2598: if ( size < 2 || ! 2599: base[size-2] != YY_END_OF_BUFFER_CHAR || ! 2600: base[size-1] != YY_END_OF_BUFFER_CHAR ) ! 2601: /* They forgot to leave room for the EOB's. */ ! 2602: return 0; ! 2603: ! 2604: b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) ); ! 2605: if ( ! b ) ! 2606: YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); ! 2607: ! 2608: b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ ! 2609: b->yy_buf_pos = b->yy_ch_buf = base; ! 2610: b->yy_is_our_buffer = 0; ! 2611: b->yy_input_file = 0; ! 2612: b->yy_n_chars = b->yy_buf_size; ! 2613: b->yy_is_interactive = 0; ! 2614: b->yy_at_bol = 1; ! 2615: b->yy_fill_buffer = 0; ! 2616: b->yy_buffer_status = YY_BUFFER_NEW; ! 2617: ! 2618: yy_switch_to_buffer(b ); ! 2619: ! 2620: return b; ! 2621: } ! 2622: ! 2623: /** Setup the input buffer state to scan a string. The next call to yylex() will ! 2624: * scan from a @e copy of @a str. ! 2625: * @param yystr a NUL-terminated string to scan ! 2626: * ! 2627: * @return the newly allocated buffer state object. ! 2628: * @note If you want to scan bytes that may contain NUL values, then use ! 2629: * yy_scan_bytes() instead. ! 2630: */ ! 2631: YY_BUFFER_STATE yy_scan_string (yyconst char * yystr ) ! 2632: { ! 2633: ! 2634: return yy_scan_bytes(yystr,strlen(yystr) ); ! 2635: } ! 2636: ! 2637: /** Setup the input buffer state to scan the given bytes. The next call to yylex() will ! 2638: * scan from a @e copy of @a bytes. ! 2639: * @param yybytes the byte buffer to scan ! 2640: * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. ! 2641: * ! 2642: * @return the newly allocated buffer state object. ! 2643: */ ! 2644: YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len ) ! 2645: { ! 2646: YY_BUFFER_STATE b; ! 2647: char *buf; ! 2648: yy_size_t n; ! 2649: int i; ! 2650: ! 2651: /* Get memory for full buffer, including space for trailing EOB's. */ ! 2652: n = _yybytes_len + 2; ! 2653: buf = (char *) yyalloc(n ); ! 2654: if ( ! buf ) ! 2655: YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); ! 2656: ! 2657: for ( i = 0; i < _yybytes_len; ++i ) ! 2658: buf[i] = yybytes[i]; ! 2659: ! 2660: buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; ! 2661: ! 2662: b = yy_scan_buffer(buf,n ); ! 2663: if ( ! b ) ! 2664: YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); ! 2665: ! 2666: /* It's okay to grow etc. this buffer, and we should throw it ! 2667: * away when we're done. ! 2668: */ ! 2669: b->yy_is_our_buffer = 1; ! 2670: ! 2671: return b; ! 2672: } ! 2673: ! 2674: #ifndef YY_EXIT_FAILURE ! 2675: #define YY_EXIT_FAILURE 2 ! 2676: #endif ! 2677: ! 2678: static void yy_fatal_error (yyconst char* msg ) ! 2679: { ! 2680: (void) fprintf( stderr, "%s\n", msg ); ! 2681: exit( YY_EXIT_FAILURE ); ! 2682: } ! 2683: ! 2684: /* Redefine yyless() so it works in section 3 code. */ ! 2685: ! 2686: #undef yyless ! 2687: #define yyless(n) \ ! 2688: do \ ! 2689: { \ ! 2690: /* Undo effects of setting up yytext. */ \ ! 2691: int yyless_macro_arg = (n); \ ! 2692: YY_LESS_LINENO(yyless_macro_arg);\ ! 2693: yytext[yyleng] = (yy_hold_char); \ ! 2694: (yy_c_buf_p) = yytext + yyless_macro_arg; \ ! 2695: (yy_hold_char) = *(yy_c_buf_p); \ ! 2696: *(yy_c_buf_p) = '\0'; \ ! 2697: yyleng = yyless_macro_arg; \ ! 2698: } \ ! 2699: while ( 0 ) ! 2700: ! 2701: /* Accessor methods (get/set functions) to struct members. */ ! 2702: ! 2703: /** Get the current line number. ! 2704: * ! 2705: */ ! 2706: int yyget_lineno (void) ! 2707: { ! 2708: ! 2709: return yylineno; ! 2710: } ! 2711: ! 2712: /** Get the input stream. ! 2713: * ! 2714: */ ! 2715: FILE *yyget_in (void) ! 2716: { ! 2717: return yyin; ! 2718: } ! 2719: ! 2720: /** Get the output stream. ! 2721: * ! 2722: */ ! 2723: FILE *yyget_out (void) ! 2724: { ! 2725: return yyout; ! 2726: } ! 2727: ! 2728: /** Get the length of the current token. ! 2729: * ! 2730: */ ! 2731: int yyget_leng (void) ! 2732: { ! 2733: return yyleng; ! 2734: } ! 2735: ! 2736: /** Get the current token. ! 2737: * ! 2738: */ ! 2739: ! 2740: char *yyget_text (void) ! 2741: { ! 2742: return yytext; ! 2743: } ! 2744: ! 2745: /** Set the current line number. ! 2746: * @param line_number ! 2747: * ! 2748: */ ! 2749: void yyset_lineno (int line_number ) ! 2750: { ! 2751: ! 2752: yylineno = line_number; ! 2753: } ! 2754: ! 2755: /** Set the input stream. This does not discard the current ! 2756: * input buffer. ! 2757: * @param in_str A readable stream. ! 2758: * ! 2759: * @see yy_switch_to_buffer ! 2760: */ ! 2761: void yyset_in (FILE * in_str ) ! 2762: { ! 2763: yyin = in_str ; ! 2764: } ! 2765: ! 2766: void yyset_out (FILE * out_str ) ! 2767: { ! 2768: yyout = out_str ; ! 2769: } ! 2770: ! 2771: int yyget_debug (void) ! 2772: { ! 2773: return yy_flex_debug; ! 2774: } ! 2775: ! 2776: void yyset_debug (int bdebug ) ! 2777: { ! 2778: yy_flex_debug = bdebug ; ! 2779: } ! 2780: ! 2781: static int yy_init_globals (void) ! 2782: { ! 2783: /* Initialization is the same as for the non-reentrant scanner. ! 2784: * This function is called from yylex_destroy(), so don't allocate here. ! 2785: */ ! 2786: ! 2787: (yy_buffer_stack) = 0; ! 2788: (yy_buffer_stack_top) = 0; ! 2789: (yy_buffer_stack_max) = 0; ! 2790: (yy_c_buf_p) = (char *) 0; ! 2791: (yy_init) = 0; ! 2792: (yy_start) = 0; ! 2793: ! 2794: /* Defined in main.c */ ! 2795: #ifdef YY_STDINIT ! 2796: yyin = stdin; ! 2797: yyout = stdout; ! 2798: #else ! 2799: yyin = (FILE *) 0; ! 2800: yyout = (FILE *) 0; ! 2801: #endif ! 2802: ! 2803: /* For future reference: Set errno on error, since we are called by ! 2804: * yylex_init() ! 2805: */ ! 2806: return 0; ! 2807: } ! 2808: ! 2809: /* yylex_destroy is for both reentrant and non-reentrant scanners. */ ! 2810: int yylex_destroy (void) ! 2811: { ! 2812: ! 2813: /* Pop the buffer stack, destroying each element. */ ! 2814: while(YY_CURRENT_BUFFER){ ! 2815: yy_delete_buffer(YY_CURRENT_BUFFER ); ! 2816: YY_CURRENT_BUFFER_LVALUE = NULL; ! 2817: yypop_buffer_state(); ! 2818: } ! 2819: ! 2820: /* Destroy the stack itself. */ ! 2821: yyfree((yy_buffer_stack) ); ! 2822: (yy_buffer_stack) = NULL; ! 2823: ! 2824: /* Reset the globals. This is important in a non-reentrant scanner so the next time ! 2825: * yylex() is called, initialization will occur. */ ! 2826: yy_init_globals( ); ! 2827: ! 2828: return 0; ! 2829: } ! 2830: ! 2831: /* ! 2832: * Internal utility routines. ! 2833: */ ! 2834: ! 2835: #ifndef yytext_ptr ! 2836: static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) ! 2837: { ! 2838: register int i; ! 2839: for ( i = 0; i < n; ++i ) ! 2840: s1[i] = s2[i]; ! 2841: } ! 2842: #endif ! 2843: ! 2844: #ifdef YY_NEED_STRLEN ! 2845: static int yy_flex_strlen (yyconst char * s ) ! 2846: { ! 2847: register int n; ! 2848: for ( n = 0; s[n]; ++n ) ! 2849: ; ! 2850: ! 2851: return n; ! 2852: } ! 2853: #endif ! 2854: ! 2855: void *yyalloc (yy_size_t size ) ! 2856: { ! 2857: return (void *) malloc( size ); ! 2858: } ! 2859: ! 2860: void *yyrealloc (void * ptr, yy_size_t size ) ! 2861: { ! 2862: /* The cast to (char *) in the following accommodates both ! 2863: * implementations that use char* generic pointers, and those ! 2864: * that use void* generic pointers. It works with the latter ! 2865: * because both ANSI C and C++ allow castless assignment from ! 2866: * any pointer type to void*, and deal with argument conversions ! 2867: * as though doing an assignment. ! 2868: */ ! 2869: return (void *) realloc( (char *) ptr, size ); ! 2870: } ! 2871: ! 2872: void yyfree (void * ptr ) ! 2873: { ! 2874: free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ ! 2875: } ! 2876: ! 2877: #define YYTABLES_NAME "yytables" ! 2878: ! 2879: #line 314 "token.l" ! 2880: ! 2881: ! 2882: ! 2883: void ! 2884: yyfatal(s) ! 2885: const char *s; ! 2886: { ! 2887: yyerror(s); ! 2888: exit(1); ! 2889: } ! 2890: ! 2891: void ! 2892: yyerror(s) ! 2893: const char *s; ! 2894: { ! 2895: printf("line %d: %s at [%s]\n", lineno, s, yytext); ! 2896: } ! 2897: ! 2898: int ! 2899: parse(fp) ! 2900: FILE **fp; ! 2901: { ! 2902: yyin = *fp; ! 2903: ! 2904: lineno = 1; ! 2905: parse_init(); ! 2906: ! 2907: if (yyparse()) { ! 2908: printf("parse failed, line %d.\n", lineno); ! 2909: return(-1); ! 2910: } ! 2911: ! 2912: return(0); ! 2913: } ! 2914: ! 2915: int ! 2916: parse_string (char *src) ! 2917: { ! 2918: int result; ! 2919: YY_BUFFER_STATE buf_state; ! 2920: ! 2921: buf_state = yy_scan_string(src); ! 2922: result = yyparse(); ! 2923: yy_delete_buffer(buf_state); ! 2924: return result; ! 2925: } ! 2926: ! 2927: