dcop Library API Documentation

scanner.cc

00001 #line 2 "scanner.cc" 00002 /* A lexical scanner generated by flex */ 00003 00004 /* Scanner skeleton version: 00005 * $Header: /home/kde/kdelibs/dcop/dcopidl/scanner.cc,v 1.59 2004/07/26 14:28:06 coolo Exp $ 00006 */ 00007 00008 #define FLEX_SCANNER 00009 #define YY_FLEX_MAJOR_VERSION 2 00010 #define YY_FLEX_MINOR_VERSION 5 00011 00012 #include <stdio.h> 00013 00014 00015 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ 00016 #ifdef c_plusplus 00017 #ifndef __cplusplus 00018 #define __cplusplus 00019 #endif 00020 #endif 00021 00022 00023 #ifdef __cplusplus 00024 00025 #include <stdlib.h> 00026 #include <unistd.h> 00027 00028 /* Use prototypes in function declarations. */ 00029 #define YY_USE_PROTOS 00030 00031 /* The "const" storage-class-modifier is valid. */ 00032 #define YY_USE_CONST 00033 00034 #else /* ! __cplusplus */ 00035 00036 #if __STDC__ 00037 00038 #define YY_USE_PROTOS 00039 #define YY_USE_CONST 00040 00041 #endif /* __STDC__ */ 00042 #endif /* ! __cplusplus */ 00043 00044 #ifdef __TURBOC__ 00045 #pragma warn -rch 00046 #pragma warn -use 00047 #include <io.h> 00048 #include <stdlib.h> 00049 #define YY_USE_CONST 00050 #define YY_USE_PROTOS 00051 #endif 00052 00053 #ifdef YY_USE_CONST 00054 #define yyconst const 00055 #else 00056 #define yyconst 00057 #endif 00058 00059 00060 #ifdef YY_USE_PROTOS 00061 #define YY_PROTO(proto) proto 00062 #else 00063 #define YY_PROTO(proto) () 00064 #endif 00065 00066 /* Returned upon end-of-file. */ 00067 #define YY_NULL 0 00068 00069 /* Promotes a possibly negative, possibly signed char to an unsigned 00070 * integer for use as an array index. If the signed char is negative, 00071 * we want to instead treat it as an 8-bit unsigned char, hence the 00072 * double cast. 00073 */ 00074 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) 00075 00076 /* Enter a start condition. This macro really ought to take a parameter, 00077 * but we do it the disgusting crufty way forced on us by the ()-less 00078 * definition of BEGIN. 00079 */ 00080 #define BEGIN yy_start = 1 + 2 * 00081 00082 /* Translate the current start state into a value that can be later handed 00083 * to BEGIN to return to the state. The YYSTATE alias is for lex 00084 * compatibility. 00085 */ 00086 #define YY_START ((yy_start - 1) / 2) 00087 #define YYSTATE YY_START 00088 00089 /* Action number for EOF rule of a given start state. */ 00090 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 00091 00092 /* Special action meaning "start processing a new file". */ 00093 #define YY_NEW_FILE yyrestart( yyin ) 00094 00095 #define YY_END_OF_BUFFER_CHAR 0 00096 00097 /* Size of default input buffer. */ 00098 #define YY_BUF_SIZE 16384 00099 00100 typedef struct yy_buffer_state *YY_BUFFER_STATE; 00101 00102 extern int yyleng; 00103 extern FILE *yyin, *yyout; 00104 00105 #define EOB_ACT_CONTINUE_SCAN 0 00106 #define EOB_ACT_END_OF_FILE 1 00107 #define EOB_ACT_LAST_MATCH 2 00108 00109 /* The funky do-while in the following #define is used to turn the definition 00110 * int a single C statement (which needs a semi-colon terminator). This 00111 * avoids problems with code like: 00112 * 00113 * if ( condition_holds ) 00114 * yyless( 5 ); 00115 * else 00116 * do_something_else(); 00117 * 00118 * Prior to using the do-while the compiler would get upset at the 00119 * "else" because it interpreted the "if" statement as being all 00120 * done when it reached the ';' after the yyless() call. 00121 */ 00122 00123 /* Return all but the first 'n' matched characters back to the input stream. */ 00124 00125 #define yyless(n) \ 00126 do \ 00127 { \ 00128 /* Undo effects of setting up yytext. */ \ 00129 *yy_cp = yy_hold_char; \ 00130 YY_RESTORE_YY_MORE_OFFSET \ 00131 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ 00132 YY_DO_BEFORE_ACTION; /* set up yytext again */ \ 00133 } \ 00134 while ( 0 ) 00135 00136 #define unput(c) yyunput( c, yytext_ptr ) 00137 00138 /* The following is because we cannot portably get our hands on size_t 00139 * (without autoconf's help, which isn't available because we want 00140 * flex-generated scanners to compile on their own). 00141 */ 00142 typedef unsigned int yy_size_t; 00143 00144 00145 struct yy_buffer_state 00146 { 00147 FILE *yy_input_file; 00148 00149 char *yy_ch_buf; /* input buffer */ 00150 char *yy_buf_pos; /* current position in input buffer */ 00151 00152 /* Size of input buffer in bytes, not including room for EOB 00153 * characters. 00154 */ 00155 yy_size_t yy_buf_size; 00156 00157 /* Number of characters read into yy_ch_buf, not including EOB 00158 * characters. 00159 */ 00160 int yy_n_chars; 00161 00162 /* Whether we "own" the buffer - i.e., we know we created it, 00163 * and can realloc() it to grow it, and should free() it to 00164 * delete it. 00165 */ 00166 int yy_is_our_buffer; 00167 00168 /* Whether this is an "interactive" input source; if so, and 00169 * if we're using stdio for input, then we want to use getc() 00170 * instead of fread(), to make sure we stop fetching input after 00171 * each newline. 00172 */ 00173 int yy_is_interactive; 00174 00175 /* Whether we're considered to be at the beginning of a line. 00176 * If so, '^' rules will be active on the next match, otherwise 00177 * not. 00178 */ 00179 int yy_at_bol; 00180 00181 /* Whether to try to fill the input buffer when we reach the 00182 * end of it. 00183 */ 00184 int yy_fill_buffer; 00185 00186 int yy_buffer_status; 00187 #define YY_BUFFER_NEW 0 00188 #define YY_BUFFER_NORMAL 1 00189 /* When an EOF's been seen but there's still some text to process 00190 * then we mark the buffer as YY_EOF_PENDING, to indicate that we 00191 * shouldn't try reading from the input source any more. We might 00192 * still have a bunch of tokens to match, though, because of 00193 * possible backing-up. 00194 * 00195 * When we actually see the EOF, we change the status to "new" 00196 * (via yyrestart()), so that the user can continue scanning by 00197 * just pointing yyin at a new input file. 00198 */ 00199 #define YY_BUFFER_EOF_PENDING 2 00200 }; 00201 00202 static YY_BUFFER_STATE yy_current_buffer = 0; 00203 00204 /* We provide macros for accessing buffer states in case in the 00205 * future we want to put the buffer states in a more general 00206 * "scanner state". 00207 */ 00208 #define YY_CURRENT_BUFFER yy_current_buffer 00209 00210 00211 /* yy_hold_char holds the character lost when yytext is formed. */ 00212 static char yy_hold_char; 00213 00214 static int yy_n_chars; /* number of characters read into yy_ch_buf */ 00215 00216 00217 int yyleng; 00218 00219 /* Points to current character in buffer. */ 00220 static char *yy_c_buf_p = (char *) 0; 00221 static int yy_init = 1; /* whether we need to initialize */ 00222 static int yy_start = 0; /* start state number */ 00223 00224 /* Flag which is used to allow yywrap()'s to do buffer switches 00225 * instead of setting up a fresh yyin. A bit of a hack ... 00226 */ 00227 static int yy_did_buffer_switch_on_eof; 00228 00229 void yyrestart YY_PROTO(( FILE *input_file )); 00230 00231 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); 00232 void yy_load_buffer_state YY_PROTO(( void )); 00233 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); 00234 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); 00235 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); 00236 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); 00237 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) 00238 00239 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); 00240 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); 00241 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); 00242 00243 static void *yy_flex_alloc YY_PROTO(( yy_size_t )); 00244 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); 00245 static void yy_flex_free YY_PROTO(( void * )); 00246 00247 #define yy_new_buffer yy_create_buffer 00248 00249 #define yy_set_interactive(is_interactive) \ 00250 { \ 00251 if ( ! yy_current_buffer ) \ 00252 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ 00253 yy_current_buffer->yy_is_interactive = is_interactive; \ 00254 } 00255 00256 #define yy_set_bol(at_bol) \ 00257 { \ 00258 if ( ! yy_current_buffer ) \ 00259 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ 00260 yy_current_buffer->yy_at_bol = at_bol; \ 00261 } 00262 00263 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol) 00264 00265 00266 #define YY_USES_REJECT 00267 00268 #define yywrap() 1 00269 #define YY_SKIP_YYWRAP 00270 typedef unsigned char YY_CHAR; 00271 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; 00272 typedef int yy_state_type; 00273 extern char *yytext; 00274 #define yytext_ptr yytext 00275 00276 static yy_state_type yy_get_previous_state YY_PROTO(( void )); 00277 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); 00278 static int yy_get_next_buffer YY_PROTO(( void )); 00279 static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); 00280 00281 /* Done after the current pattern has been matched and before the 00282 * corresponding action - sets up yytext. 00283 */ 00284 #define YY_DO_BEFORE_ACTION \ 00285 yytext_ptr = yy_bp; \ 00286 yyleng = (int) (yy_cp - yy_bp); \ 00287 yy_hold_char = *yy_cp; \ 00288 *yy_cp = '\0'; \ 00289 yy_c_buf_p = yy_cp; 00290 00291 #define YY_NUM_RULES 83 00292 #define YY_END_OF_BUFFER 84 00293 static yyconst short int yy_acclist[655] = 00294 { 0, 00295 6, 6, 84, 6, 82, 83, 1, 6, 82, 83, 00296 2, 83, 6, 82, 83, 6, 82, 83, 6, 82, 00297 83, 6, 23, 82, 83, 6, 82, 83, 6, 14, 00298 82, 83, 6, 15, 82, 83, 7, 21, 82, 83, 00299 6, 17, 82, 83, 6, 20, 82, 83, 6, 18, 00300 82, 83, 6, 28, 82, 83, 6, 82, 83, 6, 00301 68, 78, 82, 83, 6, 77, 82, 83, 6, 16, 00302 82, 83, 6, 22, 82, 83, 6, 24, 82, 83, 00303 6, 27, 82, 83, 6, 25, 82, 83, 6, 71, 00304 82, 83, 6, 71, 82, 83, 6, 71, 82, 83, 00305 00306 6, 71, 82, 83, 6, 71, 82, 83, 6, 30, 00307 82, 83, 6, 31, 82, 83, 6, 71, 82, 83, 00308 6, 71, 82, 83, 6, 71, 82, 83, 6, 71, 00309 82, 83, 6, 71, 82, 83, 6, 71, 82, 83, 00310 6, 71, 82, 83, 6, 71, 82, 83, 6, 71, 00311 82, 83, 6, 71, 82, 83, 6, 71, 82, 83, 00312 6, 71, 82, 83, 6, 71, 82, 83, 6, 71, 00313 82, 83, 6, 71, 82, 83, 6, 12, 82, 83, 00314 5, 13, 82, 83, 6, 19, 82, 83, 6, 6, 00315 34, 6, 6, 81, 6, 6, 11, 6, 9, 6, 00316 00317 6, 6, 4, 6, 32, 6, 6, 75, 3, 6, 00318 8, 6, 6, 78, 6, 6, 6, 68, 6, 79, 00319 6, 77, 6, 77, 6, 26, 6, 33, 6, 71, 00320 6, 71, 6, 71, 6, 71, 6, 71, 6, 71, 00321 6, 71, 6, 71, 6, 71, 6, 71, 6, 71, 00322 6, 71, 6, 71, 6, 71, 6, 71, 6, 71, 00323 6, 71, 6, 71, 6, 71, 6, 71, 6, 71, 00324 6, 71, 6, 71, 6, 71, 6, 71, 6, 71, 00325 6, 71, 6, 71, 6, 71, 6, 71, 81, 6, 00326 6, 6, 9, 9, 6, 6, 80, 80, 6, 80, 00327 00328 6, 6, 6, 29, 6, 6, 8, 8, 6, 74, 00329 6, 6, 73, 6, 79, 6, 71, 6, 71, 6, 00330 71, 6, 71, 6, 71, 6, 71, 6, 71, 6, 00331 71, 6, 71, 6, 71, 6, 71, 6, 71, 6, 00332 58, 71, 6, 71, 6, 71, 6, 71, 6, 71, 00333 6, 71, 6, 71, 6, 71, 6, 71, 6, 71, 00334 6, 71, 6, 71, 6, 71, 6, 71, 6, 71, 00335 6, 71, 6, 71, 6, 71, 6, 71, 6, 71, 00336 6, 6, 6, 6, 6, 6, 6, 76, 6, 6, 00337 71, 6, 71, 6, 71, 6, 61, 71, 6, 59, 00338 00339 71, 6, 71, 6, 71, 6, 36, 71, 6, 71, 00340 6, 71, 6, 71, 6, 71, 6, 71, 6, 50, 00341 71, 6, 71, 6, 71, 6, 71, 6, 71, 6, 00342 71, 6, 71, 6, 71, 6, 71, 6, 71, 6, 00343 71, 6, 71, 6, 71, 6, 57, 71, 6, 71, 00344 6, 71, 6, 71, 6, 71, 6, 6, 6, 6, 00345 6, 6, 72, 6, 62, 71, 6, 71, 6, 71, 00346 6, 39, 71, 6, 35, 71, 6, 71, 6, 60, 00347 71, 6, 71, 6, 71, 6, 71, 6, 71, 6, 00348 71, 6, 71, 6, 71, 6, 71, 6, 71, 6, 00349 00350 71, 6, 49, 71, 6, 71, 6, 71, 6, 56, 00351 71, 6, 71, 6, 71, 6, 71, 6, 71, 6, 00352 38, 71, 6, 71, 6, 6, 66, 71, 6, 71, 00353 6, 71, 6, 51, 71, 6, 44, 71, 6, 63, 00354 71, 6, 71, 6, 71, 6, 71, 6, 71, 6, 00355 71, 6, 43, 71, 6, 55, 71, 6, 71, 6, 00356 47, 71, 6, 45, 71, 6, 40, 71, 6, 71, 00357 6, 71, 6, 71, 6, 6, 71, 6, 6, 71, 00358 6, 46, 71, 6, 71, 6, 71, 6, 53, 71, 00359 6, 71, 6, 54, 71, 6, 65, 71, 6, 71, 00360 00361 6, 42, 71, 6, 6, 67, 71, 6, 69, 6, 00362 69, 6, 71, 6, 71, 6, 41, 71, 6, 71, 00363 6, 48, 71, 6, 6, 6, 6, 71, 6, 37, 00364 71, 6, 52, 71, 6, 11, 6, 6, 70, 6, 00365 71, 10, 11, 6, 6, 71, 10, 6, 71, 6, 00366 71, 6, 64, 71 00367 } ; 00368 00369 static yyconst short int yy_accept[312] = 00370 { 0, 00371 1, 2, 3, 4, 7, 11, 13, 16, 19, 22, 00372 26, 29, 33, 37, 41, 45, 49, 53, 57, 60, 00373 65, 69, 73, 77, 81, 85, 89, 93, 97, 101, 00374 105, 109, 113, 117, 121, 125, 129, 133, 137, 141, 00375 145, 149, 153, 157, 161, 165, 169, 173, 177, 181, 00376 185, 189, 190, 192, 193, 195, 195, 196, 197, 198, 00377 200, 200, 201, 202, 202, 203, 204, 206, 207, 209, 00378 210, 212, 213, 215, 216, 217, 219, 221, 223, 225, 00379 227, 229, 231, 233, 235, 237, 239, 241, 243, 245, 00380 247, 249, 251, 253, 255, 257, 259, 261, 263, 265, 00381 00382 267, 269, 271, 273, 275, 277, 279, 281, 283, 285, 00383 287, 289, 290, 290, 291, 292, 294, 295, 296, 298, 00384 299, 301, 302, 303, 305, 306, 308, 309, 311, 312, 00385 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 00386 334, 336, 338, 340, 343, 345, 347, 349, 351, 353, 00387 355, 357, 359, 361, 363, 365, 367, 369, 371, 373, 00388 375, 377, 379, 381, 381, 381, 382, 383, 384, 385, 00389 386, 387, 389, 390, 392, 394, 396, 399, 402, 404, 00390 406, 409, 411, 413, 415, 417, 419, 422, 424, 426, 00391 428, 430, 432, 434, 436, 438, 440, 442, 444, 446, 00392 00393 449, 451, 453, 455, 457, 457, 457, 458, 459, 460, 00394 461, 462, 464, 467, 469, 471, 474, 477, 479, 482, 00395 484, 486, 488, 490, 492, 494, 496, 498, 500, 502, 00396 505, 507, 509, 512, 514, 516, 518, 520, 523, 525, 00397 525, 525, 526, 529, 531, 533, 536, 539, 542, 544, 00398 546, 548, 550, 552, 555, 558, 560, 563, 566, 569, 00399 571, 573, 575, 576, 578, 579, 581, 584, 586, 588, 00400 591, 593, 596, 599, 601, 604, 605, 608, 610, 611, 00401 612, 614, 616, 619, 621, 624, 625, 626, 627, 629, 00402 632, 635, 636, 637, 638, 638, 640, 642, 642, 642, 00403 00404 644, 645, 645, 647, 648, 648, 648, 650, 652, 655, 00405 655 00406 } ; 00407 00408 static yyconst int yy_ec[256] = 00409 { 0, 00410 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 00411 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00412 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00413 1, 4, 5, 6, 7, 1, 1, 8, 9, 10, 00414 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 00415 19, 19, 19, 19, 19, 20, 20, 21, 22, 23, 00416 24, 25, 26, 1, 27, 28, 29, 30, 31, 32, 00417 33, 33, 33, 34, 35, 36, 33, 33, 37, 38, 00418 39, 40, 41, 42, 43, 33, 33, 44, 33, 33, 00419 45, 46, 47, 1, 48, 1, 49, 50, 51, 52, 00420 00421 53, 54, 55, 56, 57, 33, 58, 59, 60, 61, 00422 62, 63, 33, 64, 65, 66, 67, 68, 33, 69, 00423 70, 33, 71, 1, 72, 73, 1, 1, 1, 1, 00424 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00425 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00426 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00427 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00428 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00429 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00430 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00431 00432 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00433 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00434 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00435 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00436 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00437 1, 1, 1, 1, 1 00438 } ; 00439 00440 static yyconst int yy_meta[74] = 00441 { 0, 00442 1, 2, 3, 4, 1, 5, 1, 1, 5, 1, 00443 1, 6, 1, 1, 1, 1, 1, 7, 7, 8, 00444 1, 1, 1, 1, 1, 5, 8, 8, 8, 8, 00445 8, 8, 4, 4, 4, 4, 4, 4, 4, 4, 00446 4, 4, 4, 9, 1, 5, 1, 4, 7, 7, 00447 8, 8, 8, 7, 4, 4, 4, 4, 4, 4, 00448 9, 4, 4, 9, 4, 9, 4, 9, 9, 4, 00449 1, 10, 1 00450 } ; 00451 00452 static yyconst short int yy_base[329] = 00453 { 0, 00454 0, 0, 904, 0, 0, 1106, 879, 72, 74, 0, 00455 73, 0, 0, 885, 0, 0, 876, 71, 64, 79, 00456 85, 879, 0, 69, 874, 82, 148, 221, 61, 69, 00457 73, 0, 0, 81, 53, 75, 67, 85, 98, 84, 00458 93, 103, 114, 148, 120, 140, 141, 155, 0, 1106, 00459 0, 0, 0, 178, 0, 193, 289, 124, 1106, 180, 00460 887, 188, 880, 879, 353, 1106, 0, 858, 238, 1106, 00461 117, 189, 243, 257, 198, 0, 405, 266, 0, 0, 00462 0, 846, 99, 158, 160, 171, 206, 238, 193, 213, 00463 224, 244, 226, 245, 237, 251, 243, 254, 188, 266, 00464 00465 272, 252, 274, 279, 278, 297, 289, 286, 298, 273, 00466 290, 1106, 308, 372, 442, 317, 869, 329, 0, 1106, 00467 860, 351, 479, 0, 368, 332, 0, 374, 346, 390, 00468 0, 304, 176, 320, 369, 348, 341, 346, 355, 386, 00469 399, 389, 294, 840, 401, 340, 349, 393, 402, 411, 00470 414, 404, 416, 403, 420, 418, 421, 422, 423, 424, 00471 448, 441, 438, 494, 0, 532, 603, 511, 506, 667, 00472 498, 501, 528, 451, 499, 508, 839, 838, 474, 461, 00473 837, 426, 510, 495, 518, 522, 836, 525, 526, 527, 00474 528, 532, 530, 531, 533, 537, 535, 539, 538, 835, 00475 00476 540, 542, 546, 541, 592, 716, 600, 601, 569, 852, 00477 598, 606, 832, 544, 612, 831, 830, 553, 829, 567, 00478 610, 566, 561, 601, 600, 613, 617, 618, 621, 827, 00479 615, 631, 824, 633, 623, 624, 632, 820, 643, 655, 00480 656, 678, 813, 638, 676, 807, 805, 661, 651, 664, 00481 644, 673, 683, 797, 763, 687, 762, 756, 732, 678, 00482 680, 681, 725, 685, 797, 688, 715, 704, 696, 697, 00483 698, 547, 534, 702, 476, 769, 459, 870, 456, 0, 00484 684, 711, 413, 730, 358, 825, 774, 336, 729, 310, 00485 107, 827, 733, 773, 790, 0, 734, 810, 760, 1106, 00486 00487 788, 771, 752, 1106, 784, 785, 767, 790, 56, 1106, 00488 943, 952, 962, 972, 982, 991, 1001, 1011, 1021, 1027, 00489 1036, 1046, 1050, 1058, 1066, 1075, 1085, 1095 00490 } ; 00491 00492 static yyconst short int yy_def[329] = 00493 { 0, 00494 310, 1, 310, 311, 311, 310, 311, 312, 313, 311, 00495 314, 311, 311, 310, 311, 311, 311, 311, 311, 311, 00496 311, 311, 311, 311, 311, 311, 315, 315, 28, 28, 00497 28, 311, 311, 28, 28, 28, 28, 28, 28, 28, 00498 28, 28, 28, 28, 28, 28, 28, 28, 311, 310, 00499 311, 311, 311, 312, 311, 316, 311, 313, 310, 317, 00500 318, 313, 311, 310, 311, 310, 311, 311, 311, 310, 00501 319, 311, 311, 311, 311, 311, 311, 311, 311, 311, 00502 311, 28, 28, 28, 28, 28, 28, 28, 28, 28, 00503 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 00504 00505 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 00506 28, 310, 320, 312, 311, 317, 321, 313, 311, 310, 00507 311, 311, 311, 311, 311, 319, 322, 311, 311, 311, 00508 77, 28, 28, 28, 28, 28, 28, 28, 28, 28, 00509 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 00510 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 00511 28, 28, 28, 316, 323, 312, 312, 313, 311, 311, 00512 311, 311, 311, 28, 28, 28, 28, 28, 28, 28, 00513 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 00514 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 00515 00516 28, 28, 28, 28, 316, 316, 312, 312, 313, 311, 00517 311, 311, 28, 28, 28, 28, 28, 28, 28, 28, 00518 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 00519 28, 28, 28, 28, 28, 28, 28, 28, 28, 316, 00520 316, 313, 28, 28, 28, 28, 28, 28, 28, 28, 00521 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 00522 28, 28, 313, 28, 324, 28, 28, 28, 28, 28, 00523 28, 28, 28, 28, 28, 313, 28, 324, 311, 325, 00524 28, 28, 28, 28, 28, 313, 326, 311, 28, 28, 00525 28, 326, 327, 313, 328, 311, 28, 327, 310, 310, 00526 00527 313, 318, 28, 310, 310, 318, 28, 28, 28, 0, 00528 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00529 310, 310, 310, 310, 310, 310, 310, 310 00530 } ; 00531 00532 static yyconst short int yy_nxt[1180] = 00533 { 0, 00534 4, 5, 6, 5, 7, 8, 9, 10, 11, 12, 00535 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 00536 22, 23, 24, 25, 26, 4, 27, 27, 27, 27, 00537 27, 28, 27, 27, 29, 27, 27, 27, 30, 27, 00538 27, 31, 27, 27, 32, 4, 33, 27, 27, 27, 00539 34, 27, 35, 36, 27, 27, 37, 38, 39, 40, 00540 41, 42, 43, 44, 45, 46, 47, 48, 27, 27, 00541 49, 50, 51, 52, 52, 70, 59, 55, 60, 82, 00542 71, 52, 82, 56, 64, 61, 68, 82, 69, 69, 00543 69, 81, 53, 82, 72, 82, 73, 73, 74, 82, 00544 00545 72, 82, 78, 78, 78, 53, 81, 82, 84, 75, 00546 82, 82, 86, 90, 76, 75, 85, 57, 65, 82, 00547 79, 91, 77, 92, 82, 82, 59, 94, 127, 82, 00548 62, 75, 95, 82, 132, 61, 87, 75, 93, 88, 00549 82, 98, 89, 56, 64, 61, 82, 77, 52, 52, 00550 97, 52, 52, 52, 52, 52, 52, 52, 52, 96, 00551 52, 52, 52, 52, 52, 99, 82, 82, 52, 52, 00552 52, 52, 52, 52, 82, 103, 104, 100, 105, 52, 00553 101, 82, 59, 55, 82, 106, 82, 133, 127, 56, 00554 59, 117, 52, 52, 52, 61, 134, 82, 112, 61, 00555 00556 102, 109, 82, 107, 175, 110, 128, 128, 128, 108, 00557 129, 111, 129, 135, 82, 130, 130, 130, 52, 82, 00558 52, 52, 52, 57, 52, 52, 52, 52, 52, 52, 00559 52, 52, 82, 52, 52, 52, 52, 52, 113, 82, 00560 149, 52, 52, 52, 52, 52, 52, 83, 118, 56, 00561 82, 117, 82, 138, 136, 69, 69, 69, 72, 61, 00562 73, 73, 74, 82, 82, 52, 52, 52, 125, 82, 00563 82, 82, 72, 75, 74, 74, 74, 82, 82, 139, 00564 82, 72, 142, 78, 78, 78, 137, 75, 145, 140, 00565 125, 52, 82, 52, 54, 75, 75, 54, 82, 82, 00566 00567 82, 79, 141, 143, 82, 82, 114, 114, 147, 75, 00568 144, 146, 82, 148, 54, 82, 82, 153, 75, 59, 00569 82, 152, 150, 82, 82, 164, 164, 151, 117, 162, 00570 82, 59, 115, 155, 54, 154, 82, 54, 54, 156, 00571 61, 296, 54, 127, 174, 157, 82, 176, 160, 54, 00572 185, 165, 54, 163, 54, 159, 54, 115, 63, 119, 00573 158, 121, 161, 130, 130, 130, 82, 82, 169, 169, 00574 122, 122, 82, 52, 82, 82, 165, 55, 63, 168, 00575 171, 82, 171, 56, 82, 172, 172, 172, 117, 166, 00576 166, 128, 128, 128, 187, 82, 123, 188, 63, 177, 00577 00578 61, 63, 63, 127, 173, 179, 63, 130, 130, 130, 00579 180, 178, 82, 63, 181, 82, 63, 57, 63, 82, 00580 63, 123, 131, 131, 131, 82, 173, 82, 82, 82, 00581 82, 131, 131, 131, 131, 131, 131, 82, 182, 82, 00582 82, 184, 82, 56, 82, 189, 82, 82, 82, 82, 00583 82, 186, 82, 131, 131, 131, 131, 131, 131, 167, 00584 167, 167, 193, 183, 82, 190, 195, 82, 167, 167, 00585 167, 167, 167, 167, 82, 200, 201, 82, 191, 192, 00586 196, 213, 194, 197, 288, 82, 198, 82, 199, 218, 00587 167, 167, 167, 167, 167, 167, 170, 170, 170, 112, 00588 00589 82, 203, 82, 204, 202, 170, 170, 170, 170, 170, 00590 170, 205, 205, 59, 119, 172, 172, 172, 172, 172, 00591 172, 82, 61, 63, 63, 82, 217, 170, 170, 170, 00592 170, 170, 170, 52, 82, 214, 82, 55, 216, 113, 00593 211, 215, 211, 56, 82, 212, 212, 212, 82, 207, 00594 207, 82, 82, 82, 82, 220, 82, 82, 82, 82, 00595 82, 82, 219, 82, 82, 82, 82, 82, 82, 209, 00596 82, 59, 82, 82, 223, 225, 226, 57, 221, 82, 00597 61, 243, 61, 222, 227, 231, 228, 82, 235, 232, 00598 224, 236, 82, 82, 229, 234, 237, 112, 230, 233, 00599 00600 238, 52, 52, 56, 52, 55, 55, 239, 55, 240, 00601 240, 56, 56, 245, 56, 212, 212, 212, 246, 249, 00602 208, 208, 208, 212, 212, 212, 82, 82, 248, 208, 00603 208, 208, 208, 208, 208, 242, 82, 113, 82, 82, 00604 61, 82, 244, 82, 82, 57, 57, 82, 57, 82, 00605 82, 208, 208, 208, 208, 208, 208, 82, 82, 82, 00606 112, 112, 247, 250, 82, 251, 264, 253, 254, 82, 00607 82, 56, 56, 256, 56, 119, 260, 82, 252, 265, 00608 59, 255, 257, 258, 210, 210, 210, 82, 259, 61, 00609 82, 262, 261, 210, 210, 210, 210, 210, 210, 82, 00610 00611 113, 113, 82, 267, 82, 269, 82, 82, 266, 82, 00612 82, 82, 268, 82, 82, 210, 210, 210, 210, 210, 00613 210, 112, 82, 82, 82, 270, 277, 59, 82, 263, 00614 82, 273, 274, 241, 241, 241, 61, 82, 299, 275, 00615 289, 82, 241, 241, 241, 241, 241, 241, 271, 61, 00616 284, 272, 281, 285, 282, 82, 82, 299, 82, 283, 00617 82, 113, 304, 290, 241, 241, 241, 241, 241, 241, 00618 286, 59, 286, 300, 287, 300, 293, 276, 82, 294, 00619 61, 291, 82, 297, 61, 295, 304, 300, 82, 82, 00620 300, 287, 293, 82, 303, 302, 61, 52, 294, 61, 00621 00622 307, 52, 279, 52, 52, 52, 52, 52, 280, 52, 00623 52, 52, 52, 52, 302, 299, 82, 52, 52, 52, 00624 52, 52, 52, 82, 305, 308, 286, 59, 286, 293, 00625 287, 82, 294, 82, 299, 306, 61, 301, 295, 82, 00626 61, 52, 52, 52, 61, 295, 82, 287, 305, 306, 00627 82, 294, 301, 82, 309, 82, 82, 82, 82, 61, 00628 119, 82, 82, 82, 82, 82, 82, 52, 119, 52, 00629 52, 59, 82, 124, 52, 52, 52, 52, 52, 52, 00630 52, 280, 52, 52, 52, 52, 52, 120, 119, 59, 00631 52, 52, 52, 52, 52, 52, 61, 53, 295, 80, 00632 00633 67, 66, 53, 310, 310, 310, 310, 310, 310, 310, 00634 310, 310, 310, 310, 52, 52, 52, 310, 310, 310, 00635 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00636 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00637 52, 310, 52, 52, 52, 310, 52, 52, 310, 52, 00638 52, 52, 54, 54, 310, 54, 54, 54, 54, 54, 00639 54, 54, 58, 58, 58, 58, 58, 58, 58, 58, 00640 58, 58, 63, 63, 310, 63, 63, 63, 63, 63, 00641 63, 63, 82, 82, 310, 82, 82, 310, 82, 82, 00642 82, 56, 310, 310, 56, 56, 56, 56, 56, 56, 00643 00644 56, 116, 116, 116, 116, 116, 116, 116, 116, 116, 00645 116, 61, 61, 61, 61, 61, 61, 61, 61, 61, 00646 61, 126, 126, 310, 126, 126, 126, 126, 126, 126, 00647 126, 56, 310, 56, 310, 56, 117, 117, 117, 117, 00648 117, 117, 117, 117, 117, 117, 127, 127, 310, 127, 00649 127, 127, 127, 127, 127, 127, 206, 206, 278, 278, 00650 310, 278, 278, 278, 278, 278, 278, 280, 310, 280, 00651 310, 280, 280, 280, 280, 292, 292, 292, 292, 292, 00652 292, 292, 292, 292, 292, 298, 298, 298, 298, 298, 00653 298, 298, 298, 298, 298, 295, 295, 295, 295, 295, 00654 00655 295, 295, 295, 295, 295, 3, 310, 310, 310, 310, 00656 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00657 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00658 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00659 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00660 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00661 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00662 310, 310, 310, 310, 310, 310, 310, 310, 310 00663 } ; 00664 00665 static yyconst short int yy_chk[1180] = 00666 { 0, 00667 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00668 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00669 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00670 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00671 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00672 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00673 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00674 1, 1, 1, 8, 11, 19, 9, 8, 9, 35, 00675 19, 11, 309, 8, 11, 9, 18, 29, 18, 18, 00676 18, 24, 24, 37, 20, 30, 20, 20, 20, 31, 00677 00678 21, 36, 21, 21, 21, 26, 26, 34, 29, 20, 00679 40, 38, 31, 35, 20, 21, 30, 8, 11, 41, 00680 21, 35, 20, 36, 39, 83, 58, 37, 71, 42, 00681 9, 20, 38, 291, 83, 58, 34, 21, 36, 34, 00682 43, 41, 34, 8, 11, 9, 45, 20, 27, 27, 00683 40, 27, 27, 27, 27, 27, 27, 27, 27, 39, 00684 27, 27, 27, 27, 27, 42, 46, 47, 27, 27, 00685 27, 27, 27, 27, 44, 45, 45, 43, 45, 54, 00686 43, 48, 60, 54, 84, 45, 85, 84, 71, 54, 00687 62, 60, 27, 27, 27, 58, 85, 86, 56, 62, 00688 00689 44, 47, 133, 46, 133, 47, 72, 72, 72, 46, 00690 75, 48, 75, 86, 99, 75, 75, 75, 27, 89, 00691 27, 28, 28, 54, 28, 28, 28, 28, 28, 28, 00692 28, 28, 87, 28, 28, 28, 28, 28, 56, 90, 00693 99, 28, 28, 28, 28, 28, 28, 28, 62, 54, 00694 91, 60, 93, 89, 87, 69, 69, 69, 73, 62, 00695 73, 73, 73, 95, 88, 28, 28, 28, 69, 97, 00696 92, 94, 74, 73, 74, 74, 74, 96, 102, 90, 00697 98, 78, 93, 78, 78, 78, 88, 74, 95, 91, 00698 69, 28, 100, 28, 57, 73, 78, 57, 101, 110, 00699 00700 103, 78, 92, 94, 105, 104, 57, 57, 97, 74, 00701 94, 96, 108, 98, 57, 107, 111, 102, 78, 116, 00702 143, 101, 100, 106, 109, 113, 113, 100, 116, 110, 00703 132, 118, 57, 104, 57, 103, 290, 57, 57, 105, 00704 118, 288, 57, 126, 132, 106, 134, 134, 108, 57, 00705 143, 113, 57, 111, 57, 107, 57, 57, 65, 122, 00706 106, 65, 109, 129, 129, 129, 146, 137, 122, 122, 00707 65, 65, 138, 114, 136, 147, 113, 114, 65, 118, 00708 125, 139, 125, 114, 285, 125, 125, 125, 116, 114, 00709 114, 128, 128, 128, 146, 135, 65, 147, 65, 135, 00710 00711 118, 65, 65, 126, 128, 137, 65, 130, 130, 130, 00712 138, 136, 140, 65, 139, 142, 65, 114, 65, 148, 00713 65, 65, 77, 77, 77, 141, 128, 145, 149, 154, 00714 152, 77, 77, 77, 77, 77, 77, 150, 140, 283, 00715 151, 142, 153, 114, 156, 148, 155, 157, 158, 159, 00716 160, 145, 182, 77, 77, 77, 77, 77, 77, 115, 00717 115, 115, 152, 141, 163, 149, 154, 162, 115, 115, 00718 115, 115, 115, 115, 161, 159, 160, 174, 150, 151, 00719 155, 174, 153, 156, 279, 277, 157, 180, 158, 182, 00720 115, 115, 115, 115, 115, 115, 123, 123, 123, 164, 00721 00722 179, 162, 275, 163, 161, 123, 123, 123, 123, 123, 00723 123, 164, 164, 168, 169, 171, 171, 171, 172, 172, 00724 172, 184, 168, 169, 169, 175, 180, 123, 123, 123, 00725 123, 123, 123, 166, 176, 175, 183, 166, 179, 164, 00726 173, 176, 173, 166, 185, 173, 173, 173, 186, 166, 00727 166, 188, 189, 190, 191, 184, 193, 194, 192, 195, 00728 273, 197, 183, 196, 199, 198, 201, 204, 202, 168, 00729 214, 209, 203, 272, 188, 190, 191, 166, 185, 218, 00730 209, 214, 168, 186, 192, 196, 193, 223, 199, 196, 00731 189, 201, 222, 220, 194, 198, 202, 205, 195, 197, 00732 00733 203, 207, 208, 166, 167, 207, 208, 204, 167, 205, 00734 205, 207, 208, 218, 167, 211, 211, 211, 220, 223, 00735 167, 167, 167, 212, 212, 212, 225, 224, 222, 167, 00736 167, 167, 167, 167, 167, 209, 221, 205, 215, 226, 00737 209, 231, 215, 227, 228, 207, 208, 229, 167, 235, 00738 236, 167, 167, 167, 167, 167, 167, 232, 237, 234, 00739 240, 241, 221, 224, 244, 225, 244, 227, 228, 239, 00740 251, 207, 208, 231, 167, 170, 236, 249, 226, 245, 00741 242, 229, 232, 234, 170, 170, 170, 248, 235, 242, 00742 250, 239, 237, 170, 170, 170, 170, 170, 170, 252, 00743 00744 240, 241, 245, 249, 260, 251, 261, 262, 248, 253, 00745 281, 264, 250, 256, 266, 170, 170, 170, 170, 170, 00746 170, 206, 269, 270, 271, 252, 264, 263, 274, 242, 00747 268, 260, 261, 206, 206, 206, 263, 282, 293, 262, 00748 281, 267, 206, 206, 206, 206, 206, 206, 253, 242, 00749 271, 256, 266, 274, 268, 289, 284, 293, 259, 269, 00750 297, 206, 299, 282, 206, 206, 206, 206, 206, 206, 00751 276, 276, 276, 302, 276, 294, 287, 263, 303, 287, 00752 276, 284, 258, 289, 294, 287, 305, 306, 257, 255, 00753 301, 276, 295, 307, 297, 295, 263, 265, 287, 301, 00754 00755 303, 265, 265, 265, 265, 265, 265, 265, 265, 265, 00756 265, 265, 265, 265, 295, 298, 308, 265, 265, 265, 00757 265, 265, 265, 254, 299, 307, 286, 286, 286, 292, 00758 286, 247, 292, 246, 298, 302, 286, 294, 292, 243, 00759 276, 265, 265, 265, 294, 287, 238, 286, 305, 306, 00760 233, 292, 301, 230, 308, 219, 217, 216, 213, 301, 00761 210, 200, 187, 181, 178, 177, 144, 265, 121, 265, 00762 278, 117, 82, 68, 278, 278, 278, 278, 278, 278, 00763 278, 278, 278, 278, 278, 278, 278, 64, 63, 61, 00764 278, 278, 278, 278, 278, 278, 286, 25, 292, 22, 00765 00766 17, 14, 7, 3, 0, 0, 0, 0, 0, 0, 00767 0, 0, 0, 0, 278, 278, 278, 0, 0, 0, 00768 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 00769 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 00770 278, 0, 278, 311, 311, 0, 311, 311, 0, 311, 00771 311, 311, 312, 312, 0, 312, 312, 312, 312, 312, 00772 312, 312, 313, 313, 313, 313, 313, 313, 313, 313, 00773 313, 313, 314, 314, 0, 314, 314, 314, 314, 314, 00774 314, 314, 315, 315, 0, 315, 315, 0, 315, 315, 00775 315, 316, 0, 0, 316, 316, 316, 316, 316, 316, 00776 00777 316, 317, 317, 317, 317, 317, 317, 317, 317, 317, 00778 317, 318, 318, 318, 318, 318, 318, 318, 318, 318, 00779 318, 319, 319, 0, 319, 319, 319, 319, 319, 319, 00780 319, 320, 0, 320, 0, 320, 321, 321, 321, 321, 00781 321, 321, 321, 321, 321, 321, 322, 322, 0, 322, 00782 322, 322, 322, 322, 322, 322, 323, 323, 324, 324, 00783 0, 324, 324, 324, 324, 324, 324, 325, 0, 325, 00784 0, 325, 325, 325, 325, 326, 326, 326, 326, 326, 00785 326, 326, 326, 326, 326, 327, 327, 327, 327, 327, 00786 327, 327, 327, 327, 327, 328, 328, 328, 328, 328, 00787 00788 328, 328, 328, 328, 328, 310, 310, 310, 310, 310, 00789 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00790 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00791 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00792 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00793 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00794 310, 310, 310, 310, 310, 310, 310, 310, 310, 310, 00795 310, 310, 310, 310, 310, 310, 310, 310, 310 00796 } ; 00797 00798 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr; 00799 static char *yy_full_match; 00800 static int yy_lp; 00801 #define REJECT \ 00802 { \ 00803 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \ 00804 yy_cp = yy_full_match; /* restore poss. backed-over text */ \ 00805 ++yy_lp; \ 00806 goto find_rule; \ 00807 } 00808 #define yymore() yymore_used_but_not_detected 00809 #define YY_MORE_ADJ 0 00810 #define YY_RESTORE_YY_MORE_OFFSET 00811 char *yytext; 00812 #line 1 "scanner.ll" 00813 #define INITIAL 0 00814 #line 2 "scanner.ll" 00815 /***************************************************************** 00816 Copyright (c) 1999 Torben Weis <weis@kde.org> 00817 Copyright (c) 2000 Matthias Ettrich <ettrich@kde.org> 00818 00819 Permission is hereby granted, free of charge, to any person obtaining a copy 00820 of this software and associated documentation files (the "Software"), to deal 00821 in the Software without restriction, including without limitation the rights 00822 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00823 copies of the Software, and to permit persons to whom the Software is 00824 furnished to do so, subject to the following conditions: 00825 00826 The above copyright notice and this permission notice shall be included in 00827 all copies or substantial portions of the Software. 00828 00829 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00830 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00831 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00832 AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 00833 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 00834 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00835 00836 ******************************************************************/ 00837 00838 #define YY_NO_UNPUT 00839 #include <stdlib.h> 00840 #include <ctype.h> 00841 00842 class QString; 00843 00844 #ifndef KDE_USE_FINAL 00845 #include "yacc.cc.h" 00846 #endif 00847 00848 extern int idl_line_no; 00849 int comment_mode; 00850 int function_mode = 0; 00851 00852 #include <qstring.h> 00853 #include <qregexp.h> 00854 00855 static long ascii_to_longlong( long base, const char *s ) 00856 { 00857 long ll = 0; 00858 while( *s != '\0' ) { 00859 char c = *s++; 00860 if( c >= 'a' ) 00861 c -= 'a' - 'A'; 00862 c -= '0'; 00863 if( c > 9 ) 00864 c -= 'A' - '0' - 10; 00865 ll = ll * base + c; 00866 } 00867 return ll; 00868 } 00869 00870 static double ascii_to_longdouble (const char *s) 00871 { 00872 double d; 00873 #ifdef HAVE_SCANF_LF 00874 sscanf (s, "%Lf", &d); 00875 #else 00876 /* 00877 * this is only an approximation and will probably break fixed<> 00878 * parameter calculation on systems where 00879 * sizeof(double) < sizeof(long double). but fortunately all 00880 * systems where scanf("%Lf") is known to be broken (Linux/Alpha 00881 * and HPUX) have sizeof(double) == sizeof(long double). 00882 */ 00883 d = strtod (s, NULL); 00884 #endif 00885 return d; 00886 } 00887 00888 static char translate_char( const char *s ) 00889 { 00890 char c = *s++; 00891 00892 if( c != '\\' ) 00893 return c; 00894 c = *s++; 00895 switch( c ) { 00896 case 'n': 00897 return '\n'; 00898 case 't': 00899 return '\t'; 00900 case 'v': 00901 return '\v'; 00902 case 'b': 00903 return '\b'; 00904 case 'r': 00905 return '\r'; 00906 case 'f': 00907 return '\f'; 00908 case 'a': 00909 return '\a'; 00910 case '\\': 00911 return '\\'; 00912 case '?': 00913 return '\?'; 00914 case '\'': 00915 return '\''; 00916 case '"': 00917 return '"'; 00918 case 'x': 00919 case 'X': 00920 return (char) ascii_to_longlong( 16, s ); 00921 default: 00922 // Gotta be an octal 00923 return (char) ascii_to_longlong( 8, s ); 00924 } 00925 } 00926 00927 00928 #define YY_NEVER_INTERACTIVE 1 00929 /*--------------------------------------------------------------------------*/ 00930 /*--------------------------------------------------------------------------*/ 00931 /*--------------------------------------------------------------------------*/ 00932 #line 933 "scanner.cc" 00933 00934 /* Macros after this point can all be overridden by user definitions in 00935 * section 1. 00936 */ 00937 00938 #ifndef YY_SKIP_YYWRAP 00939 #ifdef __cplusplus 00940 extern "C" int yywrap YY_PROTO(( void )); 00941 #else 00942 extern int yywrap YY_PROTO(( void )); 00943 #endif 00944 #endif 00945 00946 #ifndef YY_NO_UNPUT 00947 static void yyunput YY_PROTO(( int c, char *buf_ptr )); 00948 #endif 00949 00950 #ifndef yytext_ptr 00951 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); 00952 #endif 00953 00954 #ifdef YY_NEED_STRLEN 00955 static int yy_flex_strlen YY_PROTO(( yyconst char * )); 00956 #endif 00957 00958 #ifndef YY_NO_INPUT 00959 #ifdef __cplusplus 00960 static int yyinput YY_PROTO(( void )); 00961 #else 00962 static int input YY_PROTO(( void )); 00963 #endif 00964 #endif 00965 00966 #if YY_STACK_USED 00967 static int yy_start_stack_ptr = 0; 00968 static int yy_start_stack_depth = 0; 00969 static int *yy_start_stack = 0; 00970 #ifndef YY_NO_PUSH_STATE 00971 static void yy_push_state YY_PROTO(( int new_state )); 00972 #endif 00973 #ifndef YY_NO_POP_STATE 00974 static void yy_pop_state YY_PROTO(( void )); 00975 #endif 00976 #ifndef YY_NO_TOP_STATE 00977 static int yy_top_state YY_PROTO(( void )); 00978 #endif 00979 00980 #else 00981 #define YY_NO_PUSH_STATE 1 00982 #define YY_NO_POP_STATE 1 00983 #define YY_NO_TOP_STATE 1 00984 #endif 00985 00986 #ifdef YY_MALLOC_DECL 00987 YY_MALLOC_DECL 00988 #else 00989 #if __STDC__ 00990 #ifndef __cplusplus 00991 #include <stdlib.h> 00992 #endif 00993 #else 00994 /* Just try to get by without declaring the routines. This will fail 00995 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) 00996 * or sizeof(void*) != sizeof(int). 00997 */ 00998 #endif 00999 #endif 01000 01001 /* Amount of stuff to slurp up with each read. */ 01002 #ifndef YY_READ_BUF_SIZE 01003 #define YY_READ_BUF_SIZE 8192 01004 #endif 01005 01006 /* Copy whatever the last rule matched to the standard output. */ 01007 01008 #ifndef ECHO 01009 /* This used to be an fputs(), but since the string might contain NUL's, 01010 * we now use fwrite(). 01011 */ 01012 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) 01013 #endif 01014 01015 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 01016 * is returned in "result". 01017 */ 01018 #ifndef YY_INPUT 01019 #define YY_INPUT(buf,result,max_size) \ 01020 if ( yy_current_buffer->yy_is_interactive ) \ 01021 { \ 01022 int c = '*', n; \ 01023 for ( n = 0; n < max_size && \ 01024 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ 01025 buf[n] = (char) c; \ 01026 if ( c == '\n' ) \ 01027 buf[n++] = (char) c; \ 01028 if ( c == EOF && ferror( yyin ) ) \ 01029 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 01030 result = n; \ 01031 } \ 01032 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \ 01033 && ferror( yyin ) ) \ 01034 YY_FATAL_ERROR( "input in flex scanner failed" ); 01035 #endif 01036 01037 /* No semi-colon after return; correct usage is to write "yyterminate();" - 01038 * we don't want an extra ';' after the "return" because that will cause 01039 * some compilers to complain about unreachable statements. 01040 */ 01041 #ifndef yyterminate 01042 #define yyterminate() return YY_NULL 01043 #endif 01044 01045 /* Number of entries by which start-condition stack grows. */ 01046 #ifndef YY_START_STACK_INCR 01047 #define YY_START_STACK_INCR 25 01048 #endif 01049 01050 /* Report a fatal error. */ 01051 #ifndef YY_FATAL_ERROR 01052 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 01053 #endif 01054 01055 /* Default declaration of generated scanner - a define so the user can 01056 * easily add parameters. 01057 */ 01058 #ifndef YY_DECL 01059 #define YY_DECL int yylex YY_PROTO(( void )) 01060 #endif 01061 01062 /* Code executed at the beginning of each rule, after yytext and yyleng 01063 * have been set up. 01064 */ 01065 #ifndef YY_USER_ACTION 01066 #define YY_USER_ACTION 01067 #endif 01068 01069 /* Code executed at the end of each rule. */ 01070 #ifndef YY_BREAK 01071 #define YY_BREAK break; 01072 #endif 01073 01074 #define YY_RULE_SETUP \ 01075 YY_USER_ACTION 01076 01077 YY_DECL 01078 { 01079 register yy_state_type yy_current_state; 01080 register char *yy_cp, *yy_bp; 01081 register int yy_act; 01082 01083 #line 148 "scanner.ll" 01084 01085 01086 #line 1087 "scanner.cc" 01087 01088 if ( yy_init ) 01089 { 01090 yy_init = 0; 01091 01092 #ifdef YY_USER_INIT 01093 YY_USER_INIT; 01094 #endif 01095 01096 if ( ! yy_start ) 01097 yy_start = 1; /* first start state */ 01098 01099 if ( ! yyin ) 01100 yyin = stdin; 01101 01102 if ( ! yyout ) 01103 yyout = stdout; 01104 01105 if ( ! yy_current_buffer ) 01106 yy_current_buffer = 01107 yy_create_buffer( yyin, YY_BUF_SIZE ); 01108 01109 yy_load_buffer_state(); 01110 } 01111 01112 while ( 1 ) /* loops until end-of-file is reached */ 01113 { 01114 yy_cp = yy_c_buf_p; 01115 01116 /* Support of yytext. */ 01117 *yy_cp = yy_hold_char; 01118 01119 /* yy_bp points to the position in yy_ch_buf of the start of 01120 * the current run. 01121 */ 01122 yy_bp = yy_cp; 01123 01124 yy_current_state = yy_start; 01125 yy_state_ptr = yy_state_buf; 01126 *yy_state_ptr++ = yy_current_state; 01127 yy_match: 01128 do 01129 { 01130 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; 01131 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 01132 { 01133 yy_current_state = (int) yy_def[yy_current_state]; 01134 if ( yy_current_state >= 311 ) 01135 yy_c = yy_meta[(unsigned int) yy_c]; 01136 } 01137 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 01138 *yy_state_ptr++ = yy_current_state; 01139 ++yy_cp; 01140 } 01141 while ( yy_current_state != 310 ); 01142 01143 yy_find_action: 01144 yy_current_state = *--yy_state_ptr; 01145 yy_lp = yy_accept[yy_current_state]; 01146 find_rule: /* we branch to this label when backing up */ 01147 for ( ; ; ) /* until we find what rule we matched */ 01148 { 01149 if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] ) 01150 { 01151 yy_act = yy_acclist[yy_lp]; 01152 { 01153 yy_full_match = yy_cp; 01154 break; 01155 } 01156 } 01157 --yy_cp; 01158 yy_current_state = *--yy_state_ptr; 01159 yy_lp = yy_accept[yy_current_state]; 01160 } 01161 01162 YY_DO_BEFORE_ACTION; 01163 01164 01165 do_action: /* This label is used only to access EOF actions. */ 01166 01167 01168 switch ( yy_act ) 01169 { /* beginning of action switch */ 01170 case 1: 01171 YY_RULE_SETUP 01172 #line 150 "scanner.ll" 01173 ; 01174 YY_BREAK 01175 case 2: 01176 YY_RULE_SETUP 01177 #line 151 "scanner.ll" 01178 { idl_line_no++; } 01179 YY_BREAK 01180 case 3: 01181 YY_RULE_SETUP 01182 #line 153 "scanner.ll" 01183 { comment_mode = 1; } 01184 YY_BREAK 01185 case 4: 01186 YY_RULE_SETUP 01187 #line 154 "scanner.ll" 01188 { if (!comment_mode) { REJECT; } else { comment_mode = 0; } } 01189 YY_BREAK 01190 case 5: 01191 YY_RULE_SETUP 01192 #line 155 "scanner.ll" 01193 { 01194 if (! comment_mode) { 01195 if (!function_mode) { REJECT; } else { 01196 function_mode = 0; 01197 return T_RIGHT_CURLY_BRACKET; 01198 } 01199 } 01200 } 01201 YY_BREAK 01202 case 6: 01203 YY_RULE_SETUP 01204 #line 163 "scanner.ll" 01205 { if (!comment_mode && !function_mode) { REJECT; } } 01206 YY_BREAK 01207 case 7: 01208 YY_RULE_SETUP 01209 #line 164 "scanner.ll" 01210 { if (!comment_mode) { REJECT; } } 01211 YY_BREAK 01212 case 8: 01213 YY_RULE_SETUP 01214 #line 166 "scanner.ll" 01215 ; 01216 YY_BREAK 01217 case 9: 01218 YY_RULE_SETUP 01219 #line 167 "scanner.ll" 01220 { 01221 exit( 1 ); 01222 } 01223 YY_BREAK 01224 case 10: 01225 YY_RULE_SETUP 01226 #line 170 "scanner.ll" 01227 { 01228 QString s( yytext ); 01229 int i = s.find(QRegExp("[\"<]"))+1; 01230 int j = s.find(QRegExp("[\">]"), i); 01231 yylval._str = new QString( s.mid( i, j - i ) ); 01232 idl_line_no++; 01233 return T_INCLUDE; 01234 } 01235 YY_BREAK 01236 case 11: 01237 YY_RULE_SETUP 01238 #line 178 "scanner.ll" 01239 { 01240 idl_line_no++; 01241 } 01242 YY_BREAK 01243 case 12: 01244 YY_RULE_SETUP 01245 #line 181 "scanner.ll" 01246 return T_LEFT_CURLY_BRACKET; 01247 YY_BREAK 01248 case 13: 01249 YY_RULE_SETUP 01250 #line 182 "scanner.ll" 01251 return T_RIGHT_CURLY_BRACKET; 01252 YY_BREAK 01253 case 14: 01254 YY_RULE_SETUP 01255 #line 183 "scanner.ll" 01256 return T_LEFT_PARANTHESIS; 01257 YY_BREAK 01258 case 15: 01259 YY_RULE_SETUP 01260 #line 184 "scanner.ll" 01261 return T_RIGHT_PARANTHESIS; 01262 YY_BREAK 01263 case 16: 01264 YY_RULE_SETUP 01265 #line 185 "scanner.ll" 01266 return T_COLON; 01267 YY_BREAK 01268 case 17: 01269 YY_RULE_SETUP 01270 #line 186 "scanner.ll" 01271 return T_PLUS; 01272 YY_BREAK 01273 case 18: 01274 YY_RULE_SETUP 01275 #line 187 "scanner.ll" 01276 return T_MINUS; 01277 YY_BREAK 01278 case 19: 01279 YY_RULE_SETUP 01280 #line 188 "scanner.ll" 01281 return T_TILDE; 01282 YY_BREAK 01283 case 20: 01284 YY_RULE_SETUP 01285 #line 189 "scanner.ll" 01286 return T_COMMA; 01287 YY_BREAK 01288 case 21: 01289 YY_RULE_SETUP 01290 #line 190 "scanner.ll" 01291 return T_ASTERISK; 01292 YY_BREAK 01293 case 22: 01294 YY_RULE_SETUP 01295 #line 191 "scanner.ll" 01296 return T_SEMICOLON; 01297 YY_BREAK 01298 case 23: 01299 YY_RULE_SETUP 01300 #line 192 "scanner.ll" 01301 return T_AMPERSAND; 01302 YY_BREAK 01303 case 24: 01304 YY_RULE_SETUP 01305 #line 193 "scanner.ll" 01306 return T_LESS; 01307 YY_BREAK 01308 case 25: 01309 YY_RULE_SETUP 01310 #line 194 "scanner.ll" 01311 return T_GREATER; 01312 YY_BREAK 01313 case 26: 01314 YY_RULE_SETUP 01315 #line 195 "scanner.ll" 01316 return T_SCOPE; 01317 YY_BREAK 01318 case 27: 01319 YY_RULE_SETUP 01320 #line 196 "scanner.ll" 01321 return T_EQUAL; 01322 YY_BREAK 01323 case 28: 01324 YY_RULE_SETUP 01325 #line 197 "scanner.ll" 01326 return T_ACCESS; 01327 YY_BREAK 01328 case 29: 01329 YY_RULE_SETUP 01330 #line 198 "scanner.ll" 01331 return T_TRIPLE_DOT; 01332 YY_BREAK 01333 case 30: 01334 YY_RULE_SETUP 01335 #line 199 "scanner.ll" 01336 return T_ARRAY_OPEN; 01337 YY_BREAK 01338 case 31: 01339 YY_RULE_SETUP 01340 #line 200 "scanner.ll" 01341 return T_ARRAY_CLOSE; 01342 YY_BREAK 01343 case 32: 01344 YY_RULE_SETUP 01345 #line 201 "scanner.ll" 01346 return T_ACCESS; 01347 YY_BREAK 01348 case 33: 01349 YY_RULE_SETUP 01350 #line 202 "scanner.ll" 01351 return T_SHIFT; 01352 YY_BREAK 01353 case 34: 01354 YY_RULE_SETUP 01355 #line 203 "scanner.ll" 01356 return T_MISCOPERATOR; 01357 YY_BREAK 01358 case 35: 01359 YY_RULE_SETUP 01360 #line 206 "scanner.ll" 01361 return T_CONST; 01362 YY_BREAK 01363 case 36: 01364 YY_RULE_SETUP 01365 #line 207 "scanner.ll" 01366 return T_ENUM; 01367 YY_BREAK 01368 case 37: 01369 YY_RULE_SETUP 01370 #line 208 "scanner.ll" 01371 return T_NAMESPACE; 01372 YY_BREAK 01373 case 38: 01374 YY_RULE_SETUP 01375 #line 209 "scanner.ll" 01376 return T_USING; 01377 YY_BREAK 01378 case 39: 01379 YY_RULE_SETUP 01380 #line 210 "scanner.ll" 01381 return T_CLASS; 01382 YY_BREAK 01383 case 40: 01384 YY_RULE_SETUP 01385 #line 211 "scanner.ll" 01386 return T_STRUCT; 01387 YY_BREAK 01388 case 41: 01389 YY_RULE_SETUP 01390 #line 212 "scanner.ll" 01391 return T_FUNOPERATOR; 01392 YY_BREAK 01393 case 42: 01394 YY_RULE_SETUP 01395 #line 213 "scanner.ll" 01396 return T_VIRTUAL; 01397 YY_BREAK 01398 case 43: 01399 YY_RULE_SETUP 01400 #line 214 "scanner.ll" 01401 return T_PUBLIC; 01402 YY_BREAK 01403 case 44: 01404 YY_RULE_SETUP 01405 #line 215 "scanner.ll" 01406 return T_INLINE; 01407 YY_BREAK 01408 case 45: 01409 YY_RULE_SETUP 01410 #line 216 "scanner.ll" 01411 return T_STATIC; 01412 YY_BREAK 01413 case 46: 01414 YY_RULE_SETUP 01415 #line 217 "scanner.ll" 01416 return T_MUTABLE; 01417 YY_BREAK 01418 case 47: 01419 YY_RULE_SETUP 01420 #line 218 "scanner.ll" 01421 return T_SIGNED; 01422 YY_BREAK 01423 case 48: 01424 YY_RULE_SETUP 01425 #line 219 "scanner.ll" 01426 return T_UNSIGNED; 01427 YY_BREAK 01428 case 49: 01429 YY_RULE_SETUP 01430 #line 220 "scanner.ll" 01431 return T_SHORT; 01432 YY_BREAK 01433 case 50: 01434 YY_RULE_SETUP 01435 #line 221 "scanner.ll" 01436 return T_LONG; 01437 YY_BREAK 01438 case 51: 01439 YY_RULE_SETUP 01440 #line 222 "scanner.ll" 01441 return T_FRIEND; 01442 YY_BREAK 01443 case 52: 01444 YY_RULE_SETUP 01445 #line 223 "scanner.ll" 01446 return T_PROTECTED; 01447 YY_BREAK 01448 case 53: 01449 YY_RULE_SETUP 01450 #line 224 "scanner.ll" 01451 return T_PRIVATE; 01452 YY_BREAK 01453 case 54: 01454 YY_RULE_SETUP 01455 #line 225 "scanner.ll" 01456 return T_SIGNAL; 01457 YY_BREAK 01458 case 55: 01459 YY_RULE_SETUP 01460 #line 226 "scanner.ll" 01461 return T_RETURN; 01462 YY_BREAK 01463 case 56: 01464 YY_RULE_SETUP 01465 #line 227 "scanner.ll" 01466 return T_SLOT; 01467 YY_BREAK 01468 case 57: 01469 YY_RULE_SETUP 01470 #line 228 "scanner.ll" 01471 return T_TRUE; 01472 YY_BREAK 01473 case 58: 01474 YY_RULE_SETUP 01475 #line 229 "scanner.ll" 01476 return T_INT; 01477 YY_BREAK 01478 case 59: 01479 YY_RULE_SETUP 01480 #line 230 "scanner.ll" 01481 return T_CHAR; 01482 YY_BREAK 01483 case 60: 01484 YY_RULE_SETUP 01485 #line 231 "scanner.ll" 01486 return T_FALSE; 01487 YY_BREAK 01488 case 61: 01489 YY_RULE_SETUP 01490 #line 232 "scanner.ll" 01491 return T_TRUE; 01492 YY_BREAK 01493 case 62: 01494 YY_RULE_SETUP 01495 #line 233 "scanner.ll" 01496 return T_FALSE; 01497 YY_BREAK 01498 case 63: 01499 YY_RULE_SETUP 01500 #line 234 "scanner.ll" 01501 return T_DCOP_AREA; 01502 YY_BREAK 01503 case 64: 01504 YY_RULE_SETUP 01505 #line 235 "scanner.ll" 01506 return T_DCOP_SIGNAL_AREA; 01507 YY_BREAK 01508 case 65: 01509 YY_RULE_SETUP 01510 #line 236 "scanner.ll" 01511 return T_TYPEDEF; 01512 YY_BREAK 01513 case 66: 01514 YY_RULE_SETUP 01515 #line 237 "scanner.ll" 01516 return T_DCOP; 01517 YY_BREAK 01518 case 67: 01519 YY_RULE_SETUP 01520 #line 238 "scanner.ll" 01521 ; 01522 YY_BREAK 01523 case 68: 01524 YY_RULE_SETUP 01525 #line 239 "scanner.ll" 01526 return T_NULL; 01527 YY_BREAK 01528 case 69: 01529 YY_RULE_SETUP 01530 #line 240 "scanner.ll" 01531 return T_EXTERN; 01532 YY_BREAK 01533 case 70: 01534 YY_RULE_SETUP 01535 #line 241 "scanner.ll" 01536 return T_EXTERN_C; 01537 YY_BREAK 01538 case 71: 01539 YY_RULE_SETUP 01540 #line 243 "scanner.ll" 01541 { 01542 yylval._str = new QString( yytext ); 01543 return T_IDENTIFIER; 01544 } 01545 YY_BREAK 01546 case 72: 01547 #line 249 "scanner.ll" 01548 case 73: 01549 #line 250 "scanner.ll" 01550 case 74: 01551 #line 251 "scanner.ll" 01552 case 75: 01553 #line 252 "scanner.ll" 01554 case 76: 01555 YY_RULE_SETUP 01556 #line 252 "scanner.ll" 01557 { 01558 yylval._float = ascii_to_longdouble( yytext ); 01559 return T_DOUBLE_LITERAL; 01560 } 01561 YY_BREAK 01562 case 77: 01563 YY_RULE_SETUP 01564 #line 256 "scanner.ll" 01565 { 01566 yylval._int = ascii_to_longlong( 10, yytext ); 01567 return T_INTEGER_LITERAL; 01568 } 01569 YY_BREAK 01570 case 78: 01571 YY_RULE_SETUP 01572 #line 260 "scanner.ll" 01573 { 01574 yylval._int = ascii_to_longlong( 8, yytext ); 01575 return T_INTEGER_LITERAL; 01576 } 01577 YY_BREAK 01578 case 79: 01579 YY_RULE_SETUP 01580 #line 264 "scanner.ll" 01581 { 01582 yylval._int = ascii_to_longlong( 16, yytext + 2 ); 01583 return T_INTEGER_LITERAL; 01584 } 01585 YY_BREAK 01586 case 80: 01587 YY_RULE_SETUP 01588 #line 268 "scanner.ll" 01589 { 01590 QCString s( yytext ); 01591 s = s.mid( 1, s.length() - 2 ); 01592 yylval._char = translate_char( s ); 01593 return T_CHARACTER_LITERAL; 01594 } 01595 YY_BREAK 01596 case 81: 01597 YY_RULE_SETUP 01598 #line 274 "scanner.ll" 01599 { 01600 QString s( yytext ); 01601 yylval._str = new QString( s.mid( 1, s.length() - 2 ) ); 01602 return T_STRING_LITERAL; 01603 } 01604 YY_BREAK 01605 case 82: 01606 YY_RULE_SETUP 01607 #line 279 "scanner.ll" 01608 { 01609 if (function_mode) 01610 return yylex(); // call once again 01611 01612 qFatal("could not parse %c(%d) at line %d" , yytext[0], yytext[0], idl_line_no); 01613 return T_UNKNOWN; 01614 } 01615 YY_BREAK 01616 case 83: 01617 YY_RULE_SETUP 01618 #line 287 "scanner.ll" 01619 ECHO; 01620 YY_BREAK 01621 #line 1622 "scanner.cc" 01622 case YY_STATE_EOF(INITIAL): 01623 yyterminate(); 01624 01625 case YY_END_OF_BUFFER: 01626 { 01627 /* Amount of text matched not including the EOB char. */ 01628 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; 01629 01630 /* Undo the effects of YY_DO_BEFORE_ACTION. */ 01631 *yy_cp = yy_hold_char; 01632 YY_RESTORE_YY_MORE_OFFSET 01633 01634 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) 01635 { 01636 /* We're scanning a new file or input source. It's 01637 * possible that this happened because the user 01638 * just pointed yyin at a new source and called 01639 * yylex(). If so, then we have to assure 01640 * consistency between yy_current_buffer and our 01641 * globals. Here is the right place to do so, because 01642 * this is the first action (other than possibly a 01643 * back-up) that will match for the new input source. 01644 */ 01645 yy_n_chars = yy_current_buffer->yy_n_chars; 01646 yy_current_buffer->yy_input_file = yyin; 01647 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; 01648 } 01649 01650 /* Note that here we test for yy_c_buf_p "<=" to the position 01651 * of the first EOB in the buffer, since yy_c_buf_p will 01652 * already have been incremented past the NUL character 01653 * (since all states make transitions on EOB to the 01654 * end-of-buffer state). Contrast this with the test 01655 * in input(). 01656 */ 01657 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) 01658 { /* This was really a NUL. */ 01659 yy_state_type yy_next_state; 01660 01661 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; 01662 01663 yy_current_state = yy_get_previous_state(); 01664 01665 /* Okay, we're now positioned to make the NUL 01666 * transition. We couldn't have 01667 * yy_get_previous_state() go ahead and do it 01668 * for us because it doesn't know how to deal 01669 * with the possibility of jamming (and we don't 01670 * want to build jamming into it because then it 01671 * will run more slowly). 01672 */ 01673 01674 yy_next_state = yy_try_NUL_trans( yy_current_state ); 01675 01676 yy_bp = yytext_ptr + YY_MORE_ADJ; 01677 01678 if ( yy_next_state ) 01679 { 01680 /* Consume the NUL. */ 01681 yy_cp = ++yy_c_buf_p; 01682 yy_current_state = yy_next_state; 01683 goto yy_match; 01684 } 01685 01686 else 01687 { 01688 yy_cp = yy_c_buf_p; 01689 goto yy_find_action; 01690 } 01691 } 01692 01693 else switch ( yy_get_next_buffer() ) 01694 { 01695 case EOB_ACT_END_OF_FILE: 01696 { 01697 yy_did_buffer_switch_on_eof = 0; 01698 01699 if ( yywrap() ) 01700 { 01701 /* Note: because we've taken care in 01702 * yy_get_next_buffer() to have set up 01703 * yytext, we can now set up 01704 * yy_c_buf_p so that if some total 01705 * hoser (like flex itself) wants to 01706 * call the scanner after we return the 01707 * YY_NULL, it'll still work - another 01708 * YY_NULL will get returned. 01709 */ 01710 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; 01711 01712 yy_act = YY_STATE_EOF(YY_START); 01713 goto do_action; 01714 } 01715 01716 else 01717 { 01718 if ( ! yy_did_buffer_switch_on_eof ) 01719 YY_NEW_FILE; 01720 } 01721 break; 01722 } 01723 01724 case EOB_ACT_CONTINUE_SCAN: 01725 yy_c_buf_p = 01726 yytext_ptr + yy_amount_of_matched_text; 01727 01728 yy_current_state = yy_get_previous_state(); 01729 01730 yy_cp = yy_c_buf_p; 01731 yy_bp = yytext_ptr + YY_MORE_ADJ; 01732 goto yy_match; 01733 01734 case EOB_ACT_LAST_MATCH: 01735 yy_c_buf_p = 01736 &yy_current_buffer->yy_ch_buf[yy_n_chars]; 01737 01738 yy_current_state = yy_get_previous_state(); 01739 01740 yy_cp = yy_c_buf_p; 01741 yy_bp = yytext_ptr + YY_MORE_ADJ; 01742 goto yy_find_action; 01743 } 01744 break; 01745 } 01746 01747 default: 01748 YY_FATAL_ERROR( 01749 "fatal flex scanner internal error--no action found" ); 01750 } /* end of action switch */ 01751 } /* end of scanning one token */ 01752 } /* end of yylex */ 01753 01754 01755 /* yy_get_next_buffer - try to read in a new buffer 01756 * 01757 * Returns a code representing an action: 01758 * EOB_ACT_LAST_MATCH - 01759 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 01760 * EOB_ACT_END_OF_FILE - end of file 01761 */ 01762 01763 static int yy_get_next_buffer() 01764 { 01765 register char *dest = yy_current_buffer->yy_ch_buf; 01766 register char *source = yytext_ptr; 01767 register int number_to_move, i; 01768 int ret_val; 01769 01770 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) 01771 YY_FATAL_ERROR( 01772 "fatal flex scanner internal error--end of buffer missed" ); 01773 01774 if ( yy_current_buffer->yy_fill_buffer == 0 ) 01775 { /* Don't try to fill the buffer, so this is an EOF. */ 01776 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) 01777 { 01778 /* We matched a single character, the EOB, so 01779 * treat this as a final EOF. 01780 */ 01781 return EOB_ACT_END_OF_FILE; 01782 } 01783 01784 else 01785 { 01786 /* We matched some text prior to the EOB, first 01787 * process it. 01788 */ 01789 return EOB_ACT_LAST_MATCH; 01790 } 01791 } 01792 01793 /* Try to read more data. */ 01794 01795 /* First move last chars to start of buffer. */ 01796 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; 01797 01798 for ( i = 0; i < number_to_move; ++i ) 01799 *(dest++) = *(source++); 01800 01801 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 01802 /* don't do the read, it's not guaranteed to return an EOF, 01803 * just force an EOF 01804 */ 01805 yy_current_buffer->yy_n_chars = yy_n_chars = 0; 01806 01807 else 01808 { 01809 int num_to_read = 01810 yy_current_buffer->yy_buf_size - number_to_move - 1; 01811 01812 while ( num_to_read <= 0 ) 01813 { /* Not enough room in the buffer - grow it. */ 01814 #ifdef YY_USES_REJECT 01815 YY_FATAL_ERROR( 01816 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); 01817 #else 01818 01819 /* just a shorter name for the current buffer */ 01820 YY_BUFFER_STATE b = yy_current_buffer; 01821 01822 int yy_c_buf_p_offset = 01823 (int) (yy_c_buf_p - b->yy_ch_buf); 01824 01825 if ( b->yy_is_our_buffer ) 01826 { 01827 int new_size = b->yy_buf_size * 2; 01828 01829 if ( new_size <= 0 ) 01830 b->yy_buf_size += b->yy_buf_size / 8; 01831 else 01832 b->yy_buf_size *= 2; 01833 01834 b->yy_ch_buf = (char *) 01835 /* Include room in for 2 EOB chars. */ 01836 yy_flex_realloc( (void *) b->yy_ch_buf, 01837 b->yy_buf_size + 2 ); 01838 } 01839 else 01840 /* Can't grow it, we don't own it. */ 01841 b->yy_ch_buf = 0; 01842 01843 if ( ! b->yy_ch_buf ) 01844 YY_FATAL_ERROR( 01845 "fatal error - scanner input buffer overflow" ); 01846 01847 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; 01848 01849 num_to_read = yy_current_buffer->yy_buf_size - 01850 number_to_move - 1; 01851 #endif 01852 } 01853 01854 if ( num_to_read > YY_READ_BUF_SIZE ) 01855 num_to_read = YY_READ_BUF_SIZE; 01856 01857 /* Read in more data. */ 01858 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), 01859 yy_n_chars, num_to_read ); 01860 01861 yy_current_buffer->yy_n_chars = yy_n_chars; 01862 } 01863 01864 if ( yy_n_chars == 0 ) 01865 { 01866 if ( number_to_move == YY_MORE_ADJ ) 01867 { 01868 ret_val = EOB_ACT_END_OF_FILE; 01869 yyrestart( yyin ); 01870 } 01871 01872 else 01873 { 01874 ret_val = EOB_ACT_LAST_MATCH; 01875 yy_current_buffer->yy_buffer_status = 01876 YY_BUFFER_EOF_PENDING; 01877 } 01878 } 01879 01880 else 01881 ret_val = EOB_ACT_CONTINUE_SCAN; 01882 01883 yy_n_chars += number_to_move; 01884 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; 01885 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; 01886 01887 yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; 01888 01889 return ret_val; 01890 } 01891 01892 01893 /* yy_get_previous_state - get the state just before the EOB char was reached */ 01894 01895 static yy_state_type yy_get_previous_state() 01896 { 01897 register yy_state_type yy_current_state; 01898 register char *yy_cp; 01899 01900 yy_current_state = yy_start; 01901 yy_state_ptr = yy_state_buf; 01902 *yy_state_ptr++ = yy_current_state; 01903 01904 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) 01905 { 01906 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 01907 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 01908 { 01909 yy_current_state = (int) yy_def[yy_current_state]; 01910 if ( yy_current_state >= 311 ) 01911 yy_c = yy_meta[(unsigned int) yy_c]; 01912 } 01913 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 01914 *yy_state_ptr++ = yy_current_state; 01915 } 01916 01917 return yy_current_state; 01918 } 01919 01920 01921 /* yy_try_NUL_trans - try to make a transition on the NUL character 01922 * 01923 * synopsis 01924 * next_state = yy_try_NUL_trans( current_state ); 01925 */ 01926 01927 #ifdef YY_USE_PROTOS 01928 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) 01929 #else 01930 static yy_state_type yy_try_NUL_trans( yy_current_state ) 01931 yy_state_type yy_current_state; 01932 #endif 01933 { 01934 register int yy_is_jam; 01935 01936 register YY_CHAR yy_c = 1; 01937 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 01938 { 01939 yy_current_state = (int) yy_def[yy_current_state]; 01940 if ( yy_current_state >= 311 ) 01941 yy_c = yy_meta[(unsigned int) yy_c]; 01942 } 01943 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 01944 yy_is_jam = (yy_current_state == 310); 01945 if ( ! yy_is_jam ) 01946 *yy_state_ptr++ = yy_current_state; 01947 01948 return yy_is_jam ? 0 : yy_current_state; 01949 } 01950 01951 01952 #ifndef YY_NO_UNPUT 01953 #ifdef YY_USE_PROTOS 01954 static void yyunput( int c, register char *yy_bp ) 01955 #else 01956 static void yyunput( c, yy_bp ) 01957 int c; 01958 register char *yy_bp; 01959 #endif 01960 { 01961 register char *yy_cp = yy_c_buf_p; 01962 01963 /* undo effects of setting up yytext */ 01964 *yy_cp = yy_hold_char; 01965 01966 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) 01967 { /* need to shift things up to make room */ 01968 /* +2 for EOB chars. */ 01969 register int number_to_move = yy_n_chars + 2; 01970 register char *dest = &yy_current_buffer->yy_ch_buf[ 01971 yy_current_buffer->yy_buf_size + 2]; 01972 register char *source = 01973 &yy_current_buffer->yy_ch_buf[number_to_move]; 01974 01975 while ( source > yy_current_buffer->yy_ch_buf ) 01976 *--dest = *--source; 01977 01978 yy_cp += (int) (dest - source); 01979 yy_bp += (int) (dest - source); 01980 yy_current_buffer->yy_n_chars = 01981 yy_n_chars = yy_current_buffer->yy_buf_size; 01982 01983 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) 01984 YY_FATAL_ERROR( "flex scanner push-back overflow" ); 01985 } 01986 01987 *--yy_cp = (char) c; 01988 01989 01990 yytext_ptr = yy_bp; 01991 yy_hold_char = *yy_cp; 01992 yy_c_buf_p = yy_cp; 01993 } 01994 #endif /* ifndef YY_NO_UNPUT */ 01995 01996 01997 #ifdef __cplusplus 01998 static int yyinput() 01999 #else 02000 static int input() 02001 #endif 02002 { 02003 int c; 02004 02005 *yy_c_buf_p = yy_hold_char; 02006 02007 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) 02008 { 02009 /* yy_c_buf_p now points to the character we want to return. 02010 * If this occurs *before* the EOB characters, then it's a 02011 * valid NUL; if not, then we've hit the end of the buffer. 02012 */ 02013 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) 02014 /* This was really a NUL. */ 02015 *yy_c_buf_p = '\0'; 02016 02017 else 02018 { /* need more input */ 02019 int offset = yy_c_buf_p - yytext_ptr; 02020 ++yy_c_buf_p; 02021 02022 switch ( yy_get_next_buffer() ) 02023 { 02024 case EOB_ACT_LAST_MATCH: 02025 /* This happens because yy_g_n_b() 02026 * sees that we've accumulated a 02027 * token and flags that we need to 02028 * try matching the token before 02029 * proceeding. But for input(), 02030 * there's no matching to consider. 02031 * So convert the EOB_ACT_LAST_MATCH 02032 * to EOB_ACT_END_OF_FILE. 02033 */ 02034 02035 /* Reset buffer status. */ 02036 yyrestart( yyin ); 02037 02038 /* fall through */ 02039 02040 case EOB_ACT_END_OF_FILE: 02041 { 02042 if ( yywrap() ) 02043 return EOF; 02044 02045 if ( ! yy_did_buffer_switch_on_eof ) 02046 YY_NEW_FILE; 02047 #ifdef __cplusplus 02048 return yyinput(); 02049 #else 02050 return input(); 02051 #endif 02052 } 02053 02054 case EOB_ACT_CONTINUE_SCAN: 02055 yy_c_buf_p = yytext_ptr + offset; 02056 break; 02057 } 02058 } 02059 } 02060 02061 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ 02062 *yy_c_buf_p = '\0'; /* preserve yytext */ 02063 yy_hold_char = *++yy_c_buf_p; 02064 02065 02066 return c; 02067 } 02068 02069 02070 #ifdef YY_USE_PROTOS 02071 void yyrestart( FILE *input_file ) 02072 #else 02073 void yyrestart( input_file ) 02074 FILE *input_file; 02075 #endif 02076 { 02077 if ( ! yy_current_buffer ) 02078 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); 02079 02080 yy_init_buffer( yy_current_buffer, input_file ); 02081 yy_load_buffer_state(); 02082 } 02083 02084 02085 #ifdef YY_USE_PROTOS 02086 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) 02087 #else 02088 void yy_switch_to_buffer( new_buffer ) 02089 YY_BUFFER_STATE new_buffer; 02090 #endif 02091 { 02092 if ( yy_current_buffer == new_buffer ) 02093 return; 02094 02095 if ( yy_current_buffer ) 02096 { 02097 /* Flush out information for old buffer. */ 02098 *yy_c_buf_p = yy_hold_char; 02099 yy_current_buffer->yy_buf_pos = yy_c_buf_p; 02100 yy_current_buffer->yy_n_chars = yy_n_chars; 02101 } 02102 02103 yy_current_buffer = new_buffer; 02104 yy_load_buffer_state(); 02105 02106 /* We don't actually know whether we did this switch during 02107 * EOF (yywrap()) processing, but the only time this flag 02108 * is looked at is after yywrap() is called, so it's safe 02109 * to go ahead and always set it. 02110 */ 02111 yy_did_buffer_switch_on_eof = 1; 02112 } 02113 02114 02115 #ifdef YY_USE_PROTOS 02116 void yy_load_buffer_state( void ) 02117 #else 02118 void yy_load_buffer_state() 02119 #endif 02120 { 02121 yy_n_chars = yy_current_buffer->yy_n_chars; 02122 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; 02123 yyin = yy_current_buffer->yy_input_file; 02124 yy_hold_char = *yy_c_buf_p; 02125 } 02126 02127 02128 #ifdef YY_USE_PROTOS 02129 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) 02130 #else 02131 YY_BUFFER_STATE yy_create_buffer( file, size ) 02132 FILE *file; 02133 int size; 02134 #endif 02135 { 02136 YY_BUFFER_STATE b; 02137 02138 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); 02139 if ( ! b ) 02140 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 02141 02142 b->yy_buf_size = size; 02143 02144 /* yy_ch_buf has to be 2 characters longer than the size given because 02145 * we need to put in 2 end-of-buffer characters. 02146 */ 02147 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); 02148 if ( ! b->yy_ch_buf ) 02149 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 02150 02151 b->yy_is_our_buffer = 1; 02152 02153 yy_init_buffer( b, file ); 02154 02155 return b; 02156 } 02157 02158 02159 #ifdef YY_USE_PROTOS 02160 void yy_delete_buffer( YY_BUFFER_STATE b ) 02161 #else 02162 void yy_delete_buffer( b ) 02163 YY_BUFFER_STATE b; 02164 #endif 02165 { 02166 if ( ! b ) 02167 return; 02168 02169 if ( b == yy_current_buffer ) 02170 yy_current_buffer = (YY_BUFFER_STATE) 0; 02171 02172 if ( b->yy_is_our_buffer ) 02173 yy_flex_free( (void *) b->yy_ch_buf ); 02174 02175 yy_flex_free( (void *) b ); 02176 } 02177 02178 02179 #ifndef YY_ALWAYS_INTERACTIVE 02180 #ifndef YY_NEVER_INTERACTIVE 02181 extern int isatty YY_PROTO(( int )); 02182 #endif 02183 #endif 02184 02185 #ifdef YY_USE_PROTOS 02186 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) 02187 #else 02188 void yy_init_buffer( b, file ) 02189 YY_BUFFER_STATE b; 02190 FILE *file; 02191 #endif 02192 02193 02194 { 02195 yy_flush_buffer( b ); 02196 02197 b->yy_input_file = file; 02198 b->yy_fill_buffer = 1; 02199 02200 #if YY_ALWAYS_INTERACTIVE 02201 b->yy_is_interactive = 1; 02202 #else 02203 #if YY_NEVER_INTERACTIVE 02204 b->yy_is_interactive = 0; 02205 #else 02206 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 02207 #endif 02208 #endif 02209 } 02210 02211 02212 #ifdef YY_USE_PROTOS 02213 void yy_flush_buffer( YY_BUFFER_STATE b ) 02214 #else 02215 void yy_flush_buffer( b ) 02216 YY_BUFFER_STATE b; 02217 #endif 02218 02219 { 02220 if ( ! b ) 02221 return; 02222 02223 b->yy_n_chars = 0; 02224 02225 /* We always need two end-of-buffer characters. The first causes 02226 * a transition to the end-of-buffer state. The second causes 02227 * a jam in that state. 02228 */ 02229 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 02230 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 02231 02232 b->yy_buf_pos = &b->yy_ch_buf[0]; 02233 02234 b->yy_at_bol = 1; 02235 b->yy_buffer_status = YY_BUFFER_NEW; 02236 02237 if ( b == yy_current_buffer ) 02238 yy_load_buffer_state(); 02239 } 02240 02241 02242 #ifndef YY_NO_SCAN_BUFFER 02243 #ifdef YY_USE_PROTOS 02244 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) 02245 #else 02246 YY_BUFFER_STATE yy_scan_buffer( base, size ) 02247 char *base; 02248 yy_size_t size; 02249 #endif 02250 { 02251 YY_BUFFER_STATE b; 02252 02253 if ( size < 2 || 02254 base[size-2] != YY_END_OF_BUFFER_CHAR || 02255 base[size-1] != YY_END_OF_BUFFER_CHAR ) 02256 /* They forgot to leave room for the EOB's. */ 02257 return 0; 02258 02259 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); 02260 if ( ! b ) 02261 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); 02262 02263 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ 02264 b->yy_buf_pos = b->yy_ch_buf = base; 02265 b->yy_is_our_buffer = 0; 02266 b->yy_input_file = 0; 02267 b->yy_n_chars = b->yy_buf_size; 02268 b->yy_is_interactive = 0; 02269 b->yy_at_bol = 1; 02270 b->yy_fill_buffer = 0; 02271 b->yy_buffer_status = YY_BUFFER_NEW; 02272 02273 yy_switch_to_buffer( b ); 02274 02275 return b; 02276 } 02277 #endif 02278 02279 02280 #ifndef YY_NO_SCAN_STRING 02281 #ifdef YY_USE_PROTOS 02282 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) 02283 #else 02284 YY_BUFFER_STATE yy_scan_string( yy_str ) 02285 yyconst char *yy_str; 02286 #endif 02287 { 02288 int len; 02289 for ( len = 0; yy_str[len]; ++len ) 02290 ; 02291 02292 return yy_scan_bytes( yy_str, len ); 02293 } 02294 #endif 02295 02296 02297 #ifndef YY_NO_SCAN_BYTES 02298 #ifdef YY_USE_PROTOS 02299 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) 02300 #else 02301 YY_BUFFER_STATE yy_scan_bytes( bytes, len ) 02302 yyconst char *bytes; 02303 int len; 02304 #endif 02305 { 02306 YY_BUFFER_STATE b; 02307 char *buf; 02308 yy_size_t n; 02309 int i; 02310 02311 /* Get memory for full buffer, including space for trailing EOB's. */ 02312 n = len + 2; 02313 buf = (char *) yy_flex_alloc( n ); 02314 if ( ! buf ) 02315 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); 02316 02317 for ( i = 0; i < len; ++i ) 02318 buf[i] = bytes[i]; 02319 02320 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; 02321 02322 b = yy_scan_buffer( buf, n ); 02323 if ( ! b ) 02324 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); 02325 02326 /* It's okay to grow etc. this buffer, and we should throw it 02327 * away when we're done. 02328 */ 02329 b->yy_is_our_buffer = 1; 02330 02331 return b; 02332 } 02333 #endif 02334 02335 02336 #ifndef YY_NO_PUSH_STATE 02337 #ifdef YY_USE_PROTOS 02338 static void yy_push_state( int new_state ) 02339 #else 02340 static void yy_push_state( new_state ) 02341 int new_state; 02342 #endif 02343 { 02344 if ( yy_start_stack_ptr >= yy_start_stack_depth ) 02345 { 02346 yy_size_t new_size; 02347 02348 yy_start_stack_depth += YY_START_STACK_INCR; 02349 new_size = yy_start_stack_depth * sizeof( int ); 02350 02351 if ( ! yy_start_stack ) 02352 yy_start_stack = (int *) yy_flex_alloc( new_size ); 02353 02354 else 02355 yy_start_stack = (int *) yy_flex_realloc( 02356 (void *) yy_start_stack, new_size ); 02357 02358 if ( ! yy_start_stack ) 02359 YY_FATAL_ERROR( 02360 "out of memory expanding start-condition stack" ); 02361 } 02362 02363 yy_start_stack[yy_start_stack_ptr++] = YY_START; 02364 02365 BEGIN(new_state); 02366 } 02367 #endif 02368 02369 02370 #ifndef YY_NO_POP_STATE 02371 static void yy_pop_state() 02372 { 02373 if ( --yy_start_stack_ptr < 0 ) 02374 YY_FATAL_ERROR( "start-condition stack underflow" ); 02375 02376 BEGIN(yy_start_stack[yy_start_stack_ptr]); 02377 } 02378 #endif 02379 02380 02381 #ifndef YY_NO_TOP_STATE 02382 static int yy_top_state() 02383 { 02384 return yy_start_stack[yy_start_stack_ptr - 1]; 02385 } 02386 #endif 02387 02388 #ifndef YY_EXIT_FAILURE 02389 #define YY_EXIT_FAILURE 2 02390 #endif 02391 02392 #ifdef YY_USE_PROTOS 02393 static void yy_fatal_error( yyconst char msg[] ) 02394 #else 02395 static void yy_fatal_error( msg ) 02396 char msg[]; 02397 #endif 02398 { 02399 (void) fprintf( stderr, "%s\n", msg ); 02400 exit( YY_EXIT_FAILURE ); 02401 } 02402 02403 02404 02405 /* Redefine yyless() so it works in section 3 code. */ 02406 02407 #undef yyless 02408 #define yyless(n) \ 02409 do \ 02410 { \ 02411 /* Undo effects of setting up yytext. */ \ 02412 yytext[yyleng] = yy_hold_char; \ 02413 yy_c_buf_p = yytext + n; \ 02414 yy_hold_char = *yy_c_buf_p; \ 02415 *yy_c_buf_p = '\0'; \ 02416 yyleng = n; \ 02417 } \ 02418 while ( 0 ) 02419 02420 02421 /* Internal utility routines. */ 02422 02423 #ifndef yytext_ptr 02424 #ifdef YY_USE_PROTOS 02425 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) 02426 #else 02427 static void yy_flex_strncpy( s1, s2, n ) 02428 char *s1; 02429 yyconst char *s2; 02430 int n; 02431 #endif 02432 { 02433 register int i; 02434 for ( i = 0; i < n; ++i ) 02435 s1[i] = s2[i]; 02436 } 02437 #endif 02438 02439 #ifdef YY_NEED_STRLEN 02440 #ifdef YY_USE_PROTOS 02441 static int yy_flex_strlen( yyconst char *s ) 02442 #else 02443 static int yy_flex_strlen( s ) 02444 yyconst char *s; 02445 #endif 02446 { 02447 register int n; 02448 for ( n = 0; s[n]; ++n ) 02449 ; 02450 02451 return n; 02452 } 02453 #endif 02454 02455 02456 #ifdef YY_USE_PROTOS 02457 static void *yy_flex_alloc( yy_size_t size ) 02458 #else 02459 static void *yy_flex_alloc( size ) 02460 yy_size_t size; 02461 #endif 02462 { 02463 return (void *) malloc( size ); 02464 } 02465 02466 #ifdef YY_USE_PROTOS 02467 static void *yy_flex_realloc( void *ptr, yy_size_t size ) 02468 #else 02469 static void *yy_flex_realloc( ptr, size ) 02470 void *ptr; 02471 yy_size_t size; 02472 #endif 02473 { 02474 /* The cast to (char *) in the following accommodates both 02475 * implementations that use char* generic pointers, and those 02476 * that use void* generic pointers. It works with the latter 02477 * because both ANSI C and C++ allow castless assignment from 02478 * any pointer type to void*, and deal with argument conversions 02479 * as though doing an assignment. 02480 */ 02481 return (void *) realloc( (char *) ptr, size ); 02482 } 02483 02484 #ifdef YY_USE_PROTOS 02485 static void yy_flex_free( void *ptr ) 02486 #else 02487 static void yy_flex_free( ptr ) 02488 void *ptr; 02489 #endif 02490 { 02491 free( ptr ); 02492 } 02493 02494 #if YY_MAIN 02495 int main() 02496 { 02497 yylex(); 02498 return 0; 02499 } 02500 #endif 02501 #line 287 "scanner.ll" 02502 02503 02504 void dcopidlInitFlex( const char *_code ) 02505 { 02506 comment_mode = 0; 02507 yy_switch_to_buffer( yy_scan_string( _code ) ); 02508 }
KDE Logo
This file is part of the documentation for dcop Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Sep 29 09:39:48 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003