Annotation of embedaddon/ipsec-tools/src/setkey/token.c, revision 1.1
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:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>