1 #line 2 "scan.c" 2 /* A lexical scanner generated by flex */ 3 4 /* Scanner skeleton version: 5 * $Header: /home/daffy/u0/vern/flex/RCS/flex.skl,v 2.91 96/09/10 16:58:48 vern Exp $ 6 */ 7 8 #define FLEX_SCANNER 9 #define YY_FLEX_MAJOR_VERSION 2 10 #define YY_FLEX_MINOR_VERSION 5 11 12 #include <stdio.h> 13 14 15 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ 16 #ifdef c_plusplus 17 #ifndef __cplusplus 18 #define __cplusplus 19 #endif 20 #endif 21 22 23 #ifdef __cplusplus 24 25 #include <stdlib.h> 26 #include <unistd.h> 27 28 /* Use prototypes in function declarations. */ 29 #define YY_USE_PROTOS 30 31 /* The "const" storage-class-modifier is valid. */ 32 #define YY_USE_CONST 33 34 #else /* ! __cplusplus */ 35 36 #if __STDC__ 37 38 #define YY_USE_PROTOS 39 #define YY_USE_CONST 40 41 #endif /* __STDC__ */ 42 #endif /* ! __cplusplus */ 43 44 #ifdef __TURBOC__ 45 #pragma warn -rch 46 #pragma warn -use 47 #include <io.h> 48 #include <stdlib.h> 49 #define YY_USE_CONST 50 #define YY_USE_PROTOS 51 #endif 52 53 #ifdef YY_USE_CONST 54 #define yyconst const 55 #else 56 #define yyconst 57 #endif 58 59 60 #ifdef YY_USE_PROTOS 61 #define YY_PROTO(proto) proto 62 #else 63 #define YY_PROTO(proto) () 64 #endif 65 66 /* Returned upon end-of-file. */ 67 #define YY_NULL 0 68 69 /* Promotes a possibly negative, possibly signed char to an unsigned 70 * integer for use as an array index. If the signed char is negative, 71 * we want to instead treat it as an 8-bit unsigned char, hence the 72 * double cast. 73 */ 74 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) 75 76 /* Enter a start condition. This macro really ought to take a parameter, 77 * but we do it the disgusting crufty way forced on us by the ()-less 78 * definition of BEGIN. 79 */ 80 #define BEGIN yy_start = 1 + 2 * 81 82 /* Translate the current start state into a value that can be later handed 83 * to BEGIN to return to the state. The YYSTATE alias is for lex 84 * compatibility. 85 */ 86 #define YY_START ((yy_start - 1) / 2) 87 #define YYSTATE YY_START 88 89 /* Action number for EOF rule of a given start state. */ 90 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 91 92 /* Special action meaning "start processing a new file". */ 93 #define YY_NEW_FILE yyrestart( yyin ) 94 95 #define YY_END_OF_BUFFER_CHAR 0 96 97 /* Size of default input buffer. */ 98 #define YY_BUF_SIZE 16384 99 100 typedef struct yy_buffer_state *YY_BUFFER_STATE; 101 102 extern int yyleng; 103 extern FILE *yyin, *yyout; 104 105 #define EOB_ACT_CONTINUE_SCAN 0 106 #define EOB_ACT_END_OF_FILE 1 107 #define EOB_ACT_LAST_MATCH 2 108 109 /* The funky do-while in the following #define is used to turn the definition 110 * int a single C statement (which needs a semi-colon terminator). This 111 * avoids problems with code like: 112 * 113 * if ( condition_holds ) 114 * yyless( 5 ); 115 * else 116 * do_something_else(); 117 * 118 * Prior to using the do-while the compiler would get upset at the 119 * "else" because it interpreted the "if" statement as being all 120 * done when it reached the ';' after the yyless() call. 121 */ 122 123 /* Return all but the first 'n' matched characters back to the input stream. */ 124 125 #define yyless(n) \ 126 do \ 127 { \ 128 /* Undo effects of setting up yytext. */ \ 129 *yy_cp = yy_hold_char; \ 130 YY_RESTORE_YY_MORE_OFFSET \ 131 yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \ 132 YY_DO_BEFORE_ACTION; /* set up yytext again */ \ 133 } \ 134 while ( 0 ) 135 136 #define unput(c) yyunput( c, yytext_ptr ) 137 138 /* The following is because we cannot portably get our hands on size_t 139 * (without autoconf's help, which isn't available because we want 140 * flex-generated scanners to compile on their own). 141 */ 142 typedef unsigned int yy_size_t; 143 144 145 struct yy_buffer_state 146 { 147 FILE *yy_input_file; 148 149 char *yy_ch_buf; /* input buffer */ 150 char *yy_buf_pos; /* current position in input buffer */ 151 152 /* Size of input buffer in bytes, not including room for EOB 153 * characters. 154 */ 155 yy_size_t yy_buf_size; 156 157 /* Number of characters read into yy_ch_buf, not including EOB 158 * characters. 159 */ 160 int yy_n_chars; 161 162 /* Whether we "own" the buffer - i.e., we know we created it, 163 * and can realloc() it to grow it, and should free() it to 164 * delete it. 165 */ 166 int yy_is_our_buffer; 167 168 /* Whether this is an "interactive" input source; if so, and 169 * if we're using stdio for input, then we want to use getc() 170 * instead of fread(), to make sure we stop fetching input after 171 * each newline. 172 */ 173 int yy_is_interactive; 174 175 /* Whether we're considered to be at the beginning of a line. 176 * If so, '^' rules will be active on the next match, otherwise 177 * not. 178 */ 179 int yy_at_bol; 180 181 /* Whether to try to fill the input buffer when we reach the 182 * end of it. 183 */ 184 int yy_fill_buffer; 185 186 int yy_buffer_status; 187 #define YY_BUFFER_NEW 0 188 #define YY_BUFFER_NORMAL 1 189 /* When an EOF's been seen but there's still some text to process 190 * then we mark the buffer as YY_EOF_PENDING, to indicate that we 191 * shouldn't try reading from the input source any more. We might 192 * still have a bunch of tokens to match, though, because of 193 * possible backing-up. 194 * 195 * When we actually see the EOF, we change the status to "new" 196 * (via yyrestart()), so that the user can continue scanning by 197 * just pointing yyin at a new input file. 198 */ 199 #define YY_BUFFER_EOF_PENDING 2 200 }; 201 202 static YY_BUFFER_STATE yy_current_buffer = 0; 203 204 /* We provide macros for accessing buffer states in case in the 205 * future we want to put the buffer states in a more general 206 * "scanner state". 207 */ 208 #define YY_CURRENT_BUFFER yy_current_buffer 209 210 211 /* yy_hold_char holds the character lost when yytext is formed. */ 212 static char yy_hold_char; 213 214 static int yy_n_chars; /* number of characters read into yy_ch_buf */ 215 216 217 int yyleng; 218 219 /* Points to current character in buffer. */ 220 static char *yy_c_buf_p = (char *) 0; 221 static int yy_init = 1; /* whether we need to initialize */ 222 static int yy_start = 0; /* start state number */ 223 224 /* Flag which is used to allow yywrap()'s to do buffer switches 225 * instead of setting up a fresh yyin. A bit of a hack ... 226 */ 227 static int yy_did_buffer_switch_on_eof; 228 229 void yyrestart YY_PROTO(( FILE *input_file )); 230 231 void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer )); 232 void yy_load_buffer_state YY_PROTO(( void )); 233 YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size )); 234 void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b )); 235 void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file )); 236 void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b )); 237 #define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer ) 238 239 YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size )); 240 YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str )); 241 YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len )); 242 243 static void *yy_flex_alloc YY_PROTO(( yy_size_t )); 244 static void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )); 245 static void yy_flex_free YY_PROTO(( void * )); 246 247 #define yy_new_buffer yy_create_buffer 248 249 #define yy_set_interactive(is_interactive) \ 250 { \ 251 if ( ! yy_current_buffer ) \ 252 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ 253 yy_current_buffer->yy_is_interactive = is_interactive; \ 254 } 255 256 #define yy_set_bol(at_bol) \ 257 { \ 258 if ( ! yy_current_buffer ) \ 259 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \ 260 yy_current_buffer->yy_at_bol = at_bol; \ 261 } 262 263 #define YY_AT_BOL() (yy_current_buffer->yy_at_bol) 264 265 typedef unsigned char YY_CHAR; 266 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0; 267 typedef int yy_state_type; 268 extern char *yytext; 269 #define yytext_ptr yytext 270 271 static yy_state_type yy_get_previous_state YY_PROTO(( void )); 272 static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state )); 273 static int yy_get_next_buffer YY_PROTO(( void )); 274 static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); 275 276 /* Done after the current pattern has been matched and before the 277 * corresponding action - sets up yytext. 278 */ 279 #define YY_DO_BEFORE_ACTION \ 280 yytext_ptr = yy_bp; \ 281 yyleng = (int) (yy_cp - yy_bp); \ 282 yy_hold_char = *yy_cp; \ 283 *yy_cp = '\0'; \ 284 yy_c_buf_p = yy_cp; 285 286 #define YY_NUM_RULES 165 287 #define YY_END_OF_BUFFER 166 288 static yyconst short int yy_accept[769] = 289 { 0, 290 0, 0, 0, 0, 87, 87, 163, 163, 0, 0, 291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 292 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 293 0, 0, 0, 0, 0, 0, 0, 0, 166, 164, 294 7, 18, 164, 16, 1, 17, 164, 164, 164, 164, 295 15, 108, 100, 101, 108, 93, 108, 107, 108, 108, 296 108, 107, 99, 89, 108, 108, 91, 92, 87, 88, 297 87, 86, 85, 86, 86, 163, 163, 28, 29, 28, 298 28, 28, 28, 28, 28, 31, 30, 32, 31, 113, 299 109, 110, 112, 114, 141, 142, 141, 139, 138, 140, 300 301 115, 117, 115, 116, 115, 120, 120, 120, 120, 122, 302 124, 122, 122, 122, 122, 123, 151, 155, 151, 154, 303 156, 156, 152, 152, 152, 149, 150, 164, 82, 164, 304 21, 22, 21, 20, 157, 159, 157, 160, 161, 147, 305 147, 148, 147, 147, 147, 147, 147, 147, 147, 81, 306 34, 33, 81, 81, 81, 81, 35, 81, 81, 81, 307 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 308 81, 81, 81, 81, 81, 81, 26, 23, 26, 24, 309 7, 18, 0, 16, 1, 17, 0, 0, 0, 14, 310 8, 0, 0, 0, 0, 4, 5, 0, 2, 15, 311 312 100, 101, 0, 0, 0, 95, 0, 0, 105, 105, 313 0, 162, 162, 162, 94, 0, 99, 89, 0, 0, 314 0, 91, 92, 104, 90, 0, 87, 88, 86, 85, 315 85, 83, 84, 163, 163, 28, 29, 28, 28, 28, 316 28, 31, 30, 32, 111, 112, 142, 138, 117, 0, 317 118, 119, 124, 121, 151, 155, 0, 153, 0, 144, 318 152, 152, 152, 0, 82, 0, 21, 22, 21, 19, 319 157, 159, 158, 147, 147, 147, 148, 143, 147, 147, 320 147, 34, 33, 0, 80, 0, 0, 81, 81, 81, 321 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 322 323 81, 81, 81, 36, 81, 81, 81, 81, 81, 81, 324 81, 81, 81, 81, 0, 25, 24, 0, 14, 8, 325 0, 12, 0, 0, 0, 0, 0, 4, 5, 0, 326 6, 0, 96, 0, 97, 0, 0, 105, 105, 0, 327 105, 105, 105, 162, 162, 0, 106, 90, 98, 0, 328 104, 0, 83, 84, 28, 28, 28, 27, 28, 0, 329 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 330 0, 152, 152, 143, 143, 147, 147, 0, 0, 81, 331 81, 81, 81, 81, 44, 81, 81, 81, 49, 81, 332 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 333 334 81, 81, 81, 81, 81, 81, 81, 81, 0, 81, 335 81, 81, 81, 0, 0, 0, 12, 0, 0, 0, 336 0, 0, 0, 4, 5, 0, 105, 105, 105, 105, 337 105, 105, 162, 0, 0, 28, 28, 0, 0, 0, 338 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 339 152, 152, 147, 147, 37, 38, 81, 81, 81, 81, 340 81, 81, 81, 81, 50, 51, 81, 81, 81, 55, 341 81, 81, 81, 81, 81, 81, 60, 81, 81, 81, 342 81, 81, 81, 67, 0, 0, 0, 81, 81, 81, 343 81, 0, 13, 0, 0, 0, 0, 0, 0, 105, 344 345 105, 105, 105, 105, 105, 0, 0, 28, 28, 137, 346 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 347 0, 0, 152, 152, 147, 147, 39, 81, 41, 81, 348 43, 81, 81, 81, 47, 81, 52, 81, 81, 81, 349 81, 81, 81, 81, 81, 81, 62, 81, 81, 65, 350 81, 0, 0, 0, 0, 81, 81, 81, 81, 3, 351 0, 0, 0, 0, 105, 105, 105, 0, 0, 28, 352 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 353 0, 0, 0, 145, 146, 145, 146, 81, 42, 81, 354 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 355 356 81, 78, 61, 81, 64, 81, 0, 0, 0, 0, 357 81, 81, 69, 70, 0, 10, 0, 11, 0, 103, 358 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 359 0, 0, 0, 0, 81, 81, 81, 45, 81, 48, 360 81, 81, 81, 81, 77, 81, 59, 63, 66, 0, 361 0, 0, 0, 79, 81, 0, 102, 0, 0, 0, 362 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 363 81, 81, 46, 81, 81, 56, 81, 81, 0, 0, 364 0, 0, 68, 0, 9, 0, 125, 126, 127, 128, 365 129, 130, 131, 132, 133, 134, 135, 0, 81, 81, 366 367 81, 81, 81, 81, 81, 0, 0, 0, 0, 0, 368 136, 81, 81, 81, 81, 54, 81, 81, 0, 0, 369 0, 0, 0, 0, 81, 81, 81, 53, 81, 58, 370 0, 0, 0, 0, 0, 0, 81, 81, 81, 81, 371 72, 0, 0, 0, 0, 73, 81, 81, 81, 81, 372 71, 0, 75, 0, 81, 81, 81, 74, 76, 81, 373 81, 81, 81, 81, 81, 57, 40, 0 374 } ; 375 376 static yyconst int yy_ec[256] = 377 { 0, 378 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 379 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 380 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 381 1, 2, 1, 5, 6, 7, 8, 1, 9, 10, 382 10, 11, 12, 13, 14, 10, 15, 16, 16, 16, 383 16, 16, 16, 16, 17, 18, 19, 20, 1, 21, 384 22, 23, 10, 1, 31, 32, 33, 34, 35, 36, 385 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 386 47, 48, 49, 50, 51, 52, 53, 54, 55, 47, 387 26, 27, 28, 29, 30, 1, 31, 32, 33, 34, 388 389 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 390 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 391 55, 47, 56, 57, 58, 1, 1, 1, 1, 1, 392 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 393 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 394 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 395 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 396 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 397 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 398 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 399 400 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 401 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 402 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 403 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 404 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 405 1, 1, 1, 1, 1 406 } ; 407 408 static yyconst int yy_meta[59] = 409 { 0, 410 1, 1, 2, 1, 3, 1, 1, 1, 4, 1, 411 5, 6, 1, 7, 4, 8, 8, 8, 8, 1, 412 1, 1, 1, 9, 10, 1, 11, 12, 1, 13, 413 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 414 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 415 15, 15, 15, 15, 15, 4, 1, 16 416 } ; 417 418 static yyconst short int yy_base[858] = 419 { 0, 420 0, 58, 115, 172, 120, 129, 2712, 2711, 230, 2705, 421 136, 141, 288, 0, 2683, 2682, 144, 151, 185, 191, 422 178, 188, 344, 347, 375, 0, 125, 131, 147, 216, 423 431, 434, 461, 0, 519, 0, 205, 349, 2710, 2716, 424 353, 2716, 2706, 0, 360, 2716, 2705, 144, 570, 2696, 425 0, 2716, 577, 2716, 2703, 2716, 438, 2716, 2684, 126, 426 149, 427, 591, 2716, 2701, 141, 2682, 2716, 0, 2716, 427 2699, 0, 2699, 2697, 155, 2696, 2716, 0, 2716, 2695, 428 2716, 0, 2662, 2641, 2637, 0, 2692, 2716, 2690, 2716, 429 2716, 2663, 0, 2716, 2716, 2716, 2688, 2716, 431, 2716, 430 431 2716, 2716, 2687, 2716, 567, 2716, 2669, 571, 164, 2716, 432 2716, 2685, 0, 2667, 573, 2716, 0, 2716, 2683, 2716, 433 573, 2674, 0, 2649, 2628, 2716, 2716, 222, 2716, 356, 434 448, 2716, 450, 2667, 0, 2716, 2678, 2716, 0, 0, 435 198, 2716, 2677, 2621, 2716, 2667, 0, 2642, 2621, 2716, 436 2673, 2716, 2671, 2668, 2640, 2639, 2716, 544, 2639, 579, 437 2634, 2635, 318, 0, 2623, 2631, 424, 562, 2614, 587, 438 2629, 2613, 2618, 2626, 2629, 2604, 2716, 2716, 2653, 612, 439 634, 2716, 2654, 0, 637, 2716, 2653, 600, 2616, 0, 440 0, 641, 647, 651, 669, 0, 0, 453, 2716, 0, 441 442 672, 2716, 2651, 2597, 605, 2716, 2649, 2616, 620, 657, 443 645, 2716, 662, 0, 2716, 2592, 688, 2716, 2646, 2592, 444 2636, 2625, 2716, 0, 2716, 2610, 0, 2716, 0, 0, 445 2642, 0, 0, 2640, 2716, 0, 2716, 0, 2602, 2598, 446 745, 0, 2638, 2716, 2716, 0, 2716, 688, 2716, 773, 447 2716, 2716, 2716, 2716, 0, 2716, 673, 2716, 0, 2716, 448 0, 2599, 2595, 690, 2716, 698, 707, 2716, 709, 2716, 449 0, 2716, 2716, 0, 596, 2579, 2716, 827, 0, 2596, 450 2592, 2632, 2716, 2628, 2716, 2593, 2592, 0, 642, 2582, 451 563, 2617, 2579, 620, 2578, 2577, 2583, 669, 2570, 2584, 452 453 2572, 0, 2569, 2716, 2570, 2571, 2579, 2582, 685, 125, 454 2570, 2567, 2566, 688, 2608, 2716, 716, 2568, 0, 0, 455 720, 2716, 2608, 884, 2562, 2559, 2569, 0, 0, 723, 456 2716, 739, 2716, 805, 2716, 808, 2562, 787, 869, 876, 457 930, 881, 973, 800, 0, 2548, 2716, 2716, 2716, 2570, 458 0, 2559, 0, 0, 2568, 2557, 0, 2716, 0, 1009, 459 2581, 678, 870, 871, 874, 879, 913, 992, 974, 1013, 460 885, 2565, 2554, 0, 1067, 2563, 2552, 2546, 2545, 2557, 461 2562, 2561, 2550, 2557, 0, 2554, 2537, 2556, 0, 2536, 462 2543, 2533, 2548, 2568, 2537, 2549, 2544, 2542, 2541, 2532, 463 464 2539, 2540, 2538, 2539, 578, 2520, 2538, 2525, 860, 2526, 465 2528, 2521, 2517, 2529, 817, 1044, 2716, 822, 1095, 914, 466 2532, 2523, 2517, 0, 0, 2524, 1102, 1025, 1142, 2539, 467 1028, 1163, 2716, 2513, 2521, 2523, 2507, 0, 2526, 1058, 468 891, 1014, 1019, 894, 1038, 1080, 1072, 1086, 1083, 1081, 469 2520, 2504, 2518, 2502, 2716, 2716, 2505, 2493, 2492, 2495, 470 2507, 1148, 2507, 2492, 0, 0, 2492, 2493, 2507, 0, 471 2525, 2490, 2498, 2522, 2485, 2495, 0, 2500, 2491, 2487, 472 2479, 2479, 2483, 0, 875, 2494, 2481, 2494, 2480, 2475, 473 2491, 2519, 2716, 920, 999, 2465, 2474, 2468, 2494, 2496, 474 475 1105, 1184, 1081, 902, 969, 2479, 2491, 2463, 2477, 2716, 476 165, 1090, 1144, 1143, 1147, 1163, 1095, 1145, 1037, 1085, 477 1150, 1173, 2461, 2475, 2459, 2473, 0, 2458, 0, 2460, 478 0, 1165, 2454, 2469, 0, 2461, 0, 2471, 2410, 2414, 479 2434, 2400, 2393, 2405, 2385, 2382, 0, 2383, 2335, 0, 480 2335, 2330, 2326, 2309, 2278, 2259, 2269, 2268, 2256, 2297, 481 1046, 2238, 2242, 2253, 1179, 1142, 1145, 2247, 2246, 0, 482 0, 1191, 1192, 1172, 1201, 1202, 1204, 1205, 1206, 1207, 483 1209, 1210, 1208, 0, 0, 0, 0, 2254, 0, 2221, 484 2229, 2218, 2208, 2200, 2209, 2198, 2195, 2165, 2168, 2149, 485 486 2132, 0, 0, 2129, 0, 2139, 2143, 2134, 2124, 2137, 487 2117, 2116, 0, 0, 1228, 2716, 1232, 2716, 2111, 2716, 488 2117, 2716, 2115, 2114, 2108, 2107, 2106, 2103, 2102, 2098, 489 2095, 2063, 2047, 1213, 2012, 1986, 1975, 0, 1954, 0, 490 1947, 1950, 1941, 1945, 0, 1942, 0, 0, 0, 1938, 491 1940, 1934, 1905, 0, 1872, 1234, 2716, 1888, 1882, 1881, 492 1864, 1848, 1832, 1828, 1827, 1826, 1823, 1806, 1809, 1784, 493 1787, 1772, 0, 1781, 1786, 0, 1766, 1767, 1759, 1744, 494 1213, 1736, 0, 1236, 2716, 1245, 2716, 2716, 2716, 2716, 495 2716, 2716, 2716, 2716, 2716, 2716, 2716, 1750, 1727, 1720, 496 497 1701, 1687, 1670, 1681, 1667, 1679, 1659, 689, 1658, 1671, 498 2716, 1657, 1627, 1621, 1635, 0, 1603, 1596, 1595, 1608, 499 1602, 1587, 1586, 1583, 1581, 1587, 1555, 0, 1547, 0, 500 1527, 1507, 1520, 1503, 1483, 1482, 1485, 1443, 1440, 1228, 501 2716, 1225, 1224, 1206, 1210, 2716, 1213, 1202, 1018, 948, 502 2716, 945, 2716, 884, 780, 771, 779, 2716, 2716, 689, 503 673, 581, 408, 318, 86, 0, 0, 2716, 1263, 1279, 504 1295, 1311, 1327, 1343, 1359, 1375, 1391, 1407, 1423, 1439, 505 1455, 1471, 1481, 1496, 1505, 1520, 1536, 1545, 1560, 1576, 506 1592, 1608, 1624, 1634, 1649, 1659, 1674, 1690, 1706, 1718, 507 508 1728, 1743, 1759, 1775, 1791, 1807, 1817, 1832, 1843, 1236, 509 1858, 1874, 1890, 1898, 1905, 1920, 1936, 1952, 1968, 1977, 510 1985, 2001, 2017, 2033, 2049, 2065, 2081, 2097, 2113, 2123, 511 2138, 2148, 2155, 2170, 2182, 2192, 2207, 2223, 2239, 2255, 512 2265, 2280, 2291, 2306, 2322, 2338, 2354, 2364, 2373, 2388, 513 2404, 2420, 2429, 2437, 2453, 2469, 2485 514 } ; 515 516 static yyconst short int yy_def[858] = 517 { 0, 518 768, 768, 769, 769, 770, 771, 772, 772, 768, 9, 519 773, 773, 768, 13, 774, 774, 775, 775, 776, 776, 520 777, 777, 778, 778, 768, 25, 779, 779, 780, 780, 521 781, 781, 768, 33, 768, 35, 782, 782, 768, 768, 522 768, 768, 768, 783, 768, 768, 768, 768, 784, 768, 523 785, 768, 768, 768, 768, 768, 768, 768, 768, 786, 524 787, 788, 768, 768, 768, 768, 768, 768, 789, 768, 525 789, 790, 791, 790, 790, 792, 768, 793, 768, 793, 526 768, 794, 794, 794, 793, 795, 768, 768, 795, 768, 527 768, 768, 796, 768, 768, 768, 768, 768, 768, 768, 528 529 768, 768, 768, 768, 787, 768, 768, 787, 797, 768, 530 768, 768, 798, 768, 787, 768, 799, 768, 799, 768, 531 800, 768, 801, 801, 801, 768, 768, 802, 768, 802, 532 803, 768, 803, 768, 804, 768, 804, 768, 805, 806, 533 806, 768, 806, 806, 768, 806, 807, 807, 807, 768, 534 768, 768, 768, 808, 768, 768, 768, 809, 809, 809, 535 809, 809, 809, 809, 809, 809, 809, 810, 809, 809, 536 809, 809, 809, 809, 809, 809, 768, 768, 811, 768, 537 768, 768, 768, 783, 768, 768, 768, 768, 768, 812, 538 813, 768, 768, 768, 768, 814, 815, 816, 768, 785, 539 540 768, 768, 768, 768, 817, 768, 768, 768, 818, 818, 541 819, 768, 768, 820, 768, 821, 768, 768, 768, 768, 542 768, 768, 768, 822, 768, 768, 823, 768, 824, 825, 543 825, 826, 827, 828, 768, 829, 768, 830, 830, 830, 544 768, 831, 768, 768, 768, 832, 768, 768, 768, 833, 545 768, 768, 768, 768, 834, 768, 835, 768, 835, 768, 546 836, 836, 836, 837, 768, 837, 838, 768, 838, 768, 547 839, 768, 768, 840, 840, 840, 768, 768, 841, 841, 548 841, 768, 768, 842, 768, 768, 768, 843, 843, 843, 549 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 550 551 843, 843, 843, 768, 843, 843, 843, 843, 843, 843, 552 843, 843, 843, 843, 844, 768, 768, 768, 845, 846, 553 847, 768, 768, 768, 768, 768, 768, 848, 849, 850, 554 768, 850, 768, 851, 768, 851, 768, 852, 852, 852, 555 768, 852, 852, 768, 853, 854, 768, 768, 768, 768, 556 855, 768, 826, 827, 830, 830, 241, 768, 241, 241, 557 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 558 833, 836, 836, 278, 278, 841, 841, 768, 768, 843, 559 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 560 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 561 562 843, 843, 843, 843, 843, 843, 843, 843, 768, 843, 563 843, 843, 843, 768, 847, 847, 768, 847, 847, 768, 564 768, 768, 768, 848, 849, 768, 341, 852, 343, 341, 565 852, 343, 768, 768, 768, 830, 830, 360, 768, 833, 566 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 567 836, 836, 841, 841, 768, 768, 843, 843, 843, 843, 568 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 569 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 570 843, 843, 843, 843, 768, 768, 768, 843, 843, 843, 571 843, 768, 768, 847, 847, 768, 768, 768, 768, 427, 572 573 852, 343, 852, 852, 852, 768, 768, 830, 830, 768, 574 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 575 833, 833, 836, 836, 841, 841, 843, 843, 843, 843, 576 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 577 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 578 843, 768, 768, 768, 768, 843, 843, 843, 843, 768, 579 856, 768, 768, 768, 852, 852, 852, 768, 768, 830, 580 830, 833, 833, 833, 833, 833, 833, 833, 833, 833, 581 833, 833, 833, 836, 836, 841, 841, 843, 843, 843, 582 843, 843, 843, 843, 843, 843, 843, 843, 843, 843, 583 584 843, 843, 843, 843, 843, 843, 768, 768, 768, 768, 585 843, 843, 843, 843, 856, 768, 856, 768, 768, 768, 586 768, 768, 833, 833, 833, 833, 833, 833, 833, 833, 587 833, 833, 833, 833, 843, 843, 843, 843, 843, 843, 588 843, 843, 843, 843, 843, 843, 843, 843, 843, 768, 589 768, 768, 768, 843, 843, 857, 768, 768, 768, 768, 590 768, 768, 768, 768, 768, 768, 768, 768, 833, 843, 591 843, 843, 843, 843, 843, 843, 843, 843, 768, 768, 592 768, 768, 843, 857, 768, 857, 768, 768, 768, 768, 593 768, 768, 768, 768, 768, 768, 768, 768, 843, 843, 594 595 843, 843, 843, 843, 843, 768, 768, 768, 768, 768, 596 768, 843, 843, 843, 843, 843, 843, 843, 768, 768, 597 768, 768, 768, 768, 843, 843, 843, 843, 843, 843, 598 768, 768, 768, 768, 768, 768, 843, 843, 843, 843, 599 768, 768, 768, 768, 768, 768, 843, 843, 843, 843, 600 768, 768, 768, 768, 843, 843, 843, 768, 768, 843, 601 843, 843, 843, 843, 843, 843, 843, 0, 768, 768, 602 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 603 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 604 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 605 606 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 607 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 608 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 609 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 610 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 611 768, 768, 768, 768, 768, 768, 768 612 } ; 613 614 static yyconst short int yy_nxt[2775] = 615 { 0, 616 40, 41, 42, 43, 40, 40, 40, 40, 40, 40, 617 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 618 40, 40, 40, 44, 44, 40, 40, 40, 40, 44, 619 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 620 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 621 44, 44, 44, 44, 44, 40, 40, 40, 40, 45, 622 46, 47, 40, 48, 40, 49, 40, 40, 40, 40, 623 40, 40, 50, 40, 40, 40, 40, 40, 40, 40, 624 40, 51, 51, 40, 40, 40, 40, 51, 51, 51, 625 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 626 627 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 628 51, 51, 51, 40, 40, 40, 53, 54, 55, 56, 629 767, 57, 70, 71, 58, 58, 58, 129, 130, 58, 630 73, 70, 74, 129, 130, 59, 75, 87, 88, 89, 631 60, 61, 87, 88, 89, 188, 96, 97, 224, 132, 632 133, 210, 211, 96, 97, 404, 98, 134, 405, 99, 633 99, 99, 99, 98, 213, 213, 99, 99, 99, 99, 634 62, 58, 58, 63, 64, 65, 56, 252, 57, 66, 635 40, 58, 58, 58, 439, 189, 58, 102, 103, 104, 636 40, 252, 67, 102, 103, 104, 225, 60, 61, 275, 637 638 68, 100, 214, 107, 108, 276, 109, 178, 100, 179, 639 232, 105, 233, 107, 108, 572, 109, 105, 132, 133, 640 180, 180, 180, 180, 265, 266, 134, 62, 58, 58, 641 78, 78, 79, 80, 78, 78, 78, 78, 78, 78, 642 81, 78, 78, 78, 78, 78, 78, 78, 78, 78, 643 78, 78, 78, 82, 82, 78, 78, 78, 78, 82, 644 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 645 82, 82, 82, 82, 82, 82, 82, 83, 82, 82, 646 82, 82, 82, 82, 84, 78, 78, 78, 90, 90, 647 40, 90, 90, 90, 90, 90, 90, 90, 91, 90, 648 649 91, 90, 90, 90, 90, 90, 90, 90, 90, 90, 650 92, 93, 93, 90, 90, 90, 90, 93, 93, 93, 651 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 652 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 653 93, 93, 93, 90, 90, 90, 111, 112, 296, 111, 654 112, 178, 766, 179, 181, 182, 183, 113, 265, 266, 655 113, 185, 186, 187, 180, 180, 180, 180, 297, 114, 656 115, 116, 114, 115, 116, 117, 117, 118, 119, 120, 657 117, 117, 117, 121, 117, 117, 117, 117, 117, 122, 658 117, 117, 117, 117, 117, 117, 117, 117, 123, 123, 659 660 117, 117, 117, 117, 123, 123, 123, 123, 123, 123, 661 123, 123, 123, 123, 123, 123, 123, 123, 123, 123, 662 123, 123, 124, 123, 123, 123, 123, 123, 123, 125, 663 126, 117, 127, 136, 137, 138, 136, 137, 138, 206, 664 206, 207, 215, 215, 215, 215, 248, 248, 248, 248, 665 268, 269, 268, 269, 300, 331, 332, 139, 301, 765, 666 139, 140, 141, 142, 143, 140, 140, 140, 144, 140, 667 140, 145, 140, 140, 140, 146, 140, 140, 140, 140, 668 140, 140, 140, 140, 147, 147, 140, 140, 140, 140, 669 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, 670 671 147, 147, 147, 147, 147, 147, 147, 147, 148, 147, 672 147, 147, 147, 147, 147, 149, 140, 140, 140, 150, 673 151, 152, 153, 154, 150, 150, 150, 150, 150, 150, 674 150, 150, 150, 150, 150, 155, 156, 150, 150, 150, 675 157, 150, 150, 150, 150, 150, 150, 150, 150, 158, 676 159, 160, 161, 162, 163, 164, 164, 165, 164, 164, 677 166, 167, 168, 169, 170, 164, 171, 172, 164, 173, 678 174, 175, 164, 176, 150, 150, 150, 191, 201, 202, 679 203, 258, 213, 213, 204, 289, 213, 213, 213, 213, 680 292, 290, 217, 218, 219, 383, 303, 275, 220, 259, 681 682 192, 188, 193, 276, 193, 221, 304, 335, 336, 293, 683 193, 222, 384, 193, 194, 195, 480, 193, 196, 223, 684 214, 306, 481, 197, 214, 198, 214, 317, 317, 317, 685 317, 307, 764, 205, 308, 181, 182, 183, 185, 186, 686 187, 189, 321, 322, 323, 339, 340, 205, 321, 322, 687 323, 387, 321, 322, 323, 388, 324, 324, 324, 324, 688 342, 342, 324, 324, 324, 324, 324, 324, 324, 324, 689 321, 322, 323, 201, 202, 203, 341, 344, 344, 204, 690 380, 258, 339, 340, 324, 324, 324, 324, 325, 217, 691 218, 219, 265, 266, 381, 220, 326, 439, 343, 259, 692 693 265, 266, 221, 248, 248, 248, 248, 673, 222, 268, 694 269, 268, 269, 327, 392, 402, 223, 409, 393, 440, 695 410, 416, 417, 418, 403, 331, 332, 763, 205, 411, 696 412, 317, 317, 317, 317, 419, 419, 419, 419, 721, 697 413, 331, 332, 722, 205, 357, 357, 358, 359, 357, 698 357, 357, 357, 357, 357, 360, 357, 357, 357, 357, 699 357, 357, 357, 357, 357, 357, 357, 357, 360, 360, 700 357, 357, 357, 357, 360, 360, 360, 360, 360, 360, 701 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 702 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 703 704 357, 357, 357, 362, 363, 364, 365, 335, 336, 366, 705 335, 336, 339, 340, 367, 212, 212, 762, 368, 493, 706 494, 369, 761, 370, 417, 494, 371, 374, 374, 760, 707 374, 374, 374, 374, 374, 374, 374, 375, 374, 374, 708 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, 709 375, 375, 374, 374, 374, 374, 375, 375, 375, 375, 710 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 711 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 712 375, 375, 374, 374, 374, 420, 322, 323, 427, 439, 713 439, 428, 428, 439, 339, 340, 431, 431, 439, 324, 714 715 324, 324, 324, 338, 439, 485, 339, 340, 486, 487, 716 439, 441, 443, 439, 442, 420, 322, 323, 450, 552, 717 759, 513, 493, 494, 516, 553, 444, 339, 340, 429, 718 338, 338, 439, 338, 338, 338, 338, 338, 338, 338, 719 338, 338, 338, 338, 338, 338, 338, 338, 338, 338, 720 338, 338, 338, 430, 430, 339, 340, 445, 338, 338, 721 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 722 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 723 430, 430, 430, 430, 430, 338, 338, 338, 432, 432, 724 432, 432, 758, 439, 339, 340, 432, 757, 339, 340, 725 726 495, 417, 418, 432, 432, 432, 432, 432, 432, 360, 727 360, 439, 438, 360, 360, 360, 360, 360, 360, 448, 728 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 729 360, 360, 439, 439, 360, 360, 360, 360, 439, 446, 730 501, 501, 447, 504, 504, 416, 417, 418, 616, 617, 731 339, 340, 638, 339, 340, 515, 439, 439, 449, 419, 732 419, 419, 419, 514, 360, 360, 360, 375, 375, 580, 733 375, 375, 375, 375, 375, 375, 375, 439, 375, 375, 734 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 735 517, 439, 375, 375, 375, 375, 495, 417, 418, 439, 736 737 439, 511, 439, 512, 439, 439, 339, 340, 209, 439, 738 419, 419, 419, 419, 439, 519, 520, 581, 518, 522, 739 566, 566, 375, 375, 375, 500, 500, 573, 521, 578, 740 339, 340, 500, 500, 500, 500, 500, 500, 500, 500, 741 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 742 500, 500, 500, 500, 500, 500, 500, 502, 502, 502, 743 502, 532, 439, 439, 439, 502, 439, 339, 340, 439, 744 339, 340, 502, 502, 502, 502, 502, 502, 505, 505, 745 505, 505, 439, 533, 582, 576, 505, 574, 579, 534, 746 575, 439, 439, 505, 505, 505, 505, 505, 505, 567, 747 748 567, 567, 567, 590, 339, 340, 338, 567, 577, 583, 749 439, 439, 625, 591, 567, 567, 567, 567, 567, 567, 750 439, 439, 624, 439, 439, 439, 439, 439, 439, 439, 751 616, 617, 439, 623, 616, 617, 685, 686, 685, 686, 752 756, 628, 626, 632, 708, 755, 634, 685, 686, 302, 753 302, 627, 629, 754, 753, 630, 631, 633, 752, 751, 754 750, 709, 669, 52, 52, 52, 52, 52, 52, 52, 755 52, 52, 52, 52, 52, 52, 52, 52, 52, 69, 756 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 757 69, 69, 69, 69, 69, 72, 72, 72, 72, 72, 758 759 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 760 72, 76, 76, 76, 76, 76, 76, 76, 76, 76, 761 76, 76, 76, 76, 76, 76, 76, 86, 86, 86, 762 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 763 86, 86, 86, 40, 40, 40, 40, 40, 40, 40, 764 40, 40, 40, 40, 40, 40, 40, 40, 40, 95, 765 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 766 95, 95, 95, 95, 95, 101, 101, 101, 101, 101, 767 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 768 101, 106, 106, 106, 106, 106, 106, 106, 106, 106, 769 770 106, 106, 106, 106, 106, 106, 106, 110, 110, 110, 771 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, 772 110, 110, 110, 128, 128, 128, 128, 128, 128, 128, 773 128, 128, 128, 128, 128, 128, 128, 128, 128, 131, 774 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, 775 131, 131, 131, 131, 131, 135, 135, 135, 135, 135, 776 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 777 135, 177, 177, 177, 177, 177, 177, 177, 177, 177, 778 177, 177, 177, 177, 177, 177, 177, 184, 184, 184, 779 184, 749, 748, 184, 184, 184, 190, 190, 190, 190, 780 781 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, 782 190, 200, 200, 200, 200, 747, 746, 200, 200, 200, 783 209, 745, 209, 209, 209, 209, 209, 209, 209, 209, 784 209, 209, 209, 209, 209, 209, 212, 744, 212, 212, 785 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 786 212, 212, 216, 216, 216, 743, 742, 216, 216, 216, 787 227, 741, 227, 227, 227, 227, 227, 227, 227, 227, 788 227, 227, 227, 227, 227, 227, 229, 740, 229, 229, 789 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 790 229, 229, 230, 739, 230, 230, 230, 230, 230, 230, 791 792 230, 230, 230, 230, 230, 230, 230, 230, 234, 234, 793 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 794 234, 234, 234, 234, 236, 738, 236, 236, 737, 236, 795 236, 236, 736, 735, 236, 236, 734, 733, 732, 236, 796 238, 238, 238, 238, 731, 730, 238, 238, 238, 242, 797 729, 242, 242, 242, 242, 242, 242, 242, 242, 242, 798 242, 242, 242, 242, 242, 246, 246, 246, 246, 728, 799 727, 246, 246, 246, 251, 726, 251, 251, 251, 251, 800 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 801 254, 725, 254, 254, 254, 254, 254, 254, 254, 254, 802 803 254, 724, 254, 254, 254, 254, 255, 723, 720, 719, 804 255, 255, 255, 255, 718, 717, 255, 255, 257, 716, 805 257, 257, 257, 257, 257, 257, 257, 257, 257, 257, 806 257, 257, 257, 257, 261, 261, 261, 261, 715, 714, 807 261, 261, 261, 264, 264, 264, 264, 264, 264, 264, 808 264, 264, 264, 264, 264, 264, 264, 264, 264, 267, 809 267, 267, 267, 713, 267, 267, 267, 267, 267, 267, 810 267, 267, 267, 267, 267, 271, 712, 711, 271, 271, 811 271, 271, 271, 271, 271, 710, 271, 271, 271, 271, 812 271, 273, 707, 273, 273, 273, 273, 273, 273, 273, 813 814 273, 273, 273, 273, 273, 273, 273, 274, 706, 274, 815 274, 705, 274, 274, 274, 704, 703, 274, 274, 702, 816 701, 700, 274, 279, 279, 279, 279, 699, 698, 279, 817 279, 279, 284, 697, 284, 284, 284, 284, 284, 284, 818 284, 284, 284, 284, 284, 284, 284, 284, 288, 288, 819 696, 288, 288, 695, 694, 693, 288, 288, 315, 692, 820 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 821 315, 315, 315, 315, 319, 691, 319, 319, 319, 319, 822 319, 319, 319, 319, 319, 319, 319, 319, 319, 319, 823 320, 690, 320, 320, 320, 320, 320, 320, 320, 320, 824 825 320, 320, 320, 320, 320, 320, 328, 328, 689, 688, 826 328, 328, 328, 329, 329, 687, 683, 329, 329, 329, 827 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 828 330, 330, 330, 330, 330, 330, 334, 334, 334, 334, 829 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 830 334, 334, 338, 682, 338, 338, 338, 338, 338, 338, 831 338, 338, 338, 681, 338, 338, 338, 338, 209, 680, 832 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, 833 209, 209, 209, 209, 345, 345, 679, 678, 677, 676, 834 345, 346, 346, 346, 346, 675, 674, 346, 346, 346, 835 836 346, 351, 673, 351, 351, 351, 351, 351, 351, 351, 837 351, 351, 351, 351, 351, 351, 351, 227, 672, 227, 838 227, 227, 227, 227, 227, 227, 227, 227, 227, 227, 839 227, 227, 227, 229, 671, 229, 229, 229, 229, 229, 840 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 841 670, 230, 230, 230, 230, 230, 230, 230, 230, 230, 842 230, 230, 230, 230, 230, 353, 668, 353, 353, 353, 843 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 844 353, 354, 667, 354, 354, 354, 354, 354, 354, 354, 845 354, 354, 354, 354, 354, 354, 354, 234, 234, 234, 846 847 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, 848 234, 234, 234, 236, 666, 236, 236, 665, 236, 236, 849 236, 664, 663, 236, 236, 662, 661, 660, 236, 238, 850 238, 238, 238, 659, 658, 238, 238, 238, 242, 657, 851 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 852 242, 242, 242, 242, 246, 246, 246, 246, 656, 655, 853 246, 246, 246, 361, 361, 654, 653, 652, 361, 361, 854 255, 651, 650, 649, 255, 255, 255, 255, 648, 647, 855 255, 255, 257, 646, 257, 257, 257, 257, 257, 257, 856 257, 257, 257, 257, 257, 257, 257, 257, 261, 261, 857 858 261, 261, 645, 644, 261, 261, 261, 264, 264, 264, 859 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 860 264, 264, 264, 267, 267, 267, 267, 643, 267, 267, 861 267, 267, 267, 267, 267, 267, 267, 267, 267, 271, 862 642, 641, 271, 271, 271, 271, 271, 271, 271, 640, 863 271, 271, 271, 271, 271, 274, 639, 274, 274, 638, 864 274, 274, 274, 637, 636, 274, 274, 635, 622, 621, 865 274, 279, 279, 279, 279, 620, 619, 279, 279, 279, 866 284, 618, 284, 284, 284, 284, 284, 284, 284, 284, 867 284, 284, 284, 284, 284, 284, 288, 288, 560, 288, 868 869 288, 614, 613, 612, 288, 288, 315, 611, 315, 315, 870 315, 315, 315, 315, 315, 315, 315, 315, 315, 315, 871 315, 315, 319, 610, 319, 319, 319, 319, 319, 319, 872 319, 319, 319, 319, 319, 319, 319, 319, 320, 609, 873 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 874 320, 320, 320, 320, 415, 415, 415, 415, 415, 415, 875 415, 415, 415, 415, 415, 415, 415, 415, 415, 415, 876 424, 424, 424, 424, 608, 607, 424, 424, 424, 425, 877 425, 425, 425, 606, 605, 425, 425, 425, 330, 330, 878 330, 330, 330, 330, 330, 330, 330, 330, 330, 330, 879 880 330, 330, 330, 330, 334, 334, 334, 334, 334, 334, 881 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 882 338, 604, 338, 338, 338, 338, 338, 338, 338, 338, 883 338, 603, 338, 338, 338, 338, 433, 433, 602, 601, 884 600, 599, 433, 346, 346, 346, 346, 598, 597, 346, 885 346, 346, 346, 351, 596, 351, 351, 351, 351, 351, 886 351, 351, 351, 351, 351, 351, 351, 351, 351, 615, 887 615, 615, 615, 615, 615, 615, 615, 615, 615, 615, 888 615, 615, 615, 615, 615, 684, 684, 684, 684, 684, 889 684, 684, 684, 684, 684, 684, 684, 684, 684, 684, 890 891 684, 595, 594, 593, 592, 589, 588, 587, 586, 585, 892 584, 571, 570, 569, 568, 565, 564, 563, 562, 561, 893 560, 559, 558, 557, 556, 555, 554, 551, 550, 549, 894 548, 547, 546, 545, 544, 543, 542, 541, 540, 539, 895 538, 537, 536, 535, 531, 530, 529, 528, 527, 526, 896 525, 524, 523, 510, 509, 508, 507, 506, 503, 499, 897 498, 497, 496, 492, 491, 490, 489, 488, 484, 483, 898 482, 479, 478, 477, 476, 475, 474, 473, 472, 471, 899 470, 469, 468, 467, 466, 465, 464, 463, 462, 461, 900 460, 459, 458, 457, 456, 455, 454, 453, 452, 451, 901 902 439, 437, 436, 435, 434, 347, 426, 423, 422, 421, 903 322, 414, 316, 408, 407, 406, 401, 400, 399, 398, 904 397, 396, 395, 394, 391, 390, 389, 386, 385, 382, 905 379, 378, 285, 282, 377, 376, 278, 373, 372, 243, 906 356, 355, 235, 231, 352, 350, 349, 348, 218, 347, 907 337, 206, 333, 202, 318, 186, 182, 316, 314, 313, 908 312, 311, 310, 309, 305, 299, 298, 295, 294, 291, 909 287, 286, 285, 283, 282, 281, 280, 260, 278, 277, 910 272, 270, 263, 262, 260, 256, 250, 253, 250, 249, 911 247, 245, 244, 243, 241, 240, 239, 237, 235, 228, 912 913 231, 228, 226, 218, 208, 202, 199, 186, 182, 768, 914 94, 94, 85, 77, 77, 39, 768, 768, 768, 768, 915 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 916 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 917 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 918 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 919 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 920 768, 768, 768, 768 921 } ; 922 923 static yyconst short int yy_chk[2775] = 924 { 0, 925 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 926 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 927 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 928 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 929 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 930 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 931 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 932 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 933 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 934 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 935 936 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 937 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 938 765, 3, 5, 5, 3, 3, 3, 27, 27, 3, 939 6, 6, 6, 28, 28, 3, 6, 11, 11, 11, 940 3, 3, 12, 12, 12, 48, 17, 17, 66, 29, 941 29, 60, 60, 18, 18, 310, 17, 29, 310, 17, 942 17, 17, 17, 18, 61, 61, 18, 18, 18, 18, 943 3, 3, 3, 4, 4, 4, 4, 109, 4, 4, 944 21, 4, 4, 4, 511, 48, 4, 19, 19, 19, 945 22, 109, 4, 20, 20, 20, 66, 4, 4, 141, 946 947 4, 17, 61, 21, 21, 141, 21, 37, 18, 37, 948 75, 19, 75, 22, 22, 511, 22, 20, 30, 30, 949 37, 37, 37, 37, 128, 128, 30, 4, 4, 4, 950 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 951 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 952 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 953 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 954 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 955 9, 9, 9, 9, 9, 9, 9, 9, 13, 13, 956 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 957 958 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 959 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 960 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 961 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 962 13, 13, 13, 13, 13, 13, 23, 23, 163, 24, 963 24, 38, 764, 38, 41, 41, 41, 23, 130, 130, 964 24, 45, 45, 45, 38, 38, 38, 38, 163, 23, 965 23, 23, 24, 24, 24, 25, 25, 25, 25, 25, 966 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 967 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 968 969 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 970 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 971 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 972 25, 25, 25, 31, 31, 31, 32, 32, 32, 57, 973 57, 57, 62, 62, 62, 62, 99, 99, 99, 99, 974 131, 131, 133, 133, 167, 198, 198, 31, 167, 763, 975 32, 33, 33, 33, 33, 33, 33, 33, 33, 33, 976 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 977 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 978 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 979 980 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 981 33, 33, 33, 33, 33, 33, 33, 33, 33, 35, 982 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 983 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 984 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 985 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 986 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 987 35, 35, 35, 35, 35, 35, 35, 49, 53, 53, 988 53, 121, 105, 105, 53, 158, 108, 108, 115, 115, 989 160, 158, 63, 63, 63, 291, 168, 275, 63, 121, 990 991 49, 188, 49, 275, 49, 63, 168, 205, 205, 160, 992 49, 63, 291, 49, 49, 49, 405, 49, 49, 63, 993 105, 170, 405, 49, 108, 49, 115, 180, 180, 180, 994 180, 170, 762, 53, 170, 181, 181, 181, 185, 185, 995 185, 188, 192, 192, 192, 209, 209, 63, 193, 193, 996 193, 294, 194, 194, 194, 294, 192, 192, 192, 192, 997 211, 211, 193, 193, 193, 193, 194, 194, 194, 194, 998 195, 195, 195, 201, 201, 201, 210, 213, 213, 201, 999 289, 257, 210, 210, 195, 195, 195, 195, 192, 217, 1000 217, 217, 264, 264, 289, 217, 194, 362, 211, 257, 1001 1002 266, 266, 217, 248, 248, 248, 248, 761, 217, 267, 1003 267, 269, 269, 195, 298, 309, 217, 314, 298, 362, 1004 314, 321, 321, 321, 309, 330, 330, 760, 201, 314, 1005 314, 317, 317, 317, 317, 321, 321, 321, 321, 708, 1006 314, 332, 332, 708, 217, 241, 241, 241, 241, 241, 1007 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 1008 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 1009 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 1010 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 1011 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 1012 1013 241, 241, 241, 250, 250, 250, 250, 334, 334, 250, 1014 336, 336, 338, 338, 250, 344, 344, 757, 250, 415, 1015 415, 250, 756, 250, 418, 418, 250, 278, 278, 755, 1016 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 1017 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 1018 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 1019 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 1020 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 1021 278, 278, 278, 278, 278, 324, 324, 324, 339, 363, 1022 364, 340, 340, 365, 339, 339, 342, 342, 366, 324, 1023 1024 324, 324, 324, 340, 371, 409, 342, 342, 409, 409, 1025 441, 363, 365, 444, 364, 420, 420, 420, 371, 485, 1026 754, 441, 494, 494, 444, 485, 366, 504, 504, 340, 1027 341, 341, 367, 341, 341, 341, 341, 341, 341, 341, 1028 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 1029 341, 341, 341, 341, 341, 341, 341, 367, 341, 341, 1030 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 1031 341, 341, 341, 341, 341, 341, 341, 341, 341, 341, 1032 341, 341, 341, 341, 341, 341, 341, 341, 343, 343, 1033 343, 343, 752, 369, 505, 505, 343, 750, 343, 343, 1034 1035 495, 495, 495, 343, 343, 343, 343, 343, 343, 360, 1036 360, 368, 360, 360, 360, 360, 360, 360, 360, 369, 1037 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 1038 360, 360, 370, 442, 360, 360, 360, 360, 443, 368, 1039 428, 428, 368, 431, 431, 416, 416, 416, 561, 561, 1040 428, 428, 749, 431, 431, 443, 519, 445, 370, 416, 1041 416, 416, 416, 442, 360, 360, 360, 375, 375, 519, 1042 375, 375, 375, 375, 375, 375, 375, 440, 375, 375, 1043 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 1044 445, 447, 375, 375, 375, 375, 419, 419, 419, 446, 1045 1046 450, 440, 449, 440, 520, 448, 503, 503, 503, 512, 1047 419, 419, 419, 419, 517, 447, 448, 520, 446, 450, 1048 501, 501, 375, 375, 375, 427, 427, 512, 449, 517, 1049 501, 501, 427, 427, 427, 427, 427, 427, 427, 427, 1050 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 1051 427, 427, 427, 427, 427, 427, 427, 429, 429, 429, 1052 429, 462, 514, 513, 518, 429, 515, 566, 566, 521, 1053 567, 567, 429, 429, 429, 429, 429, 429, 432, 432, 1054 432, 432, 516, 462, 521, 515, 432, 513, 518, 462, 1055 514, 574, 522, 432, 432, 432, 432, 432, 432, 502, 1056 1057 502, 502, 502, 532, 565, 565, 565, 502, 516, 522, 1058 572, 573, 574, 532, 502, 502, 502, 502, 502, 502, 1059 575, 576, 573, 577, 578, 579, 580, 583, 581, 582, 1060 615, 615, 634, 572, 617, 617, 656, 656, 684, 684, 1061 748, 577, 575, 581, 681, 747, 583, 686, 686, 810, 1062 810, 576, 578, 745, 744, 579, 580, 582, 743, 742, 1063 740, 681, 634, 769, 769, 769, 769, 769, 769, 769, 1064 769, 769, 769, 769, 769, 769, 769, 769, 769, 770, 1065 770, 770, 770, 770, 770, 770, 770, 770, 770, 770, 1066 770, 770, 770, 770, 770, 771, 771, 771, 771, 771, 1067 1068 771, 771, 771, 771, 771, 771, 771, 771, 771, 771, 1069 771, 772, 772, 772, 772, 772, 772, 772, 772, 772, 1070 772, 772, 772, 772, 772, 772, 772, 773, 773, 773, 1071 773, 773, 773, 773, 773, 773, 773, 773, 773, 773, 1072 773, 773, 773, 774, 774, 774, 774, 774, 774, 774, 1073 774, 774, 774, 774, 774, 774, 774, 774, 774, 775, 1074 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 1075 775, 775, 775, 775, 775, 776, 776, 776, 776, 776, 1076 776, 776, 776, 776, 776, 776, 776, 776, 776, 776, 1077 776, 777, 777, 777, 777, 777, 777, 777, 777, 777, 1078 1079 777, 777, 777, 777, 777, 777, 777, 778, 778, 778, 1080 778, 778, 778, 778, 778, 778, 778, 778, 778, 778, 1081 778, 778, 778, 779, 779, 779, 779, 779, 779, 779, 1082 779, 779, 779, 779, 779, 779, 779, 779, 779, 780, 1083 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 1084 780, 780, 780, 780, 780, 781, 781, 781, 781, 781, 1085 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 1086 781, 782, 782, 782, 782, 782, 782, 782, 782, 782, 1087 782, 782, 782, 782, 782, 782, 782, 783, 783, 783, 1088 783, 739, 738, 783, 783, 783, 784, 784, 784, 784, 1089 1090 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 1091 784, 785, 785, 785, 785, 737, 736, 785, 785, 785, 1092 786, 735, 786, 786, 786, 786, 786, 786, 786, 786, 1093 786, 786, 786, 786, 786, 786, 787, 734, 787, 787, 1094 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 1095 787, 787, 788, 788, 788, 733, 732, 788, 788, 788, 1096 789, 731, 789, 789, 789, 789, 789, 789, 789, 789, 1097 789, 789, 789, 789, 789, 789, 790, 729, 790, 790, 1098 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 1099 790, 790, 791, 727, 791, 791, 791, 791, 791, 791, 1100 1101 791, 791, 791, 791, 791, 791, 791, 791, 792, 792, 1102 792, 792, 792, 792, 792, 792, 792, 792, 792, 792, 1103 792, 792, 792, 792, 793, 726, 793, 793, 725, 793, 1104 793, 793, 724, 723, 793, 793, 722, 721, 720, 793, 1105 794, 794, 794, 794, 719, 718, 794, 794, 794, 795, 1106 717, 795, 795, 795, 795, 795, 795, 795, 795, 795, 1107 795, 795, 795, 795, 795, 796, 796, 796, 796, 715, 1108 714, 796, 796, 796, 797, 713, 797, 797, 797, 797, 1109 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 1110 798, 712, 798, 798, 798, 798, 798, 798, 798, 798, 1111 1112 798, 710, 798, 798, 798, 798, 799, 709, 707, 706, 1113 799, 799, 799, 799, 705, 704, 799, 799, 800, 703, 1114 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 1115 800, 800, 800, 800, 801, 801, 801, 801, 702, 701, 1116 801, 801, 801, 802, 802, 802, 802, 802, 802, 802, 1117 802, 802, 802, 802, 802, 802, 802, 802, 802, 803, 1118 803, 803, 803, 700, 803, 803, 803, 803, 803, 803, 1119 803, 803, 803, 803, 803, 804, 699, 698, 804, 804, 1120 804, 804, 804, 804, 804, 682, 804, 804, 804, 804, 1121 804, 805, 680, 805, 805, 805, 805, 805, 805, 805, 1122 1123 805, 805, 805, 805, 805, 805, 805, 806, 679, 806, 1124 806, 678, 806, 806, 806, 677, 675, 806, 806, 674, 1125 672, 671, 806, 807, 807, 807, 807, 670, 669, 807, 1126 807, 807, 808, 668, 808, 808, 808, 808, 808, 808, 1127 808, 808, 808, 808, 808, 808, 808, 808, 809, 809, 1128 667, 809, 809, 666, 665, 664, 809, 809, 811, 663, 1129 811, 811, 811, 811, 811, 811, 811, 811, 811, 811, 1130 811, 811, 811, 811, 812, 662, 812, 812, 812, 812, 1131 812, 812, 812, 812, 812, 812, 812, 812, 812, 812, 1132 813, 661, 813, 813, 813, 813, 813, 813, 813, 813, 1133 1134 813, 813, 813, 813, 813, 813, 814, 814, 660, 659, 1135 814, 814, 814, 815, 815, 658, 655, 815, 815, 815, 1136 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 1137 816, 816, 816, 816, 816, 816, 817, 817, 817, 817, 1138 817, 817, 817, 817, 817, 817, 817, 817, 817, 817, 1139 817, 817, 818, 653, 818, 818, 818, 818, 818, 818, 1140 818, 818, 818, 652, 818, 818, 818, 818, 819, 651, 1141 819, 819, 819, 819, 819, 819, 819, 819, 819, 819, 1142 819, 819, 819, 819, 820, 820, 650, 646, 644, 643, 1143 820, 821, 821, 821, 821, 642, 641, 821, 821, 821, 1144 1145 821, 822, 639, 822, 822, 822, 822, 822, 822, 822, 1146 822, 822, 822, 822, 822, 822, 822, 823, 637, 823, 1147 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 1148 823, 823, 823, 824, 636, 824, 824, 824, 824, 824, 1149 824, 824, 824, 824, 824, 824, 824, 824, 824, 825, 1150 635, 825, 825, 825, 825, 825, 825, 825, 825, 825, 1151 825, 825, 825, 825, 825, 826, 633, 826, 826, 826, 1152 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 1153 826, 827, 632, 827, 827, 827, 827, 827, 827, 827, 1154 827, 827, 827, 827, 827, 827, 827, 828, 828, 828, 1155 1156 828, 828, 828, 828, 828, 828, 828, 828, 828, 828, 1157 828, 828, 828, 829, 631, 829, 829, 630, 829, 829, 1158 829, 629, 628, 829, 829, 627, 626, 625, 829, 830, 1159 830, 830, 830, 624, 623, 830, 830, 830, 831, 621, 1160 831, 831, 831, 831, 831, 831, 831, 831, 831, 831, 1161 831, 831, 831, 831, 832, 832, 832, 832, 619, 612, 1162 832, 832, 832, 833, 833, 611, 610, 609, 833, 833, 1163 834, 608, 607, 606, 834, 834, 834, 834, 604, 601, 1164 834, 834, 835, 600, 835, 835, 835, 835, 835, 835, 1165 835, 835, 835, 835, 835, 835, 835, 835, 836, 836, 1166 1167 836, 836, 599, 598, 836, 836, 836, 837, 837, 837, 1168 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, 1169 837, 837, 837, 838, 838, 838, 838, 597, 838, 838, 1170 838, 838, 838, 838, 838, 838, 838, 838, 838, 839, 1171 596, 595, 839, 839, 839, 839, 839, 839, 839, 594, 1172 839, 839, 839, 839, 839, 840, 593, 840, 840, 592, 1173 840, 840, 840, 591, 590, 840, 840, 588, 569, 568, 1174 840, 841, 841, 841, 841, 564, 563, 841, 841, 841, 1175 842, 562, 842, 842, 842, 842, 842, 842, 842, 842, 1176 842, 842, 842, 842, 842, 842, 843, 843, 560, 843, 1177 1178 843, 559, 558, 557, 843, 843, 844, 556, 844, 844, 1179 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 1180 844, 844, 845, 555, 845, 845, 845, 845, 845, 845, 1181 845, 845, 845, 845, 845, 845, 845, 845, 846, 554, 1182 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 1183 846, 846, 846, 846, 847, 847, 847, 847, 847, 847, 1184 847, 847, 847, 847, 847, 847, 847, 847, 847, 847, 1185 848, 848, 848, 848, 553, 552, 848, 848, 848, 849, 1186 849, 849, 849, 551, 549, 849, 849, 849, 850, 850, 1187 850, 850, 850, 850, 850, 850, 850, 850, 850, 850, 1188 1189 850, 850, 850, 850, 851, 851, 851, 851, 851, 851, 1190 851, 851, 851, 851, 851, 851, 851, 851, 851, 851, 1191 852, 548, 852, 852, 852, 852, 852, 852, 852, 852, 1192 852, 546, 852, 852, 852, 852, 853, 853, 545, 544, 1193 543, 542, 853, 854, 854, 854, 854, 541, 540, 854, 1194 854, 854, 854, 855, 539, 855, 855, 855, 855, 855, 1195 855, 855, 855, 855, 855, 855, 855, 855, 855, 856, 1196 856, 856, 856, 856, 856, 856, 856, 856, 856, 856, 1197 856, 856, 856, 856, 856, 857, 857, 857, 857, 857, 1198 857, 857, 857, 857, 857, 857, 857, 857, 857, 857, 1199 1200 857, 538, 536, 534, 533, 530, 528, 526, 525, 524, 1201 523, 509, 508, 507, 506, 500, 499, 498, 497, 496, 1202 492, 491, 490, 489, 488, 487, 486, 483, 482, 481, 1203 480, 479, 478, 476, 475, 474, 473, 472, 471, 469, 1204 468, 467, 464, 463, 461, 460, 459, 458, 457, 454, 1205 453, 452, 451, 439, 437, 436, 435, 434, 430, 426, 1206 423, 422, 421, 414, 413, 412, 411, 410, 408, 407, 1207 406, 404, 403, 402, 401, 400, 399, 398, 397, 396, 1208 395, 394, 393, 392, 391, 390, 388, 387, 386, 384, 1209 383, 382, 381, 380, 379, 378, 377, 376, 373, 372, 1210 1211 361, 356, 355, 352, 350, 346, 337, 327, 326, 325, 1212 323, 318, 315, 313, 312, 311, 308, 307, 306, 305, 1213 303, 301, 300, 299, 297, 296, 295, 293, 292, 290, 1214 287, 286, 284, 282, 281, 280, 276, 263, 262, 243, 1215 240, 239, 234, 231, 226, 222, 221, 220, 219, 216, 1216 208, 207, 204, 203, 189, 187, 183, 179, 176, 175, 1217 174, 173, 172, 171, 169, 166, 165, 162, 161, 159, 1218 156, 155, 154, 153, 151, 149, 148, 146, 144, 143, 1219 137, 134, 125, 124, 122, 119, 114, 112, 107, 103, 1220 97, 92, 89, 87, 85, 84, 83, 80, 76, 74, 1221 1222 73, 71, 67, 65, 59, 55, 50, 47, 43, 39, 1223 16, 15, 10, 8, 7, 768, 768, 768, 768, 768, 1224 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 1225 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 1226 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 1227 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 1228 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 1229 768, 768, 768, 768 1230 } ; 1231 1232 static yy_state_type yy_last_accepting_state; 1233 static char *yy_last_accepting_cpos; 1234 1235 /* The intent behind this definition is that it'll catch 1236 * any uses of REJECT which flex missed. 1237 */ 1238 #define REJECT reject_used_but_not_detected 1239 #define yymore() yymore_used_but_not_detected 1240 #define YY_MORE_ADJ 0 1241 #define YY_RESTORE_YY_MORE_OFFSET 1242 char *yytext; 1243 #line 1 "scan.l" 1244 #define INITIAL 0 1245 /* scan.l - scanner for flex input */ 1246 #line 4 "scan.l" 1247 /*- 1248 * Copyright (c) 1990 The Regents of the University of California. 1249 * All rights reserved. 1250 * 1251 * This code is derived from software contributed to Berkeley by 1252 * Vern Paxson. 1253 * 1254 * The United States Government has rights in this work pursuant 1255 * to contract no. DE-AC03-76SF00098 between the United States 1256 * Department of Energy and the University of California. 1257 * 1258 * Redistribution and use in source and binary forms are permitted provided 1259 * that: (1) source distributions retain this entire copyright notice and 1260 * comment, and (2) distributions including binaries display the following 1261 * acknowledgement: ``This product includes software developed by the 1262 * University of California, Berkeley and its contributors'' in the 1263 * documentation or other materials provided with the distribution and in 1264 * all advertising materials mentioning features or use of this software. 1265 * Neither the name of the University nor the names of its contributors may 1266 * be used to endorse or promote products derived from this software without 1267 * specific prior written permission. 1268 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED 1269 * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF 1270 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 1271 */ 1272 1273 /* $Header: /home/daffy/u0/vern/flex/RCS/scan.l,v 2.56 95/04/24 12:17:19 vern Exp $ */ 1274 1275 #ifndef lint 1276 static const char rcsid[] = 1277 "$FreeBSD$"; 1278 #endif /* not lint */ 1279 1280 #include "flexdef.h" 1281 #include "parse.h" 1282 1283 #define ACTION_ECHO add_action( yytext ) 1284 #define ACTION_IFDEF(def, should_define) \ 1285 { \ 1286 if ( should_define ) \ 1287 action_define( def, 1 ); \ 1288 } 1289 1290 #define MARK_END_OF_PROLOG mark_prolog(); 1291 1292 #define YY_DECL \ 1293 int flexscan() 1294 1295 #define RETURNCHAR \ 1296 yylval = (unsigned char) yytext[0]; \ 1297 return CHAR; 1298 1299 #define RETURNNAME \ 1300 strcpy( nmstr, yytext ); \ 1301 return NAME; 1302 1303 #define PUT_BACK_STRING(str, start) \ 1304 for ( i = strlen( str ) - 1; i >= start; --i ) \ 1305 unput((str)[i]) 1306 1307 #define CHECK_REJECT(str) \ 1308 if ( all_upper( str ) ) \ 1309 reject = true; 1310 1311 #define CHECK_YYMORE(str) \ 1312 if ( all_lower( str ) ) \ 1313 yymore_used = true; 1314 #define YY_STACK_USED 1 1315 #define YY_NO_TOP_STATE 1 1316 #define SECT2 1 1317 #define SECT2PROLOG 2 1318 #define SECT3 3 1319 #define CODEBLOCK 4 1320 #define PICKUPDEF 5 1321 #define SC 6 1322 #define CARETISBOL 7 1323 #define NUM 8 1324 #define QUOTE 9 1325 1326 #define FIRSTCCL 10 1327 #define CCL 11 1328 #define ACTION 12 1329 #define RECOVER 13 1330 #define COMMENT 14 1331 #define ACTION_STRING 15 1332 #define PERCENT_BRACE_ACTION 16 1333 1334 #define OPTION 17 1335 #define LINEDIR 18 1336 1337 #line 1333 "scan.c" 1338 1339 /* Macros after this point can all be overridden by user definitions in 1340 * section 1. 1341 */ 1342 1343 #ifndef YY_SKIP_YYWRAP 1344 #ifdef __cplusplus 1345 extern "C" int yywrap YY_PROTO(( void )); 1346 #else 1347 extern int yywrap YY_PROTO(( void )); 1348 #endif 1349 #endif 1350 1351 #ifndef YY_NO_UNPUT 1352 static void yyunput YY_PROTO(( int c, char *buf_ptr )); 1353 #endif 1354 1355 #ifndef yytext_ptr 1356 static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int )); 1357 #endif 1358 1359 #ifdef YY_NEED_STRLEN 1360 static int yy_flex_strlen YY_PROTO(( yyconst char * )); 1361 #endif 1362 1363 #ifndef YY_NO_INPUT 1364 #ifdef __cplusplus 1365 static int yyinput YY_PROTO(( void )); 1366 #else 1367 static int input YY_PROTO(( void )); 1368 #endif 1369 #endif 1370 1371 #if YY_STACK_USED 1372 static int yy_start_stack_ptr = 0; 1373 static int yy_start_stack_depth = 0; 1374 static int *yy_start_stack = 0; 1375 #ifndef YY_NO_PUSH_STATE 1376 static void yy_push_state YY_PROTO(( int new_state )); 1377 #endif 1378 #ifndef YY_NO_POP_STATE 1379 static void yy_pop_state YY_PROTO(( void )); 1380 #endif 1381 #ifndef YY_NO_TOP_STATE 1382 static int yy_top_state YY_PROTO(( void )); 1383 #endif 1384 1385 #else 1386 #define YY_NO_PUSH_STATE 1 1387 #define YY_NO_POP_STATE 1 1388 #define YY_NO_TOP_STATE 1 1389 #endif 1390 1391 #ifdef YY_MALLOC_DECL 1392 YY_MALLOC_DECL 1393 #else 1394 #if __STDC__ 1395 #ifndef __cplusplus 1396 #include <stdlib.h> 1397 #endif 1398 #else 1399 /* Just try to get by without declaring the routines. This will fail 1400 * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int) 1401 * or sizeof(void*) != sizeof(int). 1402 */ 1403 #endif 1404 #endif 1405 1406 /* Amount of stuff to slurp up with each read. */ 1407 #ifndef YY_READ_BUF_SIZE 1408 #define YY_READ_BUF_SIZE 8192 1409 #endif 1410 1411 /* Copy whatever the last rule matched to the standard output. */ 1412 1413 #ifndef ECHO 1414 /* This used to be an fputs(), but since the string might contain NUL's, 1415 * we now use fwrite(). 1416 */ 1417 #define ECHO (void) fwrite( yytext, yyleng, 1, yyout ) 1418 #endif 1419 1420 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 1421 * is returned in "result". 1422 */ 1423 #ifndef YY_INPUT 1424 #define YY_INPUT(buf,result,max_size) \ 1425 if ( yy_current_buffer->yy_is_interactive ) \ 1426 { \ 1427 int c = '*', n; \ 1428 for ( n = 0; n < max_size && \ 1429 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ 1430 buf[n] = (char) c; \ 1431 if ( c == '\n' ) \ 1432 buf[n++] = (char) c; \ 1433 if ( c == EOF && ferror( yyin ) ) \ 1434 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 1435 result = n; \ 1436 } \ 1437 else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \ 1438 && ferror( yyin ) ) \ 1439 YY_FATAL_ERROR( "input in flex scanner failed" ); 1440 #endif 1441 1442 /* No semi-colon after return; correct usage is to write "yyterminate();" - 1443 * we don't want an extra ';' after the "return" because that will cause 1444 * some compilers to complain about unreachable statements. 1445 */ 1446 #ifndef yyterminate 1447 #define yyterminate() return YY_NULL 1448 #endif 1449 1450 /* Number of entries by which start-condition stack grows. */ 1451 #ifndef YY_START_STACK_INCR 1452 #define YY_START_STACK_INCR 25 1453 #endif 1454 1455 /* Report a fatal error. */ 1456 #ifndef YY_FATAL_ERROR 1457 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 1458 #endif 1459 1460 /* Default declaration of generated scanner - a define so the user can 1461 * easily add parameters. 1462 */ 1463 #ifndef YY_DECL 1464 #define YY_DECL int yylex YY_PROTO(( void )) 1465 #endif 1466 1467 /* Code executed at the beginning of each rule, after yytext and yyleng 1468 * have been set up. 1469 */ 1470 #ifndef YY_USER_ACTION 1471 #define YY_USER_ACTION 1472 #endif 1473 1474 /* Code executed at the end of each rule. */ 1475 #ifndef YY_BREAK 1476 #define YY_BREAK break; 1477 #endif 1478 1479 #define YY_RULE_SETUP \ 1480 if ( yyleng > 0 ) \ 1481 yy_current_buffer->yy_at_bol = \ 1482 (yytext[yyleng - 1] == '\n'); \ 1483 YY_USER_ACTION 1484 1485 YY_DECL 1486 { 1487 register yy_state_type yy_current_state; 1488 register char *yy_cp, *yy_bp; 1489 register int yy_act; 1490 1491 #line 94 "scan.l" 1492 1493 static int bracelevel, didadef, indented_code; 1494 static int doing_rule_action = false; 1495 static int option_sense; 1496 1497 int doing_codeblock = false; 1498 int i; 1499 Char nmdef[MAXLINE], myesc(); 1500 1501 1502 #line 1498 "scan.c" 1503 1504 if ( yy_init ) 1505 { 1506 yy_init = 0; 1507 1508 #ifdef YY_USER_INIT 1509 YY_USER_INIT; 1510 #endif 1511 1512 if ( ! yy_start ) 1513 yy_start = 1; /* first start state */ 1514 1515 if ( ! yyin ) 1516 yyin = stdin; 1517 1518 if ( ! yyout ) 1519 yyout = stdout; 1520 1521 if ( ! yy_current_buffer ) 1522 yy_current_buffer = 1523 yy_create_buffer( yyin, YY_BUF_SIZE ); 1524 1525 yy_load_buffer_state(); 1526 } 1527 1528 while ( 1 ) /* loops until end-of-file is reached */ 1529 { 1530 yy_cp = yy_c_buf_p; 1531 1532 /* Support of yytext. */ 1533 *yy_cp = yy_hold_char; 1534 1535 /* yy_bp points to the position in yy_ch_buf of the start of 1536 * the current run. 1537 */ 1538 yy_bp = yy_cp; 1539 1540 yy_current_state = yy_start; 1541 yy_current_state += YY_AT_BOL(); 1542 yy_match: 1543 do 1544 { 1545 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; 1546 if ( yy_accept[yy_current_state] ) 1547 { 1548 yy_last_accepting_state = yy_current_state; 1549 yy_last_accepting_cpos = yy_cp; 1550 } 1551 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 1552 { 1553 yy_current_state = (int) yy_def[yy_current_state]; 1554 if ( yy_current_state >= 769 ) 1555 yy_c = yy_meta[(unsigned int) yy_c]; 1556 } 1557 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 1558 ++yy_cp; 1559 } 1560 while ( yy_base[yy_current_state] != 2716 ); 1561 1562 yy_find_action: 1563 yy_act = yy_accept[yy_current_state]; 1564 if ( yy_act == 0 ) 1565 { /* have to back up */ 1566 yy_cp = yy_last_accepting_cpos; 1567 yy_current_state = yy_last_accepting_state; 1568 yy_act = yy_accept[yy_current_state]; 1569 } 1570 1571 YY_DO_BEFORE_ACTION; 1572 1573 1574 do_action: /* This label is used only to access EOF actions. */ 1575 1576 1577 switch ( yy_act ) 1578 { /* beginning of action switch */ 1579 case 0: /* must back up */ 1580 /* undo the effects of YY_DO_BEFORE_ACTION */ 1581 *yy_cp = yy_hold_char; 1582 yy_cp = yy_last_accepting_cpos; 1583 yy_current_state = yy_last_accepting_state; 1584 goto yy_find_action; 1585 1586 1587 case 1: 1588 YY_RULE_SETUP 1589 #line 105 "scan.l" 1590 indented_code = true; BEGIN(CODEBLOCK); 1591 YY_BREAK 1592 case 2: 1593 YY_RULE_SETUP 1594 #line 106 "scan.l" 1595 ACTION_ECHO; yy_push_state( COMMENT ); 1596 YY_BREAK 1597 case 3: 1598 YY_RULE_SETUP 1599 #line 107 "scan.l" 1600 yy_push_state( LINEDIR ); 1601 YY_BREAK 1602 case 4: 1603 YY_RULE_SETUP 1604 #line 108 "scan.l" 1605 return SCDECL; 1606 YY_BREAK 1607 case 5: 1608 YY_RULE_SETUP 1609 #line 109 "scan.l" 1610 return XSCDECL; 1611 YY_BREAK 1612 case 6: 1613 YY_RULE_SETUP 1614 #line 110 "scan.l" 1615 { 1616 ++linenum; 1617 line_directive_out( (FILE *) 0, 1 ); 1618 indented_code = false; 1619 BEGIN(CODEBLOCK); 1620 } 1621 YY_BREAK 1622 case 7: 1623 YY_RULE_SETUP 1624 #line 117 "scan.l" 1625 /* discard */ 1626 YY_BREAK 1627 case 8: 1628 YY_RULE_SETUP 1629 #line 119 "scan.l" 1630 { 1631 sectnum = 2; 1632 bracelevel = 0; 1633 mark_defs1(); 1634 line_directive_out( (FILE *) 0, 1 ); 1635 BEGIN(SECT2PROLOG); 1636 return SECTEND; 1637 } 1638 YY_BREAK 1639 case 9: 1640 YY_RULE_SETUP 1641 #line 128 "scan.l" 1642 yytext_is_array = false; ++linenum; 1643 YY_BREAK 1644 case 10: 1645 YY_RULE_SETUP 1646 #line 129 "scan.l" 1647 yytext_is_array = true; ++linenum; 1648 YY_BREAK 1649 case 11: 1650 YY_RULE_SETUP 1651 #line 131 "scan.l" 1652 BEGIN(OPTION); return OPTION_OP; 1653 YY_BREAK 1654 case 12: 1655 YY_RULE_SETUP 1656 #line 133 "scan.l" 1657 ++linenum; /* ignore */ 1658 YY_BREAK 1659 case 13: 1660 YY_RULE_SETUP 1661 #line 134 "scan.l" 1662 ++linenum; /* ignore */ 1663 YY_BREAK 1664 case 14: 1665 YY_RULE_SETUP 1666 #line 136 "scan.l" 1667 synerr( _( "unrecognized '%' directive" ) ); 1668 YY_BREAK 1669 case 15: 1670 YY_RULE_SETUP 1671 #line 138 "scan.l" 1672 { 1673 strcpy( nmstr, yytext ); 1674 didadef = false; 1675 BEGIN(PICKUPDEF); 1676 } 1677 YY_BREAK 1678 case 16: 1679 YY_RULE_SETUP 1680 #line 144 "scan.l" 1681 RETURNNAME; 1682 YY_BREAK 1683 case 17: 1684 YY_RULE_SETUP 1685 #line 145 "scan.l" 1686 ++linenum; /* allows blank lines in section 1 */ 1687 YY_BREAK 1688 case 18: 1689 YY_RULE_SETUP 1690 #line 146 "scan.l" 1691 ACTION_ECHO; ++linenum; /* maybe end of comment line */ 1692 YY_BREAK 1693 1694 1695 case 19: 1696 YY_RULE_SETUP 1697 #line 151 "scan.l" 1698 ACTION_ECHO; yy_pop_state(); 1699 YY_BREAK 1700 case 20: 1701 YY_RULE_SETUP 1702 #line 152 "scan.l" 1703 ACTION_ECHO; 1704 YY_BREAK 1705 case 21: 1706 YY_RULE_SETUP 1707 #line 153 "scan.l" 1708 ACTION_ECHO; 1709 YY_BREAK 1710 case 22: 1711 YY_RULE_SETUP 1712 #line 154 "scan.l" 1713 ++linenum; ACTION_ECHO; 1714 YY_BREAK 1715 1716 1717 case 23: 1718 YY_RULE_SETUP 1719 #line 158 "scan.l" 1720 yy_pop_state(); 1721 YY_BREAK 1722 case 24: 1723 YY_RULE_SETUP 1724 #line 159 "scan.l" 1725 linenum = myctoi( yytext ); 1726 YY_BREAK 1727 case 25: 1728 YY_RULE_SETUP 1729 #line 161 "scan.l" 1730 { 1731 flex_free( (void *) infilename ); 1732 infilename = copy_string( yytext + 1 ); 1733 infilename[strlen( infilename ) - 1] = '\0'; 1734 } 1735 YY_BREAK 1736 case 26: 1737 YY_RULE_SETUP 1738 #line 166 "scan.l" 1739 /* ignore spurious characters */ 1740 YY_BREAK 1741 1742 1743 case 27: 1744 YY_RULE_SETUP 1745 #line 170 "scan.l" 1746 ++linenum; BEGIN(INITIAL); 1747 YY_BREAK 1748 case 28: 1749 YY_RULE_SETUP 1750 #line 172 "scan.l" 1751 ACTION_ECHO; 1752 YY_BREAK 1753 case 29: 1754 YY_RULE_SETUP 1755 #line 174 "scan.l" 1756 { 1757 ++linenum; 1758 ACTION_ECHO; 1759 if ( indented_code ) 1760 BEGIN(INITIAL); 1761 } 1762 YY_BREAK 1763 1764 1765 case 30: 1766 YY_RULE_SETUP 1767 #line 184 "scan.l" 1768 /* separates name and definition */ 1769 YY_BREAK 1770 case 31: 1771 YY_RULE_SETUP 1772 #line 186 "scan.l" 1773 { 1774 strcpy( (char *) nmdef, yytext ); 1775 1776 /* Skip trailing whitespace. */ 1777 for ( i = strlen( (char *) nmdef ) - 1; 1778 i >= 0 && (nmdef[i] == ' ' || nmdef[i] == '\t'); 1779 --i ) 1780 ; 1781 1782 nmdef[i + 1] = '\0'; 1783 1784 ndinstal( nmstr, nmdef ); 1785 didadef = true; 1786 } 1787 YY_BREAK 1788 case 32: 1789 YY_RULE_SETUP 1790 #line 201 "scan.l" 1791 { 1792 if ( ! didadef ) 1793 synerr( _( "incomplete name definition" ) ); 1794 BEGIN(INITIAL); 1795 ++linenum; 1796 } 1797 YY_BREAK 1798 1799 1800 case 33: 1801 YY_RULE_SETUP 1802 #line 211 "scan.l" 1803 ++linenum; BEGIN(INITIAL); 1804 YY_BREAK 1805 case 34: 1806 YY_RULE_SETUP 1807 #line 212 "scan.l" 1808 option_sense = true; 1809 YY_BREAK 1810 case 35: 1811 YY_RULE_SETUP 1812 #line 214 "scan.l" 1813 return '='; 1814 YY_BREAK 1815 case 36: 1816 YY_RULE_SETUP 1817 #line 216 "scan.l" 1818 option_sense = ! option_sense; 1819 YY_BREAK 1820 case 37: 1821 YY_RULE_SETUP 1822 #line 218 "scan.l" 1823 csize = option_sense ? 128 : 256; 1824 YY_BREAK 1825 case 38: 1826 YY_RULE_SETUP 1827 #line 219 "scan.l" 1828 csize = option_sense ? 256 : 128; 1829 YY_BREAK 1830 case 39: 1831 YY_RULE_SETUP 1832 #line 221 "scan.l" 1833 long_align = option_sense; 1834 YY_BREAK 1835 case 40: 1836 YY_RULE_SETUP 1837 #line 222 "scan.l" 1838 { 1839 action_define( "YY_ALWAYS_INTERACTIVE", option_sense ); 1840 } 1841 YY_BREAK 1842 case 41: 1843 YY_RULE_SETUP 1844 #line 225 "scan.l" 1845 yytext_is_array = option_sense; 1846 YY_BREAK 1847 case 42: 1848 YY_RULE_SETUP 1849 #line 226 "scan.l" 1850 backing_up_report = option_sense; 1851 YY_BREAK 1852 case 43: 1853 YY_RULE_SETUP 1854 #line 227 "scan.l" 1855 interactive = ! option_sense; 1856 YY_BREAK 1857 case 44: 1858 YY_RULE_SETUP 1859 #line 228 "scan.l" 1860 C_plus_plus = option_sense; 1861 YY_BREAK 1862 case 45: 1863 YY_RULE_SETUP 1864 #line 229 "scan.l" 1865 caseins = ! option_sense; 1866 YY_BREAK 1867 case 46: 1868 YY_RULE_SETUP 1869 #line 230 "scan.l" 1870 caseins = option_sense; 1871 YY_BREAK 1872 case 47: 1873 YY_RULE_SETUP 1874 #line 231 "scan.l" 1875 ddebug = option_sense; 1876 YY_BREAK 1877 case 48: 1878 YY_RULE_SETUP 1879 #line 232 "scan.l" 1880 spprdflt = ! option_sense; 1881 YY_BREAK 1882 case 49: 1883 YY_RULE_SETUP 1884 #line 233 "scan.l" 1885 useecs = option_sense; 1886 YY_BREAK 1887 case 50: 1888 YY_RULE_SETUP 1889 #line 234 "scan.l" 1890 { 1891 useecs = usemecs = false; 1892 use_read = fullspd = true; 1893 } 1894 YY_BREAK 1895 case 51: 1896 YY_RULE_SETUP 1897 #line 238 "scan.l" 1898 { 1899 useecs = usemecs = false; 1900 use_read = fulltbl = true; 1901 } 1902 YY_BREAK 1903 case 52: 1904 YY_RULE_SETUP 1905 #line 242 "scan.l" 1906 ACTION_IFDEF("YY_NO_INPUT", ! option_sense); 1907 YY_BREAK 1908 case 53: 1909 YY_RULE_SETUP 1910 #line 243 "scan.l" 1911 interactive = option_sense; 1912 YY_BREAK 1913 case 54: 1914 YY_RULE_SETUP 1915 #line 244 "scan.l" 1916 lex_compat = option_sense; 1917 YY_BREAK 1918 case 55: 1919 YY_RULE_SETUP 1920 #line 245 "scan.l" 1921 { 1922 action_define( "YY_MAIN", option_sense ); 1923 do_yywrap = ! option_sense; 1924 } 1925 YY_BREAK 1926 case 56: 1927 YY_RULE_SETUP 1928 #line 249 "scan.l" 1929 usemecs = option_sense; 1930 YY_BREAK 1931 case 57: 1932 YY_RULE_SETUP 1933 #line 250 "scan.l" 1934 { 1935 action_define( "YY_NEVER_INTERACTIVE", option_sense ); 1936 } 1937 YY_BREAK 1938 case 58: 1939 YY_RULE_SETUP 1940 #line 253 "scan.l" 1941 performance_report += option_sense ? 1 : -1; 1942 YY_BREAK 1943 case 59: 1944 YY_RULE_SETUP 1945 #line 254 "scan.l" 1946 yytext_is_array = ! option_sense; 1947 YY_BREAK 1948 case 60: 1949 YY_RULE_SETUP 1950 #line 255 "scan.l" 1951 use_read = option_sense; 1952 YY_BREAK 1953 case 61: 1954 YY_RULE_SETUP 1955 #line 256 "scan.l" 1956 reject_really_used = option_sense; 1957 YY_BREAK 1958 case 62: 1959 YY_RULE_SETUP 1960 #line 257 "scan.l" 1961 action_define( "YY_STACK_USED", option_sense ); 1962 YY_BREAK 1963 case 63: 1964 YY_RULE_SETUP 1965 #line 258 "scan.l" 1966 do_stdinit = option_sense; 1967 YY_BREAK 1968 case 64: 1969 YY_RULE_SETUP 1970 #line 259 "scan.l" 1971 use_stdout = option_sense; 1972 YY_BREAK 1973 case 65: 1974 YY_RULE_SETUP 1975 #line 260 "scan.l" 1976 ACTION_IFDEF("YY_NO_UNPUT", ! option_sense); 1977 YY_BREAK 1978 case 66: 1979 YY_RULE_SETUP 1980 #line 261 "scan.l" 1981 printstats = option_sense; 1982 YY_BREAK 1983 case 67: 1984 YY_RULE_SETUP 1985 #line 262 "scan.l" 1986 nowarn = ! option_sense; 1987 YY_BREAK 1988 case 68: 1989 YY_RULE_SETUP 1990 #line 263 "scan.l" 1991 do_yylineno = option_sense; 1992 YY_BREAK 1993 case 69: 1994 YY_RULE_SETUP 1995 #line 264 "scan.l" 1996 yymore_really_used = option_sense; 1997 YY_BREAK 1998 case 70: 1999 YY_RULE_SETUP 2000 #line 265 "scan.l" 2001 do_yywrap = option_sense; 2002 YY_BREAK 2003 case 71: 2004 YY_RULE_SETUP 2005 #line 267 "scan.l" 2006 ACTION_IFDEF("YY_NO_PUSH_STATE", ! option_sense); 2007 YY_BREAK 2008 case 72: 2009 YY_RULE_SETUP 2010 #line 268 "scan.l" 2011 ACTION_IFDEF("YY_NO_POP_STATE", ! option_sense); 2012 YY_BREAK 2013 case 73: 2014 YY_RULE_SETUP 2015 #line 269 "scan.l" 2016 ACTION_IFDEF("YY_NO_TOP_STATE", ! option_sense); 2017 YY_BREAK 2018 case 74: 2019 YY_RULE_SETUP 2020 #line 271 "scan.l" 2021 ACTION_IFDEF("YY_NO_SCAN_BUFFER", ! option_sense); 2022 YY_BREAK 2023 case 75: 2024 YY_RULE_SETUP 2025 #line 272 "scan.l" 2026 ACTION_IFDEF("YY_NO_SCAN_BYTES", ! option_sense); 2027 YY_BREAK 2028 case 76: 2029 YY_RULE_SETUP 2030 #line 273 "scan.l" 2031 ACTION_IFDEF("YY_NO_SCAN_STRING", ! option_sense); 2032 YY_BREAK 2033 case 77: 2034 YY_RULE_SETUP 2035 #line 275 "scan.l" 2036 return OPT_OUTFILE; 2037 YY_BREAK 2038 case 78: 2039 YY_RULE_SETUP 2040 #line 276 "scan.l" 2041 return OPT_PREFIX; 2042 YY_BREAK 2043 case 79: 2044 YY_RULE_SETUP 2045 #line 277 "scan.l" 2046 return OPT_YYCLASS; 2047 YY_BREAK 2048 case 80: 2049 YY_RULE_SETUP 2050 #line 279 "scan.l" 2051 { 2052 strcpy( nmstr, yytext + 1 ); 2053 nmstr[strlen( nmstr ) - 1] = '\0'; 2054 return NAME; 2055 } 2056 YY_BREAK 2057 case 81: 2058 YY_RULE_SETUP 2059 #line 285 "scan.l" 2060 { 2061 format_synerr( _( "unrecognized %%option: %s" ), 2062 yytext ); 2063 BEGIN(RECOVER); 2064 } 2065 YY_BREAK 2066 2067 case 82: 2068 YY_RULE_SETUP 2069 #line 292 "scan.l" 2070 ++linenum; BEGIN(INITIAL); 2071 YY_BREAK 2072 2073 case 83: 2074 YY_RULE_SETUP 2075 #line 296 "scan.l" 2076 ++bracelevel; yyless( 2 ); /* eat only %{ */ 2077 YY_BREAK 2078 case 84: 2079 YY_RULE_SETUP 2080 #line 297 "scan.l" 2081 --bracelevel; yyless( 2 ); /* eat only %} */ 2082 YY_BREAK 2083 case 85: 2084 YY_RULE_SETUP 2085 #line 299 "scan.l" 2086 ACTION_ECHO; /* indented code in prolog */ 2087 YY_BREAK 2088 case 86: 2089 YY_RULE_SETUP 2090 #line 301 "scan.l" 2091 { /* non-indented code */ 2092 if ( bracelevel <= 0 ) 2093 { /* not in %{ ... %} */ 2094 yyless( 0 ); /* put it all back */ 2095 yy_set_bol( 1 ); 2096 mark_prolog(); 2097 BEGIN(SECT2); 2098 } 2099 else 2100 ACTION_ECHO; 2101 } 2102 YY_BREAK 2103 case 87: 2104 YY_RULE_SETUP 2105 #line 313 "scan.l" 2106 ACTION_ECHO; 2107 YY_BREAK 2108 case 88: 2109 YY_RULE_SETUP 2110 #line 314 "scan.l" 2111 ++linenum; ACTION_ECHO; 2112 YY_BREAK 2113 case YY_STATE_EOF(SECT2PROLOG): 2114 #line 316 "scan.l" 2115 { 2116 mark_prolog(); 2117 sectnum = 0; 2118 yyterminate(); /* to stop the parser */ 2119 } 2120 YY_BREAK 2121 2122 2123 case 89: 2124 YY_RULE_SETUP 2125 #line 324 "scan.l" 2126 ++linenum; /* allow blank lines in section 2 */ 2127 YY_BREAK 2128 case 90: 2129 YY_RULE_SETUP 2130 #line 326 "scan.l" 2131 { 2132 indented_code = false; 2133 doing_codeblock = true; 2134 bracelevel = 1; 2135 BEGIN(PERCENT_BRACE_ACTION); 2136 } 2137 YY_BREAK 2138 case 91: 2139 YY_RULE_SETUP 2140 #line 333 "scan.l" 2141 BEGIN(SC); return '<'; 2142 YY_BREAK 2143 case 92: 2144 YY_RULE_SETUP 2145 #line 334 "scan.l" 2146 return '^'; 2147 YY_BREAK 2148 case 93: 2149 YY_RULE_SETUP 2150 #line 335 "scan.l" 2151 BEGIN(QUOTE); return '"'; 2152 YY_BREAK 2153 case 94: 2154 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 2155 yy_c_buf_p = yy_cp = yy_bp + 1; 2156 YY_DO_BEFORE_ACTION; /* set up yytext again */ 2157 YY_RULE_SETUP 2158 #line 336 "scan.l" 2159 BEGIN(NUM); return '{'; 2160 YY_BREAK 2161 case 95: 2162 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 2163 yy_c_buf_p = yy_cp = yy_bp + 1; 2164 YY_DO_BEFORE_ACTION; /* set up yytext again */ 2165 YY_RULE_SETUP 2166 #line 337 "scan.l" 2167 return '$'; 2168 YY_BREAK 2169 case 96: 2170 YY_RULE_SETUP 2171 #line 339 "scan.l" 2172 { 2173 bracelevel = 1; 2174 BEGIN(PERCENT_BRACE_ACTION); 2175 2176 if ( in_rule ) 2177 { 2178 doing_rule_action = true; 2179 in_rule = false; 2180 return '\n'; 2181 } 2182 } 2183 YY_BREAK 2184 case 97: 2185 YY_RULE_SETUP 2186 #line 350 "scan.l" 2187 continued_action = true; ++linenum; return '\n'; 2188 YY_BREAK 2189 case 98: 2190 YY_RULE_SETUP 2191 #line 352 "scan.l" 2192 { 2193 yyless( yyleng - 2 ); /* put back '/', '*' */ 2194 bracelevel = 0; 2195 continued_action = false; 2196 BEGIN(ACTION); 2197 } 2198 YY_BREAK 2199 case 99: 2200 YY_RULE_SETUP 2201 #line 359 "scan.l" 2202 /* allow indented rules */ 2203 YY_BREAK 2204 case 100: 2205 YY_RULE_SETUP 2206 #line 361 "scan.l" 2207 { 2208 /* This rule is separate from the one below because 2209 * otherwise we get variable trailing context, so 2210 * we can't build the scanner using -{f,F}. 2211 */ 2212 bracelevel = 0; 2213 continued_action = false; 2214 BEGIN(ACTION); 2215 2216 if ( in_rule ) 2217 { 2218 doing_rule_action = true; 2219 in_rule = false; 2220 return '\n'; 2221 } 2222 } 2223 YY_BREAK 2224 case 101: 2225 YY_RULE_SETUP 2226 #line 378 "scan.l" 2227 { 2228 bracelevel = 0; 2229 continued_action = false; 2230 BEGIN(ACTION); 2231 unput( '\n' ); /* so <ACTION> sees it */ 2232 2233 if ( in_rule ) 2234 { 2235 doing_rule_action = true; 2236 in_rule = false; 2237 return '\n'; 2238 } 2239 } 2240 YY_BREAK 2241 case 102: 2242 #line 393 "scan.l" 2243 case 103: 2244 YY_RULE_SETUP 2245 #line 393 "scan.l" 2246 return EOF_OP; 2247 YY_BREAK 2248 case 104: 2249 YY_RULE_SETUP 2250 #line 395 "scan.l" 2251 { 2252 sectnum = 3; 2253 BEGIN(SECT3); 2254 yyterminate(); /* to stop the parser */ 2255 } 2256 YY_BREAK 2257 case 105: 2258 YY_RULE_SETUP 2259 #line 401 "scan.l" 2260 { 2261 int cclval; 2262 2263 strcpy( nmstr, yytext ); 2264 2265 /* Check to see if we've already encountered this 2266 * ccl. 2267 */ 2268 if ( (cclval = ccllookup( (Char *) nmstr )) != 0 ) 2269 { 2270 if ( input() != ']' ) 2271 synerr( _( "bad character class" ) ); 2272 2273 yylval = cclval; 2274 ++cclreuse; 2275 return PREVCCL; 2276 } 2277 else 2278 { 2279 /* We fudge a bit. We know that this ccl will 2280 * soon be numbered as lastccl + 1 by cclinit. 2281 */ 2282 cclinstal( (Char *) nmstr, lastccl + 1 ); 2283 2284 /* Push back everything but the leading bracket 2285 * so the ccl can be rescanned. 2286 */ 2287 yyless( 1 ); 2288 2289 BEGIN(FIRSTCCL); 2290 return '['; 2291 } 2292 } 2293 YY_BREAK 2294 case 106: 2295 YY_RULE_SETUP 2296 #line 435 "scan.l" 2297 { 2298 register Char *nmdefptr; 2299 Char *ndlookup(); 2300 2301 strcpy( nmstr, yytext + 1 ); 2302 nmstr[yyleng - 2] = '\0'; /* chop trailing brace */ 2303 2304 if ( (nmdefptr = ndlookup( nmstr )) == 0 ) 2305 format_synerr( 2306 _( "undefined definition {%s}" ), 2307 nmstr ); 2308 2309 else 2310 { /* push back name surrounded by ()'s */ 2311 int len = strlen( (char *) nmdefptr ); 2312 2313 if ( lex_compat || nmdefptr[0] == '^' || 2314 (len > 0 && nmdefptr[len - 1] == '$') ) 2315 { /* don't use ()'s after all */ 2316 PUT_BACK_STRING((char *) nmdefptr, 0); 2317 2318 if ( nmdefptr[0] == '^' ) 2319 BEGIN(CARETISBOL); 2320 } 2321 2322 else 2323 { 2324 unput(')'); 2325 PUT_BACK_STRING((char *) nmdefptr, 0); 2326 unput('('); 2327 } 2328 } 2329 } 2330 YY_BREAK 2331 case 107: 2332 YY_RULE_SETUP 2333 #line 469 "scan.l" 2334 return (unsigned char) yytext[0]; 2335 YY_BREAK 2336 case 108: 2337 YY_RULE_SETUP 2338 #line 470 "scan.l" 2339 RETURNCHAR; 2340 YY_BREAK 2341 2342 2343 case 109: 2344 YY_RULE_SETUP 2345 #line 475 "scan.l" 2346 return (unsigned char) yytext[0]; 2347 YY_BREAK 2348 case 110: 2349 YY_RULE_SETUP 2350 #line 476 "scan.l" 2351 BEGIN(SECT2); return '>'; 2352 YY_BREAK 2353 case 111: 2354 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 2355 yy_c_buf_p = yy_cp = yy_bp + 1; 2356 YY_DO_BEFORE_ACTION; /* set up yytext again */ 2357 YY_RULE_SETUP 2358 #line 477 "scan.l" 2359 BEGIN(CARETISBOL); return '>'; 2360 YY_BREAK 2361 case 112: 2362 YY_RULE_SETUP 2363 #line 478 "scan.l" 2364 RETURNNAME; 2365 YY_BREAK 2366 case 113: 2367 YY_RULE_SETUP 2368 #line 479 "scan.l" 2369 { 2370 format_synerr( _( "bad <start condition>: %s" ), 2371 yytext ); 2372 } 2373 YY_BREAK 2374 2375 case 114: 2376 YY_RULE_SETUP 2377 #line 485 "scan.l" 2378 BEGIN(SECT2); return '^'; 2379 YY_BREAK 2380 2381 case 115: 2382 YY_RULE_SETUP 2383 #line 489 "scan.l" 2384 RETURNCHAR; 2385 YY_BREAK 2386 case 116: 2387 YY_RULE_SETUP 2388 #line 490 "scan.l" 2389 BEGIN(SECT2); return '"'; 2390 YY_BREAK 2391 case 117: 2392 YY_RULE_SETUP 2393 #line 492 "scan.l" 2394 { 2395 synerr( _( "missing quote" ) ); 2396 BEGIN(SECT2); 2397 ++linenum; 2398 return '"'; 2399 } 2400 YY_BREAK 2401 2402 2403 case 118: 2404 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 2405 yy_c_buf_p = yy_cp = yy_bp + 1; 2406 YY_DO_BEFORE_ACTION; /* set up yytext again */ 2407 YY_RULE_SETUP 2408 #line 502 "scan.l" 2409 BEGIN(CCL); return '^'; 2410 YY_BREAK 2411 case 119: 2412 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 2413 yy_c_buf_p = yy_cp = yy_bp + 1; 2414 YY_DO_BEFORE_ACTION; /* set up yytext again */ 2415 YY_RULE_SETUP 2416 #line 503 "scan.l" 2417 return '^'; 2418 YY_BREAK 2419 case 120: 2420 YY_RULE_SETUP 2421 #line 504 "scan.l" 2422 BEGIN(CCL); RETURNCHAR; 2423 YY_BREAK 2424 2425 2426 case 121: 2427 *yy_cp = yy_hold_char; /* undo effects of setting up yytext */ 2428 yy_c_buf_p = yy_cp = yy_bp + 1; 2429 YY_DO_BEFORE_ACTION; /* set up yytext again */ 2430 YY_RULE_SETUP 2431 #line 508 "scan.l" 2432 return '-'; 2433 YY_BREAK 2434 case 122: 2435 YY_RULE_SETUP 2436 #line 509 "scan.l" 2437 RETURNCHAR; 2438 YY_BREAK 2439 case 123: 2440 YY_RULE_SETUP 2441 #line 510 "scan.l" 2442 BEGIN(SECT2); return ']'; 2443 YY_BREAK 2444 case 124: 2445 YY_RULE_SETUP 2446 #line 511 "scan.l" 2447 { 2448 synerr( _( "bad character class" ) ); 2449 BEGIN(SECT2); 2450 return ']'; 2451 } 2452 YY_BREAK 2453 2454 2455 case 125: 2456 YY_RULE_SETUP 2457 #line 519 "scan.l" 2458 BEGIN(CCL); return CCE_ALNUM; 2459 YY_BREAK 2460 case 126: 2461 YY_RULE_SETUP 2462 #line 520 "scan.l" 2463 BEGIN(CCL); return CCE_ALPHA; 2464 YY_BREAK 2465 case 127: 2466 YY_RULE_SETUP 2467 #line 521 "scan.l" 2468 BEGIN(CCL); return CCE_BLANK; 2469 YY_BREAK 2470 case 128: 2471 YY_RULE_SETUP 2472 #line 522 "scan.l" 2473 BEGIN(CCL); return CCE_CNTRL; 2474 YY_BREAK 2475 case 129: 2476 YY_RULE_SETUP 2477 #line 523 "scan.l" 2478 BEGIN(CCL); return CCE_DIGIT; 2479 YY_BREAK 2480 case 130: 2481 YY_RULE_SETUP 2482 #line 524 "scan.l" 2483 BEGIN(CCL); return CCE_GRAPH; 2484 YY_BREAK 2485 case 131: 2486 YY_RULE_SETUP 2487 #line 525 "scan.l" 2488 BEGIN(CCL); return CCE_LOWER; 2489 YY_BREAK 2490 case 132: 2491 YY_RULE_SETUP 2492 #line 526 "scan.l" 2493 BEGIN(CCL); return CCE_PRINT; 2494 YY_BREAK 2495 case 133: 2496 YY_RULE_SETUP 2497 #line 527 "scan.l" 2498 BEGIN(CCL); return CCE_PUNCT; 2499 YY_BREAK 2500 case 134: 2501 YY_RULE_SETUP 2502 #line 528 "scan.l" 2503 BEGIN(CCL); return CCE_SPACE; 2504 YY_BREAK 2505 case 135: 2506 YY_RULE_SETUP 2507 #line 529 "scan.l" 2508 BEGIN(CCL); return CCE_UPPER; 2509 YY_BREAK 2510 case 136: 2511 YY_RULE_SETUP 2512 #line 530 "scan.l" 2513 BEGIN(CCL); return CCE_XDIGIT; 2514 YY_BREAK 2515 case 137: 2516 YY_RULE_SETUP 2517 #line 531 "scan.l" 2518 { 2519 format_synerr( 2520 _( "bad character class expression: %s" ), 2521 yytext ); 2522 BEGIN(CCL); return CCE_ALNUM; 2523 } 2524 YY_BREAK 2525 2526 2527 case 138: 2528 YY_RULE_SETUP 2529 #line 540 "scan.l" 2530 { 2531 yylval = myctoi( yytext ); 2532 return NUMBER; 2533 } 2534 YY_BREAK 2535 case 139: 2536 YY_RULE_SETUP 2537 #line 545 "scan.l" 2538 return ','; 2539 YY_BREAK 2540 case 140: 2541 YY_RULE_SETUP 2542 #line 546 "scan.l" 2543 BEGIN(SECT2); return '}'; 2544 YY_BREAK 2545 case 141: 2546 YY_RULE_SETUP 2547 #line 548 "scan.l" 2548 { 2549 synerr( _( "bad character inside {}'s" ) ); 2550 BEGIN(SECT2); 2551 return '}'; 2552 } 2553 YY_BREAK 2554 case 142: 2555 YY_RULE_SETUP 2556 #line 554 "scan.l" 2557 { 2558 synerr( _( "missing }" ) ); 2559 BEGIN(SECT2); 2560 ++linenum; 2561 return '}'; 2562 } 2563 YY_BREAK 2564 2565 2566 case 143: 2567 YY_RULE_SETUP 2568 #line 564 "scan.l" 2569 bracelevel = 0; 2570 YY_BREAK 2571 case 144: 2572 YY_RULE_SETUP 2573 #line 566 "scan.l" 2574 ACTION_ECHO; yy_push_state( COMMENT ); 2575 YY_BREAK 2576 2577 case 145: 2578 YY_RULE_SETUP 2579 #line 569 "scan.l" 2580 { 2581 ACTION_ECHO; 2582 CHECK_REJECT(yytext); 2583 } 2584 YY_BREAK 2585 case 146: 2586 YY_RULE_SETUP 2587 #line 573 "scan.l" 2588 { 2589 ACTION_ECHO; 2590 CHECK_YYMORE(yytext); 2591 } 2592 YY_BREAK 2593 2594 case 147: 2595 YY_RULE_SETUP 2596 #line 579 "scan.l" 2597 ACTION_ECHO; 2598 YY_BREAK 2599 case 148: 2600 YY_RULE_SETUP 2601 #line 580 "scan.l" 2602 { 2603 ++linenum; 2604 ACTION_ECHO; 2605 if ( bracelevel == 0 || 2606 (doing_codeblock && indented_code) ) 2607 { 2608 if ( doing_rule_action ) 2609 add_action( "\tYY_BREAK\n" ); 2610 2611 doing_rule_action = doing_codeblock = false; 2612 BEGIN(SECT2); 2613 } 2614 } 2615 YY_BREAK 2616 2617 /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */ 2618 2619 case 149: 2620 YY_RULE_SETUP 2621 #line 598 "scan.l" 2622 ACTION_ECHO; ++bracelevel; 2623 YY_BREAK 2624 case 150: 2625 YY_RULE_SETUP 2626 #line 599 "scan.l" 2627 ACTION_ECHO; --bracelevel; 2628 YY_BREAK 2629 case 151: 2630 YY_RULE_SETUP 2631 #line 600 "scan.l" 2632 ACTION_ECHO; 2633 YY_BREAK 2634 case 152: 2635 YY_RULE_SETUP 2636 #line 601 "scan.l" 2637 ACTION_ECHO; 2638 YY_BREAK 2639 case 153: 2640 YY_RULE_SETUP 2641 #line 602 "scan.l" 2642 ACTION_ECHO; /* character constant */ 2643 YY_BREAK 2644 case 154: 2645 YY_RULE_SETUP 2646 #line 603 "scan.l" 2647 ACTION_ECHO; BEGIN(ACTION_STRING); 2648 YY_BREAK 2649 case 155: 2650 YY_RULE_SETUP 2651 #line 604 "scan.l" 2652 { 2653 ++linenum; 2654 ACTION_ECHO; 2655 if ( bracelevel == 0 ) 2656 { 2657 if ( doing_rule_action ) 2658 add_action( "\tYY_BREAK\n" ); 2659 2660 doing_rule_action = false; 2661 BEGIN(SECT2); 2662 } 2663 } 2664 YY_BREAK 2665 case 156: 2666 YY_RULE_SETUP 2667 #line 616 "scan.l" 2668 ACTION_ECHO; 2669 YY_BREAK 2670 2671 2672 case 157: 2673 YY_RULE_SETUP 2674 #line 620 "scan.l" 2675 ACTION_ECHO; 2676 YY_BREAK 2677 case 158: 2678 YY_RULE_SETUP 2679 #line 621 "scan.l" 2680 ACTION_ECHO; 2681 YY_BREAK 2682 case 159: 2683 YY_RULE_SETUP 2684 #line 622 "scan.l" 2685 ++linenum; ACTION_ECHO; 2686 YY_BREAK 2687 case 160: 2688 YY_RULE_SETUP 2689 #line 623 "scan.l" 2690 ACTION_ECHO; BEGIN(ACTION); 2691 YY_BREAK 2692 case 161: 2693 YY_RULE_SETUP 2694 #line 624 "scan.l" 2695 ACTION_ECHO; 2696 YY_BREAK 2697 2698 case YY_STATE_EOF(COMMENT): 2699 case YY_STATE_EOF(ACTION): 2700 case YY_STATE_EOF(ACTION_STRING): 2701 #line 627 "scan.l" 2702 { 2703 synerr( _( "EOF encountered inside an action" ) ); 2704 yyterminate(); 2705 } 2706 YY_BREAK 2707 case 162: 2708 YY_RULE_SETUP 2709 #line 633 "scan.l" 2710 { 2711 yylval = myesc( (Char *) yytext ); 2712 2713 if ( YY_START == FIRSTCCL ) 2714 BEGIN(CCL); 2715 2716 return CHAR; 2717 } 2718 YY_BREAK 2719 2720 case 163: 2721 YY_RULE_SETUP 2722 #line 644 "scan.l" 2723 ECHO; 2724 YY_BREAK 2725 case YY_STATE_EOF(SECT3): 2726 #line 645 "scan.l" 2727 sectnum = 0; yyterminate(); 2728 YY_BREAK 2729 2730 case 164: 2731 YY_RULE_SETUP 2732 #line 648 "scan.l" 2733 format_synerr( _( "bad character: %s" ), yytext ); 2734 YY_BREAK 2735 case 165: 2736 YY_RULE_SETUP 2737 #line 650 "scan.l" 2738 YY_FATAL_ERROR( "flex scanner jammed" ); 2739 YY_BREAK 2740 #line 2736 "scan.c" 2741 case YY_STATE_EOF(INITIAL): 2742 case YY_STATE_EOF(SECT2): 2743 case YY_STATE_EOF(CODEBLOCK): 2744 case YY_STATE_EOF(PICKUPDEF): 2745 case YY_STATE_EOF(SC): 2746 case YY_STATE_EOF(CARETISBOL): 2747 case YY_STATE_EOF(NUM): 2748 case YY_STATE_EOF(QUOTE): 2749 case YY_STATE_EOF(FIRSTCCL): 2750 case YY_STATE_EOF(CCL): 2751 case YY_STATE_EOF(RECOVER): 2752 case YY_STATE_EOF(PERCENT_BRACE_ACTION): 2753 case YY_STATE_EOF(OPTION): 2754 case YY_STATE_EOF(LINEDIR): 2755 yyterminate(); 2756 2757 case YY_END_OF_BUFFER: 2758 { 2759 /* Amount of text matched not including the EOB char. */ 2760 int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1; 2761 2762 /* Undo the effects of YY_DO_BEFORE_ACTION. */ 2763 *yy_cp = yy_hold_char; 2764 YY_RESTORE_YY_MORE_OFFSET 2765 2766 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW ) 2767 { 2768 /* We're scanning a new file or input source. It's 2769 * possible that this happened because the user 2770 * just pointed yyin at a new source and called 2771 * yylex(). If so, then we have to assure 2772 * consistency between yy_current_buffer and our 2773 * globals. Here is the right place to do so, because 2774 * this is the first action (other than possibly a 2775 * back-up) that will match for the new input source. 2776 */ 2777 yy_n_chars = yy_current_buffer->yy_n_chars; 2778 yy_current_buffer->yy_input_file = yyin; 2779 yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL; 2780 } 2781 2782 /* Note that here we test for yy_c_buf_p "<=" to the position 2783 * of the first EOB in the buffer, since yy_c_buf_p will 2784 * already have been incremented past the NUL character 2785 * (since all states make transitions on EOB to the 2786 * end-of-buffer state). Contrast this with the test 2787 * in input(). 2788 */ 2789 if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] ) 2790 { /* This was really a NUL. */ 2791 yy_state_type yy_next_state; 2792 2793 yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text; 2794 2795 yy_current_state = yy_get_previous_state(); 2796 2797 /* Okay, we're now positioned to make the NUL 2798 * transition. We couldn't have 2799 * yy_get_previous_state() go ahead and do it 2800 * for us because it doesn't know how to deal 2801 * with the possibility of jamming (and we don't 2802 * want to build jamming into it because then it 2803 * will run more slowly). 2804 */ 2805 2806 yy_next_state = yy_try_NUL_trans( yy_current_state ); 2807 2808 yy_bp = yytext_ptr + YY_MORE_ADJ; 2809 2810 if ( yy_next_state ) 2811 { 2812 /* Consume the NUL. */ 2813 yy_cp = ++yy_c_buf_p; 2814 yy_current_state = yy_next_state; 2815 goto yy_match; 2816 } 2817 2818 else 2819 { 2820 yy_cp = yy_c_buf_p; 2821 goto yy_find_action; 2822 } 2823 } 2824 2825 else switch ( yy_get_next_buffer() ) 2826 { 2827 case EOB_ACT_END_OF_FILE: 2828 { 2829 yy_did_buffer_switch_on_eof = 0; 2830 2831 if ( yywrap() ) 2832 { 2833 /* Note: because we've taken care in 2834 * yy_get_next_buffer() to have set up 2835 * yytext, we can now set up 2836 * yy_c_buf_p so that if some total 2837 * hoser (like flex itself) wants to 2838 * call the scanner after we return the 2839 * YY_NULL, it'll still work - another 2840 * YY_NULL will get returned. 2841 */ 2842 yy_c_buf_p = yytext_ptr + YY_MORE_ADJ; 2843 2844 yy_act = YY_STATE_EOF(YY_START); 2845 goto do_action; 2846 } 2847 2848 else 2849 { 2850 if ( ! yy_did_buffer_switch_on_eof ) 2851 YY_NEW_FILE; 2852 } 2853 break; 2854 } 2855 2856 case EOB_ACT_CONTINUE_SCAN: 2857 yy_c_buf_p = 2858 yytext_ptr + yy_amount_of_matched_text; 2859 2860 yy_current_state = yy_get_previous_state(); 2861 2862 yy_cp = yy_c_buf_p; 2863 yy_bp = yytext_ptr + YY_MORE_ADJ; 2864 goto yy_match; 2865 2866 case EOB_ACT_LAST_MATCH: 2867 yy_c_buf_p = 2868 &yy_current_buffer->yy_ch_buf[yy_n_chars]; 2869 2870 yy_current_state = yy_get_previous_state(); 2871 2872 yy_cp = yy_c_buf_p; 2873 yy_bp = yytext_ptr + YY_MORE_ADJ; 2874 goto yy_find_action; 2875 } 2876 break; 2877 } 2878 2879 default: 2880 YY_FATAL_ERROR( 2881 "fatal flex scanner internal error--no action found" ); 2882 } /* end of action switch */ 2883 } /* end of scanning one token */ 2884 } /* end of yylex */ 2885 2886 2887 /* yy_get_next_buffer - try to read in a new buffer 2888 * 2889 * Returns a code representing an action: 2890 * EOB_ACT_LAST_MATCH - 2891 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 2892 * EOB_ACT_END_OF_FILE - end of file 2893 */ 2894 2895 static int yy_get_next_buffer() 2896 { 2897 register char *dest = yy_current_buffer->yy_ch_buf; 2898 register char *source = yytext_ptr; 2899 register int number_to_move, i; 2900 int ret_val; 2901 2902 if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) 2903 YY_FATAL_ERROR( 2904 "fatal flex scanner internal error--end of buffer missed" ); 2905 2906 if ( yy_current_buffer->yy_fill_buffer == 0 ) 2907 { /* Don't try to fill the buffer, so this is an EOF. */ 2908 if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 ) 2909 { 2910 /* We matched a single character, the EOB, so 2911 * treat this as a final EOF. 2912 */ 2913 return EOB_ACT_END_OF_FILE; 2914 } 2915 2916 else 2917 { 2918 /* We matched some text prior to the EOB, first 2919 * process it. 2920 */ 2921 return EOB_ACT_LAST_MATCH; 2922 } 2923 } 2924 2925 /* Try to read more data. */ 2926 2927 /* First move last chars to start of buffer. */ 2928 number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1; 2929 2930 for ( i = 0; i < number_to_move; ++i ) 2931 *(dest++) = *(source++); 2932 2933 if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 2934 /* don't do the read, it's not guaranteed to return an EOF, 2935 * just force an EOF 2936 */ 2937 yy_current_buffer->yy_n_chars = yy_n_chars = 0; 2938 2939 else 2940 { 2941 int num_to_read = 2942 yy_current_buffer->yy_buf_size - number_to_move - 1; 2943 2944 while ( num_to_read <= 0 ) 2945 { /* Not enough room in the buffer - grow it. */ 2946 #ifdef YY_USES_REJECT 2947 YY_FATAL_ERROR( 2948 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); 2949 #else 2950 2951 /* just a shorter name for the current buffer */ 2952 YY_BUFFER_STATE b = yy_current_buffer; 2953 2954 int yy_c_buf_p_offset = 2955 (int) (yy_c_buf_p - b->yy_ch_buf); 2956 2957 if ( b->yy_is_our_buffer ) 2958 { 2959 int new_size = b->yy_buf_size * 2; 2960 2961 if ( new_size <= 0 ) 2962 b->yy_buf_size += b->yy_buf_size / 8; 2963 else 2964 b->yy_buf_size *= 2; 2965 2966 b->yy_ch_buf = (char *) 2967 /* Include room in for 2 EOB chars. */ 2968 yy_flex_realloc( (void *) b->yy_ch_buf, 2969 b->yy_buf_size + 2 ); 2970 } 2971 else 2972 /* Can't grow it, we don't own it. */ 2973 b->yy_ch_buf = 0; 2974 2975 if ( ! b->yy_ch_buf ) 2976 YY_FATAL_ERROR( 2977 "fatal error - scanner input buffer overflow" ); 2978 2979 yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset]; 2980 2981 num_to_read = yy_current_buffer->yy_buf_size - 2982 number_to_move - 1; 2983 #endif 2984 } 2985 2986 if ( num_to_read > YY_READ_BUF_SIZE ) 2987 num_to_read = YY_READ_BUF_SIZE; 2988 2989 /* Read in more data. */ 2990 YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]), 2991 yy_n_chars, num_to_read ); 2992 2993 yy_current_buffer->yy_n_chars = yy_n_chars; 2994 } 2995 2996 if ( yy_n_chars == 0 ) 2997 { 2998 if ( number_to_move == YY_MORE_ADJ ) 2999 { 3000 ret_val = EOB_ACT_END_OF_FILE; 3001 yyrestart( yyin ); 3002 } 3003 3004 else 3005 { 3006 ret_val = EOB_ACT_LAST_MATCH; 3007 yy_current_buffer->yy_buffer_status = 3008 YY_BUFFER_EOF_PENDING; 3009 } 3010 } 3011 3012 else 3013 ret_val = EOB_ACT_CONTINUE_SCAN; 3014 3015 yy_n_chars += number_to_move; 3016 yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR; 3017 yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR; 3018 3019 yytext_ptr = &yy_current_buffer->yy_ch_buf[0]; 3020 3021 return ret_val; 3022 } 3023 3024 3025 /* yy_get_previous_state - get the state just before the EOB char was reached */ 3026 3027 static yy_state_type yy_get_previous_state() 3028 { 3029 register yy_state_type yy_current_state; 3030 register char *yy_cp; 3031 3032 yy_current_state = yy_start; 3033 yy_current_state += YY_AT_BOL(); 3034 3035 for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) 3036 { 3037 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 3038 if ( yy_accept[yy_current_state] ) 3039 { 3040 yy_last_accepting_state = yy_current_state; 3041 yy_last_accepting_cpos = yy_cp; 3042 } 3043 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 3044 { 3045 yy_current_state = (int) yy_def[yy_current_state]; 3046 if ( yy_current_state >= 769 ) 3047 yy_c = yy_meta[(unsigned int) yy_c]; 3048 } 3049 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 3050 } 3051 3052 return yy_current_state; 3053 } 3054 3055 3056 /* yy_try_NUL_trans - try to make a transition on the NUL character 3057 * 3058 * synopsis 3059 * next_state = yy_try_NUL_trans( current_state ); 3060 */ 3061 3062 #ifdef YY_USE_PROTOS 3063 static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state ) 3064 #else 3065 static yy_state_type yy_try_NUL_trans( yy_current_state ) 3066 yy_state_type yy_current_state; 3067 #endif 3068 { 3069 register int yy_is_jam; 3070 register char *yy_cp = yy_c_buf_p; 3071 3072 register YY_CHAR yy_c = 1; 3073 if ( yy_accept[yy_current_state] ) 3074 { 3075 yy_last_accepting_state = yy_current_state; 3076 yy_last_accepting_cpos = yy_cp; 3077 } 3078 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 3079 { 3080 yy_current_state = (int) yy_def[yy_current_state]; 3081 if ( yy_current_state >= 769 ) 3082 yy_c = yy_meta[(unsigned int) yy_c]; 3083 } 3084 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; 3085 yy_is_jam = (yy_current_state == 768); 3086 3087 return yy_is_jam ? 0 : yy_current_state; 3088 } 3089 3090 3091 #ifndef YY_NO_UNPUT 3092 #ifdef YY_USE_PROTOS 3093 static void yyunput( int c, register char *yy_bp ) 3094 #else 3095 static void yyunput( c, yy_bp ) 3096 int c; 3097 register char *yy_bp; 3098 #endif 3099 { 3100 register char *yy_cp = yy_c_buf_p; 3101 3102 /* undo effects of setting up yytext */ 3103 *yy_cp = yy_hold_char; 3104 3105 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) 3106 { /* need to shift things up to make room */ 3107 /* +2 for EOB chars. */ 3108 register int number_to_move = yy_n_chars + 2; 3109 register char *dest = &yy_current_buffer->yy_ch_buf[ 3110 yy_current_buffer->yy_buf_size + 2]; 3111 register char *source = 3112 &yy_current_buffer->yy_ch_buf[number_to_move]; 3113 3114 while ( source > yy_current_buffer->yy_ch_buf ) 3115 *--dest = *--source; 3116 3117 yy_cp += (int) (dest - source); 3118 yy_bp += (int) (dest - source); 3119 yy_current_buffer->yy_n_chars = 3120 yy_n_chars = yy_current_buffer->yy_buf_size; 3121 3122 if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) 3123 YY_FATAL_ERROR( "flex scanner push-back overflow" ); 3124 } 3125 3126 *--yy_cp = (char) c; 3127 3128 3129 yytext_ptr = yy_bp; 3130 yy_hold_char = *yy_cp; 3131 yy_c_buf_p = yy_cp; 3132 } 3133 #endif /* ifndef YY_NO_UNPUT */ 3134 3135 3136 #ifdef __cplusplus 3137 static int yyinput() 3138 #else 3139 static int input() 3140 #endif 3141 { 3142 int c; 3143 3144 *yy_c_buf_p = yy_hold_char; 3145 3146 if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR ) 3147 { 3148 /* yy_c_buf_p now points to the character we want to return. 3149 * If this occurs *before* the EOB characters, then it's a 3150 * valid NUL; if not, then we've hit the end of the buffer. 3151 */ 3152 if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] ) 3153 /* This was really a NUL. */ 3154 *yy_c_buf_p = '\0'; 3155 3156 else 3157 { /* need more input */ 3158 int offset = yy_c_buf_p - yytext_ptr; 3159 ++yy_c_buf_p; 3160 3161 switch ( yy_get_next_buffer() ) 3162 { 3163 case EOB_ACT_LAST_MATCH: 3164 /* This happens because yy_g_n_b() 3165 * sees that we've accumulated a 3166 * token and flags that we need to 3167 * try matching the token before 3168 * proceeding. But for input(), 3169 * there's no matching to consider. 3170 * So convert the EOB_ACT_LAST_MATCH 3171 * to EOB_ACT_END_OF_FILE. 3172 */ 3173 3174 /* Reset buffer status. */ 3175 yyrestart( yyin ); 3176 3177 /* fall through */ 3178 3179 case EOB_ACT_END_OF_FILE: 3180 { 3181 if ( yywrap() ) 3182 return EOF; 3183 3184 if ( ! yy_did_buffer_switch_on_eof ) 3185 YY_NEW_FILE; 3186 #ifdef __cplusplus 3187 return yyinput(); 3188 #else 3189 return input(); 3190 #endif 3191 } 3192 3193 case EOB_ACT_CONTINUE_SCAN: 3194 yy_c_buf_p = yytext_ptr + offset; 3195 break; 3196 } 3197 } 3198 } 3199 3200 c = *(unsigned char *) yy_c_buf_p; /* cast for 8-bit char's */ 3201 *yy_c_buf_p = '\0'; /* preserve yytext */ 3202 yy_hold_char = *++yy_c_buf_p; 3203 3204 yy_current_buffer->yy_at_bol = (c == '\n'); 3205 3206 return c; 3207 } 3208 3209 3210 #ifdef YY_USE_PROTOS 3211 void yyrestart( FILE *input_file ) 3212 #else 3213 void yyrestart( input_file ) 3214 FILE *input_file; 3215 #endif 3216 { 3217 if ( ! yy_current_buffer ) 3218 yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); 3219 3220 yy_init_buffer( yy_current_buffer, input_file ); 3221 yy_load_buffer_state(); 3222 } 3223 3224 3225 #ifdef YY_USE_PROTOS 3226 void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer ) 3227 #else 3228 void yy_switch_to_buffer( new_buffer ) 3229 YY_BUFFER_STATE new_buffer; 3230 #endif 3231 { 3232 if ( yy_current_buffer == new_buffer ) 3233 return; 3234 3235 if ( yy_current_buffer ) 3236 { 3237 /* Flush out information for old buffer. */ 3238 *yy_c_buf_p = yy_hold_char; 3239 yy_current_buffer->yy_buf_pos = yy_c_buf_p; 3240 yy_current_buffer->yy_n_chars = yy_n_chars; 3241 } 3242 3243 yy_current_buffer = new_buffer; 3244 yy_load_buffer_state(); 3245 3246 /* We don't actually know whether we did this switch during 3247 * EOF (yywrap()) processing, but the only time this flag 3248 * is looked at is after yywrap() is called, so it's safe 3249 * to go ahead and always set it. 3250 */ 3251 yy_did_buffer_switch_on_eof = 1; 3252 } 3253 3254 3255 #ifdef YY_USE_PROTOS 3256 void yy_load_buffer_state( void ) 3257 #else 3258 void yy_load_buffer_state() 3259 #endif 3260 { 3261 yy_n_chars = yy_current_buffer->yy_n_chars; 3262 yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos; 3263 yyin = yy_current_buffer->yy_input_file; 3264 yy_hold_char = *yy_c_buf_p; 3265 } 3266 3267 3268 #ifdef YY_USE_PROTOS 3269 YY_BUFFER_STATE yy_create_buffer( FILE *file, int size ) 3270 #else 3271 YY_BUFFER_STATE yy_create_buffer( file, size ) 3272 FILE *file; 3273 int size; 3274 #endif 3275 { 3276 YY_BUFFER_STATE b; 3277 3278 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); 3279 if ( ! b ) 3280 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 3281 3282 b->yy_buf_size = size; 3283 3284 /* yy_ch_buf has to be 2 characters longer than the size given because 3285 * we need to put in 2 end-of-buffer characters. 3286 */ 3287 b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 ); 3288 if ( ! b->yy_ch_buf ) 3289 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 3290 3291 b->yy_is_our_buffer = 1; 3292 3293 yy_init_buffer( b, file ); 3294 3295 return b; 3296 } 3297 3298 3299 #ifdef YY_USE_PROTOS 3300 void yy_delete_buffer( YY_BUFFER_STATE b ) 3301 #else 3302 void yy_delete_buffer( b ) 3303 YY_BUFFER_STATE b; 3304 #endif 3305 { 3306 if ( ! b ) 3307 return; 3308 3309 if ( b == yy_current_buffer ) 3310 yy_current_buffer = (YY_BUFFER_STATE) 0; 3311 3312 if ( b->yy_is_our_buffer ) 3313 yy_flex_free( (void *) b->yy_ch_buf ); 3314 3315 yy_flex_free( (void *) b ); 3316 } 3317 3318 3319 #ifndef YY_ALWAYS_INTERACTIVE 3320 #ifndef YY_NEVER_INTERACTIVE 3321 extern int isatty YY_PROTO(( int )); 3322 #endif 3323 #endif 3324 3325 #ifdef YY_USE_PROTOS 3326 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file ) 3327 #else 3328 void yy_init_buffer( b, file ) 3329 YY_BUFFER_STATE b; 3330 FILE *file; 3331 #endif 3332 3333 3334 { 3335 yy_flush_buffer( b ); 3336 3337 b->yy_input_file = file; 3338 b->yy_fill_buffer = 1; 3339 3340 #if YY_ALWAYS_INTERACTIVE 3341 b->yy_is_interactive = 1; 3342 #else 3343 #if YY_NEVER_INTERACTIVE 3344 b->yy_is_interactive = 0; 3345 #else 3346 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 3347 #endif 3348 #endif 3349 } 3350 3351 3352 #ifdef YY_USE_PROTOS 3353 void yy_flush_buffer( YY_BUFFER_STATE b ) 3354 #else 3355 void yy_flush_buffer( b ) 3356 YY_BUFFER_STATE b; 3357 #endif 3358 3359 { 3360 if ( ! b ) 3361 return; 3362 3363 b->yy_n_chars = 0; 3364 3365 /* We always need two end-of-buffer characters. The first causes 3366 * a transition to the end-of-buffer state. The second causes 3367 * a jam in that state. 3368 */ 3369 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 3370 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 3371 3372 b->yy_buf_pos = &b->yy_ch_buf[0]; 3373 3374 b->yy_at_bol = 1; 3375 b->yy_buffer_status = YY_BUFFER_NEW; 3376 3377 if ( b == yy_current_buffer ) 3378 yy_load_buffer_state(); 3379 } 3380 3381 3382 #ifndef YY_NO_SCAN_BUFFER 3383 #ifdef YY_USE_PROTOS 3384 YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size ) 3385 #else 3386 YY_BUFFER_STATE yy_scan_buffer( base, size ) 3387 char *base; 3388 yy_size_t size; 3389 #endif 3390 { 3391 YY_BUFFER_STATE b; 3392 3393 if ( size < 2 || 3394 base[size-2] != YY_END_OF_BUFFER_CHAR || 3395 base[size-1] != YY_END_OF_BUFFER_CHAR ) 3396 /* They forgot to leave room for the EOB's. */ 3397 return 0; 3398 3399 b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) ); 3400 if ( ! b ) 3401 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); 3402 3403 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ 3404 b->yy_buf_pos = b->yy_ch_buf = base; 3405 b->yy_is_our_buffer = 0; 3406 b->yy_input_file = 0; 3407 b->yy_n_chars = b->yy_buf_size; 3408 b->yy_is_interactive = 0; 3409 b->yy_at_bol = 1; 3410 b->yy_fill_buffer = 0; 3411 b->yy_buffer_status = YY_BUFFER_NEW; 3412 3413 yy_switch_to_buffer( b ); 3414 3415 return b; 3416 } 3417 #endif 3418 3419 3420 #ifndef YY_NO_SCAN_STRING 3421 #ifdef YY_USE_PROTOS 3422 YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str ) 3423 #else 3424 YY_BUFFER_STATE yy_scan_string( yy_str ) 3425 yyconst char *yy_str; 3426 #endif 3427 { 3428 int len; 3429 for ( len = 0; yy_str[len]; ++len ) 3430 ; 3431 3432 return yy_scan_bytes( yy_str, len ); 3433 } 3434 #endif 3435 3436 3437 #ifndef YY_NO_SCAN_BYTES 3438 #ifdef YY_USE_PROTOS 3439 YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len ) 3440 #else 3441 YY_BUFFER_STATE yy_scan_bytes( bytes, len ) 3442 yyconst char *bytes; 3443 int len; 3444 #endif 3445 { 3446 YY_BUFFER_STATE b; 3447 char *buf; 3448 yy_size_t n; 3449 int i; 3450 3451 /* Get memory for full buffer, including space for trailing EOB's. */ 3452 n = len + 2; 3453 buf = (char *) yy_flex_alloc( n ); 3454 if ( ! buf ) 3455 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); 3456 3457 for ( i = 0; i < len; ++i ) 3458 buf[i] = bytes[i]; 3459 3460 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR; 3461 3462 b = yy_scan_buffer( buf, n ); 3463 if ( ! b ) 3464 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); 3465 3466 /* It's okay to grow etc. this buffer, and we should throw it 3467 * away when we're done. 3468 */ 3469 b->yy_is_our_buffer = 1; 3470 3471 return b; 3472 } 3473 #endif 3474 3475 3476 #ifndef YY_NO_PUSH_STATE 3477 #ifdef YY_USE_PROTOS 3478 static void yy_push_state( int new_state ) 3479 #else 3480 static void yy_push_state( new_state ) 3481 int new_state; 3482 #endif 3483 { 3484 if ( yy_start_stack_ptr >= yy_start_stack_depth ) 3485 { 3486 yy_size_t new_size; 3487 3488 yy_start_stack_depth += YY_START_STACK_INCR; 3489 new_size = yy_start_stack_depth * sizeof( int ); 3490 3491 if ( ! yy_start_stack ) 3492 yy_start_stack = (int *) yy_flex_alloc( new_size ); 3493 3494 else 3495 yy_start_stack = (int *) yy_flex_realloc( 3496 (void *) yy_start_stack, new_size ); 3497 3498 if ( ! yy_start_stack ) 3499 YY_FATAL_ERROR( 3500 "out of memory expanding start-condition stack" ); 3501 } 3502 3503 yy_start_stack[yy_start_stack_ptr++] = YY_START; 3504 3505 BEGIN(new_state); 3506 } 3507 #endif 3508 3509 3510 #ifndef YY_NO_POP_STATE 3511 static void yy_pop_state() 3512 { 3513 if ( --yy_start_stack_ptr < 0 ) 3514 YY_FATAL_ERROR( "start-condition stack underflow" ); 3515 3516 BEGIN(yy_start_stack[yy_start_stack_ptr]); 3517 } 3518 #endif 3519 3520 3521 #ifndef YY_NO_TOP_STATE 3522 static int yy_top_state() 3523 { 3524 return yy_start_stack[yy_start_stack_ptr - 1]; 3525 } 3526 #endif 3527 3528 #ifndef YY_EXIT_FAILURE 3529 #define YY_EXIT_FAILURE 2 3530 #endif 3531 3532 #ifdef YY_USE_PROTOS 3533 static void yy_fatal_error( yyconst char msg[] ) 3534 #else 3535 static void yy_fatal_error( msg ) 3536 char msg[]; 3537 #endif 3538 { 3539 (void) fprintf( stderr, "%s\n", msg ); 3540 exit( YY_EXIT_FAILURE ); 3541 } 3542 3543 3544 3545 /* Redefine yyless() so it works in section 3 code. */ 3546 3547 #undef yyless 3548 #define yyless(n) \ 3549 do \ 3550 { \ 3551 /* Undo effects of setting up yytext. */ \ 3552 yytext[yyleng] = yy_hold_char; \ 3553 yy_c_buf_p = yytext + n; \ 3554 yy_hold_char = *yy_c_buf_p; \ 3555 *yy_c_buf_p = '\0'; \ 3556 yyleng = n; \ 3557 } \ 3558 while ( 0 ) 3559 3560 3561 /* Internal utility routines. */ 3562 3563 #ifndef yytext_ptr 3564 #ifdef YY_USE_PROTOS 3565 static void yy_flex_strncpy( char *s1, yyconst char *s2, int n ) 3566 #else 3567 static void yy_flex_strncpy( s1, s2, n ) 3568 char *s1; 3569 yyconst char *s2; 3570 int n; 3571 #endif 3572 { 3573 register int i; 3574 for ( i = 0; i < n; ++i ) 3575 s1[i] = s2[i]; 3576 } 3577 #endif 3578 3579 #ifdef YY_NEED_STRLEN 3580 #ifdef YY_USE_PROTOS 3581 static int yy_flex_strlen( yyconst char *s ) 3582 #else 3583 static int yy_flex_strlen( s ) 3584 yyconst char *s; 3585 #endif 3586 { 3587 register int n; 3588 for ( n = 0; s[n]; ++n ) 3589 ; 3590 3591 return n; 3592 } 3593 #endif 3594 3595 3596 #ifdef YY_USE_PROTOS 3597 static void *yy_flex_alloc( yy_size_t size ) 3598 #else 3599 static void *yy_flex_alloc( size ) 3600 yy_size_t size; 3601 #endif 3602 { 3603 return (void *) malloc( size ); 3604 } 3605 3606 #ifdef YY_USE_PROTOS 3607 static void *yy_flex_realloc( void *ptr, yy_size_t size ) 3608 #else 3609 static void *yy_flex_realloc( ptr, size ) 3610 void *ptr; 3611 yy_size_t size; 3612 #endif 3613 { 3614 /* The cast to (char *) in the following accommodates both 3615 * implementations that use char* generic pointers, and those 3616 * that use void* generic pointers. It works with the latter 3617 * because both ANSI C and C++ allow castless assignment from 3618 * any pointer type to void*, and deal with argument conversions 3619 * as though doing an assignment. 3620 */ 3621 return (void *) realloc( (char *) ptr, size ); 3622 } 3623 3624 #ifdef YY_USE_PROTOS 3625 static void yy_flex_free( void *ptr ) 3626 #else 3627 static void yy_flex_free( ptr ) 3628 void *ptr; 3629 #endif 3630 { 3631 free( ptr ); 3632 } 3633 3634 #if YY_MAIN 3635 int main() 3636 { 3637 yylex(); 3638 return 0; 3639 } 3640 #endif 3641 #line 650 "scan.l" 3642 3643 3644 3645 int yywrap() 3646 { 3647 if ( --num_input_files > 0 ) 3648 { 3649 set_input_file( *++input_files ); 3650 return 0; 3651 } 3652 3653 else 3654 return 1; 3655 } 3656 3657 3658 /* set_input_file - open the given file (if NULL, stdin) for scanning */ 3659 3660 void set_input_file( file ) 3661 char *file; 3662 { 3663 if ( file && strcmp( file, "-" ) ) 3664 { 3665 infilename = copy_string( file ); 3666 yyin = fopen( infilename, "r" ); 3667 3668 if ( yyin == NULL ) 3669 lerrsf( _( "can't open %s" ), file ); 3670 } 3671 3672 else 3673 { 3674 yyin = stdin; 3675 infilename = copy_string( "<stdin>" ); 3676 } 3677 3678 linenum = 1; 3679 } 3680 3681 3682 /* Wrapper routines for accessing the scanner's malloc routines. */ 3683 3684 void *flex_alloc( size ) 3685 size_t size; 3686 { 3687 return (void *) malloc( size ); 3688 } 3689 3690 void *flex_realloc( ptr, size ) 3691 void *ptr; 3692 size_t size; 3693 { 3694 return (void *) realloc( ptr, size ); 3695 } 3696 3697 void flex_free( ptr ) 3698 void *ptr; 3699 { 3700 if ( ptr ) 3701 free( ptr ); 3702 } 3703