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