1 1.1 christos /* A lexical scanner generated by flex */ 2 1.1 christos 3 1.1 christos /* Scanner skeleton version: 4 1.2 christos * $Header: /tank/opengrok/rsync2/NetBSD/src/sys/external/bsd/acpica/dist/compiler/lex.yy.c,v 1.2 2025/08/24 16:45:58 christos Exp $ 5 1.1 christos */ 6 1.1 christos 7 1.1 christos #define FLEX_SCANNER 8 1.1 christos #define YY_FLEX_MAJOR_VERSION 2 9 1.1 christos #define YY_FLEX_MINOR_VERSION 5 10 1.1 christos 11 1.1 christos #include <stdio.h> 12 1.1 christos 13 1.1 christos 14 1.1 christos /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ 15 1.1 christos #ifdef c_plusplus 16 1.1 christos #ifndef __cplusplus 17 1.1 christos #define __cplusplus 18 1.1 christos #endif 19 1.1 christos #endif 20 1.1 christos 21 1.1 christos 22 1.1 christos #ifdef __cplusplus 23 1.1 christos 24 1.1 christos #include <stdlib.h> 25 1.1 christos #include <unistd.h> 26 1.1 christos 27 1.1 christos /* Use prototypes in function declarations. */ 28 1.1 christos #define YY_USE_PROTOS 29 1.1 christos 30 1.1 christos /* The "const" storage-class-modifier is valid. */ 31 1.1 christos #define YY_USE_CONST 32 1.1 christos 33 1.1 christos #else /* ! __cplusplus */ 34 1.1 christos 35 1.1 christos #if __STDC__ 36 1.1 christos 37 1.1 christos #define YY_USE_PROTOS 38 1.1 christos #define YY_USE_CONST 39 1.1 christos 40 1.1 christos #endif /* __STDC__ */ 41 1.1 christos #endif /* ! __cplusplus */ 42 1.1 christos 43 1.1 christos #ifdef __TURBOC__ 44 1.1 christos #pragma warn -rch 45 1.1 christos #pragma warn -use 46 1.1 christos #include <io.h> 47 1.1 christos #include <stdlib.h> 48 1.1 christos #define YY_USE_CONST 49 1.1 christos #define YY_USE_PROTOS 50 1.1 christos #endif 51 1.1 christos 52 1.1 christos #ifdef YY_USE_CONST 53 1.1 christos #define yyconst const 54 1.1 christos #else 55 1.1 christos #define yyconst 56 1.1 christos #endif 57 1.1 christos 58 1.1 christos 59 1.1 christos #ifdef YY_USE_PROTOS 60 1.1 christos #define YY_PROTO(proto) proto 61 1.1 christos #else 62 1.1 christos #define YY_PROTO(proto) () 63 1.1 christos #endif 64 1.1 christos 65 1.1 christos /* Returned upon end-of-file. */ 66 1.1 christos #define YY_NULL 0 67 1.1 christos 68 1.1 christos /* Promotes a possibly negative, possibly signed char to an unsigned 69 1.1 christos * integer for use as an array index. If the signed char is negative, 70 1.1 christos * we want to instead treat it as an 8-bit unsigned char, hence the 71 1.1 christos * double cast. 72 1.1 christos */ 73 1.1 christos #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) 74 1.1 christos 75 1.1 christos /* Enter a start condition. This macro really ought to take a parameter, 76 1.1 christos * but we do it the disgusting crufty way forced on us by the ()-less 77 1.1 christos * definition of BEGIN. 78 1.1 christos */ 79 1.1 christos #define BEGIN yy_start = 1 + 2 * 80 1.1 christos 81 1.1 christos /* Translate the current start state into a value that can be later handed 82 1.1 christos * to BEGIN to return to the state. The YYSTATE alias is for lex 83 1.1 christos * compatibility. 84 1.1 christos */ 85 1.1 christos #define YY_START ((yy_start - 1) / 2) 86 1.1 christos #define YYSTATE YY_START 87 1.1 christos 88 1.1 christos /* Action number for EOF rule of a given start state. */ 89 1.1 christos #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 90 1.1 christos 91 1.1 christos /* Special action meaning "start processing a new file". */ 92 1.1 christos #define YY_NEW_FILE yyrestart( yyin ) 93 1.1 christos 94 1.1 christos #define YY_END_OF_BUFFER_CHAR 0 95 1.1 christos 96 1.1 christos /* Size of default input buffer. */ 97 1.1 christos #define YY_BUF_SIZE 16384 98 1.1 christos 99 1.1 christos typedef struct yy_buffer_state *YY_BUFFER_STATE; 100 1.1 christos 101 1.1 christos extern int yyleng; 102 1.1 christos extern FILE *yyin, *yyout; 103 1.1 christos 104 1.1 christos #define EOB_ACT_CONTINUE_SCAN 0 105 1.1 christos #define EOB_ACT_END_OF_FILE 1 106 1.1 christos #define EOB_ACT_LAST_MATCH 2 107 1.1 christos 108 1.1 christos /* The funky do-while in the following #define is used to turn the definition 109 1.1 christos * int a single C statement (which needs a semi-colon terminator). This 110 1.1 christos * avoids problems with code like: 111 1.1 christos * 112 1.1 christos * if ( condition_holds ) 113 1.1 christos * yyless( 5 ); 114 1.1 christos * else 115 1.1 christos * do_something_else(); 116 1.1 christos * 117 1.1 christos * Prior to using the do-while the compiler would get upset at the 118 1.1 christos * "else" because it interpreted the "if" statement as being all 119 1.1 christos * done when it reached the ';' after the yyless() call. 120 1.1 christos */ 121 1.1 christos 122 1.1 christos /* Return all but the first 'n' matched characters back to the input stream. */ 123 1.1 christos 124 1.1 christos #define yyless(n) \ 125 1.1 christos do \ 126 1.1 christos { \ 127 1.1 christos /* Undo effects of setting up yytext. */ \ 128 1.1 christos *yy_cp = yy_hold_char; \ 129 1.1 christos YY_RESTORE_YY_MORE_OFFSET \ 130 1.1 christos yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ 131 1.1 christos YY_DO_BEFORE_ACTION; /* set up yytext again */ \ 132 1.1 christos } \ 133 1.1 christos while ( 0 ) 134 1.1 christos 135 1.1 christos #define unput(c) yyunput( c, yytext_ptr ) 136 1.1 christos 137 1.1 christos /* The following is because we cannot portably get our hands on size_t 138 1.1 christos * (without autoconf's help, which isn't available because we want 139 1.1 christos * flex-generated scanners to compile on their own). 140 1.1 christos */ 141 1.1 christos typedef unsigned int yy_size_t; 142 1.1 christos 143 1.1 christos 144 1.1 christos struct yy_buffer_state 145 1.1 christos { 146 1.1 christos FILE *yy_input_file; 147 1.1 christos 148 1.1 christos char *yy_ch_buf; /* input buffer */ 149 1.1 christos char *yy_buf_pos; /* current position in input buffer */ 150 1.1 christos 151 1.1 christos /* Size of input buffer in bytes, not including room for EOB 152 1.1 christos * characters. 153 1.1 christos */ 154 1.1 christos yy_size_t yy_buf_size; 155 1.1 christos 156 1.1 christos /* Number of characters read into yy_ch_buf, not including EOB 157 1.1 christos * characters. 158 1.1 christos */ 159 1.1 christos int yy_n_chars; 160 1.1 christos 161 1.1 christos /* Whether we "own" the buffer - i.e., we know we created it, 162 1.1 christos * and can realloc() it to grow it, and should free() it to 163 1.1 christos * delete it. 164 1.1 christos */ 165 1.1 christos int yy_is_our_buffer; 166 1.1 christos 167 1.1 christos /* Whether this is an "interactive" input source; if so, and 168 1.1 christos * if we're using stdio for input, then we want to use getc() 169 1.1 christos * instead of fread(), to make sure we stop fetching input after 170 1.1 christos * each newline. 171 1.1 christos */ 172 1.1 christos int yy_is_interactive; 173 1.1 christos 174 1.1 christos /* Whether we're considered to be at the beginning of a line. 175 1.1 christos * If so, '^' rules will be active on the next match, otherwise 176 1.1 christos * not. 177 1.1 christos */ 178 1.1 christos int yy_at_bol; 179 1.1 christos 180 1.1 christos /* Whether to try to fill the input buffer when we reach the 181 1.1 christos * end of it. 182 1.1 christos */ 183 1.1 christos int yy_fill_buffer; 184 1.1 christos 185 1.1 christos int yy_buffer_status; 186 1.1 christos #define YY_BUFFER_NEW 0 187 1.1 christos #define YY_BUFFER_NORMAL 1 188 1.1 christos /* When an EOF's been seen but there's still some text to process 189 1.1 christos * then we mark the buffer as YY_EOF_PENDING, to indicate that we 190 1.1 christos * shouldn't try reading from the input source any more. We might 191 1.1 christos * still have a bunch of tokens to match, though, because of 192 1.1 christos * possible backing-up. 193 1.1 christos * 194 1.1 christos * When we actually see the EOF, we change the status to "new" 195 1.1 christos * (via yyrestart()), so that the user can continue scanning by 196 1.1 christos * just pointing yyin at a new input file. 197 1.1 christos */ 198 1.1 christos #define YY_BUFFER_EOF_PENDING 2 199 1.1 christos }; 200 1.1 christos 201 1.1 christos static YY_BUFFER_STATE yy_current_buffer = 0; 202 1.1 christos 203 1.1 christos /* We provide macros for accessing buffer states in case in the 204 1.1 christos * future we want to put the buffer states in a more general 205 1.1 christos * "scanner state". 206 1.1 christos */ 207 1.1 christos #define YY_CURRENT_BUFFER yy_current_buffer 208 1.1 christos 209 1.1 christos 210 1.1 christos /* yy_hold_char holds the character lost when yytext is formed. */ 211 1.1 christos static char yy_hold_char; 212 1.1 christos 213 1.1 christos static int yy_n_chars; /* number of characters read into yy_ch_buf */ 214 1.1 christos 215 1.1 christos 216 1.1 christos int yyleng; 217 1.1 christos 218 1.1 christos /* Points to current character in buffer. */ 219 1.1 christos static char *yy_c_buf_p = (char *) 0; 220 1.1 christos static int yy_init = 1; /* whether we need to initialize */ 221 1.1 christos static int yy_start = 0; /* start state number */ 222 1.1 christos 223 1.1 christos /* Flag which is used to allow yywrap()'s to do buffer switches 224 1.1 christos * instead of setting up a fresh yyin. A bit of a hack ... 225 1.1 christos */ 226 1.1 christos static int yy_did_buffer_switch_on_eof; 227 1.1 christos 228 1.1 christos void yyrestart YY_PROTO(( FILE *input_file )); 229 1.1 christos 230 1.1 christos void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); 231 1.1 christos void yy_load_buffer_state YY_PROTO(( void )); 232 1.1 christos YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); 233 1.1 christos void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); 234 1.1 christos void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); 235 1.1 christos void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); 236 1.1 christos #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) 237 1.1 christos 238 1.1 christos YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); 239 1.1 christos YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); 240 1.1 christos YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); 241 1.1 christos 242 1.1 christos static void *yy_flex_alloc YY_PROTO(( yy_size_t )); 243 1.1 christos static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); 244 1.1 christos static void yy_flex_free YY_PROTO(( void * )); 245 1.1 christos 246 1.1 christos #define yy_new_buffer yy_create_buffer 247 1.1 christos 248 1.1 christos #define yy_set_interactive(is_interactive) \ 249 1.1 christos { \ 250 1.1 christos if ( ! yy_current_buffer ) \ 251 1.1 christos yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ 252 1.1 christos yy_current_buffer->yy_is_interactive = is_interactive; \ 253 1.1 christos } 254 1.1 christos 255 1.1 christos #define yy_set_bol(at_bol) \ 256 1.1 christos { \ 257 1.1 christos if ( ! yy_current_buffer ) \ 258 1.1 christos yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ 259 1.1 christos yy_current_buffer->yy_at_bol = at_bol; \ 260 1.1 christos } 261 1.1 christos 262 1.1 christos #define YY_AT_BOL() (yy_current_buffer->yy_at_bol) 263 1.1 christos 264 1.1 christos 265 1.1 christos #define yywrap() 1 266 1.1 christos #define YY_SKIP_YYWRAP 267 1.1 christos typedef unsigned char YY_CHAR; 268 1.1 christos FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; 269 1.1 christos typedef int yy_state_type; 270 1.1 christos extern char *yytext; 271 1.1 christos #define yytext_ptr yytext 272 1.1 christos 273 1.1 christos static yy_state_type yy_get_previous_state YY_PROTO(( void )); 274 1.1 christos static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); 275 1.1 christos static int yy_get_next_buffer YY_PROTO(( void )); 276 1.1 christos static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); 277 1.1 christos 278 1.1 christos /* Done after the current pattern has been matched and before the 279 1.1 christos * corresponding action - sets up yytext. 280 1.1 christos */ 281 1.1 christos #define YY_DO_BEFORE_ACTION \ 282 1.1 christos yytext_ptr = yy_bp; \ 283 1.1 christos yyleng = (int) (yy_cp - yy_bp); \ 284 1.1 christos yy_hold_char = *yy_cp; \ 285 1.1 christos *yy_cp = '\0'; \ 286 1.1 christos yy_c_buf_p = yy_cp; 287 1.1 christos 288 1.1 christos #define YY_NUM_RULES 32 289 1.1 christos #define YY_END_OF_BUFFER 33 290 1.1 christos static yyconst short int yy_accept[50] = 291 1.1 christos { 0, 292 1.1 christos 0, 0, 33, 31, 30, 29, 6, 9, 20, 3, 293 1.1 christos 4, 7, 10, 11, 8, 27, 27, 14, 31, 15, 294 1.1 christos 26, 26, 21, 26, 22, 5, 30, 19, 23, 1, 295 1.1 christos 2, 27, 0, 13, 16, 18, 17, 12, 26, 26, 296 1.1 christos 26, 24, 28, 26, 26, 26, 26, 25, 0 297 1.1 christos } ; 298 1.1 christos 299 1.1 christos static yyconst int yy_ec[256] = 300 1.1 christos { 0, 301 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 302 1.1 christos 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, 303 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 304 1.1 christos 1, 2, 4, 1, 1, 1, 5, 6, 1, 7, 305 1.1 christos 8, 9, 10, 1, 11, 1, 12, 13, 14, 14, 306 1.1 christos 14, 14, 14, 14, 14, 14, 14, 1, 1, 15, 307 1.1 christos 16, 17, 1, 1, 18, 18, 18, 18, 18, 18, 308 1.1 christos 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 309 1.1 christos 19, 19, 19, 19, 19, 19, 19, 20, 19, 19, 310 1.1 christos 1, 1, 1, 21, 1, 1, 18, 18, 18, 22, 311 1.1 christos 312 1.1 christos 23, 24, 19, 19, 25, 19, 19, 19, 19, 26, 313 1.1 christos 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 314 1.1 christos 19, 19, 1, 27, 1, 28, 1, 1, 1, 1, 315 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 316 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 317 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 318 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 319 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 320 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 321 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 322 1.1 christos 323 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 324 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 325 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 326 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 327 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 328 1.1 christos 1, 1, 1, 1, 1 329 1.1 christos } ; 330 1.1 christos 331 1.1 christos static yyconst int yy_meta[29] = 332 1.1 christos { 0, 333 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 334 1.1 christos 1, 1, 2, 2, 1, 1, 1, 2, 3, 4, 335 1.1 christos 1, 2, 2, 2, 3, 3, 1, 1 336 1.1 christos } ; 337 1.1 christos 338 1.1 christos static yyconst short int yy_base[54] = 339 1.1 christos { 0, 340 1.1 christos 0, 0, 72, 73, 69, 73, 54, 73, 63, 73, 341 1.1 christos 73, 73, 73, 73, 20, 48, 47, 15, 50, 17, 342 1.1 christos 16, 0, 73, 24, 38, 73, 62, 73, 73, 73, 343 1.1 christos 73, 43, 0, 73, 73, 73, 73, 73, 39, 0, 344 1.1 christos 14, 73, 0, 20, 35, 37, 30, 0, 73, 49, 345 1.1 christos 52, 55, 46 346 1.1 christos } ; 347 1.1 christos 348 1.1 christos static yyconst short int yy_def[54] = 349 1.1 christos { 0, 350 1.1 christos 49, 1, 49, 49, 49, 49, 49, 49, 49, 49, 351 1.1 christos 49, 49, 49, 49, 49, 50, 50, 49, 49, 49, 352 1.1 christos 51, 52, 49, 51, 49, 49, 49, 49, 49, 49, 353 1.1 christos 49, 50, 53, 49, 49, 49, 49, 49, 24, 52, 354 1.1 christos 24, 49, 53, 51, 52, 52, 52, 52, 0, 49, 355 1.1 christos 49, 49, 49 356 1.1 christos } ; 357 1.1 christos 358 1.1 christos static yyconst short int yy_nxt[102] = 359 1.1 christos { 0, 360 1.1 christos 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 361 1.1 christos 14, 15, 16, 17, 18, 19, 20, 21, 22, 22, 362 1.1 christos 23, 24, 21, 21, 22, 22, 25, 26, 30, 34, 363 1.1 christos 35, 31, 37, 38, 40, 40, 39, 44, 40, 40, 364 1.1 christos 40, 40, 40, 40, 45, 40, 41, 43, 40, 40, 365 1.1 christos 32, 48, 32, 39, 39, 39, 40, 40, 40, 47, 366 1.1 christos 46, 39, 49, 27, 42, 36, 49, 33, 29, 28, 367 1.1 christos 27, 49, 3, 49, 49, 49, 49, 49, 49, 49, 368 1.1 christos 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 369 1.1 christos 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 370 1.1 christos 371 1.1 christos 49 372 1.1 christos } ; 373 1.1 christos 374 1.1 christos static yyconst short int yy_chk[102] = 375 1.1 christos { 0, 376 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 377 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 378 1.1 christos 1, 1, 1, 1, 1, 1, 1, 1, 15, 18, 379 1.1 christos 18, 15, 20, 20, 21, 21, 41, 41, 44, 44, 380 1.1 christos 21, 21, 24, 24, 44, 44, 24, 53, 24, 24, 381 1.1 christos 50, 47, 50, 51, 51, 51, 52, 52, 52, 46, 382 1.1 christos 45, 39, 32, 27, 25, 19, 17, 16, 9, 7, 383 1.1 christos 5, 3, 49, 49, 49, 49, 49, 49, 49, 49, 384 1.1 christos 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 385 1.1 christos 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 386 1.1 christos 387 1.1 christos 49 388 1.1 christos } ; 389 1.1 christos 390 1.1 christos static yy_state_type yy_last_accepting_state; 391 1.1 christos static char *yy_last_accepting_cpos; 392 1.1 christos 393 1.1 christos /* The intent behind this definition is that it'll catch 394 1.1 christos * any uses of REJECT which flex missed. 395 1.1 christos */ 396 1.1 christos #define REJECT reject_used_but_not_detected 397 1.1 christos #define yymore() yymore_used_but_not_detected 398 1.1 christos #define YY_MORE_ADJ 0 399 1.1 christos #define YY_RESTORE_YY_MORE_OFFSET 400 1.1 christos char *yytext; 401 1.1 christos #line 1 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 402 1.1 christos #define INITIAL 0 403 1.1 christos #line 2 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 404 1.1 christos /****************************************************************************** 405 1.1 christos * 406 1.1 christos * Module Name: prparser.l - Flex input file for preprocessor lexer 407 1.1 christos * 408 1.1 christos *****************************************************************************/ 409 1.1 christos 410 1.1 christos /****************************************************************************** 411 1.1 christos * 412 1.1 christos * 1. Copyright Notice 413 1.1 christos * 414 1.1 christos * Some or all of this work - Copyright (c) 1999 - 2025, Intel Corp. 415 1.1 christos * All rights reserved. 416 1.1 christos * 417 1.1 christos * 2. License 418 1.1 christos * 419 1.1 christos * 2.1. This is your license from Intel Corp. under its intellectual property 420 1.1 christos * rights. You may have additional license terms from the party that provided 421 1.1 christos * you this software, covering your right to use that party's intellectual 422 1.1 christos * property rights. 423 1.1 christos * 424 1.1 christos * 2.2. Intel grants, free of charge, to any person ("Licensee") obtaining a 425 1.1 christos * copy of the source code appearing in this file ("Covered Code") an 426 1.1 christos * irrevocable, perpetual, worldwide license under Intel's copyrights in the 427 1.1 christos * base code distributed originally by Intel ("Original Intel Code") to copy, 428 1.1 christos * make derivatives, distribute, use and display any portion of the Covered 429 1.1 christos * Code in any form, with the right to sublicense such rights; and 430 1.1 christos * 431 1.1 christos * 2.3. Intel grants Licensee a non-exclusive and non-transferable patent 432 1.1 christos * license (with the right to sublicense), under only those claims of Intel 433 1.1 christos * patents that are infringed by the Original Intel Code, to make, use, sell, 434 1.1 christos * offer to sell, and import the Covered Code and derivative works thereof 435 1.1 christos * solely to the minimum extent necessary to exercise the above copyright 436 1.1 christos * license, and in no event shall the patent license extend to any additions 437 1.1 christos * to or modifications of the Original Intel Code. No other license or right 438 1.1 christos * is granted directly or by implication, estoppel or otherwise; 439 1.1 christos * 440 1.1 christos * The above copyright and patent license is granted only if the following 441 1.1 christos * conditions are met: 442 1.1 christos * 443 1.1 christos * 3. Conditions 444 1.1 christos * 445 1.1 christos * 3.1. Redistribution of Source with Rights to Further Distribute Source. 446 1.1 christos * Redistribution of source code of any substantial portion of the Covered 447 1.1 christos * Code or modification with rights to further distribute source must include 448 1.1 christos * the above Copyright Notice, the above License, this list of Conditions, 449 1.1 christos * and the following Disclaimer and Export Compliance provision. In addition, 450 1.1 christos * Licensee must cause all Covered Code to which Licensee contributes to 451 1.1 christos * contain a file documenting the changes Licensee made to create that Covered 452 1.1 christos * Code and the date of any change. Licensee must include in that file the 453 1.1 christos * documentation of any changes made by any predecessor Licensee. Licensee 454 1.1 christos * must include a prominent statement that the modification is derived, 455 1.1 christos * directly or indirectly, from Original Intel Code. 456 1.1 christos * 457 1.1 christos * 3.2. Redistribution of Source with no Rights to Further Distribute Source. 458 1.1 christos * Redistribution of source code of any substantial portion of the Covered 459 1.1 christos * Code or modification without rights to further distribute source must 460 1.1 christos * include the following Disclaimer and Export Compliance provision in the 461 1.1 christos * documentation and/or other materials provided with distribution. In 462 1.1 christos * addition, Licensee may not authorize further sublicense of source of any 463 1.1 christos * portion of the Covered Code, and must include terms to the effect that the 464 1.1 christos * license from Licensee to its licensee is limited to the intellectual 465 1.1 christos * property embodied in the software Licensee provides to its licensee, and 466 1.1 christos * not to intellectual property embodied in modifications its licensee may 467 1.1 christos * make. 468 1.1 christos * 469 1.1 christos * 3.3. Redistribution of Executable. Redistribution in executable form of any 470 1.1 christos * substantial portion of the Covered Code or modification must reproduce the 471 1.1 christos * above Copyright Notice, and the following Disclaimer and Export Compliance 472 1.1 christos * provision in the documentation and/or other materials provided with the 473 1.1 christos * distribution. 474 1.1 christos * 475 1.1 christos * 3.4. Intel retains all right, title, and interest in and to the Original 476 1.1 christos * Intel Code. 477 1.1 christos * 478 1.1 christos * 3.5. Neither the name Intel nor any other trademark owned or controlled by 479 1.1 christos * Intel shall be used in advertising or otherwise to promote the sale, use or 480 1.1 christos * other dealings in products derived from or relating to the Covered Code 481 1.1 christos * without prior written authorization from Intel. 482 1.1 christos * 483 1.1 christos * 4. Disclaimer and Export Compliance 484 1.1 christos * 485 1.1 christos * 4.1. INTEL MAKES NO WARRANTY OF ANY KIND REGARDING ANY SOFTWARE PROVIDED 486 1.1 christos * HERE. ANY SOFTWARE ORIGINATING FROM INTEL OR DERIVED FROM INTEL SOFTWARE 487 1.1 christos * IS PROVIDED "AS IS," AND INTEL WILL NOT PROVIDE ANY SUPPORT, ASSISTANCE, 488 1.1 christos * INSTALLATION, TRAINING OR OTHER SERVICES. INTEL WILL NOT PROVIDE ANY 489 1.1 christos * UPDATES, ENHANCEMENTS OR EXTENSIONS. INTEL SPECIFICALLY DISCLAIMS ANY 490 1.1 christos * IMPLIED WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT AND FITNESS FOR A 491 1.1 christos * PARTICULAR PURPOSE. 492 1.1 christos * 493 1.1 christos * 4.2. IN NO EVENT SHALL INTEL HAVE ANY LIABILITY TO LICENSEE, ITS LICENSEES 494 1.1 christos * OR ANY OTHER THIRD PARTY, FOR ANY LOST PROFITS, LOST DATA, LOSS OF USE OR 495 1.1 christos * COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, OR FOR ANY INDIRECT, 496 1.1 christos * SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THIS AGREEMENT, UNDER ANY 497 1.1 christos * CAUSE OF ACTION OR THEORY OF LIABILITY, AND IRRESPECTIVE OF WHETHER INTEL 498 1.1 christos * HAS ADVANCE NOTICE OF THE POSSIBILITY OF SUCH DAMAGES. THESE LIMITATIONS 499 1.1 christos * SHALL APPLY NOTWITHSTANDING THE FAILURE OF THE ESSENTIAL PURPOSE OF ANY 500 1.1 christos * LIMITED REMEDY. 501 1.1 christos * 502 1.1 christos * 4.3. Licensee shall not export, either directly or indirectly, any of this 503 1.1 christos * software or system incorporating such software without first obtaining any 504 1.1 christos * required license or other approval from the U. S. Department of Commerce or 505 1.1 christos * any other agency or department of the United States Government. In the 506 1.1 christos * event Licensee exports any such software from the United States or 507 1.1 christos * re-exports any such software from a foreign destination, Licensee shall 508 1.1 christos * ensure that the distribution and export/re-export of the software is in 509 1.1 christos * compliance with all laws, regulations, orders, or other restrictions of the 510 1.1 christos * U.S. Export Administration Regulations. Licensee agrees that neither it nor 511 1.1 christos * any of its subsidiaries will export/re-export any technical data, process, 512 1.1 christos * software, or service, directly or indirectly, to any country for which the 513 1.1 christos * United States government or any agency thereof requires an export license, 514 1.1 christos * other governmental approval, or letter of assurance, without first obtaining 515 1.1 christos * such license, approval or letter. 516 1.1 christos * 517 1.1 christos ***************************************************************************** 518 1.1 christos * 519 1.1 christos * Alternatively, you may choose to be licensed under the terms of the 520 1.1 christos * following license: 521 1.1 christos * 522 1.1 christos * Redistribution and use in source and binary forms, with or without 523 1.1 christos * modification, are permitted provided that the following conditions 524 1.1 christos * are met: 525 1.1 christos * 1. Redistributions of source code must retain the above copyright 526 1.1 christos * notice, this list of conditions, and the following disclaimer, 527 1.1 christos * without modification. 528 1.1 christos * 2. Redistributions in binary form must reproduce at minimum a disclaimer 529 1.1 christos * substantially similar to the "NO WARRANTY" disclaimer below 530 1.1 christos * ("Disclaimer") and any redistribution must be conditioned upon 531 1.1 christos * including a substantially similar Disclaimer requirement for further 532 1.1 christos * binary redistribution. 533 1.1 christos * 3. Neither the names of the above-listed copyright holders nor the names 534 1.1 christos * of any contributors may be used to endorse or promote products derived 535 1.1 christos * from this software without specific prior written permission. 536 1.1 christos * 537 1.1 christos * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 538 1.1 christos * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 539 1.1 christos * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 540 1.1 christos * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 541 1.1 christos * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 542 1.1 christos * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 543 1.1 christos * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 544 1.1 christos * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 545 1.1 christos * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 546 1.1 christos * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 547 1.1 christos * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 548 1.1 christos * 549 1.1 christos * Alternatively, you may choose to be licensed under the terms of the 550 1.1 christos * GNU General Public License ("GPL") version 2 as published by the Free 551 1.1 christos * Software Foundation. 552 1.1 christos * 553 1.1 christos *****************************************************************************/ 554 1.1 christos 555 1.1 christos #include "aslcompiler.h" 556 1.1 christos #include "prparser.y.h" 557 1.1 christos 558 1.1 christos /* Buffer to pass strings to the parser */ 559 1.1 christos 560 1.1 christos #define STRING_SETUP strcpy (AslGbl_StringBuffer, PrParsertext);\ 561 1.1 christos PrParserlval.str = AslGbl_StringBuffer 562 1.1 christos 563 1.1 christos #define _COMPONENT ACPI_COMPILER 564 1.1 christos ACPI_MODULE_NAME ("prscanner") 565 1.1 christos 566 1.1 christos 567 1.1 christos /* Local prototypes */ 568 1.1 christos 569 1.1 christos static char 570 1.1 christos PrDoCommentType1 ( 571 1.1 christos void); 572 1.1 christos 573 1.1 christos static char 574 1.1 christos PrDoCommentType2 ( 575 1.1 christos void); 576 1.1 christos #line 577 "lex.yy.c" 577 1.1 christos 578 1.1 christos /* Macros after this point can all be overridden by user definitions in 579 1.1 christos * section 1. 580 1.1 christos */ 581 1.1 christos 582 1.1 christos #ifndef YY_SKIP_YYWRAP 583 1.1 christos #ifdef __cplusplus 584 1.1 christos extern "C" int yywrap YY_PROTO(( void )); 585 1.1 christos #else 586 1.1 christos extern int yywrap YY_PROTO(( void )); 587 1.1 christos #endif 588 1.1 christos #endif 589 1.1 christos 590 1.1 christos #ifndef YY_NO_UNPUT 591 1.1 christos static void yyunput YY_PROTO(( int c, char *buf_ptr )); 592 1.1 christos #endif 593 1.1 christos 594 1.1 christos #ifndef yytext_ptr 595 1.1 christos static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); 596 1.1 christos #endif 597 1.1 christos 598 1.1 christos #ifdef YY_NEED_STRLEN 599 1.1 christos static int yy_flex_strlen YY_PROTO(( yyconst char * )); 600 1.1 christos #endif 601 1.1 christos 602 1.1 christos #ifndef YY_NO_INPUT 603 1.1 christos #ifdef __cplusplus 604 1.1 christos static int yyinput YY_PROTO(( void )); 605 1.1 christos #else 606 1.1 christos static int input YY_PROTO(( void )); 607 1.1 christos #endif 608 1.1 christos #endif 609 1.1 christos 610 1.1 christos #if YY_STACK_USED 611 1.1 christos static int yy_start_stack_ptr = 0; 612 1.1 christos static int yy_start_stack_depth = 0; 613 1.1 christos static int *yy_start_stack = 0; 614 1.1 christos #ifndef YY_NO_PUSH_STATE 615 1.1 christos static void yy_push_state YY_PROTO(( int new_state )); 616 1.1 christos #endif 617 1.1 christos #ifndef YY_NO_POP_STATE 618 1.1 christos static void yy_pop_state YY_PROTO(( void )); 619 1.1 christos #endif 620 1.1 christos #ifndef YY_NO_TOP_STATE 621 1.1 christos static int yy_top_state YY_PROTO(( void )); 622 1.1 christos #endif 623 1.1 christos 624 1.1 christos #else 625 1.1 christos #define YY_NO_PUSH_STATE 1 626 1.1 christos #define YY_NO_POP_STATE 1 627 1.1 christos #define YY_NO_TOP_STATE 1 628 1.1 christos #endif 629 1.1 christos 630 1.1 christos #ifdef YY_MALLOC_DECL 631 1.1 christos YY_MALLOC_DECL 632 1.1 christos #else 633 1.1 christos #if __STDC__ 634 1.1 christos #ifndef __cplusplus 635 1.1 christos #include <stdlib.h> 636 1.1 christos #endif 637 1.1 christos #else 638 1.1 christos /* Just try to get by without declaring the routines. This will fail 639 1.1 christos * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) 640 1.1 christos * or sizeof(void*) != sizeof(int). 641 1.1 christos */ 642 1.1 christos #endif 643 1.1 christos #endif 644 1.1 christos 645 1.1 christos /* Amount of stuff to slurp up with each read. */ 646 1.1 christos #ifndef YY_READ_BUF_SIZE 647 1.1 christos #define YY_READ_BUF_SIZE 8192 648 1.1 christos #endif 649 1.1 christos 650 1.1 christos /* Copy whatever the last rule matched to the standard output. */ 651 1.1 christos 652 1.1 christos #ifndef ECHO 653 1.1 christos /* This used to be an fputs(), but since the string might contain NUL's, 654 1.1 christos * we now use fwrite(). 655 1.1 christos */ 656 1.1 christos #define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) 657 1.1 christos #endif 658 1.1 christos 659 1.1 christos /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 660 1.1 christos * is returned in "result". 661 1.1 christos */ 662 1.1 christos #ifndef YY_INPUT 663 1.1 christos #define YY_INPUT(buf,result,max_size) \ 664 1.1 christos if ( yy_current_buffer->yy_is_interactive ) \ 665 1.1 christos { \ 666 1.1 christos int c = '*', n; \ 667 1.1 christos for ( n = 0; n < max_size && \ 668 1.1 christos (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ 669 1.1 christos buf[n] = (char) c; \ 670 1.1 christos if ( c == '\n' ) \ 671 1.1 christos buf[n++] = (char) c; \ 672 1.1 christos if ( c == EOF && ferror( yyin ) ) \ 673 1.1 christos YY_FATAL_ERROR( "input in flex scanner failed" ); \ 674 1.1 christos result = n; \ 675 1.1 christos } \ 676 1.1 christos else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \ 677 1.1 christos && ferror( yyin ) ) \ 678 1.1 christos YY_FATAL_ERROR( "input in flex scanner failed" ); 679 1.1 christos #endif 680 1.1 christos 681 1.1 christos /* No semi-colon after return; correct usage is to write "yyterminate();" - 682 1.1 christos * we don't want an extra ';' after the "return" because that will cause 683 1.1 christos * some compilers to complain about unreachable statements. 684 1.1 christos */ 685 1.1 christos #ifndef yyterminate 686 1.1 christos #define yyterminate() return YY_NULL 687 1.1 christos #endif 688 1.1 christos 689 1.1 christos /* Number of entries by which start-condition stack grows. */ 690 1.1 christos #ifndef YY_START_STACK_INCR 691 1.1 christos #define YY_START_STACK_INCR 25 692 1.1 christos #endif 693 1.1 christos 694 1.1 christos /* Report a fatal error. */ 695 1.1 christos #ifndef YY_FATAL_ERROR 696 1.1 christos #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 697 1.1 christos #endif 698 1.1 christos 699 1.1 christos /* Default declaration of generated scanner - a define so the user can 700 1.1 christos * easily add parameters. 701 1.1 christos */ 702 1.1 christos #ifndef YY_DECL 703 1.1 christos #define YY_DECL int yylex YY_PROTO(( void )) 704 1.1 christos #endif 705 1.1 christos 706 1.1 christos /* Code executed at the beginning of each rule, after yytext and yyleng 707 1.1 christos * have been set up. 708 1.1 christos */ 709 1.1 christos #ifndef YY_USER_ACTION 710 1.1 christos #define YY_USER_ACTION 711 1.1 christos #endif 712 1.1 christos 713 1.1 christos /* Code executed at the end of each rule. */ 714 1.1 christos #ifndef YY_BREAK 715 1.1 christos #define YY_BREAK break; 716 1.1 christos #endif 717 1.1 christos 718 1.1 christos #define YY_RULE_SETUP \ 719 1.1 christos YY_USER_ACTION 720 1.1 christos 721 1.1 christos YY_DECL 722 1.1 christos { 723 1.1 christos register yy_state_type yy_current_state; 724 1.1 christos register char *yy_cp, *yy_bp; 725 1.1 christos register int yy_act; 726 1.1 christos 727 1.1 christos #line 184 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 728 1.1 christos 729 1.1 christos #line 730 "lex.yy.c" 730 1.1 christos 731 1.1 christos if ( yy_init ) 732 1.1 christos { 733 1.1 christos yy_init = 0; 734 1.1 christos 735 1.1 christos #ifdef YY_USER_INIT 736 1.1 christos YY_USER_INIT; 737 1.1 christos #endif 738 1.1 christos 739 1.1 christos if ( ! yy_start ) 740 1.1 christos yy_start = 1; /* first start state */ 741 1.1 christos 742 1.1 christos if ( ! yyin ) 743 1.1 christos yyin = stdin; 744 1.1 christos 745 1.1 christos if ( ! yyout ) 746 1.1 christos yyout = stdout; 747 1.1 christos 748 1.1 christos if ( ! yy_current_buffer ) 749 1.1 christos yy_current_buffer = 750 1.1 christos yy_create_buffer( yyin, YY_BUF_SIZE ); 751 1.1 christos 752 1.1 christos yy_load_buffer_state(); 753 1.1 christos } 754 1.1 christos 755 1.1 christos while ( 1 ) /* loops until end-of-file is reached */ 756 1.1 christos { 757 1.1 christos yy_cp = yy_c_buf_p; 758 1.1 christos 759 1.1 christos /* Support of yytext. */ 760 1.1 christos *yy_cp = yy_hold_char; 761 1.1 christos 762 1.1 christos /* yy_bp points to the position in yy_ch_buf of the start of 763 1.1 christos * the current run. 764 1.1 christos */ 765 1.1 christos yy_bp = yy_cp; 766 1.1 christos 767 1.1 christos yy_current_state = yy_start; 768 1.1 christos yy_match: 769 1.1 christos do 770 1.1 christos { 771 1.1 christos register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; 772 1.1 christos if ( yy_accept[yy_current_state] ) 773 1.1 christos { 774 1.1 christos yy_last_accepting_state = yy_current_state; 775 1.1 christos yy_last_accepting_cpos = yy_cp; 776 1.1 christos } 777 1.1 christos while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 778 1.1 christos { 779 1.1 christos yy_current_state = (int) yy_def[yy_current_state]; 780 1.1 christos if ( yy_current_state >= 50 ) 781 1.1 christos yy_c = yy_meta[(unsigned int) yy_c]; 782 1.1 christos } 783 1.1 christos yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 784 1.1 christos ++yy_cp; 785 1.1 christos } 786 1.1 christos while ( yy_base[yy_current_state] != 73 ); 787 1.1 christos 788 1.1 christos yy_find_action: 789 1.1 christos yy_act = yy_accept[yy_current_state]; 790 1.1 christos if ( yy_act == 0 ) 791 1.1 christos { /* have to back up */ 792 1.1 christos yy_cp = yy_last_accepting_cpos; 793 1.1 christos yy_current_state = yy_last_accepting_state; 794 1.1 christos yy_act = yy_accept[yy_current_state]; 795 1.1 christos } 796 1.1 christos 797 1.1 christos YY_DO_BEFORE_ACTION; 798 1.1 christos 799 1.1 christos 800 1.1 christos do_action: /* This label is used only to access EOF actions. */ 801 1.1 christos 802 1.1 christos 803 1.1 christos switch ( yy_act ) 804 1.1 christos { /* beginning of action switch */ 805 1.1 christos case 0: /* must back up */ 806 1.1 christos /* undo the effects of YY_DO_BEFORE_ACTION */ 807 1.1 christos *yy_cp = yy_hold_char; 808 1.1 christos yy_cp = yy_last_accepting_cpos; 809 1.1 christos yy_current_state = yy_last_accepting_state; 810 1.1 christos goto yy_find_action; 811 1.1 christos 812 1.1 christos case 1: 813 1.1 christos YY_RULE_SETUP 814 1.1 christos #line 185 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 815 1.1 christos { if (!PrDoCommentType1 ()) {yyterminate ();} } 816 1.1 christos YY_BREAK 817 1.1 christos case 2: 818 1.1 christos YY_RULE_SETUP 819 1.1 christos #line 186 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 820 1.1 christos { if (!PrDoCommentType2 ()) {yyterminate ();} } 821 1.1 christos YY_BREAK 822 1.1 christos case 3: 823 1.1 christos YY_RULE_SETUP 824 1.1 christos #line 188 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 825 1.1 christos return (EXPOP_PAREN_OPEN); 826 1.1 christos YY_BREAK 827 1.1 christos case 4: 828 1.1 christos YY_RULE_SETUP 829 1.1 christos #line 189 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 830 1.1 christos return (EXPOP_PAREN_CLOSE); 831 1.1 christos YY_BREAK 832 1.1 christos case 5: 833 1.1 christos YY_RULE_SETUP 834 1.1 christos #line 190 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 835 1.1 christos return (EXPOP_ONES_COMPLIMENT); 836 1.1 christos YY_BREAK 837 1.1 christos case 6: 838 1.1 christos YY_RULE_SETUP 839 1.1 christos #line 191 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 840 1.1 christos return (EXPOP_LOGICAL_NOT); 841 1.1 christos YY_BREAK 842 1.1 christos case 7: 843 1.1 christos YY_RULE_SETUP 844 1.1 christos #line 192 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 845 1.1 christos return (EXPOP_MULTIPLY); 846 1.1 christos YY_BREAK 847 1.1 christos case 8: 848 1.1 christos YY_RULE_SETUP 849 1.1 christos #line 193 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 850 1.1 christos return (EXPOP_DIVIDE); 851 1.1 christos YY_BREAK 852 1.1 christos case 9: 853 1.1 christos YY_RULE_SETUP 854 1.1 christos #line 194 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 855 1.1 christos return (EXPOP_MODULO); 856 1.1 christos YY_BREAK 857 1.1 christos case 10: 858 1.1 christos YY_RULE_SETUP 859 1.1 christos #line 195 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 860 1.1 christos return (EXPOP_ADD); 861 1.1 christos YY_BREAK 862 1.1 christos case 11: 863 1.1 christos YY_RULE_SETUP 864 1.1 christos #line 196 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 865 1.1 christos return (EXPOP_SUBTRACT); 866 1.1 christos YY_BREAK 867 1.1 christos case 12: 868 1.1 christos YY_RULE_SETUP 869 1.1 christos #line 197 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 870 1.1 christos return (EXPOP_SHIFT_RIGHT); 871 1.1 christos YY_BREAK 872 1.1 christos case 13: 873 1.1 christos YY_RULE_SETUP 874 1.1 christos #line 198 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 875 1.1 christos return (EXPOP_SHIFT_LEFT); 876 1.1 christos YY_BREAK 877 1.1 christos case 14: 878 1.1 christos YY_RULE_SETUP 879 1.1 christos #line 199 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 880 1.1 christos return (EXPOP_LESS); 881 1.1 christos YY_BREAK 882 1.1 christos case 15: 883 1.1 christos YY_RULE_SETUP 884 1.1 christos #line 200 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 885 1.1 christos return (EXPOP_GREATER); 886 1.1 christos YY_BREAK 887 1.1 christos case 16: 888 1.1 christos YY_RULE_SETUP 889 1.1 christos #line 201 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 890 1.1 christos return (EXPOP_LESS_EQUAL); 891 1.1 christos YY_BREAK 892 1.1 christos case 17: 893 1.1 christos YY_RULE_SETUP 894 1.1 christos #line 202 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 895 1.1 christos return (EXPOP_GREATER_EQUAL); 896 1.1 christos YY_BREAK 897 1.1 christos case 18: 898 1.1 christos YY_RULE_SETUP 899 1.1 christos #line 203 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 900 1.1 christos return (EXPOP_EQUAL); 901 1.1 christos YY_BREAK 902 1.1 christos case 19: 903 1.1 christos YY_RULE_SETUP 904 1.1 christos #line 204 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 905 1.1 christos return (EXPOP_NOT_EQUAL); 906 1.1 christos YY_BREAK 907 1.1 christos case 20: 908 1.1 christos YY_RULE_SETUP 909 1.1 christos #line 205 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 910 1.1 christos return (EXPOP_AND); 911 1.1 christos YY_BREAK 912 1.1 christos case 21: 913 1.1 christos YY_RULE_SETUP 914 1.1 christos #line 206 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 915 1.1 christos return (EXPOP_XOR); 916 1.1 christos YY_BREAK 917 1.1 christos case 22: 918 1.1 christos YY_RULE_SETUP 919 1.1 christos #line 207 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 920 1.1 christos return (EXPOP_OR); 921 1.1 christos YY_BREAK 922 1.1 christos case 23: 923 1.1 christos YY_RULE_SETUP 924 1.1 christos #line 208 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 925 1.1 christos return (EXPOP_LOGICAL_AND); 926 1.1 christos YY_BREAK 927 1.1 christos case 24: 928 1.1 christos YY_RULE_SETUP 929 1.1 christos #line 209 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 930 1.1 christos return (EXPOP_LOGICAL_OR); 931 1.1 christos YY_BREAK 932 1.1 christos case 25: 933 1.1 christos YY_RULE_SETUP 934 1.1 christos #line 211 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 935 1.1 christos return (EXPOP_DEFINE); 936 1.1 christos YY_BREAK 937 1.1 christos case 26: 938 1.1 christos YY_RULE_SETUP 939 1.1 christos #line 212 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 940 1.1 christos {STRING_SETUP; return (EXPOP_IDENTIFIER);} 941 1.1 christos YY_BREAK 942 1.1 christos case YY_STATE_EOF(INITIAL): 943 1.1 christos #line 214 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 944 1.1 christos return (EXPOP_EOF); /* null end-of-string */ 945 1.1 christos YY_BREAK 946 1.1 christos case 27: 947 1.1 christos YY_RULE_SETUP 948 1.1 christos #line 216 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 949 1.1 christos return (EXPOP_NUMBER); 950 1.1 christos YY_BREAK 951 1.1 christos case 28: 952 1.1 christos YY_RULE_SETUP 953 1.1 christos #line 217 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 954 1.1 christos return (EXPOP_HEX_NUMBER); 955 1.1 christos YY_BREAK 956 1.1 christos case 29: 957 1.1 christos YY_RULE_SETUP 958 1.1 christos #line 218 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 959 1.1 christos return (EXPOP_NEW_LINE); 960 1.1 christos YY_BREAK 961 1.1 christos case 30: 962 1.1 christos YY_RULE_SETUP 963 1.1 christos #line 219 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 964 1.1 christos /* Ignore */ 965 1.1 christos YY_BREAK 966 1.1 christos case 31: 967 1.1 christos YY_RULE_SETUP 968 1.1 christos #line 221 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 969 1.1 christos return (EXPOP_EOF); 970 1.1 christos YY_BREAK 971 1.1 christos case 32: 972 1.1 christos YY_RULE_SETUP 973 1.1 christos #line 222 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 974 1.1 christos ECHO; 975 1.1 christos YY_BREAK 976 1.1 christos #line 977 "lex.yy.c" 977 1.1 christos 978 1.1 christos case YY_END_OF_BUFFER: 979 1.1 christos { 980 1.1 christos /* Amount of text matched not including the EOB char. */ 981 1.1 christos int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; 982 1.1 christos 983 1.1 christos /* Undo the effects of YY_DO_BEFORE_ACTION. */ 984 1.1 christos *yy_cp = yy_hold_char; 985 1.1 christos YY_RESTORE_YY_MORE_OFFSET 986 1.1 christos 987 1.1 christos if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) 988 1.1 christos { 989 1.1 christos /* We're scanning a new file or input source. It's 990 1.1 christos * possible that this happened because the user 991 1.1 christos * just pointed yyin at a new source and called 992 1.1 christos * yylex(). If so, then we have to assure 993 1.1 christos * consistency between yy_current_buffer and our 994 1.1 christos * globals. Here is the right place to do so, because 995 1.1 christos * this is the first action (other than possibly a 996 1.1 christos * back-up) that will match for the new input source. 997 1.1 christos */ 998 1.1 christos yy_n_chars = yy_current_buffer->yy_n_chars; 999 1.1 christos yy_current_buffer->yy_input_file = yyin; 1000 1.1 christos yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; 1001 1.1 christos } 1002 1.1 christos 1003 1.1 christos /* Note that here we test for yy_c_buf_p "<=" to the position 1004 1.1 christos * of the first EOB in the buffer, since yy_c_buf_p will 1005 1.1 christos * already have been incremented past the NUL character 1006 1.1 christos * (since all states make transitions on EOB to the 1007 1.1 christos * end-of-buffer state). Contrast this with the test 1008 1.1 christos * in input(). 1009 1.1 christos */ 1010 1.1 christos if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) 1011 1.1 christos { /* This was really a NUL. */ 1012 1.1 christos yy_state_type yy_next_state; 1013 1.1 christos 1014 1.1 christos yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; 1015 1.1 christos 1016 1.1 christos yy_current_state = yy_get_previous_state(); 1017 1.1 christos 1018 1.1 christos /* Okay, we're now positioned to make the NUL 1019 1.1 christos * transition. We couldn't have 1020 1.1 christos * yy_get_previous_state() go ahead and do it 1021 1.1 christos * for us because it doesn't know how to deal 1022 1.1 christos * with the possibility of jamming (and we don't 1023 1.1 christos * want to build jamming into it because then it 1024 1.1 christos * will run more slowly). 1025 1.1 christos */ 1026 1.1 christos 1027 1.1 christos yy_next_state = yy_try_NUL_trans( yy_current_state ); 1028 1.1 christos 1029 1.1 christos yy_bp = yytext_ptr + YY_MORE_ADJ; 1030 1.1 christos 1031 1.1 christos if ( yy_next_state ) 1032 1.1 christos { 1033 1.1 christos /* Consume the NUL. */ 1034 1.1 christos yy_cp = ++yy_c_buf_p; 1035 1.1 christos yy_current_state = yy_next_state; 1036 1.1 christos goto yy_match; 1037 1.1 christos } 1038 1.1 christos 1039 1.1 christos else 1040 1.1 christos { 1041 1.1 christos yy_cp = yy_c_buf_p; 1042 1.1 christos goto yy_find_action; 1043 1.1 christos } 1044 1.1 christos } 1045 1.1 christos 1046 1.1 christos else switch ( yy_get_next_buffer() ) 1047 1.1 christos { 1048 1.1 christos case EOB_ACT_END_OF_FILE: 1049 1.1 christos { 1050 1.1 christos yy_did_buffer_switch_on_eof = 0; 1051 1.1 christos 1052 1.1 christos if ( yywrap() ) 1053 1.1 christos { 1054 1.1 christos /* Note: because we've taken care in 1055 1.1 christos * yy_get_next_buffer() to have set up 1056 1.1 christos * yytext, we can now set up 1057 1.1 christos * yy_c_buf_p so that if some total 1058 1.1 christos * hoser (like flex itself) wants to 1059 1.1 christos * call the scanner after we return the 1060 1.1 christos * YY_NULL, it'll still work - another 1061 1.1 christos * YY_NULL will get returned. 1062 1.1 christos */ 1063 1.1 christos yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; 1064 1.1 christos 1065 1.1 christos yy_act = YY_STATE_EOF(YY_START); 1066 1.1 christos goto do_action; 1067 1.1 christos } 1068 1.1 christos 1069 1.1 christos else 1070 1.1 christos { 1071 1.1 christos if ( ! yy_did_buffer_switch_on_eof ) 1072 1.1 christos YY_NEW_FILE; 1073 1.1 christos } 1074 1.1 christos break; 1075 1.1 christos } 1076 1.1 christos 1077 1.1 christos case EOB_ACT_CONTINUE_SCAN: 1078 1.1 christos yy_c_buf_p = 1079 1.1 christos yytext_ptr + yy_amount_of_matched_text; 1080 1.1 christos 1081 1.1 christos yy_current_state = yy_get_previous_state(); 1082 1.1 christos 1083 1.1 christos yy_cp = yy_c_buf_p; 1084 1.1 christos yy_bp = yytext_ptr + YY_MORE_ADJ; 1085 1.1 christos goto yy_match; 1086 1.1 christos 1087 1.1 christos case EOB_ACT_LAST_MATCH: 1088 1.1 christos yy_c_buf_p = 1089 1.1 christos &yy_current_buffer->yy_ch_buf[yy_n_chars]; 1090 1.1 christos 1091 1.1 christos yy_current_state = yy_get_previous_state(); 1092 1.1 christos 1093 1.1 christos yy_cp = yy_c_buf_p; 1094 1.1 christos yy_bp = yytext_ptr + YY_MORE_ADJ; 1095 1.1 christos goto yy_find_action; 1096 1.1 christos } 1097 1.1 christos break; 1098 1.1 christos } 1099 1.1 christos 1100 1.1 christos default: 1101 1.1 christos YY_FATAL_ERROR( 1102 1.1 christos "fatal flex scanner internal error--no action found" ); 1103 1.1 christos } /* end of action switch */ 1104 1.1 christos } /* end of scanning one token */ 1105 1.1 christos } /* end of yylex */ 1106 1.1 christos 1107 1.1 christos 1108 1.1 christos /* yy_get_next_buffer - try to read in a new buffer 1109 1.1 christos * 1110 1.1 christos * Returns a code representing an action: 1111 1.1 christos * EOB_ACT_LAST_MATCH - 1112 1.1 christos * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 1113 1.1 christos * EOB_ACT_END_OF_FILE - end of file 1114 1.1 christos */ 1115 1.1 christos 1116 1.1 christos static int yy_get_next_buffer() 1117 1.1 christos { 1118 1.1 christos register char *dest = yy_current_buffer->yy_ch_buf; 1119 1.1 christos register char *source = yytext_ptr; 1120 1.1 christos register int number_to_move, i; 1121 1.1 christos int ret_val; 1122 1.1 christos 1123 1.1 christos if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) 1124 1.1 christos YY_FATAL_ERROR( 1125 1.1 christos "fatal flex scanner internal error--end of buffer missed" ); 1126 1.1 christos 1127 1.1 christos if ( yy_current_buffer->yy_fill_buffer == 0 ) 1128 1.1 christos { /* Don't try to fill the buffer, so this is an EOF. */ 1129 1.1 christos if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) 1130 1.1 christos { 1131 1.1 christos /* We matched a single character, the EOB, so 1132 1.1 christos * treat this as a final EOF. 1133 1.1 christos */ 1134 1.1 christos return EOB_ACT_END_OF_FILE; 1135 1.1 christos } 1136 1.1 christos 1137 1.1 christos else 1138 1.1 christos { 1139 1.1 christos /* We matched some text prior to the EOB, first 1140 1.1 christos * process it. 1141 1.1 christos */ 1142 1.1 christos return EOB_ACT_LAST_MATCH; 1143 1.1 christos } 1144 1.1 christos } 1145 1.1 christos 1146 1.1 christos /* Try to read more data. */ 1147 1.1 christos 1148 1.1 christos /* First move last chars to start of buffer. */ 1149 1.1 christos number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; 1150 1.1 christos 1151 1.1 christos for ( i = 0; i < number_to_move; ++i ) 1152 1.1 christos *(dest++) = *(source++); 1153 1.1 christos 1154 1.1 christos if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 1155 1.1 christos /* don't do the read, it's not guaranteed to return an EOF, 1156 1.1 christos * just force an EOF 1157 1.1 christos */ 1158 1.1 christos yy_current_buffer->yy_n_chars = yy_n_chars = 0; 1159 1.1 christos 1160 1.1 christos else 1161 1.1 christos { 1162 1.1 christos int num_to_read = 1163 1.1 christos yy_current_buffer->yy_buf_size - number_to_move - 1; 1164 1.1 christos 1165 1.1 christos while ( num_to_read <= 0 ) 1166 1.1 christos { /* Not enough room in the buffer - grow it. */ 1167 1.1 christos #ifdef YY_USES_REJECT 1168 1.1 christos YY_FATAL_ERROR( 1169 1.1 christos "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); 1170 1.1 christos #else 1171 1.1 christos 1172 1.1 christos /* just a shorter name for the current buffer */ 1173 1.1 christos YY_BUFFER_STATE b = yy_current_buffer; 1174 1.1 christos 1175 1.1 christos int yy_c_buf_p_offset = 1176 1.1 christos (int) (yy_c_buf_p - b->yy_ch_buf); 1177 1.1 christos 1178 1.1 christos if ( b->yy_is_our_buffer ) 1179 1.1 christos { 1180 1.1 christos int new_size = b->yy_buf_size * 2; 1181 1.1 christos 1182 1.1 christos if ( new_size <= 0 ) 1183 1.1 christos b->yy_buf_size += b->yy_buf_size / 8; 1184 1.1 christos else 1185 1.1 christos b->yy_buf_size *= 2; 1186 1.1 christos 1187 1.1 christos b->yy_ch_buf = (char *) 1188 1.1 christos /* Include room in for 2 EOB chars. */ 1189 1.1 christos yy_flex_realloc( (void *) b->yy_ch_buf, 1190 1.1 christos b->yy_buf_size + 2 ); 1191 1.1 christos } 1192 1.1 christos else 1193 1.1 christos /* Can't grow it, we don't own it. */ 1194 1.1 christos b->yy_ch_buf = 0; 1195 1.1 christos 1196 1.1 christos if ( ! b->yy_ch_buf ) 1197 1.1 christos YY_FATAL_ERROR( 1198 1.1 christos "fatal error - scanner input buffer overflow" ); 1199 1.1 christos 1200 1.1 christos yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; 1201 1.1 christos 1202 1.1 christos num_to_read = yy_current_buffer->yy_buf_size - 1203 1.1 christos number_to_move - 1; 1204 1.1 christos #endif 1205 1.1 christos } 1206 1.1 christos 1207 1.1 christos if ( num_to_read > YY_READ_BUF_SIZE ) 1208 1.1 christos num_to_read = YY_READ_BUF_SIZE; 1209 1.1 christos 1210 1.1 christos /* Read in more data. */ 1211 1.1 christos YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), 1212 1.1 christos yy_n_chars, num_to_read ); 1213 1.1 christos 1214 1.1 christos yy_current_buffer->yy_n_chars = yy_n_chars; 1215 1.1 christos } 1216 1.1 christos 1217 1.1 christos if ( yy_n_chars == 0 ) 1218 1.1 christos { 1219 1.1 christos if ( number_to_move == YY_MORE_ADJ ) 1220 1.1 christos { 1221 1.1 christos ret_val = EOB_ACT_END_OF_FILE; 1222 1.1 christos yyrestart( yyin ); 1223 1.1 christos } 1224 1.1 christos 1225 1.1 christos else 1226 1.1 christos { 1227 1.1 christos ret_val = EOB_ACT_LAST_MATCH; 1228 1.1 christos yy_current_buffer->yy_buffer_status = 1229 1.1 christos YY_BUFFER_EOF_PENDING; 1230 1.1 christos } 1231 1.1 christos } 1232 1.1 christos 1233 1.1 christos else 1234 1.1 christos ret_val = EOB_ACT_CONTINUE_SCAN; 1235 1.1 christos 1236 1.1 christos yy_n_chars += number_to_move; 1237 1.1 christos yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; 1238 1.1 christos yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; 1239 1.1 christos 1240 1.1 christos yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; 1241 1.1 christos 1242 1.1 christos return ret_val; 1243 1.1 christos } 1244 1.1 christos 1245 1.1 christos 1246 1.1 christos /* yy_get_previous_state - get the state just before the EOB char was reached */ 1247 1.1 christos 1248 1.1 christos static yy_state_type yy_get_previous_state() 1249 1.1 christos { 1250 1.1 christos register yy_state_type yy_current_state; 1251 1.1 christos register char *yy_cp; 1252 1.1 christos 1253 1.1 christos yy_current_state = yy_start; 1254 1.1 christos 1255 1.1 christos for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) 1256 1.1 christos { 1257 1.1 christos register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 1258 1.1 christos if ( yy_accept[yy_current_state] ) 1259 1.1 christos { 1260 1.1 christos yy_last_accepting_state = yy_current_state; 1261 1.1 christos yy_last_accepting_cpos = yy_cp; 1262 1.1 christos } 1263 1.1 christos while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 1264 1.1 christos { 1265 1.1 christos yy_current_state = (int) yy_def[yy_current_state]; 1266 1.1 christos if ( yy_current_state >= 50 ) 1267 1.1 christos yy_c = yy_meta[(unsigned int) yy_c]; 1268 1.1 christos } 1269 1.1 christos yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 1270 1.1 christos } 1271 1.1 christos 1272 1.1 christos return yy_current_state; 1273 1.1 christos } 1274 1.1 christos 1275 1.1 christos 1276 1.1 christos /* yy_try_NUL_trans - try to make a transition on the NUL character 1277 1.1 christos * 1278 1.1 christos * synopsis 1279 1.1 christos * next_state = yy_try_NUL_trans( current_state ); 1280 1.1 christos */ 1281 1.1 christos 1282 1.1 christos #ifdef YY_USE_PROTOS 1283 1.1 christos static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) 1284 1.1 christos #else 1285 1.1 christos static yy_state_type yy_try_NUL_trans( yy_current_state ) 1286 1.1 christos yy_state_type yy_current_state; 1287 1.1 christos #endif 1288 1.1 christos { 1289 1.1 christos register int yy_is_jam; 1290 1.1 christos register char *yy_cp = yy_c_buf_p; 1291 1.1 christos 1292 1.1 christos register YY_CHAR yy_c = 1; 1293 1.1 christos if ( yy_accept[yy_current_state] ) 1294 1.1 christos { 1295 1.1 christos yy_last_accepting_state = yy_current_state; 1296 1.1 christos yy_last_accepting_cpos = yy_cp; 1297 1.1 christos } 1298 1.1 christos while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 1299 1.1 christos { 1300 1.1 christos yy_current_state = (int) yy_def[yy_current_state]; 1301 1.1 christos if ( yy_current_state >= 50 ) 1302 1.1 christos yy_c = yy_meta[(unsigned int) yy_c]; 1303 1.1 christos } 1304 1.1 christos yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 1305 1.1 christos yy_is_jam = (yy_current_state == 49); 1306 1.1 christos 1307 1.1 christos return yy_is_jam ? 0 : yy_current_state; 1308 1.1 christos } 1309 1.1 christos 1310 1.1 christos 1311 1.1 christos #ifndef YY_NO_UNPUT 1312 1.1 christos #ifdef YY_USE_PROTOS 1313 1.1 christos static void yyunput( int c, register char *yy_bp ) 1314 1.1 christos #else 1315 1.1 christos static void yyunput( c, yy_bp ) 1316 1.1 christos int c; 1317 1.1 christos register char *yy_bp; 1318 1.1 christos #endif 1319 1.1 christos { 1320 1.1 christos register char *yy_cp = yy_c_buf_p; 1321 1.1 christos 1322 1.1 christos /* undo effects of setting up yytext */ 1323 1.1 christos *yy_cp = yy_hold_char; 1324 1.1 christos 1325 1.1 christos if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) 1326 1.1 christos { /* need to shift things up to make room */ 1327 1.1 christos /* +2 for EOB chars. */ 1328 1.1 christos register int number_to_move = yy_n_chars + 2; 1329 1.1 christos register char *dest = &yy_current_buffer->yy_ch_buf[ 1330 1.1 christos yy_current_buffer->yy_buf_size + 2]; 1331 1.1 christos register char *source = 1332 1.1 christos &yy_current_buffer->yy_ch_buf[number_to_move]; 1333 1.1 christos 1334 1.1 christos while ( source > yy_current_buffer->yy_ch_buf ) 1335 1.1 christos *--dest = *--source; 1336 1.1 christos 1337 1.1 christos yy_cp += (int) (dest - source); 1338 1.1 christos yy_bp += (int) (dest - source); 1339 1.1 christos yy_current_buffer->yy_n_chars = 1340 1.1 christos yy_n_chars = yy_current_buffer->yy_buf_size; 1341 1.1 christos 1342 1.1 christos if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) 1343 1.1 christos YY_FATAL_ERROR( "flex scanner push-back overflow" ); 1344 1.1 christos } 1345 1.1 christos 1346 1.1 christos *--yy_cp = (char) c; 1347 1.1 christos 1348 1.1 christos 1349 1.1 christos yytext_ptr = yy_bp; 1350 1.1 christos yy_hold_char = *yy_cp; 1351 1.1 christos yy_c_buf_p = yy_cp; 1352 1.1 christos } 1353 1.1 christos #endif /* ifndef YY_NO_UNPUT */ 1354 1.1 christos 1355 1.1 christos 1356 1.1 christos #ifdef __cplusplus 1357 1.1 christos static int yyinput() 1358 1.1 christos #else 1359 1.1 christos static int input() 1360 1.1 christos #endif 1361 1.1 christos { 1362 1.1 christos int c; 1363 1.1 christos 1364 1.1 christos *yy_c_buf_p = yy_hold_char; 1365 1.1 christos 1366 1.1 christos if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) 1367 1.1 christos { 1368 1.1 christos /* yy_c_buf_p now points to the character we want to return. 1369 1.1 christos * If this occurs *before* the EOB characters, then it's a 1370 1.1 christos * valid NUL; if not, then we've hit the end of the buffer. 1371 1.1 christos */ 1372 1.1 christos if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) 1373 1.1 christos /* This was really a NUL. */ 1374 1.1 christos *yy_c_buf_p = '\0'; 1375 1.1 christos 1376 1.1 christos else 1377 1.1 christos { /* need more input */ 1378 1.1 christos int offset = yy_c_buf_p - yytext_ptr; 1379 1.1 christos ++yy_c_buf_p; 1380 1.1 christos 1381 1.1 christos switch ( yy_get_next_buffer() ) 1382 1.1 christos { 1383 1.1 christos case EOB_ACT_LAST_MATCH: 1384 1.1 christos /* This happens because yy_g_n_b() 1385 1.1 christos * sees that we've accumulated a 1386 1.1 christos * token and flags that we need to 1387 1.1 christos * try matching the token before 1388 1.1 christos * proceeding. But for input(), 1389 1.1 christos * there's no matching to consider. 1390 1.1 christos * So convert the EOB_ACT_LAST_MATCH 1391 1.1 christos * to EOB_ACT_END_OF_FILE. 1392 1.1 christos */ 1393 1.1 christos 1394 1.1 christos /* Reset buffer status. */ 1395 1.1 christos yyrestart( yyin ); 1396 1.1 christos 1397 1.1 christos /* fall through */ 1398 1.1 christos 1399 1.1 christos case EOB_ACT_END_OF_FILE: 1400 1.1 christos { 1401 1.1 christos if ( yywrap() ) 1402 1.1 christos return EOF; 1403 1.1 christos 1404 1.1 christos if ( ! yy_did_buffer_switch_on_eof ) 1405 1.1 christos YY_NEW_FILE; 1406 1.1 christos #ifdef __cplusplus 1407 1.1 christos return yyinput(); 1408 1.1 christos #else 1409 1.1 christos return input(); 1410 1.1 christos #endif 1411 1.1 christos } 1412 1.1 christos 1413 1.1 christos case EOB_ACT_CONTINUE_SCAN: 1414 1.1 christos yy_c_buf_p = yytext_ptr + offset; 1415 1.1 christos break; 1416 1.1 christos } 1417 1.1 christos } 1418 1.1 christos } 1419 1.1 christos 1420 1.1 christos c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ 1421 1.1 christos *yy_c_buf_p = '\0'; /* preserve yytext */ 1422 1.1 christos yy_hold_char = *++yy_c_buf_p; 1423 1.1 christos 1424 1.1 christos 1425 1.1 christos return c; 1426 1.1 christos } 1427 1.1 christos 1428 1.1 christos 1429 1.1 christos #ifdef YY_USE_PROTOS 1430 1.1 christos void yyrestart( FILE *input_file ) 1431 1.1 christos #else 1432 1.1 christos void yyrestart( input_file ) 1433 1.1 christos FILE *input_file; 1434 1.1 christos #endif 1435 1.1 christos { 1436 1.1 christos if ( ! yy_current_buffer ) 1437 1.1 christos yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); 1438 1.1 christos 1439 1.1 christos yy_init_buffer( yy_current_buffer, input_file ); 1440 1.1 christos yy_load_buffer_state(); 1441 1.1 christos } 1442 1.1 christos 1443 1.1 christos 1444 1.1 christos #ifdef YY_USE_PROTOS 1445 1.1 christos void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) 1446 1.1 christos #else 1447 1.1 christos void yy_switch_to_buffer( new_buffer ) 1448 1.1 christos YY_BUFFER_STATE new_buffer; 1449 1.1 christos #endif 1450 1.1 christos { 1451 1.1 christos if ( yy_current_buffer == new_buffer ) 1452 1.1 christos return; 1453 1.1 christos 1454 1.1 christos if ( yy_current_buffer ) 1455 1.1 christos { 1456 1.1 christos /* Flush out information for old buffer. */ 1457 1.1 christos *yy_c_buf_p = yy_hold_char; 1458 1.1 christos yy_current_buffer->yy_buf_pos = yy_c_buf_p; 1459 1.1 christos yy_current_buffer->yy_n_chars = yy_n_chars; 1460 1.1 christos } 1461 1.1 christos 1462 1.1 christos yy_current_buffer = new_buffer; 1463 1.1 christos yy_load_buffer_state(); 1464 1.1 christos 1465 1.1 christos /* We don't actually know whether we did this switch during 1466 1.1 christos * EOF (yywrap()) processing, but the only time this flag 1467 1.1 christos * is looked at is after yywrap() is called, so it's safe 1468 1.1 christos * to go ahead and always set it. 1469 1.1 christos */ 1470 1.1 christos yy_did_buffer_switch_on_eof = 1; 1471 1.1 christos } 1472 1.1 christos 1473 1.1 christos 1474 1.1 christos #ifdef YY_USE_PROTOS 1475 1.1 christos void yy_load_buffer_state( void ) 1476 1.1 christos #else 1477 1.1 christos void yy_load_buffer_state() 1478 1.1 christos #endif 1479 1.1 christos { 1480 1.1 christos yy_n_chars = yy_current_buffer->yy_n_chars; 1481 1.1 christos yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; 1482 1.1 christos yyin = yy_current_buffer->yy_input_file; 1483 1.1 christos yy_hold_char = *yy_c_buf_p; 1484 1.1 christos } 1485 1.1 christos 1486 1.1 christos 1487 1.1 christos #ifdef YY_USE_PROTOS 1488 1.1 christos YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) 1489 1.1 christos #else 1490 1.1 christos YY_BUFFER_STATE yy_create_buffer( file, size ) 1491 1.1 christos FILE *file; 1492 1.1 christos int size; 1493 1.1 christos #endif 1494 1.1 christos { 1495 1.1 christos YY_BUFFER_STATE b; 1496 1.1 christos 1497 1.1 christos b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); 1498 1.1 christos if ( ! b ) 1499 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 1500 1.1 christos 1501 1.1 christos b->yy_buf_size = size; 1502 1.1 christos 1503 1.1 christos /* yy_ch_buf has to be 2 characters longer than the size given because 1504 1.1 christos * we need to put in 2 end-of-buffer characters. 1505 1.1 christos */ 1506 1.1 christos b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); 1507 1.1 christos if ( ! b->yy_ch_buf ) 1508 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 1509 1.1 christos 1510 1.1 christos b->yy_is_our_buffer = 1; 1511 1.1 christos 1512 1.1 christos yy_init_buffer( b, file ); 1513 1.1 christos 1514 1.1 christos return b; 1515 1.1 christos } 1516 1.1 christos 1517 1.1 christos 1518 1.1 christos #ifdef YY_USE_PROTOS 1519 1.1 christos void yy_delete_buffer( YY_BUFFER_STATE b ) 1520 1.1 christos #else 1521 1.1 christos void yy_delete_buffer( b ) 1522 1.1 christos YY_BUFFER_STATE b; 1523 1.1 christos #endif 1524 1.1 christos { 1525 1.1 christos if ( ! b ) 1526 1.1 christos return; 1527 1.1 christos 1528 1.1 christos if ( b == yy_current_buffer ) 1529 1.1 christos yy_current_buffer = (YY_BUFFER_STATE) 0; 1530 1.1 christos 1531 1.1 christos if ( b->yy_is_our_buffer ) 1532 1.1 christos yy_flex_free( (void *) b->yy_ch_buf ); 1533 1.1 christos 1534 1.1 christos yy_flex_free( (void *) b ); 1535 1.1 christos } 1536 1.1 christos 1537 1.1 christos 1538 1.1 christos #ifndef YY_ALWAYS_INTERACTIVE 1539 1.1 christos #ifndef YY_NEVER_INTERACTIVE 1540 1.1 christos extern int isatty YY_PROTO(( int )); 1541 1.1 christos #endif 1542 1.1 christos #endif 1543 1.1 christos 1544 1.1 christos #ifdef YY_USE_PROTOS 1545 1.1 christos void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) 1546 1.1 christos #else 1547 1.1 christos void yy_init_buffer( b, file ) 1548 1.1 christos YY_BUFFER_STATE b; 1549 1.1 christos FILE *file; 1550 1.1 christos #endif 1551 1.1 christos 1552 1.1 christos 1553 1.1 christos { 1554 1.1 christos yy_flush_buffer( b ); 1555 1.1 christos 1556 1.1 christos b->yy_input_file = file; 1557 1.1 christos b->yy_fill_buffer = 1; 1558 1.1 christos 1559 1.1 christos #if YY_ALWAYS_INTERACTIVE 1560 1.1 christos b->yy_is_interactive = 1; 1561 1.1 christos #else 1562 1.1 christos #if YY_NEVER_INTERACTIVE 1563 1.1 christos b->yy_is_interactive = 0; 1564 1.1 christos #else 1565 1.1 christos b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 1566 1.1 christos #endif 1567 1.1 christos #endif 1568 1.1 christos } 1569 1.1 christos 1570 1.1 christos 1571 1.1 christos #ifdef YY_USE_PROTOS 1572 1.1 christos void yy_flush_buffer( YY_BUFFER_STATE b ) 1573 1.1 christos #else 1574 1.1 christos void yy_flush_buffer( b ) 1575 1.1 christos YY_BUFFER_STATE b; 1576 1.1 christos #endif 1577 1.1 christos 1578 1.1 christos { 1579 1.1 christos if ( ! b ) 1580 1.1 christos return; 1581 1.1 christos 1582 1.1 christos b->yy_n_chars = 0; 1583 1.1 christos 1584 1.1 christos /* We always need two end-of-buffer characters. The first causes 1585 1.1 christos * a transition to the end-of-buffer state. The second causes 1586 1.1 christos * a jam in that state. 1587 1.1 christos */ 1588 1.1 christos b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 1589 1.1 christos b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 1590 1.1 christos 1591 1.1 christos b->yy_buf_pos = &b->yy_ch_buf[0]; 1592 1.1 christos 1593 1.1 christos b->yy_at_bol = 1; 1594 1.1 christos b->yy_buffer_status = YY_BUFFER_NEW; 1595 1.1 christos 1596 1.1 christos if ( b == yy_current_buffer ) 1597 1.1 christos yy_load_buffer_state(); 1598 1.1 christos } 1599 1.1 christos 1600 1.1 christos 1601 1.1 christos #ifndef YY_NO_SCAN_BUFFER 1602 1.1 christos #ifdef YY_USE_PROTOS 1603 1.1 christos YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) 1604 1.1 christos #else 1605 1.1 christos YY_BUFFER_STATE yy_scan_buffer( base, size ) 1606 1.1 christos char *base; 1607 1.1 christos yy_size_t size; 1608 1.1 christos #endif 1609 1.1 christos { 1610 1.1 christos YY_BUFFER_STATE b; 1611 1.1 christos 1612 1.1 christos if ( size < 2 || 1613 1.1 christos base[size-2] != YY_END_OF_BUFFER_CHAR || 1614 1.1 christos base[size-1] != YY_END_OF_BUFFER_CHAR ) 1615 1.1 christos /* They forgot to leave room for the EOB's. */ 1616 1.1 christos return 0; 1617 1.1 christos 1618 1.1 christos b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); 1619 1.1 christos if ( ! b ) 1620 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); 1621 1.1 christos 1622 1.1 christos b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ 1623 1.1 christos b->yy_buf_pos = b->yy_ch_buf = base; 1624 1.1 christos b->yy_is_our_buffer = 0; 1625 1.1 christos b->yy_input_file = 0; 1626 1.1 christos b->yy_n_chars = b->yy_buf_size; 1627 1.1 christos b->yy_is_interactive = 0; 1628 1.1 christos b->yy_at_bol = 1; 1629 1.1 christos b->yy_fill_buffer = 0; 1630 1.1 christos b->yy_buffer_status = YY_BUFFER_NEW; 1631 1.1 christos 1632 1.1 christos yy_switch_to_buffer( b ); 1633 1.1 christos 1634 1.1 christos return b; 1635 1.1 christos } 1636 1.1 christos #endif 1637 1.1 christos 1638 1.1 christos 1639 1.1 christos #ifndef YY_NO_SCAN_STRING 1640 1.1 christos #ifdef YY_USE_PROTOS 1641 1.1 christos YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) 1642 1.1 christos #else 1643 1.1 christos YY_BUFFER_STATE yy_scan_string( yy_str ) 1644 1.1 christos yyconst char *yy_str; 1645 1.1 christos #endif 1646 1.1 christos { 1647 1.1 christos int len; 1648 1.1 christos for ( len = 0; yy_str[len]; ++len ) 1649 1.1 christos ; 1650 1.1 christos 1651 1.1 christos return yy_scan_bytes( yy_str, len ); 1652 1.1 christos } 1653 1.1 christos #endif 1654 1.1 christos 1655 1.1 christos 1656 1.1 christos #ifndef YY_NO_SCAN_BYTES 1657 1.1 christos #ifdef YY_USE_PROTOS 1658 1.1 christos YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) 1659 1.1 christos #else 1660 1.1 christos YY_BUFFER_STATE yy_scan_bytes( bytes, len ) 1661 1.1 christos yyconst char *bytes; 1662 1.1 christos int len; 1663 1.1 christos #endif 1664 1.1 christos { 1665 1.1 christos YY_BUFFER_STATE b; 1666 1.1 christos char *buf; 1667 1.1 christos yy_size_t n; 1668 1.1 christos int i; 1669 1.1 christos 1670 1.1 christos /* Get memory for full buffer, including space for trailing EOB's. */ 1671 1.1 christos n = len + 2; 1672 1.1 christos buf = (char *) yy_flex_alloc( n ); 1673 1.1 christos if ( ! buf ) 1674 1.1 christos YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); 1675 1.1 christos 1676 1.1 christos for ( i = 0; i < len; ++i ) 1677 1.1 christos buf[i] = bytes[i]; 1678 1.1 christos 1679 1.1 christos buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; 1680 1.1 christos 1681 1.1 christos b = yy_scan_buffer( buf, n ); 1682 1.1 christos if ( ! b ) 1683 1.1 christos YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); 1684 1.1 christos 1685 1.1 christos /* It's okay to grow etc. this buffer, and we should throw it 1686 1.1 christos * away when we're done. 1687 1.1 christos */ 1688 1.1 christos b->yy_is_our_buffer = 1; 1689 1.1 christos 1690 1.1 christos return b; 1691 1.1 christos } 1692 1.1 christos #endif 1693 1.1 christos 1694 1.1 christos 1695 1.1 christos #ifndef YY_NO_PUSH_STATE 1696 1.1 christos #ifdef YY_USE_PROTOS 1697 1.1 christos static void yy_push_state( int new_state ) 1698 1.1 christos #else 1699 1.1 christos static void yy_push_state( new_state ) 1700 1.1 christos int new_state; 1701 1.1 christos #endif 1702 1.1 christos { 1703 1.1 christos if ( yy_start_stack_ptr >= yy_start_stack_depth ) 1704 1.1 christos { 1705 1.1 christos yy_size_t new_size; 1706 1.1 christos 1707 1.1 christos yy_start_stack_depth += YY_START_STACK_INCR; 1708 1.1 christos new_size = yy_start_stack_depth * sizeof( int ); 1709 1.1 christos 1710 1.1 christos if ( ! yy_start_stack ) 1711 1.1 christos yy_start_stack = (int *) yy_flex_alloc( new_size ); 1712 1.1 christos 1713 1.1 christos else 1714 1.1 christos yy_start_stack = (int *) yy_flex_realloc( 1715 1.1 christos (void *) yy_start_stack, new_size ); 1716 1.1 christos 1717 1.1 christos if ( ! yy_start_stack ) 1718 1.1 christos YY_FATAL_ERROR( 1719 1.1 christos "out of memory expanding start-condition stack" ); 1720 1.1 christos } 1721 1.1 christos 1722 1.1 christos yy_start_stack[yy_start_stack_ptr++] = YY_START; 1723 1.1 christos 1724 1.1 christos BEGIN(new_state); 1725 1.1 christos } 1726 1.1 christos #endif 1727 1.1 christos 1728 1.1 christos 1729 1.1 christos #ifndef YY_NO_POP_STATE 1730 1.1 christos static void yy_pop_state() 1731 1.1 christos { 1732 1.1 christos if ( --yy_start_stack_ptr < 0 ) 1733 1.1 christos YY_FATAL_ERROR( "start-condition stack underflow" ); 1734 1.1 christos 1735 1.1 christos BEGIN(yy_start_stack[yy_start_stack_ptr]); 1736 1.1 christos } 1737 1.1 christos #endif 1738 1.1 christos 1739 1.1 christos 1740 1.1 christos #ifndef YY_NO_TOP_STATE 1741 1.1 christos static int yy_top_state() 1742 1.1 christos { 1743 1.1 christos return yy_start_stack[yy_start_stack_ptr - 1]; 1744 1.1 christos } 1745 1.1 christos #endif 1746 1.1 christos 1747 1.1 christos #ifndef YY_EXIT_FAILURE 1748 1.1 christos #define YY_EXIT_FAILURE 2 1749 1.1 christos #endif 1750 1.1 christos 1751 1.1 christos #ifdef YY_USE_PROTOS 1752 1.1 christos static void yy_fatal_error( yyconst char msg[] ) 1753 1.1 christos #else 1754 1.1 christos static void yy_fatal_error( msg ) 1755 1.1 christos char msg[]; 1756 1.1 christos #endif 1757 1.1 christos { 1758 1.1 christos (void) fprintf( stderr, "%s\n", msg ); 1759 1.1 christos exit( YY_EXIT_FAILURE ); 1760 1.1 christos } 1761 1.1 christos 1762 1.1 christos 1763 1.1 christos 1764 1.1 christos /* Redefine yyless() so it works in section 3 code. */ 1765 1.1 christos 1766 1.1 christos #undef yyless 1767 1.1 christos #define yyless(n) \ 1768 1.1 christos do \ 1769 1.1 christos { \ 1770 1.1 christos /* Undo effects of setting up yytext. */ \ 1771 1.1 christos yytext[yyleng] = yy_hold_char; \ 1772 1.1 christos yy_c_buf_p = yytext + n; \ 1773 1.1 christos yy_hold_char = *yy_c_buf_p; \ 1774 1.1 christos *yy_c_buf_p = '\0'; \ 1775 1.1 christos yyleng = n; \ 1776 1.1 christos } \ 1777 1.1 christos while ( 0 ) 1778 1.1 christos 1779 1.1 christos 1780 1.1 christos /* Internal utility routines. */ 1781 1.1 christos 1782 1.1 christos #ifndef yytext_ptr 1783 1.1 christos #ifdef YY_USE_PROTOS 1784 1.1 christos static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) 1785 1.1 christos #else 1786 1.1 christos static void yy_flex_strncpy( s1, s2, n ) 1787 1.1 christos char *s1; 1788 1.1 christos yyconst char *s2; 1789 1.1 christos int n; 1790 1.1 christos #endif 1791 1.1 christos { 1792 1.1 christos register int i; 1793 1.1 christos for ( i = 0; i < n; ++i ) 1794 1.1 christos s1[i] = s2[i]; 1795 1.1 christos } 1796 1.1 christos #endif 1797 1.1 christos 1798 1.1 christos #ifdef YY_NEED_STRLEN 1799 1.1 christos #ifdef YY_USE_PROTOS 1800 1.1 christos static int yy_flex_strlen( yyconst char *s ) 1801 1.1 christos #else 1802 1.1 christos static int yy_flex_strlen( s ) 1803 1.1 christos yyconst char *s; 1804 1.1 christos #endif 1805 1.1 christos { 1806 1.1 christos register int n; 1807 1.1 christos for ( n = 0; s[n]; ++n ) 1808 1.1 christos ; 1809 1.1 christos 1810 1.1 christos return n; 1811 1.1 christos } 1812 1.1 christos #endif 1813 1.1 christos 1814 1.1 christos 1815 1.1 christos #ifdef YY_USE_PROTOS 1816 1.1 christos static void *yy_flex_alloc( yy_size_t size ) 1817 1.1 christos #else 1818 1.1 christos static void *yy_flex_alloc( size ) 1819 1.1 christos yy_size_t size; 1820 1.1 christos #endif 1821 1.1 christos { 1822 1.1 christos return (void *) malloc( size ); 1823 1.1 christos } 1824 1.1 christos 1825 1.1 christos #ifdef YY_USE_PROTOS 1826 1.1 christos static void *yy_flex_realloc( void *ptr, yy_size_t size ) 1827 1.1 christos #else 1828 1.1 christos static void *yy_flex_realloc( ptr, size ) 1829 1.1 christos void *ptr; 1830 1.1 christos yy_size_t size; 1831 1.1 christos #endif 1832 1.1 christos { 1833 1.1 christos /* The cast to (char *) in the following accommodates both 1834 1.1 christos * implementations that use char* generic pointers, and those 1835 1.1 christos * that use void* generic pointers. It works with the latter 1836 1.1 christos * because both ANSI C and C++ allow castless assignment from 1837 1.1 christos * any pointer type to void*, and deal with argument conversions 1838 1.1 christos * as though doing an assignment. 1839 1.1 christos */ 1840 1.1 christos return (void *) realloc( (char *) ptr, size ); 1841 1.1 christos } 1842 1.1 christos 1843 1.1 christos #ifdef YY_USE_PROTOS 1844 1.1 christos static void yy_flex_free( void *ptr ) 1845 1.1 christos #else 1846 1.1 christos static void yy_flex_free( ptr ) 1847 1.1 christos void *ptr; 1848 1.1 christos #endif 1849 1.1 christos { 1850 1.1 christos free( ptr ); 1851 1.1 christos } 1852 1.1 christos 1853 1.1 christos #if YY_MAIN 1854 1.1 christos int main() 1855 1.1 christos { 1856 1.1 christos yylex(); 1857 1.1 christos return 0; 1858 1.1 christos } 1859 1.1 christos #endif 1860 1.1 christos #line 222 "C:\\Users\\sdumbre\\testclone\\source\\compiler\\prparser.l" 1861 1.1 christos 1862 1.1 christos 1863 1.1 christos /* 1864 1.1 christos * Local support functions 1865 1.1 christos */ 1866 1.1 christos static YY_BUFFER_STATE LexBuffer; 1867 1.1 christos 1868 1.1 christos 1869 1.1 christos /****************************************************************************** 1870 1.1 christos * 1871 1.1 christos * FUNCTION: PrInitLexer 1872 1.1 christos * 1873 1.1 christos * PARAMETERS: String - Input string to be parsed 1874 1.1 christos * 1875 1.1 christos * RETURN: TRUE if parser returns NULL. FALSE otherwise. 1876 1.1 christos * 1877 1.1 christos * DESCRIPTION: Initialization routine for lexer. The lexer needs 1878 1.1 christos * a buffer to handle strings instead of a file. 1879 1.1 christos * 1880 1.1 christos *****************************************************************************/ 1881 1.1 christos 1882 1.1 christos int 1883 1.1 christos PrInitLexer ( 1884 1.1 christos char *String) 1885 1.1 christos { 1886 1.1 christos 1887 1.1 christos LexBuffer = yy_scan_string (String); 1888 1.1 christos return (LexBuffer == NULL); 1889 1.1 christos } 1890 1.1 christos 1891 1.1 christos 1892 1.1 christos /****************************************************************************** 1893 1.1 christos * 1894 1.1 christos * FUNCTION: PrTerminateLexer 1895 1.1 christos * 1896 1.1 christos * PARAMETERS: None 1897 1.1 christos * 1898 1.1 christos * RETURN: None 1899 1.1 christos * 1900 1.1 christos * DESCRIPTION: Termination routine for thelexer. 1901 1.1 christos * 1902 1.1 christos *****************************************************************************/ 1903 1.1 christos 1904 1.1 christos void 1905 1.1 christos PrTerminateLexer ( 1906 1.1 christos void) 1907 1.1 christos { 1908 1.1 christos 1909 1.1 christos yy_delete_buffer (LexBuffer); 1910 1.1 christos } 1911 1.1 christos 1912 1.1 christos 1913 1.1 christos /******************************************************************************** 1914 1.1 christos * 1915 1.1 christos * FUNCTION: PrDoCommentType1 1916 1.1 christos * 1917 1.1 christos * PARAMETERS: none 1918 1.1 christos * 1919 1.1 christos * RETURN: none 1920 1.1 christos * 1921 1.1 christos * DESCRIPTION: Process a new legacy comment. Just toss it. 1922 1.1 christos * 1923 1.1 christos ******************************************************************************/ 1924 1.1 christos 1925 1.1 christos static char 1926 1.1 christos PrDoCommentType1 ( 1927 1.1 christos void) 1928 1.1 christos { 1929 1.1 christos int c; 1930 1.1 christos 1931 1.1 christos 1932 1.1 christos Loop: 1933 1.1 christos while (((c = input ()) != '*') && (c != EOF)) 1934 1.1 christos { 1935 1.1 christos } 1936 1.1 christos if (c == EOF) 1937 1.1 christos { 1938 1.1 christos return (FALSE); 1939 1.1 christos } 1940 1.1 christos 1941 1.1 christos if (((c = input ()) != '/') && (c != EOF)) 1942 1.1 christos { 1943 1.1 christos unput (c); 1944 1.1 christos goto Loop; 1945 1.1 christos } 1946 1.1 christos if (c == EOF) 1947 1.1 christos { 1948 1.1 christos return (FALSE); 1949 1.1 christos } 1950 1.1 christos 1951 1.1 christos return (TRUE); 1952 1.1 christos } 1953 1.1 christos 1954 1.1 christos 1955 1.1 christos /******************************************************************************** 1956 1.1 christos * 1957 1.1 christos * FUNCTION: PrDoCommentType2 1958 1.1 christos * 1959 1.1 christos * PARAMETERS: none 1960 1.1 christos * 1961 1.1 christos * RETURN: none 1962 1.1 christos * 1963 1.1 christos * DESCRIPTION: Process a new "//" comment. Just toss it. 1964 1.1 christos * 1965 1.1 christos ******************************************************************************/ 1966 1.1 christos 1967 1.1 christos static char 1968 1.1 christos PrDoCommentType2 ( 1969 1.1 christos void) 1970 1.1 christos { 1971 1.1 christos int c; 1972 1.1 christos 1973 1.1 christos 1974 1.1 christos while (((c = input ()) != '\n') && (c != EOF)) 1975 1.1 christos { 1976 1.1 christos } 1977 1.1 christos if (c == EOF) 1978 1.1 christos { 1979 1.1 christos return (FALSE); 1980 1.1 christos } 1981 1.1 christos 1982 1.1 christos return (TRUE); 1983 1.1 christos } 1984