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