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