1*0a9064fbSMasahiro Yamada 2*0a9064fbSMasahiro Yamada#line 3 "scripts/kconfig/zconf.lex.c_shipped" 3*0a9064fbSMasahiro Yamada 4*0a9064fbSMasahiro Yamada#define YY_INT_ALIGNED short int 5*0a9064fbSMasahiro Yamada 6*0a9064fbSMasahiro Yamada/* A lexical scanner generated by flex */ 7*0a9064fbSMasahiro Yamada 8*0a9064fbSMasahiro Yamada#define yy_create_buffer zconf_create_buffer 9*0a9064fbSMasahiro Yamada#define yy_delete_buffer zconf_delete_buffer 10*0a9064fbSMasahiro Yamada#define yy_flex_debug zconf_flex_debug 11*0a9064fbSMasahiro Yamada#define yy_init_buffer zconf_init_buffer 12*0a9064fbSMasahiro Yamada#define yy_flush_buffer zconf_flush_buffer 13*0a9064fbSMasahiro Yamada#define yy_load_buffer_state zconf_load_buffer_state 14*0a9064fbSMasahiro Yamada#define yy_switch_to_buffer zconf_switch_to_buffer 15*0a9064fbSMasahiro Yamada#define yyin zconfin 16*0a9064fbSMasahiro Yamada#define yyleng zconfleng 17*0a9064fbSMasahiro Yamada#define yylex zconflex 18*0a9064fbSMasahiro Yamada#define yylineno zconflineno 19*0a9064fbSMasahiro Yamada#define yyout zconfout 20*0a9064fbSMasahiro Yamada#define yyrestart zconfrestart 21*0a9064fbSMasahiro Yamada#define yytext zconftext 22*0a9064fbSMasahiro Yamada#define yywrap zconfwrap 23*0a9064fbSMasahiro Yamada#define yyalloc zconfalloc 24*0a9064fbSMasahiro Yamada#define yyrealloc zconfrealloc 25*0a9064fbSMasahiro Yamada#define yyfree zconffree 26*0a9064fbSMasahiro Yamada 27*0a9064fbSMasahiro Yamada#define FLEX_SCANNER 28*0a9064fbSMasahiro Yamada#define YY_FLEX_MAJOR_VERSION 2 29*0a9064fbSMasahiro Yamada#define YY_FLEX_MINOR_VERSION 5 30*0a9064fbSMasahiro Yamada#define YY_FLEX_SUBMINOR_VERSION 35 31*0a9064fbSMasahiro Yamada#if YY_FLEX_SUBMINOR_VERSION > 0 32*0a9064fbSMasahiro Yamada#define FLEX_BETA 33*0a9064fbSMasahiro Yamada#endif 34*0a9064fbSMasahiro Yamada 35*0a9064fbSMasahiro Yamada/* First, we deal with platform-specific or compiler-specific issues. */ 36*0a9064fbSMasahiro Yamada 37*0a9064fbSMasahiro Yamada/* begin standard C headers. */ 38*0a9064fbSMasahiro Yamada#include <stdio.h> 39*0a9064fbSMasahiro Yamada#include <string.h> 40*0a9064fbSMasahiro Yamada#include <errno.h> 41*0a9064fbSMasahiro Yamada#include <stdlib.h> 42*0a9064fbSMasahiro Yamada 43*0a9064fbSMasahiro Yamada/* end standard C headers. */ 44*0a9064fbSMasahiro Yamada 45*0a9064fbSMasahiro Yamada/* flex integer type definitions */ 46*0a9064fbSMasahiro Yamada 47*0a9064fbSMasahiro Yamada#ifndef FLEXINT_H 48*0a9064fbSMasahiro Yamada#define FLEXINT_H 49*0a9064fbSMasahiro Yamada 50*0a9064fbSMasahiro Yamada/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ 51*0a9064fbSMasahiro Yamada 52*0a9064fbSMasahiro Yamada#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L 53*0a9064fbSMasahiro Yamada 54*0a9064fbSMasahiro Yamada/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, 55*0a9064fbSMasahiro Yamada * if you want the limit (max/min) macros for int types. 56*0a9064fbSMasahiro Yamada */ 57*0a9064fbSMasahiro Yamada#ifndef __STDC_LIMIT_MACROS 58*0a9064fbSMasahiro Yamada#define __STDC_LIMIT_MACROS 1 59*0a9064fbSMasahiro Yamada#endif 60*0a9064fbSMasahiro Yamada 61*0a9064fbSMasahiro Yamada#include <inttypes.h> 62*0a9064fbSMasahiro Yamadatypedef int8_t flex_int8_t; 63*0a9064fbSMasahiro Yamadatypedef uint8_t flex_uint8_t; 64*0a9064fbSMasahiro Yamadatypedef int16_t flex_int16_t; 65*0a9064fbSMasahiro Yamadatypedef uint16_t flex_uint16_t; 66*0a9064fbSMasahiro Yamadatypedef int32_t flex_int32_t; 67*0a9064fbSMasahiro Yamadatypedef uint32_t flex_uint32_t; 68*0a9064fbSMasahiro Yamada#else 69*0a9064fbSMasahiro Yamadatypedef signed char flex_int8_t; 70*0a9064fbSMasahiro Yamadatypedef short int flex_int16_t; 71*0a9064fbSMasahiro Yamadatypedef int flex_int32_t; 72*0a9064fbSMasahiro Yamadatypedef unsigned char flex_uint8_t; 73*0a9064fbSMasahiro Yamadatypedef unsigned short int flex_uint16_t; 74*0a9064fbSMasahiro Yamadatypedef unsigned int flex_uint32_t; 75*0a9064fbSMasahiro Yamada#endif /* ! C99 */ 76*0a9064fbSMasahiro Yamada 77*0a9064fbSMasahiro Yamada/* Limits of integral types. */ 78*0a9064fbSMasahiro Yamada#ifndef INT8_MIN 79*0a9064fbSMasahiro Yamada#define INT8_MIN (-128) 80*0a9064fbSMasahiro Yamada#endif 81*0a9064fbSMasahiro Yamada#ifndef INT16_MIN 82*0a9064fbSMasahiro Yamada#define INT16_MIN (-32767-1) 83*0a9064fbSMasahiro Yamada#endif 84*0a9064fbSMasahiro Yamada#ifndef INT32_MIN 85*0a9064fbSMasahiro Yamada#define INT32_MIN (-2147483647-1) 86*0a9064fbSMasahiro Yamada#endif 87*0a9064fbSMasahiro Yamada#ifndef INT8_MAX 88*0a9064fbSMasahiro Yamada#define INT8_MAX (127) 89*0a9064fbSMasahiro Yamada#endif 90*0a9064fbSMasahiro Yamada#ifndef INT16_MAX 91*0a9064fbSMasahiro Yamada#define INT16_MAX (32767) 92*0a9064fbSMasahiro Yamada#endif 93*0a9064fbSMasahiro Yamada#ifndef INT32_MAX 94*0a9064fbSMasahiro Yamada#define INT32_MAX (2147483647) 95*0a9064fbSMasahiro Yamada#endif 96*0a9064fbSMasahiro Yamada#ifndef UINT8_MAX 97*0a9064fbSMasahiro Yamada#define UINT8_MAX (255U) 98*0a9064fbSMasahiro Yamada#endif 99*0a9064fbSMasahiro Yamada#ifndef UINT16_MAX 100*0a9064fbSMasahiro Yamada#define UINT16_MAX (65535U) 101*0a9064fbSMasahiro Yamada#endif 102*0a9064fbSMasahiro Yamada#ifndef UINT32_MAX 103*0a9064fbSMasahiro Yamada#define UINT32_MAX (4294967295U) 104*0a9064fbSMasahiro Yamada#endif 105*0a9064fbSMasahiro Yamada 106*0a9064fbSMasahiro Yamada#endif /* ! FLEXINT_H */ 107*0a9064fbSMasahiro Yamada 108*0a9064fbSMasahiro Yamada#ifdef __cplusplus 109*0a9064fbSMasahiro Yamada 110*0a9064fbSMasahiro Yamada/* The "const" storage-class-modifier is valid. */ 111*0a9064fbSMasahiro Yamada#define YY_USE_CONST 112*0a9064fbSMasahiro Yamada 113*0a9064fbSMasahiro Yamada#else /* ! __cplusplus */ 114*0a9064fbSMasahiro Yamada 115*0a9064fbSMasahiro Yamada/* C99 requires __STDC__ to be defined as 1. */ 116*0a9064fbSMasahiro Yamada#if defined (__STDC__) 117*0a9064fbSMasahiro Yamada 118*0a9064fbSMasahiro Yamada#define YY_USE_CONST 119*0a9064fbSMasahiro Yamada 120*0a9064fbSMasahiro Yamada#endif /* defined (__STDC__) */ 121*0a9064fbSMasahiro Yamada#endif /* ! __cplusplus */ 122*0a9064fbSMasahiro Yamada 123*0a9064fbSMasahiro Yamada#ifdef YY_USE_CONST 124*0a9064fbSMasahiro Yamada#define yyconst const 125*0a9064fbSMasahiro Yamada#else 126*0a9064fbSMasahiro Yamada#define yyconst 127*0a9064fbSMasahiro Yamada#endif 128*0a9064fbSMasahiro Yamada 129*0a9064fbSMasahiro Yamada/* Returned upon end-of-file. */ 130*0a9064fbSMasahiro Yamada#define YY_NULL 0 131*0a9064fbSMasahiro Yamada 132*0a9064fbSMasahiro Yamada/* Promotes a possibly negative, possibly signed char to an unsigned 133*0a9064fbSMasahiro Yamada * integer for use as an array index. If the signed char is negative, 134*0a9064fbSMasahiro Yamada * we want to instead treat it as an 8-bit unsigned char, hence the 135*0a9064fbSMasahiro Yamada * double cast. 136*0a9064fbSMasahiro Yamada */ 137*0a9064fbSMasahiro Yamada#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) 138*0a9064fbSMasahiro Yamada 139*0a9064fbSMasahiro Yamada/* Enter a start condition. This macro really ought to take a parameter, 140*0a9064fbSMasahiro Yamada * but we do it the disgusting crufty way forced on us by the ()-less 141*0a9064fbSMasahiro Yamada * definition of BEGIN. 142*0a9064fbSMasahiro Yamada */ 143*0a9064fbSMasahiro Yamada#define BEGIN (yy_start) = 1 + 2 * 144*0a9064fbSMasahiro Yamada 145*0a9064fbSMasahiro Yamada/* Translate the current start state into a value that can be later handed 146*0a9064fbSMasahiro Yamada * to BEGIN to return to the state. The YYSTATE alias is for lex 147*0a9064fbSMasahiro Yamada * compatibility. 148*0a9064fbSMasahiro Yamada */ 149*0a9064fbSMasahiro Yamada#define YY_START (((yy_start) - 1) / 2) 150*0a9064fbSMasahiro Yamada#define YYSTATE YY_START 151*0a9064fbSMasahiro Yamada 152*0a9064fbSMasahiro Yamada/* Action number for EOF rule of a given start state. */ 153*0a9064fbSMasahiro Yamada#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 154*0a9064fbSMasahiro Yamada 155*0a9064fbSMasahiro Yamada/* Special action meaning "start processing a new file". */ 156*0a9064fbSMasahiro Yamada#define YY_NEW_FILE zconfrestart(zconfin ) 157*0a9064fbSMasahiro Yamada 158*0a9064fbSMasahiro Yamada#define YY_END_OF_BUFFER_CHAR 0 159*0a9064fbSMasahiro Yamada 160*0a9064fbSMasahiro Yamada/* Size of default input buffer. */ 161*0a9064fbSMasahiro Yamada#ifndef YY_BUF_SIZE 162*0a9064fbSMasahiro Yamada#define YY_BUF_SIZE 16384 163*0a9064fbSMasahiro Yamada#endif 164*0a9064fbSMasahiro Yamada 165*0a9064fbSMasahiro Yamada/* The state buf must be large enough to hold one state per character in the main buffer. 166*0a9064fbSMasahiro Yamada */ 167*0a9064fbSMasahiro Yamada#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) 168*0a9064fbSMasahiro Yamada 169*0a9064fbSMasahiro Yamada#ifndef YY_TYPEDEF_YY_BUFFER_STATE 170*0a9064fbSMasahiro Yamada#define YY_TYPEDEF_YY_BUFFER_STATE 171*0a9064fbSMasahiro Yamadatypedef struct yy_buffer_state *YY_BUFFER_STATE; 172*0a9064fbSMasahiro Yamada#endif 173*0a9064fbSMasahiro Yamada 174*0a9064fbSMasahiro Yamadaextern int zconfleng; 175*0a9064fbSMasahiro Yamada 176*0a9064fbSMasahiro Yamadaextern FILE *zconfin, *zconfout; 177*0a9064fbSMasahiro Yamada 178*0a9064fbSMasahiro Yamada#define EOB_ACT_CONTINUE_SCAN 0 179*0a9064fbSMasahiro Yamada#define EOB_ACT_END_OF_FILE 1 180*0a9064fbSMasahiro Yamada#define EOB_ACT_LAST_MATCH 2 181*0a9064fbSMasahiro Yamada 182*0a9064fbSMasahiro Yamada #define YY_LESS_LINENO(n) 183*0a9064fbSMasahiro Yamada 184*0a9064fbSMasahiro Yamada/* Return all but the first "n" matched characters back to the input stream. */ 185*0a9064fbSMasahiro Yamada#define yyless(n) \ 186*0a9064fbSMasahiro Yamada do \ 187*0a9064fbSMasahiro Yamada { \ 188*0a9064fbSMasahiro Yamada /* Undo effects of setting up zconftext. */ \ 189*0a9064fbSMasahiro Yamada int yyless_macro_arg = (n); \ 190*0a9064fbSMasahiro Yamada YY_LESS_LINENO(yyless_macro_arg);\ 191*0a9064fbSMasahiro Yamada *yy_cp = (yy_hold_char); \ 192*0a9064fbSMasahiro Yamada YY_RESTORE_YY_MORE_OFFSET \ 193*0a9064fbSMasahiro Yamada (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ 194*0a9064fbSMasahiro Yamada YY_DO_BEFORE_ACTION; /* set up zconftext again */ \ 195*0a9064fbSMasahiro Yamada } \ 196*0a9064fbSMasahiro Yamada while ( 0 ) 197*0a9064fbSMasahiro Yamada 198*0a9064fbSMasahiro Yamada#define unput(c) yyunput( c, (yytext_ptr) ) 199*0a9064fbSMasahiro Yamada 200*0a9064fbSMasahiro Yamada#ifndef YY_TYPEDEF_YY_SIZE_T 201*0a9064fbSMasahiro Yamada#define YY_TYPEDEF_YY_SIZE_T 202*0a9064fbSMasahiro Yamadatypedef size_t yy_size_t; 203*0a9064fbSMasahiro Yamada#endif 204*0a9064fbSMasahiro Yamada 205*0a9064fbSMasahiro Yamada#ifndef YY_STRUCT_YY_BUFFER_STATE 206*0a9064fbSMasahiro Yamada#define YY_STRUCT_YY_BUFFER_STATE 207*0a9064fbSMasahiro Yamadastruct yy_buffer_state 208*0a9064fbSMasahiro Yamada { 209*0a9064fbSMasahiro Yamada FILE *yy_input_file; 210*0a9064fbSMasahiro Yamada 211*0a9064fbSMasahiro Yamada char *yy_ch_buf; /* input buffer */ 212*0a9064fbSMasahiro Yamada char *yy_buf_pos; /* current position in input buffer */ 213*0a9064fbSMasahiro Yamada 214*0a9064fbSMasahiro Yamada /* Size of input buffer in bytes, not including room for EOB 215*0a9064fbSMasahiro Yamada * characters. 216*0a9064fbSMasahiro Yamada */ 217*0a9064fbSMasahiro Yamada yy_size_t yy_buf_size; 218*0a9064fbSMasahiro Yamada 219*0a9064fbSMasahiro Yamada /* Number of characters read into yy_ch_buf, not including EOB 220*0a9064fbSMasahiro Yamada * characters. 221*0a9064fbSMasahiro Yamada */ 222*0a9064fbSMasahiro Yamada int yy_n_chars; 223*0a9064fbSMasahiro Yamada 224*0a9064fbSMasahiro Yamada /* Whether we "own" the buffer - i.e., we know we created it, 225*0a9064fbSMasahiro Yamada * and can realloc() it to grow it, and should free() it to 226*0a9064fbSMasahiro Yamada * delete it. 227*0a9064fbSMasahiro Yamada */ 228*0a9064fbSMasahiro Yamada int yy_is_our_buffer; 229*0a9064fbSMasahiro Yamada 230*0a9064fbSMasahiro Yamada /* Whether this is an "interactive" input source; if so, and 231*0a9064fbSMasahiro Yamada * if we're using stdio for input, then we want to use getc() 232*0a9064fbSMasahiro Yamada * instead of fread(), to make sure we stop fetching input after 233*0a9064fbSMasahiro Yamada * each newline. 234*0a9064fbSMasahiro Yamada */ 235*0a9064fbSMasahiro Yamada int yy_is_interactive; 236*0a9064fbSMasahiro Yamada 237*0a9064fbSMasahiro Yamada /* Whether we're considered to be at the beginning of a line. 238*0a9064fbSMasahiro Yamada * If so, '^' rules will be active on the next match, otherwise 239*0a9064fbSMasahiro Yamada * not. 240*0a9064fbSMasahiro Yamada */ 241*0a9064fbSMasahiro Yamada int yy_at_bol; 242*0a9064fbSMasahiro Yamada 243*0a9064fbSMasahiro Yamada int yy_bs_lineno; /**< The line count. */ 244*0a9064fbSMasahiro Yamada int yy_bs_column; /**< The column count. */ 245*0a9064fbSMasahiro Yamada 246*0a9064fbSMasahiro Yamada /* Whether to try to fill the input buffer when we reach the 247*0a9064fbSMasahiro Yamada * end of it. 248*0a9064fbSMasahiro Yamada */ 249*0a9064fbSMasahiro Yamada int yy_fill_buffer; 250*0a9064fbSMasahiro Yamada 251*0a9064fbSMasahiro Yamada int yy_buffer_status; 252*0a9064fbSMasahiro Yamada 253*0a9064fbSMasahiro Yamada#define YY_BUFFER_NEW 0 254*0a9064fbSMasahiro Yamada#define YY_BUFFER_NORMAL 1 255*0a9064fbSMasahiro Yamada /* When an EOF's been seen but there's still some text to process 256*0a9064fbSMasahiro Yamada * then we mark the buffer as YY_EOF_PENDING, to indicate that we 257*0a9064fbSMasahiro Yamada * shouldn't try reading from the input source any more. We might 258*0a9064fbSMasahiro Yamada * still have a bunch of tokens to match, though, because of 259*0a9064fbSMasahiro Yamada * possible backing-up. 260*0a9064fbSMasahiro Yamada * 261*0a9064fbSMasahiro Yamada * When we actually see the EOF, we change the status to "new" 262*0a9064fbSMasahiro Yamada * (via zconfrestart()), so that the user can continue scanning by 263*0a9064fbSMasahiro Yamada * just pointing zconfin at a new input file. 264*0a9064fbSMasahiro Yamada */ 265*0a9064fbSMasahiro Yamada#define YY_BUFFER_EOF_PENDING 2 266*0a9064fbSMasahiro Yamada 267*0a9064fbSMasahiro Yamada }; 268*0a9064fbSMasahiro Yamada#endif /* !YY_STRUCT_YY_BUFFER_STATE */ 269*0a9064fbSMasahiro Yamada 270*0a9064fbSMasahiro Yamada/* Stack of input buffers. */ 271*0a9064fbSMasahiro Yamadastatic size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ 272*0a9064fbSMasahiro Yamadastatic size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ 273*0a9064fbSMasahiro Yamadastatic YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ 274*0a9064fbSMasahiro Yamada 275*0a9064fbSMasahiro Yamada/* We provide macros for accessing buffer states in case in the 276*0a9064fbSMasahiro Yamada * future we want to put the buffer states in a more general 277*0a9064fbSMasahiro Yamada * "scanner state". 278*0a9064fbSMasahiro Yamada * 279*0a9064fbSMasahiro Yamada * Returns the top of the stack, or NULL. 280*0a9064fbSMasahiro Yamada */ 281*0a9064fbSMasahiro Yamada#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ 282*0a9064fbSMasahiro Yamada ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ 283*0a9064fbSMasahiro Yamada : NULL) 284*0a9064fbSMasahiro Yamada 285*0a9064fbSMasahiro Yamada/* Same as previous macro, but useful when we know that the buffer stack is not 286*0a9064fbSMasahiro Yamada * NULL or when we need an lvalue. For internal use only. 287*0a9064fbSMasahiro Yamada */ 288*0a9064fbSMasahiro Yamada#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] 289*0a9064fbSMasahiro Yamada 290*0a9064fbSMasahiro Yamada/* yy_hold_char holds the character lost when zconftext is formed. */ 291*0a9064fbSMasahiro Yamadastatic char yy_hold_char; 292*0a9064fbSMasahiro Yamadastatic int yy_n_chars; /* number of characters read into yy_ch_buf */ 293*0a9064fbSMasahiro Yamadaint zconfleng; 294*0a9064fbSMasahiro Yamada 295*0a9064fbSMasahiro Yamada/* Points to current character in buffer. */ 296*0a9064fbSMasahiro Yamadastatic char *yy_c_buf_p = (char *) 0; 297*0a9064fbSMasahiro Yamadastatic int yy_init = 0; /* whether we need to initialize */ 298*0a9064fbSMasahiro Yamadastatic int yy_start = 0; /* start state number */ 299*0a9064fbSMasahiro Yamada 300*0a9064fbSMasahiro Yamada/* Flag which is used to allow zconfwrap()'s to do buffer switches 301*0a9064fbSMasahiro Yamada * instead of setting up a fresh zconfin. A bit of a hack ... 302*0a9064fbSMasahiro Yamada */ 303*0a9064fbSMasahiro Yamadastatic int yy_did_buffer_switch_on_eof; 304*0a9064fbSMasahiro Yamada 305*0a9064fbSMasahiro Yamadavoid zconfrestart (FILE *input_file ); 306*0a9064fbSMasahiro Yamadavoid zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer ); 307*0a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_create_buffer (FILE *file,int size ); 308*0a9064fbSMasahiro Yamadavoid zconf_delete_buffer (YY_BUFFER_STATE b ); 309*0a9064fbSMasahiro Yamadavoid zconf_flush_buffer (YY_BUFFER_STATE b ); 310*0a9064fbSMasahiro Yamadavoid zconfpush_buffer_state (YY_BUFFER_STATE new_buffer ); 311*0a9064fbSMasahiro Yamadavoid zconfpop_buffer_state (void ); 312*0a9064fbSMasahiro Yamada 313*0a9064fbSMasahiro Yamadastatic void zconfensure_buffer_stack (void ); 314*0a9064fbSMasahiro Yamadastatic void zconf_load_buffer_state (void ); 315*0a9064fbSMasahiro Yamadastatic void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file ); 316*0a9064fbSMasahiro Yamada 317*0a9064fbSMasahiro Yamada#define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER ) 318*0a9064fbSMasahiro Yamada 319*0a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size ); 320*0a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str ); 321*0a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,int len ); 322*0a9064fbSMasahiro Yamada 323*0a9064fbSMasahiro Yamadavoid *zconfalloc (yy_size_t ); 324*0a9064fbSMasahiro Yamadavoid *zconfrealloc (void *,yy_size_t ); 325*0a9064fbSMasahiro Yamadavoid zconffree (void * ); 326*0a9064fbSMasahiro Yamada 327*0a9064fbSMasahiro Yamada#define yy_new_buffer zconf_create_buffer 328*0a9064fbSMasahiro Yamada 329*0a9064fbSMasahiro Yamada#define yy_set_interactive(is_interactive) \ 330*0a9064fbSMasahiro Yamada { \ 331*0a9064fbSMasahiro Yamada if ( ! YY_CURRENT_BUFFER ){ \ 332*0a9064fbSMasahiro Yamada zconfensure_buffer_stack (); \ 333*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE = \ 334*0a9064fbSMasahiro Yamada zconf_create_buffer(zconfin,YY_BUF_SIZE ); \ 335*0a9064fbSMasahiro Yamada } \ 336*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ 337*0a9064fbSMasahiro Yamada } 338*0a9064fbSMasahiro Yamada 339*0a9064fbSMasahiro Yamada#define yy_set_bol(at_bol) \ 340*0a9064fbSMasahiro Yamada { \ 341*0a9064fbSMasahiro Yamada if ( ! YY_CURRENT_BUFFER ){\ 342*0a9064fbSMasahiro Yamada zconfensure_buffer_stack (); \ 343*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE = \ 344*0a9064fbSMasahiro Yamada zconf_create_buffer(zconfin,YY_BUF_SIZE ); \ 345*0a9064fbSMasahiro Yamada } \ 346*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ 347*0a9064fbSMasahiro Yamada } 348*0a9064fbSMasahiro Yamada 349*0a9064fbSMasahiro Yamada#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) 350*0a9064fbSMasahiro Yamada 351*0a9064fbSMasahiro Yamada/* Begin user sect3 */ 352*0a9064fbSMasahiro Yamada 353*0a9064fbSMasahiro Yamada#define zconfwrap(n) 1 354*0a9064fbSMasahiro Yamada#define YY_SKIP_YYWRAP 355*0a9064fbSMasahiro Yamada 356*0a9064fbSMasahiro Yamadatypedef unsigned char YY_CHAR; 357*0a9064fbSMasahiro Yamada 358*0a9064fbSMasahiro YamadaFILE *zconfin = (FILE *) 0, *zconfout = (FILE *) 0; 359*0a9064fbSMasahiro Yamada 360*0a9064fbSMasahiro Yamadatypedef int yy_state_type; 361*0a9064fbSMasahiro Yamada 362*0a9064fbSMasahiro Yamadaextern int zconflineno; 363*0a9064fbSMasahiro Yamada 364*0a9064fbSMasahiro Yamadaint zconflineno = 1; 365*0a9064fbSMasahiro Yamada 366*0a9064fbSMasahiro Yamadaextern char *zconftext; 367*0a9064fbSMasahiro Yamada#define yytext_ptr zconftext 368*0a9064fbSMasahiro Yamadastatic yyconst flex_int16_t yy_nxt[][17] = 369*0a9064fbSMasahiro Yamada { 370*0a9064fbSMasahiro Yamada { 371*0a9064fbSMasahiro Yamada 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 372*0a9064fbSMasahiro Yamada 0, 0, 0, 0, 0, 0, 0 373*0a9064fbSMasahiro Yamada }, 374*0a9064fbSMasahiro Yamada 375*0a9064fbSMasahiro Yamada { 376*0a9064fbSMasahiro Yamada 11, 12, 13, 14, 12, 12, 15, 12, 12, 12, 377*0a9064fbSMasahiro Yamada 12, 12, 12, 12, 12, 12, 12 378*0a9064fbSMasahiro Yamada }, 379*0a9064fbSMasahiro Yamada 380*0a9064fbSMasahiro Yamada { 381*0a9064fbSMasahiro Yamada 11, 12, 13, 14, 12, 12, 15, 12, 12, 12, 382*0a9064fbSMasahiro Yamada 12, 12, 12, 12, 12, 12, 12 383*0a9064fbSMasahiro Yamada }, 384*0a9064fbSMasahiro Yamada 385*0a9064fbSMasahiro Yamada { 386*0a9064fbSMasahiro Yamada 11, 16, 16, 17, 16, 16, 16, 16, 16, 16, 387*0a9064fbSMasahiro Yamada 16, 16, 16, 18, 16, 16, 16 388*0a9064fbSMasahiro Yamada }, 389*0a9064fbSMasahiro Yamada 390*0a9064fbSMasahiro Yamada { 391*0a9064fbSMasahiro Yamada 11, 16, 16, 17, 16, 16, 16, 16, 16, 16, 392*0a9064fbSMasahiro Yamada 16, 16, 16, 18, 16, 16, 16 393*0a9064fbSMasahiro Yamada 394*0a9064fbSMasahiro Yamada }, 395*0a9064fbSMasahiro Yamada 396*0a9064fbSMasahiro Yamada { 397*0a9064fbSMasahiro Yamada 11, 19, 20, 21, 19, 19, 19, 19, 19, 19, 398*0a9064fbSMasahiro Yamada 19, 19, 19, 19, 19, 19, 19 399*0a9064fbSMasahiro Yamada }, 400*0a9064fbSMasahiro Yamada 401*0a9064fbSMasahiro Yamada { 402*0a9064fbSMasahiro Yamada 11, 19, 20, 21, 19, 19, 19, 19, 19, 19, 403*0a9064fbSMasahiro Yamada 19, 19, 19, 19, 19, 19, 19 404*0a9064fbSMasahiro Yamada }, 405*0a9064fbSMasahiro Yamada 406*0a9064fbSMasahiro Yamada { 407*0a9064fbSMasahiro Yamada 11, 22, 22, 23, 22, 24, 22, 22, 24, 22, 408*0a9064fbSMasahiro Yamada 22, 22, 22, 22, 22, 25, 22 409*0a9064fbSMasahiro Yamada }, 410*0a9064fbSMasahiro Yamada 411*0a9064fbSMasahiro Yamada { 412*0a9064fbSMasahiro Yamada 11, 22, 22, 23, 22, 24, 22, 22, 24, 22, 413*0a9064fbSMasahiro Yamada 22, 22, 22, 22, 22, 25, 22 414*0a9064fbSMasahiro Yamada }, 415*0a9064fbSMasahiro Yamada 416*0a9064fbSMasahiro Yamada { 417*0a9064fbSMasahiro Yamada 11, 26, 26, 27, 28, 29, 30, 31, 29, 32, 418*0a9064fbSMasahiro Yamada 33, 34, 35, 35, 36, 37, 38 419*0a9064fbSMasahiro Yamada 420*0a9064fbSMasahiro Yamada }, 421*0a9064fbSMasahiro Yamada 422*0a9064fbSMasahiro Yamada { 423*0a9064fbSMasahiro Yamada 11, 26, 26, 27, 28, 29, 30, 31, 29, 32, 424*0a9064fbSMasahiro Yamada 33, 34, 35, 35, 36, 37, 38 425*0a9064fbSMasahiro Yamada }, 426*0a9064fbSMasahiro Yamada 427*0a9064fbSMasahiro Yamada { 428*0a9064fbSMasahiro Yamada -11, -11, -11, -11, -11, -11, -11, -11, -11, -11, 429*0a9064fbSMasahiro Yamada -11, -11, -11, -11, -11, -11, -11 430*0a9064fbSMasahiro Yamada }, 431*0a9064fbSMasahiro Yamada 432*0a9064fbSMasahiro Yamada { 433*0a9064fbSMasahiro Yamada 11, -12, -12, -12, -12, -12, -12, -12, -12, -12, 434*0a9064fbSMasahiro Yamada -12, -12, -12, -12, -12, -12, -12 435*0a9064fbSMasahiro Yamada }, 436*0a9064fbSMasahiro Yamada 437*0a9064fbSMasahiro Yamada { 438*0a9064fbSMasahiro Yamada 11, -13, 39, 40, -13, -13, 41, -13, -13, -13, 439*0a9064fbSMasahiro Yamada -13, -13, -13, -13, -13, -13, -13 440*0a9064fbSMasahiro Yamada }, 441*0a9064fbSMasahiro Yamada 442*0a9064fbSMasahiro Yamada { 443*0a9064fbSMasahiro Yamada 11, -14, -14, -14, -14, -14, -14, -14, -14, -14, 444*0a9064fbSMasahiro Yamada -14, -14, -14, -14, -14, -14, -14 445*0a9064fbSMasahiro Yamada 446*0a9064fbSMasahiro Yamada }, 447*0a9064fbSMasahiro Yamada 448*0a9064fbSMasahiro Yamada { 449*0a9064fbSMasahiro Yamada 11, 42, 42, 43, 42, 42, 42, 42, 42, 42, 450*0a9064fbSMasahiro Yamada 42, 42, 42, 42, 42, 42, 42 451*0a9064fbSMasahiro Yamada }, 452*0a9064fbSMasahiro Yamada 453*0a9064fbSMasahiro Yamada { 454*0a9064fbSMasahiro Yamada 11, -16, -16, -16, -16, -16, -16, -16, -16, -16, 455*0a9064fbSMasahiro Yamada -16, -16, -16, -16, -16, -16, -16 456*0a9064fbSMasahiro Yamada }, 457*0a9064fbSMasahiro Yamada 458*0a9064fbSMasahiro Yamada { 459*0a9064fbSMasahiro Yamada 11, -17, -17, -17, -17, -17, -17, -17, -17, -17, 460*0a9064fbSMasahiro Yamada -17, -17, -17, -17, -17, -17, -17 461*0a9064fbSMasahiro Yamada }, 462*0a9064fbSMasahiro Yamada 463*0a9064fbSMasahiro Yamada { 464*0a9064fbSMasahiro Yamada 11, -18, -18, -18, -18, -18, -18, -18, -18, -18, 465*0a9064fbSMasahiro Yamada -18, -18, -18, 44, -18, -18, -18 466*0a9064fbSMasahiro Yamada }, 467*0a9064fbSMasahiro Yamada 468*0a9064fbSMasahiro Yamada { 469*0a9064fbSMasahiro Yamada 11, 45, 45, -19, 45, 45, 45, 45, 45, 45, 470*0a9064fbSMasahiro Yamada 45, 45, 45, 45, 45, 45, 45 471*0a9064fbSMasahiro Yamada 472*0a9064fbSMasahiro Yamada }, 473*0a9064fbSMasahiro Yamada 474*0a9064fbSMasahiro Yamada { 475*0a9064fbSMasahiro Yamada 11, -20, 46, 47, -20, -20, -20, -20, -20, -20, 476*0a9064fbSMasahiro Yamada -20, -20, -20, -20, -20, -20, -20 477*0a9064fbSMasahiro Yamada }, 478*0a9064fbSMasahiro Yamada 479*0a9064fbSMasahiro Yamada { 480*0a9064fbSMasahiro Yamada 11, 48, -21, -21, 48, 48, 48, 48, 48, 48, 481*0a9064fbSMasahiro Yamada 48, 48, 48, 48, 48, 48, 48 482*0a9064fbSMasahiro Yamada }, 483*0a9064fbSMasahiro Yamada 484*0a9064fbSMasahiro Yamada { 485*0a9064fbSMasahiro Yamada 11, 49, 49, 50, 49, -22, 49, 49, -22, 49, 486*0a9064fbSMasahiro Yamada 49, 49, 49, 49, 49, -22, 49 487*0a9064fbSMasahiro Yamada }, 488*0a9064fbSMasahiro Yamada 489*0a9064fbSMasahiro Yamada { 490*0a9064fbSMasahiro Yamada 11, -23, -23, -23, -23, -23, -23, -23, -23, -23, 491*0a9064fbSMasahiro Yamada -23, -23, -23, -23, -23, -23, -23 492*0a9064fbSMasahiro Yamada }, 493*0a9064fbSMasahiro Yamada 494*0a9064fbSMasahiro Yamada { 495*0a9064fbSMasahiro Yamada 11, -24, -24, -24, -24, -24, -24, -24, -24, -24, 496*0a9064fbSMasahiro Yamada -24, -24, -24, -24, -24, -24, -24 497*0a9064fbSMasahiro Yamada 498*0a9064fbSMasahiro Yamada }, 499*0a9064fbSMasahiro Yamada 500*0a9064fbSMasahiro Yamada { 501*0a9064fbSMasahiro Yamada 11, 51, 51, 52, 51, 51, 51, 51, 51, 51, 502*0a9064fbSMasahiro Yamada 51, 51, 51, 51, 51, 51, 51 503*0a9064fbSMasahiro Yamada }, 504*0a9064fbSMasahiro Yamada 505*0a9064fbSMasahiro Yamada { 506*0a9064fbSMasahiro Yamada 11, -26, -26, -26, -26, -26, -26, -26, -26, -26, 507*0a9064fbSMasahiro Yamada -26, -26, -26, -26, -26, -26, -26 508*0a9064fbSMasahiro Yamada }, 509*0a9064fbSMasahiro Yamada 510*0a9064fbSMasahiro Yamada { 511*0a9064fbSMasahiro Yamada 11, -27, -27, -27, -27, -27, -27, -27, -27, -27, 512*0a9064fbSMasahiro Yamada -27, -27, -27, -27, -27, -27, -27 513*0a9064fbSMasahiro Yamada }, 514*0a9064fbSMasahiro Yamada 515*0a9064fbSMasahiro Yamada { 516*0a9064fbSMasahiro Yamada 11, -28, -28, -28, -28, -28, -28, -28, -28, -28, 517*0a9064fbSMasahiro Yamada -28, -28, -28, -28, 53, -28, -28 518*0a9064fbSMasahiro Yamada }, 519*0a9064fbSMasahiro Yamada 520*0a9064fbSMasahiro Yamada { 521*0a9064fbSMasahiro Yamada 11, -29, -29, -29, -29, -29, -29, -29, -29, -29, 522*0a9064fbSMasahiro Yamada -29, -29, -29, -29, -29, -29, -29 523*0a9064fbSMasahiro Yamada 524*0a9064fbSMasahiro Yamada }, 525*0a9064fbSMasahiro Yamada 526*0a9064fbSMasahiro Yamada { 527*0a9064fbSMasahiro Yamada 11, 54, 54, -30, 54, 54, 54, 54, 54, 54, 528*0a9064fbSMasahiro Yamada 54, 54, 54, 54, 54, 54, 54 529*0a9064fbSMasahiro Yamada }, 530*0a9064fbSMasahiro Yamada 531*0a9064fbSMasahiro Yamada { 532*0a9064fbSMasahiro Yamada 11, -31, -31, -31, -31, -31, -31, 55, -31, -31, 533*0a9064fbSMasahiro Yamada -31, -31, -31, -31, -31, -31, -31 534*0a9064fbSMasahiro Yamada }, 535*0a9064fbSMasahiro Yamada 536*0a9064fbSMasahiro Yamada { 537*0a9064fbSMasahiro Yamada 11, -32, -32, -32, -32, -32, -32, -32, -32, -32, 538*0a9064fbSMasahiro Yamada -32, -32, -32, -32, -32, -32, -32 539*0a9064fbSMasahiro Yamada }, 540*0a9064fbSMasahiro Yamada 541*0a9064fbSMasahiro Yamada { 542*0a9064fbSMasahiro Yamada 11, -33, -33, -33, -33, -33, -33, -33, -33, -33, 543*0a9064fbSMasahiro Yamada -33, -33, -33, -33, -33, -33, -33 544*0a9064fbSMasahiro Yamada }, 545*0a9064fbSMasahiro Yamada 546*0a9064fbSMasahiro Yamada { 547*0a9064fbSMasahiro Yamada 11, -34, -34, -34, -34, -34, -34, -34, -34, -34, 548*0a9064fbSMasahiro Yamada -34, 56, 57, 57, -34, -34, -34 549*0a9064fbSMasahiro Yamada 550*0a9064fbSMasahiro Yamada }, 551*0a9064fbSMasahiro Yamada 552*0a9064fbSMasahiro Yamada { 553*0a9064fbSMasahiro Yamada 11, -35, -35, -35, -35, -35, -35, -35, -35, -35, 554*0a9064fbSMasahiro Yamada -35, 57, 57, 57, -35, -35, -35 555*0a9064fbSMasahiro Yamada }, 556*0a9064fbSMasahiro Yamada 557*0a9064fbSMasahiro Yamada { 558*0a9064fbSMasahiro Yamada 11, -36, -36, -36, -36, -36, -36, -36, -36, -36, 559*0a9064fbSMasahiro Yamada -36, -36, -36, -36, -36, -36, -36 560*0a9064fbSMasahiro Yamada }, 561*0a9064fbSMasahiro Yamada 562*0a9064fbSMasahiro Yamada { 563*0a9064fbSMasahiro Yamada 11, -37, -37, 58, -37, -37, -37, -37, -37, -37, 564*0a9064fbSMasahiro Yamada -37, -37, -37, -37, -37, -37, -37 565*0a9064fbSMasahiro Yamada }, 566*0a9064fbSMasahiro Yamada 567*0a9064fbSMasahiro Yamada { 568*0a9064fbSMasahiro Yamada 11, -38, -38, -38, -38, -38, -38, -38, -38, -38, 569*0a9064fbSMasahiro Yamada -38, -38, -38, -38, -38, -38, 59 570*0a9064fbSMasahiro Yamada }, 571*0a9064fbSMasahiro Yamada 572*0a9064fbSMasahiro Yamada { 573*0a9064fbSMasahiro Yamada 11, -39, 39, 40, -39, -39, 41, -39, -39, -39, 574*0a9064fbSMasahiro Yamada -39, -39, -39, -39, -39, -39, -39 575*0a9064fbSMasahiro Yamada 576*0a9064fbSMasahiro Yamada }, 577*0a9064fbSMasahiro Yamada 578*0a9064fbSMasahiro Yamada { 579*0a9064fbSMasahiro Yamada 11, -40, -40, -40, -40, -40, -40, -40, -40, -40, 580*0a9064fbSMasahiro Yamada -40, -40, -40, -40, -40, -40, -40 581*0a9064fbSMasahiro Yamada }, 582*0a9064fbSMasahiro Yamada 583*0a9064fbSMasahiro Yamada { 584*0a9064fbSMasahiro Yamada 11, 42, 42, 43, 42, 42, 42, 42, 42, 42, 585*0a9064fbSMasahiro Yamada 42, 42, 42, 42, 42, 42, 42 586*0a9064fbSMasahiro Yamada }, 587*0a9064fbSMasahiro Yamada 588*0a9064fbSMasahiro Yamada { 589*0a9064fbSMasahiro Yamada 11, 42, 42, 43, 42, 42, 42, 42, 42, 42, 590*0a9064fbSMasahiro Yamada 42, 42, 42, 42, 42, 42, 42 591*0a9064fbSMasahiro Yamada }, 592*0a9064fbSMasahiro Yamada 593*0a9064fbSMasahiro Yamada { 594*0a9064fbSMasahiro Yamada 11, -43, -43, -43, -43, -43, -43, -43, -43, -43, 595*0a9064fbSMasahiro Yamada -43, -43, -43, -43, -43, -43, -43 596*0a9064fbSMasahiro Yamada }, 597*0a9064fbSMasahiro Yamada 598*0a9064fbSMasahiro Yamada { 599*0a9064fbSMasahiro Yamada 11, -44, -44, -44, -44, -44, -44, -44, -44, -44, 600*0a9064fbSMasahiro Yamada -44, -44, -44, 44, -44, -44, -44 601*0a9064fbSMasahiro Yamada 602*0a9064fbSMasahiro Yamada }, 603*0a9064fbSMasahiro Yamada 604*0a9064fbSMasahiro Yamada { 605*0a9064fbSMasahiro Yamada 11, 45, 45, -45, 45, 45, 45, 45, 45, 45, 606*0a9064fbSMasahiro Yamada 45, 45, 45, 45, 45, 45, 45 607*0a9064fbSMasahiro Yamada }, 608*0a9064fbSMasahiro Yamada 609*0a9064fbSMasahiro Yamada { 610*0a9064fbSMasahiro Yamada 11, -46, 46, 47, -46, -46, -46, -46, -46, -46, 611*0a9064fbSMasahiro Yamada -46, -46, -46, -46, -46, -46, -46 612*0a9064fbSMasahiro Yamada }, 613*0a9064fbSMasahiro Yamada 614*0a9064fbSMasahiro Yamada { 615*0a9064fbSMasahiro Yamada 11, 48, -47, -47, 48, 48, 48, 48, 48, 48, 616*0a9064fbSMasahiro Yamada 48, 48, 48, 48, 48, 48, 48 617*0a9064fbSMasahiro Yamada }, 618*0a9064fbSMasahiro Yamada 619*0a9064fbSMasahiro Yamada { 620*0a9064fbSMasahiro Yamada 11, -48, -48, -48, -48, -48, -48, -48, -48, -48, 621*0a9064fbSMasahiro Yamada -48, -48, -48, -48, -48, -48, -48 622*0a9064fbSMasahiro Yamada }, 623*0a9064fbSMasahiro Yamada 624*0a9064fbSMasahiro Yamada { 625*0a9064fbSMasahiro Yamada 11, 49, 49, 50, 49, -49, 49, 49, -49, 49, 626*0a9064fbSMasahiro Yamada 49, 49, 49, 49, 49, -49, 49 627*0a9064fbSMasahiro Yamada 628*0a9064fbSMasahiro Yamada }, 629*0a9064fbSMasahiro Yamada 630*0a9064fbSMasahiro Yamada { 631*0a9064fbSMasahiro Yamada 11, -50, -50, -50, -50, -50, -50, -50, -50, -50, 632*0a9064fbSMasahiro Yamada -50, -50, -50, -50, -50, -50, -50 633*0a9064fbSMasahiro Yamada }, 634*0a9064fbSMasahiro Yamada 635*0a9064fbSMasahiro Yamada { 636*0a9064fbSMasahiro Yamada 11, -51, -51, 52, -51, -51, -51, -51, -51, -51, 637*0a9064fbSMasahiro Yamada -51, -51, -51, -51, -51, -51, -51 638*0a9064fbSMasahiro Yamada }, 639*0a9064fbSMasahiro Yamada 640*0a9064fbSMasahiro Yamada { 641*0a9064fbSMasahiro Yamada 11, -52, -52, -52, -52, -52, -52, -52, -52, -52, 642*0a9064fbSMasahiro Yamada -52, -52, -52, -52, -52, -52, -52 643*0a9064fbSMasahiro Yamada }, 644*0a9064fbSMasahiro Yamada 645*0a9064fbSMasahiro Yamada { 646*0a9064fbSMasahiro Yamada 11, -53, -53, -53, -53, -53, -53, -53, -53, -53, 647*0a9064fbSMasahiro Yamada -53, -53, -53, -53, -53, -53, -53 648*0a9064fbSMasahiro Yamada }, 649*0a9064fbSMasahiro Yamada 650*0a9064fbSMasahiro Yamada { 651*0a9064fbSMasahiro Yamada 11, 54, 54, -54, 54, 54, 54, 54, 54, 54, 652*0a9064fbSMasahiro Yamada 54, 54, 54, 54, 54, 54, 54 653*0a9064fbSMasahiro Yamada 654*0a9064fbSMasahiro Yamada }, 655*0a9064fbSMasahiro Yamada 656*0a9064fbSMasahiro Yamada { 657*0a9064fbSMasahiro Yamada 11, -55, -55, -55, -55, -55, -55, -55, -55, -55, 658*0a9064fbSMasahiro Yamada -55, -55, -55, -55, -55, -55, -55 659*0a9064fbSMasahiro Yamada }, 660*0a9064fbSMasahiro Yamada 661*0a9064fbSMasahiro Yamada { 662*0a9064fbSMasahiro Yamada 11, -56, -56, -56, -56, -56, -56, -56, -56, -56, 663*0a9064fbSMasahiro Yamada -56, 60, 57, 57, -56, -56, -56 664*0a9064fbSMasahiro Yamada }, 665*0a9064fbSMasahiro Yamada 666*0a9064fbSMasahiro Yamada { 667*0a9064fbSMasahiro Yamada 11, -57, -57, -57, -57, -57, -57, -57, -57, -57, 668*0a9064fbSMasahiro Yamada -57, 57, 57, 57, -57, -57, -57 669*0a9064fbSMasahiro Yamada }, 670*0a9064fbSMasahiro Yamada 671*0a9064fbSMasahiro Yamada { 672*0a9064fbSMasahiro Yamada 11, -58, -58, -58, -58, -58, -58, -58, -58, -58, 673*0a9064fbSMasahiro Yamada -58, -58, -58, -58, -58, -58, -58 674*0a9064fbSMasahiro Yamada }, 675*0a9064fbSMasahiro Yamada 676*0a9064fbSMasahiro Yamada { 677*0a9064fbSMasahiro Yamada 11, -59, -59, -59, -59, -59, -59, -59, -59, -59, 678*0a9064fbSMasahiro Yamada -59, -59, -59, -59, -59, -59, -59 679*0a9064fbSMasahiro Yamada 680*0a9064fbSMasahiro Yamada }, 681*0a9064fbSMasahiro Yamada 682*0a9064fbSMasahiro Yamada { 683*0a9064fbSMasahiro Yamada 11, -60, -60, -60, -60, -60, -60, -60, -60, -60, 684*0a9064fbSMasahiro Yamada -60, 57, 57, 57, -60, -60, -60 685*0a9064fbSMasahiro Yamada }, 686*0a9064fbSMasahiro Yamada 687*0a9064fbSMasahiro Yamada } ; 688*0a9064fbSMasahiro Yamada 689*0a9064fbSMasahiro Yamadastatic yy_state_type yy_get_previous_state (void ); 690*0a9064fbSMasahiro Yamadastatic yy_state_type yy_try_NUL_trans (yy_state_type current_state ); 691*0a9064fbSMasahiro Yamadastatic int yy_get_next_buffer (void ); 692*0a9064fbSMasahiro Yamadastatic void yy_fatal_error (yyconst char msg[] ); 693*0a9064fbSMasahiro Yamada 694*0a9064fbSMasahiro Yamada/* Done after the current pattern has been matched and before the 695*0a9064fbSMasahiro Yamada * corresponding action - sets up zconftext. 696*0a9064fbSMasahiro Yamada */ 697*0a9064fbSMasahiro Yamada#define YY_DO_BEFORE_ACTION \ 698*0a9064fbSMasahiro Yamada (yytext_ptr) = yy_bp; \ 699*0a9064fbSMasahiro Yamada zconfleng = (size_t) (yy_cp - yy_bp); \ 700*0a9064fbSMasahiro Yamada (yy_hold_char) = *yy_cp; \ 701*0a9064fbSMasahiro Yamada *yy_cp = '\0'; \ 702*0a9064fbSMasahiro Yamada (yy_c_buf_p) = yy_cp; 703*0a9064fbSMasahiro Yamada 704*0a9064fbSMasahiro Yamada#define YY_NUM_RULES 33 705*0a9064fbSMasahiro Yamada#define YY_END_OF_BUFFER 34 706*0a9064fbSMasahiro Yamada/* This struct is not used in this scanner, 707*0a9064fbSMasahiro Yamada but its presence is necessary. */ 708*0a9064fbSMasahiro Yamadastruct yy_trans_info 709*0a9064fbSMasahiro Yamada { 710*0a9064fbSMasahiro Yamada flex_int32_t yy_verify; 711*0a9064fbSMasahiro Yamada flex_int32_t yy_nxt; 712*0a9064fbSMasahiro Yamada }; 713*0a9064fbSMasahiro Yamadastatic yyconst flex_int16_t yy_accept[61] = 714*0a9064fbSMasahiro Yamada { 0, 715*0a9064fbSMasahiro Yamada 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 716*0a9064fbSMasahiro Yamada 34, 5, 4, 2, 3, 7, 8, 6, 32, 29, 717*0a9064fbSMasahiro Yamada 31, 24, 28, 27, 26, 22, 17, 13, 16, 20, 718*0a9064fbSMasahiro Yamada 22, 11, 12, 19, 19, 14, 22, 22, 4, 2, 719*0a9064fbSMasahiro Yamada 3, 3, 1, 6, 32, 29, 31, 30, 24, 23, 720*0a9064fbSMasahiro Yamada 26, 25, 15, 20, 9, 19, 19, 21, 10, 18 721*0a9064fbSMasahiro Yamada } ; 722*0a9064fbSMasahiro Yamada 723*0a9064fbSMasahiro Yamadastatic yyconst flex_int32_t yy_ec[256] = 724*0a9064fbSMasahiro Yamada { 0, 725*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 726*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 727*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 728*0a9064fbSMasahiro Yamada 1, 2, 4, 5, 6, 1, 1, 7, 8, 9, 729*0a9064fbSMasahiro Yamada 10, 1, 1, 1, 11, 12, 12, 13, 13, 13, 730*0a9064fbSMasahiro Yamada 13, 13, 13, 13, 13, 13, 13, 1, 1, 1, 731*0a9064fbSMasahiro Yamada 14, 1, 1, 1, 13, 13, 13, 13, 13, 13, 732*0a9064fbSMasahiro Yamada 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 733*0a9064fbSMasahiro Yamada 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 734*0a9064fbSMasahiro Yamada 1, 15, 1, 1, 13, 1, 13, 13, 13, 13, 735*0a9064fbSMasahiro Yamada 736*0a9064fbSMasahiro Yamada 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 737*0a9064fbSMasahiro Yamada 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 738*0a9064fbSMasahiro Yamada 13, 13, 1, 16, 1, 1, 1, 1, 1, 1, 739*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 740*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 741*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 742*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 743*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 744*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 745*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 746*0a9064fbSMasahiro Yamada 747*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 748*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 749*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 750*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 751*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 752*0a9064fbSMasahiro Yamada 1, 1, 1, 1, 1 753*0a9064fbSMasahiro Yamada } ; 754*0a9064fbSMasahiro Yamada 755*0a9064fbSMasahiro Yamadaextern int zconf_flex_debug; 756*0a9064fbSMasahiro Yamadaint zconf_flex_debug = 0; 757*0a9064fbSMasahiro Yamada 758*0a9064fbSMasahiro Yamada/* The intent behind this definition is that it'll catch 759*0a9064fbSMasahiro Yamada * any uses of REJECT which flex missed. 760*0a9064fbSMasahiro Yamada */ 761*0a9064fbSMasahiro Yamada#define REJECT reject_used_but_not_detected 762*0a9064fbSMasahiro Yamada#define yymore() yymore_used_but_not_detected 763*0a9064fbSMasahiro Yamada#define YY_MORE_ADJ 0 764*0a9064fbSMasahiro Yamada#define YY_RESTORE_YY_MORE_OFFSET 765*0a9064fbSMasahiro Yamadachar *zconftext; 766*0a9064fbSMasahiro Yamada#define YY_NO_INPUT 1 767*0a9064fbSMasahiro Yamada 768*0a9064fbSMasahiro Yamada/* 769*0a9064fbSMasahiro Yamada * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org> 770*0a9064fbSMasahiro Yamada * Released under the terms of the GNU GPL v2.0. 771*0a9064fbSMasahiro Yamada */ 772*0a9064fbSMasahiro Yamada 773*0a9064fbSMasahiro Yamada#include <limits.h> 774*0a9064fbSMasahiro Yamada#include <stdio.h> 775*0a9064fbSMasahiro Yamada#include <stdlib.h> 776*0a9064fbSMasahiro Yamada#include <string.h> 777*0a9064fbSMasahiro Yamada#include <unistd.h> 778*0a9064fbSMasahiro Yamada 779*0a9064fbSMasahiro Yamada#include "lkc.h" 780*0a9064fbSMasahiro Yamada 781*0a9064fbSMasahiro Yamada#define START_STRSIZE 16 782*0a9064fbSMasahiro Yamada 783*0a9064fbSMasahiro Yamadastatic struct { 784*0a9064fbSMasahiro Yamada struct file *file; 785*0a9064fbSMasahiro Yamada int lineno; 786*0a9064fbSMasahiro Yamada} current_pos; 787*0a9064fbSMasahiro Yamada 788*0a9064fbSMasahiro Yamadastatic char *text; 789*0a9064fbSMasahiro Yamadastatic int text_size, text_asize; 790*0a9064fbSMasahiro Yamada 791*0a9064fbSMasahiro Yamadastruct buffer { 792*0a9064fbSMasahiro Yamada struct buffer *parent; 793*0a9064fbSMasahiro Yamada YY_BUFFER_STATE state; 794*0a9064fbSMasahiro Yamada}; 795*0a9064fbSMasahiro Yamada 796*0a9064fbSMasahiro Yamadastruct buffer *current_buf; 797*0a9064fbSMasahiro Yamada 798*0a9064fbSMasahiro Yamadastatic int last_ts, first_ts; 799*0a9064fbSMasahiro Yamada 800*0a9064fbSMasahiro Yamadastatic void zconf_endhelp(void); 801*0a9064fbSMasahiro Yamadastatic void zconf_endfile(void); 802*0a9064fbSMasahiro Yamada 803*0a9064fbSMasahiro Yamadastatic void new_string(void) 804*0a9064fbSMasahiro Yamada{ 805*0a9064fbSMasahiro Yamada text = xmalloc(START_STRSIZE); 806*0a9064fbSMasahiro Yamada text_asize = START_STRSIZE; 807*0a9064fbSMasahiro Yamada text_size = 0; 808*0a9064fbSMasahiro Yamada *text = 0; 809*0a9064fbSMasahiro Yamada} 810*0a9064fbSMasahiro Yamada 811*0a9064fbSMasahiro Yamadastatic void append_string(const char *str, int size) 812*0a9064fbSMasahiro Yamada{ 813*0a9064fbSMasahiro Yamada int new_size = text_size + size + 1; 814*0a9064fbSMasahiro Yamada if (new_size > text_asize) { 815*0a9064fbSMasahiro Yamada new_size += START_STRSIZE - 1; 816*0a9064fbSMasahiro Yamada new_size &= -START_STRSIZE; 817*0a9064fbSMasahiro Yamada text = realloc(text, new_size); 818*0a9064fbSMasahiro Yamada text_asize = new_size; 819*0a9064fbSMasahiro Yamada } 820*0a9064fbSMasahiro Yamada memcpy(text + text_size, str, size); 821*0a9064fbSMasahiro Yamada text_size += size; 822*0a9064fbSMasahiro Yamada text[text_size] = 0; 823*0a9064fbSMasahiro Yamada} 824*0a9064fbSMasahiro Yamada 825*0a9064fbSMasahiro Yamadastatic void alloc_string(const char *str, int size) 826*0a9064fbSMasahiro Yamada{ 827*0a9064fbSMasahiro Yamada text = xmalloc(size + 1); 828*0a9064fbSMasahiro Yamada memcpy(text, str, size); 829*0a9064fbSMasahiro Yamada text[size] = 0; 830*0a9064fbSMasahiro Yamada} 831*0a9064fbSMasahiro Yamada 832*0a9064fbSMasahiro Yamada#define INITIAL 0 833*0a9064fbSMasahiro Yamada#define COMMAND 1 834*0a9064fbSMasahiro Yamada#define HELP 2 835*0a9064fbSMasahiro Yamada#define STRING 3 836*0a9064fbSMasahiro Yamada#define PARAM 4 837*0a9064fbSMasahiro Yamada 838*0a9064fbSMasahiro Yamada#ifndef YY_NO_UNISTD_H 839*0a9064fbSMasahiro Yamada/* Special case for "unistd.h", since it is non-ANSI. We include it way 840*0a9064fbSMasahiro Yamada * down here because we want the user's section 1 to have been scanned first. 841*0a9064fbSMasahiro Yamada * The user has a chance to override it with an option. 842*0a9064fbSMasahiro Yamada */ 843*0a9064fbSMasahiro Yamada#include <unistd.h> 844*0a9064fbSMasahiro Yamada#endif 845*0a9064fbSMasahiro Yamada 846*0a9064fbSMasahiro Yamada#ifndef YY_EXTRA_TYPE 847*0a9064fbSMasahiro Yamada#define YY_EXTRA_TYPE void * 848*0a9064fbSMasahiro Yamada#endif 849*0a9064fbSMasahiro Yamada 850*0a9064fbSMasahiro Yamadastatic int yy_init_globals (void ); 851*0a9064fbSMasahiro Yamada 852*0a9064fbSMasahiro Yamada/* Accessor methods to globals. 853*0a9064fbSMasahiro Yamada These are made visible to non-reentrant scanners for convenience. */ 854*0a9064fbSMasahiro Yamada 855*0a9064fbSMasahiro Yamadaint zconflex_destroy (void ); 856*0a9064fbSMasahiro Yamada 857*0a9064fbSMasahiro Yamadaint zconfget_debug (void ); 858*0a9064fbSMasahiro Yamada 859*0a9064fbSMasahiro Yamadavoid zconfset_debug (int debug_flag ); 860*0a9064fbSMasahiro Yamada 861*0a9064fbSMasahiro YamadaYY_EXTRA_TYPE zconfget_extra (void ); 862*0a9064fbSMasahiro Yamada 863*0a9064fbSMasahiro Yamadavoid zconfset_extra (YY_EXTRA_TYPE user_defined ); 864*0a9064fbSMasahiro Yamada 865*0a9064fbSMasahiro YamadaFILE *zconfget_in (void ); 866*0a9064fbSMasahiro Yamada 867*0a9064fbSMasahiro Yamadavoid zconfset_in (FILE * in_str ); 868*0a9064fbSMasahiro Yamada 869*0a9064fbSMasahiro YamadaFILE *zconfget_out (void ); 870*0a9064fbSMasahiro Yamada 871*0a9064fbSMasahiro Yamadavoid zconfset_out (FILE * out_str ); 872*0a9064fbSMasahiro Yamada 873*0a9064fbSMasahiro Yamadaint zconfget_leng (void ); 874*0a9064fbSMasahiro Yamada 875*0a9064fbSMasahiro Yamadachar *zconfget_text (void ); 876*0a9064fbSMasahiro Yamada 877*0a9064fbSMasahiro Yamadaint zconfget_lineno (void ); 878*0a9064fbSMasahiro Yamada 879*0a9064fbSMasahiro Yamadavoid zconfset_lineno (int line_number ); 880*0a9064fbSMasahiro Yamada 881*0a9064fbSMasahiro Yamada/* Macros after this point can all be overridden by user definitions in 882*0a9064fbSMasahiro Yamada * section 1. 883*0a9064fbSMasahiro Yamada */ 884*0a9064fbSMasahiro Yamada 885*0a9064fbSMasahiro Yamada#ifndef YY_SKIP_YYWRAP 886*0a9064fbSMasahiro Yamada#ifdef __cplusplus 887*0a9064fbSMasahiro Yamadaextern "C" int zconfwrap (void ); 888*0a9064fbSMasahiro Yamada#else 889*0a9064fbSMasahiro Yamadaextern int zconfwrap (void ); 890*0a9064fbSMasahiro Yamada#endif 891*0a9064fbSMasahiro Yamada#endif 892*0a9064fbSMasahiro Yamada 893*0a9064fbSMasahiro Yamada static void yyunput (int c,char *buf_ptr ); 894*0a9064fbSMasahiro Yamada 895*0a9064fbSMasahiro Yamada#ifndef yytext_ptr 896*0a9064fbSMasahiro Yamadastatic void yy_flex_strncpy (char *,yyconst char *,int ); 897*0a9064fbSMasahiro Yamada#endif 898*0a9064fbSMasahiro Yamada 899*0a9064fbSMasahiro Yamada#ifdef YY_NEED_STRLEN 900*0a9064fbSMasahiro Yamadastatic int yy_flex_strlen (yyconst char * ); 901*0a9064fbSMasahiro Yamada#endif 902*0a9064fbSMasahiro Yamada 903*0a9064fbSMasahiro Yamada#ifndef YY_NO_INPUT 904*0a9064fbSMasahiro Yamada 905*0a9064fbSMasahiro Yamada#ifdef __cplusplus 906*0a9064fbSMasahiro Yamadastatic int yyinput (void ); 907*0a9064fbSMasahiro Yamada#else 908*0a9064fbSMasahiro Yamadastatic int input (void ); 909*0a9064fbSMasahiro Yamada#endif 910*0a9064fbSMasahiro Yamada 911*0a9064fbSMasahiro Yamada#endif 912*0a9064fbSMasahiro Yamada 913*0a9064fbSMasahiro Yamada/* Amount of stuff to slurp up with each read. */ 914*0a9064fbSMasahiro Yamada#ifndef YY_READ_BUF_SIZE 915*0a9064fbSMasahiro Yamada#define YY_READ_BUF_SIZE 8192 916*0a9064fbSMasahiro Yamada#endif 917*0a9064fbSMasahiro Yamada 918*0a9064fbSMasahiro Yamada/* Copy whatever the last rule matched to the standard output. */ 919*0a9064fbSMasahiro Yamada#ifndef ECHO 920*0a9064fbSMasahiro Yamada/* This used to be an fputs(), but since the string might contain NUL's, 921*0a9064fbSMasahiro Yamada * we now use fwrite(). 922*0a9064fbSMasahiro Yamada */ 923*0a9064fbSMasahiro Yamada#define ECHO do { if (fwrite( zconftext, zconfleng, 1, zconfout )) {} } while (0) 924*0a9064fbSMasahiro Yamada#endif 925*0a9064fbSMasahiro Yamada 926*0a9064fbSMasahiro Yamada/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 927*0a9064fbSMasahiro Yamada * is returned in "result". 928*0a9064fbSMasahiro Yamada */ 929*0a9064fbSMasahiro Yamada#ifndef YY_INPUT 930*0a9064fbSMasahiro Yamada#define YY_INPUT(buf,result,max_size) \ 931*0a9064fbSMasahiro Yamada errno=0; \ 932*0a9064fbSMasahiro Yamada while ( (result = read( fileno(zconfin), (char *) buf, max_size )) < 0 ) \ 933*0a9064fbSMasahiro Yamada { \ 934*0a9064fbSMasahiro Yamada if( errno != EINTR) \ 935*0a9064fbSMasahiro Yamada { \ 936*0a9064fbSMasahiro Yamada YY_FATAL_ERROR( "input in flex scanner failed" ); \ 937*0a9064fbSMasahiro Yamada break; \ 938*0a9064fbSMasahiro Yamada } \ 939*0a9064fbSMasahiro Yamada errno=0; \ 940*0a9064fbSMasahiro Yamada clearerr(zconfin); \ 941*0a9064fbSMasahiro Yamada }\ 942*0a9064fbSMasahiro Yamada\ 943*0a9064fbSMasahiro Yamada 944*0a9064fbSMasahiro Yamada#endif 945*0a9064fbSMasahiro Yamada 946*0a9064fbSMasahiro Yamada/* No semi-colon after return; correct usage is to write "yyterminate();" - 947*0a9064fbSMasahiro Yamada * we don't want an extra ';' after the "return" because that will cause 948*0a9064fbSMasahiro Yamada * some compilers to complain about unreachable statements. 949*0a9064fbSMasahiro Yamada */ 950*0a9064fbSMasahiro Yamada#ifndef yyterminate 951*0a9064fbSMasahiro Yamada#define yyterminate() return YY_NULL 952*0a9064fbSMasahiro Yamada#endif 953*0a9064fbSMasahiro Yamada 954*0a9064fbSMasahiro Yamada/* Number of entries by which start-condition stack grows. */ 955*0a9064fbSMasahiro Yamada#ifndef YY_START_STACK_INCR 956*0a9064fbSMasahiro Yamada#define YY_START_STACK_INCR 25 957*0a9064fbSMasahiro Yamada#endif 958*0a9064fbSMasahiro Yamada 959*0a9064fbSMasahiro Yamada/* Report a fatal error. */ 960*0a9064fbSMasahiro Yamada#ifndef YY_FATAL_ERROR 961*0a9064fbSMasahiro Yamada#define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 962*0a9064fbSMasahiro Yamada#endif 963*0a9064fbSMasahiro Yamada 964*0a9064fbSMasahiro Yamada/* end tables serialization structures and prototypes */ 965*0a9064fbSMasahiro Yamada 966*0a9064fbSMasahiro Yamada/* Default declaration of generated scanner - a define so the user can 967*0a9064fbSMasahiro Yamada * easily add parameters. 968*0a9064fbSMasahiro Yamada */ 969*0a9064fbSMasahiro Yamada#ifndef YY_DECL 970*0a9064fbSMasahiro Yamada#define YY_DECL_IS_OURS 1 971*0a9064fbSMasahiro Yamada 972*0a9064fbSMasahiro Yamadaextern int zconflex (void); 973*0a9064fbSMasahiro Yamada 974*0a9064fbSMasahiro Yamada#define YY_DECL int zconflex (void) 975*0a9064fbSMasahiro Yamada#endif /* !YY_DECL */ 976*0a9064fbSMasahiro Yamada 977*0a9064fbSMasahiro Yamada/* Code executed at the beginning of each rule, after zconftext and zconfleng 978*0a9064fbSMasahiro Yamada * have been set up. 979*0a9064fbSMasahiro Yamada */ 980*0a9064fbSMasahiro Yamada#ifndef YY_USER_ACTION 981*0a9064fbSMasahiro Yamada#define YY_USER_ACTION 982*0a9064fbSMasahiro Yamada#endif 983*0a9064fbSMasahiro Yamada 984*0a9064fbSMasahiro Yamada/* Code executed at the end of each rule. */ 985*0a9064fbSMasahiro Yamada#ifndef YY_BREAK 986*0a9064fbSMasahiro Yamada#define YY_BREAK break; 987*0a9064fbSMasahiro Yamada#endif 988*0a9064fbSMasahiro Yamada 989*0a9064fbSMasahiro Yamada#define YY_RULE_SETUP \ 990*0a9064fbSMasahiro Yamada YY_USER_ACTION 991*0a9064fbSMasahiro Yamada 992*0a9064fbSMasahiro Yamada/** The main scanner function which does all the work. 993*0a9064fbSMasahiro Yamada */ 994*0a9064fbSMasahiro YamadaYY_DECL 995*0a9064fbSMasahiro Yamada{ 996*0a9064fbSMasahiro Yamada register yy_state_type yy_current_state; 997*0a9064fbSMasahiro Yamada register char *yy_cp, *yy_bp; 998*0a9064fbSMasahiro Yamada register int yy_act; 999*0a9064fbSMasahiro Yamada 1000*0a9064fbSMasahiro Yamada int str = 0; 1001*0a9064fbSMasahiro Yamada int ts, i; 1002*0a9064fbSMasahiro Yamada 1003*0a9064fbSMasahiro Yamada if ( !(yy_init) ) 1004*0a9064fbSMasahiro Yamada { 1005*0a9064fbSMasahiro Yamada (yy_init) = 1; 1006*0a9064fbSMasahiro Yamada 1007*0a9064fbSMasahiro Yamada#ifdef YY_USER_INIT 1008*0a9064fbSMasahiro Yamada YY_USER_INIT; 1009*0a9064fbSMasahiro Yamada#endif 1010*0a9064fbSMasahiro Yamada 1011*0a9064fbSMasahiro Yamada if ( ! (yy_start) ) 1012*0a9064fbSMasahiro Yamada (yy_start) = 1; /* first start state */ 1013*0a9064fbSMasahiro Yamada 1014*0a9064fbSMasahiro Yamada if ( ! zconfin ) 1015*0a9064fbSMasahiro Yamada zconfin = stdin; 1016*0a9064fbSMasahiro Yamada 1017*0a9064fbSMasahiro Yamada if ( ! zconfout ) 1018*0a9064fbSMasahiro Yamada zconfout = stdout; 1019*0a9064fbSMasahiro Yamada 1020*0a9064fbSMasahiro Yamada if ( ! YY_CURRENT_BUFFER ) { 1021*0a9064fbSMasahiro Yamada zconfensure_buffer_stack (); 1022*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE = 1023*0a9064fbSMasahiro Yamada zconf_create_buffer(zconfin,YY_BUF_SIZE ); 1024*0a9064fbSMasahiro Yamada } 1025*0a9064fbSMasahiro Yamada 1026*0a9064fbSMasahiro Yamada zconf_load_buffer_state( ); 1027*0a9064fbSMasahiro Yamada } 1028*0a9064fbSMasahiro Yamada 1029*0a9064fbSMasahiro Yamada while ( 1 ) /* loops until end-of-file is reached */ 1030*0a9064fbSMasahiro Yamada { 1031*0a9064fbSMasahiro Yamada yy_cp = (yy_c_buf_p); 1032*0a9064fbSMasahiro Yamada 1033*0a9064fbSMasahiro Yamada /* Support of zconftext. */ 1034*0a9064fbSMasahiro Yamada *yy_cp = (yy_hold_char); 1035*0a9064fbSMasahiro Yamada 1036*0a9064fbSMasahiro Yamada /* yy_bp points to the position in yy_ch_buf of the start of 1037*0a9064fbSMasahiro Yamada * the current run. 1038*0a9064fbSMasahiro Yamada */ 1039*0a9064fbSMasahiro Yamada yy_bp = yy_cp; 1040*0a9064fbSMasahiro Yamada 1041*0a9064fbSMasahiro Yamada yy_current_state = (yy_start); 1042*0a9064fbSMasahiro Yamadayy_match: 1043*0a9064fbSMasahiro Yamada while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)] ]) > 0 ) 1044*0a9064fbSMasahiro Yamada ++yy_cp; 1045*0a9064fbSMasahiro Yamada 1046*0a9064fbSMasahiro Yamada yy_current_state = -yy_current_state; 1047*0a9064fbSMasahiro Yamada 1048*0a9064fbSMasahiro Yamadayy_find_action: 1049*0a9064fbSMasahiro Yamada yy_act = yy_accept[yy_current_state]; 1050*0a9064fbSMasahiro Yamada 1051*0a9064fbSMasahiro Yamada YY_DO_BEFORE_ACTION; 1052*0a9064fbSMasahiro Yamada 1053*0a9064fbSMasahiro Yamadado_action: /* This label is used only to access EOF actions. */ 1054*0a9064fbSMasahiro Yamada 1055*0a9064fbSMasahiro Yamada switch ( yy_act ) 1056*0a9064fbSMasahiro Yamada { /* beginning of action switch */ 1057*0a9064fbSMasahiro Yamadacase 1: 1058*0a9064fbSMasahiro Yamada/* rule 1 can match eol */ 1059*0a9064fbSMasahiro Yamadacase 2: 1060*0a9064fbSMasahiro Yamada/* rule 2 can match eol */ 1061*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1062*0a9064fbSMasahiro Yamada{ 1063*0a9064fbSMasahiro Yamada current_file->lineno++; 1064*0a9064fbSMasahiro Yamada return T_EOL; 1065*0a9064fbSMasahiro Yamada} 1066*0a9064fbSMasahiro Yamada YY_BREAK 1067*0a9064fbSMasahiro Yamadacase 3: 1068*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1069*0a9064fbSMasahiro Yamada 1070*0a9064fbSMasahiro Yamada YY_BREAK 1071*0a9064fbSMasahiro Yamadacase 4: 1072*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1073*0a9064fbSMasahiro Yamada{ 1074*0a9064fbSMasahiro Yamada BEGIN(COMMAND); 1075*0a9064fbSMasahiro Yamada} 1076*0a9064fbSMasahiro Yamada YY_BREAK 1077*0a9064fbSMasahiro Yamadacase 5: 1078*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1079*0a9064fbSMasahiro Yamada{ 1080*0a9064fbSMasahiro Yamada unput(zconftext[0]); 1081*0a9064fbSMasahiro Yamada BEGIN(COMMAND); 1082*0a9064fbSMasahiro Yamada} 1083*0a9064fbSMasahiro Yamada YY_BREAK 1084*0a9064fbSMasahiro Yamada 1085*0a9064fbSMasahiro Yamadacase 6: 1086*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1087*0a9064fbSMasahiro Yamada{ 1088*0a9064fbSMasahiro Yamada const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng); 1089*0a9064fbSMasahiro Yamada BEGIN(PARAM); 1090*0a9064fbSMasahiro Yamada current_pos.file = current_file; 1091*0a9064fbSMasahiro Yamada current_pos.lineno = current_file->lineno; 1092*0a9064fbSMasahiro Yamada if (id && id->flags & TF_COMMAND) { 1093*0a9064fbSMasahiro Yamada zconflval.id = id; 1094*0a9064fbSMasahiro Yamada return id->token; 1095*0a9064fbSMasahiro Yamada } 1096*0a9064fbSMasahiro Yamada alloc_string(zconftext, zconfleng); 1097*0a9064fbSMasahiro Yamada zconflval.string = text; 1098*0a9064fbSMasahiro Yamada return T_WORD; 1099*0a9064fbSMasahiro Yamada } 1100*0a9064fbSMasahiro Yamada YY_BREAK 1101*0a9064fbSMasahiro Yamadacase 7: 1102*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1103*0a9064fbSMasahiro Yamada 1104*0a9064fbSMasahiro Yamada YY_BREAK 1105*0a9064fbSMasahiro Yamadacase 8: 1106*0a9064fbSMasahiro Yamada/* rule 8 can match eol */ 1107*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1108*0a9064fbSMasahiro Yamada{ 1109*0a9064fbSMasahiro Yamada BEGIN(INITIAL); 1110*0a9064fbSMasahiro Yamada current_file->lineno++; 1111*0a9064fbSMasahiro Yamada return T_EOL; 1112*0a9064fbSMasahiro Yamada } 1113*0a9064fbSMasahiro Yamada YY_BREAK 1114*0a9064fbSMasahiro Yamada 1115*0a9064fbSMasahiro Yamadacase 9: 1116*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1117*0a9064fbSMasahiro Yamadareturn T_AND; 1118*0a9064fbSMasahiro Yamada YY_BREAK 1119*0a9064fbSMasahiro Yamadacase 10: 1120*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1121*0a9064fbSMasahiro Yamadareturn T_OR; 1122*0a9064fbSMasahiro Yamada YY_BREAK 1123*0a9064fbSMasahiro Yamadacase 11: 1124*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1125*0a9064fbSMasahiro Yamadareturn T_OPEN_PAREN; 1126*0a9064fbSMasahiro Yamada YY_BREAK 1127*0a9064fbSMasahiro Yamadacase 12: 1128*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1129*0a9064fbSMasahiro Yamadareturn T_CLOSE_PAREN; 1130*0a9064fbSMasahiro Yamada YY_BREAK 1131*0a9064fbSMasahiro Yamadacase 13: 1132*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1133*0a9064fbSMasahiro Yamadareturn T_NOT; 1134*0a9064fbSMasahiro Yamada YY_BREAK 1135*0a9064fbSMasahiro Yamadacase 14: 1136*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1137*0a9064fbSMasahiro Yamadareturn T_EQUAL; 1138*0a9064fbSMasahiro Yamada YY_BREAK 1139*0a9064fbSMasahiro Yamadacase 15: 1140*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1141*0a9064fbSMasahiro Yamadareturn T_UNEQUAL; 1142*0a9064fbSMasahiro Yamada YY_BREAK 1143*0a9064fbSMasahiro Yamadacase 16: 1144*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1145*0a9064fbSMasahiro Yamada{ 1146*0a9064fbSMasahiro Yamada str = zconftext[0]; 1147*0a9064fbSMasahiro Yamada new_string(); 1148*0a9064fbSMasahiro Yamada BEGIN(STRING); 1149*0a9064fbSMasahiro Yamada } 1150*0a9064fbSMasahiro Yamada YY_BREAK 1151*0a9064fbSMasahiro Yamadacase 17: 1152*0a9064fbSMasahiro Yamada/* rule 17 can match eol */ 1153*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1154*0a9064fbSMasahiro YamadaBEGIN(INITIAL); current_file->lineno++; return T_EOL; 1155*0a9064fbSMasahiro Yamada YY_BREAK 1156*0a9064fbSMasahiro Yamadacase 18: 1157*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1158*0a9064fbSMasahiro Yamada/* ignore */ 1159*0a9064fbSMasahiro Yamada YY_BREAK 1160*0a9064fbSMasahiro Yamadacase 19: 1161*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1162*0a9064fbSMasahiro Yamada{ 1163*0a9064fbSMasahiro Yamada const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng); 1164*0a9064fbSMasahiro Yamada if (id && id->flags & TF_PARAM) { 1165*0a9064fbSMasahiro Yamada zconflval.id = id; 1166*0a9064fbSMasahiro Yamada return id->token; 1167*0a9064fbSMasahiro Yamada } 1168*0a9064fbSMasahiro Yamada alloc_string(zconftext, zconfleng); 1169*0a9064fbSMasahiro Yamada zconflval.string = text; 1170*0a9064fbSMasahiro Yamada return T_WORD; 1171*0a9064fbSMasahiro Yamada } 1172*0a9064fbSMasahiro Yamada YY_BREAK 1173*0a9064fbSMasahiro Yamadacase 20: 1174*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1175*0a9064fbSMasahiro Yamada/* comment */ 1176*0a9064fbSMasahiro Yamada YY_BREAK 1177*0a9064fbSMasahiro Yamadacase 21: 1178*0a9064fbSMasahiro Yamada/* rule 21 can match eol */ 1179*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1180*0a9064fbSMasahiro Yamadacurrent_file->lineno++; 1181*0a9064fbSMasahiro Yamada YY_BREAK 1182*0a9064fbSMasahiro Yamadacase 22: 1183*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1184*0a9064fbSMasahiro Yamada 1185*0a9064fbSMasahiro Yamada YY_BREAK 1186*0a9064fbSMasahiro Yamadacase YY_STATE_EOF(PARAM): 1187*0a9064fbSMasahiro Yamada{ 1188*0a9064fbSMasahiro Yamada BEGIN(INITIAL); 1189*0a9064fbSMasahiro Yamada } 1190*0a9064fbSMasahiro Yamada YY_BREAK 1191*0a9064fbSMasahiro Yamada 1192*0a9064fbSMasahiro Yamadacase 23: 1193*0a9064fbSMasahiro Yamada/* rule 23 can match eol */ 1194*0a9064fbSMasahiro Yamada*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ 1195*0a9064fbSMasahiro Yamada(yy_c_buf_p) = yy_cp -= 1; 1196*0a9064fbSMasahiro YamadaYY_DO_BEFORE_ACTION; /* set up zconftext again */ 1197*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1198*0a9064fbSMasahiro Yamada{ 1199*0a9064fbSMasahiro Yamada append_string(zconftext, zconfleng); 1200*0a9064fbSMasahiro Yamada zconflval.string = text; 1201*0a9064fbSMasahiro Yamada return T_WORD_QUOTE; 1202*0a9064fbSMasahiro Yamada } 1203*0a9064fbSMasahiro Yamada YY_BREAK 1204*0a9064fbSMasahiro Yamadacase 24: 1205*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1206*0a9064fbSMasahiro Yamada{ 1207*0a9064fbSMasahiro Yamada append_string(zconftext, zconfleng); 1208*0a9064fbSMasahiro Yamada } 1209*0a9064fbSMasahiro Yamada YY_BREAK 1210*0a9064fbSMasahiro Yamadacase 25: 1211*0a9064fbSMasahiro Yamada/* rule 25 can match eol */ 1212*0a9064fbSMasahiro Yamada*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ 1213*0a9064fbSMasahiro Yamada(yy_c_buf_p) = yy_cp -= 1; 1214*0a9064fbSMasahiro YamadaYY_DO_BEFORE_ACTION; /* set up zconftext again */ 1215*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1216*0a9064fbSMasahiro Yamada{ 1217*0a9064fbSMasahiro Yamada append_string(zconftext + 1, zconfleng - 1); 1218*0a9064fbSMasahiro Yamada zconflval.string = text; 1219*0a9064fbSMasahiro Yamada return T_WORD_QUOTE; 1220*0a9064fbSMasahiro Yamada } 1221*0a9064fbSMasahiro Yamada YY_BREAK 1222*0a9064fbSMasahiro Yamadacase 26: 1223*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1224*0a9064fbSMasahiro Yamada{ 1225*0a9064fbSMasahiro Yamada append_string(zconftext + 1, zconfleng - 1); 1226*0a9064fbSMasahiro Yamada } 1227*0a9064fbSMasahiro Yamada YY_BREAK 1228*0a9064fbSMasahiro Yamadacase 27: 1229*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1230*0a9064fbSMasahiro Yamada{ 1231*0a9064fbSMasahiro Yamada if (str == zconftext[0]) { 1232*0a9064fbSMasahiro Yamada BEGIN(PARAM); 1233*0a9064fbSMasahiro Yamada zconflval.string = text; 1234*0a9064fbSMasahiro Yamada return T_WORD_QUOTE; 1235*0a9064fbSMasahiro Yamada } else 1236*0a9064fbSMasahiro Yamada append_string(zconftext, 1); 1237*0a9064fbSMasahiro Yamada } 1238*0a9064fbSMasahiro Yamada YY_BREAK 1239*0a9064fbSMasahiro Yamadacase 28: 1240*0a9064fbSMasahiro Yamada/* rule 28 can match eol */ 1241*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1242*0a9064fbSMasahiro Yamada{ 1243*0a9064fbSMasahiro Yamada printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno()); 1244*0a9064fbSMasahiro Yamada current_file->lineno++; 1245*0a9064fbSMasahiro Yamada BEGIN(INITIAL); 1246*0a9064fbSMasahiro Yamada return T_EOL; 1247*0a9064fbSMasahiro Yamada } 1248*0a9064fbSMasahiro Yamada YY_BREAK 1249*0a9064fbSMasahiro Yamadacase YY_STATE_EOF(STRING): 1250*0a9064fbSMasahiro Yamada{ 1251*0a9064fbSMasahiro Yamada BEGIN(INITIAL); 1252*0a9064fbSMasahiro Yamada } 1253*0a9064fbSMasahiro Yamada YY_BREAK 1254*0a9064fbSMasahiro Yamada 1255*0a9064fbSMasahiro Yamadacase 29: 1256*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1257*0a9064fbSMasahiro Yamada{ 1258*0a9064fbSMasahiro Yamada ts = 0; 1259*0a9064fbSMasahiro Yamada for (i = 0; i < zconfleng; i++) { 1260*0a9064fbSMasahiro Yamada if (zconftext[i] == '\t') 1261*0a9064fbSMasahiro Yamada ts = (ts & ~7) + 8; 1262*0a9064fbSMasahiro Yamada else 1263*0a9064fbSMasahiro Yamada ts++; 1264*0a9064fbSMasahiro Yamada } 1265*0a9064fbSMasahiro Yamada last_ts = ts; 1266*0a9064fbSMasahiro Yamada if (first_ts) { 1267*0a9064fbSMasahiro Yamada if (ts < first_ts) { 1268*0a9064fbSMasahiro Yamada zconf_endhelp(); 1269*0a9064fbSMasahiro Yamada return T_HELPTEXT; 1270*0a9064fbSMasahiro Yamada } 1271*0a9064fbSMasahiro Yamada ts -= first_ts; 1272*0a9064fbSMasahiro Yamada while (ts > 8) { 1273*0a9064fbSMasahiro Yamada append_string(" ", 8); 1274*0a9064fbSMasahiro Yamada ts -= 8; 1275*0a9064fbSMasahiro Yamada } 1276*0a9064fbSMasahiro Yamada append_string(" ", ts); 1277*0a9064fbSMasahiro Yamada } 1278*0a9064fbSMasahiro Yamada } 1279*0a9064fbSMasahiro Yamada YY_BREAK 1280*0a9064fbSMasahiro Yamadacase 30: 1281*0a9064fbSMasahiro Yamada/* rule 30 can match eol */ 1282*0a9064fbSMasahiro Yamada*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */ 1283*0a9064fbSMasahiro Yamada(yy_c_buf_p) = yy_cp -= 1; 1284*0a9064fbSMasahiro YamadaYY_DO_BEFORE_ACTION; /* set up zconftext again */ 1285*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1286*0a9064fbSMasahiro Yamada{ 1287*0a9064fbSMasahiro Yamada current_file->lineno++; 1288*0a9064fbSMasahiro Yamada zconf_endhelp(); 1289*0a9064fbSMasahiro Yamada return T_HELPTEXT; 1290*0a9064fbSMasahiro Yamada } 1291*0a9064fbSMasahiro Yamada YY_BREAK 1292*0a9064fbSMasahiro Yamadacase 31: 1293*0a9064fbSMasahiro Yamada/* rule 31 can match eol */ 1294*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1295*0a9064fbSMasahiro Yamada{ 1296*0a9064fbSMasahiro Yamada current_file->lineno++; 1297*0a9064fbSMasahiro Yamada append_string("\n", 1); 1298*0a9064fbSMasahiro Yamada } 1299*0a9064fbSMasahiro Yamada YY_BREAK 1300*0a9064fbSMasahiro Yamadacase 32: 1301*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1302*0a9064fbSMasahiro Yamada{ 1303*0a9064fbSMasahiro Yamada while (zconfleng) { 1304*0a9064fbSMasahiro Yamada if ((zconftext[zconfleng-1] != ' ') && (zconftext[zconfleng-1] != '\t')) 1305*0a9064fbSMasahiro Yamada break; 1306*0a9064fbSMasahiro Yamada zconfleng--; 1307*0a9064fbSMasahiro Yamada } 1308*0a9064fbSMasahiro Yamada append_string(zconftext, zconfleng); 1309*0a9064fbSMasahiro Yamada if (!first_ts) 1310*0a9064fbSMasahiro Yamada first_ts = last_ts; 1311*0a9064fbSMasahiro Yamada } 1312*0a9064fbSMasahiro Yamada YY_BREAK 1313*0a9064fbSMasahiro Yamadacase YY_STATE_EOF(HELP): 1314*0a9064fbSMasahiro Yamada{ 1315*0a9064fbSMasahiro Yamada zconf_endhelp(); 1316*0a9064fbSMasahiro Yamada return T_HELPTEXT; 1317*0a9064fbSMasahiro Yamada } 1318*0a9064fbSMasahiro Yamada YY_BREAK 1319*0a9064fbSMasahiro Yamada 1320*0a9064fbSMasahiro Yamadacase YY_STATE_EOF(INITIAL): 1321*0a9064fbSMasahiro Yamadacase YY_STATE_EOF(COMMAND): 1322*0a9064fbSMasahiro Yamada{ 1323*0a9064fbSMasahiro Yamada if (current_file) { 1324*0a9064fbSMasahiro Yamada zconf_endfile(); 1325*0a9064fbSMasahiro Yamada return T_EOL; 1326*0a9064fbSMasahiro Yamada } 1327*0a9064fbSMasahiro Yamada fclose(zconfin); 1328*0a9064fbSMasahiro Yamada yyterminate(); 1329*0a9064fbSMasahiro Yamada} 1330*0a9064fbSMasahiro Yamada YY_BREAK 1331*0a9064fbSMasahiro Yamadacase 33: 1332*0a9064fbSMasahiro YamadaYY_RULE_SETUP 1333*0a9064fbSMasahiro YamadaYY_FATAL_ERROR( "flex scanner jammed" ); 1334*0a9064fbSMasahiro Yamada YY_BREAK 1335*0a9064fbSMasahiro Yamada 1336*0a9064fbSMasahiro Yamada case YY_END_OF_BUFFER: 1337*0a9064fbSMasahiro Yamada { 1338*0a9064fbSMasahiro Yamada /* Amount of text matched not including the EOB char. */ 1339*0a9064fbSMasahiro Yamada int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; 1340*0a9064fbSMasahiro Yamada 1341*0a9064fbSMasahiro Yamada /* Undo the effects of YY_DO_BEFORE_ACTION. */ 1342*0a9064fbSMasahiro Yamada *yy_cp = (yy_hold_char); 1343*0a9064fbSMasahiro Yamada YY_RESTORE_YY_MORE_OFFSET 1344*0a9064fbSMasahiro Yamada 1345*0a9064fbSMasahiro Yamada if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 1346*0a9064fbSMasahiro Yamada { 1347*0a9064fbSMasahiro Yamada /* We're scanning a new file or input source. It's 1348*0a9064fbSMasahiro Yamada * possible that this happened because the user 1349*0a9064fbSMasahiro Yamada * just pointed zconfin at a new source and called 1350*0a9064fbSMasahiro Yamada * zconflex(). If so, then we have to assure 1351*0a9064fbSMasahiro Yamada * consistency between YY_CURRENT_BUFFER and our 1352*0a9064fbSMasahiro Yamada * globals. Here is the right place to do so, because 1353*0a9064fbSMasahiro Yamada * this is the first action (other than possibly a 1354*0a9064fbSMasahiro Yamada * back-up) that will match for the new input source. 1355*0a9064fbSMasahiro Yamada */ 1356*0a9064fbSMasahiro Yamada (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 1357*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin; 1358*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 1359*0a9064fbSMasahiro Yamada } 1360*0a9064fbSMasahiro Yamada 1361*0a9064fbSMasahiro Yamada /* Note that here we test for yy_c_buf_p "<=" to the position 1362*0a9064fbSMasahiro Yamada * of the first EOB in the buffer, since yy_c_buf_p will 1363*0a9064fbSMasahiro Yamada * already have been incremented past the NUL character 1364*0a9064fbSMasahiro Yamada * (since all states make transitions on EOB to the 1365*0a9064fbSMasahiro Yamada * end-of-buffer state). Contrast this with the test 1366*0a9064fbSMasahiro Yamada * in input(). 1367*0a9064fbSMasahiro Yamada */ 1368*0a9064fbSMasahiro Yamada if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 1369*0a9064fbSMasahiro Yamada { /* This was really a NUL. */ 1370*0a9064fbSMasahiro Yamada yy_state_type yy_next_state; 1371*0a9064fbSMasahiro Yamada 1372*0a9064fbSMasahiro Yamada (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; 1373*0a9064fbSMasahiro Yamada 1374*0a9064fbSMasahiro Yamada yy_current_state = yy_get_previous_state( ); 1375*0a9064fbSMasahiro Yamada 1376*0a9064fbSMasahiro Yamada /* Okay, we're now positioned to make the NUL 1377*0a9064fbSMasahiro Yamada * transition. We couldn't have 1378*0a9064fbSMasahiro Yamada * yy_get_previous_state() go ahead and do it 1379*0a9064fbSMasahiro Yamada * for us because it doesn't know how to deal 1380*0a9064fbSMasahiro Yamada * with the possibility of jamming (and we don't 1381*0a9064fbSMasahiro Yamada * want to build jamming into it because then it 1382*0a9064fbSMasahiro Yamada * will run more slowly). 1383*0a9064fbSMasahiro Yamada */ 1384*0a9064fbSMasahiro Yamada 1385*0a9064fbSMasahiro Yamada yy_next_state = yy_try_NUL_trans( yy_current_state ); 1386*0a9064fbSMasahiro Yamada 1387*0a9064fbSMasahiro Yamada yy_bp = (yytext_ptr) + YY_MORE_ADJ; 1388*0a9064fbSMasahiro Yamada 1389*0a9064fbSMasahiro Yamada if ( yy_next_state ) 1390*0a9064fbSMasahiro Yamada { 1391*0a9064fbSMasahiro Yamada /* Consume the NUL. */ 1392*0a9064fbSMasahiro Yamada yy_cp = ++(yy_c_buf_p); 1393*0a9064fbSMasahiro Yamada yy_current_state = yy_next_state; 1394*0a9064fbSMasahiro Yamada goto yy_match; 1395*0a9064fbSMasahiro Yamada } 1396*0a9064fbSMasahiro Yamada 1397*0a9064fbSMasahiro Yamada else 1398*0a9064fbSMasahiro Yamada { 1399*0a9064fbSMasahiro Yamada yy_cp = (yy_c_buf_p); 1400*0a9064fbSMasahiro Yamada goto yy_find_action; 1401*0a9064fbSMasahiro Yamada } 1402*0a9064fbSMasahiro Yamada } 1403*0a9064fbSMasahiro Yamada 1404*0a9064fbSMasahiro Yamada else switch ( yy_get_next_buffer( ) ) 1405*0a9064fbSMasahiro Yamada { 1406*0a9064fbSMasahiro Yamada case EOB_ACT_END_OF_FILE: 1407*0a9064fbSMasahiro Yamada { 1408*0a9064fbSMasahiro Yamada (yy_did_buffer_switch_on_eof) = 0; 1409*0a9064fbSMasahiro Yamada 1410*0a9064fbSMasahiro Yamada if ( zconfwrap( ) ) 1411*0a9064fbSMasahiro Yamada { 1412*0a9064fbSMasahiro Yamada /* Note: because we've taken care in 1413*0a9064fbSMasahiro Yamada * yy_get_next_buffer() to have set up 1414*0a9064fbSMasahiro Yamada * zconftext, we can now set up 1415*0a9064fbSMasahiro Yamada * yy_c_buf_p so that if some total 1416*0a9064fbSMasahiro Yamada * hoser (like flex itself) wants to 1417*0a9064fbSMasahiro Yamada * call the scanner after we return the 1418*0a9064fbSMasahiro Yamada * YY_NULL, it'll still work - another 1419*0a9064fbSMasahiro Yamada * YY_NULL will get returned. 1420*0a9064fbSMasahiro Yamada */ 1421*0a9064fbSMasahiro Yamada (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; 1422*0a9064fbSMasahiro Yamada 1423*0a9064fbSMasahiro Yamada yy_act = YY_STATE_EOF(YY_START); 1424*0a9064fbSMasahiro Yamada goto do_action; 1425*0a9064fbSMasahiro Yamada } 1426*0a9064fbSMasahiro Yamada 1427*0a9064fbSMasahiro Yamada else 1428*0a9064fbSMasahiro Yamada { 1429*0a9064fbSMasahiro Yamada if ( ! (yy_did_buffer_switch_on_eof) ) 1430*0a9064fbSMasahiro Yamada YY_NEW_FILE; 1431*0a9064fbSMasahiro Yamada } 1432*0a9064fbSMasahiro Yamada break; 1433*0a9064fbSMasahiro Yamada } 1434*0a9064fbSMasahiro Yamada 1435*0a9064fbSMasahiro Yamada case EOB_ACT_CONTINUE_SCAN: 1436*0a9064fbSMasahiro Yamada (yy_c_buf_p) = 1437*0a9064fbSMasahiro Yamada (yytext_ptr) + yy_amount_of_matched_text; 1438*0a9064fbSMasahiro Yamada 1439*0a9064fbSMasahiro Yamada yy_current_state = yy_get_previous_state( ); 1440*0a9064fbSMasahiro Yamada 1441*0a9064fbSMasahiro Yamada yy_cp = (yy_c_buf_p); 1442*0a9064fbSMasahiro Yamada yy_bp = (yytext_ptr) + YY_MORE_ADJ; 1443*0a9064fbSMasahiro Yamada goto yy_match; 1444*0a9064fbSMasahiro Yamada 1445*0a9064fbSMasahiro Yamada case EOB_ACT_LAST_MATCH: 1446*0a9064fbSMasahiro Yamada (yy_c_buf_p) = 1447*0a9064fbSMasahiro Yamada &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; 1448*0a9064fbSMasahiro Yamada 1449*0a9064fbSMasahiro Yamada yy_current_state = yy_get_previous_state( ); 1450*0a9064fbSMasahiro Yamada 1451*0a9064fbSMasahiro Yamada yy_cp = (yy_c_buf_p); 1452*0a9064fbSMasahiro Yamada yy_bp = (yytext_ptr) + YY_MORE_ADJ; 1453*0a9064fbSMasahiro Yamada goto yy_find_action; 1454*0a9064fbSMasahiro Yamada } 1455*0a9064fbSMasahiro Yamada break; 1456*0a9064fbSMasahiro Yamada } 1457*0a9064fbSMasahiro Yamada 1458*0a9064fbSMasahiro Yamada default: 1459*0a9064fbSMasahiro Yamada YY_FATAL_ERROR( 1460*0a9064fbSMasahiro Yamada "fatal flex scanner internal error--no action found" ); 1461*0a9064fbSMasahiro Yamada } /* end of action switch */ 1462*0a9064fbSMasahiro Yamada } /* end of scanning one token */ 1463*0a9064fbSMasahiro Yamada} /* end of zconflex */ 1464*0a9064fbSMasahiro Yamada 1465*0a9064fbSMasahiro Yamada/* yy_get_next_buffer - try to read in a new buffer 1466*0a9064fbSMasahiro Yamada * 1467*0a9064fbSMasahiro Yamada * Returns a code representing an action: 1468*0a9064fbSMasahiro Yamada * EOB_ACT_LAST_MATCH - 1469*0a9064fbSMasahiro Yamada * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 1470*0a9064fbSMasahiro Yamada * EOB_ACT_END_OF_FILE - end of file 1471*0a9064fbSMasahiro Yamada */ 1472*0a9064fbSMasahiro Yamadastatic int yy_get_next_buffer (void) 1473*0a9064fbSMasahiro Yamada{ 1474*0a9064fbSMasahiro Yamada register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 1475*0a9064fbSMasahiro Yamada register char *source = (yytext_ptr); 1476*0a9064fbSMasahiro Yamada register int number_to_move, i; 1477*0a9064fbSMasahiro Yamada int ret_val; 1478*0a9064fbSMasahiro Yamada 1479*0a9064fbSMasahiro Yamada if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) 1480*0a9064fbSMasahiro Yamada YY_FATAL_ERROR( 1481*0a9064fbSMasahiro Yamada "fatal flex scanner internal error--end of buffer missed" ); 1482*0a9064fbSMasahiro Yamada 1483*0a9064fbSMasahiro Yamada if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 1484*0a9064fbSMasahiro Yamada { /* Don't try to fill the buffer, so this is an EOF. */ 1485*0a9064fbSMasahiro Yamada if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) 1486*0a9064fbSMasahiro Yamada { 1487*0a9064fbSMasahiro Yamada /* We matched a single character, the EOB, so 1488*0a9064fbSMasahiro Yamada * treat this as a final EOF. 1489*0a9064fbSMasahiro Yamada */ 1490*0a9064fbSMasahiro Yamada return EOB_ACT_END_OF_FILE; 1491*0a9064fbSMasahiro Yamada } 1492*0a9064fbSMasahiro Yamada 1493*0a9064fbSMasahiro Yamada else 1494*0a9064fbSMasahiro Yamada { 1495*0a9064fbSMasahiro Yamada /* We matched some text prior to the EOB, first 1496*0a9064fbSMasahiro Yamada * process it. 1497*0a9064fbSMasahiro Yamada */ 1498*0a9064fbSMasahiro Yamada return EOB_ACT_LAST_MATCH; 1499*0a9064fbSMasahiro Yamada } 1500*0a9064fbSMasahiro Yamada } 1501*0a9064fbSMasahiro Yamada 1502*0a9064fbSMasahiro Yamada /* Try to read more data. */ 1503*0a9064fbSMasahiro Yamada 1504*0a9064fbSMasahiro Yamada /* First move last chars to start of buffer. */ 1505*0a9064fbSMasahiro Yamada number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; 1506*0a9064fbSMasahiro Yamada 1507*0a9064fbSMasahiro Yamada for ( i = 0; i < number_to_move; ++i ) 1508*0a9064fbSMasahiro Yamada *(dest++) = *(source++); 1509*0a9064fbSMasahiro Yamada 1510*0a9064fbSMasahiro Yamada if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 1511*0a9064fbSMasahiro Yamada /* don't do the read, it's not guaranteed to return an EOF, 1512*0a9064fbSMasahiro Yamada * just force an EOF 1513*0a9064fbSMasahiro Yamada */ 1514*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; 1515*0a9064fbSMasahiro Yamada 1516*0a9064fbSMasahiro Yamada else 1517*0a9064fbSMasahiro Yamada { 1518*0a9064fbSMasahiro Yamada int num_to_read = 1519*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 1520*0a9064fbSMasahiro Yamada 1521*0a9064fbSMasahiro Yamada while ( num_to_read <= 0 ) 1522*0a9064fbSMasahiro Yamada { /* Not enough room in the buffer - grow it. */ 1523*0a9064fbSMasahiro Yamada 1524*0a9064fbSMasahiro Yamada /* just a shorter name for the current buffer */ 1525*0a9064fbSMasahiro Yamada YY_BUFFER_STATE b = YY_CURRENT_BUFFER; 1526*0a9064fbSMasahiro Yamada 1527*0a9064fbSMasahiro Yamada int yy_c_buf_p_offset = 1528*0a9064fbSMasahiro Yamada (int) ((yy_c_buf_p) - b->yy_ch_buf); 1529*0a9064fbSMasahiro Yamada 1530*0a9064fbSMasahiro Yamada if ( b->yy_is_our_buffer ) 1531*0a9064fbSMasahiro Yamada { 1532*0a9064fbSMasahiro Yamada int new_size = b->yy_buf_size * 2; 1533*0a9064fbSMasahiro Yamada 1534*0a9064fbSMasahiro Yamada if ( new_size <= 0 ) 1535*0a9064fbSMasahiro Yamada b->yy_buf_size += b->yy_buf_size / 8; 1536*0a9064fbSMasahiro Yamada else 1537*0a9064fbSMasahiro Yamada b->yy_buf_size *= 2; 1538*0a9064fbSMasahiro Yamada 1539*0a9064fbSMasahiro Yamada b->yy_ch_buf = (char *) 1540*0a9064fbSMasahiro Yamada /* Include room in for 2 EOB chars. */ 1541*0a9064fbSMasahiro Yamada zconfrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); 1542*0a9064fbSMasahiro Yamada } 1543*0a9064fbSMasahiro Yamada else 1544*0a9064fbSMasahiro Yamada /* Can't grow it, we don't own it. */ 1545*0a9064fbSMasahiro Yamada b->yy_ch_buf = 0; 1546*0a9064fbSMasahiro Yamada 1547*0a9064fbSMasahiro Yamada if ( ! b->yy_ch_buf ) 1548*0a9064fbSMasahiro Yamada YY_FATAL_ERROR( 1549*0a9064fbSMasahiro Yamada "fatal error - scanner input buffer overflow" ); 1550*0a9064fbSMasahiro Yamada 1551*0a9064fbSMasahiro Yamada (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; 1552*0a9064fbSMasahiro Yamada 1553*0a9064fbSMasahiro Yamada num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - 1554*0a9064fbSMasahiro Yamada number_to_move - 1; 1555*0a9064fbSMasahiro Yamada 1556*0a9064fbSMasahiro Yamada } 1557*0a9064fbSMasahiro Yamada 1558*0a9064fbSMasahiro Yamada if ( num_to_read > YY_READ_BUF_SIZE ) 1559*0a9064fbSMasahiro Yamada num_to_read = YY_READ_BUF_SIZE; 1560*0a9064fbSMasahiro Yamada 1561*0a9064fbSMasahiro Yamada /* Read in more data. */ 1562*0a9064fbSMasahiro Yamada YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 1563*0a9064fbSMasahiro Yamada (yy_n_chars), (size_t) num_to_read ); 1564*0a9064fbSMasahiro Yamada 1565*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 1566*0a9064fbSMasahiro Yamada } 1567*0a9064fbSMasahiro Yamada 1568*0a9064fbSMasahiro Yamada if ( (yy_n_chars) == 0 ) 1569*0a9064fbSMasahiro Yamada { 1570*0a9064fbSMasahiro Yamada if ( number_to_move == YY_MORE_ADJ ) 1571*0a9064fbSMasahiro Yamada { 1572*0a9064fbSMasahiro Yamada ret_val = EOB_ACT_END_OF_FILE; 1573*0a9064fbSMasahiro Yamada zconfrestart(zconfin ); 1574*0a9064fbSMasahiro Yamada } 1575*0a9064fbSMasahiro Yamada 1576*0a9064fbSMasahiro Yamada else 1577*0a9064fbSMasahiro Yamada { 1578*0a9064fbSMasahiro Yamada ret_val = EOB_ACT_LAST_MATCH; 1579*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 1580*0a9064fbSMasahiro Yamada YY_BUFFER_EOF_PENDING; 1581*0a9064fbSMasahiro Yamada } 1582*0a9064fbSMasahiro Yamada } 1583*0a9064fbSMasahiro Yamada 1584*0a9064fbSMasahiro Yamada else 1585*0a9064fbSMasahiro Yamada ret_val = EOB_ACT_CONTINUE_SCAN; 1586*0a9064fbSMasahiro Yamada 1587*0a9064fbSMasahiro Yamada if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { 1588*0a9064fbSMasahiro Yamada /* Extend the array by 50%, plus the number we really need. */ 1589*0a9064fbSMasahiro Yamada yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); 1590*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) zconfrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); 1591*0a9064fbSMasahiro Yamada if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 1592*0a9064fbSMasahiro Yamada YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); 1593*0a9064fbSMasahiro Yamada } 1594*0a9064fbSMasahiro Yamada 1595*0a9064fbSMasahiro Yamada (yy_n_chars) += number_to_move; 1596*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; 1597*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; 1598*0a9064fbSMasahiro Yamada 1599*0a9064fbSMasahiro Yamada (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 1600*0a9064fbSMasahiro Yamada 1601*0a9064fbSMasahiro Yamada return ret_val; 1602*0a9064fbSMasahiro Yamada} 1603*0a9064fbSMasahiro Yamada 1604*0a9064fbSMasahiro Yamada/* yy_get_previous_state - get the state just before the EOB char was reached */ 1605*0a9064fbSMasahiro Yamada 1606*0a9064fbSMasahiro Yamada static yy_state_type yy_get_previous_state (void) 1607*0a9064fbSMasahiro Yamada{ 1608*0a9064fbSMasahiro Yamada register yy_state_type yy_current_state; 1609*0a9064fbSMasahiro Yamada register char *yy_cp; 1610*0a9064fbSMasahiro Yamada 1611*0a9064fbSMasahiro Yamada yy_current_state = (yy_start); 1612*0a9064fbSMasahiro Yamada 1613*0a9064fbSMasahiro Yamada for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) 1614*0a9064fbSMasahiro Yamada { 1615*0a9064fbSMasahiro Yamada yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)]; 1616*0a9064fbSMasahiro Yamada } 1617*0a9064fbSMasahiro Yamada 1618*0a9064fbSMasahiro Yamada return yy_current_state; 1619*0a9064fbSMasahiro Yamada} 1620*0a9064fbSMasahiro Yamada 1621*0a9064fbSMasahiro Yamada/* yy_try_NUL_trans - try to make a transition on the NUL character 1622*0a9064fbSMasahiro Yamada * 1623*0a9064fbSMasahiro Yamada * synopsis 1624*0a9064fbSMasahiro Yamada * next_state = yy_try_NUL_trans( current_state ); 1625*0a9064fbSMasahiro Yamada */ 1626*0a9064fbSMasahiro Yamada static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) 1627*0a9064fbSMasahiro Yamada{ 1628*0a9064fbSMasahiro Yamada register int yy_is_jam; 1629*0a9064fbSMasahiro Yamada 1630*0a9064fbSMasahiro Yamada yy_current_state = yy_nxt[yy_current_state][1]; 1631*0a9064fbSMasahiro Yamada yy_is_jam = (yy_current_state <= 0); 1632*0a9064fbSMasahiro Yamada 1633*0a9064fbSMasahiro Yamada return yy_is_jam ? 0 : yy_current_state; 1634*0a9064fbSMasahiro Yamada} 1635*0a9064fbSMasahiro Yamada 1636*0a9064fbSMasahiro Yamada static void yyunput (int c, register char * yy_bp ) 1637*0a9064fbSMasahiro Yamada{ 1638*0a9064fbSMasahiro Yamada register char *yy_cp; 1639*0a9064fbSMasahiro Yamada 1640*0a9064fbSMasahiro Yamada yy_cp = (yy_c_buf_p); 1641*0a9064fbSMasahiro Yamada 1642*0a9064fbSMasahiro Yamada /* undo effects of setting up zconftext */ 1643*0a9064fbSMasahiro Yamada *yy_cp = (yy_hold_char); 1644*0a9064fbSMasahiro Yamada 1645*0a9064fbSMasahiro Yamada if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 1646*0a9064fbSMasahiro Yamada { /* need to shift things up to make room */ 1647*0a9064fbSMasahiro Yamada /* +2 for EOB chars. */ 1648*0a9064fbSMasahiro Yamada register int number_to_move = (yy_n_chars) + 2; 1649*0a9064fbSMasahiro Yamada register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ 1650*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; 1651*0a9064fbSMasahiro Yamada register char *source = 1652*0a9064fbSMasahiro Yamada &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; 1653*0a9064fbSMasahiro Yamada 1654*0a9064fbSMasahiro Yamada while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 1655*0a9064fbSMasahiro Yamada *--dest = *--source; 1656*0a9064fbSMasahiro Yamada 1657*0a9064fbSMasahiro Yamada yy_cp += (int) (dest - source); 1658*0a9064fbSMasahiro Yamada yy_bp += (int) (dest - source); 1659*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_n_chars = 1660*0a9064fbSMasahiro Yamada (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size; 1661*0a9064fbSMasahiro Yamada 1662*0a9064fbSMasahiro Yamada if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 1663*0a9064fbSMasahiro Yamada YY_FATAL_ERROR( "flex scanner push-back overflow" ); 1664*0a9064fbSMasahiro Yamada } 1665*0a9064fbSMasahiro Yamada 1666*0a9064fbSMasahiro Yamada *--yy_cp = (char) c; 1667*0a9064fbSMasahiro Yamada 1668*0a9064fbSMasahiro Yamada (yytext_ptr) = yy_bp; 1669*0a9064fbSMasahiro Yamada (yy_hold_char) = *yy_cp; 1670*0a9064fbSMasahiro Yamada (yy_c_buf_p) = yy_cp; 1671*0a9064fbSMasahiro Yamada} 1672*0a9064fbSMasahiro Yamada 1673*0a9064fbSMasahiro Yamada#ifndef YY_NO_INPUT 1674*0a9064fbSMasahiro Yamada#ifdef __cplusplus 1675*0a9064fbSMasahiro Yamada static int yyinput (void) 1676*0a9064fbSMasahiro Yamada#else 1677*0a9064fbSMasahiro Yamada static int input (void) 1678*0a9064fbSMasahiro Yamada#endif 1679*0a9064fbSMasahiro Yamada 1680*0a9064fbSMasahiro Yamada{ 1681*0a9064fbSMasahiro Yamada int c; 1682*0a9064fbSMasahiro Yamada 1683*0a9064fbSMasahiro Yamada *(yy_c_buf_p) = (yy_hold_char); 1684*0a9064fbSMasahiro Yamada 1685*0a9064fbSMasahiro Yamada if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) 1686*0a9064fbSMasahiro Yamada { 1687*0a9064fbSMasahiro Yamada /* yy_c_buf_p now points to the character we want to return. 1688*0a9064fbSMasahiro Yamada * If this occurs *before* the EOB characters, then it's a 1689*0a9064fbSMasahiro Yamada * valid NUL; if not, then we've hit the end of the buffer. 1690*0a9064fbSMasahiro Yamada */ 1691*0a9064fbSMasahiro Yamada if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 1692*0a9064fbSMasahiro Yamada /* This was really a NUL. */ 1693*0a9064fbSMasahiro Yamada *(yy_c_buf_p) = '\0'; 1694*0a9064fbSMasahiro Yamada 1695*0a9064fbSMasahiro Yamada else 1696*0a9064fbSMasahiro Yamada { /* need more input */ 1697*0a9064fbSMasahiro Yamada int offset = (yy_c_buf_p) - (yytext_ptr); 1698*0a9064fbSMasahiro Yamada ++(yy_c_buf_p); 1699*0a9064fbSMasahiro Yamada 1700*0a9064fbSMasahiro Yamada switch ( yy_get_next_buffer( ) ) 1701*0a9064fbSMasahiro Yamada { 1702*0a9064fbSMasahiro Yamada case EOB_ACT_LAST_MATCH: 1703*0a9064fbSMasahiro Yamada /* This happens because yy_g_n_b() 1704*0a9064fbSMasahiro Yamada * sees that we've accumulated a 1705*0a9064fbSMasahiro Yamada * token and flags that we need to 1706*0a9064fbSMasahiro Yamada * try matching the token before 1707*0a9064fbSMasahiro Yamada * proceeding. But for input(), 1708*0a9064fbSMasahiro Yamada * there's no matching to consider. 1709*0a9064fbSMasahiro Yamada * So convert the EOB_ACT_LAST_MATCH 1710*0a9064fbSMasahiro Yamada * to EOB_ACT_END_OF_FILE. 1711*0a9064fbSMasahiro Yamada */ 1712*0a9064fbSMasahiro Yamada 1713*0a9064fbSMasahiro Yamada /* Reset buffer status. */ 1714*0a9064fbSMasahiro Yamada zconfrestart(zconfin ); 1715*0a9064fbSMasahiro Yamada 1716*0a9064fbSMasahiro Yamada /*FALLTHROUGH*/ 1717*0a9064fbSMasahiro Yamada 1718*0a9064fbSMasahiro Yamada case EOB_ACT_END_OF_FILE: 1719*0a9064fbSMasahiro Yamada { 1720*0a9064fbSMasahiro Yamada if ( zconfwrap( ) ) 1721*0a9064fbSMasahiro Yamada return EOF; 1722*0a9064fbSMasahiro Yamada 1723*0a9064fbSMasahiro Yamada if ( ! (yy_did_buffer_switch_on_eof) ) 1724*0a9064fbSMasahiro Yamada YY_NEW_FILE; 1725*0a9064fbSMasahiro Yamada#ifdef __cplusplus 1726*0a9064fbSMasahiro Yamada return yyinput(); 1727*0a9064fbSMasahiro Yamada#else 1728*0a9064fbSMasahiro Yamada return input(); 1729*0a9064fbSMasahiro Yamada#endif 1730*0a9064fbSMasahiro Yamada } 1731*0a9064fbSMasahiro Yamada 1732*0a9064fbSMasahiro Yamada case EOB_ACT_CONTINUE_SCAN: 1733*0a9064fbSMasahiro Yamada (yy_c_buf_p) = (yytext_ptr) + offset; 1734*0a9064fbSMasahiro Yamada break; 1735*0a9064fbSMasahiro Yamada } 1736*0a9064fbSMasahiro Yamada } 1737*0a9064fbSMasahiro Yamada } 1738*0a9064fbSMasahiro Yamada 1739*0a9064fbSMasahiro Yamada c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ 1740*0a9064fbSMasahiro Yamada *(yy_c_buf_p) = '\0'; /* preserve zconftext */ 1741*0a9064fbSMasahiro Yamada (yy_hold_char) = *++(yy_c_buf_p); 1742*0a9064fbSMasahiro Yamada 1743*0a9064fbSMasahiro Yamada return c; 1744*0a9064fbSMasahiro Yamada} 1745*0a9064fbSMasahiro Yamada#endif /* ifndef YY_NO_INPUT */ 1746*0a9064fbSMasahiro Yamada 1747*0a9064fbSMasahiro Yamada/** Immediately switch to a different input stream. 1748*0a9064fbSMasahiro Yamada * @param input_file A readable stream. 1749*0a9064fbSMasahiro Yamada * 1750*0a9064fbSMasahiro Yamada * @note This function does not reset the start condition to @c INITIAL . 1751*0a9064fbSMasahiro Yamada */ 1752*0a9064fbSMasahiro Yamada void zconfrestart (FILE * input_file ) 1753*0a9064fbSMasahiro Yamada{ 1754*0a9064fbSMasahiro Yamada 1755*0a9064fbSMasahiro Yamada if ( ! YY_CURRENT_BUFFER ){ 1756*0a9064fbSMasahiro Yamada zconfensure_buffer_stack (); 1757*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE = 1758*0a9064fbSMasahiro Yamada zconf_create_buffer(zconfin,YY_BUF_SIZE ); 1759*0a9064fbSMasahiro Yamada } 1760*0a9064fbSMasahiro Yamada 1761*0a9064fbSMasahiro Yamada zconf_init_buffer(YY_CURRENT_BUFFER,input_file ); 1762*0a9064fbSMasahiro Yamada zconf_load_buffer_state( ); 1763*0a9064fbSMasahiro Yamada} 1764*0a9064fbSMasahiro Yamada 1765*0a9064fbSMasahiro Yamada/** Switch to a different input buffer. 1766*0a9064fbSMasahiro Yamada * @param new_buffer The new input buffer. 1767*0a9064fbSMasahiro Yamada * 1768*0a9064fbSMasahiro Yamada */ 1769*0a9064fbSMasahiro Yamada void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer ) 1770*0a9064fbSMasahiro Yamada{ 1771*0a9064fbSMasahiro Yamada 1772*0a9064fbSMasahiro Yamada /* TODO. We should be able to replace this entire function body 1773*0a9064fbSMasahiro Yamada * with 1774*0a9064fbSMasahiro Yamada * zconfpop_buffer_state(); 1775*0a9064fbSMasahiro Yamada * zconfpush_buffer_state(new_buffer); 1776*0a9064fbSMasahiro Yamada */ 1777*0a9064fbSMasahiro Yamada zconfensure_buffer_stack (); 1778*0a9064fbSMasahiro Yamada if ( YY_CURRENT_BUFFER == new_buffer ) 1779*0a9064fbSMasahiro Yamada return; 1780*0a9064fbSMasahiro Yamada 1781*0a9064fbSMasahiro Yamada if ( YY_CURRENT_BUFFER ) 1782*0a9064fbSMasahiro Yamada { 1783*0a9064fbSMasahiro Yamada /* Flush out information for old buffer. */ 1784*0a9064fbSMasahiro Yamada *(yy_c_buf_p) = (yy_hold_char); 1785*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 1786*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 1787*0a9064fbSMasahiro Yamada } 1788*0a9064fbSMasahiro Yamada 1789*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE = new_buffer; 1790*0a9064fbSMasahiro Yamada zconf_load_buffer_state( ); 1791*0a9064fbSMasahiro Yamada 1792*0a9064fbSMasahiro Yamada /* We don't actually know whether we did this switch during 1793*0a9064fbSMasahiro Yamada * EOF (zconfwrap()) processing, but the only time this flag 1794*0a9064fbSMasahiro Yamada * is looked at is after zconfwrap() is called, so it's safe 1795*0a9064fbSMasahiro Yamada * to go ahead and always set it. 1796*0a9064fbSMasahiro Yamada */ 1797*0a9064fbSMasahiro Yamada (yy_did_buffer_switch_on_eof) = 1; 1798*0a9064fbSMasahiro Yamada} 1799*0a9064fbSMasahiro Yamada 1800*0a9064fbSMasahiro Yamadastatic void zconf_load_buffer_state (void) 1801*0a9064fbSMasahiro Yamada{ 1802*0a9064fbSMasahiro Yamada (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 1803*0a9064fbSMasahiro Yamada (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 1804*0a9064fbSMasahiro Yamada zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 1805*0a9064fbSMasahiro Yamada (yy_hold_char) = *(yy_c_buf_p); 1806*0a9064fbSMasahiro Yamada} 1807*0a9064fbSMasahiro Yamada 1808*0a9064fbSMasahiro Yamada/** Allocate and initialize an input buffer state. 1809*0a9064fbSMasahiro Yamada * @param file A readable stream. 1810*0a9064fbSMasahiro Yamada * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. 1811*0a9064fbSMasahiro Yamada * 1812*0a9064fbSMasahiro Yamada * @return the allocated buffer state. 1813*0a9064fbSMasahiro Yamada */ 1814*0a9064fbSMasahiro Yamada YY_BUFFER_STATE zconf_create_buffer (FILE * file, int size ) 1815*0a9064fbSMasahiro Yamada{ 1816*0a9064fbSMasahiro Yamada YY_BUFFER_STATE b; 1817*0a9064fbSMasahiro Yamada 1818*0a9064fbSMasahiro Yamada b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) ); 1819*0a9064fbSMasahiro Yamada if ( ! b ) 1820*0a9064fbSMasahiro Yamada YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" ); 1821*0a9064fbSMasahiro Yamada 1822*0a9064fbSMasahiro Yamada b->yy_buf_size = size; 1823*0a9064fbSMasahiro Yamada 1824*0a9064fbSMasahiro Yamada /* yy_ch_buf has to be 2 characters longer than the size given because 1825*0a9064fbSMasahiro Yamada * we need to put in 2 end-of-buffer characters. 1826*0a9064fbSMasahiro Yamada */ 1827*0a9064fbSMasahiro Yamada b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2 ); 1828*0a9064fbSMasahiro Yamada if ( ! b->yy_ch_buf ) 1829*0a9064fbSMasahiro Yamada YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" ); 1830*0a9064fbSMasahiro Yamada 1831*0a9064fbSMasahiro Yamada b->yy_is_our_buffer = 1; 1832*0a9064fbSMasahiro Yamada 1833*0a9064fbSMasahiro Yamada zconf_init_buffer(b,file ); 1834*0a9064fbSMasahiro Yamada 1835*0a9064fbSMasahiro Yamada return b; 1836*0a9064fbSMasahiro Yamada} 1837*0a9064fbSMasahiro Yamada 1838*0a9064fbSMasahiro Yamada/** Destroy the buffer. 1839*0a9064fbSMasahiro Yamada * @param b a buffer created with zconf_create_buffer() 1840*0a9064fbSMasahiro Yamada * 1841*0a9064fbSMasahiro Yamada */ 1842*0a9064fbSMasahiro Yamada void zconf_delete_buffer (YY_BUFFER_STATE b ) 1843*0a9064fbSMasahiro Yamada{ 1844*0a9064fbSMasahiro Yamada 1845*0a9064fbSMasahiro Yamada if ( ! b ) 1846*0a9064fbSMasahiro Yamada return; 1847*0a9064fbSMasahiro Yamada 1848*0a9064fbSMasahiro Yamada if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 1849*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 1850*0a9064fbSMasahiro Yamada 1851*0a9064fbSMasahiro Yamada if ( b->yy_is_our_buffer ) 1852*0a9064fbSMasahiro Yamada zconffree((void *) b->yy_ch_buf ); 1853*0a9064fbSMasahiro Yamada 1854*0a9064fbSMasahiro Yamada zconffree((void *) b ); 1855*0a9064fbSMasahiro Yamada} 1856*0a9064fbSMasahiro Yamada 1857*0a9064fbSMasahiro Yamada/* Initializes or reinitializes a buffer. 1858*0a9064fbSMasahiro Yamada * This function is sometimes called more than once on the same buffer, 1859*0a9064fbSMasahiro Yamada * such as during a zconfrestart() or at EOF. 1860*0a9064fbSMasahiro Yamada */ 1861*0a9064fbSMasahiro Yamada static void zconf_init_buffer (YY_BUFFER_STATE b, FILE * file ) 1862*0a9064fbSMasahiro Yamada 1863*0a9064fbSMasahiro Yamada{ 1864*0a9064fbSMasahiro Yamada int oerrno = errno; 1865*0a9064fbSMasahiro Yamada 1866*0a9064fbSMasahiro Yamada zconf_flush_buffer(b ); 1867*0a9064fbSMasahiro Yamada 1868*0a9064fbSMasahiro Yamada b->yy_input_file = file; 1869*0a9064fbSMasahiro Yamada b->yy_fill_buffer = 1; 1870*0a9064fbSMasahiro Yamada 1871*0a9064fbSMasahiro Yamada /* If b is the current buffer, then zconf_init_buffer was _probably_ 1872*0a9064fbSMasahiro Yamada * called from zconfrestart() or through yy_get_next_buffer. 1873*0a9064fbSMasahiro Yamada * In that case, we don't want to reset the lineno or column. 1874*0a9064fbSMasahiro Yamada */ 1875*0a9064fbSMasahiro Yamada if (b != YY_CURRENT_BUFFER){ 1876*0a9064fbSMasahiro Yamada b->yy_bs_lineno = 1; 1877*0a9064fbSMasahiro Yamada b->yy_bs_column = 0; 1878*0a9064fbSMasahiro Yamada } 1879*0a9064fbSMasahiro Yamada 1880*0a9064fbSMasahiro Yamada b->yy_is_interactive = 0; 1881*0a9064fbSMasahiro Yamada 1882*0a9064fbSMasahiro Yamada errno = oerrno; 1883*0a9064fbSMasahiro Yamada} 1884*0a9064fbSMasahiro Yamada 1885*0a9064fbSMasahiro Yamada/** Discard all buffered characters. On the next scan, YY_INPUT will be called. 1886*0a9064fbSMasahiro Yamada * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. 1887*0a9064fbSMasahiro Yamada * 1888*0a9064fbSMasahiro Yamada */ 1889*0a9064fbSMasahiro Yamada void zconf_flush_buffer (YY_BUFFER_STATE b ) 1890*0a9064fbSMasahiro Yamada{ 1891*0a9064fbSMasahiro Yamada if ( ! b ) 1892*0a9064fbSMasahiro Yamada return; 1893*0a9064fbSMasahiro Yamada 1894*0a9064fbSMasahiro Yamada b->yy_n_chars = 0; 1895*0a9064fbSMasahiro Yamada 1896*0a9064fbSMasahiro Yamada /* We always need two end-of-buffer characters. The first causes 1897*0a9064fbSMasahiro Yamada * a transition to the end-of-buffer state. The second causes 1898*0a9064fbSMasahiro Yamada * a jam in that state. 1899*0a9064fbSMasahiro Yamada */ 1900*0a9064fbSMasahiro Yamada b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 1901*0a9064fbSMasahiro Yamada b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 1902*0a9064fbSMasahiro Yamada 1903*0a9064fbSMasahiro Yamada b->yy_buf_pos = &b->yy_ch_buf[0]; 1904*0a9064fbSMasahiro Yamada 1905*0a9064fbSMasahiro Yamada b->yy_at_bol = 1; 1906*0a9064fbSMasahiro Yamada b->yy_buffer_status = YY_BUFFER_NEW; 1907*0a9064fbSMasahiro Yamada 1908*0a9064fbSMasahiro Yamada if ( b == YY_CURRENT_BUFFER ) 1909*0a9064fbSMasahiro Yamada zconf_load_buffer_state( ); 1910*0a9064fbSMasahiro Yamada} 1911*0a9064fbSMasahiro Yamada 1912*0a9064fbSMasahiro Yamada/** Pushes the new state onto the stack. The new state becomes 1913*0a9064fbSMasahiro Yamada * the current state. This function will allocate the stack 1914*0a9064fbSMasahiro Yamada * if necessary. 1915*0a9064fbSMasahiro Yamada * @param new_buffer The new state. 1916*0a9064fbSMasahiro Yamada * 1917*0a9064fbSMasahiro Yamada */ 1918*0a9064fbSMasahiro Yamadavoid zconfpush_buffer_state (YY_BUFFER_STATE new_buffer ) 1919*0a9064fbSMasahiro Yamada{ 1920*0a9064fbSMasahiro Yamada if (new_buffer == NULL) 1921*0a9064fbSMasahiro Yamada return; 1922*0a9064fbSMasahiro Yamada 1923*0a9064fbSMasahiro Yamada zconfensure_buffer_stack(); 1924*0a9064fbSMasahiro Yamada 1925*0a9064fbSMasahiro Yamada /* This block is copied from zconf_switch_to_buffer. */ 1926*0a9064fbSMasahiro Yamada if ( YY_CURRENT_BUFFER ) 1927*0a9064fbSMasahiro Yamada { 1928*0a9064fbSMasahiro Yamada /* Flush out information for old buffer. */ 1929*0a9064fbSMasahiro Yamada *(yy_c_buf_p) = (yy_hold_char); 1930*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 1931*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 1932*0a9064fbSMasahiro Yamada } 1933*0a9064fbSMasahiro Yamada 1934*0a9064fbSMasahiro Yamada /* Only push if top exists. Otherwise, replace top. */ 1935*0a9064fbSMasahiro Yamada if (YY_CURRENT_BUFFER) 1936*0a9064fbSMasahiro Yamada (yy_buffer_stack_top)++; 1937*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE = new_buffer; 1938*0a9064fbSMasahiro Yamada 1939*0a9064fbSMasahiro Yamada /* copied from zconf_switch_to_buffer. */ 1940*0a9064fbSMasahiro Yamada zconf_load_buffer_state( ); 1941*0a9064fbSMasahiro Yamada (yy_did_buffer_switch_on_eof) = 1; 1942*0a9064fbSMasahiro Yamada} 1943*0a9064fbSMasahiro Yamada 1944*0a9064fbSMasahiro Yamada/** Removes and deletes the top of the stack, if present. 1945*0a9064fbSMasahiro Yamada * The next element becomes the new top. 1946*0a9064fbSMasahiro Yamada * 1947*0a9064fbSMasahiro Yamada */ 1948*0a9064fbSMasahiro Yamadavoid zconfpop_buffer_state (void) 1949*0a9064fbSMasahiro Yamada{ 1950*0a9064fbSMasahiro Yamada if (!YY_CURRENT_BUFFER) 1951*0a9064fbSMasahiro Yamada return; 1952*0a9064fbSMasahiro Yamada 1953*0a9064fbSMasahiro Yamada zconf_delete_buffer(YY_CURRENT_BUFFER ); 1954*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE = NULL; 1955*0a9064fbSMasahiro Yamada if ((yy_buffer_stack_top) > 0) 1956*0a9064fbSMasahiro Yamada --(yy_buffer_stack_top); 1957*0a9064fbSMasahiro Yamada 1958*0a9064fbSMasahiro Yamada if (YY_CURRENT_BUFFER) { 1959*0a9064fbSMasahiro Yamada zconf_load_buffer_state( ); 1960*0a9064fbSMasahiro Yamada (yy_did_buffer_switch_on_eof) = 1; 1961*0a9064fbSMasahiro Yamada } 1962*0a9064fbSMasahiro Yamada} 1963*0a9064fbSMasahiro Yamada 1964*0a9064fbSMasahiro Yamada/* Allocates the stack if it does not exist. 1965*0a9064fbSMasahiro Yamada * Guarantees space for at least one push. 1966*0a9064fbSMasahiro Yamada */ 1967*0a9064fbSMasahiro Yamadastatic void zconfensure_buffer_stack (void) 1968*0a9064fbSMasahiro Yamada{ 1969*0a9064fbSMasahiro Yamada int num_to_alloc; 1970*0a9064fbSMasahiro Yamada 1971*0a9064fbSMasahiro Yamada if (!(yy_buffer_stack)) { 1972*0a9064fbSMasahiro Yamada 1973*0a9064fbSMasahiro Yamada /* First allocation is just for 2 elements, since we don't know if this 1974*0a9064fbSMasahiro Yamada * scanner will even need a stack. We use 2 instead of 1 to avoid an 1975*0a9064fbSMasahiro Yamada * immediate realloc on the next call. 1976*0a9064fbSMasahiro Yamada */ 1977*0a9064fbSMasahiro Yamada num_to_alloc = 1; 1978*0a9064fbSMasahiro Yamada (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc 1979*0a9064fbSMasahiro Yamada (num_to_alloc * sizeof(struct yy_buffer_state*) 1980*0a9064fbSMasahiro Yamada ); 1981*0a9064fbSMasahiro Yamada if ( ! (yy_buffer_stack) ) 1982*0a9064fbSMasahiro Yamada YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" ); 1983*0a9064fbSMasahiro Yamada 1984*0a9064fbSMasahiro Yamada memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 1985*0a9064fbSMasahiro Yamada 1986*0a9064fbSMasahiro Yamada (yy_buffer_stack_max) = num_to_alloc; 1987*0a9064fbSMasahiro Yamada (yy_buffer_stack_top) = 0; 1988*0a9064fbSMasahiro Yamada return; 1989*0a9064fbSMasahiro Yamada } 1990*0a9064fbSMasahiro Yamada 1991*0a9064fbSMasahiro Yamada if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ 1992*0a9064fbSMasahiro Yamada 1993*0a9064fbSMasahiro Yamada /* Increase the buffer to prepare for a possible push. */ 1994*0a9064fbSMasahiro Yamada int grow_size = 8 /* arbitrary grow size */; 1995*0a9064fbSMasahiro Yamada 1996*0a9064fbSMasahiro Yamada num_to_alloc = (yy_buffer_stack_max) + grow_size; 1997*0a9064fbSMasahiro Yamada (yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc 1998*0a9064fbSMasahiro Yamada ((yy_buffer_stack), 1999*0a9064fbSMasahiro Yamada num_to_alloc * sizeof(struct yy_buffer_state*) 2000*0a9064fbSMasahiro Yamada ); 2001*0a9064fbSMasahiro Yamada if ( ! (yy_buffer_stack) ) 2002*0a9064fbSMasahiro Yamada YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" ); 2003*0a9064fbSMasahiro Yamada 2004*0a9064fbSMasahiro Yamada /* zero only the new slots.*/ 2005*0a9064fbSMasahiro Yamada memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); 2006*0a9064fbSMasahiro Yamada (yy_buffer_stack_max) = num_to_alloc; 2007*0a9064fbSMasahiro Yamada } 2008*0a9064fbSMasahiro Yamada} 2009*0a9064fbSMasahiro Yamada 2010*0a9064fbSMasahiro Yamada/** Setup the input buffer state to scan directly from a user-specified character buffer. 2011*0a9064fbSMasahiro Yamada * @param base the character buffer 2012*0a9064fbSMasahiro Yamada * @param size the size in bytes of the character buffer 2013*0a9064fbSMasahiro Yamada * 2014*0a9064fbSMasahiro Yamada * @return the newly allocated buffer state object. 2015*0a9064fbSMasahiro Yamada */ 2016*0a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size ) 2017*0a9064fbSMasahiro Yamada{ 2018*0a9064fbSMasahiro Yamada YY_BUFFER_STATE b; 2019*0a9064fbSMasahiro Yamada 2020*0a9064fbSMasahiro Yamada if ( size < 2 || 2021*0a9064fbSMasahiro Yamada base[size-2] != YY_END_OF_BUFFER_CHAR || 2022*0a9064fbSMasahiro Yamada base[size-1] != YY_END_OF_BUFFER_CHAR ) 2023*0a9064fbSMasahiro Yamada /* They forgot to leave room for the EOB's. */ 2024*0a9064fbSMasahiro Yamada return 0; 2025*0a9064fbSMasahiro Yamada 2026*0a9064fbSMasahiro Yamada b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) ); 2027*0a9064fbSMasahiro Yamada if ( ! b ) 2028*0a9064fbSMasahiro Yamada YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" ); 2029*0a9064fbSMasahiro Yamada 2030*0a9064fbSMasahiro Yamada b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ 2031*0a9064fbSMasahiro Yamada b->yy_buf_pos = b->yy_ch_buf = base; 2032*0a9064fbSMasahiro Yamada b->yy_is_our_buffer = 0; 2033*0a9064fbSMasahiro Yamada b->yy_input_file = 0; 2034*0a9064fbSMasahiro Yamada b->yy_n_chars = b->yy_buf_size; 2035*0a9064fbSMasahiro Yamada b->yy_is_interactive = 0; 2036*0a9064fbSMasahiro Yamada b->yy_at_bol = 1; 2037*0a9064fbSMasahiro Yamada b->yy_fill_buffer = 0; 2038*0a9064fbSMasahiro Yamada b->yy_buffer_status = YY_BUFFER_NEW; 2039*0a9064fbSMasahiro Yamada 2040*0a9064fbSMasahiro Yamada zconf_switch_to_buffer(b ); 2041*0a9064fbSMasahiro Yamada 2042*0a9064fbSMasahiro Yamada return b; 2043*0a9064fbSMasahiro Yamada} 2044*0a9064fbSMasahiro Yamada 2045*0a9064fbSMasahiro Yamada/** Setup the input buffer state to scan a string. The next call to zconflex() will 2046*0a9064fbSMasahiro Yamada * scan from a @e copy of @a str. 2047*0a9064fbSMasahiro Yamada * @param yystr a NUL-terminated string to scan 2048*0a9064fbSMasahiro Yamada * 2049*0a9064fbSMasahiro Yamada * @return the newly allocated buffer state object. 2050*0a9064fbSMasahiro Yamada * @note If you want to scan bytes that may contain NUL values, then use 2051*0a9064fbSMasahiro Yamada * zconf_scan_bytes() instead. 2052*0a9064fbSMasahiro Yamada */ 2053*0a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_scan_string (yyconst char * yystr ) 2054*0a9064fbSMasahiro Yamada{ 2055*0a9064fbSMasahiro Yamada 2056*0a9064fbSMasahiro Yamada return zconf_scan_bytes(yystr,strlen(yystr) ); 2057*0a9064fbSMasahiro Yamada} 2058*0a9064fbSMasahiro Yamada 2059*0a9064fbSMasahiro Yamada/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will 2060*0a9064fbSMasahiro Yamada * scan from a @e copy of @a bytes. 2061*0a9064fbSMasahiro Yamada * @param bytes the byte buffer to scan 2062*0a9064fbSMasahiro Yamada * @param len the number of bytes in the buffer pointed to by @a bytes. 2063*0a9064fbSMasahiro Yamada * 2064*0a9064fbSMasahiro Yamada * @return the newly allocated buffer state object. 2065*0a9064fbSMasahiro Yamada */ 2066*0a9064fbSMasahiro YamadaYY_BUFFER_STATE zconf_scan_bytes (yyconst char * yybytes, int _yybytes_len ) 2067*0a9064fbSMasahiro Yamada{ 2068*0a9064fbSMasahiro Yamada YY_BUFFER_STATE b; 2069*0a9064fbSMasahiro Yamada char *buf; 2070*0a9064fbSMasahiro Yamada yy_size_t n; 2071*0a9064fbSMasahiro Yamada int i; 2072*0a9064fbSMasahiro Yamada 2073*0a9064fbSMasahiro Yamada /* Get memory for full buffer, including space for trailing EOB's. */ 2074*0a9064fbSMasahiro Yamada n = _yybytes_len + 2; 2075*0a9064fbSMasahiro Yamada buf = (char *) zconfalloc(n ); 2076*0a9064fbSMasahiro Yamada if ( ! buf ) 2077*0a9064fbSMasahiro Yamada YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" ); 2078*0a9064fbSMasahiro Yamada 2079*0a9064fbSMasahiro Yamada for ( i = 0; i < _yybytes_len; ++i ) 2080*0a9064fbSMasahiro Yamada buf[i] = yybytes[i]; 2081*0a9064fbSMasahiro Yamada 2082*0a9064fbSMasahiro Yamada buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; 2083*0a9064fbSMasahiro Yamada 2084*0a9064fbSMasahiro Yamada b = zconf_scan_buffer(buf,n ); 2085*0a9064fbSMasahiro Yamada if ( ! b ) 2086*0a9064fbSMasahiro Yamada YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" ); 2087*0a9064fbSMasahiro Yamada 2088*0a9064fbSMasahiro Yamada /* It's okay to grow etc. this buffer, and we should throw it 2089*0a9064fbSMasahiro Yamada * away when we're done. 2090*0a9064fbSMasahiro Yamada */ 2091*0a9064fbSMasahiro Yamada b->yy_is_our_buffer = 1; 2092*0a9064fbSMasahiro Yamada 2093*0a9064fbSMasahiro Yamada return b; 2094*0a9064fbSMasahiro Yamada} 2095*0a9064fbSMasahiro Yamada 2096*0a9064fbSMasahiro Yamada#ifndef YY_EXIT_FAILURE 2097*0a9064fbSMasahiro Yamada#define YY_EXIT_FAILURE 2 2098*0a9064fbSMasahiro Yamada#endif 2099*0a9064fbSMasahiro Yamada 2100*0a9064fbSMasahiro Yamadastatic void yy_fatal_error (yyconst char* msg ) 2101*0a9064fbSMasahiro Yamada{ 2102*0a9064fbSMasahiro Yamada (void) fprintf( stderr, "%s\n", msg ); 2103*0a9064fbSMasahiro Yamada exit( YY_EXIT_FAILURE ); 2104*0a9064fbSMasahiro Yamada} 2105*0a9064fbSMasahiro Yamada 2106*0a9064fbSMasahiro Yamada/* Redefine yyless() so it works in section 3 code. */ 2107*0a9064fbSMasahiro Yamada 2108*0a9064fbSMasahiro Yamada#undef yyless 2109*0a9064fbSMasahiro Yamada#define yyless(n) \ 2110*0a9064fbSMasahiro Yamada do \ 2111*0a9064fbSMasahiro Yamada { \ 2112*0a9064fbSMasahiro Yamada /* Undo effects of setting up zconftext. */ \ 2113*0a9064fbSMasahiro Yamada int yyless_macro_arg = (n); \ 2114*0a9064fbSMasahiro Yamada YY_LESS_LINENO(yyless_macro_arg);\ 2115*0a9064fbSMasahiro Yamada zconftext[zconfleng] = (yy_hold_char); \ 2116*0a9064fbSMasahiro Yamada (yy_c_buf_p) = zconftext + yyless_macro_arg; \ 2117*0a9064fbSMasahiro Yamada (yy_hold_char) = *(yy_c_buf_p); \ 2118*0a9064fbSMasahiro Yamada *(yy_c_buf_p) = '\0'; \ 2119*0a9064fbSMasahiro Yamada zconfleng = yyless_macro_arg; \ 2120*0a9064fbSMasahiro Yamada } \ 2121*0a9064fbSMasahiro Yamada while ( 0 ) 2122*0a9064fbSMasahiro Yamada 2123*0a9064fbSMasahiro Yamada/* Accessor methods (get/set functions) to struct members. */ 2124*0a9064fbSMasahiro Yamada 2125*0a9064fbSMasahiro Yamada/** Get the current line number. 2126*0a9064fbSMasahiro Yamada * 2127*0a9064fbSMasahiro Yamada */ 2128*0a9064fbSMasahiro Yamadaint zconfget_lineno (void) 2129*0a9064fbSMasahiro Yamada{ 2130*0a9064fbSMasahiro Yamada 2131*0a9064fbSMasahiro Yamada return zconflineno; 2132*0a9064fbSMasahiro Yamada} 2133*0a9064fbSMasahiro Yamada 2134*0a9064fbSMasahiro Yamada/** Get the input stream. 2135*0a9064fbSMasahiro Yamada * 2136*0a9064fbSMasahiro Yamada */ 2137*0a9064fbSMasahiro YamadaFILE *zconfget_in (void) 2138*0a9064fbSMasahiro Yamada{ 2139*0a9064fbSMasahiro Yamada return zconfin; 2140*0a9064fbSMasahiro Yamada} 2141*0a9064fbSMasahiro Yamada 2142*0a9064fbSMasahiro Yamada/** Get the output stream. 2143*0a9064fbSMasahiro Yamada * 2144*0a9064fbSMasahiro Yamada */ 2145*0a9064fbSMasahiro YamadaFILE *zconfget_out (void) 2146*0a9064fbSMasahiro Yamada{ 2147*0a9064fbSMasahiro Yamada return zconfout; 2148*0a9064fbSMasahiro Yamada} 2149*0a9064fbSMasahiro Yamada 2150*0a9064fbSMasahiro Yamada/** Get the length of the current token. 2151*0a9064fbSMasahiro Yamada * 2152*0a9064fbSMasahiro Yamada */ 2153*0a9064fbSMasahiro Yamadaint zconfget_leng (void) 2154*0a9064fbSMasahiro Yamada{ 2155*0a9064fbSMasahiro Yamada return zconfleng; 2156*0a9064fbSMasahiro Yamada} 2157*0a9064fbSMasahiro Yamada 2158*0a9064fbSMasahiro Yamada/** Get the current token. 2159*0a9064fbSMasahiro Yamada * 2160*0a9064fbSMasahiro Yamada */ 2161*0a9064fbSMasahiro Yamada 2162*0a9064fbSMasahiro Yamadachar *zconfget_text (void) 2163*0a9064fbSMasahiro Yamada{ 2164*0a9064fbSMasahiro Yamada return zconftext; 2165*0a9064fbSMasahiro Yamada} 2166*0a9064fbSMasahiro Yamada 2167*0a9064fbSMasahiro Yamada/** Set the current line number. 2168*0a9064fbSMasahiro Yamada * @param line_number 2169*0a9064fbSMasahiro Yamada * 2170*0a9064fbSMasahiro Yamada */ 2171*0a9064fbSMasahiro Yamadavoid zconfset_lineno (int line_number ) 2172*0a9064fbSMasahiro Yamada{ 2173*0a9064fbSMasahiro Yamada 2174*0a9064fbSMasahiro Yamada zconflineno = line_number; 2175*0a9064fbSMasahiro Yamada} 2176*0a9064fbSMasahiro Yamada 2177*0a9064fbSMasahiro Yamada/** Set the input stream. This does not discard the current 2178*0a9064fbSMasahiro Yamada * input buffer. 2179*0a9064fbSMasahiro Yamada * @param in_str A readable stream. 2180*0a9064fbSMasahiro Yamada * 2181*0a9064fbSMasahiro Yamada * @see zconf_switch_to_buffer 2182*0a9064fbSMasahiro Yamada */ 2183*0a9064fbSMasahiro Yamadavoid zconfset_in (FILE * in_str ) 2184*0a9064fbSMasahiro Yamada{ 2185*0a9064fbSMasahiro Yamada zconfin = in_str ; 2186*0a9064fbSMasahiro Yamada} 2187*0a9064fbSMasahiro Yamada 2188*0a9064fbSMasahiro Yamadavoid zconfset_out (FILE * out_str ) 2189*0a9064fbSMasahiro Yamada{ 2190*0a9064fbSMasahiro Yamada zconfout = out_str ; 2191*0a9064fbSMasahiro Yamada} 2192*0a9064fbSMasahiro Yamada 2193*0a9064fbSMasahiro Yamadaint zconfget_debug (void) 2194*0a9064fbSMasahiro Yamada{ 2195*0a9064fbSMasahiro Yamada return zconf_flex_debug; 2196*0a9064fbSMasahiro Yamada} 2197*0a9064fbSMasahiro Yamada 2198*0a9064fbSMasahiro Yamadavoid zconfset_debug (int bdebug ) 2199*0a9064fbSMasahiro Yamada{ 2200*0a9064fbSMasahiro Yamada zconf_flex_debug = bdebug ; 2201*0a9064fbSMasahiro Yamada} 2202*0a9064fbSMasahiro Yamada 2203*0a9064fbSMasahiro Yamadastatic int yy_init_globals (void) 2204*0a9064fbSMasahiro Yamada{ 2205*0a9064fbSMasahiro Yamada /* Initialization is the same as for the non-reentrant scanner. 2206*0a9064fbSMasahiro Yamada * This function is called from zconflex_destroy(), so don't allocate here. 2207*0a9064fbSMasahiro Yamada */ 2208*0a9064fbSMasahiro Yamada 2209*0a9064fbSMasahiro Yamada (yy_buffer_stack) = 0; 2210*0a9064fbSMasahiro Yamada (yy_buffer_stack_top) = 0; 2211*0a9064fbSMasahiro Yamada (yy_buffer_stack_max) = 0; 2212*0a9064fbSMasahiro Yamada (yy_c_buf_p) = (char *) 0; 2213*0a9064fbSMasahiro Yamada (yy_init) = 0; 2214*0a9064fbSMasahiro Yamada (yy_start) = 0; 2215*0a9064fbSMasahiro Yamada 2216*0a9064fbSMasahiro Yamada/* Defined in main.c */ 2217*0a9064fbSMasahiro Yamada#ifdef YY_STDINIT 2218*0a9064fbSMasahiro Yamada zconfin = stdin; 2219*0a9064fbSMasahiro Yamada zconfout = stdout; 2220*0a9064fbSMasahiro Yamada#else 2221*0a9064fbSMasahiro Yamada zconfin = (FILE *) 0; 2222*0a9064fbSMasahiro Yamada zconfout = (FILE *) 0; 2223*0a9064fbSMasahiro Yamada#endif 2224*0a9064fbSMasahiro Yamada 2225*0a9064fbSMasahiro Yamada /* For future reference: Set errno on error, since we are called by 2226*0a9064fbSMasahiro Yamada * zconflex_init() 2227*0a9064fbSMasahiro Yamada */ 2228*0a9064fbSMasahiro Yamada return 0; 2229*0a9064fbSMasahiro Yamada} 2230*0a9064fbSMasahiro Yamada 2231*0a9064fbSMasahiro Yamada/* zconflex_destroy is for both reentrant and non-reentrant scanners. */ 2232*0a9064fbSMasahiro Yamadaint zconflex_destroy (void) 2233*0a9064fbSMasahiro Yamada{ 2234*0a9064fbSMasahiro Yamada 2235*0a9064fbSMasahiro Yamada /* Pop the buffer stack, destroying each element. */ 2236*0a9064fbSMasahiro Yamada while(YY_CURRENT_BUFFER){ 2237*0a9064fbSMasahiro Yamada zconf_delete_buffer(YY_CURRENT_BUFFER ); 2238*0a9064fbSMasahiro Yamada YY_CURRENT_BUFFER_LVALUE = NULL; 2239*0a9064fbSMasahiro Yamada zconfpop_buffer_state(); 2240*0a9064fbSMasahiro Yamada } 2241*0a9064fbSMasahiro Yamada 2242*0a9064fbSMasahiro Yamada /* Destroy the stack itself. */ 2243*0a9064fbSMasahiro Yamada zconffree((yy_buffer_stack) ); 2244*0a9064fbSMasahiro Yamada (yy_buffer_stack) = NULL; 2245*0a9064fbSMasahiro Yamada 2246*0a9064fbSMasahiro Yamada /* Reset the globals. This is important in a non-reentrant scanner so the next time 2247*0a9064fbSMasahiro Yamada * zconflex() is called, initialization will occur. */ 2248*0a9064fbSMasahiro Yamada yy_init_globals( ); 2249*0a9064fbSMasahiro Yamada 2250*0a9064fbSMasahiro Yamada return 0; 2251*0a9064fbSMasahiro Yamada} 2252*0a9064fbSMasahiro Yamada 2253*0a9064fbSMasahiro Yamada/* 2254*0a9064fbSMasahiro Yamada * Internal utility routines. 2255*0a9064fbSMasahiro Yamada */ 2256*0a9064fbSMasahiro Yamada 2257*0a9064fbSMasahiro Yamada#ifndef yytext_ptr 2258*0a9064fbSMasahiro Yamadastatic void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) 2259*0a9064fbSMasahiro Yamada{ 2260*0a9064fbSMasahiro Yamada register int i; 2261*0a9064fbSMasahiro Yamada for ( i = 0; i < n; ++i ) 2262*0a9064fbSMasahiro Yamada s1[i] = s2[i]; 2263*0a9064fbSMasahiro Yamada} 2264*0a9064fbSMasahiro Yamada#endif 2265*0a9064fbSMasahiro Yamada 2266*0a9064fbSMasahiro Yamada#ifdef YY_NEED_STRLEN 2267*0a9064fbSMasahiro Yamadastatic int yy_flex_strlen (yyconst char * s ) 2268*0a9064fbSMasahiro Yamada{ 2269*0a9064fbSMasahiro Yamada register int n; 2270*0a9064fbSMasahiro Yamada for ( n = 0; s[n]; ++n ) 2271*0a9064fbSMasahiro Yamada ; 2272*0a9064fbSMasahiro Yamada 2273*0a9064fbSMasahiro Yamada return n; 2274*0a9064fbSMasahiro Yamada} 2275*0a9064fbSMasahiro Yamada#endif 2276*0a9064fbSMasahiro Yamada 2277*0a9064fbSMasahiro Yamadavoid *zconfalloc (yy_size_t size ) 2278*0a9064fbSMasahiro Yamada{ 2279*0a9064fbSMasahiro Yamada return (void *) malloc( size ); 2280*0a9064fbSMasahiro Yamada} 2281*0a9064fbSMasahiro Yamada 2282*0a9064fbSMasahiro Yamadavoid *zconfrealloc (void * ptr, yy_size_t size ) 2283*0a9064fbSMasahiro Yamada{ 2284*0a9064fbSMasahiro Yamada /* The cast to (char *) in the following accommodates both 2285*0a9064fbSMasahiro Yamada * implementations that use char* generic pointers, and those 2286*0a9064fbSMasahiro Yamada * that use void* generic pointers. It works with the latter 2287*0a9064fbSMasahiro Yamada * because both ANSI C and C++ allow castless assignment from 2288*0a9064fbSMasahiro Yamada * any pointer type to void*, and deal with argument conversions 2289*0a9064fbSMasahiro Yamada * as though doing an assignment. 2290*0a9064fbSMasahiro Yamada */ 2291*0a9064fbSMasahiro Yamada return (void *) realloc( (char *) ptr, size ); 2292*0a9064fbSMasahiro Yamada} 2293*0a9064fbSMasahiro Yamada 2294*0a9064fbSMasahiro Yamadavoid zconffree (void * ptr ) 2295*0a9064fbSMasahiro Yamada{ 2296*0a9064fbSMasahiro Yamada free( (char *) ptr ); /* see zconfrealloc() for (char *) cast */ 2297*0a9064fbSMasahiro Yamada} 2298*0a9064fbSMasahiro Yamada 2299*0a9064fbSMasahiro Yamada#define YYTABLES_NAME "yytables" 2300*0a9064fbSMasahiro Yamada 2301*0a9064fbSMasahiro Yamadavoid zconf_starthelp(void) 2302*0a9064fbSMasahiro Yamada{ 2303*0a9064fbSMasahiro Yamada new_string(); 2304*0a9064fbSMasahiro Yamada last_ts = first_ts = 0; 2305*0a9064fbSMasahiro Yamada BEGIN(HELP); 2306*0a9064fbSMasahiro Yamada} 2307*0a9064fbSMasahiro Yamada 2308*0a9064fbSMasahiro Yamadastatic void zconf_endhelp(void) 2309*0a9064fbSMasahiro Yamada{ 2310*0a9064fbSMasahiro Yamada zconflval.string = text; 2311*0a9064fbSMasahiro Yamada BEGIN(INITIAL); 2312*0a9064fbSMasahiro Yamada} 2313*0a9064fbSMasahiro Yamada 2314*0a9064fbSMasahiro Yamada/* 2315*0a9064fbSMasahiro Yamada * Try to open specified file with following names: 2316*0a9064fbSMasahiro Yamada * ./name 2317*0a9064fbSMasahiro Yamada * $(srctree)/name 2318*0a9064fbSMasahiro Yamada * The latter is used when srctree is separate from objtree 2319*0a9064fbSMasahiro Yamada * when compiling the kernel. 2320*0a9064fbSMasahiro Yamada * Return NULL if file is not found. 2321*0a9064fbSMasahiro Yamada */ 2322*0a9064fbSMasahiro YamadaFILE *zconf_fopen(const char *name) 2323*0a9064fbSMasahiro Yamada{ 2324*0a9064fbSMasahiro Yamada char *env, fullname[PATH_MAX+1]; 2325*0a9064fbSMasahiro Yamada FILE *f; 2326*0a9064fbSMasahiro Yamada 2327*0a9064fbSMasahiro Yamada f = fopen(name, "r"); 2328*0a9064fbSMasahiro Yamada if (!f && name != NULL && name[0] != '/') { 2329*0a9064fbSMasahiro Yamada env = getenv(SRCTREE); 2330*0a9064fbSMasahiro Yamada if (env) { 2331*0a9064fbSMasahiro Yamada sprintf(fullname, "%s/%s", env, name); 2332*0a9064fbSMasahiro Yamada f = fopen(fullname, "r"); 2333*0a9064fbSMasahiro Yamada } 2334*0a9064fbSMasahiro Yamada } 2335*0a9064fbSMasahiro Yamada return f; 2336*0a9064fbSMasahiro Yamada} 2337*0a9064fbSMasahiro Yamada 2338*0a9064fbSMasahiro Yamadavoid zconf_initscan(const char *name) 2339*0a9064fbSMasahiro Yamada{ 2340*0a9064fbSMasahiro Yamada zconfin = zconf_fopen(name); 2341*0a9064fbSMasahiro Yamada if (!zconfin) { 2342*0a9064fbSMasahiro Yamada printf("can't find file %s\n", name); 2343*0a9064fbSMasahiro Yamada exit(1); 2344*0a9064fbSMasahiro Yamada } 2345*0a9064fbSMasahiro Yamada 2346*0a9064fbSMasahiro Yamada current_buf = xmalloc(sizeof(*current_buf)); 2347*0a9064fbSMasahiro Yamada memset(current_buf, 0, sizeof(*current_buf)); 2348*0a9064fbSMasahiro Yamada 2349*0a9064fbSMasahiro Yamada current_file = file_lookup(name); 2350*0a9064fbSMasahiro Yamada current_file->lineno = 1; 2351*0a9064fbSMasahiro Yamada} 2352*0a9064fbSMasahiro Yamada 2353*0a9064fbSMasahiro Yamadavoid zconf_nextfile(const char *name) 2354*0a9064fbSMasahiro Yamada{ 2355*0a9064fbSMasahiro Yamada struct file *iter; 2356*0a9064fbSMasahiro Yamada struct file *file = file_lookup(name); 2357*0a9064fbSMasahiro Yamada struct buffer *buf = xmalloc(sizeof(*buf)); 2358*0a9064fbSMasahiro Yamada memset(buf, 0, sizeof(*buf)); 2359*0a9064fbSMasahiro Yamada 2360*0a9064fbSMasahiro Yamada current_buf->state = YY_CURRENT_BUFFER; 2361*0a9064fbSMasahiro Yamada zconfin = zconf_fopen(file->name); 2362*0a9064fbSMasahiro Yamada if (!zconfin) { 2363*0a9064fbSMasahiro Yamada printf("%s:%d: can't open file \"%s\"\n", 2364*0a9064fbSMasahiro Yamada zconf_curname(), zconf_lineno(), file->name); 2365*0a9064fbSMasahiro Yamada exit(1); 2366*0a9064fbSMasahiro Yamada } 2367*0a9064fbSMasahiro Yamada zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE)); 2368*0a9064fbSMasahiro Yamada buf->parent = current_buf; 2369*0a9064fbSMasahiro Yamada current_buf = buf; 2370*0a9064fbSMasahiro Yamada 2371*0a9064fbSMasahiro Yamada for (iter = current_file->parent; iter; iter = iter->parent ) { 2372*0a9064fbSMasahiro Yamada if (!strcmp(current_file->name,iter->name) ) { 2373*0a9064fbSMasahiro Yamada printf("%s:%d: recursive inclusion detected. " 2374*0a9064fbSMasahiro Yamada "Inclusion path:\n current file : '%s'\n", 2375*0a9064fbSMasahiro Yamada zconf_curname(), zconf_lineno(), 2376*0a9064fbSMasahiro Yamada zconf_curname()); 2377*0a9064fbSMasahiro Yamada iter = current_file->parent; 2378*0a9064fbSMasahiro Yamada while (iter && \ 2379*0a9064fbSMasahiro Yamada strcmp(iter->name,current_file->name)) { 2380*0a9064fbSMasahiro Yamada printf(" included from: '%s:%d'\n", 2381*0a9064fbSMasahiro Yamada iter->name, iter->lineno-1); 2382*0a9064fbSMasahiro Yamada iter = iter->parent; 2383*0a9064fbSMasahiro Yamada } 2384*0a9064fbSMasahiro Yamada if (iter) 2385*0a9064fbSMasahiro Yamada printf(" included from: '%s:%d'\n", 2386*0a9064fbSMasahiro Yamada iter->name, iter->lineno+1); 2387*0a9064fbSMasahiro Yamada exit(1); 2388*0a9064fbSMasahiro Yamada } 2389*0a9064fbSMasahiro Yamada } 2390*0a9064fbSMasahiro Yamada file->lineno = 1; 2391*0a9064fbSMasahiro Yamada file->parent = current_file; 2392*0a9064fbSMasahiro Yamada current_file = file; 2393*0a9064fbSMasahiro Yamada} 2394*0a9064fbSMasahiro Yamada 2395*0a9064fbSMasahiro Yamadastatic void zconf_endfile(void) 2396*0a9064fbSMasahiro Yamada{ 2397*0a9064fbSMasahiro Yamada struct buffer *parent; 2398*0a9064fbSMasahiro Yamada 2399*0a9064fbSMasahiro Yamada current_file = current_file->parent; 2400*0a9064fbSMasahiro Yamada 2401*0a9064fbSMasahiro Yamada parent = current_buf->parent; 2402*0a9064fbSMasahiro Yamada if (parent) { 2403*0a9064fbSMasahiro Yamada fclose(zconfin); 2404*0a9064fbSMasahiro Yamada zconf_delete_buffer(YY_CURRENT_BUFFER); 2405*0a9064fbSMasahiro Yamada zconf_switch_to_buffer(parent->state); 2406*0a9064fbSMasahiro Yamada } 2407*0a9064fbSMasahiro Yamada free(current_buf); 2408*0a9064fbSMasahiro Yamada current_buf = parent; 2409*0a9064fbSMasahiro Yamada} 2410*0a9064fbSMasahiro Yamada 2411*0a9064fbSMasahiro Yamadaint zconf_lineno(void) 2412*0a9064fbSMasahiro Yamada{ 2413*0a9064fbSMasahiro Yamada return current_pos.lineno; 2414*0a9064fbSMasahiro Yamada} 2415*0a9064fbSMasahiro Yamada 2416*0a9064fbSMasahiro Yamadaconst char *zconf_curname(void) 2417*0a9064fbSMasahiro Yamada{ 2418*0a9064fbSMasahiro Yamada return current_pos.file ? current_pos.file->name : "<none>"; 2419*0a9064fbSMasahiro Yamada} 2420*0a9064fbSMasahiro Yamada 2421