00001 #define yyFlexLexer ptbFlexLexer
00002
00003 #line 4 "PtbTokenizer.cpp"
00004
00005
00006
00007
00008
00009
00010 #define FLEX_SCANNER
00011 #define YY_FLEX_MAJOR_VERSION 2
00012 #define YY_FLEX_MINOR_VERSION 5
00013
00014
00015
00016
00017 #ifdef c_plusplus
00018 #ifndef __cplusplus
00019 #define __cplusplus
00020 #endif
00021 #endif
00022
00023
00024 #ifdef __cplusplus
00025
00026 #include <stdlib.h>
00027 #include <iostream>
00028
00029
00030 #define YY_USE_PROTOS
00031
00032
00033 #define YY_USE_CONST
00034
00035 #else
00036
00037 #if __STDC__
00038
00039 #define YY_USE_PROTOS
00040 #define YY_USE_CONST
00041
00042 #endif
00043 #endif
00044
00045 #ifdef __TURBOC__
00046 #pragma warn -rch
00047 #pragma warn -use
00048 #include <io.h>
00049 #include <stdlib.h>
00050 #define YY_USE_CONST
00051 #define YY_USE_PROTOS
00052 #endif
00053
00054 #ifdef YY_USE_CONST
00055 #define yyconst const
00056 #else
00057 #define yyconst
00058 #endif
00059
00060
00061 #ifdef YY_USE_PROTOS
00062 #define YY_PROTO(proto) proto
00063 #else
00064 #define YY_PROTO(proto) ()
00065 #endif
00066
00067
00068 #define YY_NULL 0
00069
00070
00071
00072
00073
00074
00075 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
00076
00077
00078
00079
00080
00081 #define BEGIN yy_start = 1 + 2 *
00082
00083
00084
00085
00086
00087 #define YY_START ((yy_start - 1) / 2)
00088 #define YYSTATE YY_START
00089
00090
00091 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
00092
00093
00094 #define YY_NEW_FILE yyrestart( yyin )
00095
00096 #define YY_END_OF_BUFFER_CHAR 0
00097
00098
00099 #define YY_BUF_SIZE 16384
00100
00101 typedef struct yy_buffer_state *YY_BUFFER_STATE;
00102
00103 extern int yyleng;
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 #ifdef __GNUC__
00142 #define YY_MAY_BE_UNUSED __attribute__((unused))
00143 #else
00144 #define YY_MAY_BE_UNUSED
00145 #endif
00146
00147
00148
00149
00150
00151 typedef unsigned int yy_size_t;
00152
00153
00154 struct yy_buffer_state
00155 {
00156 std::istream* yy_input_file;
00157
00158 char *yy_ch_buf;
00159 char *yy_buf_pos;
00160
00161
00162
00163
00164 yy_size_t yy_buf_size;
00165
00166
00167
00168
00169 int yy_n_chars;
00170
00171
00172
00173
00174
00175 int yy_is_our_buffer;
00176
00177
00178
00179
00180
00181
00182 int yy_is_interactive;
00183
00184
00185
00186
00187
00188 int yy_at_bol;
00189
00190
00191
00192
00193 int yy_fill_buffer;
00194
00195 int yy_buffer_status;
00196 #define YY_BUFFER_NEW 0
00197 #define YY_BUFFER_NORMAL 1
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208 #define YY_BUFFER_EOF_PENDING 2
00209 };
00210
00211
00212
00213
00214
00215
00216 #define YY_CURRENT_BUFFER yy_current_buffer
00217
00218
00219
00220 static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
00221 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED;
00222 static void yy_flex_free YY_PROTO(( void * ));
00223
00224 #define yy_new_buffer yy_create_buffer
00225
00226 #define yy_set_interactive(is_interactive) \
00227 { \
00228 if ( ! yy_current_buffer ) \
00229 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
00230 yy_current_buffer->yy_is_interactive = is_interactive; \
00231 }
00232
00233 #define yy_set_bol(at_bol) \
00234 { \
00235 if ( ! yy_current_buffer ) \
00236 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
00237 yy_current_buffer->yy_at_bol = at_bol; \
00238 }
00239
00240 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
00241
00242
00243 #define YY_USES_REJECT
00244
00245 #define yywrap() 1
00246 #define YY_SKIP_YYWRAP
00247 typedef unsigned char YY_CHAR;
00248 #define yytext_ptr yytext
00249 #define YY_INTERACTIVE
00250
00251 #include "FlexLexer.h"
00252
00253
00254
00255
00256
00257 #define YY_DO_BEFORE_ACTION \
00258 yytext_ptr = yy_bp; \
00259 yyleng = (int) (yy_cp - yy_bp); \
00260 yy_hold_char = *yy_cp; \
00261 *yy_cp = '\0'; \
00262 yy_c_buf_p = yy_cp;
00263
00264 #define YY_NUM_RULES 53
00265 #define YY_END_OF_BUFFER 54
00266 static yyconst short int yy_acclist[890] =
00267 { 0,
00268 43, 43, 54, 52, 53, 50, 52, 53, 53, 45,
00269 52, 53, 28, 52, 53, 17, 42, 52, 53, 17,
00270 52, 53, 31, 52, 53, 31, 52, 53, 29, 52,
00271 53, 38, 52, 53, 39, 52, 53, 43, 52, 53,
00272 30, 52, 53, 44, 52, 53, 40, 52, 53, 45,
00273 52, 53, 47, 52, 53, 14, 52, 53, 14, 52,
00274 53, 44, 52, 53, 34, 52, 53, 46, 52, 53,
00275 35, 52, 53, 42, 52, 53, 7, 52, 53,16389,
00276 16406, 7, 52, 53,16389,16406, 7, 52, 53,16389,
00277 16406, 7, 52, 53,16389,16406, 7, 52, 53,16389,
00278
00279 16406, 7, 52, 53,16389,16406, 7, 52, 53,16389,
00280 16406, 7, 52, 53,16389,16406, 7, 52, 53,16389,
00281 16406, 7, 52, 53,16389,16406, 7, 52, 53,16389,
00282 16406, 7, 52, 53,16389,16406, 7, 52, 53,16389,
00283 16406, 7, 52, 53,16389,16406, 7, 52, 53,16389,
00284 16406, 7, 52, 53,16389,16406, 7, 52, 53,16389,
00285 16406, 7, 52, 53,16389,16406, 7, 52, 53,16389,
00286 16406, 7, 52, 53,16389,16406, 7, 52, 53,16389,
00287 16406, 7, 52, 53,16389,16406, 34, 52, 53, 33,
00288 43, 52, 53, 32, 52, 53, 42, 52, 53, 29,
00289
00290 52, 53, 7, 52, 53,16389,16406, 7, 52, 53,
00291 16389,16406, 7, 52, 53,16389,16406, 7, 52, 53,
00292 16389,16406, 7, 52, 53,16389, 7, 52, 53,16389,
00293 7, 52, 53,16389, 7, 52, 53,16389, 7, 52,
00294 53,16389, 7, 52, 53,16389, 7, 52, 53,16389,
00295 16405, 7, 52, 53,16389, 7, 52, 53,16389,16406,
00296 36, 52, 53, 33, 52, 53, 37, 52, 53, 29,
00297 52, 53, 50, 52, 53, 50, 27, 42, 29, 43,
00298 14, 14, 40, 14, 49, 49, 49, 42, 8214, 17,
00299 20, 7, 49,16389, 7, 49,16389, 7, 49,16389,
00300
00301 7, 49,16389, 7, 49,16389, 7, 49,16389, 7,
00302 49,16389, 7, 49,16389, 7, 49,16389, 7, 49,
00303 16389, 7, 49,16389, 7, 49,16389,16405, 7, 49,
00304 16389, 7, 49,16389, 7, 49,16389,16405, 7, 49,
00305 16389, 7, 49,16389,16406, 7, 49,16389, 7, 49,
00306 16389, 7, 49,16389, 7, 49,16389, 7, 49,16389,
00307 7, 49,16389,16405, 7, 49,16389, 7, 49,16389,
00308 7, 49,16389, 7, 49,16389, 7, 49,16389, 7,
00309 49,16389, 7, 49,16389,16405, 7, 49,16389, 7,
00310 49,16389, 7, 49,16389, 7, 49,16389,16406, 7,
00311
00312 49,16389, 7, 49,16389, 7, 49,16389, 7, 49,
00313 16389,16405, 7, 49,16389,16406, 7, 49,16389, 7,
00314 49,16389, 7, 49,16389, 7, 49,16389,16405, 7,
00315 49,16389, 7, 49,16389, 7, 49,16389, 7, 49,
00316 16389,16405, 7, 49,16389, 7, 49,16389, 7, 49,
00317 16389, 7, 49,16389, 7, 49,16389, 7, 49,16389,
00318 7, 49,16389, 7, 49,16389, 7, 49,16389, 7,
00319 49,16389, 7, 49,16389, 7, 49,16389, 7, 49,
00320 16389, 20, 7, 49,16389, 7, 49,16389, 7, 49,
00321 16389, 7, 49,16389, 43, 42, 8214, 20, 49, 7,
00322
00323 49,16389, 7, 49,16389, 7, 49,16389, 7, 49,
00324 16389, 7, 49,16389, 8213, 19,16402, 10, 8, 14,
00325 41, 14, 15, 16, 16, 14, 49, 49, 49, 1,
00326 49, 4, 49, 49, 49, 49, 49, 49, 25, 25,
00327 16406,16407, 7, 49,16389, 7, 49,16389, 7, 49,
00328 16389, 49, 7, 49,16389, 7, 49,16389, 7, 49,
00329 16389, 4, 19,16402, 7, 49,16389, 7, 49,16389,
00330 16405, 7, 49,16389, 7, 49,16389, 7, 49,16389,
00331 7, 49,16389,16406, 7, 49,16389, 7, 49,16389,
00332 7, 49,16389,16405, 4, 4, 20, 7, 49,16389,
00333
00334 7, 49,16389,16405, 7, 49,16389,16406, 7, 49,
00335 16389,16405, 7, 49,16389, 7, 49,16389,16405, 7,
00336 49,16389, 7, 49,16389, 7, 49,16389, 7, 49,
00337 16389, 7, 49,16389, 7, 49,16389, 7, 49,16389,
00338 16405, 12, 7, 49,16389, 7, 49,16389, 7, 49,
00339 16389,16406, 49, 7, 49,16389,16406, 7, 49,16389,
00340 16405, 7, 49,16389, 7, 49,16389, 7, 49,16389,
00341 7, 49,16389, 7, 49,16389, 7, 49,16389,16405,
00342 7, 49,16389,16405,16406,16407, 7, 49,16389,16406,
00343 16407,16405,16406,16407, 16, 49, 7, 49,16389, 49,
00344
00345 7, 49,16389, 7, 49,16389, 8, 3, 2, 3,
00346 11, 8, 41, 48, 48, 48, 48, 15, 16, 15,
00347 16, 33, 49, 8197, 48, 48, 49, 8214, 8215, 8215,
00348 20, 6, 7, 49,16389, 7, 49,16389, 7, 49,
00349 16389,16405, 8197, 8197, 7, 49,16389, 7, 49,16389,
00350 7, 49,16389, 7, 49,16389, 7, 49,16389,16406,
00351 16408, 7, 49,16389, 7, 49,16389, 7, 49,16389,
00352 7, 49,16389, 20, 48, 48, 8214, 8215, 20, 8213,
00353 8214, 8215, 19, 20,16402, 16, 49, 7, 49,16389,
00354 7, 49,16389, 49, 7, 49,16389, 8210, 8210, 8,
00355
00356 14, 41, 41, 16, 16, 7, 49,16389, 48, 48,
00357 48, 7, 49,16389, 7, 49,16389, 7, 49,16389,
00358 8216, 7, 49,16389, 7, 49,16389,16406,16406,16406,
00359 16406,16406,16406,16406,16407, 16,16406, 16,16406, 49,
00360 16406, 49,16406,16406, 7,16389, 51, 28, 13, 13,
00361 48, 13, 16, 7, 49,16389, 7, 49,16389, 20,
00362 20, 8214, 48, 20, 20, 41, 13, 13, 48, 13,
00363 16, 8, 7, 49,16389,16406,16407, 13, 13, 13,
00364 16, 7, 49,16389,16406,16407, 20, 9, 26
00365 } ;
00366
00367 static yyconst short int yy_accept[593] =
00368 { 0,
00369 1, 2, 3, 4, 6, 9, 10, 13, 16, 20,
00370 23, 26, 29, 32, 35, 38, 41, 44, 47, 50,
00371 53, 56, 59, 62, 65, 68, 71, 74, 77, 82,
00372 87, 92, 97, 102, 107, 112, 117, 122, 127, 132,
00373 137, 142, 147, 152, 157, 162, 167, 172, 177, 182,
00374 187, 190, 194, 197, 200, 203, 208, 213, 218, 223,
00375 227, 231, 235, 239, 243, 247, 252, 256, 261, 264,
00376 267, 270, 273, 276, 277, 278, 279, 279, 279, 279,
00377 279, 279, 279, 279, 279, 279, 279, 279, 279, 279,
00378 279, 279, 279, 279, 280, 280, 280, 280, 280, 280,
00379
00380 280, 280, 280, 280, 280, 280, 280, 280, 280, 281,
00381 281, 282, 283, 284, 284, 284, 284, 284, 284, 284,
00382 284, 284, 286, 287, 287, 287, 288, 288, 288, 289,
00383 290, 291, 291, 291, 291, 291, 292, 292, 295, 298,
00384 298, 298, 301, 304, 307, 310, 313, 316, 319, 322,
00385 325, 325, 329, 332, 335, 339, 339, 342, 346, 349,
00386 352, 355, 358, 361, 365, 368, 371, 374, 377, 380,
00387 383, 387, 390, 393, 396, 400, 403, 406, 409, 413,
00388 417, 417, 420, 423, 426, 430, 433, 436, 439, 443,
00389 446, 449, 452, 455, 455, 458, 461, 464, 467, 470,
00390
00391 473, 476, 479, 482, 483, 486, 489, 492, 495, 496,
00392 497, 497, 498, 498, 498, 498, 498, 499, 499, 500,
00393 503, 506, 506, 506, 506, 506, 506, 509, 512, 512,
00394 515, 516, 518, 518, 518, 518, 518, 518, 518, 518,
00395 518, 518, 518, 518, 518, 518, 518, 518, 519, 520,
00396 520, 520, 520, 521, 521, 521, 521, 521, 521, 521,
00397 521, 521, 522, 523, 523, 523, 523, 523, 523, 523,
00398 523, 523, 525, 526, 528, 528, 529, 530, 530, 531,
00399 532, 533, 533, 533, 533, 533, 533, 533, 533, 534,
00400 535, 536, 537, 538, 539, 540, 541, 543, 543, 546,
00401
00402 549, 549, 552, 553, 556, 559, 562, 563, 565, 568,
00403 572, 575, 578, 581, 585, 588, 591, 595, 595, 595,
00404 596, 596, 596, 596, 597, 597, 597, 597, 598, 601,
00405 605, 609, 613, 616, 620, 623, 626, 629, 632, 635,
00406 638, 642, 643, 646, 649, 653, 654, 658, 662, 665,
00407 668, 671, 674, 677, 681, 685, 687, 690, 690, 690,
00408 690, 692, 695, 696, 697, 700, 701, 704, 707, 707,
00409 708, 708, 709, 711, 711, 711, 711, 711, 711, 711,
00410 711, 712, 713, 713, 713, 713, 714, 715, 716, 717,
00411 717, 718, 718, 718, 718, 718, 718, 718, 718, 718,
00412
00413 718, 720, 720, 722, 724, 725, 726, 727, 728, 730,
00414 731, 732, 733, 733, 736, 739, 743, 743, 743, 743,
00415 743, 743, 744, 745, 748, 751, 754, 757, 761, 762,
00416 762, 765, 768, 771, 774, 775, 775, 775, 775, 776,
00417 777, 777, 777, 779, 780, 783, 786, 786, 787, 787,
00418 788, 788, 788, 788, 788, 788, 791, 794, 795, 798,
00419 798, 798, 799, 799, 800, 800, 800, 800, 800, 800,
00420 800, 800, 801, 802, 802, 803, 804, 804, 804, 804,
00421 804, 804, 804, 804, 804, 804, 805, 806, 809, 810,
00422 810, 811, 811, 812, 815, 818, 821, 822, 822, 825,
00423
00424 829, 829, 830, 831, 832, 833, 834, 836, 838, 840,
00425 842, 844, 845, 845, 845, 845, 845, 845, 845, 845,
00426 847, 848, 849, 849, 849, 849, 850, 851, 851, 851,
00427 851, 851, 851, 852, 854, 857, 857, 860, 860, 861,
00428 862, 864, 865, 866, 866, 866, 866, 866, 866, 866,
00429 867, 868, 869, 869, 869, 870, 870, 872, 873, 876,
00430 876, 876, 878, 878, 878, 879, 880, 880, 880, 882,
00431 885, 887, 887, 887, 888, 888, 888, 888, 888, 889,
00432 889, 889, 889, 889, 889, 889, 889, 889, 889, 890,
00433 890, 890
00434
00435 } ;
00436
00437 static yyconst int yy_ec[256] =
00438 { 0,
00439 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
00440 1, 4, 4, 1, 1, 1, 1, 1, 1, 1,
00441 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00442 1, 5, 6, 7, 8, 9, 10, 11, 12, 13,
00443 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
00444 23, 23, 23, 23, 24, 23, 23, 25, 26, 27,
00445 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
00446 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
00447 48, 49, 50, 51, 52, 53, 54, 55, 55, 55,
00448 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
00449
00450 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
00451 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
00452 86, 87, 88, 89, 90, 91, 1, 1, 1, 1,
00453 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00454 1, 1, 1, 1, 1, 92, 1, 1, 1, 1,
00455 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00456 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00457 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00458 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00459 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00460
00461 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00462 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00463 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00464 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00465 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
00466 1, 1, 1, 1, 1
00467 } ;
00468
00469 static yyconst int yy_meta[94] =
00470 { 0,
00471 1, 2, 3, 4, 2, 5, 4, 1, 6, 7,
00472 8, 9, 4, 4, 1, 10, 7, 11, 12, 13,
00473 14, 14, 14, 14, 15, 16, 17, 1, 4, 1,
00474 1, 18, 18, 18, 18, 18, 18, 18, 18, 18,
00475 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
00476 18, 18, 18, 18, 18, 1, 19, 1, 1, 20,
00477 1, 21, 22, 22, 22, 21, 22, 22, 22, 21,
00478 22, 22, 22, 22, 22, 21, 22, 22, 22, 22,
00479 22, 21, 22, 22, 22, 22, 22, 1, 4, 1,
00480 1, 9, 1
00481
00482 } ;
00483
00484 static yyconst short int yy_base[626] =
00485 { 0,
00486 0, 0, 1553, 5059, 92, 5059, 5059, 0, 1540, 5059,
00487 5059, 90, 161, 82, 5059, 1532, 91, 96, 126, 104,
00488 5059, 198, 228, 5059, 1526, 5059, 5059, 1505, 287, 97,
00489 331, 194, 338, 315, 360, 367, 382, 389, 405, 433,
00490 456, 478, 499, 515, 420, 534, 556, 567, 580, 602,
00491 5059, 1477, 5059, 1469, 1467, 688, 780, 871, 90, 188,
00492 397, 804, 134, 822, 522, 809, 810, 109, 5059, 5059,
00493 5059, 1515, 5059, 130, 5059, 1514, 207, 1477, 1436, 1437,
00494 1401, 97, 1392, 1383, 200, 1366, 99, 1345, 1343, 1357,
00495 1348, 213, 1321, 5059, 1380, 1332, 0, 1318, 1348, 1353,
00496
00497 1336, 1297, 99, 1291, 1285, 1288, 242, 825, 1330, 293,
00498 835, 886, 1326, 149, 153, 1321, 1320, 1316, 544, 898,
00499 361, 934, 917, 1310, 1264, 951, 1291, 1298, 1282, 207,
00500 5059, 954, 952, 967, 1039, 1117, 0, 1135, 383, 1292,
00501 1217, 1039, 1227, 1229, 1271, 1273, 1277, 1292, 1298, 1303,
00502 1288, 458, 1323, 1331, 1354, 1426, 1512, 220, 1513, 1514,
00503 1518, 1533, 1537, 1040, 1538, 1539, 872, 1560, 1572, 1568,
00504 1581, 1596, 1597, 1616, 482, 1622, 1637, 1646, 1665, 412,
00505 1723, 55, 1673, 1678, 1694, 1713, 1722, 1742, 1740, 1766,
00506 1779, 1788, 1807, 604, 1808, 1816, 1831, 1835, 1837, 1273,
00507
00508 1857, 1858, 1870, 1395, 1876, 1900, 1901, 1902, 1250, 1242,
00509 1226, 384, 106, 937, 1881, 1948, 1985, 1221, 1368, 1933,
00510 1972, 273, 212, 561, 1214, 83, 1961, 1939, 2002, 2010,
00511 252, 547, 809, 1233, 1248, 1221, 1178, 1161, 1161, 1156,
00512 1113, 1088, 1069, 1070, 1061, 1053, 1048, 5059, 5059, 0,
00513 1056, 1385, 5059, 2069, 1095, 1067, 1007, 1001, 995, 990,
00514 1010, 993, 2082, 2107, 1433, 2183, 2190, 2050, 2197, 2204,
00515 2211, 1046, 992, 2236, 765, 940, 2252, 968, 5059, 0,
00516 5059, 949, 952, 948, 906, 901, 900, 1142, 2309, 900,
00517 887, 869, 871, 919, 915, 5059, 859, 964, 0, 534,
00518
00519 143, 168, 0, 2280, 2279, 2295, 215, 2365, 883, 433,
00520 2303, 2374, 2387, 464, 2392, 2396, 2031, 844, 2478, 0,
00521 857, 863, 843, 805, 227, 126, 340, 1021, 2405, 2411,
00522 868, 2416, 2443, 2532, 2473, 2481, 2538, 2540, 2544, 2562,
00523 2566, 5059, 2564, 2582, 906, 783, 2231, 2586, 2591, 2610,
00524 2615, 821, 2626, 2638, 2657, 2016, 2658, 0, 2750, 2843,
00525 2936, 2060, 3029, 3122, 3215, 3308, 2692, 2726, 778, 2747,
00526 649, 5059, 5059, 763, 781, 765, 756, 749, 732, 725,
00527 5059, 711, 2691, 765, 672, 668, 5059, 2936, 772, 796,
00528 3381, 0, 2420, 2218, 2669, 3388, 633, 3396, 847, 1074,
00529
00530 2316, 0, 2436, 2775, 5059, 0, 3461, 3538, 373, 653,
00531 1420, 5059, 273, 2721, 3425, 2727, 3598, 622, 1288, 3681,
00532 3731, 0, 0, 3741, 3743, 3427, 3785, 501, 805, 3757,
00533 3797, 3793, 3881, 3967, 2981, 615, 284, 3820, 609, 0,
00534 607, 2951, 921, 3430, 1051, 3972, 598, 616, 986, 3849,
00535 75, 457, 1493, 3957, 1219, 4006, 4015, 468, 4027, 417,
00536 572, 1324, 621, 5059, 549, 545, 598, 549, 582, 580,
00537 535, 5059, 1353, 2993, 585, 5059, 2961, 1202, 570, 3682,
00538 4033, 3828, 3444, 568, 3437, 1359, 0, 4059, 525, 4151,
00539 1668, 0, 0, 3997, 4211, 4212, 1191, 494, 4080, 1657,
00540
00541 496, 910, 1744, 4082, 1592, 4091, 2246, 1621, 1846, 4216,
00542 1994, 4060, 522, 4111, 473, 502, 489, 439, 434, 1700,
00543 5059, 0, 1461, 1801, 477, 3545, 1870, 4304, 4228, 4245,
00544 4235, 456, 507, 1964, 4282, 387, 4276, 4318, 5059, 416,
00545 385, 0, 0, 410, 379, 340, 362, 849, 2017, 296,
00546 4123, 2074, 4327, 4349, 521, 4357, 2280, 4390, 4386, 570,
00547 0, 2597, 400, 275, 4386, 5059, 4393, 240, 0, 4417,
00548 2663, 260, 4429, 252, 2410, 623, 237, 423, 4466, 2448,
00549 218, 214, 169, 2698, 430, 128, 2793, 140, 5059, 47,
00550 5059, 4551, 4567, 4585, 4606, 4628, 4642, 4651, 4660, 4669,
00551
00552 4691, 4706, 4721, 4743, 4750, 4772, 4794, 4815, 4820, 1000,
00553 4829, 4841, 4857, 4873, 4882, 4897, 4911, 4920, 4938, 4960,
00554 4975, 4992, 1266, 5014, 5036
00555 } ;
00556
00557 static yyconst short int yy_def[626] =
00558 { 0,
00559 591, 1, 591, 591, 591, 591, 591, 592, 591, 591,
00560 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
00561 591, 593, 593, 591, 594, 591, 591, 591, 591, 29,
00562 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
00563 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
00564 591, 591, 591, 591, 591, 591, 595, 595, 58, 58,
00565 58, 58, 58, 58, 58, 58, 58, 58, 591, 591,
00566 591, 13, 591, 591, 591, 591, 591, 591, 591, 591,
00567 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
00568 591, 591, 591, 591, 591, 591, 596, 591, 591, 591,
00569
00570 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
00571 591, 591, 591, 591, 591, 591, 591, 597, 597, 598,
00572 599, 593, 593, 591, 600, 593, 601, 594, 591, 591,
00573 591, 602, 591, 602, 591, 603, 599, 591, 138, 591,
00574 600, 58, 58, 58, 58, 58, 58, 58, 58, 58,
00575 591, 138, 58, 58, 58, 591, 58, 58, 58, 58,
00576 58, 58, 58, 58, 58, 58, 138, 58, 58, 58,
00577 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
00578 591, 138, 58, 58, 58, 58, 58, 58, 58, 58,
00579 58, 58, 58, 134, 58, 58, 58, 58, 58, 138,
00580
00581 58, 58, 58, 603, 58, 58, 58, 58, 591, 591,
00582 591, 591, 597, 591, 591, 598, 603, 599, 593, 58,
00583 58, 591, 600, 591, 216, 217, 58, 58, 591, 58,
00584 591, 217, 591, 591, 591, 591, 591, 591, 591, 591,
00585 591, 591, 591, 591, 591, 591, 591, 591, 591, 604,
00586 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
00587 591, 591, 597, 591, 264, 264, 264, 264, 264, 264,
00588 264, 599, 599, 593, 599, 600, 593, 601, 591, 134,
00589 591, 591, 591, 591, 591, 591, 591, 264, 264, 289,
00590 289, 289, 289, 289, 597, 591, 597, 597, 138, 138,
00591
00592 181, 138, 141, 58, 58, 58, 591, 597, 138, 138,
00593 58, 58, 58, 58, 58, 58, 58, 605, 605, 319,
00594 319, 319, 319, 605, 605, 605, 605, 597, 58, 58,
00595 58, 58, 58, 58, 58, 58, 58, 58, 58, 58,
00596 58, 591, 58, 58, 58, 134, 58, 58, 58, 58,
00597 58, 138, 58, 58, 58, 597, 58, 606, 607, 591,
00598 607, 597, 591, 591, 591, 591, 58, 58, 591, 591,
00599 608, 591, 591, 591, 591, 591, 591, 591, 591, 591,
00600 591, 591, 591, 591, 591, 591, 591, 609, 591, 264,
00601 609, 610, 264, 264, 264, 264, 610, 264, 611, 591,
00602
00603 612, 611, 612, 613, 591, 134, 591, 264, 591, 591,
00604 614, 591, 591, 58, 58, 58, 591, 615, 616, 417,
00605 615, 420, 417, 58, 58, 58, 58, 58, 591, 591,
00606 58, 58, 591, 58, 614, 591, 617, 609, 591, 438,
00607 610, 264, 591, 614, 591, 614, 611, 612, 612, 613,
00608 591, 618, 591, 591, 617, 58, 58, 618, 58, 438,
00609 591, 608, 619, 591, 591, 591, 591, 591, 591, 591,
00610 591, 591, 591, 591, 591, 591, 264, 591, 591, 264,
00611 264, 264, 264, 591, 264, 611, 611, 58, 615, 591,
00612 616, 420, 421, 58, 58, 58, 591, 591, 58, 433,
00613
00614 438, 591, 617, 264, 591, 264, 617, 611, 612, 613,
00615 618, 591, 591, 264, 591, 620, 619, 591, 591, 621,
00616 591, 622, 591, 591, 591, 264, 591, 610, 264, 264,
00617 264, 528, 438, 611, 58, 591, 58, 264, 591, 617,
00618 591, 623, 528, 591, 623, 591, 620, 591, 591, 591,
00619 264, 591, 264, 264, 438, 264, 611, 591, 58, 623,
00620 624, 591, 591, 591, 264, 591, 264, 623, 611, 58,
00621 591, 591, 625, 528, 591, 623, 591, 528, 625, 591,
00622 591, 591, 591, 591, 528, 528, 591, 591, 591, 528,
00623 0, 591, 591, 591, 591, 591, 591, 591, 591, 591,
00624
00625 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
00626 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
00627 591, 591, 591, 591, 591
00628 } ;
00629
00630 static yyconst short int yy_nxt[5153] =
00631 { 0,
00632 4, 5, 6, 4, 5, 7, 8, 9, 10, 11,
00633 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
00634 22, 23, 23, 23, 18, 24, 25, 26, 27, 7,
00635 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
00636 38, 39, 40, 41, 42, 43, 44, 36, 45, 46,
00637 47, 48, 49, 50, 36, 51, 52, 27, 53, 54,
00638 55, 56, 57, 57, 58, 59, 60, 61, 62, 61,
00639 61, 61, 63, 61, 64, 65, 66, 61, 61, 67,
00640 61, 61, 68, 61, 61, 61, 61, 69, 70, 71,
00641 53, 72, 73, 74, 137, 581, 74, 77, 107, 302,
00642
00643 107, 133, 108, 108, 108, 108, 107, 110, 116, 110,
00644 249, 111, 111, 111, 111, 110, 112, 112, 112, 112,
00645 133, 78, 117, 225, 112, 112, 112, 112, 79, 184,
00646 235, 74, 80, 81, 74, 591, 502, 82, 591, 235,
00647 83, 84, 110, 113, 110, 235, 111, 111, 111, 111,
00648 110, 85, 226, 86, 297, 87, 297, 88, 590, 87,
00649 237, 142, 89, 90, 91, 92, 238, 93, 114, 142,
00650 160, 87, 94, 142, 115, 150, 571, 359, 142, 142,
00651 240, 133, 255, 95, 95, 418, 258, 586, 158, 591,
00652 249, 423, 591, 412, 96, 97, 98, 256, 257, 133,
00653
00654 133, 259, 260, 99, 97, 156, 226, 118, 130, 100,
00655 97, 130, 302, 101, 119, 120, 119, 121, 122, 122,
00656 122, 122, 110, 412, 96, 97, 98, 233, 233, 233,
00657 233, 133, 585, 102, 97, 103, 528, 118, 328, 104,
00658 97, 105, 184, 106, 119, 120, 119, 121, 122, 122,
00659 122, 122, 110, 231, 124, 532, 231, 125, 142, 157,
00660 413, 237, 252, 252, 252, 252, 142, 238, 189, 555,
00661 142, 125, 158, 239, 237, 159, 142, 244, 578, 133,
00662 238, 240, 126, 366, 124, 156, 418, 125, 130, 577,
00663 413, 130, 137, 476, 240, 131, 118, 132, 133, 423,
00664
00665 564, 225, 134, 118, 135, 136, 137, 123, 123, 123,
00666 123, 133, 134, 112, 112, 112, 112, 249, 138, 138,
00667 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
00668 138, 139, 138, 138, 138, 138, 138, 138, 138, 138,
00669 138, 138, 151, 140, 358, 503, 141, 249, 142, 142,
00670 142, 143, 142, 142, 142, 142, 142, 142, 142, 144,
00671 142, 145, 142, 146, 142, 147, 142, 142, 148, 149,
00672 142, 142, 142, 142, 409, 410, 152, 409, 133, 142,
00673 161, 272, 272, 272, 272, 130, 130, 162, 130, 130,
00674 464, 142, 153, 163, 301, 142, 142, 142, 591, 418,
00675
00676 154, 591, 142, 142, 575, 423, 155, 142, 133, 142,
00677 142, 249, 142, 142, 142, 226, 142, 575, 160, 142,
00678 142, 164, 151, 133, 142, 165, 167, 302, 562, 561,
00679 328, 142, 142, 225, 231, 166, 142, 231, 142, 142,
00680 555, 142, 142, 142, 156, 142, 142, 555, 142, 142,
00681 170, 308, 249, 142, 168, 358, 169, 184, 142, 231,
00682 142, 142, 231, 142, 142, 142, 173, 171, 514, 142,
00683 172, 142, 583, 555, 301, 133, 308, 142, 265, 588,
00684 174, 142, 328, 142, 142, 193, 142, 142, 133, 181,
00685 164, 158, 142, 133, 164, 550, 142, 142, 142, 467,
00686
00687 328, 142, 142, 133, 467, 142, 309, 310, 591, 142,
00688 156, 142, 133, 175, 142, 142, 125, 176, 511, 328,
00689 164, 177, 182, 591, 156, 178, 591, 125, 142, 511,
00690 464, 179, 142, 229, 180, 158, 546, 142, 142, 164,
00691 226, 544, 142, 183, 194, 301, 317, 538, 371, 371,
00692 142, 371, 184, 185, 142, 133, 142, 265, 556, 142,
00693 142, 225, 186, 142, 263, 263, 263, 263, 265, 181,
00694 187, 142, 567, 133, 536, 142, 164, 188, 302, 142,
00695 142, 142, 265, 189, 418, 204, 532, 190, 528, 525,
00696 156, 142, 133, 191, 230, 192, 142, 142, 142, 195,
00697
00698 249, 196, 197, 198, 200, 522, 142, 521, 184, 199,
00699 142, 571, 171, 229, 158, 142, 142, 236, 297, 572,
00700 142, 201, 87, 520, 202, 301, 87, 519, 142, 518,
00701 87, 142, 142, 402, 142, 591, 87, 203, 142, 142,
00702 517, 164, 87, 142, 142, 142, 346, 515, 142, 142,
00703 462, 462, 142, 462, 410, 410, 142, 410, 142, 508,
00704 164, 142, 142, 205, 581, 87, 142, 206, 505, 87,
00705 502, 207, 582, 87, 142, 463, 502, 509, 142, 87,
00706 142, 418, 484, 142, 142, 87, 476, 208, 211, 212,
00707 475, 211, 212, 211, 211, 211, 211, 213, 214, 215,
00708
00709 211, 211, 211, 211, 213, 216, 217, 218, 219, 219,
00710 219, 219, 211, 211, 211, 211, 211, 211, 211, 220,
00711 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
00712 220, 220, 221, 220, 220, 220, 220, 220, 220, 220,
00713 220, 220, 220, 211, 222, 211, 211, 223, 211, 220,
00714 220, 220, 220, 220, 220, 220, 220, 220, 220, 220,
00715 220, 220, 221, 220, 220, 220, 220, 220, 220, 220,
00716 220, 220, 220, 220, 220, 211, 211, 211, 211, 215,
00717 211, 130, 429, 472, 130, 403, 403, 403, 403, 118,
00718 224, 133, 478, 478, 478, 478, 118, 225, 136, 137,
00719
00720 123, 123, 123, 123, 471, 591, 497, 497, 591, 497,
00721 231, 591, 470, 231, 591, 133, 288, 288, 288, 288,
00722 133, 133, 226, 591, 145, 469, 591, 232, 226, 233,
00723 233, 233, 233, 181, 372, 468, 140, 467, 253, 125,
00724 226, 107, 466, 107, 465, 254, 254, 254, 254, 107,
00725 461, 110, 433, 110, 145, 111, 111, 111, 111, 110,
00726 409, 410, 429, 409, 418, 296, 184, 486, 486, 486,
00727 486, 133, 130, 296, 296, 130, 225, 411, 422, 301,
00728 118, 224, 156, 301, 227, 199, 328, 118, 225, 136,
00729 137, 123, 123, 123, 123, 133, 184, 228, 422, 422,
00730
00731 133, 133, 110, 418, 110, 310, 112, 112, 112, 112,
00732 110, 130, 184, 181, 130, 145, 302, 133, 264, 264,
00733 264, 264, 409, 410, 328, 409, 118, 140, 539, 310,
00734 125, 266, 225, 118, 225, 118, 137, 397, 267, 268,
00735 396, 591, 184, 118, 395, 145, 184, 269, 394, 270,
00736 119, 120, 119, 121, 274, 274, 274, 274, 110, 301,
00737 118, 393, 156, 301, 134, 405, 405, 118, 225, 118,
00738 137, 134, 271, 140, 277, 591, 125, 134, 405, 134,
00739 295, 225, 502, 405, 134, 428, 281, 405, 296, 296,
00740 124, 405, 134, 125, 282, 281, 279, 133, 87, 125,
00741
00742 283, 281, 87, 591, 284, 591, 87, 140, 358, 402,
00743 125, 386, 87, 134, 385, 87, 281, 479, 87, 87,
00744 479, 479, 384, 87, 285, 281, 134, 384, 591, 87,
00745 286, 281, 591, 384, 287, 87, 591, 295, 225, 384,
00746 591, 231, 591, 591, 231, 296, 296, 509, 591, 134,
00747 133, 133, 445, 410, 280, 445, 134, 298, 308, 288,
00748 288, 288, 288, 399, 134, 400, 401, 401, 401, 401,
00749 289, 289, 290, 289, 289, 289, 289, 289, 289, 291,
00750 292, 289, 289, 289, 289, 289, 289, 289, 293, 289,
00751 294, 289, 289, 289, 478, 478, 478, 478, 134, 384,
00752
00753 265, 265, 265, 265, 265, 265, 265, 265, 265, 265,
00754 265, 265, 265, 271, 265, 265, 265, 265, 265, 265,
00755 265, 265, 265, 265, 265, 265, 118, 384, 382, 380,
00756 133, 133, 249, 295, 225, 118, 379, 118, 118, 118,
00757 118, 296, 296, 131, 118, 132, 133, 235, 378, 377,
00758 280, 118, 135, 298, 137, 123, 123, 123, 123, 391,
00759 134, 387, 288, 288, 288, 288, 299, 299, 299, 299,
00760 299, 299, 299, 299, 299, 299, 299, 299, 299, 300,
00761 299, 299, 299, 299, 299, 299, 299, 299, 299, 299,
00762 235, 140, 497, 497, 141, 497, 142, 142, 142, 142,
00763
00764 142, 142, 142, 142, 142, 142, 142, 142, 142, 145,
00765 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
00766 142, 142, 527, 527, 527, 527, 133, 134, 591, 376,
00767 591, 591, 280, 591, 134, 295, 225, 235, 133, 375,
00768 133, 374, 134, 296, 296, 298, 373, 298, 303, 303,
00769 303, 303, 303, 303, 303, 303, 303, 303, 303, 303,
00770 303, 303, 303, 303, 303, 303, 303, 303, 303, 303,
00771 303, 303, 591, 372, 591, 591, 141, 591, 591, 235,
00772 503, 591, 301, 479, 133, 265, 479, 479, 133, 298,
00773 164, 298, 363, 591, 304, 298, 591, 358, 419, 591,
00774
00775 158, 210, 591, 133, 591, 419, 209, 591, 352, 133,
00776 298, 137, 129, 419, 133, 184, 298, 591, 133, 279,
00777 133, 298, 281, 125, 591, 462, 462, 591, 462, 275,
00778 282, 307, 591, 225, 133, 591, 283, 281, 262, 261,
00779 284, 298, 133, 113, 109, 184, 305, 419, 164, 298,
00780 463, 189, 281, 250, 251, 231, 250, 523, 231, 189,
00781 285, 307, 301, 158, 133, 133, 286, 281, 133, 250,
00782 287, 250, 308, 524, 524, 524, 524, 118, 306, 534,
00783 534, 534, 534, 133, 118, 225, 118, 137, 250, 133,
00784 250, 249, 591, 247, 133, 311, 158, 312, 253, 313,
00785
00786 246, 107, 245, 107, 118, 252, 252, 252, 252, 107,
00787 243, 295, 225, 118, 133, 118, 118, 118, 118, 296,
00788 296, 242, 133, 235, 140, 235, 314, 125, 315, 118,
00789 241, 235, 316, 317, 235, 236, 118, 225, 118, 364,
00790 118, 118, 118, 118, 356, 133, 318, 318, 318, 318,
00791 391, 392, 387, 288, 288, 288, 288, 319, 319, 319,
00792 320, 319, 319, 319, 319, 319, 319, 319, 321, 320,
00793 319, 319, 319, 319, 322, 320, 319, 319, 323, 319,
00794 319, 524, 524, 524, 524, 235, 235, 318, 318, 318,
00795 324, 318, 318, 318, 318, 318, 318, 318, 325, 324,
00796
00797 318, 318, 318, 318, 326, 324, 318, 318, 327, 318,
00798 318, 318, 318, 591, 591, 591, 591, 591, 591, 591,
00799 234, 76, 591, 133, 133, 133, 591, 94, 210, 133,
00800 298, 298, 298, 209, 591, 129, 298, 591, 591, 591,
00801 591, 591, 591, 591, 133, 128, 109, 76, 133, 133,
00802 133, 298, 591, 591, 512, 298, 298, 298, 87, 591,
00803 591, 591, 87, 591, 591, 591, 591, 591, 87, 591,
00804 591, 133, 591, 591, 87, 189, 591, 189, 298, 133,
00805 189, 591, 231, 301, 164, 231, 298, 329, 591, 591,
00806 298, 591, 133, 130, 164, 591, 130, 591, 591, 308,
00807
00808 591, 591, 591, 133, 133, 133, 330, 133, 133, 133,
00809 543, 591, 331, 591, 298, 298, 184, 591, 591, 591,
00810 591, 158, 130, 591, 133, 130, 591, 133, 133, 133,
00811 133, 591, 164, 133, 298, 317, 164, 591, 591, 539,
00812 298, 591, 332, 591, 333, 591, 184, 591, 133, 591,
00813 591, 133, 591, 591, 591, 298, 591, 133, 130, 133,
00814 591, 130, 591, 301, 298, 591, 231, 591, 189, 231,
00815 332, 334, 133, 591, 591, 328, 133, 591, 419, 591,
00816 591, 591, 591, 308, 133, 419, 591, 133, 133, 133,
00817 591, 298, 158, 419, 335, 231, 298, 591, 231, 591,
00818
00819 189, 336, 591, 591, 591, 133, 299, 133, 591, 338,
00820 224, 133, 308, 133, 591, 591, 337, 591, 548, 591,
00821 339, 591, 184, 591, 133, 340, 591, 419, 133, 591,
00822 591, 298, 591, 133, 591, 164, 591, 133, 591, 341,
00823 298, 231, 591, 591, 231, 130, 591, 591, 130, 591,
00824 591, 133, 184, 133, 591, 164, 133, 281, 308, 591,
00825 298, 225, 540, 591, 133, 282, 281, 591, 591, 133,
00826 591, 283, 281, 342, 591, 284, 189, 133, 591, 591,
00827 591, 591, 591, 591, 298, 133, 591, 281, 591, 591,
00828 133, 133, 591, 189, 343, 285, 281, 298, 591, 133,
00829
00830 591, 286, 281, 342, 133, 287, 298, 164, 591, 591,
00831 591, 591, 591, 133, 591, 591, 591, 591, 133, 133,
00832 591, 549, 549, 549, 549, 298, 298, 133, 591, 317,
00833 591, 133, 591, 133, 298, 591, 591, 591, 591, 591,
00834 591, 591, 133, 591, 591, 591, 133, 130, 133, 298,
00835 130, 591, 591, 298, 344, 298, 591, 133, 591, 591,
00836 591, 591, 591, 402, 539, 591, 591, 591, 133, 133,
00837 133, 591, 591, 317, 591, 298, 298, 591, 591, 133,
00838 591, 133, 347, 345, 348, 591, 591, 133, 298, 158,
00839 552, 552, 552, 552, 298, 591, 158, 591, 133, 133,
00840
00841 349, 591, 591, 591, 591, 591, 591, 133, 591, 350,
00842 351, 133, 133, 133, 591, 281, 591, 591, 298, 298,
00843 298, 591, 133, 282, 281, 591, 133, 591, 133, 283,
00844 281, 353, 591, 284, 591, 355, 591, 591, 591, 354,
00845 591, 164, 591, 591, 133, 281, 591, 591, 133, 133,
00846 133, 298, 358, 285, 281, 357, 591, 298, 591, 286,
00847 281, 133, 591, 287, 330, 591, 591, 133, 288, 288,
00848 288, 288, 133, 591, 591, 591, 591, 164, 591, 298,
00849 164, 266, 591, 301, 557, 557, 557, 557, 267, 268,
00850 298, 133, 133, 133, 118, 130, 591, 269, 130, 270,
00851
00852 591, 295, 225, 118, 365, 118, 118, 118, 118, 296,
00853 296, 591, 539, 368, 591, 591, 184, 409, 410, 360,
00854 409, 370, 271, 591, 133, 591, 591, 591, 298, 591,
00855 133, 591, 231, 225, 435, 231, 281, 563, 563, 563,
00856 563, 367, 133, 365, 282, 281, 184, 591, 591, 308,
00857 283, 281, 133, 125, 284, 591, 361, 591, 362, 591,
00858 591, 445, 410, 301, 445, 369, 281, 391, 392, 387,
00859 288, 288, 288, 288, 285, 281, 591, 225, 446, 591,
00860 286, 281, 253, 591, 287, 107, 591, 107, 591, 383,
00861 383, 383, 383, 107, 566, 566, 566, 566, 119, 225,
00862
00863 119, 370, 263, 263, 263, 263, 110, 387, 387, 387,
00864 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
00865 387, 387, 133, 387, 388, 395, 389, 390, 390, 390,
00866 390, 387, 387, 387, 387, 387, 387, 387, 288, 288,
00867 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
00868 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
00869 288, 288, 387, 387, 387, 387, 387, 387, 288, 288,
00870 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
00871 288, 288, 288, 288, 288, 288, 288, 288, 288, 288,
00872 288, 288, 288, 288, 387, 387, 387, 387, 387, 387,
00873
00874 391, 392, 387, 288, 288, 288, 288, 391, 392, 387,
00875 288, 288, 288, 288, 391, 392, 387, 288, 288, 288,
00876 288, 391, 397, 387, 288, 288, 288, 288, 391, 392,
00877 387, 288, 288, 288, 288, 391, 591, 387, 288, 288,
00878 288, 288, 301, 591, 393, 118, 591, 409, 410, 328,
00879 409, 394, 119, 225, 119, 275, 274, 274, 274, 274,
00880 110, 118, 591, 225, 411, 591, 396, 591, 118, 225,
00881 118, 137, 591, 591, 591, 184, 591, 591, 591, 591,
00882 591, 591, 591, 591, 591, 591, 398, 591, 591, 591,
00883 133, 133, 124, 591, 481, 125, 591, 298, 298, 591,
00884
00885 569, 569, 569, 569, 591, 184, 133, 591, 140, 591,
00886 158, 125, 591, 298, 133, 591, 591, 591, 404, 406,
00887 591, 298, 301, 591, 280, 591, 407, 392, 387, 288,
00888 288, 288, 288, 399, 406, 400, 403, 403, 403, 403,
00889 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
00890 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
00891 408, 408, 408, 408, 158, 164, 371, 371, 406, 371,
00892 133, 133, 414, 591, 171, 591, 591, 591, 591, 591,
00893 591, 295, 225, 591, 591, 301, 133, 591, 591, 296,
00894 296, 591, 298, 591, 133, 591, 591, 591, 133, 591,
00895
00896 591, 591, 591, 301, 591, 298, 591, 133, 591, 591,
00897 298, 591, 231, 591, 298, 231, 301, 231, 184, 591,
00898 231, 591, 133, 298, 591, 591, 591, 301, 591, 308,
00899 580, 580, 580, 580, 308, 415, 184, 391, 591, 387,
00900 288, 288, 288, 288, 591, 591, 591, 591, 184, 184,
00901 591, 591, 591, 402, 133, 591, 403, 403, 403, 403,
00902 184, 298, 591, 591, 591, 301, 416, 158, 584, 584,
00903 584, 584, 317, 591, 591, 591, 424, 591, 133, 184,
00904 591, 591, 591, 301, 133, 591, 591, 133, 419, 591,
00905 184, 298, 133, 419, 480, 419, 301, 591, 591, 298,
00906
00907 591, 591, 133, 419, 425, 591, 591, 301, 591, 420,
00908 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
00909 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
00910 420, 420, 420, 231, 133, 591, 231, 421, 426, 591,
00911 591, 591, 591, 301, 591, 591, 591, 591, 591, 133,
00912 308, 133, 591, 591, 591, 301, 298, 591, 298, 591,
00913 164, 591, 298, 591, 133, 591, 591, 231, 591, 591,
00914 231, 591, 133, 133, 591, 133, 184, 301, 591, 591,
00915 298, 591, 298, 591, 308, 591, 591, 231, 184, 591,
00916 231, 591, 591, 133, 591, 591, 591, 133, 409, 410,
00917
00918 298, 409, 430, 591, 308, 591, 184, 591, 164, 298,
00919 184, 591, 591, 591, 591, 574, 591, 427, 416, 591,
00920 591, 301, 591, 301, 591, 164, 133, 591, 298, 133,
00921 591, 133, 591, 298, 591, 301, 591, 301, 591, 231,
00922 184, 164, 231, 591, 298, 591, 591, 591, 158, 133,
00923 591, 591, 591, 133, 184, 133, 308, 301, 231, 591,
00924 591, 231, 591, 591, 409, 410, 189, 409, 133, 133,
00925 184, 591, 591, 133, 591, 308, 298, 133, 591, 591,
00926 432, 543, 430, 591, 184, 431, 391, 591, 387, 288,
00927 288, 288, 288, 591, 591, 591, 591, 591, 591, 591,
00928
00929 416, 301, 591, 133, 473, 591, 133, 107, 591, 107,
00930 298, 474, 474, 474, 474, 107, 434, 301, 587, 587,
00931 587, 587, 591, 591, 591, 591, 164, 591, 231, 133,
00932 591, 231, 133, 591, 591, 591, 330, 301, 133, 298,
00933 591, 591, 591, 460, 298, 308, 591, 482, 133, 133,
00934 436, 436, 591, 436, 436, 436, 436, 436, 436, 591,
00935 436, 436, 436, 436, 436, 436, 591, 438, 459, 436,
00936 184, 184, 591, 591, 436, 436, 436, 436, 436, 436,
00937 436, 281, 591, 133, 118, 591, 591, 164, 591, 282,
00938 281, 118, 225, 118, 137, 283, 281, 591, 591, 284,
00939
00940 184, 184, 591, 591, 591, 436, 436, 436, 436, 436,
00941 436, 281, 133, 589, 589, 589, 589, 301, 133, 285,
00942 281, 591, 591, 591, 591, 286, 281, 591, 591, 287,
00943 591, 140, 591, 591, 125, 591, 591, 436, 436, 436,
00944 436, 436, 436, 439, 439, 387, 439, 439, 439, 439,
00945 439, 439, 439, 439, 439, 439, 439, 439, 436, 439,
00946 440, 441, 439, 442, 442, 442, 442, 439, 439, 439,
00947 439, 439, 439, 439, 442, 442, 442, 442, 442, 442,
00948 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
00949 442, 442, 442, 442, 442, 442, 442, 442, 439, 439,
00950
00951 439, 439, 439, 439, 442, 442, 442, 442, 442, 442,
00952 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
00953 442, 442, 442, 442, 442, 442, 442, 442, 442, 442,
00954 439, 439, 439, 439, 439, 439, 436, 443, 410, 436,
00955 443, 436, 436, 436, 436, 591, 436, 436, 436, 436,
00956 436, 436, 591, 438, 444, 436, 477, 477, 477, 477,
00957 436, 436, 436, 436, 436, 436, 436, 591, 391, 266,
00958 387, 288, 288, 288, 288, 591, 267, 268, 391, 591,
00959 387, 526, 526, 526, 526, 269, 591, 270, 591, 591,
00960 118, 436, 436, 436, 436, 436, 436, 118, 501, 118,
00961
00962 591, 118, 118, 118, 118, 591, 253, 591, 591, 107,
00963 271, 107, 506, 474, 474, 474, 474, 107, 591, 591,
00964 591, 591, 591, 436, 436, 436, 436, 436, 436, 436,
00965 436, 591, 436, 436, 436, 436, 436, 436, 436, 436,
00966 436, 436, 436, 436, 436, 436, 447, 436, 436, 448,
00967 448, 448, 448, 436, 436, 436, 436, 436, 436, 436,
00968 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
00969 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
00970 448, 448, 448, 448, 436, 436, 436, 436, 436, 436,
00971 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
00972
00973 448, 448, 448, 448, 448, 448, 448, 448, 448, 448,
00974 448, 448, 448, 448, 448, 448, 436, 436, 436, 436,
00975 436, 436, 436, 436, 591, 436, 436, 436, 436, 436,
00976 436, 437, 436, 436, 436, 436, 436, 436, 437, 438,
00977 437, 449, 450, 450, 450, 450, 436, 436, 436, 436,
00978 436, 436, 436, 450, 450, 450, 450, 450, 450, 450,
00979 450, 450, 450, 450, 450, 450, 450, 450, 450, 450,
00980 450, 450, 450, 450, 450, 450, 450, 436, 451, 436,
00981 436, 452, 436, 450, 450, 450, 450, 450, 450, 450,
00982 450, 450, 450, 450, 450, 450, 450, 450, 450, 450,
00983
00984 450, 450, 450, 450, 450, 450, 450, 450, 450, 436,
00985 436, 436, 436, 436, 436, 436, 436, 591, 436, 436,
00986 436, 436, 436, 436, 437, 453, 454, 436, 436, 436,
00987 436, 437, 438, 455, 449, 450, 450, 450, 450, 436,
00988 436, 436, 436, 436, 436, 436, 456, 456, 456, 456,
00989 456, 456, 456, 456, 456, 456, 456, 456, 456, 457,
00990 456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
00991 436, 451, 436, 436, 452, 436, 456, 456, 456, 456,
00992 456, 456, 456, 456, 456, 456, 456, 456, 456, 457,
00993 456, 456, 456, 456, 456, 456, 456, 456, 456, 456,
00994
00995 456, 456, 436, 436, 436, 436, 454, 436, 436, 436,
00996 591, 436, 436, 436, 436, 436, 436, 436, 436, 436,
00997 436, 436, 436, 436, 436, 436, 436, 436, 458, 458,
00998 458, 458, 436, 436, 436, 436, 436, 436, 436, 458,
00999 458, 458, 458, 458, 458, 458, 458, 458, 458, 458,
01000 458, 458, 458, 458, 458, 458, 458, 458, 458, 458,
01001 458, 458, 458, 436, 436, 436, 436, 452, 436, 458,
01002 458, 458, 458, 458, 458, 458, 458, 458, 458, 458,
01003 458, 458, 458, 458, 458, 458, 458, 458, 458, 458,
01004 458, 458, 458, 458, 458, 436, 436, 436, 436, 436,
01005
01006 436, 288, 288, 288, 288, 391, 591, 387, 288, 288,
01007 288, 288, 591, 391, 266, 387, 288, 288, 288, 288,
01008 591, 267, 268, 591, 591, 591, 591, 591, 591, 591,
01009 269, 591, 270, 591, 591, 591, 133, 591, 133, 118,
01010 591, 591, 591, 298, 591, 298, 118, 225, 118, 591,
01011 118, 118, 118, 118, 533, 271, 387, 288, 288, 288,
01012 288, 391, 483, 387, 288, 288, 288, 288, 591, 591,
01013 485, 134, 591, 591, 591, 591, 280, 591, 134, 591,
01014 591, 288, 288, 288, 288, 591, 134, 591, 495, 488,
01015 591, 507, 289, 289, 290, 289, 289, 289, 289, 289,
01016
01017 289, 291, 292, 289, 289, 289, 289, 289, 289, 289,
01018 293, 289, 294, 289, 289, 289, 133, 591, 133, 485,
01019 134, 591, 265, 265, 265, 265, 265, 265, 265, 265,
01020 265, 265, 265, 265, 265, 271, 265, 265, 265, 265,
01021 265, 265, 265, 265, 265, 265, 265, 265, 406, 591,
01022 591, 591, 591, 280, 591, 407, 591, 387, 288, 288,
01023 288, 288, 391, 406, 387, 551, 551, 551, 551, 408,
01024 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
01025 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
01026 408, 408, 408, 591, 591, 591, 591, 406, 387, 387,
01027
01028 387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
01029 387, 387, 387, 591, 387, 387, 591, 387, 417, 417,
01030 417, 417, 387, 387, 387, 387, 387, 387, 387, 417,
01031 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
01032 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
01033 417, 417, 417, 387, 387, 387, 387, 489, 387, 417,
01034 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
01035 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
01036 417, 417, 417, 417, 417, 387, 387, 387, 387, 387,
01037 387, 491, 591, 591, 591, 591, 490, 591, 491, 391,
01038
01039 591, 387, 288, 288, 288, 288, 491, 591, 591, 591,
01040 591, 591, 492, 492, 492, 492, 492, 492, 492, 492,
01041 492, 492, 492, 492, 492, 492, 492, 492, 492, 492,
01042 492, 492, 492, 492, 492, 492, 591, 591, 591, 591,
01043 493, 419, 591, 529, 591, 591, 490, 591, 419, 591,
01044 591, 591, 133, 591, 133, 591, 419, 591, 591, 298,
01045 591, 298, 492, 492, 492, 492, 492, 492, 492, 492,
01046 492, 492, 492, 492, 492, 492, 492, 492, 492, 492,
01047 492, 492, 492, 492, 492, 492, 591, 591, 591, 591,
01048 421, 281, 591, 591, 591, 591, 133, 591, 591, 282,
01049
01050 281, 591, 591, 298, 133, 283, 281, 591, 133, 284,
01051 494, 298, 591, 591, 460, 298, 591, 368, 591, 591,
01052 591, 281, 591, 591, 591, 591, 498, 591, 591, 285,
01053 281, 591, 133, 591, 133, 286, 281, 591, 591, 287,
01054 288, 288, 288, 288, 591, 391, 591, 387, 288, 288,
01055 288, 288, 591, 266, 591, 591, 591, 591, 118, 591,
01056 267, 268, 591, 496, 591, 118, 225, 118, 137, 269,
01057 591, 270, 591, 499, 591, 591, 133, 591, 591, 591,
01058 591, 504, 591, 591, 133, 591, 591, 591, 133, 131,
01059 118, 132, 133, 531, 271, 591, 280, 118, 135, 298,
01060
01061 137, 123, 123, 123, 123, 140, 134, 591, 125, 591,
01062 510, 591, 299, 299, 299, 299, 299, 299, 299, 299,
01063 299, 299, 299, 299, 299, 300, 299, 299, 299, 299,
01064 500, 299, 299, 299, 299, 299, 591, 140, 591, 591,
01065 141, 591, 142, 142, 142, 142, 142, 142, 142, 142,
01066 142, 142, 142, 142, 142, 145, 142, 142, 142, 142,
01067 142, 142, 142, 142, 142, 142, 142, 142, 591, 591,
01068 591, 591, 133, 371, 371, 591, 371, 591, 133, 591,
01069 591, 118, 591, 591, 591, 298, 591, 591, 118, 225,
01070 118, 281, 118, 118, 118, 118, 591, 591, 591, 282,
01071
01072 281, 591, 591, 591, 591, 283, 281, 591, 133, 284,
01073 591, 591, 591, 591, 591, 298, 591, 133, 502, 591,
01074 591, 281, 591, 591, 298, 591, 301, 591, 591, 285,
01075 281, 591, 591, 298, 591, 286, 281, 591, 133, 287,
01076 591, 591, 591, 591, 591, 298, 330, 591, 591, 591,
01077 391, 513, 387, 288, 288, 288, 288, 591, 133, 184,
01078 591, 130, 591, 591, 130, 591, 591, 158, 591, 591,
01079 133, 535, 591, 591, 591, 591, 158, 298, 539, 591,
01080 591, 591, 591, 541, 591, 591, 541, 591, 133, 184,
01081 591, 133, 541, 591, 530, 541, 591, 133, 298, 391,
01082
01083 542, 387, 288, 288, 288, 288, 301, 591, 391, 539,
01084 387, 288, 288, 288, 288, 591, 591, 591, 133, 591,
01085 431, 237, 591, 591, 591, 591, 591, 238, 391, 545,
01086 387, 288, 288, 288, 288, 591, 591, 591, 591, 591,
01087 391, 240, 387, 565, 565, 565, 565, 591, 537, 591,
01088 133, 387, 387, 387, 387, 387, 387, 387, 387, 387,
01089 387, 491, 387, 387, 387, 387, 490, 387, 491, 591,
01090 387, 133, 591, 591, 591, 387, 491, 387, 387, 387,
01091 387, 387, 490, 490, 490, 490, 490, 490, 490, 490,
01092 490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
01093
01094 490, 490, 490, 490, 490, 490, 387, 387, 387, 387,
01095 491, 387, 591, 591, 591, 591, 591, 130, 591, 591,
01096 130, 591, 133, 133, 591, 118, 591, 591, 591, 298,
01097 298, 591, 118, 225, 540, 137, 591, 591, 387, 387,
01098 387, 387, 387, 387, 591, 391, 591, 387, 288, 288,
01099 288, 288, 391, 591, 387, 288, 288, 288, 288, 591,
01100 591, 591, 391, 591, 387, 288, 288, 288, 288, 591,
01101 591, 591, 140, 591, 591, 125, 591, 591, 591, 591,
01102 591, 591, 591, 591, 591, 368, 591, 133, 591, 591,
01103 591, 158, 553, 558, 298, 591, 554, 591, 591, 591,
01104
01105 298, 591, 133, 133, 387, 387, 387, 387, 387, 387,
01106 387, 387, 387, 387, 387, 387, 387, 387, 387, 485,
01107 387, 391, 591, 387, 591, 591, 184, 591, 387, 387,
01108 387, 387, 387, 387, 387, 391, 560, 387, 288, 288,
01109 288, 288, 591, 591, 391, 559, 387, 288, 288, 288,
01110 288, 591, 591, 591, 591, 591, 184, 591, 591, 387,
01111 387, 387, 387, 387, 387, 591, 391, 133, 387, 288,
01112 288, 288, 288, 558, 391, 568, 387, 288, 288, 288,
01113 288, 591, 591, 591, 591, 591, 591, 591, 485, 591,
01114 591, 387, 387, 387, 387, 387, 387, 133, 591, 591,
01115
01116 591, 591, 591, 391, 298, 387, 288, 288, 288, 288,
01117 391, 576, 387, 288, 288, 288, 288, 591, 591, 591,
01118 591, 591, 591, 485, 281, 591, 591, 591, 558, 591,
01119 591, 591, 282, 281, 573, 298, 591, 591, 283, 281,
01120 412, 591, 284, 591, 591, 573, 573, 573, 591, 591,
01121 591, 591, 591, 591, 281, 591, 591, 591, 573, 591,
01122 570, 184, 285, 281, 591, 591, 591, 591, 286, 281,
01123 412, 573, 287, 591, 591, 591, 591, 133, 591, 591,
01124 591, 591, 573, 573, 573, 591, 591, 591, 591, 591,
01125 591, 184, 591, 591, 591, 573, 591, 591, 591, 591,
01126
01127 591, 591, 591, 591, 591, 591, 591, 591, 558, 591,
01128 591, 591, 591, 591, 591, 591, 573, 591, 573, 591,
01129 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01130 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01131 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01132 591, 591, 591, 573, 591, 573, 75, 591, 591, 591,
01133 591, 591, 591, 591, 75, 591, 591, 591, 75, 591,
01134 591, 75, 75, 123, 591, 591, 591, 123, 123, 123,
01135 123, 123, 591, 591, 123, 123, 123, 123, 123, 127,
01136 591, 591, 591, 591, 591, 591, 591, 127, 591, 591,
01137
01138 591, 591, 127, 591, 591, 127, 127, 142, 591, 591,
01139 591, 591, 142, 142, 142, 591, 142, 142, 142, 142,
01140 591, 591, 591, 142, 142, 142, 142, 142, 248, 248,
01141 248, 248, 248, 248, 248, 248, 248, 248, 248, 248,
01142 248, 248, 248, 248, 248, 591, 248, 248, 118, 591,
01143 591, 591, 118, 118, 591, 118, 591, 591, 591, 118,
01144 591, 591, 118, 118, 265, 591, 591, 591, 265, 591,
01145 591, 265, 265, 273, 591, 591, 591, 273, 591, 591,
01146 273, 273, 276, 591, 591, 591, 276, 591, 276, 276,
01147 276, 278, 278, 278, 278, 278, 278, 278, 278, 278,
01148
01149 278, 278, 278, 278, 278, 278, 278, 278, 278, 278,
01150 278, 278, 278, 280, 591, 280, 280, 591, 591, 591,
01151 591, 280, 591, 280, 591, 280, 280, 297, 591, 591,
01152 591, 297, 297, 591, 297, 297, 297, 591, 297, 591,
01153 591, 297, 297, 381, 381, 381, 381, 381, 381, 381,
01154 381, 381, 381, 381, 381, 381, 381, 381, 381, 381,
01155 591, 381, 381, 417, 591, 591, 591, 417, 591, 417,
01156 417, 417, 436, 436, 591, 436, 436, 436, 436, 436,
01157 436, 436, 436, 436, 436, 436, 436, 436, 436, 436,
01158 436, 436, 436, 436, 437, 437, 591, 437, 437, 437,
01159
01160 437, 437, 437, 437, 437, 437, 437, 437, 437, 437,
01161 437, 437, 437, 437, 437, 437, 464, 464, 591, 591,
01162 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01163 591, 464, 464, 265, 591, 591, 591, 265, 591, 591,
01164 265, 265, 487, 591, 591, 591, 487, 591, 591, 487,
01165 487, 273, 591, 273, 273, 591, 591, 591, 273, 591,
01166 591, 273, 273, 123, 591, 591, 591, 123, 123, 123,
01167 123, 591, 591, 591, 123, 123, 123, 123, 123, 297,
01168 591, 591, 591, 297, 297, 591, 297, 591, 591, 591,
01169 297, 591, 591, 297, 297, 417, 591, 591, 591, 417,
01170
01171 591, 417, 417, 417, 490, 591, 490, 490, 591, 591,
01172 591, 591, 490, 591, 490, 591, 490, 118, 591, 591,
01173 591, 118, 118, 591, 118, 591, 591, 591, 118, 591,
01174 591, 118, 118, 276, 591, 591, 591, 276, 591, 276,
01175 276, 276, 516, 591, 591, 591, 591, 591, 591, 591,
01176 516, 591, 591, 591, 591, 516, 591, 591, 516, 516,
01177 547, 547, 547, 547, 547, 547, 547, 547, 547, 547,
01178 547, 547, 547, 547, 547, 547, 547, 547, 547, 547,
01179 547, 547, 520, 520, 591, 591, 520, 591, 591, 591,
01180 591, 591, 520, 591, 591, 520, 520, 75, 591, 591,
01181
01182 591, 591, 591, 591, 591, 75, 591, 591, 591, 75,
01183 591, 591, 75, 75, 573, 591, 591, 591, 573, 573,
01184 573, 573, 573, 573, 573, 573, 573, 573, 573, 573,
01185 591, 573, 573, 573, 573, 573, 579, 591, 591, 591,
01186 579, 579, 579, 579, 579, 579, 579, 579, 579, 579,
01187 579, 579, 591, 579, 579, 579, 579, 579, 3, 591,
01188 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01189 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01190 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01191 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01192
01193 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01194 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01195 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01196 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01197 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01198 591, 591
01199 } ;
01200
01201 static yyconst short int yy_chk[5153] =
01202 { 0,
01203 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01204 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01205 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01206 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01207 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01208 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01209 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01210 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01211 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
01212 1, 1, 1, 5, 451, 590, 5, 12, 14, 182,
01213
01214 14, 59, 14, 14, 14, 14, 14, 17, 20, 17,
01215 103, 17, 17, 17, 17, 17, 18, 18, 18, 18,
01216 68, 12, 20, 213, 20, 20, 20, 20, 12, 182,
01217 82, 74, 12, 12, 74, 63, 451, 12, 63, 82,
01218 12, 12, 19, 19, 19, 82, 19, 19, 19, 19,
01219 19, 12, 63, 12, 226, 12, 226, 12, 588, 12,
01220 87, 30, 12, 12, 12, 12, 87, 12, 19, 30,
01221 59, 12, 13, 30, 19, 30, 586, 213, 30, 30,
01222 87, 59, 114, 13, 13, 326, 115, 583, 68, 60,
01223 103, 326, 60, 301, 13, 13, 13, 114, 114, 60,
01224
01225 68, 115, 115, 13, 13, 32, 60, 22, 130, 13,
01226 13, 130, 302, 13, 22, 22, 22, 22, 22, 22,
01227 22, 22, 22, 301, 13, 13, 13, 77, 77, 77,
01228 77, 158, 582, 13, 13, 13, 581, 23, 158, 13,
01229 13, 13, 302, 13, 23, 23, 23, 23, 23, 23,
01230 23, 23, 23, 231, 22, 577, 231, 22, 32, 32,
01231 307, 85, 107, 107, 107, 107, 32, 85, 60, 574,
01232 32, 223, 32, 85, 92, 32, 32, 92, 572, 60,
01233 92, 85, 22, 223, 23, 32, 325, 23, 29, 568,
01234 307, 29, 222, 564, 92, 29, 29, 29, 29, 325,
01235
01236 550, 437, 29, 29, 29, 29, 29, 29, 29, 29,
01237 29, 158, 29, 110, 110, 110, 110, 413, 29, 29,
01238 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
01239 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
01240 29, 29, 31, 29, 222, 437, 29, 413, 29, 29,
01241 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
01242 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
01243 29, 29, 29, 29, 409, 409, 31, 409, 29, 34,
01244 34, 121, 121, 121, 121, 212, 541, 34, 212, 541,
01245 547, 34, 31, 34, 139, 31, 34, 34, 61, 327,
01246
01247 31, 61, 33, 31, 563, 327, 31, 31, 61, 31,
01248 33, 546, 31, 31, 33, 61, 33, 563, 33, 33,
01249 33, 35, 31, 180, 35, 35, 37, 139, 545, 544,
01250 180, 36, 35, 540, 310, 35, 35, 310, 35, 36,
01251 578, 35, 35, 36, 40, 36, 37, 585, 36, 36,
01252 38, 310, 536, 38, 37, 212, 37, 139, 37, 152,
01253 37, 38, 152, 37, 37, 38, 39, 38, 460, 39,
01254 38, 38, 578, 532, 139, 314, 152, 39, 460, 585,
01255 39, 39, 314, 39, 45, 45, 39, 39, 61, 42,
01256 39, 180, 45, 175, 40, 525, 45, 40, 45, 519,
01257
01258 175, 45, 45, 180, 518, 40, 152, 152, 517, 40,
01259 43, 40, 428, 40, 40, 40, 452, 41, 452, 428,
01260 41, 41, 42, 65, 40, 41, 65, 458, 41, 458,
01261 516, 41, 41, 65, 41, 41, 515, 41, 41, 314,
01262 65, 513, 42, 42, 46, 300, 175, 501, 232, 232,
01263 42, 232, 42, 42, 42, 314, 42, 501, 533, 42,
01264 42, 119, 43, 43, 119, 119, 119, 119, 533, 42,
01265 43, 43, 555, 175, 498, 43, 44, 43, 300, 44,
01266 43, 43, 555, 44, 489, 48, 484, 44, 479, 475,
01267 43, 44, 428, 44, 65, 44, 44, 44, 46, 46,
01268
01269 471, 46, 46, 46, 47, 470, 46, 469, 300, 46,
01270 46, 560, 46, 65, 46, 46, 46, 468, 232, 560,
01271 47, 47, 224, 467, 47, 300, 224, 466, 47, 465,
01272 224, 48, 47, 448, 47, 448, 224, 47, 47, 48,
01273 463, 49, 224, 48, 49, 48, 194, 461, 48, 48,
01274 371, 371, 49, 371, 410, 410, 49, 410, 49, 447,
01275 49, 49, 49, 50, 576, 194, 50, 50, 441, 194,
01276 439, 50, 576, 194, 50, 371, 436, 448, 50, 194,
01277 50, 418, 397, 50, 50, 194, 386, 50, 56, 56,
01278 385, 56, 56, 56, 56, 56, 56, 56, 56, 56,
01279
01280 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
01281 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
01282 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
01283 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
01284 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
01285 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
01286 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
01287 56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
01288 56, 57, 384, 382, 57, 275, 275, 275, 275, 57,
01289 57, 57, 389, 389, 389, 389, 57, 57, 57, 57,
01290
01291 57, 57, 57, 57, 380, 62, 429, 429, 62, 429,
01292 66, 67, 379, 66, 67, 62, 390, 390, 390, 390,
01293 66, 67, 62, 64, 57, 378, 64, 66, 67, 233,
01294 233, 233, 233, 64, 233, 377, 57, 376, 108, 57,
01295 64, 108, 375, 108, 374, 108, 108, 108, 108, 108,
01296 369, 111, 352, 111, 57, 111, 111, 111, 111, 111,
01297 297, 297, 346, 297, 324, 548, 64, 399, 399, 399,
01298 399, 57, 58, 548, 548, 58, 297, 297, 323, 331,
01299 58, 58, 58, 167, 62, 67, 331, 58, 58, 58,
01300 58, 58, 58, 58, 58, 62, 64, 64, 322, 321,
01301
01302 66, 67, 112, 318, 112, 167, 112, 112, 112, 112,
01303 112, 502, 331, 64, 502, 58, 167, 345, 120, 120,
01304 120, 120, 443, 443, 345, 443, 123, 58, 502, 309,
01305 58, 120, 295, 123, 123, 123, 123, 294, 120, 120,
01306 293, 123, 331, 122, 292, 58, 167, 120, 291, 120,
01307 122, 122, 122, 122, 122, 122, 122, 122, 122, 331,
01308 126, 290, 58, 167, 132, 287, 286, 126, 126, 126,
01309 126, 132, 120, 123, 126, 126, 123, 134, 285, 132,
01310 298, 298, 443, 284, 134, 345, 133, 283, 298, 298,
01311 122, 282, 134, 122, 133, 133, 278, 345, 214, 276,
01312
01313 133, 133, 214, 449, 133, 449, 214, 126, 214, 273,
01314 126, 262, 214, 132, 261, 132, 133, 610, 214, 132,
01315 610, 610, 260, 132, 133, 133, 134, 259, 134, 132,
01316 133, 133, 134, 258, 133, 132, 134, 328, 328, 257,
01317 142, 164, 134, 142, 164, 328, 328, 449, 134, 135,
01318 142, 164, 445, 445, 135, 445, 135, 142, 164, 135,
01319 135, 135, 135, 272, 135, 272, 272, 272, 272, 272,
01320 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
01321 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
01322 135, 135, 135, 135, 400, 400, 400, 400, 135, 256,
01323
01324 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
01325 135, 135, 135, 135, 135, 135, 135, 135, 135, 135,
01326 135, 135, 135, 135, 135, 135, 136, 255, 251, 247,
01327 142, 164, 246, 136, 136, 136, 245, 136, 136, 136,
01328 136, 136, 136, 138, 138, 138, 138, 244, 243, 242,
01329 138, 138, 138, 138, 138, 138, 138, 138, 138, 288,
01330 138, 288, 288, 288, 288, 288, 138, 138, 138, 138,
01331 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
01332 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
01333 241, 138, 497, 497, 138, 497, 138, 138, 138, 138,
01334
01335 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
01336 138, 138, 138, 138, 138, 138, 138, 138, 138, 138,
01337 138, 138, 478, 478, 478, 478, 138, 141, 143, 240,
01338 144, 143, 141, 144, 141, 455, 455, 239, 143, 238,
01339 144, 237, 141, 455, 455, 143, 236, 144, 141, 141,
01340 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
01341 141, 141, 141, 141, 141, 141, 141, 141, 141, 141,
01342 141, 141, 145, 235, 146, 145, 141, 146, 147, 234,
01343 455, 147, 145, 623, 146, 225, 623, 623, 147, 145,
01344 144, 146, 218, 148, 144, 147, 148, 211, 419, 149,
01345
01346 143, 210, 149, 148, 150, 419, 209, 150, 200, 149,
01347 148, 140, 129, 419, 150, 145, 149, 128, 143, 127,
01348 144, 150, 151, 125, 153, 462, 462, 153, 462, 124,
01349 151, 151, 154, 118, 153, 154, 151, 151, 117, 116,
01350 151, 153, 154, 113, 109, 145, 147, 419, 147, 154,
01351 462, 146, 151, 106, 105, 155, 104, 473, 155, 148,
01352 151, 151, 145, 149, 146, 155, 151, 151, 147, 102,
01353 151, 101, 155, 473, 473, 473, 473, 219, 150, 486,
01354 486, 486, 486, 148, 219, 219, 219, 219, 100, 149,
01355 99, 98, 219, 96, 150, 153, 154, 153, 252, 153,
01356
01357 95, 252, 93, 252, 204, 252, 252, 252, 252, 252,
01358 91, 204, 204, 204, 153, 204, 204, 204, 204, 204,
01359 204, 90, 154, 89, 219, 88, 155, 219, 155, 411,
01360 86, 84, 155, 155, 83, 81, 411, 411, 411, 219,
01361 411, 411, 411, 411, 204, 155, 156, 156, 156, 156,
01362 265, 265, 265, 265, 265, 265, 265, 156, 156, 156,
01363 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
01364 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
01365 156, 523, 523, 523, 523, 80, 79, 156, 156, 156,
01366 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
01367
01368 156, 156, 156, 156, 156, 156, 156, 156, 156, 156,
01369 156, 156, 156, 157, 159, 160, 157, 159, 160, 161,
01370 78, 76, 161, 157, 159, 160, 72, 55, 54, 161,
01371 157, 159, 160, 52, 162, 28, 161, 162, 163, 165,
01372 166, 163, 165, 166, 162, 25, 16, 9, 163, 165,
01373 166, 162, 3, 0, 453, 163, 165, 166, 453, 0,
01374 0, 168, 453, 0, 168, 0, 0, 0, 453, 170,
01375 0, 168, 170, 169, 453, 157, 169, 160, 168, 170,
01376 161, 0, 171, 169, 157, 171, 170, 159, 0, 0,
01377 169, 0, 171, 505, 162, 0, 505, 172, 173, 171,
01378
01379 172, 173, 0, 157, 159, 160, 163, 172, 173, 161,
01380 505, 0, 165, 0, 172, 173, 169, 174, 0, 0,
01381 174, 166, 508, 176, 162, 508, 176, 174, 163, 165,
01382 166, 0, 168, 176, 174, 169, 169, 0, 177, 508,
01383 176, 177, 170, 0, 170, 0, 169, 178, 177, 0,
01384 178, 168, 0, 0, 0, 177, 0, 178, 500, 170,
01385 0, 500, 0, 169, 178, 0, 179, 0, 172, 179,
01386 172, 173, 171, 0, 183, 500, 179, 183, 491, 184,
01387 0, 0, 184, 179, 183, 491, 0, 172, 173, 184,
01388 0, 183, 176, 491, 174, 185, 184, 0, 185, 0,
01389
01390 176, 176, 0, 0, 0, 185, 500, 174, 0, 178,
01391 520, 520, 185, 176, 186, 0, 177, 186, 520, 0,
01392 178, 0, 184, 187, 186, 178, 187, 491, 177, 0,
01393 0, 186, 0, 187, 0, 183, 0, 178, 0, 179,
01394 187, 189, 0, 188, 189, 503, 188, 0, 503, 0,
01395 0, 189, 184, 188, 0, 183, 179, 181, 189, 0,
01396 188, 503, 503, 0, 183, 181, 181, 190, 0, 184,
01397 190, 181, 181, 181, 0, 181, 185, 190, 0, 0,
01398 191, 0, 0, 191, 190, 185, 0, 181, 0, 192,
01399 191, 520, 192, 186, 187, 181, 181, 191, 0, 192,
01400
01401 0, 181, 181, 181, 186, 181, 192, 188, 193, 195,
01402 0, 193, 195, 187, 0, 0, 0, 196, 193, 195,
01403 196, 524, 524, 524, 524, 193, 195, 196, 0, 190,
01404 0, 189, 197, 188, 196, 197, 198, 0, 199, 198,
01405 0, 199, 197, 0, 0, 0, 198, 509, 199, 197,
01406 509, 0, 0, 198, 191, 199, 0, 190, 201, 202,
01407 0, 201, 202, 509, 509, 509, 0, 0, 201, 202,
01408 191, 203, 0, 192, 203, 201, 202, 205, 0, 192,
01409 205, 203, 195, 193, 195, 0, 0, 205, 203, 193,
01410 527, 527, 527, 527, 205, 0, 196, 0, 193, 195,
01411
01412 197, 206, 207, 208, 206, 207, 208, 196, 0, 198,
01413 199, 206, 207, 208, 0, 215, 0, 0, 206, 207,
01414 208, 0, 197, 215, 215, 0, 198, 0, 199, 215,
01415 215, 201, 0, 215, 220, 203, 0, 220, 0, 202,
01416 228, 201, 0, 228, 220, 215, 0, 0, 201, 202,
01417 228, 220, 215, 215, 215, 205, 0, 228, 0, 215,
01418 215, 203, 227, 215, 206, 227, 0, 205, 216, 216,
01419 216, 216, 227, 221, 0, 0, 221, 208, 0, 227,
01420 207, 216, 0, 221, 534, 534, 534, 534, 216, 216,
01421 221, 206, 207, 208, 217, 511, 0, 216, 511, 216,
01422
01423 0, 217, 217, 217, 220, 217, 217, 217, 217, 217,
01424 217, 230, 511, 228, 230, 0, 221, 356, 356, 216,
01425 356, 230, 216, 0, 220, 0, 0, 0, 230, 0,
01426 228, 0, 317, 356, 356, 317, 229, 549, 549, 549,
01427 549, 227, 317, 221, 229, 229, 221, 0, 0, 317,
01428 229, 229, 227, 511, 229, 0, 217, 0, 217, 0,
01429 0, 362, 362, 221, 362, 229, 229, 268, 268, 268,
01430 268, 268, 268, 268, 229, 229, 0, 362, 362, 0,
01431 229, 229, 254, 0, 229, 254, 0, 254, 0, 254,
01432 254, 254, 254, 254, 552, 552, 552, 552, 263, 263,
01433
01434 263, 230, 263, 263, 263, 263, 263, 264, 264, 264,
01435 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
01436 264, 264, 317, 264, 264, 268, 264, 264, 264, 264,
01437 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
01438 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
01439 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
01440 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
01441 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
01442 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
01443 264, 264, 264, 264, 264, 264, 264, 264, 264, 264,
01444
01445 266, 266, 266, 266, 266, 266, 266, 267, 267, 267,
01446 267, 267, 267, 267, 269, 269, 269, 269, 269, 269,
01447 269, 270, 270, 270, 270, 270, 270, 270, 271, 271,
01448 271, 271, 271, 271, 271, 394, 0, 394, 394, 394,
01449 394, 394, 347, 0, 266, 274, 0, 507, 507, 347,
01450 507, 267, 274, 274, 274, 274, 274, 274, 274, 274,
01451 274, 277, 0, 507, 507, 0, 269, 0, 277, 277,
01452 277, 277, 0, 0, 0, 347, 277, 0, 0, 0,
01453 305, 304, 0, 305, 304, 0, 271, 0, 0, 0,
01454 305, 304, 274, 0, 394, 274, 306, 305, 304, 306,
01455
01456 557, 557, 557, 557, 311, 347, 306, 311, 277, 0,
01457 347, 277, 0, 306, 311, 0, 0, 0, 277, 289,
01458 0, 311, 347, 0, 289, 0, 289, 289, 289, 289,
01459 289, 289, 289, 401, 289, 401, 401, 401, 401, 401,
01460 289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
01461 289, 289, 289, 289, 289, 289, 289, 289, 289, 289,
01462 289, 289, 289, 289, 304, 305, 308, 308, 289, 308,
01463 305, 304, 311, 0, 306, 312, 0, 0, 312, 0,
01464 0, 308, 308, 0, 0, 312, 306, 0, 313, 308,
01465 308, 313, 312, 315, 311, 0, 315, 316, 313, 0,
01466
01467 316, 0, 0, 315, 0, 313, 329, 316, 0, 329,
01468 315, 0, 330, 0, 316, 330, 329, 332, 312, 0,
01469 332, 0, 330, 329, 0, 0, 0, 332, 0, 330,
01470 575, 575, 575, 575, 332, 312, 315, 393, 0, 393,
01471 393, 393, 393, 393, 333, 0, 0, 333, 312, 329,
01472 0, 0, 0, 403, 333, 403, 403, 403, 403, 403,
01473 332, 333, 0, 0, 0, 312, 315, 313, 580, 580,
01474 580, 580, 316, 0, 335, 0, 329, 335, 313, 329,
01475 0, 0, 336, 315, 335, 336, 0, 316, 319, 0,
01476 332, 335, 336, 319, 393, 319, 329, 0, 0, 336,
01477
01478 0, 0, 330, 319, 333, 0, 0, 332, 0, 319,
01479 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
01480 319, 319, 319, 319, 319, 319, 319, 319, 319, 319,
01481 319, 319, 319, 334, 333, 0, 334, 319, 335, 337,
01482 0, 338, 337, 334, 338, 339, 0, 0, 339, 337,
01483 334, 338, 0, 0, 0, 339, 337, 0, 338, 0,
01484 336, 0, 339, 340, 335, 343, 340, 341, 343, 0,
01485 341, 0, 336, 340, 0, 343, 334, 341, 0, 0,
01486 340, 0, 343, 344, 341, 0, 344, 348, 339, 0,
01487 348, 0, 349, 344, 0, 349, 0, 348, 562, 562,
01488
01489 344, 562, 349, 0, 348, 0, 334, 0, 338, 349,
01490 341, 350, 0, 0, 350, 562, 351, 337, 339, 351,
01491 0, 350, 0, 334, 0, 343, 351, 353, 350, 337,
01492 353, 338, 0, 351, 0, 339, 0, 353, 0, 354,
01493 341, 340, 354, 0, 353, 0, 0, 0, 344, 354,
01494 0, 0, 0, 340, 350, 343, 354, 341, 355, 357,
01495 0, 355, 357, 0, 571, 571, 348, 571, 355, 357,
01496 353, 0, 0, 344, 0, 355, 357, 348, 0, 0,
01497 351, 571, 349, 0, 350, 350, 395, 0, 395, 395,
01498 395, 395, 395, 367, 0, 0, 367, 0, 0, 0,
01499
01500 353, 350, 0, 367, 383, 0, 351, 383, 0, 383,
01501 367, 383, 383, 383, 383, 383, 354, 353, 584, 584,
01502 584, 584, 414, 0, 0, 414, 357, 368, 416, 354,
01503 368, 416, 414, 0, 0, 0, 355, 368, 416, 414,
01504 0, 0, 0, 368, 368, 416, 0, 395, 355, 357,
01505 359, 359, 0, 359, 359, 359, 359, 359, 359, 0,
01506 359, 359, 359, 359, 359, 359, 0, 359, 367, 359,
01507 368, 416, 0, 0, 359, 359, 359, 359, 359, 359,
01508 359, 370, 0, 367, 404, 0, 0, 414, 0, 370,
01509 370, 404, 404, 404, 404, 370, 370, 0, 0, 370,
01510
01511 368, 416, 0, 0, 0, 359, 359, 359, 359, 359,
01512 359, 370, 414, 587, 587, 587, 587, 368, 416, 370,
01513 370, 0, 0, 0, 0, 370, 370, 0, 0, 370,
01514 0, 404, 0, 0, 404, 0, 0, 359, 359, 359,
01515 359, 359, 359, 360, 360, 360, 360, 360, 360, 360,
01516 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
01517 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
01518 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
01519 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
01520 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
01521
01522 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
01523 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
01524 360, 360, 360, 360, 360, 360, 360, 360, 360, 360,
01525 360, 360, 360, 360, 360, 360, 361, 361, 361, 361,
01526 361, 361, 361, 361, 361, 0, 361, 361, 361, 361,
01527 361, 361, 0, 361, 361, 361, 388, 388, 388, 388,
01528 361, 361, 361, 361, 361, 361, 361, 0, 442, 388,
01529 442, 442, 442, 442, 442, 0, 388, 388, 477, 0,
01530 477, 477, 477, 477, 477, 388, 0, 388, 0, 0,
01531 435, 361, 361, 361, 361, 361, 361, 435, 435, 435,
01532
01533 0, 435, 435, 435, 435, 0, 474, 0, 0, 474,
01534 388, 474, 442, 474, 474, 474, 474, 474, 0, 0,
01535 0, 0, 0, 361, 361, 361, 361, 361, 361, 363,
01536 363, 0, 363, 363, 363, 363, 363, 363, 363, 363,
01537 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
01538 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
01539 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
01540 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
01541 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
01542 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
01543
01544 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
01545 363, 363, 363, 363, 363, 363, 363, 363, 363, 363,
01546 363, 363, 364, 364, 0, 364, 364, 364, 364, 364,
01547 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
01548 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
01549 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
01550 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
01551 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
01552 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
01553 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
01554
01555 364, 364, 364, 364, 364, 364, 364, 364, 364, 364,
01556 364, 364, 364, 364, 364, 365, 365, 0, 365, 365,
01557 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
01558 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
01559 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
01560 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
01561 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
01562 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
01563 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
01564 365, 365, 365, 365, 365, 365, 365, 365, 365, 365,
01565
01566 365, 365, 365, 365, 365, 365, 365, 365, 366, 366,
01567 0, 366, 366, 366, 366, 366, 366, 366, 366, 366,
01568 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
01569 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
01570 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
01571 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
01572 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
01573 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
01574 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
01575 366, 366, 366, 366, 366, 366, 366, 366, 366, 366,
01576
01577 366, 391, 391, 391, 391, 396, 0, 396, 396, 396,
01578 396, 396, 0, 398, 391, 398, 398, 398, 398, 398,
01579 0, 391, 391, 0, 0, 0, 415, 0, 426, 415,
01580 391, 426, 391, 0, 0, 0, 415, 0, 426, 444,
01581 0, 0, 0, 415, 0, 426, 444, 444, 444, 0,
01582 444, 444, 444, 444, 485, 391, 485, 485, 485, 485,
01583 485, 483, 396, 483, 483, 483, 483, 483, 0, 0,
01584 398, 407, 0, 0, 0, 0, 407, 0, 407, 0,
01585 0, 407, 407, 407, 407, 0, 407, 0, 426, 415,
01586 0, 444, 407, 407, 407, 407, 407, 407, 407, 407,
01587
01588 407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
01589 407, 407, 407, 407, 407, 407, 415, 0, 426, 483,
01590 407, 0, 407, 407, 407, 407, 407, 407, 407, 407,
01591 407, 407, 407, 407, 407, 407, 407, 407, 407, 407,
01592 407, 407, 407, 407, 407, 407, 407, 407, 408, 0,
01593 0, 0, 0, 408, 0, 408, 0, 408, 408, 408,
01594 408, 408, 526, 408, 526, 526, 526, 526, 526, 408,
01595 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
01596 408, 408, 408, 408, 408, 408, 408, 408, 408, 408,
01597 408, 408, 408, 0, 0, 0, 0, 408, 417, 417,
01598
01599 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
01600 417, 417, 417, 0, 417, 417, 0, 417, 417, 417,
01601 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
01602 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
01603 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
01604 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
01605 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
01606 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
01607 417, 417, 417, 417, 417, 417, 417, 417, 417, 417,
01608 417, 420, 0, 0, 0, 0, 420, 0, 420, 480,
01609
01610 0, 480, 480, 480, 480, 480, 420, 0, 0, 0,
01611 0, 0, 420, 420, 420, 420, 420, 420, 420, 420,
01612 420, 420, 420, 420, 420, 420, 420, 420, 420, 420,
01613 420, 420, 420, 420, 420, 420, 0, 0, 0, 0,
01614 420, 421, 424, 480, 425, 424, 421, 425, 421, 0,
01615 0, 0, 424, 0, 425, 0, 421, 0, 0, 424,
01616 0, 425, 421, 421, 421, 421, 421, 421, 421, 421,
01617 421, 421, 421, 421, 421, 421, 421, 421, 421, 421,
01618 421, 421, 421, 421, 421, 421, 427, 0, 0, 427,
01619 421, 430, 0, 0, 432, 0, 427, 432, 431, 430,
01620
01621 430, 431, 0, 427, 432, 430, 430, 0, 431, 430,
01622 424, 432, 0, 0, 431, 431, 0, 425, 0, 0,
01623 0, 430, 0, 0, 0, 0, 430, 0, 0, 430,
01624 430, 0, 424, 0, 425, 430, 430, 0, 0, 430,
01625 438, 438, 438, 438, 0, 482, 0, 482, 482, 482,
01626 482, 482, 0, 438, 0, 0, 0, 0, 450, 0,
01627 438, 438, 0, 427, 0, 450, 450, 450, 450, 438,
01628 0, 438, 0, 432, 0, 0, 427, 0, 0, 0,
01629 0, 438, 0, 0, 432, 0, 0, 0, 431, 433,
01630 433, 433, 433, 482, 438, 0, 433, 433, 433, 433,
01631
01632 433, 433, 433, 433, 433, 450, 433, 0, 450, 0,
01633 450, 0, 433, 433, 433, 433, 433, 433, 433, 433,
01634 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
01635 433, 433, 433, 433, 433, 433, 0, 433, 0, 0,
01636 433, 0, 433, 433, 433, 433, 433, 433, 433, 433,
01637 433, 433, 433, 433, 433, 433, 433, 433, 433, 433,
01638 433, 433, 433, 433, 433, 433, 433, 433, 434, 0,
01639 0, 434, 433, 446, 446, 0, 446, 0, 434, 0,
01640 0, 446, 0, 0, 0, 434, 0, 0, 446, 446,
01641 446, 454, 446, 446, 446, 446, 0, 0, 494, 454,
01642
01643 454, 494, 0, 0, 0, 454, 454, 456, 494, 454,
01644 456, 0, 0, 0, 0, 494, 457, 456, 454, 457,
01645 0, 454, 0, 0, 456, 0, 457, 0, 459, 454,
01646 454, 459, 0, 457, 0, 454, 454, 0, 459, 454,
01647 0, 0, 0, 0, 0, 459, 434, 0, 0, 0,
01648 481, 459, 481, 481, 481, 481, 481, 0, 434, 457,
01649 488, 512, 0, 488, 512, 0, 0, 456, 0, 0,
01650 488, 494, 0, 0, 0, 0, 457, 488, 512, 0,
01651 0, 499, 0, 504, 499, 0, 504, 0, 494, 457,
01652 0, 499, 506, 0, 481, 506, 0, 456, 499, 504,
01653
01654 504, 504, 504, 504, 504, 504, 457, 0, 506, 506,
01655 506, 506, 506, 506, 506, 0, 0, 0, 459, 0,
01656 488, 512, 0, 0, 0, 0, 0, 512, 514, 514,
01657 514, 514, 514, 514, 514, 0, 0, 0, 0, 0,
01658 551, 512, 551, 551, 551, 551, 551, 0, 499, 0,
01659 488, 490, 490, 490, 490, 490, 490, 490, 490, 490,
01660 490, 490, 490, 490, 490, 490, 490, 490, 490, 0,
01661 490, 499, 0, 0, 0, 490, 490, 490, 490, 490,
01662 490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
01663 490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
01664
01665 490, 490, 490, 490, 490, 490, 490, 490, 490, 490,
01666 490, 490, 495, 496, 0, 495, 496, 510, 0, 0,
01667 510, 0, 495, 496, 0, 510, 0, 0, 0, 495,
01668 496, 0, 510, 510, 510, 510, 0, 0, 490, 490,
01669 490, 490, 490, 490, 0, 529, 0, 529, 529, 529,
01670 529, 529, 531, 0, 531, 531, 531, 531, 531, 0,
01671 0, 0, 530, 0, 530, 530, 530, 530, 530, 0,
01672 0, 0, 510, 0, 0, 510, 0, 537, 0, 0,
01673 537, 0, 0, 535, 0, 495, 535, 537, 0, 0,
01674 0, 496, 529, 535, 537, 0, 531, 0, 0, 0,
01675
01676 535, 0, 495, 496, 528, 528, 528, 528, 528, 528,
01677 528, 528, 528, 528, 528, 528, 528, 528, 528, 530,
01678 528, 528, 0, 528, 0, 0, 535, 0, 528, 528,
01679 528, 528, 528, 528, 528, 538, 538, 538, 538, 538,
01680 538, 538, 0, 0, 553, 537, 553, 553, 553, 553,
01681 553, 0, 0, 0, 0, 0, 535, 0, 0, 528,
01682 528, 528, 528, 528, 528, 0, 554, 537, 554, 554,
01683 554, 554, 554, 535, 556, 556, 556, 556, 556, 556,
01684 556, 0, 0, 0, 0, 0, 0, 559, 553, 0,
01685 559, 528, 528, 528, 528, 528, 528, 559, 0, 0,
01686
01687 0, 0, 0, 565, 559, 565, 565, 565, 565, 565,
01688 567, 567, 567, 567, 567, 567, 567, 0, 570, 0,
01689 0, 570, 0, 554, 558, 0, 0, 0, 570, 0,
01690 0, 0, 558, 558, 573, 570, 0, 0, 558, 558,
01691 558, 0, 558, 0, 0, 573, 573, 573, 0, 0,
01692 0, 0, 0, 0, 558, 0, 0, 0, 573, 0,
01693 559, 570, 558, 558, 0, 0, 0, 0, 558, 558,
01694 558, 579, 558, 0, 0, 0, 0, 559, 0, 0,
01695 0, 0, 579, 579, 579, 0, 0, 0, 0, 0,
01696 0, 570, 0, 0, 0, 579, 0, 0, 0, 0,
01697
01698 0, 0, 0, 0, 0, 0, 0, 0, 570, 0,
01699 0, 0, 0, 0, 0, 0, 573, 0, 573, 0,
01700 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01701 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01702 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01703 0, 0, 0, 579, 0, 579, 592, 0, 0, 0,
01704 0, 0, 0, 0, 592, 0, 0, 0, 592, 0,
01705 0, 592, 592, 593, 0, 0, 0, 593, 593, 593,
01706 593, 593, 0, 0, 593, 593, 593, 593, 593, 594,
01707 0, 0, 0, 0, 0, 0, 0, 594, 0, 0,
01708
01709 0, 0, 594, 0, 0, 594, 594, 595, 0, 0,
01710 0, 0, 595, 595, 595, 0, 595, 595, 595, 595,
01711 0, 0, 0, 595, 595, 595, 595, 595, 596, 596,
01712 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
01713 596, 596, 596, 596, 596, 0, 596, 596, 597, 0,
01714 0, 0, 597, 597, 0, 597, 0, 0, 0, 597,
01715 0, 0, 597, 597, 598, 0, 0, 0, 598, 0,
01716 0, 598, 598, 599, 0, 0, 0, 599, 0, 0,
01717 599, 599, 600, 0, 0, 0, 600, 0, 600, 600,
01718 600, 601, 601, 601, 601, 601, 601, 601, 601, 601,
01719
01720 601, 601, 601, 601, 601, 601, 601, 601, 601, 601,
01721 601, 601, 601, 602, 0, 602, 602, 0, 0, 0,
01722 0, 602, 0, 602, 0, 602, 602, 603, 0, 0,
01723 0, 603, 603, 0, 603, 603, 603, 0, 603, 0,
01724 0, 603, 603, 604, 604, 604, 604, 604, 604, 604,
01725 604, 604, 604, 604, 604, 604, 604, 604, 604, 604,
01726 0, 604, 604, 605, 0, 0, 0, 605, 0, 605,
01727 605, 605, 606, 606, 0, 606, 606, 606, 606, 606,
01728 606, 606, 606, 606, 606, 606, 606, 606, 606, 606,
01729 606, 606, 606, 606, 607, 607, 0, 607, 607, 607,
01730
01731 607, 607, 607, 607, 607, 607, 607, 607, 607, 607,
01732 607, 607, 607, 607, 607, 607, 608, 608, 0, 0,
01733 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
01734 0, 608, 608, 609, 0, 0, 0, 609, 0, 0,
01735 609, 609, 611, 0, 0, 0, 611, 0, 0, 611,
01736 611, 612, 0, 612, 612, 0, 0, 0, 612, 0,
01737 0, 612, 612, 613, 0, 0, 0, 613, 613, 613,
01738 613, 0, 0, 0, 613, 613, 613, 613, 613, 614,
01739 0, 0, 0, 614, 614, 0, 614, 0, 0, 0,
01740 614, 0, 0, 614, 614, 615, 0, 0, 0, 615,
01741
01742 0, 615, 615, 615, 616, 0, 616, 616, 0, 0,
01743 0, 0, 616, 0, 616, 0, 616, 617, 0, 0,
01744 0, 617, 617, 0, 617, 0, 0, 0, 617, 0,
01745 0, 617, 617, 618, 0, 0, 0, 618, 0, 618,
01746 618, 618, 619, 0, 0, 0, 0, 0, 0, 0,
01747 619, 0, 0, 0, 0, 619, 0, 0, 619, 619,
01748 620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
01749 620, 620, 620, 620, 620, 620, 620, 620, 620, 620,
01750 620, 620, 621, 621, 0, 0, 621, 0, 0, 0,
01751 0, 0, 621, 0, 0, 621, 621, 622, 0, 0,
01752
01753 0, 0, 0, 0, 0, 622, 0, 0, 0, 622,
01754 0, 0, 622, 622, 624, 0, 0, 0, 624, 624,
01755 624, 624, 624, 624, 624, 624, 624, 624, 624, 624,
01756 0, 624, 624, 624, 624, 624, 625, 0, 0, 0,
01757 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
01758 625, 625, 0, 625, 625, 625, 625, 625, 591, 591,
01759 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01760 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01761 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01762 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01763
01764 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01765 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01766 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01767 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01768 591, 591, 591, 591, 591, 591, 591, 591, 591, 591,
01769 591, 591
01770 } ;
01771
01772 #define YY_TRAILING_MASK 0x2000
01773 #define YY_TRAILING_HEAD_MASK 0x4000
01774 #define REJECT \
01775 { \
01776 *yy_cp = yy_hold_char; \
01777 yy_cp = yy_full_match; \
01778 yy_lp = yy_full_lp; \
01779 yy_state_ptr = yy_full_state; \
01780 yy_current_state = *yy_state_ptr; \
01781 ++yy_lp; \
01782 goto find_rule; \
01783 }
01784 #define yymore() yymore_used_but_not_detected
01785 #define YY_MORE_ADJ 0
01786 #define YY_RESTORE_YY_MORE_OFFSET
01787 #line 1 "PtbTokenizer.lex"
01788 #define INITIAL 0
01789 #line 2 "PtbTokenizer.lex"
01790
01791 #include "Tokenizer.h"
01792 #include <string>
01793
01794 static char const* opendblquote = "``";
01795 static char const* closedblquote = "''";
01796 static char const* openparen = "-LRB-";
01797 static char const* closeparen = "-RRB-";
01798 static char const* openbrace = "-LCB-";
01799 static char const* closebrace = "-RCB-";
01800 static char const* ptbmdash = "--";
01801
01805 static char* escape(char const* s, char c) {
01806 std::string r;
01807 char const* o;
01808 while (o = strchr(s, c)) {
01809 if (o == s || o[-1] != '\\') {
01810 r.append(s, o - s); r += "\\"; r += c;
01811 }
01812 s = o + 1;
01813 }
01814 r += s;
01815 return strdup(r.c_str());
01816 }
01817
01818
01819
01820
01821
01822
01823
01824
01825
01826
01827
01828
01829
01830
01831
01832
01833
01834
01835
01836
01837
01838
01839
01840
01841 #line 1842 "PtbTokenizer.cpp"
01842
01843
01844
01845
01846
01847 #ifndef YY_SKIP_YYWRAP
01848 #ifdef __cplusplus
01849 extern "C" int yywrap YY_PROTO(( void ));
01850 #else
01851 extern int yywrap YY_PROTO(( void ));
01852 #endif
01853 #endif
01854
01855
01856 #ifndef yytext_ptr
01857 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
01858 #endif
01859
01860 #ifdef YY_NEED_STRLEN
01861 static int yy_flex_strlen YY_PROTO(( yyconst char * ));
01862 #endif
01863
01864 #ifndef YY_NO_INPUT
01865 #endif
01866
01867 #if YY_STACK_USED
01868 static int yy_start_stack_ptr = 0;
01869 static int yy_start_stack_depth = 0;
01870 static int *yy_start_stack = 0;
01871 #ifndef YY_NO_PUSH_STATE
01872 static void yy_push_state YY_PROTO(( int new_state ));
01873 #endif
01874 #ifndef YY_NO_POP_STATE
01875 static void yy_pop_state YY_PROTO(( void ));
01876 #endif
01877 #ifndef YY_NO_TOP_STATE
01878 static int yy_top_state YY_PROTO(( void ));
01879 #endif
01880
01881 #else
01882 #define YY_NO_PUSH_STATE 1
01883 #define YY_NO_POP_STATE 1
01884 #define YY_NO_TOP_STATE 1
01885 #endif
01886
01887 #ifdef YY_MALLOC_DECL
01888 YY_MALLOC_DECL
01889 #else
01890 #if __STDC__
01891 #ifndef __cplusplus
01892 #include <stdlib.h>
01893 #endif
01894 #else
01895
01896
01897
01898
01899 #endif
01900 #endif
01901
01902
01903 #ifndef YY_READ_BUF_SIZE
01904 #define YY_READ_BUF_SIZE 8192
01905 #endif
01906
01907
01908
01909 #ifndef ECHO
01910 #define ECHO LexerOutput( yytext, yyleng )
01911 #endif
01912
01913
01914
01915
01916 #ifndef YY_INPUT
01917 #define YY_INPUT(buf,result,max_size) \
01918 if ( (result = LexerInput( (char *) buf, max_size )) < 0 ) \
01919 YY_FATAL_ERROR( "input in flex scanner failed" );
01920 #endif
01921
01922
01923
01924
01925
01926 #ifndef yyterminate
01927 #define yyterminate() return YY_NULL
01928 #endif
01929
01930
01931 #ifndef YY_START_STACK_INCR
01932 #define YY_START_STACK_INCR 25
01933 #endif
01934
01935
01936 #ifndef YY_FATAL_ERROR
01937 #define YY_FATAL_ERROR(msg) LexerError( msg )
01938 #endif
01939
01940
01941
01942
01943 #ifndef YY_DECL
01944 #define YY_DECL int yyFlexLexer::yylex()
01945 #endif
01946
01947
01948
01949
01950 #ifndef YY_USER_ACTION
01951 #define YY_USER_ACTION
01952 #endif
01953
01954
01955 #ifndef YY_BREAK
01956 #define YY_BREAK break;
01957 #endif
01958
01959 #define YY_RULE_SETUP \
01960 YY_USER_ACTION
01961
01962 YY_DECL
01963 {
01964 register yy_state_type yy_current_state;
01965 register char *yy_cp = NULL, *yy_bp = NULL;
01966 register int yy_act;
01967
01968 #line 114 "PtbTokenizer.lex"
01969
01970
01971
01972 #line 1973 "PtbTokenizer.cpp"
01973
01974 if ( yy_init )
01975 {
01976 yy_init = 0;
01977
01978 #ifdef YY_USER_INIT
01979 YY_USER_INIT;
01980 #endif
01981
01982 if ( ! yy_start )
01983 yy_start = 1;
01984
01985 if ( ! yyin )
01986 yyin = &std::cin;
01987
01988 if ( ! yyout )
01989 yyout = &std::cout;
01990
01991 if ( ! yy_current_buffer )
01992 yy_current_buffer =
01993 yy_create_buffer( yyin, YY_BUF_SIZE );
01994
01995 yy_load_buffer_state();
01996 }
01997
01998 while ( 1 )
01999 {
02000 yy_cp = yy_c_buf_p;
02001
02002
02003 *yy_cp = yy_hold_char;
02004
02005
02006
02007
02008 yy_bp = yy_cp;
02009
02010 yy_current_state = yy_start;
02011 yy_state_ptr = yy_state_buf;
02012 *yy_state_ptr++ = yy_current_state;
02013 yy_match:
02014 do
02015 {
02016 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
02017 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02018 {
02019 yy_current_state = (int) yy_def[yy_current_state];
02020 if ( yy_current_state >= 592 )
02021 yy_c = yy_meta[(unsigned int) yy_c];
02022 }
02023 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02024 *yy_state_ptr++ = yy_current_state;
02025 ++yy_cp;
02026 }
02027 while ( yy_base[yy_current_state] != 5059 );
02028
02029 yy_find_action:
02030 yy_current_state = *--yy_state_ptr;
02031 yy_lp = yy_accept[yy_current_state];
02032 find_rule:
02033 for ( ; ; )
02034 {
02035 if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
02036 {
02037 yy_act = yy_acclist[yy_lp];
02038 if ( yy_act & YY_TRAILING_HEAD_MASK ||
02039 yy_looking_for_trail_begin )
02040 {
02041 if ( yy_act == yy_looking_for_trail_begin )
02042 {
02043 yy_looking_for_trail_begin = 0;
02044 yy_act &= ~YY_TRAILING_HEAD_MASK;
02045 break;
02046 }
02047 }
02048 else if ( yy_act & YY_TRAILING_MASK )
02049 {
02050 yy_looking_for_trail_begin = yy_act & ~YY_TRAILING_MASK;
02051 yy_looking_for_trail_begin |= YY_TRAILING_HEAD_MASK;
02052 }
02053 else
02054 {
02055 yy_full_match = yy_cp;
02056 yy_full_state = yy_state_ptr;
02057 yy_full_lp = yy_lp;
02058 break;
02059 }
02060 ++yy_lp;
02061 goto find_rule;
02062 }
02063 --yy_cp;
02064 yy_current_state = *--yy_state_ptr;
02065 yy_lp = yy_accept[yy_current_state];
02066 }
02067
02068 YY_DO_BEFORE_ACTION;
02069
02070
02071 do_action:
02072
02073
02074 switch ( yy_act )
02075 {
02076 case 1:
02077 YY_RULE_SETUP
02078 #line 117 "PtbTokenizer.lex"
02079 { return Token(strdup(yytext), Tag); }
02080 YY_BREAK
02081 case 2:
02082 YY_RULE_SETUP
02083 #line 118 "PtbTokenizer.lex"
02084 { return Token(strdup(ptbmdash), Punct); }
02085 YY_BREAK
02086 case 3:
02087 YY_RULE_SETUP
02088 #line 119 "PtbTokenizer.lex"
02089 { return Token(strdup(yytext), Punct); }
02090 YY_BREAK
02091 case 4:
02092 *yy_cp = yy_hold_char;
02093 yy_c_buf_p = yy_cp -= 2;
02094 YY_DO_BEFORE_ACTION;
02095 YY_RULE_SETUP
02096 #line 120 "PtbTokenizer.lex"
02097 { return Token(strdup(yytext), Word); }
02098 YY_BREAK
02099 case 5:
02100 YY_RULE_SETUP
02101 #line 121 "PtbTokenizer.lex"
02102 { return Token(strdup(yytext), Word); }
02103 YY_BREAK
02104 case 6:
02105 *yy_cp = yy_hold_char;
02106 yy_c_buf_p = yy_cp -= 3;
02107 YY_DO_BEFORE_ACTION;
02108 YY_RULE_SETUP
02109 #line 122 "PtbTokenizer.lex"
02110 { unput(yytext[yyleng-1]), Token(strdup(yytext), Word); }
02111 YY_BREAK
02112 case 7:
02113 YY_RULE_SETUP
02114 #line 123 "PtbTokenizer.lex"
02115 { return Token(strdup(yytext), Word); }
02116 YY_BREAK
02117 case 8:
02118 YY_RULE_SETUP
02119 #line 124 "PtbTokenizer.lex"
02120 { return Token(strdup(yytext), Word); }
02121 YY_BREAK
02122 case 9:
02123 YY_RULE_SETUP
02124 #line 125 "PtbTokenizer.lex"
02125 { return Token(strdup(yytext), Url); }
02126 YY_BREAK
02127 case 10:
02128 *yy_cp = yy_hold_char;
02129 yy_c_buf_p = yy_cp = yy_bp + 2;
02130 YY_DO_BEFORE_ACTION;
02131 YY_RULE_SETUP
02132 #line 126 "PtbTokenizer.lex"
02133 { return Token(strdup(yytext), Word); }
02134 YY_BREAK
02135 case 11:
02136 *yy_cp = yy_hold_char;
02137 yy_c_buf_p = yy_cp -= 1;
02138 YY_DO_BEFORE_ACTION;
02139 YY_RULE_SETUP
02140 #line 127 "PtbTokenizer.lex"
02141 { return Token(strdup(yytext), Word); }
02142 YY_BREAK
02143 case 12:
02144 YY_RULE_SETUP
02145 #line 128 "PtbTokenizer.lex"
02146 { return Token(strdup(yytext), Word); }
02147 YY_BREAK
02148 case 13:
02149 YY_RULE_SETUP
02150 #line 129 "PtbTokenizer.lex"
02151 { return Token(strdup(yytext), Date); }
02152 YY_BREAK
02153 case 14:
02154 YY_RULE_SETUP
02155 #line 130 "PtbTokenizer.lex"
02156 { return Token(strdup(yytext), Number); }
02157 YY_BREAK
02158 case 15:
02159 YY_RULE_SETUP
02160 #line 131 "PtbTokenizer.lex"
02161 { return Token(escape(yytext, '/'), Word); }
02162 YY_BREAK
02163 case 16:
02164 YY_RULE_SETUP
02165 #line 132 "PtbTokenizer.lex"
02166 { return Token(escape(yytext, '/'), Word); }
02167 YY_BREAK
02168 case 17:
02169 YY_RULE_SETUP
02170 #line 133 "PtbTokenizer.lex"
02171 { return Token(strdup(yytext), Word); }
02172 YY_BREAK
02173 case 18:
02174 YY_RULE_SETUP
02175 #line 134 "PtbTokenizer.lex"
02176 { char* abbr = yytext;
02177 unput(yytext[yyleng-1]);
02178 return Token(strdup(abbr), Abbrev); }
02179 YY_BREAK
02180 case 19:
02181 YY_RULE_SETUP
02182 #line 137 "PtbTokenizer.lex"
02183 { return Token(strdup(yytext), Abbrev); }
02184 YY_BREAK
02185 case 20:
02186 YY_RULE_SETUP
02187 #line 138 "PtbTokenizer.lex"
02188 { return Token(strdup(yytext), Abbrev); }
02189 YY_BREAK
02190 case 21:
02191 YY_RULE_SETUP
02192 #line 139 "PtbTokenizer.lex"
02193 { return Token(strdup(yytext), Abbrev); }
02194 YY_BREAK
02195 case 22:
02196 YY_RULE_SETUP
02197 #line 140 "PtbTokenizer.lex"
02198 { return Token(strdup(yytext), Abbrev); }
02199 YY_BREAK
02200 case 23:
02201 YY_RULE_SETUP
02202 #line 141 "PtbTokenizer.lex"
02203 { return Token(strdup(yytext), Abbrev); }
02204 YY_BREAK
02205 case 24:
02206 YY_RULE_SETUP
02207 #line 142 "PtbTokenizer.lex"
02208 { return Token(strdup(yytext), Word); }
02209 YY_BREAK
02210 case 25:
02211 *yy_cp = yy_hold_char;
02212 yy_c_buf_p = yy_cp -= 1;
02213 YY_DO_BEFORE_ACTION;
02214 YY_RULE_SETUP
02215 #line 143 "PtbTokenizer.lex"
02216 { return Token(strdup(yytext), Word); }
02217 YY_BREAK
02218 case 26:
02219 YY_RULE_SETUP
02220 #line 144 "PtbTokenizer.lex"
02221 { return Token(strdup(yytext), Phone); }
02222 YY_BREAK
02223 case 27:
02224 *yy_cp = yy_hold_char;
02225 yy_c_buf_p = yy_cp -= 1;
02226 YY_DO_BEFORE_ACTION;
02227 YY_RULE_SETUP
02228 #line 145 "PtbTokenizer.lex"
02229 { return Token(strdup(opendblquote), Punct); }
02230 YY_BREAK
02231 case 28:
02232 YY_RULE_SETUP
02233 #line 146 "PtbTokenizer.lex"
02234 { return Token(strdup(closedblquote), Punct); }
02235 YY_BREAK
02236 case 29:
02237 YY_RULE_SETUP
02238 #line 147 "PtbTokenizer.lex"
02239 { return Token(strdup(yytext), Punct); }
02240 YY_BREAK
02241 case 30:
02242 YY_RULE_SETUP
02243 #line 148 "PtbTokenizer.lex"
02244 { return Token(strdup(yytext), Punct); }
02245 YY_BREAK
02246 case 31:
02247 YY_RULE_SETUP
02248 #line 149 "PtbTokenizer.lex"
02249 { return Token(strdup(yytext), Punct); }
02250 YY_BREAK
02251 case 32:
02252 YY_RULE_SETUP
02253 #line 150 "PtbTokenizer.lex"
02254 { return Token(strdup(yytext), Punct); }
02255 YY_BREAK
02256 case 33:
02257 YY_RULE_SETUP
02258 #line 151 "PtbTokenizer.lex"
02259 { }
02260 YY_BREAK
02261 case 34:
02262 YY_RULE_SETUP
02263 #line 152 "PtbTokenizer.lex"
02264 { return Token(strdup(yytext), Punct); }
02265 YY_BREAK
02266 case 35:
02267 YY_RULE_SETUP
02268 #line 153 "PtbTokenizer.lex"
02269 { return Token(strdup(yytext), Punct); }
02270 YY_BREAK
02271 case 36:
02272 YY_RULE_SETUP
02273 #line 154 "PtbTokenizer.lex"
02274 { return Token(strdup(openbrace), Punct); }
02275 YY_BREAK
02276 case 37:
02277 YY_RULE_SETUP
02278 #line 155 "PtbTokenizer.lex"
02279 { return Token(strdup(closebrace), Punct); }
02280 YY_BREAK
02281 case 38:
02282 YY_RULE_SETUP
02283 #line 156 "PtbTokenizer.lex"
02284 { return Token(strdup(openparen), Punct); }
02285 YY_BREAK
02286 case 39:
02287 YY_RULE_SETUP
02288 #line 157 "PtbTokenizer.lex"
02289 { return Token(strdup(closeparen), Punct); }
02290 YY_BREAK
02291 case 40:
02292 YY_RULE_SETUP
02293 #line 158 "PtbTokenizer.lex"
02294 { if (yyleng >= 3 && yyleng <= 4)
02295 return Token(strdup(ptbmdash), Punct);
02296 else
02297 return Token(strdup(yytext), Punct);
02298 }
02299 YY_BREAK
02300 case 41:
02301 YY_RULE_SETUP
02302 #line 163 "PtbTokenizer.lex"
02303 { return Token(strdup(yytext), Punct); }
02304 YY_BREAK
02305 case 42:
02306 YY_RULE_SETUP
02307 #line 164 "PtbTokenizer.lex"
02308 { return Token(strdup(yytext), Punct); }
02309 YY_BREAK
02310 case 43:
02311 YY_RULE_SETUP
02312 #line 165 "PtbTokenizer.lex"
02313 { return Token(escape(yytext, '*'), Punct); }
02314 YY_BREAK
02315 case 44:
02316 YY_RULE_SETUP
02317 #line 166 "PtbTokenizer.lex"
02318 { return Token(strdup(yytext), Punct); }
02319 YY_BREAK
02320 case 45:
02321 YY_RULE_SETUP
02322 #line 167 "PtbTokenizer.lex"
02323 { return Token(strdup(yytext), Punct); }
02324 YY_BREAK
02325 case 46:
02326 YY_RULE_SETUP
02327 #line 168 "PtbTokenizer.lex"
02328 { return Token(strdup(yytext), Punct); }
02329 YY_BREAK
02330 case 47:
02331 YY_RULE_SETUP
02332 #line 169 "PtbTokenizer.lex"
02333 { return Token(strdup(yytext), Punct); }
02334 YY_BREAK
02335 case 48:
02336 *yy_cp = yy_hold_char;
02337 yy_c_buf_p = yy_cp -= 1;
02338 YY_DO_BEFORE_ACTION;
02339 YY_RULE_SETUP
02340 #line 170 "PtbTokenizer.lex"
02341 { return Token(strdup(yytext), Word); }
02342 YY_BREAK
02343 case 49:
02344 YY_RULE_SETUP
02345 #line 171 "PtbTokenizer.lex"
02346 { return Token(strdup(yytext), Word); }
02347 YY_BREAK
02348 case 50:
02349 YY_RULE_SETUP
02350 #line 172 "PtbTokenizer.lex"
02351 { }
02352 YY_BREAK
02353 case 51:
02354 YY_RULE_SETUP
02355 #line 173 "PtbTokenizer.lex"
02356 { }
02357 YY_BREAK
02358 case 52:
02359 YY_RULE_SETUP
02360 #line 174 "PtbTokenizer.lex"
02361 { std::cerr << yytext; }
02362 YY_BREAK
02363 case YY_STATE_EOF(INITIAL):
02364 #line 175 "PtbTokenizer.lex"
02365 { return Token(strdup(""), Eof); }
02366 YY_BREAK
02367 case 53:
02368 YY_RULE_SETUP
02369 #line 176 "PtbTokenizer.lex"
02370 ECHO;
02371 YY_BREAK
02372 #line 2373 "PtbTokenizer.cpp"
02373
02374 case YY_END_OF_BUFFER:
02375 {
02376
02377 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
02378
02379
02380 *yy_cp = yy_hold_char;
02381 YY_RESTORE_YY_MORE_OFFSET
02382
02383 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
02384 {
02385
02386
02387
02388
02389
02390
02391
02392
02393
02394 yy_n_chars = yy_current_buffer->yy_n_chars;
02395 yy_current_buffer->yy_input_file = yyin;
02396 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
02397 }
02398
02399
02400
02401
02402
02403
02404
02405
02406 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
02407 {
02408 yy_state_type yy_next_state;
02409
02410 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
02411
02412 yy_current_state = yy_get_previous_state();
02413
02414
02415
02416
02417
02418
02419
02420
02421
02422
02423 yy_next_state = yy_try_NUL_trans( yy_current_state );
02424
02425 yy_bp = yytext_ptr + YY_MORE_ADJ;
02426
02427 if ( yy_next_state )
02428 {
02429
02430 yy_cp = ++yy_c_buf_p;
02431 yy_current_state = yy_next_state;
02432 goto yy_match;
02433 }
02434
02435 else
02436 {
02437 yy_cp = yy_c_buf_p;
02438 goto yy_find_action;
02439 }
02440 }
02441
02442 else switch ( yy_get_next_buffer() )
02443 {
02444 case EOB_ACT_END_OF_FILE:
02445 {
02446 yy_did_buffer_switch_on_eof = 0;
02447
02448 if ( yywrap() )
02449 {
02450
02451
02452
02453
02454
02455
02456
02457
02458
02459 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
02460
02461 yy_act = YY_STATE_EOF(YY_START);
02462 goto do_action;
02463 }
02464
02465 else
02466 {
02467 if ( ! yy_did_buffer_switch_on_eof )
02468 YY_NEW_FILE;
02469 }
02470 break;
02471 }
02472
02473 case EOB_ACT_CONTINUE_SCAN:
02474 yy_c_buf_p =
02475 yytext_ptr + yy_amount_of_matched_text;
02476
02477 yy_current_state = yy_get_previous_state();
02478
02479 yy_cp = yy_c_buf_p;
02480 yy_bp = yytext_ptr + YY_MORE_ADJ;
02481 goto yy_match;
02482
02483 case EOB_ACT_LAST_MATCH:
02484 yy_c_buf_p =
02485 &yy_current_buffer->yy_ch_buf[yy_n_chars];
02486
02487 yy_current_state = yy_get_previous_state();
02488
02489 yy_cp = yy_c_buf_p;
02490 yy_bp = yytext_ptr + YY_MORE_ADJ;
02491 goto yy_find_action;
02492 }
02493 break;
02494 }
02495
02496 default:
02497 YY_FATAL_ERROR(
02498 "fatal flex scanner internal error--no action found" );
02499 }
02500 }
02501 }
02502
02503 yyFlexLexer::yyFlexLexer( std::istream* arg_yyin, std::ostream* arg_yyout )
02504 {
02505 yyin = arg_yyin;
02506 yyout = arg_yyout;
02507 yy_c_buf_p = 0;
02508 yy_init = 1;
02509 yy_start = 0;
02510 yy_flex_debug = 0;
02511 yylineno = 1;
02512
02513 yy_did_buffer_switch_on_eof = 0;
02514
02515 yy_looking_for_trail_begin = 0;
02516 yy_more_flag = 0;
02517 yy_more_len = 0;
02518 yy_more_offset = yy_prev_more_offset = 0;
02519
02520 yy_start_stack_ptr = yy_start_stack_depth = 0;
02521 yy_start_stack = 0;
02522
02523 yy_current_buffer = 0;
02524
02525 #ifdef YY_USES_REJECT
02526 yy_state_buf = new yy_state_type[YY_BUF_SIZE + 2];
02527 #else
02528 yy_state_buf = 0;
02529 #endif
02530 }
02531
02532 yyFlexLexer::~yyFlexLexer()
02533 {
02534 delete yy_state_buf;
02535 yy_delete_buffer( yy_current_buffer );
02536 }
02537
02538 void yyFlexLexer::switch_streams( std::istream* new_in, std::ostream* new_out )
02539 {
02540 if ( new_in )
02541 {
02542 yy_delete_buffer( yy_current_buffer );
02543 yy_switch_to_buffer( yy_create_buffer( new_in, YY_BUF_SIZE ) );
02544 }
02545
02546 if ( new_out )
02547 yyout = new_out;
02548 }
02549
02550 #ifdef YY_INTERACTIVE
02551 int yyFlexLexer::LexerInput( char* buf, int )
02552 #else
02553 int yyFlexLexer::LexerInput( char* buf, int max_size )
02554 #endif
02555 {
02556 if ( yyin->eof() || yyin->fail() )
02557 return 0;
02558
02559 #ifdef YY_INTERACTIVE
02560 yyin->get( buf[0] );
02561
02562 if ( yyin->eof() )
02563 return 0;
02564
02565 if ( yyin->bad() )
02566 return -1;
02567
02568 return 1;
02569
02570 #else
02571 (void) yyin->read( buf, max_size );
02572
02573 if ( yyin->bad() )
02574 return -1;
02575 else
02576 return yyin->gcount();
02577 #endif
02578 }
02579
02580 void yyFlexLexer::LexerOutput( const char* buf, int size )
02581 {
02582 (void) yyout->write( buf, size );
02583 }
02584
02585
02586
02587
02588
02589
02590
02591
02592
02593 int yyFlexLexer::yy_get_next_buffer()
02594 {
02595 register char *dest = yy_current_buffer->yy_ch_buf;
02596 register char *source = yytext_ptr;
02597 register int number_to_move, i;
02598 int ret_val;
02599
02600 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
02601 YY_FATAL_ERROR(
02602 "fatal flex scanner internal error--end of buffer missed" );
02603
02604 if ( yy_current_buffer->yy_fill_buffer == 0 )
02605 {
02606 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
02607 {
02608
02609
02610
02611 return EOB_ACT_END_OF_FILE;
02612 }
02613
02614 else
02615 {
02616
02617
02618
02619 return EOB_ACT_LAST_MATCH;
02620 }
02621 }
02622
02623
02624
02625
02626 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
02627
02628 for ( i = 0; i < number_to_move; ++i )
02629 *(dest++) = *(source++);
02630
02631 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
02632
02633
02634
02635 yy_current_buffer->yy_n_chars = yy_n_chars = 0;
02636
02637 else
02638 {
02639 int num_to_read =
02640 yy_current_buffer->yy_buf_size - number_to_move - 1;
02641
02642 while ( num_to_read <= 0 )
02643 {
02644 #ifdef YY_USES_REJECT
02645 YY_FATAL_ERROR(
02646 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
02647 #else
02648
02649
02650 YY_BUFFER_STATE b = yy_current_buffer;
02651
02652 int yy_c_buf_p_offset =
02653 (int) (yy_c_buf_p - b->yy_ch_buf);
02654
02655 if ( b->yy_is_our_buffer )
02656 {
02657 int new_size = b->yy_buf_size * 2;
02658
02659 if ( new_size <= 0 )
02660 b->yy_buf_size += b->yy_buf_size / 8;
02661 else
02662 b->yy_buf_size *= 2;
02663
02664 b->yy_ch_buf = (char *)
02665
02666 yy_flex_realloc( (void *) b->yy_ch_buf,
02667 b->yy_buf_size + 2 );
02668 }
02669 else
02670
02671 b->yy_ch_buf = 0;
02672
02673 if ( ! b->yy_ch_buf )
02674 YY_FATAL_ERROR(
02675 "fatal error - scanner input buffer overflow" );
02676
02677 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
02678
02679 num_to_read = yy_current_buffer->yy_buf_size -
02680 number_to_move - 1;
02681 #endif
02682 }
02683
02684 if ( num_to_read > YY_READ_BUF_SIZE )
02685 num_to_read = YY_READ_BUF_SIZE;
02686
02687
02688 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
02689 yy_n_chars, num_to_read );
02690
02691 yy_current_buffer->yy_n_chars = yy_n_chars;
02692 }
02693
02694 if ( yy_n_chars == 0 )
02695 {
02696 if ( number_to_move == YY_MORE_ADJ )
02697 {
02698 ret_val = EOB_ACT_END_OF_FILE;
02699 yyrestart( yyin );
02700 }
02701
02702 else
02703 {
02704 ret_val = EOB_ACT_LAST_MATCH;
02705 yy_current_buffer->yy_buffer_status =
02706 YY_BUFFER_EOF_PENDING;
02707 }
02708 }
02709
02710 else
02711 ret_val = EOB_ACT_CONTINUE_SCAN;
02712
02713 yy_n_chars += number_to_move;
02714 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
02715 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
02716
02717 yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
02718
02719 return ret_val;
02720 }
02721
02722
02723
02724
02725 yy_state_type yyFlexLexer::yy_get_previous_state()
02726 {
02727 register yy_state_type yy_current_state;
02728 register char *yy_cp;
02729
02730 yy_current_state = yy_start;
02731 yy_state_ptr = yy_state_buf;
02732 *yy_state_ptr++ = yy_current_state;
02733
02734 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
02735 {
02736 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 93);
02737 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02738 {
02739 yy_current_state = (int) yy_def[yy_current_state];
02740 if ( yy_current_state >= 592 )
02741 yy_c = yy_meta[(unsigned int) yy_c];
02742 }
02743 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02744 *yy_state_ptr++ = yy_current_state;
02745 }
02746
02747 return yy_current_state;
02748 }
02749
02750
02751
02752
02753
02754
02755
02756
02757 yy_state_type yyFlexLexer::yy_try_NUL_trans( yy_state_type yy_current_state )
02758 {
02759 register int yy_is_jam;
02760
02761 register YY_CHAR yy_c = 93;
02762 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
02763 {
02764 yy_current_state = (int) yy_def[yy_current_state];
02765 if ( yy_current_state >= 592 )
02766 yy_c = yy_meta[(unsigned int) yy_c];
02767 }
02768 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
02769 yy_is_jam = (yy_current_state == 591);
02770 if ( ! yy_is_jam )
02771 *yy_state_ptr++ = yy_current_state;
02772
02773 return yy_is_jam ? 0 : yy_current_state;
02774 }
02775
02776
02777 void yyFlexLexer::yyunput( int c, register char* yy_bp )
02778 {
02779 register char *yy_cp = yy_c_buf_p;
02780
02781
02782 *yy_cp = yy_hold_char;
02783
02784 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
02785 {
02786
02787 register int number_to_move = yy_n_chars + 2;
02788 register char *dest = &yy_current_buffer->yy_ch_buf[
02789 yy_current_buffer->yy_buf_size + 2];
02790 register char *source =
02791 &yy_current_buffer->yy_ch_buf[number_to_move];
02792
02793 while ( source > yy_current_buffer->yy_ch_buf )
02794 *--dest = *--source;
02795
02796 yy_cp += (int) (dest - source);
02797 yy_bp += (int) (dest - source);
02798 yy_current_buffer->yy_n_chars =
02799 yy_n_chars = yy_current_buffer->yy_buf_size;
02800
02801 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
02802 YY_FATAL_ERROR( "flex scanner push-back overflow" );
02803 }
02804
02805 *--yy_cp = (char) c;
02806
02807
02808 yytext_ptr = yy_bp;
02809 yy_hold_char = *yy_cp;
02810 yy_c_buf_p = yy_cp;
02811 }
02812
02813
02814 int yyFlexLexer::yyinput()
02815 {
02816 int c;
02817
02818 *yy_c_buf_p = yy_hold_char;
02819
02820 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
02821 {
02822
02823
02824
02825
02826 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
02827
02828 *yy_c_buf_p = '\0';
02829
02830 else
02831 {
02832 int offset = yy_c_buf_p - yytext_ptr;
02833 ++yy_c_buf_p;
02834
02835 switch ( yy_get_next_buffer() )
02836 {
02837 case EOB_ACT_LAST_MATCH:
02838
02839
02840
02841
02842
02843
02844
02845
02846
02847
02848
02849 yyrestart( yyin );
02850
02851
02852
02853 case EOB_ACT_END_OF_FILE:
02854 {
02855 if ( yywrap() )
02856 return EOF;
02857
02858 if ( ! yy_did_buffer_switch_on_eof )
02859 YY_NEW_FILE;
02860 #ifdef __cplusplus
02861 return yyinput();
02862 #else
02863 return input();
02864 #endif
02865 }
02866
02867 case EOB_ACT_CONTINUE_SCAN:
02868 yy_c_buf_p = yytext_ptr + offset;
02869 break;
02870 }
02871 }
02872 }
02873
02874 c = *(unsigned char *) yy_c_buf_p;
02875 *yy_c_buf_p = '\0';
02876 yy_hold_char = *++yy_c_buf_p;
02877
02878
02879 return c;
02880 }
02881
02882 void yyFlexLexer::yyrestart( std::istream* input_file )
02883 {
02884 if ( ! yy_current_buffer )
02885 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
02886
02887 yy_init_buffer( yy_current_buffer, input_file );
02888 yy_load_buffer_state();
02889 }
02890
02891
02892 void yyFlexLexer::yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
02893 {
02894 if ( yy_current_buffer == new_buffer )
02895 return;
02896
02897 if ( yy_current_buffer )
02898 {
02899
02900 *yy_c_buf_p = yy_hold_char;
02901 yy_current_buffer->yy_buf_pos = yy_c_buf_p;
02902 yy_current_buffer->yy_n_chars = yy_n_chars;
02903 }
02904
02905 yy_current_buffer = new_buffer;
02906 yy_load_buffer_state();
02907
02908
02909
02910
02911
02912
02913 yy_did_buffer_switch_on_eof = 1;
02914 }
02915
02916
02917 void yyFlexLexer::yy_load_buffer_state()
02918 {
02919 yy_n_chars = yy_current_buffer->yy_n_chars;
02920 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
02921 yyin = yy_current_buffer->yy_input_file;
02922 yy_hold_char = *yy_c_buf_p;
02923 }
02924
02925
02926 YY_BUFFER_STATE yyFlexLexer::yy_create_buffer( std::istream* file, int size )
02927 {
02928 YY_BUFFER_STATE b;
02929
02930 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
02931 if ( ! b )
02932 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02933
02934 b->yy_buf_size = size;
02935
02936
02937
02938
02939 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
02940 if ( ! b->yy_ch_buf )
02941 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
02942
02943 b->yy_is_our_buffer = 1;
02944
02945 yy_init_buffer( b, file );
02946
02947 return b;
02948 }
02949
02950
02951 void yyFlexLexer::yy_delete_buffer( YY_BUFFER_STATE b )
02952 {
02953 if ( ! b )
02954 return;
02955
02956 if ( b == yy_current_buffer )
02957 yy_current_buffer = (YY_BUFFER_STATE) 0;
02958
02959 if ( b->yy_is_our_buffer )
02960 yy_flex_free( (void *) b->yy_ch_buf );
02961
02962 yy_flex_free( (void *) b );
02963 }
02964
02965
02966 void yyFlexLexer::yy_init_buffer( YY_BUFFER_STATE b, std::istream* file )
02967
02968 {
02969 yy_flush_buffer( b );
02970
02971 b->yy_input_file = file;
02972 b->yy_fill_buffer = 1;
02973
02974 b->yy_is_interactive = 0;
02975 }
02976
02977
02978 void yyFlexLexer::yy_flush_buffer( YY_BUFFER_STATE b )
02979 {
02980 if ( ! b )
02981 return;
02982
02983 b->yy_n_chars = 0;
02984
02985
02986
02987
02988
02989 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
02990 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
02991
02992 b->yy_buf_pos = &b->yy_ch_buf[0];
02993
02994 b->yy_at_bol = 1;
02995 b->yy_buffer_status = YY_BUFFER_NEW;
02996
02997 if ( b == yy_current_buffer )
02998 yy_load_buffer_state();
02999 }
03000
03001
03002 #ifndef YY_NO_SCAN_BUFFER
03003 #endif
03004
03005
03006 #ifndef YY_NO_SCAN_STRING
03007 #endif
03008
03009
03010 #ifndef YY_NO_SCAN_BYTES
03011 #endif
03012
03013
03014 #ifndef YY_NO_PUSH_STATE
03015 void yyFlexLexer::yy_push_state( int new_state )
03016 {
03017 if ( yy_start_stack_ptr >= yy_start_stack_depth )
03018 {
03019 yy_size_t new_size;
03020
03021 yy_start_stack_depth += YY_START_STACK_INCR;
03022 new_size = yy_start_stack_depth * sizeof( int );
03023
03024 if ( ! yy_start_stack )
03025 yy_start_stack = (int *) yy_flex_alloc( new_size );
03026
03027 else
03028 yy_start_stack = (int *) yy_flex_realloc(
03029 (void *) yy_start_stack, new_size );
03030
03031 if ( ! yy_start_stack )
03032 YY_FATAL_ERROR(
03033 "out of memory expanding start-condition stack" );
03034 }
03035
03036 yy_start_stack[yy_start_stack_ptr++] = YY_START;
03037
03038 BEGIN(new_state);
03039 }
03040 #endif
03041
03042
03043 #ifndef YY_NO_POP_STATE
03044 void yyFlexLexer::yy_pop_state()
03045 {
03046 if ( --yy_start_stack_ptr < 0 )
03047 YY_FATAL_ERROR( "start-condition stack underflow" );
03048
03049 BEGIN(yy_start_stack[yy_start_stack_ptr]);
03050 }
03051 #endif
03052
03053
03054 #ifndef YY_NO_TOP_STATE
03055 int yyFlexLexer::yy_top_state()
03056 {
03057 return yy_start_stack[yy_start_stack_ptr - 1];
03058 }
03059 #endif
03060
03061 #ifndef YY_EXIT_FAILURE
03062 #define YY_EXIT_FAILURE 2
03063 #endif
03064
03065
03066 void yyFlexLexer::LexerError( yyconst char msg[] )
03067 {
03068 std::cerr << msg << '\n';
03069 exit( YY_EXIT_FAILURE );
03070 }
03071
03072
03073
03074
03075 #undef yyless
03076 #define yyless(n) \
03077 do \
03078 { \
03079 \
03080 yytext[yyleng] = yy_hold_char; \
03081 yy_c_buf_p = yytext + n; \
03082 yy_hold_char = *yy_c_buf_p; \
03083 *yy_c_buf_p = '\0'; \
03084 yyleng = n; \
03085 } \
03086 while ( 0 )
03087
03088
03089
03090
03091 #ifndef yytext_ptr
03092 #ifdef YY_USE_PROTOS
03093 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
03094 #else
03095 static void yy_flex_strncpy( s1, s2, n )
03096 char *s1;
03097 yyconst char *s2;
03098 int n;
03099 #endif
03100 {
03101 register int i;
03102 for ( i = 0; i < n; ++i )
03103 s1[i] = s2[i];
03104 }
03105 #endif
03106
03107 #ifdef YY_NEED_STRLEN
03108 #ifdef YY_USE_PROTOS
03109 static int yy_flex_strlen( yyconst char *s )
03110 #else
03111 static int yy_flex_strlen( s )
03112 yyconst char *s;
03113 #endif
03114 {
03115 register int n;
03116 for ( n = 0; s[n]; ++n )
03117 ;
03118
03119 return n;
03120 }
03121 #endif
03122
03123
03124 #ifdef YY_USE_PROTOS
03125 static void *yy_flex_alloc( yy_size_t size )
03126 #else
03127 static void *yy_flex_alloc( size )
03128 yy_size_t size;
03129 #endif
03130 {
03131 return (void *) malloc( size );
03132 }
03133
03134 #ifdef YY_USE_PROTOS
03135 static void *yy_flex_realloc( void *ptr, yy_size_t size )
03136 #else
03137 static void *yy_flex_realloc( ptr, size )
03138 void *ptr;
03139 yy_size_t size;
03140 #endif
03141 {
03142
03143
03144
03145
03146
03147
03148
03149 return (void *) realloc( (char *) ptr, size );
03150 }
03151
03152 #ifdef YY_USE_PROTOS
03153 static void yy_flex_free( void *ptr )
03154 #else
03155 static void yy_flex_free( ptr )
03156 void *ptr;
03157 #endif
03158 {
03159 free( ptr );
03160 }
03161
03162 #if YY_MAIN
03163 int main()
03164 {
03165 yylex();
03166 return 0;
03167 }
03168 #endif
03169 #line 176 "PtbTokenizer.lex"