(file) Return to WQLLEX.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / WQL

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

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2