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 }