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