Annotation of embedaddon/ipsec-tools/src/setkey/token.c, revision 1.1.1.2

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>