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