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