1/* File created from flex.skl via mkskel.sh */ 2 3#include "flexdef.h" 4 5const char *skel[] = { 6 "/* A lexical scanner generated by flex */", 7 "", 8 "/* Scanner skeleton version:", 9 " * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $", 10 " */", 11 "", 12 "#define FLEX_SCANNER", 13 "#define YY_FLEX_MAJOR_VERSION 2", 14 "#define YY_FLEX_MINOR_VERSION 5", 15 "", 16 "%-", 17 "#include <stdio.h>", 18 "%*", 19 "", 20 "", 21 "/* cfront 1.2 defines \"c_plusplus\" instead of \"__cplusplus\" */", 22 "#ifdef c_plusplus", 23 "#ifndef __cplusplus", 24 "#define __cplusplus", 25 "#endif", 26 "#endif", 27 "", 28 "", 29 "#ifdef __cplusplus", 30 "", 31 "#include <stdlib.h>", 32 "%+", 33 "class istream;", 34 "%*", 35 "#include <unistd.h>", 36 "", 37 "/* Use prototypes in function declarations. */", 38 "#define YY_USE_PROTOS", 39 "", 40 "/* The \"const\" storage-class-modifier is valid. */", 41 "#define YY_USE_CONST", 42 "", 43 "#else /* ! __cplusplus */", 44 "", 45 "#if __STDC__", 46 "", 47 "#define YY_USE_PROTOS", 48 "#define YY_USE_CONST", 49 "", 50 "#endif /* __STDC__ */", 51 "#endif /* ! __cplusplus */", 52 "", 53 "#ifdef __TURBOC__", 54 " #pragma warn -rch", 55 " #pragma warn -use", 56 "#include <io.h>", 57 "#include <stdlib.h>", 58 "#define YY_USE_CONST", 59 "#define YY_USE_PROTOS", 60 "#endif", 61 "", 62 "#ifdef YY_USE_CONST", 63 "#define yyconst const", 64 "#else", 65 "#define yyconst", 66 "#endif", 67 "", 68 "", 69 "#ifdef YY_USE_PROTOS", 70 "#define YY_PROTO(proto) proto", 71 "#else", 72 "#define YY_PROTO(proto) ()", 73 "#endif", 74 "", 75 "/* Returned upon end-of-file. */", 76 "#define YY_NULL 0", 77 "", 78 "/* Promotes a possibly negative, possibly signed char to an unsigned", 79 " * integer for use as an array index. If the signed char is negative,", 80 " * we want to instead treat it as an 8-bit unsigned char, hence the", 81 " * double cast.", 82 " */", 83 "#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)", 84 "", 85 "/* Enter a start condition. This macro really ought to take a parameter,", 86 " * but we do it the disgusting crufty way forced on us by the ()-less", 87 " * definition of BEGIN.", 88 " */", 89 "#define BEGIN yy_start = 1 + 2 *", 90 "", 91 "/* Translate the current start state into a value that can be later handed", 92 " * to BEGIN to return to the state. The YYSTATE alias is for lex", 93 " * compatibility.", 94 " */", 95 "#define YY_START ((yy_start - 1) / 2)", 96 "#define YYSTATE YY_START", 97 "", 98 "/* Action number for EOF rule of a given start state. */", 99 "#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)", 100 "", 101 "/* Special action meaning \"start processing a new file\". */", 102 "#define YY_NEW_FILE yyrestart( yyin )", 103 "", 104 "#define YY_END_OF_BUFFER_CHAR 0", 105 "", 106 "/* Size of default input buffer. */", 107 "#define YY_BUF_SIZE 16384", 108 "", 109 "typedef struct yy_buffer_state *YY_BUFFER_STATE;", 110 "", 111 "extern int yyleng;", 112 "%-", 113 "extern FILE *yyin, *yyout;", 114 "%*", 115 "", 116 "#define EOB_ACT_CONTINUE_SCAN 0", 117 "#define EOB_ACT_END_OF_FILE 1", 118 "#define EOB_ACT_LAST_MATCH 2", 119 "", 120 "/* The funky do-while in the following #define is used to turn the definition", 121 " * int a single C statement (which needs a semi-colon terminator). This", 122 " * avoids problems with code like:", 123 " *", 124 " * if ( condition_holds )", 125 " * yyless( 5 );", 126 " * else", 127 " * do_something_else();", 128 " *", 129 " * Prior to using the do-while the compiler would get upset at the", 130 " * \"else\" because it interpreted the \"if\" statement as being all", 131 " * done when it reached the ';' after the yyless() call.", 132 " */", 133 "", 134 "/* Return all but the first 'n' matched characters back to the input stream. */", 135 "", 136 "#define yyless(n) \\", 137 " do \\", 138 " { \\", 139 " /* Undo effects of setting up yytext. */ \\", 140 " *yy_cp = yy_hold_char; \\", 141 " YY_RESTORE_YY_MORE_OFFSET \\", 142 " yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \\", 143 " YY_DO_BEFORE_ACTION; /* set up yytext again */ \\", 144 " } \\", 145 " while ( 0 )", 146 "", 147 "#define unput(c) yyunput( c, yytext_ptr )", 148 "", 149 "/* The following is because we cannot portably get our hands on size_t", 150 " * (without autoconf's help, which isn't available because we want", 151 " * flex-generated scanners to compile on their own).", 152 " */", 153 "typedef unsigned int yy_size_t;", 154 "", 155 "", 156 "struct yy_buffer_state", 157 " {", 158 "%-", 159 " FILE *yy_input_file;", 160 "%+", 161 " istream* yy_input_file;", 162 "%*", 163 "", 164 " char *yy_ch_buf; /* input buffer */", 165 " char *yy_buf_pos; /* current position in input buffer */", 166 "", 167 " /* Size of input buffer in bytes, not including room for EOB", 168 " * characters.", 169 " */", 170 " yy_size_t yy_buf_size;", 171 "", 172 " /* Number of characters read into yy_ch_buf, not including EOB", 173 " * characters.", 174 " */", 175 " int yy_n_chars;", 176 "", 177 " /* Whether we \"own\" the buffer - i.e., we know we created it,", 178 " * and can realloc() it to grow it, and should free() it to", 179 " * delete it.", 180 " */", 181 " int yy_is_our_buffer;", 182 "", 183 " /* Whether this is an \"interactive\" input source; if so, and", 184 " * if we're using stdio for input, then we want to use getc()", 185 " * instead of fread(), to make sure we stop fetching input after", 186 " * each newline.", 187 " */", 188 " int yy_is_interactive;", 189 "", 190 " /* Whether we're considered to be at the beginning of a line.", 191 " * If so, '^' rules will be active on the next match, otherwise", 192 " * not.", 193 " */", 194 " int yy_at_bol;", 195 "", 196 " /* Whether to try to fill the input buffer when we reach the", 197 " * end of it.", 198 " */", 199 " int yy_fill_buffer;", 200 "", 201 " int yy_buffer_status;", 202 "#define YY_BUFFER_NEW 0", 203 "#define YY_BUFFER_NORMAL 1", 204 " /* When an EOF's been seen but there's still some text to process", 205 " * then we mark the buffer as YY_EOF_PENDING, to indicate that we", 206 " * shouldn't try reading from the input source any more. We might", 207 " * still have a bunch of tokens to match, though, because of", 208 " * possible backing-up.", 209 " *", 210 " * When we actually see the EOF, we change the status to \"new\"", 211 " * (via yyrestart()), so that the user can continue scanning by", 212 " * just pointing yyin at a new input file.", 213 " */", 214 "#define YY_BUFFER_EOF_PENDING 2", 215 " };", 216 "", 217 "%- Standard (non-C++) definition", 218 "static YY_BUFFER_STATE yy_current_buffer = 0;", 219 "%*", 220 "", 221 "/* We provide macros for accessing buffer states in case in the", 222 " * future we want to put the buffer states in a more general", 223 " * \"scanner state\".", 224 " */", 225 "#define YY_CURRENT_BUFFER yy_current_buffer", 226 "", 227 "", 228 "%- Standard (non-C++) definition", 229 "/* yy_hold_char holds the character lost when yytext is formed. */", 230 "static char yy_hold_char;", 231 "", 232 "static int yy_n_chars; /* number of characters read into yy_ch_buf */", 233 "", 234 "", 235 "int yyleng;", 236 "", 237 "/* Points to current character in buffer. */", 238 "static char *yy_c_buf_p = (char *) 0;", 239 "static int yy_init = 1; /* whether we need to initialize */", 240 "static int yy_start = 0; /* start state number */", 241 "", 242 "/* Flag which is used to allow yywrap()'s to do buffer switches", 243 " * instead of setting up a fresh yyin. A bit of a hack ...", 244 " */", 245 "static int yy_did_buffer_switch_on_eof;", 246 "", 247 "void yyrestart YY_PROTO(( FILE *input_file ));", 248 "", 249 "void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));", 250 "void yy_load_buffer_state YY_PROTO(( void ));", 251 "YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));", 252 "void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));", 253 "void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));", 254 "void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));", 255 "#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )", 256 "", 257 "YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));", 258 "YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));", 259 "YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));", 260 "%*", 261 "", 262 "static void *yy_flex_alloc YY_PROTO(( yy_size_t ));", 263 "static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t ));", 264 "static void yy_flex_free YY_PROTO(( void * ));", 265 "", 266 "#define yy_new_buffer yy_create_buffer", 267 "", 268 "#define yy_set_interactive(is_interactive) \\", 269 " { \\", 270 " if ( ! yy_current_buffer ) \\", 271 " yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \\", 272 " yy_current_buffer->yy_is_interactive = is_interactive; \\", 273 " }", 274 "", 275 "#define yy_set_bol(at_bol) \\", 276 " { \\", 277 " if ( ! yy_current_buffer ) \\", 278 " yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \\", 279 " yy_current_buffer->yy_at_bol = at_bol; \\", 280 " }", 281 "", 282 "#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)", 283 "", 284 "%% yytext/yyin/yyout/yy_state_type/yylineno etc. def's & init go here", 285 "", 286 "%- Standard (non-C++) definition", 287 "static yy_state_type yy_get_previous_state YY_PROTO(( void ));", 288 "static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));", 289 "static int yy_get_next_buffer YY_PROTO(( void ));", 290 "static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));", 291 "%*", 292 "", 293 "/* Done after the current pattern has been matched and before the", 294 " * corresponding action - sets up yytext.", 295 " */", 296 "#define YY_DO_BEFORE_ACTION \\", 297 " yytext_ptr = yy_bp; \\", 298 "%% code to fiddle yytext and yyleng for yymore() goes here", 299 " yy_hold_char = *yy_cp; \\", 300 " *yy_cp = '\\0'; \\", 301 "%% code to copy yytext_ptr to yytext[] goes here, if %array", 302 " yy_c_buf_p = yy_cp;", 303 "", 304 "%% data tables for the DFA and the user's section 1 definitions go here", 305 "", 306 "/* Macros after this point can all be overridden by user definitions in", 307 " * section 1.", 308 " */", 309 "", 310 "#ifndef YY_SKIP_YYWRAP", 311 "#ifdef __cplusplus", 312 "extern \"C\" int yywrap YY_PROTO(( void ));", 313 "#else", 314 "extern int yywrap YY_PROTO(( void ));", 315 "#endif", 316 "#endif", 317 "", 318 "%-", 319 "#ifndef YY_NO_UNPUT", 320 "static void yyunput YY_PROTO(( int c, char *buf_ptr ));", 321 "#endif", 322 "%*", 323 "", 324 "#ifndef yytext_ptr", 325 "static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));", 326 "#endif", 327 "", 328 "#ifdef YY_NEED_STRLEN", 329 "static int yy_flex_strlen YY_PROTO(( yyconst char * ));", 330 "#endif", 331 "", 332 "#ifndef YY_NO_INPUT", 333 "%- Standard (non-C++) definition", 334 "#ifdef __cplusplus", 335 "static int yyinput YY_PROTO(( void ));", 336 "#else", 337 "static int input YY_PROTO(( void ));", 338 "#endif", 339 "%*", 340 "#endif", 341 "", 342 "#if YY_STACK_USED", 343 "static int yy_start_stack_ptr = 0;", 344 "static int yy_start_stack_depth = 0;", 345 "static int *yy_start_stack = 0;", 346 "#ifndef YY_NO_PUSH_STATE", 347 "static void yy_push_state YY_PROTO(( int new_state ));", 348 "#endif", 349 "#ifndef YY_NO_POP_STATE", 350 "static void yy_pop_state YY_PROTO(( void ));", 351 "#endif", 352 "#ifndef YY_NO_TOP_STATE", 353 "static int yy_top_state YY_PROTO(( void ));", 354 "#endif", 355 "", 356 "#else", 357 "#define YY_NO_PUSH_STATE 1", 358 "#define YY_NO_POP_STATE 1", 359 "#define YY_NO_TOP_STATE 1", 360 "#endif", 361 "", 362 "#ifdef YY_MALLOC_DECL", 363 "YY_MALLOC_DECL", 364 "#else", 365 "#if __STDC__", 366 "#ifndef __cplusplus", 367 "#include <stdlib.h>", 368 "#endif", 369 "#else", 370 "/* Just try to get by without declaring the routines. This will fail", 371 " * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)", 372 " * or sizeof(void*) != sizeof(int).", 373 " */", 374 "#endif", 375 "#endif", 376 "", 377 "/* Amount of stuff to slurp up with each read. */", 378 "#ifndef YY_READ_BUF_SIZE", 379 "#define YY_READ_BUF_SIZE 8192", 380 "#endif", 381 "", 382 "/* Copy whatever the last rule matched to the standard output. */", 383 "", 384 "#ifndef ECHO", 385 "%- Standard (non-C++) definition", 386 "/* This used to be an fputs(), but since the string might contain NUL's,", 387 " * we now use fwrite().", 388 " */", 389 "#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )", 390 "%+ C++ definition", 391 "#define ECHO LexerOutput( yytext, yyleng )", 392 "%*", 393 "#endif", 394 "", 395 "/* Gets input and stuffs it into \"buf\". number of characters read, or YY_NULL,", 396 " * is returned in \"result\".", 397 " */", 398 "#ifndef YY_INPUT", 399 "#define YY_INPUT(buf,result,max_size) \\", 400 "%% fread()/read() definition of YY_INPUT goes here unless we're doing C++", 401 "%+ C++ definition", 402 " if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \\", 403 " YY_FATAL_ERROR( \"input in flex scanner failed\" );", 404 "%*", 405 "#endif", 406 "", 407 "/* No semi-colon after return; correct usage is to write \"yyterminate();\" -", 408 " * we don't want an extra ';' after the \"return\" because that will cause", 409 " * some compilers to complain about unreachable statements.", 410 " */", 411 "#ifndef yyterminate", 412 "#define yyterminate() return YY_NULL", 413 "#endif", 414 "", 415 "/* Number of entries by which start-condition stack grows. */", 416 "#ifndef YY_START_STACK_INCR", 417 "#define YY_START_STACK_INCR 25", 418 "#endif", 419 "", 420 "/* Report a fatal error. */", 421 "#ifndef YY_FATAL_ERROR", 422 "%-", 423 "#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )", 424 "%+", 425 "#define YY_FATAL_ERROR(msg) LexerError( msg )", 426 "%*", 427 "#endif", 428 "", 429 "/* Default declaration of generated scanner - a define so the user can", 430 " * easily add parameters.", 431 " */", 432 "#ifndef YY_DECL", 433 "%- Standard (non-C++) definition", 434 "#define YY_DECL int yylex YY_PROTO(( void ))", 435 "%+ C++ definition", 436 "#define YY_DECL int yyFlexLexer::yylex()", 437 "%*", 438 "#endif", 439 "", 440 "/* Code executed at the beginning of each rule, after yytext and yyleng", 441 " * have been set up.", 442 " */", 443 "#ifndef YY_USER_ACTION", 444 "#define YY_USER_ACTION", 445 "#endif", 446 "", 447 "/* Code executed at the end of each rule. */", 448 "#ifndef YY_BREAK", 449 "#define YY_BREAK break;", 450 "#endif", 451 "", 452 "%% YY_RULE_SETUP definition goes here", 453 "", 454 "YY_DECL", 455 " {", 456 " register yy_state_type yy_current_state;", 457 " register char *yy_cp, *yy_bp;", 458 " register int yy_act;", 459 "", 460 "%% user's declarations go here", 461 "", 462 " if ( yy_init )", 463 " {", 464 " yy_init = 0;", 465 "", 466 "#ifdef YY_USER_INIT", 467 " YY_USER_INIT;", 468 "#endif", 469 "", 470 " if ( ! yy_start )", 471 " yy_start = 1; /* first start state */", 472 "", 473 " if ( ! yyin )", 474 "%-", 475 " yyin = stdin;", 476 "%+", 477 " yyin = &cin;", 478 "%*", 479 "", 480 " if ( ! yyout )", 481 "%-", 482 " yyout = stdout;", 483 "%+", 484 " yyout = &cout;", 485 "%*", 486 "", 487 " if ( ! yy_current_buffer )", 488 " yy_current_buffer =", 489 " yy_create_buffer( yyin, YY_BUF_SIZE );", 490 "", 491 " yy_load_buffer_state();", 492 " }", 493 "", 494 " while ( 1 ) /* loops until end-of-file is reached */", 495 " {", 496 "%% yymore()-related code goes here", 497 " yy_cp = yy_c_buf_p;", 498 "", 499 " /* Support of yytext. */", 500 " *yy_cp = yy_hold_char;", 501 "", 502 " /* yy_bp points to the position in yy_ch_buf of the start of", 503 " * the current run.", 504 " */", 505 " yy_bp = yy_cp;", 506 "", 507 "%% code to set up and find next match goes here", 508 "", 509 "yy_find_action:", 510 "%% code to find the action number goes here", 511 "", 512 " YY_DO_BEFORE_ACTION;", 513 "", 514 "%% code for yylineno update goes here", 515 "", 516 "do_action: /* This label is used only to access EOF actions. */", 517 "", 518 "%% debug code goes here", 519 "", 520 " switch ( yy_act )", 521 " { /* beginning of action switch */", 522 "%% actions go here", 523 "", 524 " case YY_END_OF_BUFFER:", 525 " {", 526 " /* Amount of text matched not including the EOB char. */", 527 " int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;", 528 "", 529 " /* Undo the effects of YY_DO_BEFORE_ACTION. */", 530 " *yy_cp = yy_hold_char;", 531 " YY_RESTORE_YY_MORE_OFFSET", 532 "", 533 " if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )", 534 " {", 535 " /* We're scanning a new file or input source. It's", 536 " * possible that this happened because the user", 537 " * just pointed yyin at a new source and called", 538 " * yylex(). If so, then we have to assure", 539 " * consistency between yy_current_buffer and our", 540 " * globals. Here is the right place to do so, because", 541 " * this is the first action (other than possibly a", 542 " * back-up) that will match for the new input source.", 543 " */", 544 " yy_n_chars = yy_current_buffer->yy_n_chars;", 545 " yy_current_buffer->yy_input_file = yyin;", 546 " yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;", 547 " }", 548 "", 549 " /* Note that here we test for yy_c_buf_p \"<=\" to the position", 550 " * of the first EOB in the buffer, since yy_c_buf_p will", 551 " * already have been incremented past the NUL character", 552 " * (since all states make transitions on EOB to the", 553 " * end-of-buffer state). Contrast this with the test", 554 " * in input().", 555 " */", 556 " if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )", 557 " { /* This was really a NUL. */", 558 " yy_state_type yy_next_state;", 559 "", 560 " yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;", 561 "", 562 " yy_current_state = yy_get_previous_state();", 563 "", 564 " /* Okay, we're now positioned to make the NUL", 565 " * transition. We couldn't have", 566 " * yy_get_previous_state() go ahead and do it", 567 " * for us because it doesn't know how to deal", 568 " * with the possibility of jamming (and we don't", 569 " * want to build jamming into it because then it", 570 " * will run more slowly).", 571 " */", 572 "", 573 " yy_next_state = yy_try_NUL_trans( yy_current_state );", 574 "", 575 " yy_bp = yytext_ptr + YY_MORE_ADJ;", 576 "", 577 " if ( yy_next_state )", 578 " {", 579 " /* Consume the NUL. */", 580 " yy_cp = ++yy_c_buf_p;", 581 " yy_current_state = yy_next_state;", 582 " goto yy_match;", 583 " }", 584 "", 585 " else", 586 " {", 587 "%% code to do back-up for compressed tables and set up yy_cp goes here", 588 " goto yy_find_action;", 589 " }", 590 " }", 591 "", 592 " else switch ( yy_get_next_buffer() )", 593 " {", 594 " case EOB_ACT_END_OF_FILE:", 595 " {", 596 " yy_did_buffer_switch_on_eof = 0;", 597 "", 598 " if ( yywrap() )", 599 " {", 600 " /* Note: because we've taken care in", 601 " * yy_get_next_buffer() to have set up", 602 " * yytext, we can now set up", 603 " * yy_c_buf_p so that if some total", 604 " * hoser (like flex itself) wants to", 605 " * call the scanner after we return the", 606 " * YY_NULL, it'll still work - another", 607 " * YY_NULL will get returned.", 608 " */", 609 " yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;", 610 "", 611 " yy_act = YY_STATE_EOF(YY_START);", 612 " goto do_action;", 613 " }", 614 "", 615 " else", 616 " {", 617 " if ( ! yy_did_buffer_switch_on_eof )", 618 " YY_NEW_FILE;", 619 " }", 620 " break;", 621 " }", 622 "", 623 " case EOB_ACT_CONTINUE_SCAN:", 624 " yy_c_buf_p =", 625 " yytext_ptr + yy_amount_of_matched_text;", 626 "", 627 " yy_current_state = yy_get_previous_state();", 628 "", 629 " yy_cp = yy_c_buf_p;", 630 " yy_bp = yytext_ptr + YY_MORE_ADJ;", 631 " goto yy_match;", 632 "", 633 " case EOB_ACT_LAST_MATCH:", 634 " yy_c_buf_p =", 635 " &yy_current_buffer->yy_ch_buf[yy_n_chars];", 636 "", 637 " yy_current_state = yy_get_previous_state();", 638 "", 639 " yy_cp = yy_c_buf_p;", 640 " yy_bp = yytext_ptr + YY_MORE_ADJ;", 641 " goto yy_find_action;", 642 " }", 643 " break;", 644 " }", 645 "", 646 " default:", 647 " YY_FATAL_ERROR(", 648 " \"fatal flex scanner internal error--no action found\" );", 649 " } /* end of action switch */", 650 " } /* end of scanning one token */", 651 " } /* end of yylex */", 652 "", 653 "%+", 654 "yyFlexLexer::yyFlexLexer( istream* arg_yyin, ostream* arg_yyout )", 655 " {", 656 " yyin = arg_yyin;", 657 " yyout = arg_yyout;", 658 " yy_c_buf_p = 0;", 659 " yy_init = 1;", 660 " yy_start = 0;", 661 " yy_flex_debug = 0;", 662 " yylineno = 1; // this will only get updated if %option yylineno", 663 "", 664 " yy_did_buffer_switch_on_eof = 0;", 665 "", 666 " yy_looking_for_trail_begin = 0;", 667 " yy_more_flag = 0;", 668 " yy_more_len = 0;", 669 " yy_more_offset = yy_prev_more_offset = 0;", 670 "", 671 " yy_start_stack_ptr = yy_start_stack_depth = 0;", 672 " yy_start_stack = 0;", 673 "", 674 " yy_current_buffer = 0;", 675 "", 676 "#ifdef YY_USES_REJECT", 677 " yy_state_buf = new yy_state_type[YY_BUF_SIZE + 2];", 678 "#else", 679 " yy_state_buf = 0;", 680 "#endif", 681 " }", 682 "", 683 "yyFlexLexer::~yyFlexLexer()", 684 " {", 685 " delete yy_state_buf;", 686 " yy_delete_buffer( yy_current_buffer );", 687 " }", 688 "", 689 "void yyFlexLexer::switch_streams( istream* new_in, ostream* new_out )", 690 " {", 691 " if ( new_in )", 692 " {", 693 " yy_delete_buffer( yy_current_buffer );", 694 " yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) );", 695 " }", 696 "", 697 " if ( new_out )", 698 " yyout = new_out;", 699 " }", 700 "", 701 "#ifdef YY_INTERACTIVE", 702 "int yyFlexLexer::LexerInput( char* buf, int /* max_size */ )", 703 "#else", 704 "int yyFlexLexer::LexerInput( char* buf, int max_size )", 705 "#endif", 706 " {", 707 " if ( yyin->eof() || yyin->fail() )", 708 " return 0;", 709 "", 710 "#ifdef YY_INTERACTIVE", 711 " yyin->get( buf[0] );", 712 "", 713 " if ( yyin->eof() )", 714 " return 0;", 715 "", 716 " if ( yyin->bad() )", 717 " return -1;", 718 "", 719 " return 1;", 720 "", 721 "#else", 722 " (void) yyin->read( buf, max_size );", 723 "", 724 " if ( yyin->bad() )", 725 " return -1;", 726 " else", 727 " return yyin->gcount();", 728 "#endif", 729 " }", 730 "", 731 "void yyFlexLexer::LexerOutput( const char* buf, int size )", 732 " {", 733 " (void) yyout->write( buf, size );", 734 " }", 735 "%*", 736 "", 737 "/* yy_get_next_buffer - try to read in a new buffer", 738 " *", 739 " * Returns a code representing an action:", 740 " * EOB_ACT_LAST_MATCH -", 741 " * EOB_ACT_CONTINUE_SCAN - continue scanning from current position", 742 " * EOB_ACT_END_OF_FILE - end of file", 743 " */", 744 "", 745 "%-", 746 "static int yy_get_next_buffer()", 747 "%+", 748 "int yyFlexLexer::yy_get_next_buffer()", 749 "%*", 750 " {", 751 " register char *dest = yy_current_buffer->yy_ch_buf;", 752 " register char *source = yytext_ptr;", 753 " register int number_to_move, i;", 754 " int ret_val;", 755 "", 756 " if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )", 757 " YY_FATAL_ERROR(", 758 " \"fatal flex scanner internal error--end of buffer missed\" );", 759 "", 760 " if ( yy_current_buffer->yy_fill_buffer == 0 )", 761 " { /* Don't try to fill the buffer, so this is an EOF. */", 762 " if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )", 763 " {", 764 " /* We matched a single character, the EOB, so", 765 " * treat this as a final EOF.", 766 " */", 767 " return EOB_ACT_END_OF_FILE;", 768 " }", 769 "", 770 " else", 771 " {", 772 " /* We matched some text prior to the EOB, first", 773 " * process it.", 774 " */", 775 " return EOB_ACT_LAST_MATCH;", 776 " }", 777 " }", 778 "", 779 " /* Try to read more data. */", 780 "", 781 " /* First move last chars to start of buffer. */", 782 " number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;", 783 "", 784 " for ( i = 0; i < number_to_move; ++i )", 785 " *(dest++) = *(source++);", 786 "", 787 " if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )", 788 " /* don't do the read, it's not guaranteed to return an EOF,", 789 " * just force an EOF", 790 " */", 791 " yy_current_buffer->yy_n_chars = yy_n_chars = 0;", 792 "", 793 " else", 794 " {", 795 " int num_to_read =", 796 " yy_current_buffer->yy_buf_size - number_to_move - 1;", 797 "", 798 " while ( num_to_read <= 0 )", 799 " { /* Not enough room in the buffer - grow it. */", 800 "#ifdef YY_USES_REJECT", 801 " YY_FATAL_ERROR(", 802 "\"input buffer overflow, can't enlarge buffer because scanner uses REJECT\" );", 803 "#else", 804 "", 805 " /* just a shorter name for the current buffer */", 806 " YY_BUFFER_STATE b = yy_current_buffer;", 807 "", 808 " int yy_c_buf_p_offset =", 809 " (int) (yy_c_buf_p - b->yy_ch_buf);", 810 "", 811 " if ( b->yy_is_our_buffer )", 812 " {", 813 " int new_size = b->yy_buf_size * 2;", 814 "", 815 " if ( new_size <= 0 )", 816 " b->yy_buf_size += b->yy_buf_size / 8;", 817 " else", 818 " b->yy_buf_size *= 2;", 819 "", 820 " b->yy_ch_buf = (char *)", 821 " /* Include room in for 2 EOB chars. */", 822 " yy_flex_realloc( (void *) b->yy_ch_buf,", 823 " b->yy_buf_size + 2 );", 824 " }", 825 " else", 826 " /* Can't grow it, we don't own it. */", 827 " b->yy_ch_buf = 0;", 828 "", 829 " if ( ! b->yy_ch_buf )", 830 " YY_FATAL_ERROR(", 831 " \"fatal error - scanner input buffer overflow\" );", 832 "", 833 " yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];", 834 "", 835 " num_to_read = yy_current_buffer->yy_buf_size -", 836 " number_to_move - 1;", 837 "#endif", 838 " }", 839 "", 840 " if ( num_to_read > YY_READ_BUF_SIZE )", 841 " num_to_read = YY_READ_BUF_SIZE;", 842 "", 843 " /* Read in more data. */", 844 " YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),", 845 " yy_n_chars, num_to_read );", 846 "", 847 " yy_current_buffer->yy_n_chars = yy_n_chars;", 848 " }", 849 "", 850 " if ( yy_n_chars == 0 )", 851 " {", 852 " if ( number_to_move == YY_MORE_ADJ )", 853 " {", 854 " ret_val = EOB_ACT_END_OF_FILE;", 855 " yyrestart( yyin );", 856 " }", 857 "", 858 " else", 859 " {", 860 " ret_val = EOB_ACT_LAST_MATCH;", 861 " yy_current_buffer->yy_buffer_status =", 862 " YY_BUFFER_EOF_PENDING;", 863 " }", 864 " }", 865 "", 866 " else", 867 " ret_val = EOB_ACT_CONTINUE_SCAN;", 868 "", 869 " yy_n_chars += number_to_move;", 870 " yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;", 871 " yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;", 872 "", 873 " yytext_ptr = &yy_current_buffer->yy_ch_buf[0];", 874 "", 875 " return ret_val;", 876 " }", 877 "", 878 "", 879 "/* yy_get_previous_state - get the state just before the EOB char was reached */", 880 "", 881 "%-", 882 "static yy_state_type yy_get_previous_state()", 883 "%+", 884 "yy_state_type yyFlexLexer::yy_get_previous_state()", 885 "%*", 886 " {", 887 " register yy_state_type yy_current_state;", 888 " register char *yy_cp;", 889 "", 890 "%% code to get the start state into yy_current_state goes here", 891 "", 892 " for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )", 893 " {", 894 "%% code to find the next state goes here", 895 " }", 896 "", 897 " return yy_current_state;", 898 " }", 899 "", 900 "", 901 "/* yy_try_NUL_trans - try to make a transition on the NUL character", 902 " *", 903 " * synopsis", 904 " * next_state = yy_try_NUL_trans( current_state );", 905 " */", 906 "", 907 "%-", 908 "#ifdef YY_USE_PROTOS", 909 "static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )", 910 "#else", 911 "static yy_state_type yy_try_NUL_trans( yy_current_state )", 912 "yy_state_type yy_current_state;", 913 "#endif", 914 "%+", 915 "yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state )", 916 "%*", 917 " {", 918 " register int yy_is_jam;", 919 "%% code to find the next state, and perhaps do backing up, goes here", 920 "", 921 " return yy_is_jam ? 0 : yy_current_state;", 922 " }", 923 "", 924 "", 925 "%-", 926 "#ifndef YY_NO_UNPUT", 927 "#ifdef YY_USE_PROTOS", 928 "static void yyunput( int c, register char *yy_bp )", 929 "#else", 930 "static void yyunput( c, yy_bp )", 931 "int c;", 932 "register char *yy_bp;", 933 "#endif", 934 "%+", 935 "void yyFlexLexer::yyunput( int c, register char* yy_bp )", 936 "%*", 937 " {", 938 " register char *yy_cp = yy_c_buf_p;", 939 "", 940 " /* undo effects of setting up yytext */", 941 " *yy_cp = yy_hold_char;", 942 "", 943 " if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )", 944 " { /* need to shift things up to make room */", 945 " /* +2 for EOB chars. */", 946 " register int number_to_move = yy_n_chars + 2;", 947 " register char *dest = &yy_current_buffer->yy_ch_buf[", 948 " yy_current_buffer->yy_buf_size + 2];", 949 " register char *source =", 950 " &yy_current_buffer->yy_ch_buf[number_to_move];", 951 "", 952 " while ( source > yy_current_buffer->yy_ch_buf )", 953 " *--dest = *--source;", 954 "", 955 " yy_cp += (int) (dest - source);", 956 " yy_bp += (int) (dest - source);", 957 " yy_current_buffer->yy_n_chars =", 958 " yy_n_chars = yy_current_buffer->yy_buf_size;", 959 "", 960 " if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )", 961 " YY_FATAL_ERROR( \"flex scanner push-back overflow\" );", 962 " }", 963 "", 964 " *--yy_cp = (char) c;", 965 "", 966 "%% update yylineno here", 967 "", 968 " yytext_ptr = yy_bp;", 969 " yy_hold_char = *yy_cp;", 970 " yy_c_buf_p = yy_cp;", 971 " }", 972 "%-", 973 "#endif /* ifndef YY_NO_UNPUT */", 974 "%*", 975 "", 976 "", 977 "%-", 978 "#ifdef __cplusplus", 979 "static int yyinput()", 980 "#else", 981 "static int input()", 982 "#endif", 983 "%+", 984 "int yyFlexLexer::yyinput()", 985 "%*", 986 " {", 987 " int c;", 988 "", 989 " *yy_c_buf_p = yy_hold_char;", 990 "", 991 " if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )", 992 " {", 993 " /* yy_c_buf_p now points to the character we want to return.", 994 " * If this occurs *before* the EOB characters, then it's a", 995 " * valid NUL; if not, then we've hit the end of the buffer.", 996 " */", 997 " if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )", 998 " /* This was really a NUL. */", 999 " *yy_c_buf_p = '\\0';", 1000 "", 1001 " else", 1002 " { /* need more input */", 1003 " int offset = yy_c_buf_p - yytext_ptr;", 1004 " ++yy_c_buf_p;", 1005 "", 1006 " switch ( yy_get_next_buffer() )", 1007 " {", 1008 " case EOB_ACT_LAST_MATCH:", 1009 " /* This happens because yy_g_n_b()", 1010 " * sees that we've accumulated a", 1011 " * token and flags that we need to", 1012 " * try matching the token before", 1013 " * proceeding. But for input(),", 1014 " * there's no matching to consider.", 1015 " * So convert the EOB_ACT_LAST_MATCH", 1016 " * to EOB_ACT_END_OF_FILE.", 1017 " */", 1018 "", 1019 " /* Reset buffer status. */", 1020 " yyrestart( yyin );", 1021 "", 1022 " /* fall through */", 1023 "", 1024 " case EOB_ACT_END_OF_FILE:", 1025 " {", 1026 " if ( yywrap() )", 1027 " return EOF;", 1028 "", 1029 " if ( ! yy_did_buffer_switch_on_eof )", 1030 " YY_NEW_FILE;", 1031 "#ifdef __cplusplus", 1032 " return yyinput();", 1033 "#else", 1034 " return input();", 1035 "#endif", 1036 " }", 1037 "", 1038 " case EOB_ACT_CONTINUE_SCAN:", 1039 " yy_c_buf_p = yytext_ptr + offset;", 1040 " break;", 1041 " }", 1042 " }", 1043 " }", 1044 "", 1045 " c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */", 1046 " *yy_c_buf_p = '\\0'; /* preserve yytext */", 1047 " yy_hold_char = *++yy_c_buf_p;", 1048 "", 1049 "%% update BOL and yylineno", 1050 "", 1051 " return c;", 1052 " }", 1053 "", 1054 "", 1055 "%-", 1056 "#ifdef YY_USE_PROTOS", 1057 "void yyrestart( FILE *input_file )", 1058 "#else", 1059 "void yyrestart( input_file )", 1060 "FILE *input_file;", 1061 "#endif", 1062 "%+", 1063 "void yyFlexLexer::yyrestart( istream* input_file )", 1064 "%*", 1065 " {", 1066 " if ( ! yy_current_buffer )", 1067 " yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );", 1068 "", 1069 " yy_init_buffer( yy_current_buffer, input_file );", 1070 " yy_load_buffer_state();", 1071 " }", 1072 "", 1073 "", 1074 "%-", 1075 "#ifdef YY_USE_PROTOS", 1076 "void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )", 1077 "#else", 1078 "void yy_switch_to_buffer( new_buffer )", 1079 "YY_BUFFER_STATE new_buffer;", 1080 "#endif", 1081 "%+", 1082 "void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )", 1083 "%*", 1084 " {", 1085 " if ( yy_current_buffer == new_buffer )", 1086 " return;", 1087 "", 1088 " if ( yy_current_buffer )", 1089 " {", 1090 " /* Flush out information for old buffer. */", 1091 " *yy_c_buf_p = yy_hold_char;", 1092 " yy_current_buffer->yy_buf_pos = yy_c_buf_p;", 1093 " yy_current_buffer->yy_n_chars = yy_n_chars;", 1094 " }", 1095 "", 1096 " yy_current_buffer = new_buffer;", 1097 " yy_load_buffer_state();", 1098 "", 1099 " /* We don't actually know whether we did this switch during", 1100 " * EOF (yywrap()) processing, but the only time this flag", 1101 " * is looked at is after yywrap() is called, so it's safe", 1102 " * to go ahead and always set it.", 1103 " */", 1104 " yy_did_buffer_switch_on_eof = 1;", 1105 " }", 1106 "", 1107 "", 1108 "%-", 1109 "#ifdef YY_USE_PROTOS", 1110 "void yy_load_buffer_state( void )", 1111 "#else", 1112 "void yy_load_buffer_state()", 1113 "#endif", 1114 "%+", 1115 "void yyFlexLexer::yy_load_buffer_state()", 1116 "%*", 1117 " {", 1118 " yy_n_chars = yy_current_buffer->yy_n_chars;", 1119 " yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;", 1120 " yyin = yy_current_buffer->yy_input_file;", 1121 " yy_hold_char = *yy_c_buf_p;", 1122 " }", 1123 "", 1124 "", 1125 "%-", 1126 "#ifdef YY_USE_PROTOS", 1127 "YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )", 1128 "#else", 1129 "YY_BUFFER_STATE yy_create_buffer( file, size )", 1130 "FILE *file;", 1131 "int size;", 1132 "#endif", 1133 "%+", 1134 "YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( istream* file, int size )", 1135 "%*", 1136 " {", 1137 " YY_BUFFER_STATE b;", 1138 "", 1139 " b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );", 1140 " if ( ! b )", 1141 " YY_FATAL_ERROR( \"out of dynamic memory in yy_create_buffer()\" );", 1142 "", 1143 " b->yy_buf_size = size;", 1144 "", 1145 " /* yy_ch_buf has to be 2 characters longer than the size given because", 1146 " * we need to put in 2 end-of-buffer characters.", 1147 " */", 1148 " b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );", 1149 " if ( ! b->yy_ch_buf )", 1150 " YY_FATAL_ERROR( \"out of dynamic memory in yy_create_buffer()\" );", 1151 "", 1152 " b->yy_is_our_buffer = 1;", 1153 "", 1154 " yy_init_buffer( b, file );", 1155 "", 1156 " return b;", 1157 " }", 1158 "", 1159 "", 1160 "%-", 1161 "#ifdef YY_USE_PROTOS", 1162 "void yy_delete_buffer( YY_BUFFER_STATE b )", 1163 "#else", 1164 "void yy_delete_buffer( b )", 1165 "YY_BUFFER_STATE b;", 1166 "#endif", 1167 "%+", 1168 "void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )", 1169 "%*", 1170 " {", 1171 " if ( ! b )", 1172 " return;", 1173 "", 1174 " if ( b == yy_current_buffer )", 1175 " yy_current_buffer = (YY_BUFFER_STATE) 0;", 1176 "", 1177 " if ( b->yy_is_our_buffer )", 1178 " yy_flex_free( (void *) b->yy_ch_buf );", 1179 "", 1180 " yy_flex_free( (void *) b );", 1181 " }", 1182 "", 1183 "", 1184 "%-", 1185 "#ifndef YY_ALWAYS_INTERACTIVE", 1186 "#ifndef YY_NEVER_INTERACTIVE", 1187 "extern int isatty YY_PROTO(( int ));", 1188 "#endif", 1189 "#endif", 1190 "", 1191 "#ifdef YY_USE_PROTOS", 1192 "void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )", 1193 "#else", 1194 "void yy_init_buffer( b, file )", 1195 "YY_BUFFER_STATE b;", 1196 "FILE *file;", 1197 "#endif", 1198 "", 1199 "%+", 1200 "extern \"C\" int isatty YY_PROTO(( int ));", 1201 "void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, istream* file )", 1202 "%*", 1203 "", 1204 " {", 1205 " yy_flush_buffer( b );", 1206 "", 1207 " b->yy_input_file = file;", 1208 " b->yy_fill_buffer = 1;", 1209 "", 1210 "%-", 1211 "#if YY_ALWAYS_INTERACTIVE", 1212 " b->yy_is_interactive = 1;", 1213 "#else", 1214 "#if YY_NEVER_INTERACTIVE", 1215 " b->yy_is_interactive = 0;", 1216 "#else", 1217 " b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;", 1218 "#endif", 1219 "#endif", 1220 "%+", 1221 " b->yy_is_interactive = 0;", 1222 "%*", 1223 " }", 1224 "", 1225 "", 1226 "%-", 1227 "#ifdef YY_USE_PROTOS", 1228 "void yy_flush_buffer( YY_BUFFER_STATE b )", 1229 "#else", 1230 "void yy_flush_buffer( b )", 1231 "YY_BUFFER_STATE b;", 1232 "#endif", 1233 "", 1234 "%+", 1235 "void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )", 1236 "%*", 1237 " {", 1238 " if ( ! b )", 1239 " return;", 1240 "", 1241 " b->yy_n_chars = 0;", 1242 "", 1243 " /* We always need two end-of-buffer characters. The first causes", 1244 " * a transition to the end-of-buffer state. The second causes", 1245 " * a jam in that state.", 1246 " */", 1247 " b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;", 1248 " b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;", 1249 "", 1250 " b->yy_buf_pos = &b->yy_ch_buf[0];", 1251 "", 1252 " b->yy_at_bol = 1;", 1253 " b->yy_buffer_status = YY_BUFFER_NEW;", 1254 "", 1255 " if ( b == yy_current_buffer )", 1256 " yy_load_buffer_state();", 1257 " }", 1258 "%*", 1259 "", 1260 "", 1261 "#ifndef YY_NO_SCAN_BUFFER", 1262 "%-", 1263 "#ifdef YY_USE_PROTOS", 1264 "YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )", 1265 "#else", 1266 "YY_BUFFER_STATE yy_scan_buffer( base, size )", 1267 "char *base;", 1268 "yy_size_t size;", 1269 "#endif", 1270 " {", 1271 " YY_BUFFER_STATE b;", 1272 "", 1273 " if ( size < 2 ||", 1274 " base[size-2] != YY_END_OF_BUFFER_CHAR ||", 1275 " base[size-1] != YY_END_OF_BUFFER_CHAR )", 1276 " /* They forgot to leave room for the EOB's. */", 1277 " return 0;", 1278 "", 1279 " b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );", 1280 " if ( ! b )", 1281 " YY_FATAL_ERROR( \"out of dynamic memory in yy_scan_buffer()\" );", 1282 "", 1283 " b->yy_buf_size = size - 2; /* \"- 2\" to take care of EOB's */", 1284 " b->yy_buf_pos = b->yy_ch_buf = base;", 1285 " b->yy_is_our_buffer = 0;", 1286 " b->yy_input_file = 0;", 1287 " b->yy_n_chars = b->yy_buf_size;", 1288 " b->yy_is_interactive = 0;", 1289 " b->yy_at_bol = 1;", 1290 " b->yy_fill_buffer = 0;", 1291 " b->yy_buffer_status = YY_BUFFER_NEW;", 1292 "", 1293 " yy_switch_to_buffer( b );", 1294 "", 1295 " return b;", 1296 " }", 1297 "%*", 1298 "#endif", 1299 "", 1300 "", 1301 "#ifndef YY_NO_SCAN_STRING", 1302 "%-", 1303 "#ifdef YY_USE_PROTOS", 1304 "YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )", 1305 "#else", 1306 "YY_BUFFER_STATE yy_scan_string( yy_str )", 1307 "yyconst char *yy_str;", 1308 "#endif", 1309 " {", 1310 " int len;", 1311 " for ( len = 0; yy_str[len]; ++len )", 1312 " ;", 1313 "", 1314 " return yy_scan_bytes( yy_str, len );", 1315 " }", 1316 "%*", 1317 "#endif", 1318 "", 1319 "", 1320 "#ifndef YY_NO_SCAN_BYTES", 1321 "%-", 1322 "#ifdef YY_USE_PROTOS", 1323 "YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )", 1324 "#else", 1325 "YY_BUFFER_STATE yy_scan_bytes( bytes, len )", 1326 "yyconst char *bytes;", 1327 "int len;", 1328 "#endif", 1329 " {", 1330 " YY_BUFFER_STATE b;", 1331 " char *buf;", 1332 " yy_size_t n;", 1333 " int i;", 1334 "", 1335 " /* Get memory for full buffer, including space for trailing EOB's. */", 1336 " n = len + 2;", 1337 " buf = (char *) yy_flex_alloc( n );", 1338 " if ( ! buf )", 1339 " YY_FATAL_ERROR( \"out of dynamic memory in yy_scan_bytes()\" );", 1340 "", 1341 " for ( i = 0; i < len; ++i )", 1342 " buf[i] = bytes[i];", 1343 "", 1344 " buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;", 1345 "", 1346 " b = yy_scan_buffer( buf, n );", 1347 " if ( ! b )", 1348 " YY_FATAL_ERROR( \"bad buffer in yy_scan_bytes()\" );", 1349 "", 1350 " /* It's okay to grow etc. this buffer, and we should throw it", 1351 " * away when we're done.", 1352 " */", 1353 " b->yy_is_our_buffer = 1;", 1354 "", 1355 " return b;", 1356 " }", 1357 "%*", 1358 "#endif", 1359 "", 1360 "", 1361 "#ifndef YY_NO_PUSH_STATE", 1362 "%-", 1363 "#ifdef YY_USE_PROTOS", 1364 "static void yy_push_state( int new_state )", 1365 "#else", 1366 "static void yy_push_state( new_state )", 1367 "int new_state;", 1368 "#endif", 1369 "%+", 1370 "void yyFlexLexer::yy_push_state( int new_state )", 1371 "%*", 1372 " {", 1373 " if ( yy_start_stack_ptr >= yy_start_stack_depth )", 1374 " {", 1375 " yy_size_t new_size;", 1376 "", 1377 " yy_start_stack_depth += YY_START_STACK_INCR;", 1378 " new_size = yy_start_stack_depth * sizeof( int );", 1379 "", 1380 " if ( ! yy_start_stack )", 1381 " yy_start_stack = (int *) yy_flex_alloc( new_size );", 1382 "", 1383 " else", 1384 " yy_start_stack = (int *) yy_flex_realloc(", 1385 " (void *) yy_start_stack, new_size );", 1386 "", 1387 " if ( ! yy_start_stack )", 1388 " YY_FATAL_ERROR(", 1389 " \"out of memory expanding start-condition stack\" );", 1390 " }", 1391 "", 1392 " yy_start_stack[yy_start_stack_ptr++] = YY_START;", 1393 "", 1394 " BEGIN(new_state);", 1395 " }", 1396 "#endif", 1397 "", 1398 "", 1399 "#ifndef YY_NO_POP_STATE", 1400 "%-", 1401 "static void yy_pop_state()", 1402 "%+", 1403 "void yyFlexLexer::yy_pop_state()", 1404 "%*", 1405 " {", 1406 " if ( --yy_start_stack_ptr < 0 )", 1407 " YY_FATAL_ERROR( \"start-condition stack underflow\" );", 1408 "", 1409 " BEGIN(yy_start_stack[yy_start_stack_ptr]);", 1410 " }", 1411 "#endif", 1412 "", 1413 "", 1414 "#ifndef YY_NO_TOP_STATE", 1415 "%-", 1416 "static int yy_top_state()", 1417 "%+", 1418 "int yyFlexLexer::yy_top_state()", 1419 "%*", 1420 " {", 1421 " return yy_start_stack[yy_start_stack_ptr - 1];", 1422 " }", 1423 "#endif", 1424 "", 1425 "#ifndef YY_EXIT_FAILURE", 1426 "#define YY_EXIT_FAILURE 2", 1427 "#endif", 1428 "", 1429 "%-", 1430 "#ifdef YY_USE_PROTOS", 1431 "static void yy_fatal_error( yyconst char msg[] )", 1432 "#else", 1433 "static void yy_fatal_error( msg )", 1434 "char msg[];", 1435 "#endif", 1436 " {", 1437 " (void) fprintf( stderr, \"%s\\n\", msg );", 1438 " exit( YY_EXIT_FAILURE );", 1439 " }", 1440 "", 1441 "%+", 1442 "", 1443 "void yyFlexLexer::LexerError( yyconst char msg[] )", 1444 " {", 1445 " cerr << msg << '\\n';", 1446 " exit( YY_EXIT_FAILURE );", 1447 " }", 1448 "%*", 1449 "", 1450 "", 1451 "/* Redefine yyless() so it works in section 3 code. */", 1452 "", 1453 "#undef yyless", 1454 "#define yyless(n) \\", 1455 " do \\", 1456 " { \\", 1457 " /* Undo effects of setting up yytext. */ \\", 1458 " yytext[yyleng] = yy_hold_char; \\", 1459 " yy_c_buf_p = yytext + n; \\", 1460 " yy_hold_char = *yy_c_buf_p; \\", 1461 " *yy_c_buf_p = '\\0'; \\", 1462 " yyleng = n; \\", 1463 " } \\", 1464 " while ( 0 )", 1465 "", 1466 "", 1467 "/* Internal utility routines. */", 1468 "", 1469 "#ifndef yytext_ptr", 1470 "#ifdef YY_USE_PROTOS", 1471 "static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )", 1472 "#else", 1473 "static void yy_flex_strncpy( s1, s2, n )", 1474 "char *s1;", 1475 "yyconst char *s2;", 1476 "int n;", 1477 "#endif", 1478 " {", 1479 " register int i;", 1480 " for ( i = 0; i < n; ++i )", 1481 " s1[i] = s2[i];", 1482 " }", 1483 "#endif", 1484 "", 1485 "#ifdef YY_NEED_STRLEN", 1486 "#ifdef YY_USE_PROTOS", 1487 "static int yy_flex_strlen( yyconst char *s )", 1488 "#else", 1489 "static int yy_flex_strlen( s )", 1490 "yyconst char *s;", 1491 "#endif", 1492 " {", 1493 " register int n;", 1494 " for ( n = 0; s[n]; ++n )", 1495 " ;", 1496 "", 1497 " return n;", 1498 " }", 1499 "#endif", 1500 "", 1501 "", 1502 "#ifdef YY_USE_PROTOS", 1503 "static void *yy_flex_alloc( yy_size_t size )", 1504 "#else", 1505 "static void *yy_flex_alloc( size )", 1506 "yy_size_t size;", 1507 "#endif", 1508 " {", 1509 " return (void *) malloc( size );", 1510 " }", 1511 "", 1512 "#ifdef YY_USE_PROTOS", 1513 "static void *yy_flex_realloc( void *ptr, yy_size_t size )", 1514 "#else", 1515 "static void *yy_flex_realloc( ptr, size )", 1516 "void *ptr;", 1517 "yy_size_t size;", 1518 "#endif", 1519 " {", 1520 " /* The cast to (char *) in the following accommodates both", 1521 " * implementations that use char* generic pointers, and those", 1522 " * that use void* generic pointers. It works with the latter", 1523 " * because both ANSI C and C++ allow castless assignment from", 1524 " * any pointer type to void*, and deal with argument conversions", 1525 " * as though doing an assignment.", 1526 " */", 1527 " return (void *) realloc( (char *) ptr, size );", 1528 " }", 1529 "", 1530 "#ifdef YY_USE_PROTOS", 1531 "static void yy_flex_free( void *ptr )", 1532 "#else", 1533 "static void yy_flex_free( ptr )", 1534 "void *ptr;", 1535 "#endif", 1536 " {", 1537 " free( ptr );", 1538 " }", 1539 "", 1540 "#if YY_MAIN", 1541 "int main()", 1542 " {", 1543 " yylex();", 1544 " return 0;", 1545 " }", 1546 "#endif", 1547 0 1548}; 1549