lib 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/koffice/lib/koscript/scanner.cc,v 1.21 2002/08/19 11:31:58 ariya 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 103 00292 #define YY_END_OF_BUFFER 104 00293 static yyconst short int yy_acclist[550] = 00294 { 0, 00295 104, 102, 103, 1, 102, 103, 2, 103, 27, 102, 00296 103, 102, 103, 5, 102, 103, 51, 102, 103, 36, 00297 102, 103, 41, 102, 103, 102, 103, 18, 102, 103, 00298 19, 102, 103, 34, 102, 103, 32, 102, 103, 33, 00299 102, 103, 47, 102, 103, 35, 102, 103, 98, 102, 00300 103, 102, 103, 20, 102, 103, 45, 102, 103, 28, 00301 102, 103, 46, 102, 103, 84, 102, 103, 84, 102, 00302 103, 84, 102, 103, 16, 102, 103, 17, 102, 103, 00303 40, 102, 103, 84, 102, 103, 84, 102, 103, 84, 00304 102, 103, 84, 102, 103, 84, 102, 103, 84, 102, 00305 00306 103, 84, 102, 103, 84, 102, 103, 84, 102, 103, 00307 84, 102, 103, 84, 102, 103, 84, 102, 103, 84, 00308 102, 103, 14, 102, 103, 39, 102, 103, 15, 102, 00309 103, 37, 102, 103, 102, 103, 102, 103, 47, 102, 00310 103, 98, 102, 103, 91, 102, 103, 23, 102, 103, 00311 21, 102, 103, 47, 102, 103, 98, 102, 103, 97, 00312 102, 103, 22, 102, 103, 53, 102, 103, 1, 53, 00313 102, 103, 27, 53, 102, 103, 53, 102, 103, 5, 00314 53, 102, 103, 51, 53, 102, 103, 36, 53, 102, 00315 103, 41, 53, 102, 103, 53, 102, 103, 18, 53, 00316 00317 102, 103, 19, 53, 102, 103, 34, 53, 102, 103, 00318 32, 53, 102, 103, 33, 53, 102, 103, 47, 53, 00319 102, 103, 35, 53, 102, 103, 52, 53, 98, 102, 00320 103, 52, 53, 102, 103, 20, 53, 102, 103, 45, 00321 53, 102, 103, 28, 53, 102, 103, 46, 53, 102, 00322 103, 53, 84, 102, 103, 53, 84, 102, 103, 53, 00323 84, 102, 103, 16, 53, 102, 103, 17, 53, 102, 00324 103, 40, 53, 102, 103, 53, 84, 102, 103, 53, 00325 84, 102, 103, 53, 84, 102, 103, 53, 84, 102, 00326 103, 53, 84, 102, 103, 53, 84, 102, 103, 53, 00327 00328 84, 102, 103, 53, 84, 102, 103, 53, 84, 102, 00329 103, 53, 84, 102, 103, 53, 84, 102, 103, 53, 00330 84, 102, 103, 53, 84, 102, 103, 14, 53, 102, 00331 103, 39, 53, 102, 103, 15, 53, 102, 103, 37, 00332 53, 102, 103, 53, 102, 103, 25, 101, 5, 4, 00333 5, 50, 42, 81, 48, 82, 49, 3,16392, 98, 00334 99, 83, 31, 43, 26, 29, 24, 44, 30, 9, 00335 84, 84, 84, 84, 84, 84, 84, 84, 67, 84, 00336 84, 84, 84, 84, 84, 69, 84, 84, 64, 84, 00337 84, 84, 84, 84, 84, 84, 84, 84, 84, 38, 00338 00339 89, 89, 98, 91, 95, 98, 97, 4, 5, 9, 00340 100,16392, 3, 8200, 8200, 3, 3, 99, 84, 84, 00341 84, 84, 84, 84, 84, 84, 84, 68, 84, 84, 00342 84, 84, 84, 65, 84, 84, 84, 84, 84, 84, 00343 77, 84, 75, 84, 84, 13, 100, 88, 88, 87, 00344 88, 88, 94, 93, 7, 84, 56, 84, 61, 84, 00345 84, 84, 84, 70, 84, 63, 84, 84, 84, 80, 00346 84, 84, 84, 71, 84, 84, 84, 84, 84, 58, 00347 84, 84, 13, 90, 90, 88, 88, 87, 88, 88, 00348 96, 93, 10, 11, 55, 84, 78, 84, 54, 84, 00349 00350 84, 57, 84, 84, 84, 76, 84, 79, 84, 84, 00351 84, 84, 66, 84, 88, 86, 88, 86, 85, 85, 00352 88, 85, 88, 96, 92, 6, 84, 84, 74, 84, 00353 73, 84, 59, 84, 60, 84, 88, 88, 92, 62, 00354 84, 72, 84, 86, 87, 86, 87, 12, 85 00355 } ; 00356 00357 static yyconst short int yy_accept[367] = 00358 { 0, 00359 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 00360 4, 7, 9, 12, 14, 17, 20, 23, 26, 28, 00361 31, 34, 37, 40, 43, 46, 49, 52, 54, 57, 00362 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 00363 90, 93, 96, 99, 102, 105, 108, 111, 114, 117, 00364 120, 123, 126, 129, 132, 135, 137, 139, 142, 145, 00365 148, 151, 154, 157, 160, 163, 166, 169, 173, 177, 00366 180, 184, 188, 192, 196, 199, 203, 207, 211, 215, 00367 219, 223, 227, 232, 236, 240, 244, 248, 252, 256, 00368 260, 264, 268, 272, 276, 280, 284, 288, 292, 296, 00369 00370 300, 304, 308, 312, 316, 320, 324, 328, 332, 336, 00371 340, 344, 347, 348, 348, 349, 349, 350, 352, 352, 00372 353, 354, 354, 354, 355, 356, 357, 358, 358, 358, 00373 358, 360, 360, 361, 362, 363, 364, 365, 367, 368, 00374 368, 369, 370, 370, 372, 373, 374, 375, 376, 377, 00375 378, 379, 381, 382, 383, 384, 385, 386, 388, 389, 00376 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 00377 401, 401, 402, 403, 403, 403, 403, 404, 404, 404, 00378 404, 404, 404, 405, 406, 406, 407, 407, 407, 408, 00379 408, 408, 410, 411, 412, 412, 412, 412, 413, 415, 00380 00381 416, 417, 418, 419, 419, 419, 419, 419, 420, 421, 00382 422, 423, 424, 425, 426, 427, 428, 430, 431, 432, 00383 433, 434, 436, 437, 438, 439, 440, 441, 443, 445, 00384 446, 448, 448, 448, 448, 448, 449, 450, 450, 451, 00385 451, 452, 453, 453, 454, 454, 455, 455, 455, 455, 00386 455, 455, 455, 455, 455, 456, 456, 456, 456, 456, 00387 457, 459, 461, 462, 463, 464, 466, 468, 469, 470, 00388 472, 473, 474, 476, 477, 478, 479, 480, 482, 483, 00389 484, 484, 485, 486, 486, 487, 487, 488, 488, 489, 00390 489, 490, 491, 491, 492, 492, 493, 493, 493, 493, 00391 00392 493, 494, 494, 494, 494, 494, 495, 497, 499, 501, 00393 502, 504, 505, 506, 508, 510, 511, 512, 513, 515, 00394 515, 516, 516, 517, 518, 519, 520, 522, 524, 525, 00395 525, 526, 526, 526, 527, 527, 528, 529, 531, 533, 00396 535, 537, 537, 538, 538, 539, 539, 539, 540, 540, 00397 540, 542, 544, 544, 544, 546, 548, 548, 548, 549, 00398 549, 549, 549, 550, 550, 550 00399 } ; 00400 00401 static yyconst int yy_ec[256] = 00402 { 0, 00403 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 00404 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00405 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00406 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 00407 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, 00408 21, 21, 21, 21, 21, 22, 22, 23, 24, 25, 00409 26, 27, 28, 1, 29, 30, 30, 30, 31, 32, 00410 33, 33, 33, 33, 33, 34, 33, 33, 33, 33, 00411 33, 35, 36, 37, 38, 33, 33, 39, 33, 33, 00412 40, 41, 42, 43, 44, 1, 45, 46, 47, 48, 00413 00414 49, 50, 33, 51, 52, 33, 33, 53, 54, 55, 00415 56, 57, 33, 58, 59, 60, 61, 62, 63, 64, 00416 65, 33, 66, 67, 68, 69, 1, 70, 70, 70, 00417 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 00418 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 00419 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 00420 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 00421 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 00422 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 00423 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 00424 00425 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 00426 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 00427 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 00428 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 00429 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 00430 70, 70, 70, 70, 70 00431 } ; 00432 00433 static yyconst int yy_meta[71] = 00434 { 0, 00435 1, 2, 3, 4, 1, 5, 1, 6, 1, 1, 00436 7, 8, 1, 1, 1, 1, 1, 9, 1, 10, 00437 10, 11, 1, 1, 1, 1, 1, 5, 12, 12, 00438 12, 12, 13, 13, 13, 13, 13, 13, 14, 1, 00439 5, 1, 1, 15, 16, 16, 12, 12, 12, 16, 00440 13, 13, 13, 13, 14, 13, 13, 14, 13, 14, 00441 14, 14, 13, 14, 13, 1, 1, 1, 1, 17 00442 } ; 00443 00444 static yyconst short int yy_base[388] = 00445 { 0, 00446 0, 0, 60, 72, 79, 86, 110, 0, 877, 1660, 00447 1660, 1660, 843, 68, 853, 789, 1660, 816, 745, 1660, 00448 1660, 1660, 60, 72, 773, 162, 178, 767, 747, 158, 00449 160, 46, 184, 189, 50, 1660, 1660, 1660, 183, 167, 00450 165, 160, 179, 190, 171, 161, 198, 197, 162, 196, 00451 201, 1660, 701, 1660, 1660, 260, 228, 327, 334, 341, 00452 1660, 1660, 347, 360, 321, 1660, 1660, 1660, 741, 230, 00453 754, 713, 1660, 717, 672, 1660, 1660, 1660, 236, 229, 00454 706, 215, 354, 700, 671, 307, 169, 205, 656, 0, 00455 311, 1660, 1660, 1660, 335, 341, 350, 348, 355, 360, 00456 00457 342, 359, 363, 365, 308, 378, 366, 1660, 582, 1660, 00458 1660, 643, 1660, 390, 1660, 401, 0, 0, 416, 1660, 00459 1660, 634, 406, 1660, 1660, 1660, 1660, 620, 331, 400, 00460 470, 0, 428, 537, 1660, 1660, 1660, 1660, 1660, 541, 00461 1660, 1660, 422, 557, 234, 545, 424, 425, 542, 541, 00462 543, 430, 547, 559, 560, 568, 569, 576, 585, 587, 00463 589, 590, 594, 599, 602, 603, 604, 605, 606, 1660, 00464 592, 617, 652, 430, 435, 657, 612, 647, 676, 667, 00465 446, 695, 586, 698, 701, 631, 687, 720, 723, 728, 00466 0, 0, 533, 1660, 601, 0, 543, 540, 787, 1660, 00467 00468 0, 0, 0, 625, 420, 524, 456, 725, 707, 704, 00469 635, 726, 727, 734, 745, 776, 802, 755, 803, 685, 00470 811, 625, 812, 813, 814, 816, 815, 747, 753, 817, 00471 1660, 451, 758, 863, 868, 803, 877, 744, 882, 889, 00472 816, 896, 908, 915, 828, 927, 901, 959, 885, 435, 00473 408, 930, 400, 428, 1660, 399, 634, 336, 933, 928, 00474 834, 886, 934, 938, 953, 939, 955, 964, 957, 965, 00475 966, 967, 968, 970, 972, 982, 987, 1007, 1010, 1660, 00476 840, 1000, 1021, 1027, 1024, 1036, 1056, 1064, 1042, 1070, 00477 1073, 1078, 1045, 1092, 1103, 1050, 873, 977, 247, 1081, 00478 00479 1108, 915, 1009, 102, 1095, 1112, 1106, 1114, 1116, 1121, 00480 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1139, 1141, 1151, 00481 1155, 1127, 1131, 1167, 1190, 1187, 1197, 1216, 1163, 1202, 00482 1221, 83, 1069, 1660, 84, 1173, 1152, 1191, 1200, 1222, 00483 1225, 1228, 1235, 1247, 1254, 1266, 1257, 1269, 69, 1272, 00484 1234, 1267, 1277, 1280, 1284, 1303, 1289, 1292, 1295, 1298, 00485 1306, 1317, 1318, 1322, 1660, 1367, 1384, 1390, 1406, 1420, 00486 1437, 1451, 1465, 1478, 1494, 1507, 1517, 1525, 1532, 1543, 00487 1559, 1576, 1588, 1598, 1614, 1631, 1643 00488 } ; 00489 00490 static yyconst short int yy_def[388] = 00491 { 0, 00492 365, 1, 1, 1, 1, 1, 365, 7, 365, 365, 00493 365, 365, 365, 366, 367, 368, 365, 365, 369, 365, 00494 365, 365, 365, 365, 370, 371, 370, 370, 365, 365, 00495 365, 365, 372, 372, 34, 365, 365, 365, 373, 34, 00496 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 00497 34, 365, 365, 365, 365, 365, 365, 370, 370, 370, 00498 365, 365, 370, 59, 64, 365, 365, 365, 365, 366, 00499 367, 368, 365, 365, 369, 365, 365, 365, 365, 365, 00500 370, 371, 370, 370, 365, 365, 365, 365, 34, 34, 00501 34, 365, 365, 365, 373, 34, 34, 34, 34, 34, 00502 00503 34, 34, 34, 34, 34, 34, 34, 365, 365, 365, 00504 365, 370, 365, 366, 365, 374, 367, 375, 368, 365, 00505 365, 365, 376, 365, 365, 365, 365, 370, 370, 371, 00506 365, 371, 370, 370, 365, 365, 365, 365, 365, 365, 00507 365, 365, 365, 373, 34, 373, 34, 34, 34, 34, 00508 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 00509 34, 34, 34, 34, 34, 34, 34, 34, 34, 365, 00510 377, 365, 370, 370, 365, 370, 59, 59, 370, 370, 00511 365, 370, 60, 370, 370, 64, 64, 370, 64, 366, 00512 378, 375, 365, 365, 365, 379, 380, 381, 131, 365, 00513 00514 131, 199, 134, 365, 382, 365, 383, 34, 34, 34, 00515 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 00516 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 00517 365, 377, 365, 370, 370, 365, 370, 365, 370, 370, 00518 365, 370, 370, 370, 365, 370, 366, 366, 365, 384, 00519 380, 380, 381, 382, 365, 382, 385, 383, 383, 34, 00520 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 00521 34, 34, 34, 34, 34, 34, 34, 34, 34, 365, 00522 365, 365, 370, 370, 365, 365, 370, 370, 365, 370, 00523 365, 370, 365, 370, 370, 365, 366, 366, 365, 365, 00524 00525 365, 385, 386, 385, 365, 365, 34, 34, 34, 34, 00526 34, 34, 34, 34, 34, 34, 34, 34, 34, 370, 00527 365, 365, 365, 59, 370, 60, 365, 60, 365, 365, 00528 370, 387, 386, 365, 386, 34, 34, 34, 34, 34, 00529 34, 365, 365, 365, 370, 370, 365, 365, 387, 387, 00530 34, 34, 365, 365, 365, 370, 365, 365, 365, 365, 00531 365, 365, 365, 365, 0, 365, 365, 365, 365, 365, 00532 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00533 365, 365, 365, 365, 365, 365, 365 00534 } ; 00535 00536 static yyconst short int yy_nxt[1731] = 00537 { 0, 00538 10, 11, 12, 11, 13, 14, 15, 16, 17, 18, 00539 19, 20, 21, 22, 23, 10, 24, 25, 26, 27, 00540 28, 28, 29, 10, 30, 31, 32, 10, 33, 33, 00541 33, 34, 33, 33, 33, 33, 35, 33, 33, 36, 00542 10, 37, 38, 39, 33, 33, 40, 41, 42, 43, 00543 33, 44, 33, 45, 33, 46, 33, 47, 48, 49, 00544 33, 50, 51, 33, 33, 52, 53, 54, 55, 28, 00545 56, 141, 142, 115, 124, 57, 365, 58, 145, 59, 00546 60, 60, 56, 61, 148, 125, 365, 57, 126, 58, 00547 349, 59, 60, 60, 62, 61, 63, 127, 64, 65, 00548 00549 65, 62, 66, 63, 365, 64, 65, 65, 116, 66, 00550 67, 68, 12, 68, 69, 70, 71, 72, 73, 74, 00551 75, 76, 77, 78, 79, 67, 80, 81, 82, 83, 00552 84, 84, 85, 67, 86, 87, 88, 67, 89, 89, 00553 89, 90, 89, 89, 89, 89, 91, 89, 89, 92, 00554 67, 93, 94, 95, 89, 89, 96, 97, 98, 99, 00555 89, 100, 89, 101, 89, 102, 89, 103, 104, 105, 00556 89, 106, 107, 89, 89, 108, 109, 110, 111, 112, 00557 131, 128, 136, 137, 138, 139, 128, 128, 145, 145, 00558 145, 143, 128, 145, 139, 145, 143, 133, 133, 145, 00559 00560 129, 129, 132, 144, 144, 144, 129, 145, 144, 144, 00561 144, 149, 153, 151, 154, 161, 134, 147, 145, 167, 00562 152, 162, 150, 155, 145, 145, 145, 146, 140, 145, 00563 141, 142, 146, 131, 156, 115, 157, 140, 197, 158, 00564 168, 134, 163, 159, 160, 126, 164, 172, 172, 172, 00565 124, 169, 129, 129, 127, 132, 165, 194, 129, 166, 00566 122, 125, 145, 122, 122, 122, 122, 122, 122, 122, 00567 116, 122, 122, 122, 122, 122, 122, 122, 122, 122, 00568 122, 122, 122, 122, 122, 122, 122, 122, 171, 171, 00569 171, 171, 171, 171, 171, 171, 171, 171, 171, 122, 00570 00571 123, 122, 122, 122, 171, 171, 171, 171, 171, 171, 00572 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, 00573 171, 171, 171, 171, 171, 122, 122, 122, 122, 171, 00574 128, 136, 137, 138, 128, 197, 145, 174, 128, 145, 00575 189, 189, 189, 365, 180, 148, 173, 173, 173, 175, 00576 128, 176, 129, 177, 177, 178, 181, 128, 182, 129, 00577 183, 183, 183, 128, 179, 167, 184, 184, 184, 145, 00578 145, 179, 134, 133, 133, 365, 145, 185, 145, 186, 00579 186, 187, 179, 145, 129, 149, 161, 145, 145, 179, 00580 188, 145, 134, 145, 145, 115, 150, 134, 151, 155, 00581 00582 153, 365, 154, 253, 129, 152, 145, 163, 188, 158, 00583 156, 164, 157, 159, 160, 365, 169, 134, 198, 162, 00584 190, 190, 168, 143, 165, 195, 195, 166, 197, 197, 00585 116, 128, 197, 128, 197, 193, 193, 193, 255, 191, 00586 132, 193, 193, 193, 196, 194, 255, 133, 133, 235, 00587 235, 235, 145, 145, 236, 236, 236, 208, 145, 365, 00588 256, 280, 209, 258, 191, 241, 241, 241, 256, 196, 00589 199, 199, 200, 201, 199, 199, 199, 199, 199, 199, 00590 199, 202, 199, 199, 199, 199, 199, 202, 199, 202, 00591 202, 202, 199, 199, 199, 199, 199, 199, 202, 202, 00592 00593 202, 202, 202, 202, 202, 202, 202, 202, 202, 199, 00594 199, 199, 199, 202, 202, 202, 202, 202, 202, 202, 00595 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 00596 202, 202, 202, 202, 202, 199, 199, 199, 199, 199, 00597 128, 197, 257, 253, 204, 197, 197, 197, 128, 197, 00598 251, 197, 193, 193, 193, 207, 203, 203, 203, 205, 00599 128, 197, 129, 197, 197, 203, 203, 203, 203, 145, 00600 145, 145, 197, 197, 129, 145, 144, 144, 144, 207, 00601 197, 203, 203, 203, 203, 203, 203, 145, 145, 197, 00602 197, 197, 213, 197, 197, 212, 145, 145, 197, 206, 00603 00604 210, 211, 231, 197, 145, 214, 197, 197, 197, 197, 00605 197, 194, 216, 145, 129, 145, 197, 145, 145, 215, 00606 249, 249, 145, 128, 218, 217, 129, 145, 204, 197, 00607 145, 145, 145, 145, 145, 197, 172, 172, 172, 197, 00608 221, 219, 220, 205, 194, 223, 128, 233, 170, 222, 00609 129, 197, 303, 145, 226, 128, 197, 230, 224, 225, 00610 128, 197, 229, 145, 227, 233, 178, 178, 228, 129, 00611 128, 173, 173, 173, 304, 129, 237, 237, 237, 128, 00612 197, 263, 234, 206, 145, 129, 240, 240, 240, 197, 00613 238, 197, 238, 135, 129, 239, 239, 239, 128, 197, 00614 00615 234, 128, 197, 128, 128, 197, 187, 187, 197, 128, 00616 129, 197, 123, 145, 242, 242, 242, 184, 184, 184, 00617 244, 244, 244, 128, 197, 129, 121, 197, 243, 197, 00618 197, 197, 145, 115, 245, 145, 245, 261, 197, 246, 00619 246, 246, 189, 189, 189, 272, 243, 247, 247, 197, 00620 129, 197, 262, 145, 145, 145, 120, 197, 118, 197, 00621 260, 129, 145, 289, 289, 289, 113, 170, 116, 135, 00622 128, 265, 281, 145, 281, 145, 128, 282, 282, 282, 00623 197, 145, 266, 145, 264, 123, 129, 202, 202, 365, 00624 202, 202, 202, 202, 202, 202, 202, 202, 267, 202, 00625 00626 202, 202, 202, 202, 145, 202, 197, 197, 270, 202, 00627 202, 202, 202, 202, 202, 197, 197, 197, 197, 197, 00628 197, 197, 285, 285, 285, 121, 202, 202, 202, 202, 00629 145, 145, 120, 286, 268, 291, 291, 291, 197, 145, 00630 145, 145, 145, 145, 145, 145, 286, 296, 296, 296, 00631 269, 286, 202, 202, 202, 202, 202, 118, 271, 282, 00632 282, 282, 145, 278, 286, 273, 128, 197, 113, 279, 00633 274, 128, 197, 275, 276, 277, 365, 281, 115, 281, 00634 128, 197, 283, 283, 283, 128, 197, 284, 284, 284, 00635 197, 365, 128, 197, 365, 194, 287, 287, 287, 128, 00636 00637 197, 239, 239, 239, 122, 122, 115, 288, 290, 290, 00638 290, 128, 197, 116, 145, 292, 292, 292, 128, 197, 00639 297, 297, 293, 365, 293, 288, 288, 294, 294, 294, 00640 128, 197, 197, 303, 244, 244, 244, 300, 197, 365, 00641 305, 116, 197, 197, 288, 295, 246, 246, 246, 301, 00642 301, 301, 306, 306, 306, 304, 145, 197, 307, 197, 00643 365, 197, 145, 295, 115, 365, 145, 145, 197, 197, 00644 197, 197, 197, 365, 197, 365, 197, 365, 298, 298, 00645 298, 145, 115, 145, 308, 145, 197, 298, 298, 298, 00646 298, 197, 145, 145, 145, 145, 145, 309, 145, 116, 00647 00648 145, 312, 365, 298, 298, 298, 298, 298, 298, 365, 00649 145, 197, 311, 310, 197, 145, 365, 116, 315, 282, 00650 282, 282, 365, 313, 128, 197, 314, 334, 317, 316, 00651 128, 197, 365, 318, 365, 145, 365, 365, 145, 365, 00652 283, 283, 283, 321, 321, 321, 320, 320, 320, 335, 00653 322, 365, 322, 365, 286, 323, 323, 323, 319, 128, 00654 197, 289, 289, 289, 329, 329, 329, 128, 197, 296, 00655 296, 296, 286, 128, 197, 324, 324, 324, 322, 365, 00656 322, 128, 197, 325, 325, 325, 288, 334, 365, 326, 00657 326, 326, 327, 327, 327, 128, 197, 328, 328, 328, 00658 00659 301, 301, 301, 286, 288, 365, 128, 197, 288, 335, 00660 197, 294, 294, 294, 306, 306, 306, 330, 197, 330, 00661 197, 286, 331, 331, 331, 197, 288, 301, 301, 301, 00662 332, 306, 306, 306, 145, 197, 197, 197, 197, 197, 00663 197, 197, 145, 197, 145, 197, 323, 323, 323, 145, 00664 323, 323, 323, 365, 174, 197, 197, 365, 342, 145, 00665 145, 145, 145, 145, 145, 145, 175, 145, 176, 145, 00666 175, 197, 175, 336, 343, 343, 343, 197, 337, 365, 00667 145, 179, 329, 329, 329, 344, 345, 345, 345, 341, 00668 339, 197, 338, 128, 197, 197, 340, 346, 365, 179, 00669 00670 347, 145, 352, 344, 197, 129, 129, 129, 129, 325, 00671 325, 325, 181, 365, 181, 346, 343, 343, 343, 145, 00672 197, 348, 348, 348, 128, 197, 197, 344, 145, 197, 00673 129, 365, 351, 365, 365, 345, 345, 345, 197, 365, 00674 331, 331, 331, 365, 365, 344, 346, 353, 353, 353, 00675 145, 365, 365, 145, 343, 343, 343, 128, 197, 365, 00676 365, 354, 145, 354, 346, 286, 355, 355, 355, 128, 00677 197, 197, 365, 345, 345, 345, 357, 357, 357, 358, 00678 354, 365, 354, 286, 288, 356, 356, 356, 348, 348, 00679 348, 359, 359, 359, 365, 145, 360, 360, 360, 355, 00680 00681 355, 355, 288, 355, 355, 355, 128, 197, 361, 361, 00682 361, 359, 359, 359, 359, 359, 359, 362, 362, 362, 00683 342, 347, 356, 356, 356, 363, 363, 363, 365, 365, 00684 365, 365, 175, 181, 175, 181, 238, 365, 238, 365, 00685 365, 289, 289, 289, 365, 365, 365, 364, 364, 365, 00686 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00687 365, 365, 365, 365, 365, 364, 364, 114, 365, 365, 00688 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, 00689 114, 114, 114, 114, 117, 117, 365, 117, 117, 117, 00690 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, 00691 00692 117, 119, 119, 119, 119, 119, 122, 365, 365, 122, 00693 122, 122, 365, 122, 122, 122, 122, 122, 122, 122, 00694 122, 122, 122, 129, 365, 365, 365, 365, 129, 129, 00695 129, 129, 129, 129, 129, 129, 129, 130, 130, 365, 00696 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 00697 130, 130, 130, 130, 145, 365, 145, 365, 365, 145, 00698 145, 145, 145, 145, 145, 145, 145, 145, 146, 365, 00699 365, 365, 365, 146, 146, 146, 146, 146, 146, 146, 00700 146, 146, 114, 365, 114, 365, 365, 114, 365, 365, 00701 365, 114, 365, 114, 192, 192, 365, 192, 192, 192, 00702 00703 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 00704 192, 122, 365, 122, 365, 365, 122, 365, 365, 365, 00705 122, 365, 122, 232, 365, 365, 365, 365, 232, 232, 00706 232, 365, 232, 232, 248, 248, 248, 365, 365, 365, 00707 248, 250, 250, 250, 365, 365, 365, 250, 252, 365, 00708 365, 365, 365, 365, 252, 252, 252, 365, 252, 200, 00709 200, 200, 200, 200, 200, 200, 365, 365, 365, 365, 00710 365, 365, 365, 365, 365, 200, 254, 254, 254, 254, 00711 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 00712 254, 254, 254, 259, 365, 365, 365, 365, 365, 259, 00713 00714 259, 259, 365, 259, 299, 365, 365, 299, 299, 299, 00715 365, 365, 365, 299, 302, 302, 302, 302, 302, 302, 00716 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 00717 302, 333, 333, 333, 333, 333, 333, 333, 333, 333, 00718 333, 333, 333, 333, 333, 333, 333, 333, 350, 365, 00719 365, 365, 365, 365, 350, 350, 350, 365, 350, 9, 00720 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00721 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00722 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00723 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00724 00725 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00726 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00727 365, 365, 365, 365, 365, 365, 365, 365, 365, 365 00728 } ; 00729 00730 static yyconst short int yy_chk[1731] = 00731 { 0, 00732 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00733 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00734 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00735 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00736 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00737 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00738 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 00739 3, 32, 32, 14, 23, 3, 349, 3, 35, 3, 00740 3, 3, 4, 3, 35, 23, 335, 4, 24, 4, 00741 332, 4, 4, 4, 5, 4, 5, 24, 5, 5, 00742 00743 5, 6, 5, 6, 304, 6, 6, 6, 14, 6, 00744 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 00745 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 00746 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 00747 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 00748 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 00749 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 00750 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 00751 26, 27, 30, 30, 30, 31, 39, 33, 42, 46, 00752 49, 33, 34, 41, 87, 40, 34, 27, 27, 45, 00753 00754 39, 33, 26, 33, 33, 33, 34, 43, 34, 34, 00755 34, 40, 42, 41, 42, 45, 27, 34, 44, 49, 00756 41, 46, 40, 43, 50, 48, 47, 33, 31, 51, 00757 88, 88, 34, 82, 43, 70, 43, 87, 145, 44, 00758 50, 27, 47, 44, 44, 80, 47, 57, 57, 57, 00759 79, 51, 39, 33, 80, 82, 48, 299, 34, 48, 00760 56, 79, 145, 56, 56, 56, 56, 56, 56, 56, 00761 70, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00762 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00763 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00764 00765 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00766 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00767 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 00768 58, 86, 86, 86, 129, 129, 105, 59, 95, 91, 00769 65, 65, 65, 258, 60, 91, 58, 58, 58, 59, 00770 63, 59, 95, 59, 59, 59, 60, 83, 60, 65, 00771 60, 60, 60, 64, 59, 105, 63, 63, 63, 96, 00772 101, 60, 59, 83, 83, 64, 98, 64, 97, 64, 00773 64, 64, 59, 99, 65, 96, 101, 102, 100, 60, 00774 64, 103, 83, 104, 107, 114, 96, 59, 97, 99, 00775 00776 98, 256, 98, 253, 95, 97, 106, 103, 64, 100, 00777 99, 103, 99, 100, 100, 251, 107, 83, 130, 102, 00778 116, 116, 106, 119, 104, 123, 123, 104, 147, 148, 00779 114, 133, 133, 174, 152, 119, 119, 119, 205, 116, 00780 130, 143, 143, 143, 123, 250, 254, 133, 133, 174, 00781 174, 174, 147, 148, 175, 175, 175, 147, 152, 119, 00782 205, 232, 148, 207, 116, 181, 181, 181, 254, 123, 00783 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 00784 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 00785 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 00786 00787 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 00788 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 00789 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 00790 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 00791 134, 134, 206, 198, 140, 150, 149, 151, 146, 146, 00792 197, 153, 193, 193, 193, 193, 134, 134, 134, 140, 00793 144, 144, 146, 154, 155, 134, 134, 134, 134, 150, 00794 149, 151, 156, 157, 144, 153, 144, 144, 144, 144, 00795 158, 134, 134, 134, 134, 134, 134, 154, 155, 159, 00796 183, 160, 151, 161, 162, 150, 156, 157, 163, 140, 00797 00798 149, 149, 171, 164, 158, 153, 165, 166, 167, 168, 00799 169, 195, 155, 159, 146, 160, 177, 161, 162, 154, 00800 195, 195, 163, 128, 157, 156, 144, 164, 204, 222, 00801 165, 166, 167, 168, 169, 186, 172, 172, 172, 211, 00802 161, 159, 160, 204, 122, 163, 112, 172, 109, 162, 00803 177, 178, 257, 222, 166, 173, 173, 169, 164, 165, 00804 176, 176, 168, 211, 167, 172, 178, 178, 167, 186, 00805 180, 173, 173, 173, 257, 177, 176, 176, 176, 179, 00806 179, 211, 173, 204, 89, 178, 180, 180, 180, 220, 00807 179, 187, 179, 85, 186, 179, 179, 179, 182, 182, 00808 00809 173, 184, 184, 84, 185, 185, 187, 187, 210, 81, 00810 178, 209, 75, 220, 182, 182, 182, 184, 184, 184, 00811 185, 185, 185, 188, 188, 187, 74, 189, 184, 208, 00812 212, 213, 210, 190, 188, 209, 188, 209, 214, 188, 00813 188, 188, 189, 189, 189, 220, 184, 190, 190, 215, 00814 187, 228, 210, 208, 212, 213, 72, 229, 71, 218, 00815 208, 189, 214, 238, 238, 238, 69, 53, 190, 29, 00816 28, 213, 233, 215, 233, 228, 25, 233, 233, 233, 00817 216, 229, 214, 218, 212, 19, 189, 199, 199, 199, 00818 199, 199, 199, 199, 199, 199, 199, 199, 215, 199, 00819 00820 199, 199, 199, 199, 216, 199, 217, 219, 218, 199, 00821 199, 199, 199, 199, 199, 221, 223, 224, 225, 227, 00822 226, 230, 236, 236, 236, 18, 199, 199, 199, 199, 00823 217, 219, 16, 236, 216, 241, 241, 241, 261, 221, 00824 223, 224, 225, 227, 226, 230, 241, 245, 245, 245, 00825 217, 236, 199, 199, 199, 199, 199, 15, 219, 281, 00826 281, 281, 261, 227, 241, 221, 234, 234, 13, 230, 00827 223, 235, 235, 224, 225, 226, 9, 234, 297, 234, 00828 237, 237, 234, 234, 234, 239, 239, 235, 235, 235, 00829 262, 0, 240, 240, 0, 249, 237, 237, 237, 242, 00830 00831 242, 239, 239, 239, 249, 249, 247, 237, 240, 240, 00832 240, 243, 243, 297, 262, 242, 242, 242, 244, 244, 00833 247, 247, 243, 0, 243, 237, 242, 243, 243, 243, 00834 246, 246, 260, 302, 244, 244, 244, 252, 263, 0, 00835 259, 247, 264, 266, 242, 244, 246, 246, 246, 252, 00836 252, 252, 259, 259, 259, 302, 260, 265, 260, 267, 00837 0, 269, 263, 244, 248, 0, 264, 266, 268, 270, 00838 271, 272, 273, 0, 274, 0, 275, 0, 248, 248, 00839 248, 265, 298, 267, 263, 269, 276, 248, 248, 248, 00840 248, 277, 268, 270, 271, 272, 273, 264, 274, 248, 00841 00842 275, 269, 0, 248, 248, 248, 248, 248, 248, 0, 00843 276, 278, 268, 265, 279, 277, 0, 298, 274, 282, 00844 282, 282, 0, 271, 283, 283, 272, 303, 276, 275, 00845 284, 284, 0, 277, 0, 278, 0, 0, 279, 0, 00846 283, 283, 283, 285, 285, 285, 284, 284, 284, 303, 00847 286, 0, 286, 0, 285, 286, 286, 286, 279, 287, 00848 287, 289, 289, 289, 293, 293, 293, 288, 288, 296, 00849 296, 296, 285, 290, 290, 287, 287, 287, 288, 0, 00850 288, 292, 292, 288, 288, 288, 287, 333, 0, 290, 00851 290, 290, 291, 291, 291, 294, 294, 292, 292, 292, 00852 00853 300, 300, 300, 291, 287, 0, 295, 295, 292, 333, 00854 307, 294, 294, 294, 305, 305, 305, 295, 308, 295, 00855 309, 291, 295, 295, 295, 310, 292, 301, 301, 301, 00856 301, 306, 306, 306, 307, 311, 312, 313, 314, 315, 00857 316, 317, 308, 318, 309, 319, 322, 322, 322, 310, 00858 323, 323, 323, 0, 320, 320, 337, 0, 321, 311, 00859 312, 313, 314, 315, 316, 317, 320, 318, 320, 319, 00860 321, 324, 321, 310, 321, 321, 321, 336, 312, 0, 00861 337, 320, 329, 329, 329, 321, 324, 324, 324, 318, 00862 316, 326, 313, 325, 325, 338, 317, 324, 0, 320, 00863 00864 327, 336, 337, 321, 339, 324, 326, 326, 326, 325, 00865 325, 325, 327, 0, 327, 324, 327, 327, 327, 338, 00866 328, 330, 330, 330, 331, 331, 340, 327, 339, 341, 00867 324, 0, 336, 0, 0, 328, 328, 328, 351, 0, 00868 331, 331, 331, 0, 0, 327, 328, 342, 342, 342, 00869 340, 0, 0, 341, 343, 343, 343, 345, 345, 0, 00870 0, 344, 351, 344, 328, 343, 344, 344, 344, 346, 00871 346, 352, 0, 345, 345, 345, 347, 347, 347, 350, 00872 346, 0, 346, 343, 345, 346, 346, 346, 348, 348, 00873 348, 350, 350, 350, 0, 352, 353, 353, 353, 354, 00874 00875 354, 354, 345, 355, 355, 355, 356, 356, 357, 357, 00876 357, 358, 358, 358, 359, 359, 359, 360, 360, 360, 00877 362, 363, 356, 356, 356, 361, 361, 361, 0, 0, 00878 0, 0, 362, 363, 362, 363, 364, 0, 364, 0, 00879 0, 364, 364, 364, 0, 0, 0, 362, 363, 0, 00880 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 00881 0, 0, 0, 0, 0, 362, 363, 366, 0, 0, 00882 366, 366, 366, 366, 366, 366, 366, 366, 366, 366, 00883 366, 366, 366, 366, 367, 367, 0, 367, 367, 367, 00884 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 00885 00886 367, 368, 368, 368, 368, 368, 369, 0, 0, 369, 00887 369, 369, 0, 369, 369, 369, 369, 369, 369, 369, 00888 369, 369, 369, 370, 0, 0, 0, 0, 370, 370, 00889 370, 370, 370, 370, 370, 370, 370, 371, 371, 0, 00890 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, 00891 371, 371, 371, 371, 372, 0, 372, 0, 0, 372, 00892 372, 372, 372, 372, 372, 372, 372, 372, 373, 0, 00893 0, 0, 0, 373, 373, 373, 373, 373, 373, 373, 00894 373, 373, 374, 0, 374, 0, 0, 374, 0, 0, 00895 0, 374, 0, 374, 375, 375, 0, 375, 375, 375, 00896 00897 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 00898 375, 376, 0, 376, 0, 0, 376, 0, 0, 0, 00899 376, 0, 376, 377, 0, 0, 0, 0, 377, 377, 00900 377, 0, 377, 377, 378, 378, 378, 0, 0, 0, 00901 378, 379, 379, 379, 0, 0, 0, 379, 380, 0, 00902 0, 0, 0, 0, 380, 380, 380, 0, 380, 381, 00903 381, 381, 381, 381, 381, 381, 0, 0, 0, 0, 00904 0, 0, 0, 0, 0, 381, 382, 382, 382, 382, 00905 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 00906 382, 382, 382, 383, 0, 0, 0, 0, 0, 383, 00907 00908 383, 383, 0, 383, 384, 0, 0, 384, 384, 384, 00909 0, 0, 0, 384, 385, 385, 385, 385, 385, 385, 00910 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 00911 385, 386, 386, 386, 386, 386, 386, 386, 386, 386, 00912 386, 386, 386, 386, 386, 386, 386, 386, 387, 0, 00913 0, 0, 0, 0, 387, 387, 387, 0, 387, 365, 00914 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00915 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00916 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00917 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00918 00919 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00920 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 00921 365, 365, 365, 365, 365, 365, 365, 365, 365, 365 00922 } ; 00923 00924 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr; 00925 static char *yy_full_match; 00926 static int yy_lp; 00927 static int yy_looking_for_trail_begin = 0; 00928 static int yy_full_lp; 00929 static int *yy_full_state; 00930 #define YY_TRAILING_MASK 0x2000 00931 #define YY_TRAILING_HEAD_MASK 0x4000 00932 #define REJECT \ 00933 { \ 00934 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \ 00935 yy_cp = yy_full_match; /* restore poss. backed-over text */ \ 00936 yy_lp = yy_full_lp; /* restore orig. accepting pos. */ \ 00937 yy_state_ptr = yy_full_state; /* restore orig. state */ \ 00938 yy_current_state = *yy_state_ptr; /* restore curr. state */ \ 00939 ++yy_lp; \ 00940 goto find_rule; \ 00941 } 00942 #define yymore() yymore_used_but_not_detected 00943 #define YY_MORE_ADJ 0 00944 #define YY_RESTORE_YY_MORE_OFFSET 00945 char *yytext; 00946 #line 1 "scanner.ll" 00947 #define INITIAL 0 00948 /* This file is part of the KDE project 00949 Copyright (C) 1998, 1999, 2000 Torben Weis <weis@kde.org> 00950 00951 This library is free software; you can redistribute it and/or 00952 modify it under the terms of the GNU Library General Public 00953 License as published by the Free Software Foundation; either 00954 version 2 of the License, or (at your option) any later version. 00955 00956 This library is distributed in the hope that it will be useful, 00957 but WITHOUT ANY WARRANTY; without even the implied warranty of 00958 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00959 Library General Public License for more details. 00960 00961 You should have received a copy of the GNU Library General Public License 00962 along with this library; see the file COPYING.LIB. If not, write to 00963 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00964 Boston, MA 02111-1307, USA. 00965 */ 00966 #line 21 "scanner.ll" 00967 00968 #define YY_NO_UNPUT 00969 #define YY_USER_INIT BEGIN(PLAIN); 00970 00971 #include <stdlib.h> 00972 #include <ctype.h> 00973 #include <qstring.h> 00974 #include <string.h> 00975 00976 #include "koscript_parsenode.h" 00977 #include "koscript_types.h" 00978 #include "koscript_synext.h" 00979 #include "koscript_locale.h" 00980 00981 #ifndef KDE_USE_FINAL 00982 #include "yacc.cc.h" 00983 #endif 00984 00985 extern int idl_line_no; 00986 00987 static bool s_kspread; 00988 KLocale* s_koscript_locale = 0; 00989 static KLocale* s_defaultLocale = 0; 00990 00991 #define PARSE_NUM(yytext) \ 00992 if( strlen( yytext ) < 8 ) \ 00993 { yylval._int = ascii_to_longlong( 10, yytext ); return T_INTEGER_LITERAL; } else \ 00994 { yylval._float = ascii_to_longdouble( yytext ); return T_FLOATING_PT_LITERAL; } 00995 00996 static KScript::Long ascii_to_longlong( long base, const char *s ) 00997 { 00998 KScript::Long ll = 0; 00999 while( *s != '\0' ) { 01000 char c = *s++; 01001 if( c >= 'a' ) 01002 c -= 'a' - 'A'; 01003 c -= '0'; 01004 if( c > 9 ) 01005 c -= 'A' - '0' - 10; 01006 ll = ll * base + c; 01007 } 01008 return ll; 01009 } 01010 01011 static KScript::Double ascii_to_longdouble( const char *s ) 01012 { 01013 KScript::Double d; 01014 #ifdef HAVE_SCANF_LF 01015 sscanf (s, "%Lf", &d); 01016 #else 01017 /* 01018 * this is only an approximation and will probably break fixed<> 01019 * parameter calculation on systems where 01020 * sizeof(double) < sizeof(long double). but fortunately all 01021 * systems where scanf("%Lf") is known to be broken (Linux/Alpha 01022 * and HPUX) have sizeof(double) == sizeof(long double). 01023 */ 01024 d = strtod (s, NULL); 01025 #endif 01026 return d; 01027 } 01028 01029 static ushort translate_char( const char *s ) 01030 { 01031 char c = *s++; 01032 char buf[5]; 01033 01034 if( c != '\\' ) 01035 return c; 01036 c = *s++; 01037 switch( c ) { 01038 case 'n': 01039 return '\n'; 01040 case 't': 01041 return '\t'; 01042 case 'v': 01043 return '\v'; 01044 case 'b': 01045 return '\b'; 01046 case 'r': 01047 return '\r'; 01048 case 'f': 01049 return '\f'; 01050 case 'a': 01051 return '\a'; 01052 case 'u': /* FIXME: This is really brittle */ 01053 buf[0]=*s++; buf[1]=*s++; 01054 buf[2]=*s++; buf[3]=*s++; 01055 buf[4]='\0'; 01056 return ascii_to_longlong(16, buf); 01057 case '\\': 01058 return '\\'; 01059 case '?': 01060 return '\?'; 01061 case '\'': 01062 return '\''; 01063 case '"': 01064 return '"'; 01065 case 'x': 01066 case 'X': 01067 return (char) ascii_to_longlong( 16, s ); 01068 default: 01069 // Gotta be an octal 01070 return (char) ascii_to_longlong( 8, s ); 01071 } 01072 } 01073 01074 static QChar translate_unichar( const QChar *s ) 01075 { 01076 QChar c = *s++; 01077 01078 if( c != '\\' ) 01079 return c; 01080 c = *s++; 01081 switch( c.latin1() ) { 01082 case 'n': 01083 return '\n'; 01084 case 't': 01085 return '\t'; 01086 case 'v': 01087 return '\v'; 01088 case 'b': 01089 return '\b'; 01090 case 'r': 01091 return '\r'; 01092 case 'f': 01093 return '\f'; 01094 case 'a': 01095 return '\a'; 01096 case '\\': 01097 return '\\'; 01098 case '?': 01099 return '\?'; 01100 case '\'': 01101 return '\''; 01102 case '"': 01103 return '"'; 01104 default: 01105 return c; 01106 } 01107 } 01108 01109 static void translate_string( QString& str ) 01110 { 01111 int pos = 0; 01112 while( ( pos = str.find( '\\', pos ) ) != -1 ) 01113 { 01114 QChar ch = translate_unichar( str.unicode() + pos ); 01115 str.replace( pos, 2, &ch, 1 ); 01116 } 01117 } 01118 01119 #define YY_STACK_USED 1 01120 /* allow localized input of integer/fp literals, send T_COMMA for ';' (Werner) */ 01121 #define KSPREAD 1 01122 01123 /* standard ASCII stuff, C-like fp literals, T_COMMA for - yay! - ',' (Werner) */ 01124 #define PLAIN 2 01125 01126 /* hack around a kregexp issue ($[0-9] is a group, but nothing else) (Werner) */ 01127 #define REGEXP_GROUP 3 01128 01129 /*--------------------------------------------------------------------------*/ 01130 /* Note: All the "special" shortcuts are prefixed with "Plain_" or "KSpread_" */ 01131 /*--------------------------------------------------------------------------*/ 01132 /*--------------------------------------------------------------------------*/ 01133 #line 1134 "scanner.cc" 01134 01135 /* Macros after this point can all be overridden by user definitions in 01136 * section 1. 01137 */ 01138 01139 #ifndef YY_SKIP_YYWRAP 01140 #ifdef __cplusplus 01141 extern "C" int yywrap YY_PROTO(( void )); 01142 #else 01143 extern int yywrap YY_PROTO(( void )); 01144 #endif 01145 #endif 01146 01147 #ifndef YY_NO_UNPUT 01148 static void yyunput YY_PROTO(( int c, char *buf_ptr )); 01149 #endif 01150 01151 #ifndef yytext_ptr 01152 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); 01153 #endif 01154 01155 #ifdef YY_NEED_STRLEN 01156 static int yy_flex_strlen YY_PROTO(( yyconst char * )); 01157 #endif 01158 01159 #ifndef YY_NO_INPUT 01160 #ifdef __cplusplus 01161 static int yyinput YY_PROTO(( void )); 01162 #else 01163 static int input YY_PROTO(( void )); 01164 #endif 01165 #endif 01166 01167 #if YY_STACK_USED 01168 static int yy_start_stack_ptr = 0; 01169 static int yy_start_stack_depth = 0; 01170 static int *yy_start_stack = 0; 01171 #ifndef YY_NO_PUSH_STATE 01172 static void yy_push_state YY_PROTO(( int new_state )); 01173 #endif 01174 #ifndef YY_NO_POP_STATE 01175 static void yy_pop_state YY_PROTO(( void )); 01176 #endif 01177 #ifndef YY_NO_TOP_STATE 01178 static int yy_top_state YY_PROTO(( void )); 01179 #endif 01180 01181 #else 01182 #define YY_NO_PUSH_STATE 1 01183 #define YY_NO_POP_STATE 1 01184 #define YY_NO_TOP_STATE 1 01185 #endif 01186 01187 #ifdef YY_MALLOC_DECL 01188 YY_MALLOC_DECL 01189 #else 01190 #if __STDC__ 01191 #ifndef __cplusplus 01192 #include <stdlib.h> 01193 #endif 01194 #else 01195 /* Just try to get by without declaring the routines. This will fail 01196 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) 01197 * or sizeof(void*) != sizeof(int). 01198 */ 01199 #endif 01200 #endif 01201 01202 /* Amount of stuff to slurp up with each read. */ 01203 #ifndef YY_READ_BUF_SIZE 01204 #define YY_READ_BUF_SIZE 8192 01205 #endif 01206 01207 /* Copy whatever the last rule matched to the standard output. */ 01208 01209 #ifndef ECHO 01210 /* This used to be an fputs(), but since the string might contain NUL's, 01211 * we now use fwrite(). 01212 */ 01213 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) 01214 #endif 01215 01216 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 01217 * is returned in "result". 01218 */ 01219 #ifndef YY_INPUT 01220 #define YY_INPUT(buf,result,max_size) \ 01221 if ( yy_current_buffer->yy_is_interactive ) \ 01222 { \ 01223 int c = '*', n; \ 01224 for ( n = 0; n < max_size && \ 01225 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ 01226 buf[n] = (char) c; \ 01227 if ( c == '\n' ) \ 01228 buf[n++] = (char) c; \ 01229 if ( c == EOF && ferror( yyin ) ) \ 01230 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 01231 result = n; \ 01232 } \ 01233 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \ 01234 && ferror( yyin ) ) \ 01235 YY_FATAL_ERROR( "input in flex scanner failed" ); 01236 #endif 01237 01238 /* No semi-colon after return; correct usage is to write "yyterminate();" - 01239 * we don't want an extra ';' after the "return" because that will cause 01240 * some compilers to complain about unreachable statements. 01241 */ 01242 #ifndef yyterminate 01243 #define yyterminate() return YY_NULL 01244 #endif 01245 01246 /* Number of entries by which start-condition stack grows. */ 01247 #ifndef YY_START_STACK_INCR 01248 #define YY_START_STACK_INCR 25 01249 #endif 01250 01251 /* Report a fatal error. */ 01252 #ifndef YY_FATAL_ERROR 01253 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 01254 #endif 01255 01256 /* Default declaration of generated scanner - a define so the user can 01257 * easily add parameters. 01258 */ 01259 #ifndef YY_DECL 01260 #define YY_DECL int yylex YY_PROTO(( void )) 01261 #endif 01262 01263 /* Code executed at the beginning of each rule, after yytext and yyleng 01264 * have been set up. 01265 */ 01266 #ifndef YY_USER_ACTION 01267 #define YY_USER_ACTION 01268 #endif 01269 01270 /* Code executed at the end of each rule. */ 01271 #ifndef YY_BREAK 01272 #define YY_BREAK break; 01273 #endif 01274 01275 #define YY_RULE_SETUP \ 01276 YY_USER_ACTION 01277 01278 YY_DECL 01279 { 01280 register yy_state_type yy_current_state; 01281 register char *yy_cp, *yy_bp; 01282 register int yy_act; 01283 01284 #line 230 "scanner.ll" 01285 01286 01287 #line 1288 "scanner.cc" 01288 01289 if ( yy_init ) 01290 { 01291 yy_init = 0; 01292 01293 #ifdef YY_USER_INIT 01294 YY_USER_INIT; 01295 #endif 01296 01297 if ( ! yy_start ) 01298 yy_start = 1; /* first start state */ 01299 01300 if ( ! yyin ) 01301 yyin = stdin; 01302 01303 if ( ! yyout ) 01304 yyout = stdout; 01305 01306 if ( ! yy_current_buffer ) 01307 yy_current_buffer = 01308 yy_create_buffer( yyin, YY_BUF_SIZE ); 01309 01310 yy_load_buffer_state(); 01311 } 01312 01313 while ( 1 ) /* loops until end-of-file is reached */ 01314 { 01315 yy_cp = yy_c_buf_p; 01316 01317 /* Support of yytext. */ 01318 *yy_cp = yy_hold_char; 01319 01320 /* yy_bp points to the position in yy_ch_buf of the start of 01321 * the current run. 01322 */ 01323 yy_bp = yy_cp; 01324 01325 yy_current_state = yy_start; 01326 yy_state_ptr = yy_state_buf; 01327 *yy_state_ptr++ = yy_current_state; 01328 yy_match: 01329 do 01330 { 01331 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; 01332 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 01333 { 01334 yy_current_state = (int) yy_def[yy_current_state]; 01335 if ( yy_current_state >= 366 ) 01336 yy_c = yy_meta[(unsigned int) yy_c]; 01337 } 01338 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 01339 *yy_state_ptr++ = yy_current_state; 01340 ++yy_cp; 01341 } 01342 while ( yy_current_state != 365 ); 01343 01344 yy_find_action: 01345 yy_current_state = *--yy_state_ptr; 01346 yy_lp = yy_accept[yy_current_state]; 01347 find_rule: /* we branch to this label when backing up */ 01348 for ( ; ; ) /* until we find what rule we matched */ 01349 { 01350 if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] ) 01351 { 01352 yy_act = yy_acclist[yy_lp]; 01353 if ( yy_act & YY_TRAILING_HEAD_MASK || 01354 yy_looking_for_trail_begin ) 01355 { 01356 if ( yy_act == yy_looking_for_trail_begin ) 01357 { 01358 yy_looking_for_trail_begin = 0; 01359 yy_act &= ~YY_TRAILING_HEAD_MASK; 01360 break; 01361 } 01362 } 01363 else if ( yy_act & YY_TRAILING_MASK ) 01364 { 01365 yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK; 01366 yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK; 01367 } 01368 else 01369 { 01370 yy_full_match = yy_cp; 01371 yy_full_state = yy_state_ptr; 01372 yy_full_lp = yy_lp; 01373 break; 01374 } 01375 ++yy_lp; 01376 goto find_rule; 01377 } 01378 --yy_cp; 01379 yy_current_state = *--yy_state_ptr; 01380 yy_lp = yy_accept[yy_current_state]; 01381 } 01382 01383 YY_DO_BEFORE_ACTION; 01384 01385 01386 do_action: /* This label is used only to access EOF actions. */ 01387 01388 01389 switch ( yy_act ) 01390 { /* beginning of action switch */ 01391 case 1: 01392 YY_RULE_SETUP 01393 #line 232 "scanner.ll" 01394 ; 01395 YY_BREAK 01396 case 2: 01397 YY_RULE_SETUP 01398 #line 233 "scanner.ll" 01399 { idl_line_no++; } 01400 YY_BREAK 01401 case 3: 01402 YY_RULE_SETUP 01403 #line 234 "scanner.ll" 01404 ; 01405 YY_BREAK 01406 case 4: 01407 YY_RULE_SETUP 01408 #line 235 "scanner.ll" 01409 ; 01410 YY_BREAK 01411 case 5: 01412 YY_RULE_SETUP 01413 #line 236 "scanner.ll" 01414 ; 01415 YY_BREAK 01416 case 6: 01417 YY_RULE_SETUP 01418 #line 238 "scanner.ll" 01419 { 01420 const char *c = yytext + 2; 01421 while( isspace( *c ) ) ++c; 01422 ++c; ++c; 01423 yylval._str = new QString( c ); 01424 yylval._str->truncate( yylval._str->length() - 1 ); 01425 return T_SUBST; 01426 } 01427 YY_BREAK 01428 case 7: 01429 YY_RULE_SETUP 01430 #line 246 "scanner.ll" 01431 { 01432 const char *c = yytext + 2; 01433 while( isspace( *c ) ) ++c; 01434 ++c; 01435 yylval._str = new QString( c ); 01436 yylval._str->truncate( yylval._str->length() - 1 ); 01437 return T_MATCH; 01438 } 01439 YY_BREAK 01440 case 8: 01441 YY_RULE_SETUP 01442 #line 254 "scanner.ll" 01443 { 01444 yylval._str = new QString( yytext + 1 ); 01445 yylval._str->truncate( yylval._str->length() - 1 ); 01446 return T_MATCH_LINE; 01447 } 01448 YY_BREAK 01449 case 9: 01450 YY_RULE_SETUP 01451 #line 260 "scanner.ll" 01452 { 01453 if ( !s_kspread ) 01454 { 01455 yylval.ident = new QString( yytext ); 01456 return T_IDENTIFIER; 01457 } 01458 yylval._str = new QString( yytext ); 01459 return T_CELL; 01460 }; 01461 YY_BREAK 01462 case 10: 01463 YY_RULE_SETUP 01464 #line 270 "scanner.ll" 01465 { 01466 if ( !s_kspread ) 01467 { 01468 yylval.ident = new QString( yytext ); 01469 return T_IDENTIFIER; 01470 } 01471 QString s = QString::fromUtf8( yytext ); 01472 yylval._str = new QString( s ); 01473 return T_CELL; 01474 }; 01475 YY_BREAK 01476 case 11: 01477 YY_RULE_SETUP 01478 #line 281 "scanner.ll" 01479 { 01480 if ( !s_kspread ) 01481 { 01482 yylval.ident = new QString( yytext ); 01483 return T_IDENTIFIER; 01484 } 01485 yylval._str = new QString( yytext ); 01486 return T_RANGE; 01487 }; 01488 YY_BREAK 01489 case 12: 01490 YY_RULE_SETUP 01491 #line 291 "scanner.ll" 01492 { 01493 if ( !s_kspread ) 01494 { 01495 yylval.ident = new QString( yytext ); 01496 return T_IDENTIFIER; 01497 } 01498 QString s = QString::fromUtf8( yytext ); 01499 yylval._str = new QString( s ); 01500 return T_RANGE; 01501 }; 01502 YY_BREAK 01503 case 13: 01504 YY_RULE_SETUP 01505 #line 302 "scanner.ll" 01506 { 01507 if ( !s_kspread ) 01508 { 01509 yylval.ident = new QString( yytext ); 01510 return T_IDENTIFIER; 01511 } 01512 QString s = QString::fromUtf8( yytext ); 01513 yylval._str = new QString( s ); 01514 return T_RANGE; 01515 }; 01516 YY_BREAK 01517 case 14: 01518 YY_RULE_SETUP 01519 #line 313 "scanner.ll" 01520 return T_LEFT_CURLY_BRACKET; 01521 YY_BREAK 01522 case 15: 01523 YY_RULE_SETUP 01524 #line 314 "scanner.ll" 01525 return T_RIGHT_CURLY_BRACKET; 01526 YY_BREAK 01527 case 16: 01528 YY_RULE_SETUP 01529 #line 315 "scanner.ll" 01530 return T_LEFT_SQUARE_BRACKET; 01531 YY_BREAK 01532 case 17: 01533 YY_RULE_SETUP 01534 #line 316 "scanner.ll" 01535 return T_RIGHT_SQUARE_BRACKET; 01536 YY_BREAK 01537 case 18: 01538 YY_RULE_SETUP 01539 #line 317 "scanner.ll" 01540 return T_LEFT_PARANTHESIS; 01541 YY_BREAK 01542 case 19: 01543 YY_RULE_SETUP 01544 #line 318 "scanner.ll" 01545 return T_RIGHT_PARANTHESIS; 01546 YY_BREAK 01547 case 20: 01548 YY_RULE_SETUP 01549 #line 319 "scanner.ll" 01550 return T_COLON; 01551 YY_BREAK 01552 case 21: 01553 YY_RULE_SETUP 01554 #line 320 "scanner.ll" 01555 return T_COMMA; 01556 YY_BREAK 01557 case 22: 01558 YY_RULE_SETUP 01559 #line 321 "scanner.ll" 01560 return T_SEMICOLON; 01561 YY_BREAK 01562 case 23: 01563 YY_RULE_SETUP 01564 #line 322 "scanner.ll" 01565 return T_COMMA; 01566 YY_BREAK 01567 case 24: 01568 YY_RULE_SETUP 01569 #line 323 "scanner.ll" 01570 return T_EQUAL; 01571 YY_BREAK 01572 case 25: 01573 YY_RULE_SETUP 01574 #line 324 "scanner.ll" 01575 return T_NOTEQUAL; 01576 YY_BREAK 01577 case 26: 01578 YY_RULE_SETUP 01579 #line 325 "scanner.ll" 01580 return T_NOTEQUAL; 01581 YY_BREAK 01582 case 27: 01583 YY_RULE_SETUP 01584 #line 326 "scanner.ll" 01585 return T_NOT; 01586 YY_BREAK 01587 case 28: 01588 YY_RULE_SETUP 01589 #line 327 "scanner.ll" 01590 return T_ASSIGN; 01591 YY_BREAK 01592 case 29: 01593 YY_RULE_SETUP 01594 #line 328 "scanner.ll" 01595 return T_INPUT; 01596 YY_BREAK 01597 case 30: 01598 YY_RULE_SETUP 01599 #line 329 "scanner.ll" 01600 return T_SHIFTRIGHT; 01601 YY_BREAK 01602 case 31: 01603 YY_RULE_SETUP 01604 #line 330 "scanner.ll" 01605 return T_SHIFTLEFT; 01606 YY_BREAK 01607 case 32: 01608 YY_RULE_SETUP 01609 #line 331 "scanner.ll" 01610 return T_PLUS_SIGN; 01611 YY_BREAK 01612 case 33: 01613 YY_RULE_SETUP 01614 #line 332 "scanner.ll" 01615 return T_MINUS_SIGN; 01616 YY_BREAK 01617 case 34: 01618 YY_RULE_SETUP 01619 #line 333 "scanner.ll" 01620 return T_ASTERISK; 01621 YY_BREAK 01622 case 35: 01623 YY_RULE_SETUP 01624 #line 334 "scanner.ll" 01625 return T_SOLIDUS; 01626 YY_BREAK 01627 case 36: 01628 YY_RULE_SETUP 01629 #line 335 "scanner.ll" 01630 return T_PERCENT_SIGN; 01631 YY_BREAK 01632 case 37: 01633 YY_RULE_SETUP 01634 #line 336 "scanner.ll" 01635 return T_TILDE; 01636 YY_BREAK 01637 case 38: 01638 YY_RULE_SETUP 01639 #line 337 "scanner.ll" 01640 return T_OR; 01641 YY_BREAK 01642 case 39: 01643 YY_RULE_SETUP 01644 #line 338 "scanner.ll" 01645 return T_VERTICAL_LINE; 01646 YY_BREAK 01647 case 40: 01648 YY_RULE_SETUP 01649 #line 339 "scanner.ll" 01650 return T_CIRCUMFLEX; 01651 YY_BREAK 01652 case 41: 01653 YY_RULE_SETUP 01654 #line 340 "scanner.ll" 01655 return T_AMPERSAND; 01656 YY_BREAK 01657 case 42: 01658 YY_RULE_SETUP 01659 #line 341 "scanner.ll" 01660 return T_AND; 01661 YY_BREAK 01662 case 43: 01663 YY_RULE_SETUP 01664 #line 342 "scanner.ll" 01665 return T_LESS_OR_EQUAL; 01666 YY_BREAK 01667 case 44: 01668 YY_RULE_SETUP 01669 #line 343 "scanner.ll" 01670 return T_GREATER_OR_EQUAL; 01671 YY_BREAK 01672 case 45: 01673 YY_RULE_SETUP 01674 #line 344 "scanner.ll" 01675 return T_LESS_THAN_SIGN; 01676 YY_BREAK 01677 case 46: 01678 YY_RULE_SETUP 01679 #line 345 "scanner.ll" 01680 return T_GREATER_THAN_SIGN; 01681 YY_BREAK 01682 case 47: 01683 YY_RULE_SETUP 01684 #line 346 "scanner.ll" 01685 return T_MEMBER; 01686 YY_BREAK 01687 case 48: 01688 YY_RULE_SETUP 01689 #line 347 "scanner.ll" 01690 return T_PLUS_ASSIGN; 01691 YY_BREAK 01692 case 49: 01693 YY_RULE_SETUP 01694 #line 348 "scanner.ll" 01695 return T_MINUS_ASSIGN; 01696 YY_BREAK 01697 case 50: 01698 YY_RULE_SETUP 01699 #line 349 "scanner.ll" 01700 return T_LINE; 01701 YY_BREAK 01702 case 51: 01703 YY_RULE_SETUP 01704 #line 350 "scanner.ll" 01705 { 01706 yy_push_state( REGEXP_GROUP ); 01707 return T_DOLLAR; 01708 } 01709 YY_BREAK 01710 case 52: 01711 YY_RULE_SETUP 01712 #line 354 "scanner.ll" 01713 { 01714 yy_pop_state(); 01715 PARSE_NUM(yytext); 01716 } 01717 YY_BREAK 01718 case 53: 01719 YY_RULE_SETUP 01720 #line 358 "scanner.ll" 01721 { 01722 yy_pop_state(); 01723 yyless(0); 01724 } 01725 YY_BREAK 01726 case 54: 01727 YY_RULE_SETUP 01728 #line 363 "scanner.ll" 01729 return T_CONST; 01730 YY_BREAK 01731 case 55: 01732 YY_RULE_SETUP 01733 #line 364 "scanner.ll" 01734 return T_FALSE; 01735 YY_BREAK 01736 case 56: 01737 YY_RULE_SETUP 01738 #line 365 "scanner.ll" 01739 return T_TRUE; 01740 YY_BREAK 01741 case 57: 01742 YY_RULE_SETUP 01743 #line 366 "scanner.ll" 01744 return T_FALSE; 01745 YY_BREAK 01746 case 58: 01747 YY_RULE_SETUP 01748 #line 367 "scanner.ll" 01749 return T_TRUE; 01750 YY_BREAK 01751 case 59: 01752 YY_RULE_SETUP 01753 #line 368 "scanner.ll" 01754 return T_STRUCT; 01755 YY_BREAK 01756 case 60: 01757 YY_RULE_SETUP 01758 #line 369 "scanner.ll" 01759 return T_SWITCH; 01760 YY_BREAK 01761 case 61: 01762 YY_RULE_SETUP 01763 #line 370 "scanner.ll" 01764 return T_CASE; 01765 YY_BREAK 01766 case 62: 01767 YY_RULE_SETUP 01768 #line 371 "scanner.ll" 01769 return T_DEFAULT; 01770 YY_BREAK 01771 case 63: 01772 YY_RULE_SETUP 01773 #line 372 "scanner.ll" 01774 return T_ENUM; 01775 YY_BREAK 01776 case 64: 01777 YY_RULE_SETUP 01778 #line 373 "scanner.ll" 01779 return T_IN; 01780 YY_BREAK 01781 case 65: 01782 YY_RULE_SETUP 01783 #line 374 "scanner.ll" 01784 return T_OUT; 01785 YY_BREAK 01786 case 66: 01787 YY_RULE_SETUP 01788 #line 375 "scanner.ll" 01789 return T_WHILE; 01790 YY_BREAK 01791 case 67: 01792 YY_RULE_SETUP 01793 #line 376 "scanner.ll" 01794 return T_DO; 01795 YY_BREAK 01796 case 68: 01797 YY_RULE_SETUP 01798 #line 377 "scanner.ll" 01799 return T_FOR; 01800 YY_BREAK 01801 case 69: 01802 YY_RULE_SETUP 01803 #line 378 "scanner.ll" 01804 { 01805 if ( !s_kspread ) 01806 return T_IF; 01807 yylval.ident = new QString( yytext ); 01808 return T_IDENTIFIER; 01809 } 01810 YY_BREAK 01811 case 70: 01812 YY_RULE_SETUP 01813 #line 384 "scanner.ll" 01814 return T_ELSE; 01815 YY_BREAK 01816 case 71: 01817 YY_RULE_SETUP 01818 #line 385 "scanner.ll" 01819 return T_MAIN; 01820 YY_BREAK 01821 case 72: 01822 YY_RULE_SETUP 01823 #line 386 "scanner.ll" 01824 return T_FOREACH; 01825 YY_BREAK 01826 case 73: 01827 YY_RULE_SETUP 01828 #line 387 "scanner.ll" 01829 return T_RETURN; 01830 YY_BREAK 01831 case 74: 01832 YY_RULE_SETUP 01833 #line 388 "scanner.ll" 01834 return T_IMPORT; 01835 YY_BREAK 01836 case 75: 01837 YY_RULE_SETUP 01838 #line 389 "scanner.ll" 01839 return T_VAR; 01840 YY_BREAK 01841 case 76: 01842 YY_RULE_SETUP 01843 #line 390 "scanner.ll" 01844 return T_INOUT; 01845 YY_BREAK 01846 case 77: 01847 YY_RULE_SETUP 01848 #line 391 "scanner.ll" 01849 return T_TRY; 01850 YY_BREAK 01851 case 78: 01852 YY_RULE_SETUP 01853 #line 392 "scanner.ll" 01854 return T_CATCH; 01855 YY_BREAK 01856 case 79: 01857 YY_RULE_SETUP 01858 #line 393 "scanner.ll" 01859 return T_RAISE; 01860 YY_BREAK 01861 case 80: 01862 YY_RULE_SETUP 01863 #line 394 "scanner.ll" 01864 return T_FROM; 01865 YY_BREAK 01866 case 81: 01867 YY_RULE_SETUP 01868 #line 396 "scanner.ll" 01869 return T_INCR; 01870 YY_BREAK 01871 case 82: 01872 YY_RULE_SETUP 01873 #line 397 "scanner.ll" 01874 return T_DECR; 01875 YY_BREAK 01876 case 83: 01877 YY_RULE_SETUP 01878 #line 398 "scanner.ll" 01879 return T_SCOPE; 01880 YY_BREAK 01881 case 84: 01882 YY_RULE_SETUP 01883 #line 400 "scanner.ll" 01884 { 01885 yylval.ident = new QString( yytext ); 01886 return T_IDENTIFIER; 01887 } 01888 YY_BREAK 01889 case 85: 01890 #line 406 "scanner.ll" 01891 case 86: 01892 #line 407 "scanner.ll" 01893 case 87: 01894 #line 408 "scanner.ll" 01895 case 88: 01896 #line 409 "scanner.ll" 01897 case 89: 01898 #line 410 "scanner.ll" 01899 case 90: 01900 YY_RULE_SETUP 01901 #line 410 "scanner.ll" 01902 { 01903 QString s( yytext ); 01904 bool ok = TRUE; 01905 double f = s_koscript_locale->readNumber( s, &ok ); 01906 // if ( !ok ) 01907 // f = s.toDouble( &ok ); 01908 if ( !ok ) 01909 return T_UNKNOWN; 01910 int i = (int)f; 01911 if ( i == f ) 01912 { 01913 yylval._int = i; 01914 return T_INTEGER_LITERAL; 01915 } 01916 yylval._float = f; 01917 return T_FLOATING_PT_LITERAL; 01918 } 01919 YY_BREAK 01920 case 91: 01921 YY_RULE_SETUP 01922 #line 427 "scanner.ll" 01923 { 01924 PARSE_NUM( yytext ); 01925 } 01926 YY_BREAK 01927 case 92: 01928 #line 432 "scanner.ll" 01929 case 93: 01930 #line 433 "scanner.ll" 01931 case 94: 01932 #line 434 "scanner.ll" 01933 case 95: 01934 #line 435 "scanner.ll" 01935 case 96: 01936 YY_RULE_SETUP 01937 #line 435 "scanner.ll" 01938 { 01939 yylval._float = ascii_to_longdouble( yytext ); 01940 return T_FLOATING_PT_LITERAL; 01941 } 01942 YY_BREAK 01943 case 97: 01944 YY_RULE_SETUP 01945 #line 439 "scanner.ll" 01946 { 01947 PARSE_NUM( yytext ); 01948 } 01949 YY_BREAK 01950 case 98: 01951 YY_RULE_SETUP 01952 #line 443 "scanner.ll" 01953 { 01954 yylval._int = ascii_to_longlong( 8, yytext ); 01955 return T_INTEGER_LITERAL; 01956 } 01957 YY_BREAK 01958 case 99: 01959 YY_RULE_SETUP 01960 #line 447 "scanner.ll" 01961 { 01962 yylval._int = ascii_to_longlong( 16, yytext + 2 ); 01963 return T_INTEGER_LITERAL; 01964 } 01965 YY_BREAK 01966 case 100: 01967 YY_RULE_SETUP 01968 #line 451 "scanner.ll" 01969 { 01970 QCString s( yytext ); 01971 s = s.mid( 1, s.length() - 2 ); 01972 yylval._char = translate_char( s ); 01973 return T_CHARACTER_LITERAL; 01974 } 01975 YY_BREAK 01976 case 101: 01977 YY_RULE_SETUP 01978 #line 457 "scanner.ll" 01979 { 01980 QString s=QString::fromUtf8( yytext ); 01981 yylval._str = new QString( s.mid( 1, s.length() - 2 ) ); 01982 if ( yylval._str->isNull() ) 01983 *(yylval._str) = ""; 01984 translate_string( *(yylval._str) ); 01985 return T_STRING_LITERAL; 01986 } 01987 YY_BREAK 01988 case 102: 01989 YY_RULE_SETUP 01990 #line 466 "scanner.ll" 01991 return T_UNKNOWN; 01992 YY_BREAK 01993 case 103: 01994 YY_RULE_SETUP 01995 #line 468 "scanner.ll" 01996 ECHO; 01997 YY_BREAK 01998 #line 1999 "scanner.cc" 01999 case YY_STATE_EOF(INITIAL): 02000 case YY_STATE_EOF(KSPREAD): 02001 case YY_STATE_EOF(PLAIN): 02002 case YY_STATE_EOF(REGEXP_GROUP): 02003 yyterminate(); 02004 02005 case YY_END_OF_BUFFER: 02006 { 02007 /* Amount of text matched not including the EOB char. */ 02008 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; 02009 02010 /* Undo the effects of YY_DO_BEFORE_ACTION. */ 02011 *yy_cp = yy_hold_char; 02012 YY_RESTORE_YY_MORE_OFFSET 02013 02014 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) 02015 { 02016 /* We're scanning a new file or input source. It's 02017 * possible that this happened because the user 02018 * just pointed yyin at a new source and called 02019 * yylex(). If so, then we have to assure 02020 * consistency between yy_current_buffer and our 02021 * globals. Here is the right place to do so, because 02022 * this is the first action (other than possibly a 02023 * back-up) that will match for the new input source. 02024 */ 02025 yy_n_chars = yy_current_buffer->yy_n_chars; 02026 yy_current_buffer->yy_input_file = yyin; 02027 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; 02028 } 02029 02030 /* Note that here we test for yy_c_buf_p "<=" to the position 02031 * of the first EOB in the buffer, since yy_c_buf_p will 02032 * already have been incremented past the NUL character 02033 * (since all states make transitions on EOB to the 02034 * end-of-buffer state). Contrast this with the test 02035 * in input(). 02036 */ 02037 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) 02038 { /* This was really a NUL. */ 02039 yy_state_type yy_next_state; 02040 02041 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; 02042 02043 yy_current_state = yy_get_previous_state(); 02044 02045 /* Okay, we're now positioned to make the NUL 02046 * transition. We couldn't have 02047 * yy_get_previous_state() go ahead and do it 02048 * for us because it doesn't know how to deal 02049 * with the possibility of jamming (and we don't 02050 * want to build jamming into it because then it 02051 * will run more slowly). 02052 */ 02053 02054 yy_next_state = yy_try_NUL_trans( yy_current_state ); 02055 02056 yy_bp = yytext_ptr + YY_MORE_ADJ; 02057 02058 if ( yy_next_state ) 02059 { 02060 /* Consume the NUL. */ 02061 yy_cp = ++yy_c_buf_p; 02062 yy_current_state = yy_next_state; 02063 goto yy_match; 02064 } 02065 02066 else 02067 { 02068 yy_cp = yy_c_buf_p; 02069 goto yy_find_action; 02070 } 02071 } 02072 02073 else switch ( yy_get_next_buffer() ) 02074 { 02075 case EOB_ACT_END_OF_FILE: 02076 { 02077 yy_did_buffer_switch_on_eof = 0; 02078 02079 if ( yywrap() ) 02080 { 02081 /* Note: because we've taken care in 02082 * yy_get_next_buffer() to have set up 02083 * yytext, we can now set up 02084 * yy_c_buf_p so that if some total 02085 * hoser (like flex itself) wants to 02086 * call the scanner after we return the 02087 * YY_NULL, it'll still work - another 02088 * YY_NULL will get returned. 02089 */ 02090 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; 02091 02092 yy_act = YY_STATE_EOF(YY_START); 02093 goto do_action; 02094 } 02095 02096 else 02097 { 02098 if ( ! yy_did_buffer_switch_on_eof ) 02099 YY_NEW_FILE; 02100 } 02101 break; 02102 } 02103 02104 case EOB_ACT_CONTINUE_SCAN: 02105 yy_c_buf_p = 02106 yytext_ptr + yy_amount_of_matched_text; 02107 02108 yy_current_state = yy_get_previous_state(); 02109 02110 yy_cp = yy_c_buf_p; 02111 yy_bp = yytext_ptr + YY_MORE_ADJ; 02112 goto yy_match; 02113 02114 case EOB_ACT_LAST_MATCH: 02115 yy_c_buf_p = 02116 &yy_current_buffer->yy_ch_buf[yy_n_chars]; 02117 02118 yy_current_state = yy_get_previous_state(); 02119 02120 yy_cp = yy_c_buf_p; 02121 yy_bp = yytext_ptr + YY_MORE_ADJ; 02122 goto yy_find_action; 02123 } 02124 break; 02125 } 02126 02127 default: 02128 YY_FATAL_ERROR( 02129 "fatal flex scanner internal error--no action found" ); 02130 } /* end of action switch */ 02131 } /* end of scanning one token */ 02132 } /* end of yylex */ 02133 02134 02135 /* yy_get_next_buffer - try to read in a new buffer 02136 * 02137 * Returns a code representing an action: 02138 * EOB_ACT_LAST_MATCH - 02139 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 02140 * EOB_ACT_END_OF_FILE - end of file 02141 */ 02142 02143 static int yy_get_next_buffer() 02144 { 02145 register char *dest = yy_current_buffer->yy_ch_buf; 02146 register char *source = yytext_ptr; 02147 register int number_to_move, i; 02148 int ret_val; 02149 02150 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) 02151 YY_FATAL_ERROR( 02152 "fatal flex scanner internal error--end of buffer missed" ); 02153 02154 if ( yy_current_buffer->yy_fill_buffer == 0 ) 02155 { /* Don't try to fill the buffer, so this is an EOF. */ 02156 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) 02157 { 02158 /* We matched a single character, the EOB, so 02159 * treat this as a final EOF. 02160 */ 02161 return EOB_ACT_END_OF_FILE; 02162 } 02163 02164 else 02165 { 02166 /* We matched some text prior to the EOB, first 02167 * process it. 02168 */ 02169 return EOB_ACT_LAST_MATCH; 02170 } 02171 } 02172 02173 /* Try to read more data. */ 02174 02175 /* First move last chars to start of buffer. */ 02176 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; 02177 02178 for ( i = 0; i < number_to_move; ++i ) 02179 *(dest++) = *(source++); 02180 02181 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 02182 /* don't do the read, it's not guaranteed to return an EOF, 02183 * just force an EOF 02184 */ 02185 yy_current_buffer->yy_n_chars = yy_n_chars = 0; 02186 02187 else 02188 { 02189 int num_to_read = 02190 yy_current_buffer->yy_buf_size - number_to_move - 1; 02191 02192 while ( num_to_read <= 0 ) 02193 { /* Not enough room in the buffer - grow it. */ 02194 #ifdef YY_USES_REJECT 02195 YY_FATAL_ERROR( 02196 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); 02197 #else 02198 02199 /* just a shorter name for the current buffer */ 02200 YY_BUFFER_STATE b = yy_current_buffer; 02201 02202 int yy_c_buf_p_offset = 02203 (int) (yy_c_buf_p - b->yy_ch_buf); 02204 02205 if ( b->yy_is_our_buffer ) 02206 { 02207 int new_size = b->yy_buf_size * 2; 02208 02209 if ( new_size <= 0 ) 02210 b->yy_buf_size += b->yy_buf_size / 8; 02211 else 02212 b->yy_buf_size *= 2; 02213 02214 b->yy_ch_buf = (char *) 02215 /* Include room in for 2 EOB chars. */ 02216 yy_flex_realloc( (void *) b->yy_ch_buf, 02217 b->yy_buf_size + 2 ); 02218 } 02219 else 02220 /* Can't grow it, we don't own it. */ 02221 b->yy_ch_buf = 0; 02222 02223 if ( ! b->yy_ch_buf ) 02224 YY_FATAL_ERROR( 02225 "fatal error - scanner input buffer overflow" ); 02226 02227 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; 02228 02229 num_to_read = yy_current_buffer->yy_buf_size - 02230 number_to_move - 1; 02231 #endif 02232 } 02233 02234 if ( num_to_read > YY_READ_BUF_SIZE ) 02235 num_to_read = YY_READ_BUF_SIZE; 02236 02237 /* Read in more data. */ 02238 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), 02239 yy_n_chars, num_to_read ); 02240 02241 yy_current_buffer->yy_n_chars = yy_n_chars; 02242 } 02243 02244 if ( yy_n_chars == 0 ) 02245 { 02246 if ( number_to_move == YY_MORE_ADJ ) 02247 { 02248 ret_val = EOB_ACT_END_OF_FILE; 02249 yyrestart( yyin ); 02250 } 02251 02252 else 02253 { 02254 ret_val = EOB_ACT_LAST_MATCH; 02255 yy_current_buffer->yy_buffer_status = 02256 YY_BUFFER_EOF_PENDING; 02257 } 02258 } 02259 02260 else 02261 ret_val = EOB_ACT_CONTINUE_SCAN; 02262 02263 yy_n_chars += number_to_move; 02264 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; 02265 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; 02266 02267 yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; 02268 02269 return ret_val; 02270 } 02271 02272 02273 /* yy_get_previous_state - get the state just before the EOB char was reached */ 02274 02275 static yy_state_type yy_get_previous_state() 02276 { 02277 register yy_state_type yy_current_state; 02278 register char *yy_cp; 02279 02280 yy_current_state = yy_start; 02281 yy_state_ptr = yy_state_buf; 02282 *yy_state_ptr++ = yy_current_state; 02283 02284 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) 02285 { 02286 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 02287 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 02288 { 02289 yy_current_state = (int) yy_def[yy_current_state]; 02290 if ( yy_current_state >= 366 ) 02291 yy_c = yy_meta[(unsigned int) yy_c]; 02292 } 02293 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 02294 *yy_state_ptr++ = yy_current_state; 02295 } 02296 02297 return yy_current_state; 02298 } 02299 02300 02301 /* yy_try_NUL_trans - try to make a transition on the NUL character 02302 * 02303 * synopsis 02304 * next_state = yy_try_NUL_trans( current_state ); 02305 */ 02306 02307 #ifdef YY_USE_PROTOS 02308 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) 02309 #else 02310 static yy_state_type yy_try_NUL_trans( yy_current_state ) 02311 yy_state_type yy_current_state; 02312 #endif 02313 { 02314 register int yy_is_jam; 02315 02316 register YY_CHAR yy_c = 1; 02317 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 02318 { 02319 yy_current_state = (int) yy_def[yy_current_state]; 02320 if ( yy_current_state >= 366 ) 02321 yy_c = yy_meta[(unsigned int) yy_c]; 02322 } 02323 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 02324 yy_is_jam = (yy_current_state == 365); 02325 if ( ! yy_is_jam ) 02326 *yy_state_ptr++ = yy_current_state; 02327 02328 return yy_is_jam ? 0 : yy_current_state; 02329 } 02330 02331 02332 #ifndef YY_NO_UNPUT 02333 #ifdef YY_USE_PROTOS 02334 static void yyunput( int c, register char *yy_bp ) 02335 #else 02336 static void yyunput( c, yy_bp ) 02337 int c; 02338 register char *yy_bp; 02339 #endif 02340 { 02341 register char *yy_cp = yy_c_buf_p; 02342 02343 /* undo effects of setting up yytext */ 02344 *yy_cp = yy_hold_char; 02345 02346 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) 02347 { /* need to shift things up to make room */ 02348 /* +2 for EOB chars. */ 02349 register int number_to_move = yy_n_chars + 2; 02350 register char *dest = &yy_current_buffer->yy_ch_buf[ 02351 yy_current_buffer->yy_buf_size + 2]; 02352 register char *source = 02353 &yy_current_buffer->yy_ch_buf[number_to_move]; 02354 02355 while ( source > yy_current_buffer->yy_ch_buf ) 02356 *--dest = *--source; 02357 02358 yy_cp += (int) (dest - source); 02359 yy_bp += (int) (dest - source); 02360 yy_current_buffer->yy_n_chars = 02361 yy_n_chars = yy_current_buffer->yy_buf_size; 02362 02363 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) 02364 YY_FATAL_ERROR( "flex scanner push-back overflow" ); 02365 } 02366 02367 *--yy_cp = (char) c; 02368 02369 02370 yytext_ptr = yy_bp; 02371 yy_hold_char = *yy_cp; 02372 yy_c_buf_p = yy_cp; 02373 } 02374 #endif /* ifndef YY_NO_UNPUT */ 02375 02376 02377 #ifdef __cplusplus 02378 static int yyinput() 02379 #else 02380 static int input() 02381 #endif 02382 { 02383 int c; 02384 02385 *yy_c_buf_p = yy_hold_char; 02386 02387 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) 02388 { 02389 /* yy_c_buf_p now points to the character we want to return. 02390 * If this occurs *before* the EOB characters, then it's a 02391 * valid NUL; if not, then we've hit the end of the buffer. 02392 */ 02393 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) 02394 /* This was really a NUL. */ 02395 *yy_c_buf_p = '\0'; 02396 02397 else 02398 { /* need more input */ 02399 int offset = yy_c_buf_p - yytext_ptr; 02400 ++yy_c_buf_p; 02401 02402 switch ( yy_get_next_buffer() ) 02403 { 02404 case EOB_ACT_LAST_MATCH: 02405 /* This happens because yy_g_n_b() 02406 * sees that we've accumulated a 02407 * token and flags that we need to 02408 * try matching the token before 02409 * proceeding. But for input(), 02410 * there's no matching to consider. 02411 * So convert the EOB_ACT_LAST_MATCH 02412 * to EOB_ACT_END_OF_FILE. 02413 */ 02414 02415 /* Reset buffer status. */ 02416 yyrestart( yyin ); 02417 02418 /* fall through */ 02419 02420 case EOB_ACT_END_OF_FILE: 02421 { 02422 if ( yywrap() ) 02423 return EOF; 02424 02425 if ( ! yy_did_buffer_switch_on_eof ) 02426 YY_NEW_FILE; 02427 #ifdef __cplusplus 02428 return yyinput(); 02429 #else 02430 return input(); 02431 #endif 02432 } 02433 02434 case EOB_ACT_CONTINUE_SCAN: 02435 yy_c_buf_p = yytext_ptr + offset; 02436 break; 02437 } 02438 } 02439 } 02440 02441 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ 02442 *yy_c_buf_p = '\0'; /* preserve yytext */ 02443 yy_hold_char = *++yy_c_buf_p; 02444 02445 02446 return c; 02447 } 02448 02449 02450 #ifdef YY_USE_PROTOS 02451 void yyrestart( FILE *input_file ) 02452 #else 02453 void yyrestart( input_file ) 02454 FILE *input_file; 02455 #endif 02456 { 02457 if ( ! yy_current_buffer ) 02458 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); 02459 02460 yy_init_buffer( yy_current_buffer, input_file ); 02461 yy_load_buffer_state(); 02462 } 02463 02464 02465 #ifdef YY_USE_PROTOS 02466 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) 02467 #else 02468 void yy_switch_to_buffer( new_buffer ) 02469 YY_BUFFER_STATE new_buffer; 02470 #endif 02471 { 02472 if ( yy_current_buffer == new_buffer ) 02473 return; 02474 02475 if ( yy_current_buffer ) 02476 { 02477 /* Flush out information for old buffer. */ 02478 *yy_c_buf_p = yy_hold_char; 02479 yy_current_buffer->yy_buf_pos = yy_c_buf_p; 02480 yy_current_buffer->yy_n_chars = yy_n_chars; 02481 } 02482 02483 yy_current_buffer = new_buffer; 02484 yy_load_buffer_state(); 02485 02486 /* We don't actually know whether we did this switch during 02487 * EOF (yywrap()) processing, but the only time this flag 02488 * is looked at is after yywrap() is called, so it's safe 02489 * to go ahead and always set it. 02490 */ 02491 yy_did_buffer_switch_on_eof = 1; 02492 } 02493 02494 02495 #ifdef YY_USE_PROTOS 02496 void yy_load_buffer_state( void ) 02497 #else 02498 void yy_load_buffer_state() 02499 #endif 02500 { 02501 yy_n_chars = yy_current_buffer->yy_n_chars; 02502 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; 02503 yyin = yy_current_buffer->yy_input_file; 02504 yy_hold_char = *yy_c_buf_p; 02505 } 02506 02507 02508 #ifdef YY_USE_PROTOS 02509 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) 02510 #else 02511 YY_BUFFER_STATE yy_create_buffer( file, size ) 02512 FILE *file; 02513 int size; 02514 #endif 02515 { 02516 YY_BUFFER_STATE b; 02517 02518 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); 02519 if ( ! b ) 02520 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 02521 02522 b->yy_buf_size = size; 02523 02524 /* yy_ch_buf has to be 2 characters longer than the size given because 02525 * we need to put in 2 end-of-buffer characters. 02526 */ 02527 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); 02528 if ( ! b->yy_ch_buf ) 02529 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 02530 02531 b->yy_is_our_buffer = 1; 02532 02533 yy_init_buffer( b, file ); 02534 02535 return b; 02536 } 02537 02538 02539 #ifdef YY_USE_PROTOS 02540 void yy_delete_buffer( YY_BUFFER_STATE b ) 02541 #else 02542 void yy_delete_buffer( b ) 02543 YY_BUFFER_STATE b; 02544 #endif 02545 { 02546 if ( ! b ) 02547 return; 02548 02549 if ( b == yy_current_buffer ) 02550 yy_current_buffer = (YY_BUFFER_STATE) 0; 02551 02552 if ( b->yy_is_our_buffer ) 02553 yy_flex_free( (void *) b->yy_ch_buf ); 02554 02555 yy_flex_free( (void *) b ); 02556 } 02557 02558 02559 #ifndef YY_ALWAYS_INTERACTIVE 02560 #ifndef YY_NEVER_INTERACTIVE 02561 #include<unistd.h> 02562 #endif 02563 #endif 02564 02565 #ifdef YY_USE_PROTOS 02566 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) 02567 #else 02568 void yy_init_buffer( b, file ) 02569 YY_BUFFER_STATE b; 02570 FILE *file; 02571 #endif 02572 02573 02574 { 02575 yy_flush_buffer( b ); 02576 02577 b->yy_input_file = file; 02578 b->yy_fill_buffer = 1; 02579 02580 #if YY_ALWAYS_INTERACTIVE 02581 b->yy_is_interactive = 1; 02582 #else 02583 #if YY_NEVER_INTERACTIVE 02584 b->yy_is_interactive = 0; 02585 #else 02586 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 02587 #endif 02588 #endif 02589 } 02590 02591 02592 #ifdef YY_USE_PROTOS 02593 void yy_flush_buffer( YY_BUFFER_STATE b ) 02594 #else 02595 void yy_flush_buffer( b ) 02596 YY_BUFFER_STATE b; 02597 #endif 02598 02599 { 02600 if ( ! b ) 02601 return; 02602 02603 b->yy_n_chars = 0; 02604 02605 /* We always need two end-of-buffer characters. The first causes 02606 * a transition to the end-of-buffer state. The second causes 02607 * a jam in that state. 02608 */ 02609 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 02610 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 02611 02612 b->yy_buf_pos = &b->yy_ch_buf[0]; 02613 02614 b->yy_at_bol = 1; 02615 b->yy_buffer_status = YY_BUFFER_NEW; 02616 02617 if ( b == yy_current_buffer ) 02618 yy_load_buffer_state(); 02619 } 02620 02621 02622 #ifndef YY_NO_SCAN_BUFFER 02623 #ifdef YY_USE_PROTOS 02624 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) 02625 #else 02626 YY_BUFFER_STATE yy_scan_buffer( base, size ) 02627 char *base; 02628 yy_size_t size; 02629 #endif 02630 { 02631 YY_BUFFER_STATE b; 02632 02633 if ( size < 2 || 02634 base[size-2] != YY_END_OF_BUFFER_CHAR || 02635 base[size-1] != YY_END_OF_BUFFER_CHAR ) 02636 /* They forgot to leave room for the EOB's. */ 02637 return 0; 02638 02639 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); 02640 if ( ! b ) 02641 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); 02642 02643 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ 02644 b->yy_buf_pos = b->yy_ch_buf = base; 02645 b->yy_is_our_buffer = 0; 02646 b->yy_input_file = 0; 02647 b->yy_n_chars = b->yy_buf_size; 02648 b->yy_is_interactive = 0; 02649 b->yy_at_bol = 1; 02650 b->yy_fill_buffer = 0; 02651 b->yy_buffer_status = YY_BUFFER_NEW; 02652 02653 yy_switch_to_buffer( b ); 02654 02655 return b; 02656 } 02657 #endif 02658 02659 02660 #ifndef YY_NO_SCAN_STRING 02661 #ifdef YY_USE_PROTOS 02662 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) 02663 #else 02664 YY_BUFFER_STATE yy_scan_string( yy_str ) 02665 yyconst char *yy_str; 02666 #endif 02667 { 02668 int len; 02669 for ( len = 0; yy_str[len]; ++len ) 02670 ; 02671 02672 return yy_scan_bytes( yy_str, len ); 02673 } 02674 #endif 02675 02676 02677 #ifndef YY_NO_SCAN_BYTES 02678 #ifdef YY_USE_PROTOS 02679 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) 02680 #else 02681 YY_BUFFER_STATE yy_scan_bytes( bytes, len ) 02682 yyconst char *bytes; 02683 int len; 02684 #endif 02685 { 02686 YY_BUFFER_STATE b; 02687 char *buf; 02688 yy_size_t n; 02689 int i; 02690 02691 /* Get memory for full buffer, including space for trailing EOB's. */ 02692 n = len + 2; 02693 buf = (char *) yy_flex_alloc( n ); 02694 if ( ! buf ) 02695 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); 02696 02697 for ( i = 0; i < len; ++i ) 02698 buf[i] = bytes[i]; 02699 02700 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; 02701 02702 b = yy_scan_buffer( buf, n ); 02703 if ( ! b ) 02704 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); 02705 02706 /* It's okay to grow etc. this buffer, and we should throw it 02707 * away when we're done. 02708 */ 02709 b->yy_is_our_buffer = 1; 02710 02711 return b; 02712 } 02713 #endif 02714 02715 02716 #ifndef YY_NO_PUSH_STATE 02717 #ifdef YY_USE_PROTOS 02718 static void yy_push_state( int new_state ) 02719 #else 02720 static void yy_push_state( new_state ) 02721 int new_state; 02722 #endif 02723 { 02724 if ( yy_start_stack_ptr >= yy_start_stack_depth ) 02725 { 02726 yy_size_t new_size; 02727 02728 yy_start_stack_depth += YY_START_STACK_INCR; 02729 new_size = yy_start_stack_depth * sizeof( int ); 02730 02731 if ( ! yy_start_stack ) 02732 yy_start_stack = (int *) yy_flex_alloc( new_size ); 02733 02734 else 02735 yy_start_stack = (int *) yy_flex_realloc( 02736 (void *) yy_start_stack, new_size ); 02737 02738 if ( ! yy_start_stack ) 02739 YY_FATAL_ERROR( 02740 "out of memory expanding start-condition stack" ); 02741 } 02742 02743 yy_start_stack[yy_start_stack_ptr++] = YY_START; 02744 02745 BEGIN(new_state); 02746 } 02747 #endif 02748 02749 02750 #ifndef YY_NO_POP_STATE 02751 static void yy_pop_state() 02752 { 02753 if ( --yy_start_stack_ptr < 0 ) 02754 YY_FATAL_ERROR( "start-condition stack underflow" ); 02755 02756 BEGIN(yy_start_stack[yy_start_stack_ptr]); 02757 } 02758 #endif 02759 02760 02761 #ifndef YY_NO_TOP_STATE 02762 static int yy_top_state() 02763 { 02764 return yy_start_stack[yy_start_stack_ptr - 1]; 02765 } 02766 #endif 02767 02768 #ifndef YY_EXIT_FAILURE 02769 #define YY_EXIT_FAILURE 2 02770 #endif 02771 02772 #ifdef YY_USE_PROTOS 02773 static void yy_fatal_error( yyconst char msg[] ) 02774 #else 02775 static void yy_fatal_error( msg ) 02776 char msg[]; 02777 #endif 02778 { 02779 (void) fprintf( stderr, "%s\n", msg ); 02780 exit( YY_EXIT_FAILURE ); 02781 } 02782 02783 02784 02785 /* Redefine yyless() so it works in section 3 code. */ 02786 02787 #undef yyless 02788 #define yyless(n) \ 02789 do \ 02790 { \ 02791 /* Undo effects of setting up yytext. */ \ 02792 yytext[yyleng] = yy_hold_char; \ 02793 yy_c_buf_p = yytext + n; \ 02794 yy_hold_char = *yy_c_buf_p; \ 02795 *yy_c_buf_p = '\0'; \ 02796 yyleng = n; \ 02797 } \ 02798 while ( 0 ) 02799 02800 02801 /* Internal utility routines. */ 02802 02803 #ifndef yytext_ptr 02804 #ifdef YY_USE_PROTOS 02805 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) 02806 #else 02807 static void yy_flex_strncpy( s1, s2, n ) 02808 char *s1; 02809 yyconst char *s2; 02810 int n; 02811 #endif 02812 { 02813 register int i; 02814 for ( i = 0; i < n; ++i ) 02815 s1[i] = s2[i]; 02816 } 02817 #endif 02818 02819 #ifdef YY_NEED_STRLEN 02820 #ifdef YY_USE_PROTOS 02821 static int yy_flex_strlen( yyconst char *s ) 02822 #else 02823 static int yy_flex_strlen( s ) 02824 yyconst char *s; 02825 #endif 02826 { 02827 register int n; 02828 for ( n = 0; s[n]; ++n ) 02829 ; 02830 02831 return n; 02832 } 02833 #endif 02834 02835 02836 #ifdef YY_USE_PROTOS 02837 static void *yy_flex_alloc( yy_size_t size ) 02838 #else 02839 static void *yy_flex_alloc( size ) 02840 yy_size_t size; 02841 #endif 02842 { 02843 return (void *) malloc( size ); 02844 } 02845 02846 #ifdef YY_USE_PROTOS 02847 static void *yy_flex_realloc( void *ptr, yy_size_t size ) 02848 #else 02849 static void *yy_flex_realloc( ptr, size ) 02850 void *ptr; 02851 yy_size_t size; 02852 #endif 02853 { 02854 /* The cast to (char *) in the following accommodates both 02855 * implementations that use char* generic pointers, and those 02856 * that use void* generic pointers. It works with the latter 02857 * because both ANSI C and C++ allow castless assignment from 02858 * any pointer type to void*, and deal with argument conversions 02859 * as though doing an assignment. 02860 */ 02861 return (void *) realloc( (char *) ptr, size ); 02862 } 02863 02864 #ifdef YY_USE_PROTOS 02865 static void yy_flex_free( void *ptr ) 02866 #else 02867 static void yy_flex_free( ptr ) 02868 void *ptr; 02869 #endif 02870 { 02871 free( ptr ); 02872 } 02873 02874 #if YY_MAIN 02875 int main() 02876 { 02877 yylex(); 02878 return 0; 02879 } 02880 #endif 02881 #line 468 "scanner.ll" 02882 02883 02884 void kscriptInitFlex( const char *_code, int extension, KLocale* locale ) 02885 { 02886 s_koscript_locale = locale; 02887 if ( !s_koscript_locale ) 02888 { 02889 if ( !s_defaultLocale ) 02890 s_defaultLocale = new KSLocale; 02891 s_koscript_locale = s_defaultLocale; 02892 } 02893 if ( extension == KSCRIPT_EXTENSION_KSPREAD ) 02894 s_kspread = TRUE; 02895 else 02896 s_kspread = FALSE; 02897 yy_switch_to_buffer( yy_scan_string( _code ) ); 02898 } 02899 02900 void kscriptInitFlex( int extension, KLocale* locale ) 02901 { 02902 s_koscript_locale = locale; 02903 if ( !s_koscript_locale ) 02904 { 02905 if ( !s_defaultLocale ) 02906 s_defaultLocale = new KSLocale; 02907 s_koscript_locale = s_defaultLocale; 02908 } 02909 if ( extension == KSCRIPT_EXTENSION_KSPREAD ) 02910 s_kspread = TRUE; 02911 else 02912 s_kspread = FALSE; 02913 } 02914 02915 void kspread_mode() 02916 { 02917 BEGIN( KSPREAD ); 02918 }
KDE Logo
This file is part of the documentation for lib Library Version 1.3.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Sep 28 04:04:03 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003