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
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
#include <unistd.h>
00027
00028
00029
#define YY_USE_PROTOS
00030
00031
00032
#define YY_USE_CONST
00033
00034
#else
00035
00036
#if __STDC__
00037
00038
#define YY_USE_PROTOS
00039
#define YY_USE_CONST
00040
00041
#endif
00042
#endif
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
00067
#define YY_NULL 0
00068
00069
00070
00071
00072
00073
00074
#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00075
00076
00077
00078
00079
00080
#define BEGIN yy_start = 1 + 2 *
00081
00082
00083
00084
00085
00086
#define YY_START ((yy_start - 1) / 2)
00087
#define YYSTATE YY_START
00088
00089
00090
#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00091
00092
00093
#define YY_NEW_FILE yyrestart( yyin )
00094
00095
#define YY_END_OF_BUFFER_CHAR 0
00096
00097
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
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
#define yyless(n) \
00126
do \
00127
{ \
00128
\
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; \
00133 } \
00134 while ( 0 )
00135
00136
#define unput(c) yyunput( c, yytext_ptr )
00137
00138
00139
00140
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;
00150
char *yy_buf_pos;
00151
00152
00153
00154
00155 yy_size_t yy_buf_size;
00156
00157
00158
00159
00160
int yy_n_chars;
00161
00162
00163
00164
00165
00166
int yy_is_our_buffer;
00167
00168
00169
00170
00171
00172
00173
int yy_is_interactive;
00174
00175
00176
00177
00178
00179
int yy_at_bol;
00180
00181
00182
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
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
#define YY_BUFFER_EOF_PENDING 2
00200
};
00201
00202
static YY_BUFFER_STATE yy_current_buffer = 0;
00203
00204
00205
00206
00207
00208
#define YY_CURRENT_BUFFER yy_current_buffer
00209
00210
00211
00212
static char yy_hold_char;
00213
00214
static int yy_n_chars;
00215
00216
00217
int yyleng;
00218
00219
00220
static char *yy_c_buf_p = (
char *) 0;
00221
static int yy_init = 1;
00222
static int yy_start = 0;
00223
00224
00225
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
00282
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; \
00935 yy_cp = yy_full_match; \
00936 yy_lp = yy_full_lp; \
00937 yy_state_ptr = yy_full_state; \
00938 yy_current_state = *yy_state_ptr; \
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
00949
00950
00951
00952
00953
00954
00955
00956
00957
00958
00959
00960
00961
00962
00963
00964
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
01019
01020
01021
01022
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':
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
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
01121
#define KSPREAD 1
01122
01123
01124
#define PLAIN 2
01125
01126
01127
#define REGEXP_GROUP 3
01128
01129
01130
01131
01132
01133
#line 1134 "scanner.cc"
01134
01135
01136
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
01196
01197
01198
01199
#endif
01200
#endif
01201
01202
01203
#ifndef YY_READ_BUF_SIZE
01204
#define YY_READ_BUF_SIZE 8192
01205
#endif
01206
01207
01208
01209
#ifndef ECHO
01210
01211
01212
01213
#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
01214
#endif
01215
01216
01217
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
01239
01240
01241
01242
#ifndef yyterminate
01243
#define yyterminate() return YY_NULL
01244
#endif
01245
01246
01247
#ifndef YY_START_STACK_INCR
01248
#define YY_START_STACK_INCR 25
01249
#endif
01250
01251
01252
#ifndef YY_FATAL_ERROR
01253
#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
01254
#endif
01255
01256
01257
01258
01259
#ifndef YY_DECL
01260
#define YY_DECL int yylex YY_PROTO(( void ))
01261
#endif
01262
01263
01264
01265
01266
#ifndef YY_USER_ACTION
01267
#define YY_USER_ACTION
01268
#endif
01269
01270
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;
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 )
01314 {
01315 yy_cp = yy_c_buf_p;
01316
01317
01318 *yy_cp = yy_hold_char;
01319
01320
01321
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:
01348
for ( ; ; )
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:
01387
01388
01389
switch ( yy_act )
01390 {
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
01907
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
02008
int yy_amount_of_matched_text = (
int) (yy_cp - yytext_ptr) - 1;
02009
02010
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
02017
02018
02019
02020
02021
02022
02023
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
02031
02032
02033
02034
02035
02036
02037
if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
02038 {
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
02046
02047
02048
02049
02050
02051
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
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
02082
02083
02084
02085
02086
02087
02088
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 }
02131 }
02132 }
02133
02134
02135
02136
02137
02138
02139
02140
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 {
02156
if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
02157 {
02158
02159
02160
02161
return EOB_ACT_END_OF_FILE;
02162 }
02163
02164
else
02165 {
02166
02167
02168
02169
return EOB_ACT_LAST_MATCH;
02170 }
02171 }
02172
02173
02174
02175
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
02183
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 {
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
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
02216 yy_flex_realloc( (
void *) b->yy_ch_buf,
02217 b->yy_buf_size + 2 );
02218 }
02219
else
02220
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
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
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
02302
02303
02304
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
02344 *yy_cp = yy_hold_char;
02345
02346
if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
02347 {
02348
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
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
02390
02391
02392
02393
if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
02394
02395 *yy_c_buf_p =
'\0';
02396
02397
else
02398 {
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
02406
02407
02408
02409
02410
02411
02412
02413
02414
02415
02416 yyrestart( yyin );
02417
02418
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;
02442 *yy_c_buf_p =
'\0';
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
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
02487
02488
02489
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
02525
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
02606
02607
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
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;
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
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
02707
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
02786
02787
#undef yyless
02788
#define yyless(n) \
02789
do \
02790
{ \
02791
\
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
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
02855
02856
02857
02858
02859
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 }