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