1 2 #line 2 "<stdout>" 3 4 #define YY_INT_ALIGNED short int 5 6 /* A lexical scanner generated by flex */ 7 8 #define FLEX_SCANNER 9 #define YY_FLEX_MAJOR_VERSION 2 10 #define YY_FLEX_MINOR_VERSION 6 11 #define YY_FLEX_SUBMINOR_VERSION 4 12 #if YY_FLEX_SUBMINOR_VERSION > 0 13 #define FLEX_BETA 14 #endif 15 16 /* First, we deal with platform-specific or compiler-specific issues. */ 17 18 #if defined(__FreeBSD__) 19 #include <sys/cdefs.h> 20 #else 21 #define __dead2 22 #endif 23 24 /* begin standard C headers. */ 25 #include <stdio.h> 26 #include <string.h> 27 #include <errno.h> 28 #include <stdlib.h> 29 30 /* end standard C headers. */ 31 32 /* flex integer type definitions */ 33 34 #ifndef FLEXINT_H 35 #define FLEXINT_H 36 37 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ 38 39 #if defined(__FreeBSD__) || \ 40 (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) 41 42 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, 43 * if you want the limit (max/min) macros for int types. 44 */ 45 #ifndef __STDC_LIMIT_MACROS 46 #define __STDC_LIMIT_MACROS 1 47 #endif 48 49 #include <inttypes.h> 50 typedef int8_t flex_int8_t; 51 typedef uint8_t flex_uint8_t; 52 typedef int16_t flex_int16_t; 53 typedef uint16_t flex_uint16_t; 54 typedef int32_t flex_int32_t; 55 typedef uint32_t flex_uint32_t; 56 #else 57 typedef signed char flex_int8_t; 58 typedef short int flex_int16_t; 59 typedef int flex_int32_t; 60 typedef unsigned char flex_uint8_t; 61 typedef unsigned short int flex_uint16_t; 62 typedef unsigned int flex_uint32_t; 63 64 /* Limits of integral types. */ 65 #ifndef INT8_MIN 66 #define INT8_MIN (-128) 67 #endif 68 #ifndef INT16_MIN 69 #define INT16_MIN (-32767-1) 70 #endif 71 #ifndef INT32_MIN 72 #define INT32_MIN (-2147483647-1) 73 #endif 74 #ifndef INT8_MAX 75 #define INT8_MAX (127) 76 #endif 77 #ifndef INT16_MAX 78 #define INT16_MAX (32767) 79 #endif 80 #ifndef INT32_MAX 81 #define INT32_MAX (2147483647) 82 #endif 83 #ifndef UINT8_MAX 84 #define UINT8_MAX (255U) 85 #endif 86 #ifndef UINT16_MAX 87 #define UINT16_MAX (65535U) 88 #endif 89 #ifndef UINT32_MAX 90 #define UINT32_MAX (4294967295U) 91 #endif 92 93 #ifndef SIZE_MAX 94 #define SIZE_MAX (~(size_t)0) 95 #endif 96 97 #endif /* ! C99 */ 98 99 #endif /* ! FLEXINT_H */ 100 101 /* begin standard C++ headers. */ 102 103 /* TODO: this is always defined, so inline it */ 104 #define yyconst const 105 106 #if defined(__GNUC__) && __GNUC__ >= 3 107 #define yynoreturn __attribute__((__noreturn__)) 108 #else 109 #define yynoreturn 110 #endif 111 112 /* Returned upon end-of-file. */ 113 #define YY_NULL 0 114 115 /* Promotes a possibly negative, possibly signed char to an 116 * integer in range [0..255] for use as an array index. 117 */ 118 #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) 119 120 /* Enter a start condition. This macro really ought to take a parameter, 121 * but we do it the disgusting crufty way forced on us by the ()-less 122 * definition of BEGIN. 123 */ 124 #define BEGIN (yy_start) = 1 + 2 * 125 /* Translate the current start state into a value that can be later handed 126 * to BEGIN to return to the state. The YYSTATE alias is for lex 127 * compatibility. 128 */ 129 #define YY_START (((yy_start) - 1) / 2) 130 #define YYSTATE YY_START 131 /* Action number for EOF rule of a given start state. */ 132 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) 133 /* Special action meaning "start processing a new file". */ 134 #define YY_NEW_FILE yyrestart( yyin ) 135 #define YY_END_OF_BUFFER_CHAR 0 136 137 /* Size of default input buffer. */ 138 #ifndef YY_BUF_SIZE 139 #ifdef __ia64__ 140 /* On IA-64, the buffer size is 16k, not 8k. 141 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. 142 * Ditto for the __ia64__ case accordingly. 143 */ 144 #define YY_BUF_SIZE 32768 145 #else 146 #define YY_BUF_SIZE 16384 147 #endif /* __ia64__ */ 148 #endif 149 150 /* The state buf must be large enough to hold one state per character in the main buffer. 151 */ 152 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) 153 154 #ifndef YY_TYPEDEF_YY_BUFFER_STATE 155 #define YY_TYPEDEF_YY_BUFFER_STATE 156 typedef struct yy_buffer_state *YY_BUFFER_STATE; 157 #endif 158 159 #ifndef YY_TYPEDEF_YY_SIZE_T 160 #define YY_TYPEDEF_YY_SIZE_T 161 typedef size_t yy_size_t; 162 #endif 163 164 extern int yyleng; 165 166 extern FILE *yyin, *yyout; 167 168 #define EOB_ACT_CONTINUE_SCAN 0 169 #define EOB_ACT_END_OF_FILE 1 170 #define EOB_ACT_LAST_MATCH 2 171 172 #define YY_LESS_LINENO(n) 173 #define YY_LINENO_REWIND_TO(ptr) 174 175 /* Return all but the first "n" matched characters back to the input stream. */ 176 #define yyless(n) \ 177 do \ 178 { \ 179 /* Undo effects of setting up yytext. */ \ 180 int yyless_macro_arg = (n); \ 181 YY_LESS_LINENO(yyless_macro_arg);\ 182 *yy_cp = (yy_hold_char); \ 183 YY_RESTORE_YY_MORE_OFFSET \ 184 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ 185 YY_DO_BEFORE_ACTION; /* set up yytext again */ \ 186 } \ 187 while ( 0 ) 188 #define unput(c) yyunput( c, (yytext_ptr) ) 189 190 #ifndef YY_STRUCT_YY_BUFFER_STATE 191 #define YY_STRUCT_YY_BUFFER_STATE 192 struct yy_buffer_state 193 { 194 FILE *yy_input_file; 195 196 char *yy_ch_buf; /* input buffer */ 197 char *yy_buf_pos; /* current position in input buffer */ 198 199 /* Size of input buffer in bytes, not including room for EOB 200 * characters. 201 */ 202 int yy_buf_size; 203 204 /* Number of characters read into yy_ch_buf, not including EOB 205 * characters. 206 */ 207 int yy_n_chars; 208 209 /* Whether we "own" the buffer - i.e., we know we created it, 210 * and can realloc() it to grow it, and should free() it to 211 * delete it. 212 */ 213 int yy_is_our_buffer; 214 215 /* Whether this is an "interactive" input source; if so, and 216 * if we're using stdio for input, then we want to use getc() 217 * instead of fread(), to make sure we stop fetching input after 218 * each newline. 219 */ 220 int yy_is_interactive; 221 222 /* Whether we're considered to be at the beginning of a line. 223 * If so, '^' rules will be active on the next match, otherwise 224 * not. 225 */ 226 int yy_at_bol; 227 228 int yy_bs_lineno; /**< The line count. */ 229 int yy_bs_column; /**< The column count. */ 230 231 /* Whether to try to fill the input buffer when we reach the 232 * end of it. 233 */ 234 int yy_fill_buffer; 235 236 int yy_buffer_status; 237 238 #define YY_BUFFER_NEW 0 239 #define YY_BUFFER_NORMAL 1 240 /* When an EOF's been seen but there's still some text to process 241 * then we mark the buffer as YY_EOF_PENDING, to indicate that we 242 * shouldn't try reading from the input source any more. We might 243 * still have a bunch of tokens to match, though, because of 244 * possible backing-up. 245 * 246 * When we actually see the EOF, we change the status to "new" 247 * (via yyrestart()), so that the user can continue scanning by 248 * just pointing yyin at a new input file. 249 */ 250 #define YY_BUFFER_EOF_PENDING 2 251 252 }; 253 #endif /* !YY_STRUCT_YY_BUFFER_STATE */ 254 255 /* Stack of input buffers. */ 256 static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ 257 static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ 258 static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ 259 260 /* We provide macros for accessing buffer states in case in the 261 * future we want to put the buffer states in a more general 262 * "scanner state". 263 * 264 * Returns the top of the stack, or NULL. 265 */ 266 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ 267 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ 268 : NULL) 269 #define yy_current_buffer YY_CURRENT_BUFFER 270 /* Same as previous macro, but useful when we know that the buffer stack is not 271 * NULL or when we need an lvalue. For internal use only. 272 */ 273 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] 274 275 /* yy_hold_char holds the character lost when yytext is formed. */ 276 static char yy_hold_char; 277 static int yy_n_chars; /* number of characters read into yy_ch_buf */ 278 int yyleng; 279 280 /* Points to current character in buffer. */ 281 static char *yy_c_buf_p = NULL; 282 static int yy_init = 0; /* whether we need to initialize */ 283 static int yy_start = 0; /* start state number */ 284 285 /* Flag which is used to allow yywrap()'s to do buffer switches 286 * instead of setting up a fresh yyin. A bit of a hack ... 287 */ 288 static int yy_did_buffer_switch_on_eof; 289 290 void yyrestart ( FILE *input_file ); 291 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); 292 YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); 293 void yy_delete_buffer ( YY_BUFFER_STATE b ); 294 void yy_flush_buffer ( YY_BUFFER_STATE b ); 295 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); 296 void yypop_buffer_state ( void ); 297 298 static void yyensure_buffer_stack ( void ); 299 static void yy_load_buffer_state ( void ); 300 static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); 301 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) 302 303 YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); 304 YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); 305 YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); 306 307 void *yyalloc ( yy_size_t ); 308 void *yyrealloc ( void *, yy_size_t ); 309 void yyfree ( void * ); 310 311 #define yy_new_buffer yy_create_buffer 312 #define yy_set_interactive(is_interactive) \ 313 { \ 314 if ( ! YY_CURRENT_BUFFER ){ \ 315 yyensure_buffer_stack (); \ 316 YY_CURRENT_BUFFER_LVALUE = \ 317 yy_create_buffer( yyin, YY_BUF_SIZE ); \ 318 } \ 319 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ 320 } 321 #define yy_set_bol(at_bol) \ 322 { \ 323 if ( ! YY_CURRENT_BUFFER ){\ 324 yyensure_buffer_stack (); \ 325 YY_CURRENT_BUFFER_LVALUE = \ 326 yy_create_buffer( yyin, YY_BUF_SIZE ); \ 327 } \ 328 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ 329 } 330 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) 331 332 /* Begin user sect3 */ 333 typedef flex_uint8_t YY_CHAR; 334 335 FILE *yyin = NULL, *yyout = NULL; 336 337 typedef int yy_state_type; 338 339 extern int yylineno; 340 int yylineno = 1; 341 342 extern char *yytext; 343 #ifdef yytext_ptr 344 #undef yytext_ptr 345 #endif 346 #define yytext_ptr yytext 347 348 static yy_state_type yy_get_previous_state ( void ); 349 static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); 350 static int yy_get_next_buffer ( void ); 351 static void yynoreturn yy_fatal_error ( const char* msg ) __dead2; 352 353 /* Done after the current pattern has been matched and before the 354 * corresponding action - sets up yytext. 355 */ 356 #define YY_DO_BEFORE_ACTION \ 357 (yytext_ptr) = yy_bp; \ 358 yyleng = (int) (yy_cp - yy_bp); \ 359 (yy_hold_char) = *yy_cp; \ 360 *yy_cp = '\0'; \ 361 (yy_c_buf_p) = yy_cp; 362 #define YY_NUM_RULES 253 363 #define YY_END_OF_BUFFER 254 364 /* This struct is not used in this scanner, 365 but its presence is necessary. */ 366 struct yy_trans_info 367 { 368 flex_int32_t yy_verify; 369 flex_int32_t yy_nxt; 370 }; 371 static const flex_int16_t yy_accept[1114] = 372 { 0, 373 0, 0, 0, 0, 0, 0, 246, 246, 40, 40, 374 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 375 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 376 239, 239, 0, 0, 0, 0, 0, 0, 0, 0, 377 0, 0, 0, 0, 0, 0, 0, 0, 21, 21, 378 250, 250, 239, 239, 254, 252, 9, 20, 252, 18, 379 1, 19, 252, 252, 252, 252, 17, 163, 148, 149, 380 163, 141, 163, 160, 161, 162, 162, 163, 163, 163, 381 162, 147, 137, 163, 163, 139, 140, 135, 136, 135, 382 134, 133, 134, 246, 247, 247, 40, 42, 40, 41, 383 384 40, 40, 41, 41, 41, 50, 49, 51, 252, 169, 385 169, 164, 169, 165, 166, 168, 170, 218, 219, 218, 386 216, 215, 217, 171, 173, 171, 172, 171, 185, 185, 387 185, 185, 187, 189, 187, 187, 187, 187, 188, 228, 388 233, 228, 232, 231, 234, 229, 229, 229, 234, 234, 389 226, 227, 252, 130, 252, 21, 23, 21, 22, 22, 390 22, 235, 241, 235, 236, 242, 242, 242, 224, 224, 391 225, 224, 224, 224, 224, 224, 224, 224, 129, 53, 392 52, 129, 129, 129, 129, 54, 129, 129, 129, 129, 393 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 394 395 129, 129, 129, 129, 129, 129, 129, 36, 33, 36, 396 34, 48, 45, 252, 48, 48, 44, 43, 175, 174, 397 176, 177, 178, 179, 180, 181, 182, 31, 32, 31, 398 30, 28, 29, 28, 27, 22, 250, 251, 251, 237, 399 237, 238, 9, 20, 0, 18, 1, 19, 0, 0, 400 0, 16, 10, 0, 0, 0, 0, 4, 16, 5, 401 0, 2, 17, 148, 149, 0, 0, 0, 143, 0, 402 159, 157, 0, 153, 153, 0, 243, 243, 243, 0, 403 0, 142, 0, 147, 137, 0, 0, 0, 139, 140, 404 152, 138, 0, 136, 134, 133, 131, 132, 246, 244, 405 406 245, 40, 42, 40, 40, 37, 38, 0, 50, 49, 407 51, 0, 164, 0, 164, 167, 168, 219, 215, 173, 408 0, 183, 184, 189, 186, 228, 233, 0, 0, 221, 409 229, 229, 229, 0, 130, 0, 21, 23, 24, 235, 410 241, 240, 239, 240, 0, 0, 225, 220, 0, 0, 411 53, 52, 0, 128, 0, 0, 129, 129, 129, 129, 412 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 413 129, 129, 129, 129, 129, 129, 55, 129, 129, 129, 414 129, 129, 129, 129, 129, 129, 129, 129, 0, 35, 415 34, 48, 45, 46, 47, 31, 32, 29, 26, 25, 416 417 250, 248, 249, 237, 0, 16, 10, 0, 14, 0, 418 0, 0, 0, 0, 4, 16, 5, 0, 6, 0, 419 144, 0, 145, 0, 158, 0, 153, 153, 0, 153, 420 153, 153, 243, 243, 155, 154, 0, 156, 138, 146, 421 0, 152, 0, 131, 132, 40, 40, 0, 39, 0, 422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 423 0, 0, 230, 229, 229, 0, 0, 220, 0, 0, 424 0, 0, 129, 129, 129, 129, 129, 129, 65, 129, 425 129, 129, 70, 129, 129, 129, 129, 129, 129, 129, 426 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 427 428 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 429 129, 129, 129, 129, 129, 129, 129, 129, 0, 0, 430 0, 0, 14, 0, 0, 0, 0, 0, 0, 4, 431 8, 5, 0, 153, 153, 153, 153, 153, 153, 153, 432 243, 156, 0, 0, 40, 40, 0, 0, 0, 0, 433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 434 0, 0, 0, 0, 0, 0, 0, 0, 229, 229, 435 0, 0, 56, 57, 129, 129, 129, 129, 129, 129, 436 129, 129, 129, 129, 71, 72, 129, 129, 129, 129, 437 77, 78, 129, 129, 129, 129, 129, 129, 129, 83, 438 439 129, 129, 129, 129, 129, 129, 129, 129, 129, 92, 440 129, 129, 129, 129, 129, 129, 129, 129, 129, 0, 441 0, 0, 0, 15, 0, 0, 0, 0, 0, 8, 442 8, 8, 0, 153, 153, 153, 153, 153, 153, 153, 443 0, 0, 40, 40, 214, 0, 0, 0, 0, 0, 444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 445 0, 0, 0, 0, 0, 0, 0, 0, 229, 229, 446 0, 0, 58, 129, 60, 129, 62, 129, 129, 129, 447 129, 68, 129, 129, 129, 73, 129, 129, 129, 129, 448 129, 129, 129, 129, 129, 129, 129, 86, 129, 129, 449 450 129, 129, 90, 129, 129, 129, 129, 129, 129, 129, 451 129, 129, 129, 0, 0, 0, 0, 3, 0, 0, 452 0, 8, 7, 8, 0, 153, 153, 153, 0, 0, 453 40, 40, 0, 0, 0, 0, 0, 0, 0, 0, 454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 455 0, 0, 0, 0, 0, 0, 222, 223, 222, 223, 456 129, 61, 129, 129, 129, 129, 129, 129, 129, 125, 457 129, 129, 129, 129, 129, 129, 129, 129, 123, 129, 458 85, 129, 88, 129, 89, 129, 129, 129, 104, 0, 459 129, 94, 129, 0, 95, 0, 0, 0, 0, 0, 460 461 12, 0, 13, 0, 151, 0, 150, 0, 0, 0, 462 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 464 0, 129, 129, 129, 129, 129, 66, 129, 69, 129, 465 129, 129, 129, 129, 129, 122, 129, 82, 129, 129, 466 87, 129, 91, 102, 124, 0, 0, 0, 0, 0, 467 0, 129, 129, 0, 0, 0, 0, 0, 0, 0, 468 0, 0, 0, 150, 0, 0, 0, 0, 0, 0, 469 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 470 0, 0, 0, 0, 0, 0, 0, 0, 129, 129, 471 472 129, 129, 129, 67, 129, 129, 129, 129, 79, 129, 473 129, 129, 129, 129, 129, 0, 0, 113, 0, 0, 474 0, 0, 0, 0, 93, 129, 0, 0, 114, 0, 475 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 476 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 477 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 478 0, 0, 0, 0, 129, 129, 129, 129, 129, 129, 479 129, 129, 129, 129, 129, 129, 84, 129, 129, 0, 480 0, 0, 0, 0, 0, 115, 0, 103, 0, 0, 481 0, 0, 0, 116, 0, 0, 0, 0, 0, 201, 482 483 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 484 212, 0, 129, 129, 129, 129, 129, 121, 129, 129, 485 75, 129, 129, 129, 129, 129, 0, 0, 109, 0, 486 119, 117, 110, 0, 0, 0, 120, 118, 0, 0, 487 0, 0, 0, 0, 213, 129, 129, 129, 129, 129, 488 125, 74, 129, 81, 129, 126, 129, 105, 107, 0, 489 106, 108, 0, 0, 0, 0, 0, 0, 0, 129, 490 63, 129, 129, 129, 129, 76, 129, 111, 112, 97, 491 0, 0, 0, 0, 98, 129, 129, 129, 129, 129, 492 127, 96, 0, 100, 0, 129, 129, 129, 66, 129, 493 494 99, 101, 129, 64, 129, 129, 129, 67, 129, 129, 495 80, 59, 0 496 } ; 497 498 static const YY_CHAR yy_ec[256] = 499 { 0, 500 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 501 4, 4, 5, 1, 1, 1, 1, 1, 1, 1, 502 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 503 1, 2, 1, 6, 7, 8, 9, 1, 10, 11, 504 12, 13, 14, 15, 16, 17, 18, 19, 19, 19, 505 19, 19, 19, 19, 20, 21, 22, 23, 1, 24, 506 25, 26, 27, 1, 28, 29, 30, 31, 32, 33, 507 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 508 44, 45, 46, 47, 48, 49, 50, 51, 52, 44, 509 53, 54, 55, 56, 57, 1, 58, 59, 60, 61, 510 511 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 512 72, 73, 44, 74, 75, 76, 77, 78, 79, 80, 513 81, 44, 82, 83, 84, 1, 1, 1, 1, 1, 514 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 515 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 516 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 517 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 518 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 519 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 520 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 521 522 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 523 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 524 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 525 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 526 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 527 1, 1, 1, 1, 1 528 } ; 529 530 static const YY_CHAR yy_meta[85] = 531 { 0, 532 1, 1, 2, 1, 3, 4, 1, 1, 5, 6, 533 1, 7, 8, 9, 1, 10, 1, 11, 12, 12, 534 12, 12, 13, 1, 1, 1, 1, 14, 14, 14, 535 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 536 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 537 15, 15, 16, 17, 18, 1, 19, 14, 14, 14, 538 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 539 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 540 15, 20, 1, 21 541 } ; 542 543 static const flex_int16_t yy_base[1221] = 544 { 0, 545 0, 84, 167, 250, 171, 184, 135, 142, 220, 231, 546 196, 200, 334, 0, 3627, 3625, 211, 416, 203, 212, 547 189, 225, 266, 417, 500, 0, 207, 208, 234, 421, 548 424, 436, 583, 588, 669, 0, 294, 304, 584, 751, 549 579, 580, 417, 576, 287, 306, 241, 441, 595, 608, 550 169, 238, 440, 754, 3680, 4511, 325, 4511, 3676, 0, 551 446, 4511, 3673, 430, 827, 3661, 0, 4511, 758, 4511, 552 3650, 4511, 453, 3621, 4511, 4511, 3619, 3584, 129, 746, 553 445, 766, 4511, 3604, 198, 3582, 4511, 4511, 4511, 3600, 554 0, 3599, 214, 0, 3506, 3483, 0, 4511, 3532, 4511, 555 556 420, 119, 3481, 3478, 3446, 0, 3526, 4511, 3520, 4511, 557 482, 3520, 3518, 4511, 3455, 0, 4511, 4511, 4511, 3504, 558 4511, 598, 4511, 4511, 4511, 3499, 4511, 754, 4511, 3477, 559 759, 180, 4511, 4511, 3467, 0, 3442, 762, 4511, 0, 560 4511, 3459, 4511, 3406, 3434, 0, 562, 167, 3393, 3370, 561 4511, 4511, 326, 4511, 420, 0, 4511, 3418, 3402, 3366, 562 3342, 0, 4511, 3368, 4511, 3317, 444, 3314, 4511, 471, 563 4511, 3354, 3271, 3337, 572, 189, 3295, 3285, 4511, 3332, 564 4511, 3307, 3303, 585, 594, 4511, 746, 734, 744, 754, 565 763, 770, 0, 755, 748, 763, 818, 789, 240, 822, 566 567 762, 381, 802, 791, 813, 824, 577, 4511, 4511, 3302, 568 871, 0, 4511, 3302, 3250, 3231, 4511, 4511, 4511, 4511, 569 4511, 4511, 4511, 4511, 4511, 4511, 4511, 0, 4511, 3279, 570 4511, 4511, 4511, 3276, 3260, 3259, 0, 3221, 3214, 0, 571 3264, 4511, 835, 4511, 3262, 0, 903, 4511, 3257, 842, 572 817, 0, 0, 910, 914, 918, 922, 0, 814, 0, 573 457, 4511, 0, 943, 4511, 3241, 3141, 483, 4511, 3217, 574 3212, 4511, 826, 556, 903, 930, 4511, 757, 0, 3134, 575 3131, 4511, 3129, 964, 4511, 3190, 3110, 3174, 3161, 4511, 576 0, 4511, 896, 4511, 0, 3172, 0, 0, 0, 4511, 577 578 4511, 0, 4511, 910, 913, 4511, 4511, 602, 0, 3169, 579 4511, 957, 3164, 3161, 3127, 4511, 0, 4511, 976, 4511, 580 1020, 4511, 4511, 4511, 4511, 0, 4511, 3116, 0, 4511, 581 0, 926, 930, 644, 4511, 662, 0, 4511, 4511, 0, 582 4511, 4511, 3071, 3121, 794, 3037, 4511, 0, 934, 932, 583 3117, 4511, 3091, 4511, 938, 939, 0, 940, 738, 956, 584 802, 3059, 876, 978, 933, 933, 939, 948, 964, 1030, 585 938, 958, 976, 968, 0, 996, 4511, 999, 1057, 1068, 586 981, 1079, 1077, 1080, 1074, 1068, 1070, 1120, 3062, 4511, 587 1014, 0, 4511, 4511, 4511, 0, 4511, 4511, 4511, 4511, 588 589 0, 4511, 4511, 0, 1078, 0, 0, 1153, 4511, 3063, 590 1166, 1077, 1076, 1091, 0, 1089, 0, 1018, 4511, 1022, 591 4511, 1025, 4511, 1035, 4511, 1091, 1067, 1138, 1162, 1242, 592 1177, 1308, 1105, 0, 4511, 4511, 2954, 1198, 4511, 4511, 593 1144, 0, 1137, 0, 0, 1161, 1156, 1123, 4511, 1202, 594 1308, 1309, 1310, 1319, 3013, 1312, 1311, 1327, 1320, 1321, 595 1323, 1382, 4511, 1172, 1166, 2589, 2537, 0, 1178, 1169, 596 1169, 1298, 1315, 1324, 1330, 1321, 1330, 1323, 0, 1341, 597 1332, 1348, 0, 1346, 1350, 1348, 1361, 1350, 1367, 2573, 598 1370, 1366, 1380, 1382, 1382, 1385, 1378, 1387, 1391, 1400, 599 600 1393, 1403, 1406, 1414, 1400, 1401, 1404, 1429, 1419, 1424, 601 1428, 1425, 1436, 1435, 1430, 1441, 1442, 1432, 1432, 1450, 602 1209, 1508, 4511, 1215, 1512, 1219, 1461, 1455, 1451, 0, 603 1143, 0, 1461, 1534, 1600, 1636, 204, 2525, 1606, 1681, 604 4511, 4511, 1453, 1463, 1591, 1442, 2524, 1599, 1604, 1600, 605 1607, 1605, 1611, 1608, 1650, 1620, 1606, 1614, 1613, 1654, 606 1663, 1652, 1661, 1666, 1682, 1664, 1693, 1694, 1655, 1674, 607 1662, 1675, 4511, 4511, 1683, 1676, 1677, 1683, 1697, 1692, 608 1731, 1711, 1702, 1718, 0, 0, 1719, 1706, 1716, 1735, 609 0, 0, 2553, 1722, 1732, 2540, 1725, 1722, 1733, 0, 610 611 1727, 1747, 1740, 1739, 1735, 1752, 1739, 1740, 1746, 0, 612 1750, 1763, 1760, 1750, 1752, 1759, 1777, 1762, 1778, 1769, 613 1783, 1778, 2514, 4511, 1224, 1230, 1772, 1783, 1780, 0, 614 1507, 1234, 2364, 732, 2273, 1809, 1845, 1430, 1076, 1585, 615 1797, 2286, 1785, 1807, 4511, 1811, 1814, 1829, 1835, 1821, 616 1808, 1822, 1845, 1859, 1860, 1862, 1868, 1869, 1870, 1825, 617 1888, 1890, 1876, 1891, 1874, 1902, 1894, 1898, 1795, 1891, 618 1882, 1899, 0, 1887, 0, 1892, 0, 2260, 1900, 1891, 619 1909, 0, 1904, 2253, 1902, 0, 1916, 1907, 1918, 2227, 620 1912, 1909, 1924, 2201, 1908, 1918, 1922, 0, 1934, 1925, 621 622 1931, 1947, 0, 1936, 1942, 1941, 1953, 2103, 1957, 1958, 623 1952, 2085, 1950, 1951, 1950, 1969, 1956, 2133, 1515, 1961, 624 1971, 2002, 4511, 2117, 2038, 1981, 1592, 1842, 2025, 1983, 625 0, 0, 1972, 1990, 1999, 1987, 1994, 2008, 2005, 2007, 626 2015, 2023, 2016, 2021, 2017, 2024, 2022, 2026, 2030, 2029, 627 2037, 2035, 2045, 2051, 2054, 2061, 0, 0, 4511, 4511, 628 1922, 0, 2049, 2039, 2050, 2053, 2051, 2051, 2054, 1831, 629 2073, 2064, 2077, 2073, 2081, 2082, 2072, 2085, 0, 2091, 630 0, 2074, 0, 1824, 0, 2091, 2094, 2082, 0, 2116, 631 2088, 0, 2092, 2133, 0, 1728, 2097, 2095, 1714, 1678, 632 633 4511, 2135, 4511, 2096, 4511, 1726, 4511, 1703, 1612, 1601, 634 1514, 1500, 1477, 1377, 1373, 1333, 1274, 1203, 2133, 2128, 635 2148, 2151, 2144, 2150, 2156, 2158, 2161, 2163, 2184, 2167, 636 2164, 2157, 2151, 2159, 2158, 2173, 0, 2165, 0, 2166, 637 2182, 2173, 2179, 2178, 2186, 0, 2185, 0, 2187, 2193, 638 0, 2202, 0, 0, 0, 2204, 2187, 2201, 2224, 2200, 639 2222, 2213, 2219, 2230, 2199, 2227, 2239, 2222, 2225, 1162, 640 1158, 2228, 2278, 4511, 1112, 1109, 1081, 1063, 1057, 984, 641 976, 969, 923, 913, 910, 931, 895, 891, 887, 881, 642 874, 856, 848, 843, 840, 804, 788, 2259, 2248, 2258, 643 644 2265, 2264, 2241, 0, 2254, 2265, 2268, 2279, 0, 2262, 645 2268, 2271, 2266, 2278, 2283, 2289, 2273, 4511, 2280, 2281, 646 2281, 2300, 2283, 2281, 0, 2303, 2307, 2292, 4511, 2302, 647 2304, 2319, 2303, 2307, 2309, 2328, 2309, 2357, 4511, 2362, 648 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 649 4511, 746, 725, 597, 577, 441, 426, 420, 267, 253, 650 247, 230, 183, 181, 2317, 2338, 2342, 2330, 2336, 2343, 651 2339, 2331, 2334, 2350, 2341, 2345, 0, 2350, 2346, 2344, 652 2349, 2361, 2364, 2367, 2359, 4511, 2357, 0, 2358, 2362, 653 2379, 2383, 2375, 4511, 2388, 2375, 2382, 2377, 2389, 4511, 654 655 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 4511, 656 4511, 122, 2399, 2398, 2382, 2391, 2391, 0, 2407, 2408, 657 0, 2397, 2398, 2420, 2417, 2414, 2418, 2426, 4511, 2414, 658 4511, 4511, 4511, 2422, 2429, 2419, 4511, 4511, 2417, 2437, 659 2435, 2425, 2428, 2428, 4511, 2431, 2445, 2445, 2447, 2452, 660 0, 0, 2461, 0, 2444, 0, 2459, 4511, 4511, 2452, 661 4511, 4511, 2454, 2465, 2452, 2467, 2471, 2470, 2476, 2481, 662 0, 2468, 2465, 2465, 2485, 0, 2465, 4511, 4511, 4511, 663 2489, 2491, 2479, 2488, 4511, 2501, 2491, 2498, 2503, 2490, 664 0, 4511, 2497, 4511, 2510, 2500, 2502, 2500, 0, 2514, 665 666 4511, 4511, 2516, 0, 2523, 2508, 2509, 0, 2528, 2531, 667 0, 0, 4511, 2593, 2614, 2635, 2656, 2677, 2698, 2719, 668 2740, 2761, 2782, 2803, 2824, 2845, 2866, 2887, 2908, 2929, 669 2950, 2971, 2992, 3013, 3025, 3044, 3055, 3074, 3095, 3108, 670 3127, 3148, 3169, 3190, 3202, 3221, 3242, 3263, 3280, 3292, 671 3311, 3332, 3353, 3374, 3395, 3408, 2553, 3423, 3444, 3463, 672 3484, 3505, 3517, 3536, 3557, 2569, 3057, 3578, 3590, 3609, 673 3630, 3651, 2558, 3663, 3684, 3705, 3726, 3747, 3768, 3789, 674 3810, 3831, 3843, 3862, 3879, 3891, 3910, 3931, 3952, 3973, 675 3994, 4007, 4022, 4043, 4062, 4083, 4104, 4125, 4146, 4167, 676 677 4179, 4189, 4208, 4229, 4250, 2561, 4262, 4283, 4304, 4325, 678 4346, 4367, 3028, 4379, 4398, 4419, 4432, 4447, 4468, 4489 679 } ; 680 681 static const flex_int16_t yy_def[1221] = 682 { 0, 683 1113, 1113, 1114, 1114, 1115, 1116, 1117, 1117, 1118, 1118, 684 1119, 1119, 1113, 13, 1120, 1120, 1121, 1121, 1122, 1122, 685 1123, 1123, 1124, 1124, 1113, 25, 1125, 1125, 1126, 1126, 686 1127, 1127, 1128, 1128, 1113, 35, 1129, 1129, 1130, 1130, 687 1120, 1120, 1120, 1120, 1131, 1131, 1132, 1132, 1126, 1126, 688 1133, 1133, 1134, 1134, 1113, 1113, 1113, 1113, 1113, 1135, 689 1113, 1113, 1113, 1113, 1136, 1113, 1137, 1113, 1113, 1113, 690 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1138, 1139, 691 1140, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 692 1141, 1113, 1141, 1142, 1113, 1113, 1143, 1113, 1143, 1113, 693 694 1143, 1143, 1113, 1113, 1113, 1144, 1113, 1113, 1113, 1113, 695 1113, 1113, 1113, 1113, 1113, 1145, 1113, 1113, 1113, 1113, 696 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1139, 1113, 1113, 697 1139, 1146, 1113, 1113, 1113, 1147, 1113, 1139, 1113, 1148, 698 1113, 1148, 1113, 1149, 1113, 1150, 1150, 1150, 1113, 1113, 699 1113, 1113, 1151, 1113, 1151, 1152, 1113, 1152, 1113, 1113, 700 1113, 1153, 1113, 1153, 1113, 1113, 1154, 1113, 1113, 1113, 701 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 702 1113, 1113, 1155, 1113, 1113, 1113, 1156, 1156, 1156, 1156, 703 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 1156, 1156, 704 705 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1113, 1113, 1158, 706 1113, 1159, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 707 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1160, 1113, 1160, 708 1113, 1113, 1113, 1113, 1113, 1113, 1161, 1113, 1113, 1162, 709 1162, 1113, 1113, 1113, 1113, 1163, 1113, 1113, 1113, 1113, 710 1113, 1164, 1165, 1113, 1113, 1113, 1113, 1166, 1164, 1167, 711 1168, 1113, 1169, 1113, 1113, 1113, 1113, 1170, 1113, 1113, 712 1113, 1113, 1113, 1171, 1171, 1172, 1113, 1113, 1173, 1113, 713 1113, 1113, 1174, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 714 1175, 1113, 1113, 1113, 1176, 1113, 1177, 1178, 1179, 1113, 715 716 1113, 1180, 1113, 1180, 1180, 1113, 1113, 1181, 1182, 1113, 717 1113, 1113, 1113, 1113, 1113, 1113, 1183, 1113, 1113, 1113, 718 1113, 1113, 1113, 1113, 1113, 1184, 1113, 1113, 1185, 1113, 719 1186, 1186, 1186, 1187, 1113, 1187, 1188, 1113, 1113, 1189, 720 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1190, 1113, 1113, 721 1113, 1113, 1191, 1113, 1113, 1113, 1192, 1192, 1192, 1192, 722 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 723 1192, 1192, 1192, 1192, 1192, 1192, 1113, 1192, 1192, 1192, 724 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1193, 1113, 725 1113, 1194, 1113, 1113, 1113, 1195, 1113, 1113, 1113, 1113, 726 727 1196, 1113, 1113, 1197, 1113, 1198, 1199, 1200, 1113, 1113, 728 1113, 1113, 1113, 1113, 1201, 1198, 1202, 1203, 1113, 1203, 729 1113, 1204, 1113, 1204, 1113, 1113, 1205, 1205, 1205, 1113, 730 1205, 1205, 1113, 1206, 1113, 1113, 1207, 1113, 1113, 1113, 731 1113, 1208, 1113, 1209, 1210, 1211, 1211, 1212, 1113, 1212, 732 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 733 1213, 1213, 1113, 1214, 1214, 1113, 1215, 1216, 1113, 1113, 734 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 735 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 736 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 737 738 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 739 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 740 1200, 1200, 1113, 1200, 1200, 1113, 1113, 1113, 1113, 1201, 741 1218, 1202, 1113, 1113, 1205, 432, 430, 430, 1205, 432, 742 1113, 1113, 1113, 1113, 1211, 1211, 1113, 1213, 1213, 1213, 743 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 744 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214, 745 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 746 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 747 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 748 749 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 750 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 751 1113, 1113, 1113, 1113, 1200, 1200, 1113, 1113, 1113, 1218, 752 1218, 1218, 1113, 534, 534, 1205, 432, 1205, 1205, 1205, 753 1113, 1113, 1211, 1211, 1113, 1213, 1213, 1213, 1213, 1213, 754 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 755 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214, 756 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 757 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 758 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 759 760 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 761 1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113, 1219, 1113, 762 1113, 1218, 1113, 1218, 1113, 1205, 1205, 1205, 1113, 1113, 763 1211, 1211, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 764 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 765 1213, 1213, 1213, 1213, 1213, 1213, 1214, 1214, 1113, 1113, 766 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 767 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 768 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 769 1217, 1217, 1217, 1113, 1217, 1113, 1113, 1113, 1113, 1219, 770 771 1113, 1219, 1113, 1113, 1113, 1113, 1113, 1213, 1213, 1213, 772 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 773 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 774 1213, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 775 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 776 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113, 777 1113, 1217, 1217, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 778 1113, 1113, 1220, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 779 1113, 1113, 1113, 1113, 1113, 1213, 1213, 1213, 1213, 1213, 780 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1213, 1217, 1217, 781 782 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 783 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113, 1113, 784 1113, 1113, 1113, 1113, 1217, 1217, 1113, 1113, 1113, 1113, 785 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1220, 1113, 1220, 786 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 787 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 788 1113, 1113, 1113, 1213, 1217, 1217, 1217, 1217, 1217, 1217, 789 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 790 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1217, 1113, 1113, 791 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 792 793 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 794 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 795 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 1113, 796 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 797 1113, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217, 798 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 799 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1217, 800 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1113, 1113, 1113, 801 1113, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217, 802 1217, 1113, 1113, 1113, 1113, 1217, 1217, 1217, 1217, 1217, 803 804 1113, 1113, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 1217, 805 1217, 1217, 0, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 806 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 807 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 808 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 809 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 810 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 811 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 812 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 813 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 814 815 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 816 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113 817 } ; 818 819 static const flex_int16_t yy_nxt[4596] = 820 { 0, 821 56, 57, 58, 56, 59, 56, 56, 56, 56, 56, 822 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 823 56, 56, 56, 56, 56, 56, 56, 60, 60, 60, 824 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 825 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 826 60, 60, 56, 56, 56, 56, 60, 60, 60, 60, 827 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 828 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 829 60, 56, 56, 56, 56, 61, 62, 56, 63, 56, 830 64, 56, 65, 56, 56, 56, 56, 56, 56, 56, 831 832 56, 66, 56, 56, 56, 56, 56, 56, 56, 56, 833 56, 67, 67, 67, 67, 67, 67, 67, 67, 67, 834 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 835 67, 67, 67, 67, 67, 67, 56, 56, 56, 56, 836 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 837 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 838 67, 67, 67, 67, 67, 56, 56, 56, 69, 70, 839 305, 71, 72, 89, 73, 90, 1045, 74, 75, 76, 840 76, 275, 276, 76, 77, 92, 89, 95, 90, 96, 841 78, 56, 93, 76, 95, 323, 96, 107, 108, 305, 842 843 109, 107, 108, 1012, 109, 125, 291, 126, 127, 154, 844 154, 155, 155, 119, 125, 120, 126, 127, 333, 79, 845 80, 238, 98, 239, 99, 121, 638, 56, 100, 122, 846 122, 122, 122, 98, 323, 99, 157, 1011, 158, 105, 847 350, 130, 131, 233, 132, 234, 159, 333, 81, 76, 848 76, 82, 83, 235, 84, 72, 128, 73, 85, 427, 849 74, 75, 76, 76, 101, 128, 76, 77, 134, 350, 850 135, 102, 103, 86, 104, 101, 76, 130, 131, 292, 851 132, 136, 102, 103, 1010, 104, 160, 378, 161, 229, 852 238, 230, 239, 101, 123, 297, 209, 298, 231, 210, 853 854 102, 1009, 79, 80, 101, 87, 209, 1008, 229, 210, 855 230, 102, 211, 211, 211, 211, 378, 231, 137, 138, 856 139, 1007, 211, 211, 211, 211, 243, 244, 335, 245, 857 336, 81, 76, 76, 110, 111, 112, 110, 113, 110, 858 110, 110, 110, 110, 110, 110, 114, 110, 114, 110, 859 110, 110, 110, 110, 110, 110, 110, 110, 110, 115, 860 110, 116, 116, 116, 116, 116, 116, 116, 116, 116, 861 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 862 116, 116, 116, 116, 116, 116, 110, 110, 110, 110, 863 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 864 865 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 866 116, 116, 116, 116, 116, 110, 110, 110, 119, 134, 867 120, 135, 335, 157, 336, 158, 163, 383, 164, 165, 868 121, 250, 136, 159, 122, 122, 122, 122, 163, 224, 869 164, 165, 163, 233, 241, 234, 343, 247, 248, 242, 870 249, 304, 225, 235, 269, 269, 383, 270, 280, 419, 871 281, 420, 226, 282, 282, 282, 282, 227, 251, 137, 872 138, 139, 345, 160, 1006, 161, 166, 167, 168, 346, 873 1005, 304, 225, 312, 313, 423, 314, 424, 166, 167, 874 168, 226, 166, 167, 168, 1004, 227, 344, 251, 123, 875 876 140, 140, 141, 140, 142, 143, 140, 140, 140, 144, 877 140, 140, 140, 140, 140, 140, 140, 145, 140, 140, 878 140, 140, 140, 140, 140, 140, 140, 146, 146, 146, 879 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 880 146, 146, 146, 146, 147, 146, 146, 146, 146, 146, 881 146, 148, 149, 140, 150, 140, 146, 146, 146, 146, 882 146, 146, 146, 146, 146, 146, 146, 146, 146, 146, 883 146, 146, 146, 147, 146, 146, 146, 146, 146, 146, 884 148, 151, 140, 152, 170, 171, 213, 172, 214, 170, 885 171, 173, 172, 332, 219, 219, 173, 157, 224, 158, 886 887 174, 220, 220, 349, 449, 174, 450, 236, 428, 429, 888 157, 225, 158, 355, 221, 221, 319, 319, 319, 319, 889 236, 226, 356, 332, 222, 222, 227, 175, 388, 223, 890 223, 1003, 175, 349, 176, 177, 215, 178, 216, 176, 891 177, 225, 178, 355, 221, 221, 335, 160, 336, 161, 892 226, 1002, 356, 222, 222, 227, 175, 388, 223, 223, 893 160, 175, 161, 176, 335, 217, 336, 218, 176, 179, 894 180, 181, 179, 182, 183, 179, 179, 179, 179, 179, 895 179, 179, 179, 179, 179, 179, 179, 179, 184, 185, 896 179, 179, 179, 186, 179, 179, 187, 188, 189, 190, 897 898 191, 192, 193, 194, 195, 193, 193, 196, 197, 198, 899 199, 200, 193, 201, 202, 203, 204, 205, 206, 193, 900 207, 179, 179, 179, 179, 179, 187, 188, 189, 190, 901 191, 192, 193, 194, 195, 193, 193, 196, 197, 198, 902 199, 200, 201, 202, 203, 204, 205, 206, 193, 207, 903 179, 179, 179, 213, 726, 214, 163, 362, 241, 264, 904 265, 360, 266, 242, 278, 278, 267, 284, 285, 361, 905 286, 363, 278, 278, 287, 433, 433, 278, 278, 1001, 906 278, 278, 475, 288, 358, 364, 369, 427, 370, 289, 907 359, 360, 365, 382, 371, 345, 279, 367, 372, 361, 908 909 1000, 363, 346, 215, 279, 216, 166, 167, 168, 279, 910 963, 475, 279, 366, 358, 364, 369, 368, 370, 359, 911 376, 290, 365, 382, 371, 279, 962, 367, 372, 384, 912 377, 385, 217, 279, 218, 253, 243, 244, 279, 245, 913 268, 279, 366, 250, 386, 373, 368, 478, 268, 374, 914 376, 387, 405, 379, 254, 416, 255, 426, 255, 384, 915 377, 385, 961, 380, 255, 960, 381, 255, 256, 257, 916 959, 255, 258, 259, 386, 373, 478, 260, 958, 374, 917 251, 387, 405, 379, 254, 416, 255, 426, 255, 391, 918 391, 391, 391, 380, 255, 381, 957, 255, 256, 257, 919 920 255, 258, 259, 956, 247, 248, 260, 249, 261, 955, 921 251, 408, 409, 954, 410, 408, 409, 953, 410, 408, 922 409, 480, 410, 408, 409, 430, 410, 443, 411, 411, 923 411, 411, 411, 411, 411, 411, 411, 411, 411, 411, 924 411, 411, 411, 411, 264, 265, 446, 266, 431, 431, 925 480, 267, 447, 952, 412, 428, 429, 443, 312, 313, 926 413, 314, 464, 414, 951, 284, 285, 950, 286, 465, 927 469, 470, 287, 471, 472, 473, 446, 949, 483, 484, 928 432, 288, 447, 412, 485, 476, 486, 289, 490, 474, 929 413, 487, 464, 414, 319, 319, 319, 319, 491, 465, 930 931 469, 470, 477, 471, 472, 473, 481, 483, 484, 432, 932 482, 492, 499, 485, 493, 476, 486, 490, 474, 290, 933 419, 487, 420, 948, 419, 268, 420, 423, 491, 424, 934 947, 477, 391, 391, 391, 391, 481, 423, 946, 424, 935 482, 492, 499, 493, 494, 495, 268, 451, 452, 453, 936 454, 455, 455, 456, 455, 455, 455, 455, 457, 455, 937 455, 455, 458, 455, 455, 459, 455, 460, 455, 455, 938 461, 455, 488, 494, 495, 462, 489, 451, 452, 453, 939 454, 455, 455, 456, 455, 455, 455, 455, 457, 455, 940 455, 455, 458, 455, 459, 455, 460, 455, 455, 461, 941 942 455, 496, 488, 497, 503, 489, 500, 504, 505, 506, 943 501, 945, 508, 498, 509, 502, 507, 944, 520, 428, 944 429, 527, 528, 277, 277, 449, 529, 450, 428, 429, 945 496, 531, 533, 497, 503, 943, 500, 504, 505, 506, 946 501, 508, 498, 509, 631, 502, 507, 510, 520, 511, 947 527, 528, 512, 513, 522, 523, 529, 524, 514, 515, 948 534, 531, 533, 942, 516, 517, 941, 526, 409, 518, 949 410, 525, 525, 525, 525, 543, 519, 510, 544, 511, 950 535, 535, 512, 513, 411, 411, 411, 411, 514, 515, 951 428, 429, 545, 516, 517, 539, 539, 546, 518, 542, 952 953 542, 542, 542, 569, 449, 543, 450, 570, 544, 571, 954 572, 624, 536, 625, 936, 573, 427, 523, 935, 625, 955 526, 409, 545, 410, 632, 885, 624, 546, 625, 428, 956 429, 626, 523, 569, 524, 722, 723, 570, 724, 571, 957 572, 536, 427, 427, 573, 427, 427, 427, 427, 427, 958 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 959 427, 427, 427, 427, 427, 427, 427, 427, 427, 537, 960 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, 961 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, 962 537, 537, 537, 537, 428, 429, 884, 538, 427, 537, 963 964 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, 965 537, 537, 537, 537, 537, 537, 537, 537, 537, 537, 966 537, 537, 537, 427, 427, 427, 540, 540, 540, 540, 967 547, 547, 547, 547, 547, 540, 540, 540, 540, 540, 968 540, 547, 547, 547, 574, 547, 548, 549, 575, 547, 969 550, 576, 553, 558, 551, 883, 552, 577, 578, 579, 970 428, 429, 556, 557, 580, 540, 540, 540, 540, 540, 971 540, 554, 581, 574, 555, 583, 548, 549, 575, 582, 972 550, 576, 553, 558, 551, 552, 586, 577, 578, 579, 973 584, 587, 556, 557, 580, 882, 585, 588, 589, 881, 974 975 554, 591, 581, 555, 1113, 583, 592, 593, 582, 559, 976 560, 561, 562, 594, 595, 563, 586, 596, 597, 584, 977 564, 587, 598, 599, 565, 585, 588, 566, 589, 567, 978 600, 591, 568, 601, 602, 603, 592, 593, 606, 559, 979 560, 561, 562, 594, 595, 563, 607, 596, 597, 604, 980 564, 608, 598, 599, 565, 605, 566, 609, 567, 610, 981 600, 568, 611, 601, 602, 603, 612, 614, 606, 613, 982 615, 616, 617, 618, 620, 607, 619, 621, 622, 604, 983 608, 623, 428, 429, 274, 605, 644, 609, 627, 610, 984 628, 629, 611, 633, 641, 642, 612, 614, 613, 880, 985 986 615, 616, 617, 618, 620, 619, 621, 622, 631, 522, 987 523, 623, 524, 626, 523, 644, 524, 801, 627, 802, 988 628, 629, 879, 633, 641, 642, 525, 525, 525, 525, 989 525, 525, 525, 525, 427, 427, 878, 427, 427, 427, 990 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 991 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 992 427, 634, 634, 634, 634, 634, 634, 634, 634, 634, 993 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 994 634, 634, 634, 634, 634, 634, 428, 429, 632, 635, 995 427, 634, 634, 634, 634, 634, 634, 634, 634, 634, 996 997 634, 634, 634, 634, 634, 634, 634, 634, 634, 634, 998 634, 634, 634, 634, 634, 427, 427, 427, 636, 636, 999 643, 547, 547, 877, 639, 639, 547, 547, 547, 547, 1000 547, 648, 651, 547, 876, 547, 547, 428, 429, 646, 1001 650, 647, 547, 653, 428, 429, 649, 655, 656, 657, 1002 643, 658, 428, 429, 637, 637, 637, 637, 428, 429, 1003 652, 648, 651, 637, 637, 637, 637, 637, 637, 646, 1004 650, 647, 547, 653, 547, 649, 547, 655, 656, 657, 1005 801, 658, 802, 547, 669, 547, 547, 661, 547, 652, 1006 654, 671, 659, 637, 637, 637, 637, 637, 637, 640, 1007 1008 640, 640, 640, 660, 547, 662, 666, 663, 640, 640, 1009 640, 640, 640, 640, 669, 547, 547, 661, 670, 672, 1010 654, 671, 659, 673, 668, 875, 664, 674, 675, 665, 1011 676, 677, 678, 660, 662, 667, 666, 663, 640, 640, 1012 640, 640, 640, 640, 682, 684, 679, 670, 672, 683, 1013 685, 874, 686, 673, 668, 664, 674, 675, 665, 676, 1014 687, 677, 678, 680, 688, 667, 690, 691, 695, 681, 1015 872, 693, 694, 696, 682, 684, 697, 698, 683, 699, 1016 685, 686, 700, 701, 869, 702, 703, 704, 705, 687, 1017 706, 707, 709, 680, 688, 690, 708, 691, 695, 681, 1018 1019 693, 694, 696, 710, 711, 713, 697, 698, 712, 699, 1020 714, 700, 716, 701, 702, 703, 715, 704, 705, 717, 1021 706, 707, 709, 719, 720, 708, 721, 727, 727, 729, 1022 547, 731, 710, 547, 711, 713, 547, 712, 732, 852, 1023 714, 757, 716, 547, 547, 715, 841, 547, 734, 717, 1024 738, 547, 719, 739, 720, 721, 737, 547, 733, 729, 1025 731, 428, 429, 728, 728, 728, 728, 547, 732, 735, 1026 757, 748, 728, 728, 728, 728, 728, 728, 734, 736, 1027 738, 547, 547, 739, 547, 740, 737, 733, 741, 742, 1028 547, 547, 547, 743, 428, 429, 547, 747, 547, 735, 1029 1030 748, 744, 728, 728, 728, 728, 728, 728, 736, 745, 1031 547, 746, 547, 547, 753, 740, 547, 750, 741, 742, 1032 547, 749, 758, 743, 547, 751, 752, 747, 759, 754, 1033 760, 744, 761, 756, 762, 764, 755, 832, 766, 745, 1034 767, 746, 768, 771, 753, 765, 770, 750, 772, 773, 1035 775, 749, 758, 776, 751, 777, 752, 759, 779, 754, 1036 760, 761, 780, 756, 762, 764, 755, 766, 781, 782, 1037 767, 783, 768, 771, 765, 770, 784, 785, 772, 773, 1038 775, 786, 776, 787, 789, 777, 788, 779, 791, 792, 1039 793, 780, 795, 796, 547, 797, 798, 781, 799, 782, 1040 1041 783, 803, 804, 722, 723, 784, 724, 785, 807, 547, 1042 786, 808, 547, 787, 789, 788, 547, 809, 791, 792, 1043 793, 547, 795, 796, 797, 811, 798, 547, 799, 547, 1044 547, 803, 804, 428, 429, 427, 810, 547, 547, 547, 1045 812, 808, 813, 547, 547, 547, 547, 809, 547, 814, 1046 806, 547, 547, 815, 817, 811, 819, 547, 821, 547, 1047 818, 816, 822, 805, 820, 824, 810, 547, 826, 812, 1048 823, 825, 813, 547, 828, 827, 547, 833, 814, 835, 1049 829, 836, 815, 547, 817, 830, 819, 834, 821, 818, 1050 816, 837, 822, 820, 831, 824, 838, 839, 826, 823, 1051 1052 840, 825, 842, 843, 828, 827, 844, 833, 845, 835, 1053 829, 836, 846, 847, 849, 830, 848, 834, 850, 723, 1054 851, 837, 853, 854, 831, 838, 839, 855, 862, 840, 1055 863, 870, 842, 843, 718, 871, 844, 801, 845, 802, 1056 873, 794, 846, 847, 849, 848, 856, 857, 850, 851, 1057 547, 858, 853, 854, 859, 547, 855, 860, 862, 790, 1058 863, 870, 861, 864, 865, 871, 547, 887, 866, 873, 1059 547, 867, 547, 547, 868, 888, 856, 857, 547, 886, 1060 547, 858, 890, 547, 859, 547, 547, 860, 889, 547, 1061 892, 861, 899, 864, 865, 900, 891, 887, 866, 898, 1062 1063 901, 867, 893, 902, 868, 888, 547, 894, 886, 895, 1064 904, 897, 890, 903, 906, 896, 778, 905, 889, 907, 1065 892, 908, 899, 909, 900, 891, 910, 911, 912, 898, 1066 901, 893, 902, 913, 914, 916, 894, 917, 895, 904, 1067 897, 918, 774, 903, 906, 896, 905, 923, 907, 928, 1068 915, 908, 909, 924, 925, 919, 910, 911, 912, 920, 1069 926, 927, 921, 913, 914, 916, 917, 929, 769, 933, 1070 934, 918, 922, 937, 930, 763, 923, 931, 928, 915, 1071 939, 547, 940, 924, 925, 919, 969, 932, 965, 920, 1072 926, 927, 921, 966, 967, 968, 970, 929, 933, 934, 1073 1074 971, 922, 937, 972, 930, 964, 973, 931, 974, 975, 1075 976, 730, 977, 978, 979, 969, 932, 980, 965, 981, 1076 982, 983, 984, 966, 967, 968, 970, 985, 427, 986, 1077 971, 987, 988, 972, 964, 989, 973, 974, 990, 975, 1078 976, 977, 991, 978, 979, 992, 993, 980, 981, 994, 1079 982, 983, 984, 995, 996, 999, 997, 985, 986, 939, 1080 987, 940, 988, 1013, 939, 989, 940, 990, 1014, 1015, 1081 1016, 1017, 991, 998, 1018, 992, 993, 1019, 994, 1020, 1082 1021, 1022, 995, 996, 999, 1023, 997, 1024, 1025, 725, 1083 1026, 1027, 1013, 1028, 1029, 1030, 1031, 1032, 1014, 1015, 1084 1085 1016, 1017, 998, 1033, 1018, 1034, 1035, 1019, 1020, 1021, 1086 1036, 1022, 1037, 1038, 1023, 1039, 1044, 1024, 1025, 1026, 1087 1027, 1040, 1028, 1043, 1029, 1030, 1031, 1032, 1048, 1041, 1088 1046, 1047, 1033, 1042, 1034, 1035, 1049, 1050, 1051, 1052, 1089 1036, 1053, 1037, 1038, 1054, 1039, 1044, 1055, 1056, 1057, 1090 1040, 1058, 1043, 1059, 1060, 1061, 1062, 1048, 1041, 1063, 1091 1046, 1047, 1042, 1064, 1065, 1049, 1050, 1066, 1051, 1052, 1092 1053, 1067, 1068, 1054, 1069, 1070, 1071, 1055, 1056, 1057, 1093 1072, 1058, 1073, 1059, 1060, 1061, 1062, 1074, 1075, 1063, 1094 1076, 1077, 1064, 1078, 1065, 1079, 1080, 1066, 1081, 1082, 1095 1096 1067, 1068, 1083, 1069, 1070, 1084, 1071, 1085, 1086, 1087, 1097 1072, 1088, 1073, 1089, 1090, 718, 1091, 1074, 1075, 1076, 1098 1092, 1077, 1093, 1078, 1094, 1079, 1080, 1081, 1095, 1082, 1099 1096, 1097, 1083, 1098, 1099, 1084, 1100, 1085, 1086, 1087, 1100 1088, 1101, 1089, 1102, 1090, 1091, 1103, 1104, 1105, 1106, 1101 1092, 1107, 1093, 1094, 1108, 692, 1109, 1110, 1095, 1111, 1102 1096, 1097, 1112, 1098, 1099, 1100, 375, 375, 689, 434, 1103 1101, 434, 541, 1102, 541, 1103, 1104, 1105, 645, 1106, 1104 427, 1107, 415, 415, 1108, 1109, 1110, 415, 590, 1111, 1105 344, 343, 1112, 68, 68, 68, 68, 68, 68, 68, 1106 1107 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 1108 68, 68, 68, 68, 88, 88, 88, 88, 88, 88, 1109 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 1110 88, 88, 88, 88, 88, 91, 91, 91, 91, 91, 1111 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 1112 91, 91, 91, 91, 91, 91, 94, 94, 94, 94, 1113 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 1114 94, 94, 94, 94, 94, 94, 94, 97, 97, 97, 1115 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 1116 97, 97, 97, 97, 97, 97, 97, 97, 106, 106, 1117 1118 106, 106, 106, 106, 106, 106, 106, 106, 106, 106, 1119 106, 106, 106, 106, 106, 106, 106, 106, 106, 56, 1120 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 1121 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 1122 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 1123 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 1124 118, 124, 124, 124, 124, 124, 124, 124, 124, 124, 1125 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, 1126 124, 124, 129, 129, 129, 129, 129, 129, 129, 129, 1127 129, 129, 129, 129, 129, 129, 129, 129, 129, 129, 1128 1129 129, 129, 129, 133, 133, 133, 133, 133, 133, 133, 1130 133, 133, 133, 133, 133, 133, 133, 133, 133, 133, 1131 133, 133, 133, 133, 153, 153, 153, 153, 153, 153, 1132 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 1133 153, 153, 153, 153, 153, 156, 156, 156, 156, 156, 1134 156, 156, 156, 156, 156, 156, 156, 156, 156, 156, 1135 156, 156, 156, 156, 156, 156, 162, 162, 162, 162, 1136 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 1137 162, 162, 162, 162, 162, 162, 162, 169, 169, 169, 1138 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 1139 1140 169, 169, 169, 169, 169, 169, 169, 169, 208, 208, 1141 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 1142 208, 208, 208, 208, 208, 208, 208, 208, 208, 212, 1143 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 1144 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 1145 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 1146 228, 228, 228, 228, 228, 228, 228, 228, 228, 228, 1147 228, 232, 232, 232, 232, 232, 232, 232, 232, 232, 1148 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 1149 232, 232, 237, 237, 237, 237, 237, 237, 237, 237, 1150 1151 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, 1152 237, 237, 237, 240, 240, 240, 240, 240, 240, 240, 1153 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 1154 240, 240, 240, 240, 246, 547, 246, 438, 246, 246, 1155 455, 455, 455, 246, 252, 252, 252, 252, 252, 252, 1156 252, 252, 252, 252, 252, 252, 252, 252, 252, 252, 1157 252, 252, 252, 252, 263, 409, 263, 390, 263, 263, 1158 417, 417, 479, 263, 274, 417, 274, 274, 274, 274, 1159 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 1160 274, 274, 274, 274, 274, 277, 354, 277, 277, 277, 1161 1162 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 1163 277, 277, 277, 277, 277, 277, 283, 283, 351, 283, 1164 348, 283, 283, 467, 466, 463, 283, 295, 315, 295, 1165 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 1166 295, 295, 295, 295, 295, 295, 295, 295, 299, 299, 1167 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 1168 299, 299, 299, 313, 299, 315, 299, 299, 299, 302, 1169 310, 302, 302, 296, 302, 302, 302, 302, 302, 302, 1170 302, 302, 302, 302, 441, 302, 440, 302, 302, 302, 1171 309, 439, 285, 309, 309, 309, 309, 309, 309, 309, 1172 1173 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 1174 309, 317, 438, 317, 436, 317, 317, 435, 425, 269, 1175 317, 322, 421, 322, 322, 322, 322, 322, 322, 322, 1176 322, 322, 322, 322, 322, 322, 322, 322, 322, 322, 1177 322, 322, 325, 265, 325, 325, 325, 325, 325, 325, 1178 325, 325, 325, 325, 325, 325, 325, 325, 325, 248, 1179 325, 325, 325, 326, 244, 326, 341, 326, 403, 326, 1180 326, 326, 326, 402, 326, 326, 400, 399, 398, 326, 1181 328, 397, 328, 328, 328, 395, 328, 328, 328, 328, 1182 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 1183 1184 328, 331, 394, 331, 393, 331, 331, 390, 354, 352, 1185 331, 334, 334, 334, 334, 334, 334, 334, 334, 334, 1186 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 1187 334, 334, 337, 351, 337, 337, 337, 337, 337, 307, 1188 337, 337, 337, 337, 337, 337, 337, 306, 337, 330, 1189 337, 337, 337, 340, 348, 340, 347, 340, 340, 340, 1190 340, 340, 340, 340, 340, 340, 340, 340, 307, 306, 1191 341, 340, 340, 340, 342, 342, 342, 342, 342, 342, 1192 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 1193 342, 342, 342, 342, 342, 353, 307, 353, 353, 353, 1194 1195 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 1196 353, 353, 353, 353, 353, 353, 357, 357, 306, 339, 1197 338, 357, 357, 389, 307, 389, 389, 389, 389, 389, 1198 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 1199 389, 389, 389, 389, 392, 306, 330, 392, 392, 392, 1200 392, 392, 392, 392, 392, 392, 392, 392, 392, 329, 1201 392, 327, 392, 396, 321, 396, 396, 396, 396, 324, 1202 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 1203 396, 396, 396, 396, 401, 401, 401, 401, 401, 401, 1204 401, 401, 401, 401, 401, 401, 401, 401, 401, 321, 1205 1206 401, 320, 401, 401, 401, 404, 318, 404, 404, 404, 1207 316, 404, 404, 404, 404, 404, 404, 404, 404, 404, 1208 313, 315, 311, 404, 404, 404, 246, 310, 246, 308, 1209 246, 246, 307, 306, 303, 246, 406, 301, 406, 406, 1210 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 1211 406, 406, 406, 406, 406, 406, 406, 407, 300, 407, 1212 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 1213 407, 407, 407, 407, 407, 407, 407, 407, 418, 418, 1214 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 1215 418, 418, 418, 418, 418, 418, 418, 418, 418, 263, 1216 1217 296, 263, 294, 263, 263, 293, 285, 273, 263, 422, 1218 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 1219 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 1220 427, 272, 427, 427, 427, 427, 427, 427, 427, 427, 1221 427, 427, 427, 427, 427, 427, 427, 271, 427, 427, 1222 427, 274, 265, 274, 274, 274, 274, 274, 274, 274, 1223 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 1224 274, 274, 437, 262, 437, 248, 437, 437, 244, 1113, 1225 117, 437, 117, 437, 442, 1113, 442, 442, 442, 442, 1226 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 1227 1228 442, 442, 442, 442, 442, 295, 1113, 295, 295, 295, 1229 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 1230 295, 295, 295, 295, 295, 295, 444, 1113, 444, 444, 1231 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 1232 444, 444, 444, 444, 444, 444, 444, 445, 1113, 445, 1233 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 1234 445, 445, 445, 445, 445, 445, 445, 445, 299, 299, 1235 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 1236 299, 299, 299, 1113, 299, 1113, 299, 299, 299, 302, 1237 1113, 302, 302, 1113, 302, 302, 302, 302, 302, 302, 1238 1239 302, 302, 302, 302, 1113, 302, 1113, 302, 302, 302, 1240 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1241 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1242 448, 309, 1113, 1113, 309, 309, 309, 309, 309, 309, 1243 309, 309, 309, 309, 309, 309, 309, 309, 309, 309, 1244 309, 309, 317, 1113, 317, 1113, 317, 317, 1113, 1113, 1245 1113, 317, 326, 1113, 326, 1113, 326, 1113, 326, 326, 1246 326, 326, 1113, 326, 326, 1113, 1113, 1113, 326, 328, 1247 1113, 328, 328, 328, 328, 328, 328, 328, 328, 328, 1248 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 1249 1250 331, 1113, 331, 1113, 331, 331, 1113, 1113, 1113, 331, 1251 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 1252 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 1253 334, 337, 1113, 337, 337, 337, 337, 337, 1113, 337, 1254 337, 337, 337, 337, 337, 337, 1113, 337, 1113, 337, 1255 337, 337, 340, 1113, 340, 1113, 340, 340, 340, 340, 1256 340, 340, 340, 340, 340, 340, 340, 1113, 1113, 1113, 1257 340, 340, 340, 468, 1113, 468, 468, 468, 468, 468, 1258 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 1259 468, 468, 468, 468, 353, 1113, 353, 353, 353, 353, 1260 1261 353, 353, 353, 353, 353, 353, 353, 353, 353, 353, 1262 353, 353, 353, 353, 353, 357, 357, 1113, 1113, 1113, 1263 357, 357, 389, 1113, 389, 389, 389, 389, 389, 389, 1264 389, 389, 389, 389, 389, 389, 389, 389, 389, 389, 1265 389, 389, 389, 392, 1113, 1113, 392, 392, 392, 392, 1266 392, 392, 392, 392, 392, 392, 392, 392, 1113, 392, 1267 1113, 392, 396, 1113, 396, 396, 396, 396, 1113, 396, 1268 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 1269 396, 396, 396, 401, 401, 401, 401, 401, 401, 401, 1270 401, 401, 401, 401, 401, 401, 401, 401, 1113, 401, 1271 1272 1113, 401, 401, 401, 404, 1113, 404, 404, 404, 1113, 1273 404, 404, 404, 404, 404, 404, 404, 404, 404, 1113, 1274 1113, 1113, 404, 404, 404, 406, 1113, 406, 406, 406, 1275 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 1276 406, 406, 406, 406, 406, 406, 407, 1113, 407, 407, 1277 407, 407, 407, 407, 407, 407, 407, 407, 407, 407, 1278 407, 407, 407, 407, 407, 407, 407, 521, 521, 521, 1279 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 1280 521, 521, 521, 521, 521, 521, 521, 521, 530, 1113, 1281 530, 1113, 530, 530, 1113, 1113, 1113, 530, 532, 1113, 1282 1283 532, 1113, 532, 532, 1113, 1113, 1113, 532, 418, 418, 1284 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 1285 418, 418, 418, 418, 418, 418, 418, 418, 418, 422, 1286 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 1287 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 1288 427, 1113, 427, 427, 427, 427, 427, 427, 427, 427, 1289 427, 427, 427, 427, 427, 427, 427, 1113, 427, 427, 1290 427, 437, 1113, 437, 1113, 437, 437, 1113, 1113, 1113, 1291 437, 1113, 437, 442, 1113, 442, 442, 442, 442, 442, 1292 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 1293 1294 442, 442, 442, 442, 444, 1113, 444, 444, 444, 444, 1295 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 1296 444, 444, 444, 444, 444, 445, 1113, 445, 445, 445, 1297 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 1298 445, 445, 445, 445, 445, 445, 302, 1113, 302, 302, 1299 1113, 302, 302, 302, 302, 302, 302, 302, 302, 302, 1300 302, 1113, 302, 1113, 302, 302, 302, 448, 448, 448, 1301 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 1302 448, 448, 448, 448, 448, 448, 448, 448, 331, 1113, 1303 331, 1113, 331, 331, 1113, 1113, 1113, 331, 342, 1113, 1304 1305 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 1306 342, 342, 342, 342, 342, 342, 342, 342, 342, 468, 1307 1113, 468, 468, 468, 468, 468, 468, 468, 468, 468, 1308 468, 468, 468, 468, 468, 468, 468, 468, 468, 468, 1309 357, 357, 1113, 1113, 1113, 357, 357, 630, 1113, 630, 1310 630, 630, 630, 630, 630, 630, 630, 630, 630, 630, 1311 630, 630, 630, 630, 630, 630, 630, 630, 800, 800, 1312 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 1313 800, 800, 800, 800, 800, 800, 800, 800, 800, 938, 1314 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 1315 1316 938, 938, 938, 938, 938, 938, 938, 938, 938, 938, 1317 55, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1318 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1319 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1320 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1321 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1322 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1323 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1324 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1325 1113, 1113, 1113, 1113, 1113 1326 1327 } ; 1328 1329 static const flex_int16_t yy_chk[4596] = 1330 { 0, 1331 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1332 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1333 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1334 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1335 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1336 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1337 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1338 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1339 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1340 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1341 1342 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1343 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1344 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1345 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1346 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1347 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1348 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 1349 102, 3, 3, 5, 3, 5, 1012, 3, 3, 3, 1350 3, 79, 79, 3, 3, 6, 6, 7, 6, 7, 1351 3, 21, 6, 3, 8, 132, 8, 11, 11, 102, 1352 1353 11, 12, 12, 964, 12, 19, 85, 19, 19, 27, 1354 28, 27, 28, 17, 20, 17, 20, 20, 148, 3, 1355 3, 51, 9, 51, 9, 17, 537, 22, 9, 17, 1356 17, 17, 17, 10, 132, 10, 29, 963, 29, 10, 1357 176, 21, 21, 47, 21, 47, 29, 148, 3, 3, 1358 3, 4, 4, 47, 4, 4, 19, 4, 4, 537, 1359 4, 4, 4, 4, 9, 20, 4, 4, 23, 176, 1360 23, 9, 9, 4, 9, 10, 4, 22, 22, 85, 1361 22, 23, 10, 10, 962, 10, 29, 199, 29, 45, 1362 52, 45, 52, 9, 17, 93, 37, 93, 45, 37, 1363 1364 9, 961, 4, 4, 10, 4, 38, 960, 46, 38, 1365 46, 10, 37, 37, 37, 37, 199, 46, 23, 23, 1366 23, 959, 38, 38, 38, 38, 57, 57, 153, 57, 1367 153, 4, 4, 4, 13, 13, 13, 13, 13, 13, 1368 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1369 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1370 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1371 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1372 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1373 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1374 1375 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 1376 13, 13, 13, 13, 13, 13, 13, 13, 18, 24, 1377 18, 24, 155, 30, 155, 30, 31, 202, 31, 31, 1378 18, 64, 24, 30, 18, 18, 18, 18, 32, 43, 1379 32, 32, 53, 48, 53, 48, 167, 61, 61, 53, 1380 61, 101, 43, 48, 73, 73, 202, 73, 81, 261, 1381 81, 261, 43, 81, 81, 81, 81, 43, 64, 24, 1382 24, 24, 170, 30, 958, 30, 31, 31, 31, 170, 1383 957, 101, 43, 111, 111, 268, 111, 268, 32, 32, 1384 32, 43, 53, 53, 53, 956, 43, 167, 64, 18, 1385 1386 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 1387 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 1388 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 1389 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 1390 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 1391 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 1392 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 1393 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 1394 25, 25, 25, 25, 33, 33, 39, 33, 39, 34, 1395 34, 33, 34, 147, 41, 42, 34, 49, 44, 49, 1396 1397 33, 41, 42, 175, 308, 34, 308, 49, 274, 274, 1398 50, 44, 50, 184, 41, 42, 122, 122, 122, 122, 1399 50, 44, 185, 147, 41, 42, 44, 33, 207, 41, 1400 42, 955, 34, 175, 33, 33, 39, 33, 39, 34, 1401 34, 44, 34, 184, 41, 42, 334, 49, 334, 49, 1402 44, 954, 185, 41, 42, 44, 33, 207, 41, 42, 1403 50, 34, 50, 33, 336, 39, 336, 39, 34, 35, 1404 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 1405 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 1406 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 1407 1408 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 1409 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 1410 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 1411 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 1412 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 1413 35, 35, 35, 40, 634, 40, 54, 189, 54, 69, 1414 69, 188, 69, 54, 80, 80, 69, 82, 82, 188, 1415 82, 189, 128, 128, 82, 278, 278, 131, 131, 953, 1416 138, 138, 359, 82, 187, 190, 194, 634, 195, 82, 1417 187, 188, 191, 201, 196, 345, 80, 192, 196, 188, 1418 1419 952, 189, 345, 40, 128, 40, 54, 54, 54, 131, 1420 897, 359, 138, 191, 187, 190, 194, 192, 195, 187, 1421 198, 82, 191, 201, 196, 80, 896, 192, 196, 203, 1422 198, 204, 40, 128, 40, 65, 243, 243, 131, 243, 1423 69, 138, 191, 250, 205, 197, 192, 361, 82, 197, 1424 198, 206, 251, 200, 65, 259, 65, 273, 65, 203, 1425 198, 204, 895, 200, 65, 894, 200, 65, 65, 65, 1426 893, 65, 65, 65, 205, 197, 361, 65, 892, 197, 1427 250, 206, 251, 200, 65, 259, 65, 273, 65, 211, 1428 211, 211, 211, 200, 65, 200, 891, 65, 65, 65, 1429 1430 65, 65, 65, 890, 247, 247, 65, 247, 65, 889, 1431 250, 254, 254, 888, 254, 255, 255, 887, 255, 256, 1432 256, 363, 256, 257, 257, 275, 257, 293, 254, 254, 1433 254, 254, 255, 255, 255, 255, 256, 256, 256, 256, 1434 257, 257, 257, 257, 264, 264, 304, 264, 276, 276, 1435 363, 264, 305, 886, 254, 275, 275, 293, 312, 312, 1436 256, 312, 332, 257, 885, 284, 284, 884, 284, 333, 1437 349, 350, 284, 355, 356, 358, 304, 883, 365, 366, 1438 276, 284, 305, 254, 367, 360, 368, 284, 371, 358, 1439 256, 369, 332, 257, 319, 319, 319, 319, 372, 333, 1440 1441 349, 350, 360, 355, 356, 358, 364, 365, 366, 276, 1442 364, 373, 381, 367, 374, 360, 368, 371, 358, 284, 1443 418, 369, 418, 882, 420, 264, 420, 422, 372, 422, 1444 881, 360, 391, 391, 391, 391, 364, 424, 880, 424, 1445 364, 373, 381, 374, 376, 378, 284, 321, 321, 321, 1446 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 1447 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 1448 321, 321, 370, 376, 378, 321, 370, 321, 321, 321, 1449 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 1450 321, 321, 321, 321, 321, 321, 321, 321, 321, 321, 1451 1452 321, 379, 370, 380, 383, 370, 382, 383, 384, 385, 1453 382, 879, 386, 380, 387, 382, 385, 878, 405, 427, 1454 427, 412, 413, 433, 433, 448, 414, 448, 639, 639, 1455 379, 416, 426, 380, 383, 877, 382, 383, 384, 385, 1456 382, 386, 380, 387, 531, 382, 385, 388, 405, 388, 1457 412, 413, 388, 388, 408, 408, 414, 408, 388, 388, 1458 428, 416, 426, 876, 388, 388, 875, 411, 411, 388, 1459 411, 408, 408, 408, 408, 441, 388, 388, 443, 388, 1460 429, 429, 388, 388, 411, 411, 411, 411, 388, 388, 1461 428, 428, 446, 388, 388, 431, 431, 447, 388, 438, 1462 1463 438, 438, 438, 464, 450, 441, 450, 465, 443, 469, 1464 470, 521, 429, 521, 871, 471, 429, 524, 870, 524, 1465 526, 526, 446, 526, 531, 818, 625, 447, 625, 431, 1466 431, 626, 626, 464, 626, 632, 632, 465, 632, 469, 1467 470, 429, 430, 430, 471, 430, 430, 430, 430, 430, 1468 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 1469 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 1470 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 1471 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 1472 430, 430, 430, 430, 430, 430, 817, 430, 430, 430, 1473 1474 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 1475 430, 430, 430, 430, 430, 430, 430, 430, 430, 430, 1476 430, 430, 430, 430, 430, 430, 432, 432, 432, 432, 1477 451, 452, 453, 457, 456, 432, 432, 432, 432, 432, 1478 432, 454, 459, 460, 472, 461, 451, 452, 473, 458, 1479 453, 474, 457, 461, 454, 816, 456, 475, 476, 477, 1480 432, 432, 459, 460, 478, 432, 432, 432, 432, 432, 1481 432, 458, 480, 472, 458, 482, 451, 452, 473, 481, 1482 453, 474, 457, 461, 454, 456, 486, 475, 476, 477, 1483 484, 487, 459, 460, 478, 815, 485, 488, 489, 814, 1484 1485 458, 491, 480, 458, 462, 482, 492, 493, 481, 462, 1486 462, 462, 462, 494, 495, 462, 486, 496, 497, 484, 1487 462, 487, 498, 499, 462, 485, 488, 462, 489, 462, 1488 500, 491, 462, 501, 502, 503, 492, 493, 505, 462, 1489 462, 462, 462, 494, 495, 462, 506, 496, 497, 504, 1490 462, 507, 498, 499, 462, 504, 462, 508, 462, 509, 1491 500, 462, 510, 501, 502, 503, 511, 513, 505, 512, 1492 514, 515, 516, 517, 519, 506, 518, 519, 519, 504, 1493 507, 520, 638, 638, 638, 504, 546, 508, 527, 509, 1494 528, 529, 510, 533, 543, 544, 511, 513, 512, 813, 1495 1496 514, 515, 516, 517, 519, 518, 519, 519, 631, 522, 1497 522, 520, 522, 525, 525, 546, 525, 719, 527, 719, 1498 528, 529, 812, 533, 543, 544, 522, 522, 522, 522, 1499 525, 525, 525, 525, 534, 534, 811, 534, 534, 534, 1500 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 1501 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 1502 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 1503 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 1504 534, 534, 534, 534, 534, 534, 534, 534, 631, 534, 1505 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 1506 1507 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 1508 534, 534, 534, 534, 534, 534, 534, 534, 535, 535, 1509 545, 548, 550, 810, 539, 539, 549, 552, 557, 551, 1510 554, 549, 552, 553, 809, 559, 558, 640, 640, 548, 1511 551, 548, 556, 554, 727, 727, 550, 556, 557, 558, 1512 545, 559, 535, 535, 536, 536, 536, 536, 539, 539, 1513 553, 549, 552, 536, 536, 536, 536, 536, 536, 548, 1514 551, 548, 555, 554, 562, 550, 560, 556, 557, 558, 1515 800, 559, 800, 563, 569, 561, 566, 562, 564, 553, 1516 555, 571, 560, 536, 536, 536, 536, 536, 536, 540, 1517 1518 540, 540, 540, 561, 565, 563, 566, 564, 540, 540, 1519 540, 540, 540, 540, 569, 567, 568, 562, 570, 572, 1520 555, 571, 560, 575, 568, 808, 565, 576, 577, 565, 1521 578, 579, 580, 561, 563, 567, 566, 564, 540, 540, 1522 540, 540, 540, 540, 582, 584, 581, 570, 572, 583, 1523 587, 806, 588, 575, 568, 565, 576, 577, 565, 578, 1524 589, 579, 580, 581, 590, 567, 594, 595, 599, 581, 1525 799, 597, 598, 601, 582, 584, 602, 603, 583, 604, 1526 587, 588, 605, 606, 796, 607, 608, 609, 611, 589, 1527 612, 613, 615, 581, 590, 594, 614, 595, 599, 581, 1528 1529 597, 598, 601, 616, 617, 619, 602, 603, 618, 604, 1530 620, 605, 621, 606, 607, 608, 620, 609, 611, 622, 1531 612, 613, 615, 627, 628, 614, 629, 636, 636, 641, 1532 651, 643, 616, 646, 617, 619, 647, 618, 644, 784, 1533 620, 669, 621, 650, 652, 620, 770, 660, 647, 622, 1534 651, 648, 627, 652, 628, 629, 650, 649, 646, 641, 1535 643, 636, 636, 637, 637, 637, 637, 653, 644, 648, 1536 669, 660, 637, 637, 637, 637, 637, 637, 647, 649, 1537 651, 654, 655, 652, 656, 653, 650, 646, 654, 655, 1538 657, 658, 659, 656, 728, 728, 665, 659, 663, 648, 1539 1540 660, 657, 637, 637, 637, 637, 637, 637, 649, 658, 1541 661, 658, 662, 664, 665, 653, 667, 662, 654, 655, 1542 668, 661, 670, 656, 666, 663, 664, 659, 671, 666, 1543 672, 657, 674, 668, 676, 679, 667, 761, 680, 658, 1544 681, 658, 683, 687, 665, 679, 685, 662, 688, 689, 1545 691, 661, 670, 692, 663, 693, 664, 671, 695, 666, 1546 672, 674, 696, 668, 676, 679, 667, 680, 697, 699, 1547 681, 700, 683, 687, 679, 685, 701, 702, 688, 689, 1548 691, 704, 692, 705, 707, 693, 706, 695, 709, 710, 1549 711, 696, 713, 714, 733, 715, 716, 697, 717, 699, 1550 1551 700, 720, 721, 722, 722, 701, 722, 702, 730, 736, 1552 704, 733, 734, 705, 707, 706, 737, 734, 709, 710, 1553 711, 735, 713, 714, 715, 736, 716, 739, 717, 740, 1554 738, 720, 721, 726, 726, 726, 735, 741, 743, 745, 1555 737, 733, 738, 744, 747, 742, 746, 734, 748, 739, 1556 729, 750, 749, 740, 742, 736, 744, 752, 746, 751, 1557 743, 741, 747, 725, 745, 749, 735, 753, 751, 737, 1558 748, 750, 738, 754, 753, 752, 755, 763, 739, 764, 1559 754, 765, 740, 756, 742, 755, 744, 763, 746, 743, 1560 741, 766, 747, 745, 756, 749, 767, 768, 751, 748, 1561 1562 769, 750, 771, 772, 753, 752, 773, 763, 774, 764, 1563 754, 765, 775, 776, 778, 755, 777, 763, 780, 724, 1564 782, 766, 786, 787, 756, 767, 768, 788, 791, 769, 1565 793, 797, 771, 772, 718, 798, 773, 802, 774, 802, 1566 804, 712, 775, 776, 778, 777, 790, 790, 780, 782, 1567 820, 790, 786, 787, 790, 819, 788, 790, 791, 708, 1568 793, 797, 790, 794, 794, 798, 823, 820, 794, 804, 1569 821, 794, 824, 822, 794, 821, 790, 790, 825, 819, 1570 826, 790, 823, 827, 790, 828, 831, 790, 822, 830, 1571 825, 790, 832, 794, 794, 833, 824, 820, 794, 831, 1572 1573 834, 794, 826, 835, 794, 821, 829, 827, 819, 828, 1574 838, 830, 823, 836, 841, 829, 694, 840, 822, 842, 1575 825, 843, 832, 844, 833, 824, 845, 847, 849, 831, 1576 834, 826, 835, 850, 852, 856, 827, 857, 828, 838, 1577 830, 858, 690, 836, 841, 829, 840, 860, 842, 865, 1578 852, 843, 844, 861, 862, 859, 845, 847, 849, 859, 1579 863, 864, 859, 850, 852, 856, 857, 866, 684, 868, 1580 869, 858, 859, 872, 867, 678, 860, 867, 865, 852, 1581 873, 898, 873, 861, 862, 859, 903, 867, 899, 859, 1582 863, 864, 859, 900, 901, 902, 905, 866, 868, 869, 1583 1584 906, 859, 872, 907, 867, 898, 908, 867, 910, 911, 1585 912, 642, 913, 914, 915, 903, 867, 916, 899, 917, 1586 919, 920, 921, 900, 901, 902, 905, 922, 635, 923, 1587 906, 924, 926, 907, 898, 927, 908, 910, 928, 911, 1588 912, 913, 930, 914, 915, 931, 932, 916, 917, 933, 1589 919, 920, 921, 934, 935, 937, 936, 922, 923, 938, 1590 924, 938, 926, 965, 940, 927, 940, 928, 966, 967, 1591 968, 969, 930, 936, 970, 931, 932, 971, 933, 972, 1592 973, 974, 934, 935, 937, 975, 936, 976, 978, 633, 1593 979, 980, 965, 981, 982, 983, 984, 985, 966, 967, 1594 1595 968, 969, 936, 987, 970, 989, 990, 971, 972, 973, 1596 991, 974, 992, 993, 975, 995, 999, 976, 978, 979, 1597 980, 996, 981, 998, 982, 983, 984, 985, 1015, 997, 1598 1013, 1014, 987, 997, 989, 990, 1016, 1017, 1019, 1020, 1599 991, 1022, 992, 993, 1023, 995, 999, 1024, 1025, 1026, 1600 996, 1027, 998, 1028, 1030, 1034, 1035, 1015, 997, 1036, 1601 1013, 1014, 997, 1039, 1040, 1016, 1017, 1041, 1019, 1020, 1602 1022, 1042, 1043, 1023, 1044, 1046, 1047, 1024, 1025, 1026, 1603 1048, 1027, 1049, 1028, 1030, 1034, 1035, 1050, 1053, 1036, 1604 1055, 1057, 1039, 1060, 1040, 1063, 1064, 1041, 1065, 1066, 1605 1606 1042, 1043, 1067, 1044, 1046, 1068, 1047, 1069, 1070, 1072, 1607 1048, 1073, 1049, 1074, 1075, 623, 1077, 1050, 1053, 1055, 1608 1081, 1057, 1082, 1060, 1083, 1063, 1064, 1065, 1084, 1066, 1609 1086, 1087, 1067, 1088, 1089, 1068, 1090, 1069, 1070, 1072, 1610 1073, 1093, 1074, 1095, 1075, 1077, 1096, 1097, 1098, 1100, 1611 1081, 1103, 1082, 1083, 1105, 596, 1106, 1107, 1084, 1109, 1612 1086, 1087, 1110, 1088, 1089, 1090, 1157, 1157, 593, 1173, 1613 1093, 1173, 1206, 1095, 1206, 1096, 1097, 1098, 547, 1100, 1614 538, 1103, 1166, 1166, 1105, 1106, 1107, 1166, 490, 1109, 1615 467, 466, 1110, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1616 1617 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1114, 1618 1114, 1114, 1114, 1114, 1115, 1115, 1115, 1115, 1115, 1115, 1619 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1115, 1620 1115, 1115, 1115, 1115, 1115, 1116, 1116, 1116, 1116, 1116, 1621 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1622 1116, 1116, 1116, 1116, 1116, 1116, 1117, 1117, 1117, 1117, 1623 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1624 1117, 1117, 1117, 1117, 1117, 1117, 1117, 1118, 1118, 1118, 1625 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1626 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1119, 1119, 1627 1628 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1629 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1120, 1630 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1631 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1632 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1633 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1121, 1634 1121, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1635 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1122, 1636 1122, 1122, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1637 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1123, 1638 1639 1123, 1123, 1123, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1640 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1641 1124, 1124, 1124, 1124, 1125, 1125, 1125, 1125, 1125, 1125, 1642 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1643 1125, 1125, 1125, 1125, 1125, 1126, 1126, 1126, 1126, 1126, 1644 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1126, 1645 1126, 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1127, 1127, 1646 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1647 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1128, 1128, 1128, 1648 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1649 1650 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1128, 1129, 1129, 1651 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1652 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1129, 1130, 1653 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1654 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1130, 1655 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1656 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1131, 1657 1131, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1658 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1132, 1659 1132, 1132, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1660 1661 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1662 1133, 1133, 1133, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1663 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1134, 1664 1134, 1134, 1134, 1134, 1135, 455, 1135, 437, 1135, 1135, 1665 1213, 1213, 1213, 1135, 1136, 1136, 1136, 1136, 1136, 1136, 1666 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1136, 1667 1136, 1136, 1136, 1136, 1137, 410, 1137, 389, 1137, 1137, 1668 1167, 1167, 362, 1137, 1138, 1167, 1138, 1138, 1138, 1138, 1669 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1138, 1670 1138, 1138, 1138, 1138, 1138, 1139, 353, 1139, 1139, 1139, 1671 1672 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1139, 1673 1139, 1139, 1139, 1139, 1139, 1139, 1140, 1140, 351, 1140, 1674 346, 1140, 1140, 344, 343, 328, 1140, 1141, 315, 1141, 1675 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1676 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1142, 1142, 1677 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1678 1142, 1142, 1142, 314, 1142, 313, 1142, 1142, 1142, 1143, 1679 310, 1143, 1143, 296, 1143, 1143, 1143, 1143, 1143, 1143, 1680 1143, 1143, 1143, 1143, 289, 1143, 288, 1143, 1143, 1143, 1681 1144, 287, 286, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1682 1683 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1144, 1684 1144, 1145, 283, 1145, 281, 1145, 1145, 280, 271, 270, 1685 1145, 1146, 267, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1686 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1146, 1687 1146, 1146, 1147, 266, 1147, 1147, 1147, 1147, 1147, 1147, 1688 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 1147, 249, 1689 1147, 1147, 1147, 1148, 245, 1148, 241, 1148, 239, 1148, 1690 1148, 1148, 1148, 238, 1148, 1148, 236, 235, 234, 1148, 1691 1149, 230, 1149, 1149, 1149, 216, 1149, 1149, 1149, 1149, 1692 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1149, 1693 1694 1149, 1150, 215, 1150, 214, 1150, 1150, 210, 183, 182, 1695 1150, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1696 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1697 1151, 1151, 1152, 180, 1152, 1152, 1152, 1152, 1152, 178, 1698 1152, 1152, 1152, 1152, 1152, 1152, 1152, 177, 1152, 174, 1699 1152, 1152, 1152, 1153, 173, 1153, 172, 1153, 1153, 1153, 1700 1153, 1153, 1153, 1153, 1153, 1153, 1153, 1153, 168, 166, 1701 164, 1153, 1153, 1153, 1154, 1154, 1154, 1154, 1154, 1154, 1702 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1154, 1703 1154, 1154, 1154, 1154, 1154, 1155, 161, 1155, 1155, 1155, 1704 1705 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1155, 1706 1155, 1155, 1155, 1155, 1155, 1155, 1156, 1156, 160, 159, 1707 158, 1156, 1156, 1158, 150, 1158, 1158, 1158, 1158, 1158, 1708 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1158, 1709 1158, 1158, 1158, 1158, 1159, 149, 145, 1159, 1159, 1159, 1710 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 144, 1711 1159, 142, 1159, 1160, 137, 1160, 1160, 1160, 1160, 135, 1712 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1713 1160, 1160, 1160, 1160, 1161, 1161, 1161, 1161, 1161, 1161, 1714 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 130, 1715 1716 1161, 126, 1161, 1161, 1161, 1162, 120, 1162, 1162, 1162, 1717 115, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1162, 1718 113, 112, 109, 1162, 1162, 1162, 1163, 107, 1163, 105, 1719 1163, 1163, 104, 103, 99, 1163, 1164, 96, 1164, 1164, 1720 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1721 1164, 1164, 1164, 1164, 1164, 1164, 1164, 1165, 95, 1165, 1722 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1723 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1168, 1168, 1724 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1725 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1169, 1726 1727 92, 1169, 90, 1169, 1169, 86, 84, 78, 1169, 1170, 1728 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1729 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1170, 1730 1171, 77, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1171, 1731 1171, 1171, 1171, 1171, 1171, 1171, 1171, 74, 1171, 1171, 1732 1171, 1172, 71, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1733 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1172, 1734 1172, 1172, 1174, 66, 1174, 63, 1174, 1174, 59, 55, 1735 16, 1174, 15, 1174, 1175, 0, 1175, 1175, 1175, 1175, 1736 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1175, 1737 1738 1175, 1175, 1175, 1175, 1175, 1176, 0, 1176, 1176, 1176, 1739 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1176, 1740 1176, 1176, 1176, 1176, 1176, 1176, 1177, 0, 1177, 1177, 1741 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1742 1177, 1177, 1177, 1177, 1177, 1177, 1177, 1178, 0, 1178, 1743 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1744 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1178, 1179, 1179, 1745 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1179, 1746 1179, 1179, 1179, 0, 1179, 0, 1179, 1179, 1179, 1180, 1747 0, 1180, 1180, 0, 1180, 1180, 1180, 1180, 1180, 1180, 1748 1749 1180, 1180, 1180, 1180, 0, 1180, 0, 1180, 1180, 1180, 1750 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1751 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1181, 1752 1181, 1182, 0, 0, 1182, 1182, 1182, 1182, 1182, 1182, 1753 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1182, 1754 1182, 1182, 1183, 0, 1183, 0, 1183, 1183, 0, 0, 1755 0, 1183, 1184, 0, 1184, 0, 1184, 0, 1184, 1184, 1756 1184, 1184, 0, 1184, 1184, 0, 0, 0, 1184, 1185, 1757 0, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1758 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1759 1760 1186, 0, 1186, 0, 1186, 1186, 0, 0, 0, 1186, 1761 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1762 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1763 1187, 1188, 0, 1188, 1188, 1188, 1188, 1188, 0, 1188, 1764 1188, 1188, 1188, 1188, 1188, 1188, 0, 1188, 0, 1188, 1765 1188, 1188, 1189, 0, 1189, 0, 1189, 1189, 1189, 1189, 1766 1189, 1189, 1189, 1189, 1189, 1189, 1189, 0, 0, 0, 1767 1189, 1189, 1189, 1190, 0, 1190, 1190, 1190, 1190, 1190, 1768 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1769 1190, 1190, 1190, 1190, 1191, 0, 1191, 1191, 1191, 1191, 1770 1771 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1772 1191, 1191, 1191, 1191, 1191, 1192, 1192, 0, 0, 0, 1773 1192, 1192, 1193, 0, 1193, 1193, 1193, 1193, 1193, 1193, 1774 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1193, 1775 1193, 1193, 1193, 1194, 0, 0, 1194, 1194, 1194, 1194, 1776 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 0, 1194, 1777 0, 1194, 1195, 0, 1195, 1195, 1195, 1195, 0, 1195, 1778 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1195, 1779 1195, 1195, 1195, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1780 1196, 1196, 1196, 1196, 1196, 1196, 1196, 1196, 0, 1196, 1781 1782 0, 1196, 1196, 1196, 1197, 0, 1197, 1197, 1197, 0, 1783 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 0, 1784 0, 0, 1197, 1197, 1197, 1198, 0, 1198, 1198, 1198, 1785 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1198, 1786 1198, 1198, 1198, 1198, 1198, 1198, 1199, 0, 1199, 1199, 1787 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1788 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1200, 1200, 1200, 1789 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1790 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1201, 0, 1791 1201, 0, 1201, 1201, 0, 0, 0, 1201, 1202, 0, 1792 1793 1202, 0, 1202, 1202, 0, 0, 0, 1202, 1203, 1203, 1794 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1795 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1203, 1204, 1796 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1797 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1204, 1798 1205, 0, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1205, 1799 1205, 1205, 1205, 1205, 1205, 1205, 1205, 0, 1205, 1205, 1800 1205, 1207, 0, 1207, 0, 1207, 1207, 0, 0, 0, 1801 1207, 0, 1207, 1208, 0, 1208, 1208, 1208, 1208, 1208, 1802 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1803 1804 1208, 1208, 1208, 1208, 1209, 0, 1209, 1209, 1209, 1209, 1805 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1806 1209, 1209, 1209, 1209, 1209, 1210, 0, 1210, 1210, 1210, 1807 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1210, 1808 1210, 1210, 1210, 1210, 1210, 1210, 1211, 0, 1211, 1211, 1809 0, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1211, 1810 1211, 0, 1211, 0, 1211, 1211, 1211, 1212, 1212, 1212, 1811 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1812 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1214, 0, 1813 1214, 0, 1214, 1214, 0, 0, 0, 1214, 1215, 0, 1814 1815 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1816 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1215, 1216, 1817 0, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1818 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1216, 1819 1217, 1217, 0, 0, 0, 1217, 1217, 1218, 0, 1218, 1820 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1821 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1219, 1219, 1822 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1823 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1219, 1220, 1824 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1825 1826 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1220, 1827 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1828 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1829 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1830 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1831 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1832 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1833 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1834 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1113, 1835 1113, 1113, 1113, 1113, 1113 1836 1837 } ; 1838 1839 static yy_state_type yy_last_accepting_state; 1840 static char *yy_last_accepting_cpos; 1841 1842 extern int yy_flex_debug; 1843 int yy_flex_debug = 0; 1844 1845 /* The intent behind this definition is that it'll catch 1846 * any uses of REJECT which flex missed. 1847 */ 1848 #define REJECT reject_used_but_not_detected 1849 #define yymore() yymore_used_but_not_detected 1850 #define YY_MORE_ADJ 0 1851 #define YY_RESTORE_YY_MORE_OFFSET 1852 char *yytext; 1853 #line 1 "scan.l" 1854 /* scan.l - scanner for flex input -*-C-*- */ 1855 #line 4 "scan.l" 1856 /* Copyright (c) 1990 The Regents of the University of California. */ 1857 /* All rights reserved. */ 1858 1859 /* This code is derived from software contributed to Berkeley by */ 1860 /* Vern Paxson. */ 1861 1862 /* The United States Government has rights in this work pursuant */ 1863 /* to contract no. DE-AC03-76SF00098 between the United States */ 1864 /* Department of Energy and the University of California. */ 1865 1866 /* This file is part of flex. */ 1867 1868 /* Redistribution and use in source and binary forms, with or without */ 1869 /* modification, are permitted provided that the following conditions */ 1870 /* are met: */ 1871 1872 /* 1. Redistributions of source code must retain the above copyright */ 1873 /* notice, this list of conditions and the following disclaimer. */ 1874 /* 2. Redistributions in binary form must reproduce the above copyright */ 1875 /* notice, this list of conditions and the following disclaimer in the */ 1876 /* documentation and/or other materials provided with the distribution. */ 1877 1878 /* Neither the name of the University nor the names of its contributors */ 1879 /* may be used to endorse or promote products derived from this software */ 1880 /* without specific prior written permission. */ 1881 1882 /* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR */ 1883 /* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED */ 1884 /* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR */ 1885 /* PURPOSE. */ 1886 1887 #include "flexdef.h" 1888 #include "parse.h" 1889 extern bool tablesverify, tablesext; 1890 extern int trlcontxt; /* Set in parse.y for each rule. */ 1891 extern const char *escaped_qstart, *escaped_qend; 1892 extern int yylval; 1893 1894 #define M4QSTART "[""[" 1895 #define M4QEND "]""]" 1896 1897 #define ESCAPED_QSTART "[" M4QEND M4QSTART "[" M4QEND M4QSTART 1898 #define ESCAPED_QEND M4QEND "]" M4QSTART M4QEND "]" M4QSTART 1899 1900 #define ACTION_ECHO add_action( yytext ) 1901 #define ACTION_IFDEF(def, should_define) \ 1902 { \ 1903 if ( should_define ) \ 1904 action_define( def, 1 ); \ 1905 } 1906 1907 #define ACTION_ECHO_QSTART add_action (ESCAPED_QSTART) 1908 #define ACTION_ECHO_QEND add_action (ESCAPED_QEND) 1909 1910 #define ACTION_M4_IFDEF(def, should_define) \ 1911 do{ \ 1912 if ( should_define ) \ 1913 buf_m4_define( &m4defs_buf, def, NULL);\ 1914 else \ 1915 buf_m4_undefine( &m4defs_buf, def);\ 1916 } while(0) 1917 1918 #define MARK_END_OF_PROLOG mark_prolog(); 1919 1920 #define YY_DECL \ 1921 int flexscan(void) 1922 1923 #define RETURNCHAR \ 1924 yylval = (unsigned char) yytext[0]; \ 1925 return CHAR; 1926 1927 #define RETURNNAME \ 1928 if(yyleng < MAXLINE) \ 1929 { \ 1930 strncpy( nmstr, yytext, sizeof(nmstr) ); \ 1931 return NAME; \ 1932 } \ 1933 else \ 1934 do { \ 1935 synerr(_("Input line too long\n")); \ 1936 FLEX_EXIT(EXIT_FAILURE); \ 1937 } while (0) 1938 1939 #define PUT_BACK_STRING(str, start) \ 1940 { size_t i = strlen( str ); \ 1941 while ( i > start ) \ 1942 unput((str)[--i]); \ 1943 } 1944 1945 #define CHECK_REJECT(str) \ 1946 if ( all_upper( str ) ) \ 1947 reject = true; 1948 1949 #define CHECK_YYMORE(str) \ 1950 if ( all_lower( str ) ) \ 1951 yymore_used = true; 1952 1953 #define YY_USER_INIT \ 1954 if ( getenv("POSIXLY_CORRECT") ) \ 1955 posix_compat = true; 1956 1957 #define START_CODEBLOCK(x) do { \ 1958 /* Emit the needed line directive... */\ 1959 if (indented_code == false) { \ 1960 linenum++; \ 1961 line_directive_out(NULL, 1); \ 1962 } \ 1963 add_action(M4QSTART); \ 1964 yy_push_state(CODEBLOCK); \ 1965 if ((indented_code = x)) ACTION_ECHO; \ 1966 } while(0) 1967 1968 #define END_CODEBLOCK do { \ 1969 yy_pop_state();\ 1970 add_action(M4QEND); \ 1971 if (!indented_code) line_directive_out(NULL, 0);\ 1972 } while (0) 1973 1974 #line 1974 "<stdout>" 1975 1976 #line 1976 "<stdout>" 1977 1978 #define INITIAL 0 1979 #define SECT2 1 1980 #define SECT2PROLOG 2 1981 #define SECT3 3 1982 #define CODEBLOCK 4 1983 #define PICKUPDEF 5 1984 #define SC 6 1985 #define CARETISBOL 7 1986 #define NUM 8 1987 #define QUOTE 9 1988 #define FIRSTCCL 10 1989 #define CCL 11 1990 #define ACTION 12 1991 #define RECOVER 13 1992 #define COMMENT 14 1993 #define ACTION_STRING 15 1994 #define PERCENT_BRACE_ACTION 16 1995 #define OPTION 17 1996 #define LINEDIR 18 1997 #define CODEBLOCK_MATCH_BRACE 19 1998 #define GROUP_WITH_PARAMS 20 1999 #define GROUP_MINUS_PARAMS 21 2000 #define EXTENDED_COMMENT 22 2001 #define COMMENT_DISCARD 23 2002 #define CODE_COMMENT 24 2003 #define SECT3_NOESCAPE 25 2004 #define CHARACTER_CONSTANT 26 2005 2006 #ifndef YY_NO_UNISTD_H 2007 /* Special case for "unistd.h", since it is non-ANSI. We include it way 2008 * down here because we want the user's section 1 to have been scanned first. 2009 * The user has a chance to override it with an option. 2010 */ 2011 #include <unistd.h> 2012 #endif 2013 2014 #ifndef YY_EXTRA_TYPE 2015 #define YY_EXTRA_TYPE void * 2016 #endif 2017 2018 static int yy_init_globals ( void ); 2019 2020 /* Accessor methods to globals. 2021 These are made visible to non-reentrant scanners for convenience. */ 2022 2023 int yylex_destroy ( void ); 2024 2025 int yyget_debug ( void ); 2026 2027 void yyset_debug ( int debug_flag ); 2028 2029 YY_EXTRA_TYPE yyget_extra ( void ); 2030 2031 void yyset_extra ( YY_EXTRA_TYPE user_defined ); 2032 2033 FILE *yyget_in ( void ); 2034 2035 void yyset_in ( FILE * _in_str ); 2036 2037 FILE *yyget_out ( void ); 2038 2039 void yyset_out ( FILE * _out_str ); 2040 2041 int yyget_leng ( void ); 2042 2043 char *yyget_text ( void ); 2044 2045 int yyget_lineno ( void ); 2046 2047 void yyset_lineno ( int _line_number ); 2048 2049 /* Macros after this point can all be overridden by user definitions in 2050 * section 1. 2051 */ 2052 2053 #ifndef YY_SKIP_YYWRAP 2054 #ifdef __cplusplus 2055 extern "C" int yywrap ( void ); 2056 #else 2057 extern int yywrap ( void ); 2058 #endif 2059 #endif 2060 2061 #ifndef YY_NO_UNPUT 2062 2063 static void yyunput ( int c, char *buf_ptr ); 2064 2065 #endif 2066 2067 #ifndef yytext_ptr 2068 static void yy_flex_strncpy ( char *, const char *, int ); 2069 #endif 2070 2071 #ifdef YY_NEED_STRLEN 2072 static int yy_flex_strlen ( const char * ); 2073 #endif 2074 2075 #ifndef YY_NO_INPUT 2076 #ifdef __cplusplus 2077 static int yyinput ( void ); 2078 #else 2079 static int input ( void ); 2080 #endif 2081 2082 #endif 2083 2084 static int yy_start_stack_ptr = 0; 2085 static int yy_start_stack_depth = 0; 2086 static int *yy_start_stack = NULL; 2087 2088 static void yy_push_state ( int _new_state ); 2089 2090 static void yy_pop_state ( void ); 2091 2092 /* Amount of stuff to slurp up with each read. */ 2093 #ifndef YY_READ_BUF_SIZE 2094 #ifdef __ia64__ 2095 /* On IA-64, the buffer size is 16k, not 8k */ 2096 #define YY_READ_BUF_SIZE 16384 2097 #else 2098 #define YY_READ_BUF_SIZE 8192 2099 #endif /* __ia64__ */ 2100 #endif 2101 2102 /* Copy whatever the last rule matched to the standard output. */ 2103 #ifndef ECHO 2104 /* This used to be an fputs(), but since the string might contain NUL's, 2105 * we now use fwrite(). 2106 */ 2107 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) 2108 #endif 2109 2110 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, 2111 * is returned in "result". 2112 */ 2113 #ifndef YY_INPUT 2114 #define YY_INPUT(buf,result,max_size) \ 2115 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ 2116 { \ 2117 int c = '*'; \ 2118 int n; \ 2119 for ( n = 0; n < max_size && \ 2120 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ 2121 buf[n] = (char) c; \ 2122 if ( c == '\n' ) \ 2123 buf[n++] = (char) c; \ 2124 if ( c == EOF && ferror( yyin ) ) \ 2125 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 2126 result = n; \ 2127 } \ 2128 else \ 2129 { \ 2130 errno=0; \ 2131 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ 2132 { \ 2133 if( errno != EINTR) \ 2134 { \ 2135 YY_FATAL_ERROR( "input in flex scanner failed" ); \ 2136 break; \ 2137 } \ 2138 errno=0; \ 2139 clearerr(yyin); \ 2140 } \ 2141 }\ 2142 \ 2143 2144 #endif 2145 2146 /* No semi-colon after return; correct usage is to write "yyterminate();" - 2147 * we don't want an extra ';' after the "return" because that will cause 2148 * some compilers to complain about unreachable statements. 2149 */ 2150 #ifndef yyterminate 2151 #define yyterminate() return YY_NULL 2152 #endif 2153 2154 /* Number of entries by which start-condition stack grows. */ 2155 #ifndef YY_START_STACK_INCR 2156 #define YY_START_STACK_INCR 25 2157 #endif 2158 2159 /* Report a fatal error. */ 2160 #ifndef YY_FATAL_ERROR 2161 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) 2162 #endif 2163 2164 /* end tables serialization structures and prototypes */ 2165 2166 /* Default declaration of generated scanner - a define so the user can 2167 * easily add parameters. 2168 */ 2169 #ifndef YY_DECL 2170 #define YY_DECL_IS_OURS 1 2171 2172 extern int yylex (void); 2173 2174 #define YY_DECL int yylex (void) 2175 #endif /* !YY_DECL */ 2176 2177 /* Code executed at the beginning of each rule, after yytext and yyleng 2178 * have been set up. 2179 */ 2180 #ifndef YY_USER_ACTION 2181 #define YY_USER_ACTION 2182 #endif 2183 2184 /* Code executed at the end of each rule. */ 2185 #ifndef YY_BREAK 2186 #define YY_BREAK /*LINTED*/break; 2187 #endif 2188 2189 #define YY_RULE_SETUP \ 2190 if ( yyleng > 0 ) \ 2191 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ 2192 (yytext[yyleng - 1] == '\n'); \ 2193 YY_USER_ACTION 2194 2195 /** The main scanner function which does all the work. 2196 */ 2197 YY_DECL 2198 { 2199 yy_state_type yy_current_state; 2200 char *yy_cp, *yy_bp; 2201 int yy_act; 2202 2203 if ( !(yy_init) ) 2204 { 2205 (yy_init) = 1; 2206 2207 #ifdef YY_USER_INIT 2208 YY_USER_INIT; 2209 #endif 2210 2211 if ( ! (yy_start) ) 2212 (yy_start) = 1; /* first start state */ 2213 2214 if ( ! yyin ) 2215 yyin = stdin; 2216 2217 if ( ! yyout ) 2218 yyout = stdout; 2219 2220 if ( ! YY_CURRENT_BUFFER ) { 2221 yyensure_buffer_stack (); 2222 YY_CURRENT_BUFFER_LVALUE = 2223 yy_create_buffer( yyin, YY_BUF_SIZE ); 2224 } 2225 2226 yy_load_buffer_state( ); 2227 } 2228 2229 { 2230 #line 159 "scan.l" 2231 2232 #line 161 "scan.l" 2233 static int bracelevel, didadef, indented_code; 2234 static int doing_rule_action = false; 2235 static int option_sense; 2236 2237 int doing_codeblock = false; 2238 int brace_depth=0, brace_start_line=0; 2239 char nmdef[MAXLINE]; 2240 2241 2242 #line 2242 "<stdout>" 2243 2244 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ 2245 { 2246 yy_cp = (yy_c_buf_p); 2247 2248 /* Support of yytext. */ 2249 *yy_cp = (yy_hold_char); 2250 2251 /* yy_bp points to the position in yy_ch_buf of the start of 2252 * the current run. 2253 */ 2254 yy_bp = yy_cp; 2255 2256 yy_current_state = (yy_start); 2257 yy_current_state += YY_AT_BOL(); 2258 yy_match: 2259 do 2260 { 2261 YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; 2262 if ( yy_accept[yy_current_state] ) 2263 { 2264 (yy_last_accepting_state) = yy_current_state; 2265 (yy_last_accepting_cpos) = yy_cp; 2266 } 2267 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 2268 { 2269 yy_current_state = (int) yy_def[yy_current_state]; 2270 if ( yy_current_state >= 1114 ) 2271 yy_c = yy_meta[yy_c]; 2272 } 2273 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 2274 ++yy_cp; 2275 } 2276 while ( yy_base[yy_current_state] != 4511 ); 2277 2278 yy_find_action: 2279 yy_act = yy_accept[yy_current_state]; 2280 if ( yy_act == 0 ) 2281 { /* have to back up */ 2282 yy_cp = (yy_last_accepting_cpos); 2283 yy_current_state = (yy_last_accepting_state); 2284 yy_act = yy_accept[yy_current_state]; 2285 } 2286 2287 YY_DO_BEFORE_ACTION; 2288 2289 do_action: /* This label is used only to access EOF actions. */ 2290 2291 switch ( yy_act ) 2292 { /* beginning of action switch */ 2293 case 0: /* must back up */ 2294 /* undo the effects of YY_DO_BEFORE_ACTION */ 2295 *yy_cp = (yy_hold_char); 2296 yy_cp = (yy_last_accepting_cpos); 2297 yy_current_state = (yy_last_accepting_state); 2298 goto yy_find_action; 2299 2300 case 1: 2301 YY_RULE_SETUP 2302 #line 171 "scan.l" 2303 START_CODEBLOCK(true); 2304 YY_BREAK 2305 case 2: 2306 YY_RULE_SETUP 2307 #line 172 "scan.l" 2308 add_action("/*[""["); yy_push_state( COMMENT ); 2309 YY_BREAK 2310 case 3: 2311 YY_RULE_SETUP 2312 #line 173 "scan.l" 2313 yy_push_state( LINEDIR ); 2314 YY_BREAK 2315 case 4: 2316 YY_RULE_SETUP 2317 #line 174 "scan.l" 2318 return SCDECL; 2319 YY_BREAK 2320 case 5: 2321 YY_RULE_SETUP 2322 #line 175 "scan.l" 2323 return XSCDECL; 2324 YY_BREAK 2325 case 6: 2326 /* rule 6 can match eol */ 2327 YY_RULE_SETUP 2328 #line 176 "scan.l" 2329 START_CODEBLOCK(false); 2330 YY_BREAK 2331 case 7: 2332 /* rule 7 can match eol */ 2333 YY_RULE_SETUP 2334 #line 177 "scan.l" 2335 { 2336 brace_start_line = linenum; 2337 ++linenum; 2338 buf_linedir( &top_buf, infilename?infilename:"<stdin>", linenum); 2339 brace_depth = 1; 2340 yy_push_state(CODEBLOCK_MATCH_BRACE); 2341 } 2342 YY_BREAK 2343 case 8: 2344 YY_RULE_SETUP 2345 #line 185 "scan.l" 2346 synerr( _("malformed '%top' directive") ); 2347 YY_BREAK 2348 case 9: 2349 YY_RULE_SETUP 2350 #line 187 "scan.l" 2351 /* discard */ 2352 YY_BREAK 2353 case 10: 2354 YY_RULE_SETUP 2355 #line 189 "scan.l" 2356 { 2357 sectnum = 2; 2358 bracelevel = 0; 2359 mark_defs1(); 2360 line_directive_out(NULL, 1); 2361 BEGIN(SECT2PROLOG); 2362 return SECTEND; 2363 } 2364 YY_BREAK 2365 case 11: 2366 /* rule 11 can match eol */ 2367 YY_RULE_SETUP 2368 #line 198 "scan.l" 2369 yytext_is_array = false; ++linenum; 2370 YY_BREAK 2371 case 12: 2372 /* rule 12 can match eol */ 2373 YY_RULE_SETUP 2374 #line 199 "scan.l" 2375 yytext_is_array = true; ++linenum; 2376 YY_BREAK 2377 case 13: 2378 YY_RULE_SETUP 2379 #line 201 "scan.l" 2380 BEGIN(OPTION); return TOK_OPTION; 2381 YY_BREAK 2382 case 14: 2383 /* rule 14 can match eol */ 2384 YY_RULE_SETUP 2385 #line 203 "scan.l" 2386 ++linenum; /* ignore */ 2387 YY_BREAK 2388 case 15: 2389 /* rule 15 can match eol */ 2390 YY_RULE_SETUP 2391 #line 204 "scan.l" 2392 ++linenum; /* ignore */ 2393 YY_BREAK 2394 /* xgettext: no-c-format */ 2395 case 16: 2396 /* rule 16 can match eol */ 2397 YY_RULE_SETUP 2398 #line 207 "scan.l" 2399 synerr( _( "unrecognized '%' directive" ) ); 2400 YY_BREAK 2401 case 17: 2402 YY_RULE_SETUP 2403 #line 209 "scan.l" 2404 { 2405 if(yyleng < MAXLINE) 2406 { 2407 strncpy( nmstr, yytext, sizeof(nmstr) ); 2408 } 2409 else 2410 { 2411 synerr( _("Definition name too long\n")); 2412 FLEX_EXIT(EXIT_FAILURE); 2413 } 2414 2415 didadef = false; 2416 BEGIN(PICKUPDEF); 2417 } 2418 YY_BREAK 2419 case 18: 2420 YY_RULE_SETUP 2421 #line 224 "scan.l" 2422 RETURNNAME; 2423 YY_BREAK 2424 case 19: 2425 /* rule 19 can match eol */ 2426 YY_RULE_SETUP 2427 #line 225 "scan.l" 2428 ++linenum; /* allows blank lines in section 1 */ 2429 YY_BREAK 2430 case 20: 2431 /* rule 20 can match eol */ 2432 YY_RULE_SETUP 2433 #line 226 "scan.l" 2434 ACTION_ECHO; ++linenum; /* maybe end of comment line */ 2435 YY_BREAK 2436 2437 /* */ 2438 case 21: 2439 YY_RULE_SETUP 2440 #line 231 "scan.l" 2441 ACTION_ECHO; 2442 YY_BREAK 2443 case 22: 2444 YY_RULE_SETUP 2445 #line 232 "scan.l" 2446 ACTION_ECHO; 2447 YY_BREAK 2448 case 23: 2449 /* rule 23 can match eol */ 2450 YY_RULE_SETUP 2451 #line 234 "scan.l" 2452 ++linenum; ACTION_ECHO; 2453 YY_BREAK 2454 2455 2456 case 24: 2457 YY_RULE_SETUP 2458 #line 237 "scan.l" 2459 add_action("*/]""]"); yy_pop_state(); 2460 YY_BREAK 2461 2462 2463 case 25: 2464 YY_RULE_SETUP 2465 #line 240 "scan.l" 2466 ACTION_ECHO; yy_pop_state(); 2467 YY_BREAK 2468 2469 2470 /* This is the same as COMMENT, but is discarded rather than output. */ 2471 case 26: 2472 YY_RULE_SETUP 2473 #line 245 "scan.l" 2474 yy_pop_state(); 2475 YY_BREAK 2476 case 27: 2477 YY_RULE_SETUP 2478 #line 246 "scan.l" 2479 ; 2480 YY_BREAK 2481 case 28: 2482 YY_RULE_SETUP 2483 #line 247 "scan.l" 2484 ; 2485 YY_BREAK 2486 case 29: 2487 /* rule 29 can match eol */ 2488 YY_RULE_SETUP 2489 #line 248 "scan.l" 2490 ++linenum; 2491 YY_BREAK 2492 2493 2494 case 30: 2495 YY_RULE_SETUP 2496 #line 252 "scan.l" 2497 yy_pop_state(); 2498 YY_BREAK 2499 case 31: 2500 YY_RULE_SETUP 2501 #line 253 "scan.l" 2502 ; 2503 YY_BREAK 2504 case 32: 2505 /* rule 32 can match eol */ 2506 YY_RULE_SETUP 2507 #line 254 "scan.l" 2508 ++linenum; 2509 YY_BREAK 2510 2511 2512 case 33: 2513 /* rule 33 can match eol */ 2514 YY_RULE_SETUP 2515 #line 258 "scan.l" 2516 yy_pop_state(); 2517 YY_BREAK 2518 case 34: 2519 YY_RULE_SETUP 2520 #line 259 "scan.l" 2521 linenum = myctoi( yytext ); 2522 YY_BREAK 2523 case 35: 2524 YY_RULE_SETUP 2525 #line 261 "scan.l" 2526 { 2527 free(infilename); 2528 infilename = xstrdup(yytext + 1); 2529 infilename[strlen( infilename ) - 1] = '\0'; 2530 } 2531 YY_BREAK 2532 case 36: 2533 YY_RULE_SETUP 2534 #line 266 "scan.l" 2535 /* ignore spurious characters */ 2536 YY_BREAK 2537 2538 2539 case 37: 2540 YY_RULE_SETUP 2541 #line 269 "scan.l" 2542 ACTION_ECHO_QSTART; 2543 YY_BREAK 2544 case 38: 2545 YY_RULE_SETUP 2546 #line 270 "scan.l" 2547 ACTION_ECHO_QEND; 2548 YY_BREAK 2549 2550 2551 case 39: 2552 /* rule 39 can match eol */ 2553 YY_RULE_SETUP 2554 #line 274 "scan.l" 2555 ++linenum; END_CODEBLOCK; 2556 YY_BREAK 2557 case 40: 2558 YY_RULE_SETUP 2559 #line 275 "scan.l" 2560 ACTION_ECHO; 2561 YY_BREAK 2562 case 41: 2563 YY_RULE_SETUP 2564 #line 276 "scan.l" 2565 ACTION_ECHO; 2566 YY_BREAK 2567 case 42: 2568 /* rule 42 can match eol */ 2569 YY_RULE_SETUP 2570 #line 277 "scan.l" 2571 { 2572 ++linenum; 2573 ACTION_ECHO; 2574 if ( indented_code ) END_CODEBLOCK; 2575 } 2576 YY_BREAK 2577 2578 2579 case 43: 2580 YY_RULE_SETUP 2581 #line 285 "scan.l" 2582 { 2583 if( --brace_depth == 0){ 2584 /* TODO: Matched. */ 2585 yy_pop_state(); 2586 }else 2587 buf_strnappend(&top_buf, yytext, yyleng); 2588 } 2589 YY_BREAK 2590 case 44: 2591 YY_RULE_SETUP 2592 #line 293 "scan.l" 2593 { 2594 brace_depth++; 2595 buf_strnappend(&top_buf, yytext, yyleng); 2596 } 2597 YY_BREAK 2598 case 45: 2599 /* rule 45 can match eol */ 2600 YY_RULE_SETUP 2601 #line 298 "scan.l" 2602 { 2603 ++linenum; 2604 buf_strnappend(&top_buf, yytext, yyleng); 2605 } 2606 YY_BREAK 2607 case 46: 2608 YY_RULE_SETUP 2609 #line 303 "scan.l" 2610 buf_strnappend(&top_buf, escaped_qstart, (int) strlen(escaped_qstart)); 2611 YY_BREAK 2612 case 47: 2613 YY_RULE_SETUP 2614 #line 304 "scan.l" 2615 buf_strnappend(&top_buf, escaped_qend, (int) strlen(escaped_qend)); 2616 YY_BREAK 2617 case 48: 2618 YY_RULE_SETUP 2619 #line 305 "scan.l" 2620 { 2621 buf_strnappend(&top_buf, yytext, yyleng); 2622 } 2623 YY_BREAK 2624 case YY_STATE_EOF(CODEBLOCK_MATCH_BRACE): 2625 #line 309 "scan.l" 2626 { 2627 linenum = brace_start_line; 2628 synerr(_("Unmatched '{'")); 2629 yyterminate(); 2630 } 2631 YY_BREAK 2632 2633 2634 case 49: 2635 YY_RULE_SETUP 2636 #line 318 "scan.l" 2637 /* separates name and definition */ 2638 YY_BREAK 2639 case 50: 2640 YY_RULE_SETUP 2641 #line 320 "scan.l" 2642 { 2643 if(yyleng < MAXLINE) 2644 { 2645 strncpy( nmdef, yytext, sizeof(nmdef) ); 2646 } 2647 else 2648 { 2649 format_synerr( _("Definition value for {%s} too long\n"), nmstr); 2650 FLEX_EXIT(EXIT_FAILURE); 2651 } 2652 /* Skip trailing whitespace. */ 2653 { 2654 size_t i = strlen( nmdef ); 2655 while (i > 0 && (nmdef[i-1] == ' ' || nmdef[i-1] == '\t')) 2656 --i; 2657 nmdef[i] = '\0'; 2658 } 2659 2660 ndinstal( nmstr, nmdef ); 2661 didadef = true; 2662 } 2663 YY_BREAK 2664 case 51: 2665 /* rule 51 can match eol */ 2666 YY_RULE_SETUP 2667 #line 342 "scan.l" 2668 { 2669 if ( ! didadef ) 2670 synerr( _( "incomplete name definition" ) ); 2671 BEGIN(INITIAL); 2672 ++linenum; 2673 } 2674 YY_BREAK 2675 2676 2677 case 52: 2678 /* rule 52 can match eol */ 2679 YY_RULE_SETUP 2680 #line 352 "scan.l" 2681 ++linenum; BEGIN(INITIAL); 2682 YY_BREAK 2683 case 53: 2684 YY_RULE_SETUP 2685 #line 353 "scan.l" 2686 option_sense = true; 2687 YY_BREAK 2688 case 54: 2689 YY_RULE_SETUP 2690 #line 355 "scan.l" 2691 return '='; 2692 YY_BREAK 2693 case 55: 2694 YY_RULE_SETUP 2695 #line 357 "scan.l" 2696 option_sense = ! option_sense; 2697 YY_BREAK 2698 case 56: 2699 YY_RULE_SETUP 2700 #line 359 "scan.l" 2701 csize = option_sense ? 128 : 256; 2702 YY_BREAK 2703 case 57: 2704 YY_RULE_SETUP 2705 #line 360 "scan.l" 2706 csize = option_sense ? 256 : 128; 2707 YY_BREAK 2708 case 58: 2709 YY_RULE_SETUP 2710 #line 362 "scan.l" 2711 long_align = option_sense; 2712 YY_BREAK 2713 case 59: 2714 YY_RULE_SETUP 2715 #line 363 "scan.l" 2716 { 2717 ACTION_M4_IFDEF( "M4""_YY_ALWAYS_INTERACTIVE", option_sense ); 2718 interactive = option_sense; 2719 } 2720 YY_BREAK 2721 case 60: 2722 YY_RULE_SETUP 2723 #line 367 "scan.l" 2724 yytext_is_array = option_sense; 2725 YY_BREAK 2726 case 61: 2727 YY_RULE_SETUP 2728 #line 368 "scan.l" 2729 backing_up_report = option_sense; 2730 YY_BREAK 2731 case 62: 2732 YY_RULE_SETUP 2733 #line 369 "scan.l" 2734 interactive = ! option_sense; 2735 YY_BREAK 2736 case 63: 2737 YY_RULE_SETUP 2738 #line 370 "scan.l" 2739 bison_bridge_lval = option_sense; 2740 YY_BREAK 2741 case 64: 2742 YY_RULE_SETUP 2743 #line 371 "scan.l" 2744 { if((bison_bridge_lloc = option_sense)) 2745 bison_bridge_lval = true; 2746 } 2747 YY_BREAK 2748 case 65: 2749 YY_RULE_SETUP 2750 #line 374 "scan.l" 2751 C_plus_plus = option_sense; 2752 YY_BREAK 2753 case 66: 2754 YY_RULE_SETUP 2755 #line 375 "scan.l" 2756 sf_set_case_ins(!option_sense); 2757 YY_BREAK 2758 case 67: 2759 YY_RULE_SETUP 2760 #line 376 "scan.l" 2761 sf_set_case_ins(option_sense); 2762 YY_BREAK 2763 case 68: 2764 YY_RULE_SETUP 2765 #line 377 "scan.l" 2766 ddebug = option_sense; 2767 YY_BREAK 2768 case 69: 2769 YY_RULE_SETUP 2770 #line 378 "scan.l" 2771 spprdflt = ! option_sense; 2772 YY_BREAK 2773 case 70: 2774 YY_RULE_SETUP 2775 #line 379 "scan.l" 2776 useecs = option_sense; 2777 YY_BREAK 2778 case 71: 2779 YY_RULE_SETUP 2780 #line 380 "scan.l" 2781 { 2782 useecs = usemecs = false; 2783 use_read = fullspd = true; 2784 } 2785 YY_BREAK 2786 case 72: 2787 YY_RULE_SETUP 2788 #line 384 "scan.l" 2789 { 2790 useecs = usemecs = false; 2791 use_read = fulltbl = true; 2792 } 2793 YY_BREAK 2794 case 73: 2795 YY_RULE_SETUP 2796 #line 388 "scan.l" 2797 ACTION_IFDEF("YY_NO_INPUT", ! option_sense); 2798 YY_BREAK 2799 case 74: 2800 YY_RULE_SETUP 2801 #line 389 "scan.l" 2802 interactive = option_sense; 2803 YY_BREAK 2804 case 75: 2805 YY_RULE_SETUP 2806 #line 390 "scan.l" 2807 lex_compat = option_sense; 2808 YY_BREAK 2809 case 76: 2810 YY_RULE_SETUP 2811 #line 391 "scan.l" 2812 posix_compat = option_sense; 2813 YY_BREAK 2814 case 77: 2815 YY_RULE_SETUP 2816 #line 392 "scan.l" 2817 gen_line_dirs = option_sense; 2818 YY_BREAK 2819 case 78: 2820 YY_RULE_SETUP 2821 #line 393 "scan.l" 2822 { 2823 ACTION_M4_IFDEF( "M4""_YY_MAIN", option_sense); 2824 /* Override yywrap */ 2825 if( option_sense == true ) 2826 do_yywrap = false; 2827 } 2828 YY_BREAK 2829 case 79: 2830 YY_RULE_SETUP 2831 #line 399 "scan.l" 2832 usemecs = option_sense; 2833 YY_BREAK 2834 case 80: 2835 YY_RULE_SETUP 2836 #line 400 "scan.l" 2837 { 2838 ACTION_M4_IFDEF( "M4""_YY_NEVER_INTERACTIVE", option_sense ); 2839 interactive = !option_sense; 2840 } 2841 YY_BREAK 2842 case 81: 2843 YY_RULE_SETUP 2844 #line 404 "scan.l" 2845 performance_report += option_sense ? 1 : -1; 2846 YY_BREAK 2847 case 82: 2848 YY_RULE_SETUP 2849 #line 405 "scan.l" 2850 yytext_is_array = ! option_sense; 2851 YY_BREAK 2852 case 83: 2853 YY_RULE_SETUP 2854 #line 406 "scan.l" 2855 use_read = option_sense; 2856 YY_BREAK 2857 case 84: 2858 YY_RULE_SETUP 2859 #line 407 "scan.l" 2860 reentrant = option_sense; 2861 YY_BREAK 2862 case 85: 2863 YY_RULE_SETUP 2864 #line 408 "scan.l" 2865 reject_really_used = option_sense; 2866 YY_BREAK 2867 case 86: 2868 YY_RULE_SETUP 2869 #line 409 "scan.l" 2870 ACTION_M4_IFDEF( "M4""_YY_STACK_USED", option_sense ); 2871 YY_BREAK 2872 case 87: 2873 YY_RULE_SETUP 2874 #line 410 "scan.l" 2875 do_stdinit = option_sense; 2876 YY_BREAK 2877 case 88: 2878 YY_RULE_SETUP 2879 #line 411 "scan.l" 2880 use_stdout = option_sense; 2881 YY_BREAK 2882 case 89: 2883 YY_RULE_SETUP 2884 #line 412 "scan.l" 2885 ACTION_IFDEF("YY_NO_UNISTD_H", ! option_sense); 2886 YY_BREAK 2887 case 90: 2888 YY_RULE_SETUP 2889 #line 413 "scan.l" 2890 ACTION_M4_IFDEF("M4""_YY_NO_UNPUT", ! option_sense); 2891 YY_BREAK 2892 case 91: 2893 YY_RULE_SETUP 2894 #line 414 "scan.l" 2895 printstats = option_sense; 2896 YY_BREAK 2897 case 92: 2898 YY_RULE_SETUP 2899 #line 415 "scan.l" 2900 nowarn = ! option_sense; 2901 YY_BREAK 2902 case 93: 2903 YY_RULE_SETUP 2904 #line 416 "scan.l" 2905 do_yylineno = option_sense; ACTION_M4_IFDEF("M4""_YY_USE_LINENO", option_sense); 2906 YY_BREAK 2907 case 94: 2908 YY_RULE_SETUP 2909 #line 417 "scan.l" 2910 yymore_really_used = option_sense; 2911 YY_BREAK 2912 case 95: 2913 YY_RULE_SETUP 2914 #line 418 "scan.l" 2915 do_yywrap = option_sense; 2916 YY_BREAK 2917 case 96: 2918 YY_RULE_SETUP 2919 #line 420 "scan.l" 2920 ACTION_M4_IFDEF("M4""_YY_NO_PUSH_STATE", ! option_sense); 2921 YY_BREAK 2922 case 97: 2923 YY_RULE_SETUP 2924 #line 421 "scan.l" 2925 ACTION_M4_IFDEF("M4""_YY_NO_POP_STATE", ! option_sense); 2926 YY_BREAK 2927 case 98: 2928 YY_RULE_SETUP 2929 #line 422 "scan.l" 2930 ACTION_M4_IFDEF("M4""_YY_NO_TOP_STATE", ! option_sense); 2931 YY_BREAK 2932 case 99: 2933 YY_RULE_SETUP 2934 #line 424 "scan.l" 2935 ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BUFFER", ! option_sense); 2936 YY_BREAK 2937 case 100: 2938 YY_RULE_SETUP 2939 #line 425 "scan.l" 2940 ACTION_M4_IFDEF("M4""_YY_NO_SCAN_BYTES", ! option_sense); 2941 YY_BREAK 2942 case 101: 2943 YY_RULE_SETUP 2944 #line 426 "scan.l" 2945 ACTION_M4_IFDEF("M4""_YY_NO_SCAN_STRING", ! option_sense); 2946 YY_BREAK 2947 case 102: 2948 YY_RULE_SETUP 2949 #line 428 "scan.l" 2950 ACTION_M4_IFDEF("M4""_YY_NO_FLEX_ALLOC", ! option_sense); 2951 YY_BREAK 2952 case 103: 2953 YY_RULE_SETUP 2954 #line 429 "scan.l" 2955 ACTION_M4_IFDEF("M4""_YY_NO_FLEX_REALLOC", ! option_sense); 2956 YY_BREAK 2957 case 104: 2958 YY_RULE_SETUP 2959 #line 430 "scan.l" 2960 ACTION_M4_IFDEF("M4""_YY_NO_FLEX_FREE", ! option_sense); 2961 YY_BREAK 2962 case 105: 2963 YY_RULE_SETUP 2964 #line 432 "scan.l" 2965 ACTION_M4_IFDEF("M4""_YY_NO_GET_DEBUG", ! option_sense); 2966 YY_BREAK 2967 case 106: 2968 YY_RULE_SETUP 2969 #line 433 "scan.l" 2970 ACTION_M4_IFDEF("M4""_YY_NO_SET_DEBUG", ! option_sense); 2971 YY_BREAK 2972 case 107: 2973 YY_RULE_SETUP 2974 #line 434 "scan.l" 2975 ACTION_M4_IFDEF("M4""_YY_NO_GET_EXTRA", ! option_sense); 2976 YY_BREAK 2977 case 108: 2978 YY_RULE_SETUP 2979 #line 435 "scan.l" 2980 ACTION_M4_IFDEF("M4""_YY_NO_SET_EXTRA", ! option_sense); 2981 YY_BREAK 2982 case 109: 2983 YY_RULE_SETUP 2984 #line 436 "scan.l" 2985 ACTION_M4_IFDEF("M4""_YY_NO_GET_LENG", ! option_sense); 2986 YY_BREAK 2987 case 110: 2988 YY_RULE_SETUP 2989 #line 437 "scan.l" 2990 ACTION_M4_IFDEF("M4""_YY_NO_GET_TEXT", ! option_sense); 2991 YY_BREAK 2992 case 111: 2993 YY_RULE_SETUP 2994 #line 438 "scan.l" 2995 ACTION_M4_IFDEF("M4""_YY_NO_GET_LINENO", ! option_sense); 2996 YY_BREAK 2997 case 112: 2998 YY_RULE_SETUP 2999 #line 439 "scan.l" 3000 ACTION_M4_IFDEF("M4""_YY_NO_SET_LINENO", ! option_sense); 3001 YY_BREAK 3002 case 113: 3003 YY_RULE_SETUP 3004 #line 440 "scan.l" 3005 ACTION_M4_IFDEF("M4""_YY_NO_GET_IN", ! option_sense); 3006 YY_BREAK 3007 case 114: 3008 YY_RULE_SETUP 3009 #line 441 "scan.l" 3010 ACTION_M4_IFDEF("M4""_YY_NO_SET_IN", ! option_sense); 3011 YY_BREAK 3012 case 115: 3013 YY_RULE_SETUP 3014 #line 442 "scan.l" 3015 ACTION_M4_IFDEF("M4""_YY_NO_GET_OUT", ! option_sense); 3016 YY_BREAK 3017 case 116: 3018 YY_RULE_SETUP 3019 #line 443 "scan.l" 3020 ACTION_M4_IFDEF("M4""_YY_NO_SET_OUT", ! option_sense); 3021 YY_BREAK 3022 case 117: 3023 YY_RULE_SETUP 3024 #line 444 "scan.l" 3025 ACTION_M4_IFDEF("M4""_YY_NO_GET_LVAL", ! option_sense); 3026 YY_BREAK 3027 case 118: 3028 YY_RULE_SETUP 3029 #line 445 "scan.l" 3030 ACTION_M4_IFDEF("M4""_YY_NO_SET_LVAL", ! option_sense); 3031 YY_BREAK 3032 case 119: 3033 YY_RULE_SETUP 3034 #line 446 "scan.l" 3035 ACTION_M4_IFDEF("M4""_YY_NO_GET_LLOC", ! option_sense); 3036 YY_BREAK 3037 case 120: 3038 YY_RULE_SETUP 3039 #line 447 "scan.l" 3040 ACTION_M4_IFDEF("M4""_YY_NO_SET_LLOC", ! option_sense); 3041 YY_BREAK 3042 case 121: 3043 YY_RULE_SETUP 3044 #line 449 "scan.l" 3045 return TOK_EXTRA_TYPE; 3046 YY_BREAK 3047 case 122: 3048 YY_RULE_SETUP 3049 #line 450 "scan.l" 3050 return TOK_OUTFILE; 3051 YY_BREAK 3052 case 123: 3053 YY_RULE_SETUP 3054 #line 451 "scan.l" 3055 return TOK_PREFIX; 3056 YY_BREAK 3057 case 124: 3058 YY_RULE_SETUP 3059 #line 452 "scan.l" 3060 return TOK_YYCLASS; 3061 YY_BREAK 3062 case 125: 3063 YY_RULE_SETUP 3064 #line 453 "scan.l" 3065 return TOK_HEADER_FILE; 3066 YY_BREAK 3067 case 126: 3068 YY_RULE_SETUP 3069 #line 454 "scan.l" 3070 return TOK_TABLES_FILE; 3071 YY_BREAK 3072 case 127: 3073 YY_RULE_SETUP 3074 #line 455 "scan.l" 3075 { 3076 tablesverify = option_sense; 3077 if(!tablesext && option_sense) 3078 tablesext = true; 3079 } 3080 YY_BREAK 3081 case 128: 3082 YY_RULE_SETUP 3083 #line 462 "scan.l" 3084 { 3085 if(yyleng-1 < MAXLINE) 3086 { 3087 strncpy( nmstr, yytext + 1, sizeof(nmstr) ); 3088 } 3089 else 3090 { 3091 synerr( _("Option line too long\n")); 3092 FLEX_EXIT(EXIT_FAILURE); 3093 } 3094 nmstr[strlen( nmstr ) - 1] = '\0'; 3095 return NAME; 3096 } 3097 YY_BREAK 3098 case 129: 3099 YY_RULE_SETUP 3100 #line 476 "scan.l" 3101 { 3102 format_synerr( _( "unrecognized %%option: %s" ), 3103 yytext ); 3104 BEGIN(RECOVER); 3105 } 3106 YY_BREAK 3107 3108 case 130: 3109 /* rule 130 can match eol */ 3110 YY_RULE_SETUP 3111 #line 483 "scan.l" 3112 ++linenum; BEGIN(INITIAL); 3113 YY_BREAK 3114 3115 case 131: 3116 YY_RULE_SETUP 3117 #line 487 "scan.l" 3118 ++bracelevel; yyless( 2 ); /* eat only %{ */ 3119 YY_BREAK 3120 case 132: 3121 YY_RULE_SETUP 3122 #line 488 "scan.l" 3123 --bracelevel; yyless( 2 ); /* eat only %} */ 3124 YY_BREAK 3125 case 133: 3126 YY_RULE_SETUP 3127 #line 490 "scan.l" 3128 START_CODEBLOCK(true); /* indented code in prolog */ 3129 YY_BREAK 3130 case 134: 3131 YY_RULE_SETUP 3132 #line 492 "scan.l" 3133 { 3134 /* non-indented code */ 3135 if ( bracelevel <= 0 ) { 3136 /* not in %{ ... %} */ 3137 yyless( 0 ); /* put it all back */ 3138 yy_set_bol( 1 ); 3139 mark_prolog(); 3140 BEGIN(SECT2); 3141 } else { 3142 START_CODEBLOCK(true); 3143 } 3144 } 3145 YY_BREAK 3146 case 135: 3147 YY_RULE_SETUP 3148 #line 505 "scan.l" 3149 ACTION_ECHO; 3150 YY_BREAK 3151 case 136: 3152 /* rule 136 can match eol */ 3153 YY_RULE_SETUP 3154 #line 506 "scan.l" 3155 ++linenum; ACTION_ECHO; 3156 YY_BREAK 3157 case YY_STATE_EOF(SECT2PROLOG): 3158 #line 508 "scan.l" 3159 { 3160 mark_prolog(); 3161 sectnum = 0; 3162 yyterminate(); /* to stop the parser */ 3163 } 3164 YY_BREAK 3165 3166 3167 case 137: 3168 /* rule 137 can match eol */ 3169 YY_RULE_SETUP 3170 #line 516 "scan.l" 3171 ++linenum; /* allow blank lines in section 2 */ 3172 YY_BREAK 3173 case 138: 3174 YY_RULE_SETUP 3175 #line 518 "scan.l" 3176 { 3177 indented_code = false; 3178 doing_codeblock = true; 3179 bracelevel = 1; 3180 BEGIN(PERCENT_BRACE_ACTION); 3181 } 3182 YY_BREAK 3183 case 139: 3184 YY_RULE_SETUP 3185 #line 525 "scan.l" 3186 { 3187 /* Allow "<" to appear in (?x) patterns. */ 3188 if (!sf_skip_ws()) 3189 BEGIN(SC); 3190 return '<'; 3191 } 3192 YY_BREAK 3193 case 140: 3194 YY_RULE_SETUP 3195 #line 531 "scan.l" 3196 return '^'; 3197 YY_BREAK 3198 case 141: 3199 YY_RULE_SETUP 3200 #line 532 "scan.l" 3201 BEGIN(QUOTE); return '"'; 3202 YY_BREAK 3203 case 142: 3204 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ 3205 (yy_c_buf_p) = yy_cp = yy_bp + 1; 3206 YY_DO_BEFORE_ACTION; /* set up yytext again */ 3207 YY_RULE_SETUP 3208 #line 533 "scan.l" 3209 { 3210 BEGIN(NUM); 3211 if ( lex_compat || posix_compat ) 3212 return BEGIN_REPEAT_POSIX; 3213 else 3214 return BEGIN_REPEAT_FLEX; 3215 } 3216 YY_BREAK 3217 case 143: 3218 /* rule 143 can match eol */ 3219 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ 3220 YY_LINENO_REWIND_TO(yy_bp + 1); 3221 (yy_c_buf_p) = yy_cp = yy_bp + 1; 3222 YY_DO_BEFORE_ACTION; /* set up yytext again */ 3223 YY_RULE_SETUP 3224 #line 540 "scan.l" 3225 return '$'; 3226 YY_BREAK 3227 case 144: 3228 YY_RULE_SETUP 3229 #line 542 "scan.l" 3230 { 3231 bracelevel = 1; 3232 BEGIN(PERCENT_BRACE_ACTION); 3233 3234 if ( in_rule ) 3235 { 3236 doing_rule_action = true; 3237 in_rule = false; 3238 return '\n'; 3239 } 3240 } 3241 YY_BREAK 3242 case 145: 3243 /* rule 145 can match eol */ 3244 YY_RULE_SETUP 3245 #line 553 "scan.l" 3246 { 3247 if (sf_skip_ws()){ 3248 /* We're in the middle of a (?x: ) pattern. */ 3249 /* Push back everything starting at the "|" */ 3250 int amt = (int) (strchr (yytext, '|') - yytext); 3251 yyless(amt); 3252 } 3253 else { 3254 add_action("]""]"); 3255 continued_action = true; 3256 ++linenum; 3257 return '\n'; 3258 } 3259 } 3260 YY_BREAK 3261 case 146: 3262 YY_RULE_SETUP 3263 #line 568 "scan.l" 3264 { 3265 3266 if (sf_skip_ws()){ 3267 /* We're in the middle of a (?x: ) pattern. */ 3268 yy_push_state(COMMENT_DISCARD); 3269 } 3270 else{ 3271 yyless( yyleng - 2 ); /* put back '/', '*' */ 3272 bracelevel = 0; 3273 continued_action = false; 3274 BEGIN(ACTION); 3275 } 3276 } 3277 YY_BREAK 3278 case 147: 3279 YY_RULE_SETUP 3280 #line 582 "scan.l" 3281 /* allow indented rules */ ; 3282 YY_BREAK 3283 case 148: 3284 YY_RULE_SETUP 3285 #line 584 "scan.l" 3286 { 3287 if (sf_skip_ws()){ 3288 /* We're in the middle of a (?x: ) pattern. */ 3289 } 3290 else{ 3291 /* This rule is separate from the one below because 3292 * otherwise we get variable trailing context, so 3293 * we can't build the scanner using -{f,F}. 3294 */ 3295 bracelevel = 0; 3296 continued_action = false; 3297 BEGIN(ACTION); 3298 3299 if ( in_rule ) 3300 { 3301 doing_rule_action = true; 3302 in_rule = false; 3303 return '\n'; 3304 } 3305 } 3306 } 3307 YY_BREAK 3308 case 149: 3309 /* rule 149 can match eol */ 3310 YY_RULE_SETUP 3311 #line 606 "scan.l" 3312 { 3313 if (sf_skip_ws()){ 3314 /* We're in the middle of a (?x: ) pattern. */ 3315 ++linenum; 3316 } 3317 else{ 3318 bracelevel = 0; 3319 continued_action = false; 3320 BEGIN(ACTION); 3321 unput( '\n' ); /* so <ACTION> sees it */ 3322 3323 if ( in_rule ) 3324 { 3325 doing_rule_action = true; 3326 in_rule = false; 3327 return '\n'; 3328 } 3329 } 3330 } 3331 YY_BREAK 3332 case 150: 3333 #line 627 "scan.l" 3334 case 151: 3335 YY_RULE_SETUP 3336 #line 627 "scan.l" 3337 return EOF_OP; 3338 YY_BREAK 3339 case 152: 3340 YY_RULE_SETUP 3341 #line 629 "scan.l" 3342 { 3343 sectnum = 3; 3344 BEGIN(no_section3_escape ? SECT3_NOESCAPE : SECT3); 3345 outn("/* Begin user sect3 */"); 3346 yyterminate(); /* to stop the parser */ 3347 3348 } 3349 YY_BREAK 3350 case 153: 3351 YY_RULE_SETUP 3352 #line 637 "scan.l" 3353 { 3354 int cclval; 3355 3356 if(yyleng < MAXLINE) 3357 { 3358 strncpy( nmstr, yytext, sizeof(nmstr) ); 3359 } 3360 else 3361 { 3362 synerr( _("Input line too long\n")); 3363 FLEX_EXIT(EXIT_FAILURE); 3364 } 3365 3366 /* Check to see if we've already encountered this 3367 * ccl. 3368 */ 3369 if (0 /* <--- This "0" effectively disables the reuse of a 3370 * character class (purely based on its source text). 3371 * The reason it was disabled is so yacc/bison can parse 3372 * ccl operations, such as ccl difference and union. 3373 */ 3374 && (cclval = ccllookup( nmstr )) != 0 ) 3375 { 3376 if ( input() != ']' ) 3377 synerr( _( "bad character class" ) ); 3378 3379 yylval = cclval; 3380 ++cclreuse; 3381 return PREVCCL; 3382 } 3383 else 3384 { 3385 /* We fudge a bit. We know that this ccl will 3386 * soon be numbered as lastccl + 1 by cclinit. 3387 */ 3388 cclinstal( nmstr, lastccl + 1 ); 3389 3390 /* Push back everything but the leading bracket 3391 * so the ccl can be rescanned. 3392 */ 3393 yyless( 1 ); 3394 3395 BEGIN(FIRSTCCL); 3396 return '['; 3397 } 3398 } 3399 YY_BREAK 3400 case 154: 3401 YY_RULE_SETUP 3402 #line 683 "scan.l" 3403 return CCL_OP_DIFF; 3404 YY_BREAK 3405 case 155: 3406 YY_RULE_SETUP 3407 #line 684 "scan.l" 3408 return CCL_OP_UNION; 3409 YY_BREAK 3410 /* Check for :space: at the end of the rule so we don't 3411 * wrap the expanded regex in '(' ')' -- breaking trailing 3412 * context. 3413 */ 3414 case 156: 3415 /* rule 156 can match eol */ 3416 YY_RULE_SETUP 3417 #line 691 "scan.l" 3418 { 3419 char *nmdefptr; 3420 int end_is_ws, end_ch; 3421 3422 end_ch = yytext[yyleng-1]; 3423 end_is_ws = end_ch != '}' ? 1 : 0; 3424 3425 if(yyleng-1 < MAXLINE) 3426 { 3427 strncpy( nmstr, yytext + 1, sizeof(nmstr) ); 3428 } 3429 else 3430 { 3431 synerr( _("Input line too long\n")); 3432 FLEX_EXIT(EXIT_FAILURE); 3433 } 3434 nmstr[yyleng - 2 - end_is_ws] = '\0'; /* chop trailing brace */ 3435 3436 if ( (nmdefptr = ndlookup( nmstr )) == NULL ) 3437 format_synerr( 3438 _( "undefined definition {%s}" ), 3439 nmstr ); 3440 3441 else 3442 { /* push back name surrounded by ()'s */ 3443 size_t len = strlen( nmdefptr ); 3444 if (end_is_ws) 3445 unput(end_ch); 3446 3447 if ( lex_compat || nmdefptr[0] == '^' || 3448 (len > 0 && nmdefptr[len - 1] == '$') 3449 || (end_is_ws && trlcontxt && !sf_skip_ws())) 3450 { /* don't use ()'s after all */ 3451 PUT_BACK_STRING(nmdefptr, 0); 3452 3453 if ( nmdefptr[0] == '^' ) 3454 BEGIN(CARETISBOL); 3455 } 3456 3457 else 3458 { 3459 unput(')'); 3460 PUT_BACK_STRING(nmdefptr, 0); 3461 unput('('); 3462 } 3463 } 3464 } 3465 YY_BREAK 3466 case 157: 3467 YY_RULE_SETUP 3468 #line 739 "scan.l" 3469 { 3470 if (sf_skip_ws()) 3471 yy_push_state(COMMENT_DISCARD); 3472 else{ 3473 /* Push back the "*" and return "/" as usual. */ 3474 yyless(1); 3475 return '/'; 3476 } 3477 } 3478 YY_BREAK 3479 case 158: 3480 YY_RULE_SETUP 3481 #line 749 "scan.l" 3482 { 3483 if (lex_compat || posix_compat){ 3484 /* Push back the "?#" and treat it like a normal parens. */ 3485 yyless(1); 3486 sf_push(); 3487 return '('; 3488 } 3489 else 3490 yy_push_state(EXTENDED_COMMENT); 3491 } 3492 YY_BREAK 3493 case 159: 3494 YY_RULE_SETUP 3495 #line 759 "scan.l" 3496 { 3497 sf_push(); 3498 if (lex_compat || posix_compat) 3499 /* Push back the "?" and treat it like a normal parens. */ 3500 yyless(1); 3501 else 3502 BEGIN(GROUP_WITH_PARAMS); 3503 return '('; 3504 } 3505 YY_BREAK 3506 case 160: 3507 YY_RULE_SETUP 3508 #line 768 "scan.l" 3509 sf_push(); return '('; 3510 YY_BREAK 3511 case 161: 3512 YY_RULE_SETUP 3513 #line 769 "scan.l" 3514 { 3515 if (_sf_top_ix > 0) { 3516 sf_pop(); 3517 return ')'; 3518 } else 3519 synerr(_("unbalanced parenthesis")); 3520 } 3521 YY_BREAK 3522 case 162: 3523 YY_RULE_SETUP 3524 #line 777 "scan.l" 3525 return (unsigned char) yytext[0]; 3526 YY_BREAK 3527 case 163: 3528 YY_RULE_SETUP 3529 #line 778 "scan.l" 3530 RETURNCHAR; 3531 YY_BREAK 3532 3533 3534 case 164: 3535 /* rule 164 can match eol */ 3536 YY_RULE_SETUP 3537 #line 783 "scan.l" 3538 ++linenum; /* Allow blank lines & continuations */ 3539 YY_BREAK 3540 case 165: 3541 YY_RULE_SETUP 3542 #line 784 "scan.l" 3543 return (unsigned char) yytext[0]; 3544 YY_BREAK 3545 case 166: 3546 YY_RULE_SETUP 3547 #line 785 "scan.l" 3548 BEGIN(SECT2); return '>'; 3549 YY_BREAK 3550 case 167: 3551 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ 3552 (yy_c_buf_p) = yy_cp = yy_bp + 1; 3553 YY_DO_BEFORE_ACTION; /* set up yytext again */ 3554 YY_RULE_SETUP 3555 #line 786 "scan.l" 3556 BEGIN(CARETISBOL); return '>'; 3557 YY_BREAK 3558 case 168: 3559 YY_RULE_SETUP 3560 #line 787 "scan.l" 3561 RETURNNAME; 3562 YY_BREAK 3563 case 169: 3564 YY_RULE_SETUP 3565 #line 788 "scan.l" 3566 { 3567 format_synerr( _( "bad <start condition>: %s" ), 3568 yytext ); 3569 } 3570 YY_BREAK 3571 3572 case 170: 3573 YY_RULE_SETUP 3574 #line 794 "scan.l" 3575 BEGIN(SECT2); return '^'; 3576 YY_BREAK 3577 3578 case 171: 3579 YY_RULE_SETUP 3580 #line 798 "scan.l" 3581 RETURNCHAR; 3582 YY_BREAK 3583 case 172: 3584 YY_RULE_SETUP 3585 #line 799 "scan.l" 3586 BEGIN(SECT2); return '"'; 3587 YY_BREAK 3588 case 173: 3589 /* rule 173 can match eol */ 3590 YY_RULE_SETUP 3591 #line 801 "scan.l" 3592 { 3593 synerr( _( "missing quote" ) ); 3594 BEGIN(SECT2); 3595 ++linenum; 3596 return '"'; 3597 } 3598 YY_BREAK 3599 3600 3601 case 174: 3602 YY_RULE_SETUP 3603 #line 810 "scan.l" 3604 BEGIN(SECT2); 3605 YY_BREAK 3606 case 175: 3607 YY_RULE_SETUP 3608 #line 811 "scan.l" 3609 BEGIN(GROUP_MINUS_PARAMS); 3610 YY_BREAK 3611 case 176: 3612 YY_RULE_SETUP 3613 #line 812 "scan.l" 3614 sf_set_case_ins(1); 3615 YY_BREAK 3616 case 177: 3617 YY_RULE_SETUP 3618 #line 813 "scan.l" 3619 sf_set_dot_all(1); 3620 YY_BREAK 3621 case 178: 3622 YY_RULE_SETUP 3623 #line 814 "scan.l" 3624 sf_set_skip_ws(1); 3625 YY_BREAK 3626 3627 3628 case 179: 3629 YY_RULE_SETUP 3630 #line 817 "scan.l" 3631 BEGIN(SECT2); 3632 YY_BREAK 3633 case 180: 3634 YY_RULE_SETUP 3635 #line 818 "scan.l" 3636 sf_set_case_ins(0); 3637 YY_BREAK 3638 case 181: 3639 YY_RULE_SETUP 3640 #line 819 "scan.l" 3641 sf_set_dot_all(0); 3642 YY_BREAK 3643 case 182: 3644 YY_RULE_SETUP 3645 #line 820 "scan.l" 3646 sf_set_skip_ws(0); 3647 YY_BREAK 3648 3649 3650 case 183: 3651 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ 3652 (yy_c_buf_p) = yy_cp = yy_bp + 1; 3653 YY_DO_BEFORE_ACTION; /* set up yytext again */ 3654 YY_RULE_SETUP 3655 #line 824 "scan.l" 3656 BEGIN(CCL); return '^'; 3657 YY_BREAK 3658 case 184: 3659 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ 3660 (yy_c_buf_p) = yy_cp = yy_bp + 1; 3661 YY_DO_BEFORE_ACTION; /* set up yytext again */ 3662 YY_RULE_SETUP 3663 #line 825 "scan.l" 3664 return '^'; 3665 YY_BREAK 3666 case 185: 3667 YY_RULE_SETUP 3668 #line 826 "scan.l" 3669 BEGIN(CCL); RETURNCHAR; 3670 YY_BREAK 3671 3672 3673 case 186: 3674 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ 3675 (yy_c_buf_p) = yy_cp = yy_bp + 1; 3676 YY_DO_BEFORE_ACTION; /* set up yytext again */ 3677 YY_RULE_SETUP 3678 #line 830 "scan.l" 3679 return '-'; 3680 YY_BREAK 3681 case 187: 3682 YY_RULE_SETUP 3683 #line 831 "scan.l" 3684 RETURNCHAR; 3685 YY_BREAK 3686 case 188: 3687 YY_RULE_SETUP 3688 #line 832 "scan.l" 3689 BEGIN(SECT2); return ']'; 3690 YY_BREAK 3691 case 189: 3692 /* rule 189 can match eol */ 3693 YY_RULE_SETUP 3694 #line 833 "scan.l" 3695 { 3696 synerr( _( "bad character class" ) ); 3697 BEGIN(SECT2); 3698 return ']'; 3699 } 3700 YY_BREAK 3701 3702 3703 case 190: 3704 YY_RULE_SETUP 3705 #line 841 "scan.l" 3706 BEGIN(CCL); return CCE_ALNUM; 3707 YY_BREAK 3708 case 191: 3709 YY_RULE_SETUP 3710 #line 842 "scan.l" 3711 BEGIN(CCL); return CCE_ALPHA; 3712 YY_BREAK 3713 case 192: 3714 YY_RULE_SETUP 3715 #line 843 "scan.l" 3716 BEGIN(CCL); return CCE_BLANK; 3717 YY_BREAK 3718 case 193: 3719 YY_RULE_SETUP 3720 #line 844 "scan.l" 3721 BEGIN(CCL); return CCE_CNTRL; 3722 YY_BREAK 3723 case 194: 3724 YY_RULE_SETUP 3725 #line 845 "scan.l" 3726 BEGIN(CCL); return CCE_DIGIT; 3727 YY_BREAK 3728 case 195: 3729 YY_RULE_SETUP 3730 #line 846 "scan.l" 3731 BEGIN(CCL); return CCE_GRAPH; 3732 YY_BREAK 3733 case 196: 3734 YY_RULE_SETUP 3735 #line 847 "scan.l" 3736 BEGIN(CCL); return CCE_LOWER; 3737 YY_BREAK 3738 case 197: 3739 YY_RULE_SETUP 3740 #line 848 "scan.l" 3741 BEGIN(CCL); return CCE_PRINT; 3742 YY_BREAK 3743 case 198: 3744 YY_RULE_SETUP 3745 #line 849 "scan.l" 3746 BEGIN(CCL); return CCE_PUNCT; 3747 YY_BREAK 3748 case 199: 3749 YY_RULE_SETUP 3750 #line 850 "scan.l" 3751 BEGIN(CCL); return CCE_SPACE; 3752 YY_BREAK 3753 case 200: 3754 YY_RULE_SETUP 3755 #line 851 "scan.l" 3756 BEGIN(CCL); return CCE_UPPER; 3757 YY_BREAK 3758 case 201: 3759 YY_RULE_SETUP 3760 #line 852 "scan.l" 3761 BEGIN(CCL); return CCE_XDIGIT; 3762 YY_BREAK 3763 case 202: 3764 YY_RULE_SETUP 3765 #line 854 "scan.l" 3766 BEGIN(CCL); return CCE_NEG_ALNUM; 3767 YY_BREAK 3768 case 203: 3769 YY_RULE_SETUP 3770 #line 855 "scan.l" 3771 BEGIN(CCL); return CCE_NEG_ALPHA; 3772 YY_BREAK 3773 case 204: 3774 YY_RULE_SETUP 3775 #line 856 "scan.l" 3776 BEGIN(CCL); return CCE_NEG_BLANK; 3777 YY_BREAK 3778 case 205: 3779 YY_RULE_SETUP 3780 #line 857 "scan.l" 3781 BEGIN(CCL); return CCE_NEG_CNTRL; 3782 YY_BREAK 3783 case 206: 3784 YY_RULE_SETUP 3785 #line 858 "scan.l" 3786 BEGIN(CCL); return CCE_NEG_DIGIT; 3787 YY_BREAK 3788 case 207: 3789 YY_RULE_SETUP 3790 #line 859 "scan.l" 3791 BEGIN(CCL); return CCE_NEG_GRAPH; 3792 YY_BREAK 3793 case 208: 3794 YY_RULE_SETUP 3795 #line 860 "scan.l" 3796 BEGIN(CCL); return CCE_NEG_LOWER; 3797 YY_BREAK 3798 case 209: 3799 YY_RULE_SETUP 3800 #line 861 "scan.l" 3801 BEGIN(CCL); return CCE_NEG_PRINT; 3802 YY_BREAK 3803 case 210: 3804 YY_RULE_SETUP 3805 #line 862 "scan.l" 3806 BEGIN(CCL); return CCE_NEG_PUNCT; 3807 YY_BREAK 3808 case 211: 3809 YY_RULE_SETUP 3810 #line 863 "scan.l" 3811 BEGIN(CCL); return CCE_NEG_SPACE; 3812 YY_BREAK 3813 case 212: 3814 YY_RULE_SETUP 3815 #line 864 "scan.l" 3816 BEGIN(CCL); return CCE_NEG_UPPER; 3817 YY_BREAK 3818 case 213: 3819 YY_RULE_SETUP 3820 #line 865 "scan.l" 3821 BEGIN(CCL); return CCE_NEG_XDIGIT; 3822 YY_BREAK 3823 case 214: 3824 YY_RULE_SETUP 3825 #line 866 "scan.l" 3826 { 3827 format_synerr( 3828 _( "bad character class expression: %s" ), 3829 yytext ); 3830 BEGIN(CCL); return CCE_ALNUM; 3831 } 3832 YY_BREAK 3833 3834 3835 case 215: 3836 YY_RULE_SETUP 3837 #line 875 "scan.l" 3838 { 3839 yylval = myctoi( yytext ); 3840 return NUMBER; 3841 } 3842 YY_BREAK 3843 case 216: 3844 YY_RULE_SETUP 3845 #line 880 "scan.l" 3846 return ','; 3847 YY_BREAK 3848 case 217: 3849 YY_RULE_SETUP 3850 #line 881 "scan.l" 3851 { 3852 BEGIN(SECT2); 3853 if ( lex_compat || posix_compat ) 3854 return END_REPEAT_POSIX; 3855 else 3856 return END_REPEAT_FLEX; 3857 } 3858 YY_BREAK 3859 case 218: 3860 YY_RULE_SETUP 3861 #line 889 "scan.l" 3862 { 3863 synerr( _( "bad character inside {}'s" ) ); 3864 BEGIN(SECT2); 3865 return '}'; 3866 } 3867 YY_BREAK 3868 case 219: 3869 /* rule 219 can match eol */ 3870 YY_RULE_SETUP 3871 #line 895 "scan.l" 3872 { 3873 synerr( _( "missing }" ) ); 3874 BEGIN(SECT2); 3875 ++linenum; 3876 return '}'; 3877 } 3878 YY_BREAK 3879 3880 3881 case 220: 3882 YY_RULE_SETUP 3883 #line 905 "scan.l" 3884 bracelevel = 0; 3885 YY_BREAK 3886 case 221: 3887 YY_RULE_SETUP 3888 #line 907 "scan.l" 3889 ACTION_ECHO; yy_push_state( CODE_COMMENT ); 3890 YY_BREAK 3891 3892 case 222: 3893 YY_RULE_SETUP 3894 #line 910 "scan.l" 3895 { 3896 ACTION_ECHO; 3897 CHECK_REJECT(yytext); 3898 } 3899 YY_BREAK 3900 case 223: 3901 YY_RULE_SETUP 3902 #line 914 "scan.l" 3903 { 3904 ACTION_ECHO; 3905 CHECK_YYMORE(yytext); 3906 } 3907 YY_BREAK 3908 3909 case 224: 3910 YY_RULE_SETUP 3911 #line 920 "scan.l" 3912 ACTION_ECHO; 3913 YY_BREAK 3914 case 225: 3915 /* rule 225 can match eol */ 3916 YY_RULE_SETUP 3917 #line 921 "scan.l" 3918 { 3919 ++linenum; 3920 ACTION_ECHO; 3921 if (bracelevel <= 0 || (doing_codeblock && indented_code)) { 3922 if ( doing_rule_action ) 3923 add_action( "\tYY_BREAK]""]\n" ); 3924 3925 doing_rule_action = doing_codeblock = false; 3926 BEGIN(SECT2); 3927 } 3928 } 3929 YY_BREAK 3930 3931 /* Reject and YYmore() are checked for above, in PERCENT_BRACE_ACTION */ 3932 3933 case 226: 3934 YY_RULE_SETUP 3935 #line 937 "scan.l" 3936 ACTION_ECHO; ++bracelevel; 3937 YY_BREAK 3938 case 227: 3939 YY_RULE_SETUP 3940 #line 938 "scan.l" 3941 ACTION_ECHO; --bracelevel; 3942 YY_BREAK 3943 case 228: 3944 YY_RULE_SETUP 3945 #line 939 "scan.l" 3946 ACTION_ECHO; 3947 YY_BREAK 3948 case 229: 3949 YY_RULE_SETUP 3950 #line 940 "scan.l" 3951 ACTION_ECHO; 3952 YY_BREAK 3953 case 230: 3954 YY_RULE_SETUP 3955 #line 941 "scan.l" 3956 ACTION_ECHO; /* character constant */ 3957 YY_BREAK 3958 case 231: 3959 YY_RULE_SETUP 3960 #line 942 "scan.l" 3961 ACTION_ECHO; BEGIN(CHARACTER_CONSTANT); 3962 YY_BREAK 3963 case 232: 3964 YY_RULE_SETUP 3965 #line 943 "scan.l" 3966 ACTION_ECHO; BEGIN(ACTION_STRING); 3967 YY_BREAK 3968 case 233: 3969 /* rule 233 can match eol */ 3970 YY_RULE_SETUP 3971 #line 944 "scan.l" 3972 { 3973 ++linenum; 3974 ACTION_ECHO; 3975 if (bracelevel <= 0) { 3976 if ( doing_rule_action ) 3977 add_action( "\tYY_BREAK]""]\n" ); 3978 3979 doing_rule_action = false; 3980 BEGIN(SECT2); 3981 } 3982 } 3983 YY_BREAK 3984 case 234: 3985 YY_RULE_SETUP 3986 #line 955 "scan.l" 3987 ACTION_ECHO; 3988 YY_BREAK 3989 3990 3991 case 235: 3992 YY_RULE_SETUP 3993 #line 959 "scan.l" 3994 ACTION_ECHO; 3995 YY_BREAK 3996 case 236: 3997 YY_RULE_SETUP 3998 #line 960 "scan.l" 3999 ACTION_ECHO; BEGIN(ACTION); 4000 YY_BREAK 4001 4002 4003 case 237: 4004 YY_RULE_SETUP 4005 #line 963 "scan.l" 4006 ACTION_ECHO; 4007 YY_BREAK 4008 case 238: 4009 YY_RULE_SETUP 4010 #line 964 "scan.l" 4011 ACTION_ECHO; BEGIN(ACTION); 4012 YY_BREAK 4013 4014 4015 case 239: 4016 /* rule 239 can match eol */ 4017 YY_RULE_SETUP 4018 #line 967 "scan.l" 4019 ACTION_ECHO; 4020 YY_BREAK 4021 case 240: 4022 /* rule 240 can match eol */ 4023 YY_RULE_SETUP 4024 #line 968 "scan.l" 4025 ACTION_ECHO; 4026 YY_BREAK 4027 case 241: 4028 /* rule 241 can match eol */ 4029 YY_RULE_SETUP 4030 #line 969 "scan.l" 4031 ++linenum; ACTION_ECHO; if (bracelevel <= 0) { BEGIN(SECT2); } else { BEGIN(ACTION); } 4032 YY_BREAK 4033 case 242: 4034 YY_RULE_SETUP 4035 #line 970 "scan.l" 4036 ACTION_ECHO; 4037 YY_BREAK 4038 4039 case YY_STATE_EOF(COMMENT): 4040 case YY_STATE_EOF(CODE_COMMENT): 4041 case YY_STATE_EOF(COMMENT_DISCARD): 4042 case YY_STATE_EOF(ACTION): 4043 case YY_STATE_EOF(ACTION_STRING): 4044 case YY_STATE_EOF(CHARACTER_CONSTANT): 4045 #line 973 "scan.l" 4046 { 4047 synerr( _( "EOF encountered inside an action" ) ); 4048 yyterminate(); 4049 } 4050 YY_BREAK 4051 case YY_STATE_EOF(EXTENDED_COMMENT): 4052 case YY_STATE_EOF(GROUP_WITH_PARAMS): 4053 case YY_STATE_EOF(GROUP_MINUS_PARAMS): 4054 #line 978 "scan.l" 4055 { 4056 synerr( _( "EOF encountered inside pattern" ) ); 4057 yyterminate(); 4058 } 4059 YY_BREAK 4060 case 243: 4061 YY_RULE_SETUP 4062 #line 983 "scan.l" 4063 { 4064 yylval = myesc( (unsigned char *) yytext ); 4065 4066 if ( YY_START == FIRSTCCL ) 4067 BEGIN(CCL); 4068 4069 return CHAR; 4070 } 4071 YY_BREAK 4072 4073 case 244: 4074 YY_RULE_SETUP 4075 #line 993 "scan.l" 4076 fputs(escaped_qstart, yyout); 4077 YY_BREAK 4078 case 245: 4079 YY_RULE_SETUP 4080 #line 994 "scan.l" 4081 fputs(escaped_qend, yyout); 4082 YY_BREAK 4083 case 246: 4084 /* rule 246 can match eol */ 4085 YY_RULE_SETUP 4086 #line 995 "scan.l" 4087 ECHO; 4088 YY_BREAK 4089 case 247: 4090 YY_RULE_SETUP 4091 #line 996 "scan.l" 4092 ECHO; 4093 YY_BREAK 4094 case YY_STATE_EOF(SECT3): 4095 #line 997 "scan.l" 4096 { 4097 sectnum = 0; 4098 yyterminate(); 4099 } 4100 YY_BREAK 4101 4102 4103 case 248: 4104 YY_RULE_SETUP 4105 #line 1003 "scan.l" 4106 fprintf(yyout, "[""[%s]""]", escaped_qstart); 4107 YY_BREAK 4108 case 249: 4109 YY_RULE_SETUP 4110 #line 1004 "scan.l" 4111 fprintf(yyout, "[""[%s]""]", escaped_qend); 4112 YY_BREAK 4113 case 250: 4114 /* rule 250 can match eol */ 4115 YY_RULE_SETUP 4116 #line 1005 "scan.l" 4117 ECHO; 4118 YY_BREAK 4119 case 251: 4120 YY_RULE_SETUP 4121 #line 1006 "scan.l" 4122 ECHO; 4123 YY_BREAK 4124 case YY_STATE_EOF(SECT3_NOESCAPE): 4125 #line 1007 "scan.l" 4126 { 4127 sectnum = 0; 4128 yyterminate(); 4129 } 4130 YY_BREAK 4131 4132 case 252: 4133 /* rule 252 can match eol */ 4134 YY_RULE_SETUP 4135 #line 1012 "scan.l" 4136 format_synerr( _( "bad character: %s" ), yytext ); 4137 YY_BREAK 4138 case 253: 4139 YY_RULE_SETUP 4140 #line 1014 "scan.l" 4141 YY_FATAL_ERROR( "flex scanner jammed" ); 4142 YY_BREAK 4143 #line 4143 "<stdout>" 4144 case YY_STATE_EOF(INITIAL): 4145 case YY_STATE_EOF(SECT2): 4146 case YY_STATE_EOF(CODEBLOCK): 4147 case YY_STATE_EOF(PICKUPDEF): 4148 case YY_STATE_EOF(SC): 4149 case YY_STATE_EOF(CARETISBOL): 4150 case YY_STATE_EOF(NUM): 4151 case YY_STATE_EOF(QUOTE): 4152 case YY_STATE_EOF(FIRSTCCL): 4153 case YY_STATE_EOF(CCL): 4154 case YY_STATE_EOF(RECOVER): 4155 case YY_STATE_EOF(PERCENT_BRACE_ACTION): 4156 case YY_STATE_EOF(OPTION): 4157 case YY_STATE_EOF(LINEDIR): 4158 yyterminate(); 4159 4160 case YY_END_OF_BUFFER: 4161 { 4162 /* Amount of text matched not including the EOB char. */ 4163 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; 4164 4165 /* Undo the effects of YY_DO_BEFORE_ACTION. */ 4166 *yy_cp = (yy_hold_char); 4167 YY_RESTORE_YY_MORE_OFFSET 4168 4169 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) 4170 { 4171 /* We're scanning a new file or input source. It's 4172 * possible that this happened because the user 4173 * just pointed yyin at a new source and called 4174 * yylex(). If so, then we have to assure 4175 * consistency between YY_CURRENT_BUFFER and our 4176 * globals. Here is the right place to do so, because 4177 * this is the first action (other than possibly a 4178 * back-up) that will match for the new input source. 4179 */ 4180 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 4181 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; 4182 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; 4183 } 4184 4185 /* Note that here we test for yy_c_buf_p "<=" to the position 4186 * of the first EOB in the buffer, since yy_c_buf_p will 4187 * already have been incremented past the NUL character 4188 * (since all states make transitions on EOB to the 4189 * end-of-buffer state). Contrast this with the test 4190 * in input(). 4191 */ 4192 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 4193 { /* This was really a NUL. */ 4194 yy_state_type yy_next_state; 4195 4196 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; 4197 4198 yy_current_state = yy_get_previous_state( ); 4199 4200 /* Okay, we're now positioned to make the NUL 4201 * transition. We couldn't have 4202 * yy_get_previous_state() go ahead and do it 4203 * for us because it doesn't know how to deal 4204 * with the possibility of jamming (and we don't 4205 * want to build jamming into it because then it 4206 * will run more slowly). 4207 */ 4208 4209 yy_next_state = yy_try_NUL_trans( yy_current_state ); 4210 4211 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 4212 4213 if ( yy_next_state ) 4214 { 4215 /* Consume the NUL. */ 4216 yy_cp = ++(yy_c_buf_p); 4217 yy_current_state = yy_next_state; 4218 goto yy_match; 4219 } 4220 4221 else 4222 { 4223 yy_cp = (yy_c_buf_p); 4224 goto yy_find_action; 4225 } 4226 } 4227 4228 else switch ( yy_get_next_buffer( ) ) 4229 { 4230 case EOB_ACT_END_OF_FILE: 4231 { 4232 (yy_did_buffer_switch_on_eof) = 0; 4233 4234 if ( yywrap( ) ) 4235 { 4236 /* Note: because we've taken care in 4237 * yy_get_next_buffer() to have set up 4238 * yytext, we can now set up 4239 * yy_c_buf_p so that if some total 4240 * hoser (like flex itself) wants to 4241 * call the scanner after we return the 4242 * YY_NULL, it'll still work - another 4243 * YY_NULL will get returned. 4244 */ 4245 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; 4246 4247 yy_act = YY_STATE_EOF(YY_START); 4248 goto do_action; 4249 } 4250 4251 else 4252 { 4253 if ( ! (yy_did_buffer_switch_on_eof) ) 4254 YY_NEW_FILE; 4255 } 4256 break; 4257 } 4258 4259 case EOB_ACT_CONTINUE_SCAN: 4260 (yy_c_buf_p) = 4261 (yytext_ptr) + yy_amount_of_matched_text; 4262 4263 yy_current_state = yy_get_previous_state( ); 4264 4265 yy_cp = (yy_c_buf_p); 4266 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 4267 goto yy_match; 4268 4269 case EOB_ACT_LAST_MATCH: 4270 (yy_c_buf_p) = 4271 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; 4272 4273 yy_current_state = yy_get_previous_state( ); 4274 4275 yy_cp = (yy_c_buf_p); 4276 yy_bp = (yytext_ptr) + YY_MORE_ADJ; 4277 goto yy_find_action; 4278 } 4279 break; 4280 } 4281 4282 default: 4283 YY_FATAL_ERROR( 4284 "fatal flex scanner internal error--no action found" ); 4285 } /* end of action switch */ 4286 } /* end of scanning one token */ 4287 } /* end of user's declarations */ 4288 } /* end of yylex */ 4289 4290 /* yy_get_next_buffer - try to read in a new buffer 4291 * 4292 * Returns a code representing an action: 4293 * EOB_ACT_LAST_MATCH - 4294 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position 4295 * EOB_ACT_END_OF_FILE - end of file 4296 */ 4297 static int yy_get_next_buffer (void) 4298 { 4299 char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; 4300 char *source = (yytext_ptr); 4301 int number_to_move, i; 4302 int ret_val; 4303 4304 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) 4305 YY_FATAL_ERROR( 4306 "fatal flex scanner internal error--end of buffer missed" ); 4307 4308 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) 4309 { /* Don't try to fill the buffer, so this is an EOF. */ 4310 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) 4311 { 4312 /* We matched a single character, the EOB, so 4313 * treat this as a final EOF. 4314 */ 4315 return EOB_ACT_END_OF_FILE; 4316 } 4317 4318 else 4319 { 4320 /* We matched some text prior to the EOB, first 4321 * process it. 4322 */ 4323 return EOB_ACT_LAST_MATCH; 4324 } 4325 } 4326 4327 /* Try to read more data. */ 4328 4329 /* First move last chars to start of buffer. */ 4330 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); 4331 4332 for ( i = 0; i < number_to_move; ++i ) 4333 *(dest++) = *(source++); 4334 4335 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) 4336 /* don't do the read, it's not guaranteed to return an EOF, 4337 * just force an EOF 4338 */ 4339 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; 4340 4341 else 4342 { 4343 int num_to_read = 4344 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; 4345 4346 while ( num_to_read <= 0 ) 4347 { /* Not enough room in the buffer - grow it. */ 4348 4349 /* just a shorter name for the current buffer */ 4350 YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; 4351 4352 int yy_c_buf_p_offset = 4353 (int) ((yy_c_buf_p) - b->yy_ch_buf); 4354 4355 if ( b->yy_is_our_buffer ) 4356 { 4357 int new_size = b->yy_buf_size * 2; 4358 4359 if ( new_size <= 0 ) 4360 b->yy_buf_size += b->yy_buf_size / 8; 4361 else 4362 b->yy_buf_size *= 2; 4363 4364 b->yy_ch_buf = (char *) 4365 /* Include room in for 2 EOB chars. */ 4366 yyrealloc( (void *) b->yy_ch_buf, 4367 (yy_size_t) (b->yy_buf_size + 2) ); 4368 } 4369 else 4370 /* Can't grow it, we don't own it. */ 4371 b->yy_ch_buf = NULL; 4372 4373 if ( ! b->yy_ch_buf ) 4374 YY_FATAL_ERROR( 4375 "fatal error - scanner input buffer overflow" ); 4376 4377 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; 4378 4379 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - 4380 number_to_move - 1; 4381 4382 } 4383 4384 if ( num_to_read > YY_READ_BUF_SIZE ) 4385 num_to_read = YY_READ_BUF_SIZE; 4386 4387 /* Read in more data. */ 4388 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), 4389 (yy_n_chars), num_to_read ); 4390 4391 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 4392 } 4393 4394 if ( (yy_n_chars) == 0 ) 4395 { 4396 if ( number_to_move == YY_MORE_ADJ ) 4397 { 4398 ret_val = EOB_ACT_END_OF_FILE; 4399 yyrestart( yyin ); 4400 } 4401 4402 else 4403 { 4404 ret_val = EOB_ACT_LAST_MATCH; 4405 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = 4406 YY_BUFFER_EOF_PENDING; 4407 } 4408 } 4409 4410 else 4411 ret_val = EOB_ACT_CONTINUE_SCAN; 4412 4413 if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { 4414 /* Extend the array by 50%, plus the number we really need. */ 4415 int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); 4416 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( 4417 (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); 4418 if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 4419 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); 4420 /* "- 2" to take care of EOB's */ 4421 YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); 4422 } 4423 4424 (yy_n_chars) += number_to_move; 4425 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; 4426 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; 4427 4428 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; 4429 4430 return ret_val; 4431 } 4432 4433 /* yy_get_previous_state - get the state just before the EOB char was reached */ 4434 4435 static yy_state_type yy_get_previous_state (void) 4436 { 4437 yy_state_type yy_current_state; 4438 char *yy_cp; 4439 4440 yy_current_state = (yy_start); 4441 yy_current_state += YY_AT_BOL(); 4442 4443 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) 4444 { 4445 YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); 4446 if ( yy_accept[yy_current_state] ) 4447 { 4448 (yy_last_accepting_state) = yy_current_state; 4449 (yy_last_accepting_cpos) = yy_cp; 4450 } 4451 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 4452 { 4453 yy_current_state = (int) yy_def[yy_current_state]; 4454 if ( yy_current_state >= 1114 ) 4455 yy_c = yy_meta[yy_c]; 4456 } 4457 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 4458 } 4459 4460 return yy_current_state; 4461 } 4462 4463 /* yy_try_NUL_trans - try to make a transition on the NUL character 4464 * 4465 * synopsis 4466 * next_state = yy_try_NUL_trans( current_state ); 4467 */ 4468 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) 4469 { 4470 int yy_is_jam; 4471 char *yy_cp = (yy_c_buf_p); 4472 4473 YY_CHAR yy_c = 1; 4474 if ( yy_accept[yy_current_state] ) 4475 { 4476 (yy_last_accepting_state) = yy_current_state; 4477 (yy_last_accepting_cpos) = yy_cp; 4478 } 4479 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) 4480 { 4481 yy_current_state = (int) yy_def[yy_current_state]; 4482 if ( yy_current_state >= 1114 ) 4483 yy_c = yy_meta[yy_c]; 4484 } 4485 yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; 4486 yy_is_jam = (yy_current_state == 1113); 4487 4488 return yy_is_jam ? 0 : yy_current_state; 4489 } 4490 4491 #ifndef YY_NO_UNPUT 4492 4493 static void yyunput (int c, char * yy_bp ) 4494 { 4495 char *yy_cp; 4496 4497 yy_cp = (yy_c_buf_p); 4498 4499 /* undo effects of setting up yytext */ 4500 *yy_cp = (yy_hold_char); 4501 4502 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 4503 { /* need to shift things up to make room */ 4504 /* +2 for EOB chars. */ 4505 int number_to_move = (yy_n_chars) + 2; 4506 char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[ 4507 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2]; 4508 char *source = 4509 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]; 4510 4511 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) 4512 *--dest = *--source; 4513 4514 yy_cp += (int) (dest - source); 4515 yy_bp += (int) (dest - source); 4516 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = 4517 (yy_n_chars) = (int) YY_CURRENT_BUFFER_LVALUE->yy_buf_size; 4518 4519 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 ) 4520 YY_FATAL_ERROR( "flex scanner push-back overflow" ); 4521 } 4522 4523 *--yy_cp = (char) c; 4524 4525 (yytext_ptr) = yy_bp; 4526 (yy_hold_char) = *yy_cp; 4527 (yy_c_buf_p) = yy_cp; 4528 } 4529 4530 #endif 4531 4532 #ifndef YY_NO_INPUT 4533 #ifdef __cplusplus 4534 static int yyinput (void) 4535 #else 4536 static int input (void) 4537 #endif 4538 4539 { 4540 int c; 4541 4542 *(yy_c_buf_p) = (yy_hold_char); 4543 4544 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) 4545 { 4546 /* yy_c_buf_p now points to the character we want to return. 4547 * If this occurs *before* the EOB characters, then it's a 4548 * valid NUL; if not, then we've hit the end of the buffer. 4549 */ 4550 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) 4551 /* This was really a NUL. */ 4552 *(yy_c_buf_p) = '\0'; 4553 4554 else 4555 { /* need more input */ 4556 int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); 4557 ++(yy_c_buf_p); 4558 4559 switch ( yy_get_next_buffer( ) ) 4560 { 4561 case EOB_ACT_LAST_MATCH: 4562 /* This happens because yy_g_n_b() 4563 * sees that we've accumulated a 4564 * token and flags that we need to 4565 * try matching the token before 4566 * proceeding. But for input(), 4567 * there's no matching to consider. 4568 * So convert the EOB_ACT_LAST_MATCH 4569 * to EOB_ACT_END_OF_FILE. 4570 */ 4571 4572 /* Reset buffer status. */ 4573 yyrestart( yyin ); 4574 4575 /*FALLTHROUGH*/ 4576 4577 case EOB_ACT_END_OF_FILE: 4578 { 4579 if ( yywrap( ) ) 4580 #ifdef YY_FLEX_LEX_COMPAT 4581 return 0; 4582 #else 4583 return EOF; 4584 #endif 4585 4586 if ( ! (yy_did_buffer_switch_on_eof) ) 4587 YY_NEW_FILE; 4588 #ifdef __cplusplus 4589 return yyinput(); 4590 #else 4591 return input(); 4592 #endif 4593 } 4594 4595 case EOB_ACT_CONTINUE_SCAN: 4596 (yy_c_buf_p) = (yytext_ptr) + offset; 4597 break; 4598 } 4599 } 4600 } 4601 4602 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ 4603 *(yy_c_buf_p) = '\0'; /* preserve yytext */ 4604 (yy_hold_char) = *++(yy_c_buf_p); 4605 4606 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); 4607 4608 return c; 4609 } 4610 #endif /* ifndef YY_NO_INPUT */ 4611 4612 /** Immediately switch to a different input stream. 4613 * @param input_file A readable stream. 4614 * 4615 * @note This function does not reset the start condition to @c INITIAL . 4616 */ 4617 void yyrestart (FILE * input_file ) 4618 { 4619 4620 if ( ! YY_CURRENT_BUFFER ){ 4621 yyensure_buffer_stack (); 4622 YY_CURRENT_BUFFER_LVALUE = 4623 yy_create_buffer( yyin, YY_BUF_SIZE ); 4624 } 4625 4626 yy_init_buffer( YY_CURRENT_BUFFER, input_file ); 4627 yy_load_buffer_state( ); 4628 } 4629 4630 /** Switch to a different input buffer. 4631 * @param new_buffer The new input buffer. 4632 * 4633 */ 4634 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) 4635 { 4636 4637 /* TODO. We should be able to replace this entire function body 4638 * with 4639 * yypop_buffer_state(); 4640 * yypush_buffer_state(new_buffer); 4641 */ 4642 yyensure_buffer_stack (); 4643 if ( YY_CURRENT_BUFFER == new_buffer ) 4644 return; 4645 4646 if ( YY_CURRENT_BUFFER ) 4647 { 4648 /* Flush out information for old buffer. */ 4649 *(yy_c_buf_p) = (yy_hold_char); 4650 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 4651 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 4652 } 4653 4654 YY_CURRENT_BUFFER_LVALUE = new_buffer; 4655 yy_load_buffer_state( ); 4656 4657 /* We don't actually know whether we did this switch during 4658 * EOF (yywrap()) processing, but the only time this flag 4659 * is looked at is after yywrap() is called, so it's safe 4660 * to go ahead and always set it. 4661 */ 4662 (yy_did_buffer_switch_on_eof) = 1; 4663 } 4664 4665 static void yy_load_buffer_state (void) 4666 { 4667 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; 4668 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; 4669 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; 4670 (yy_hold_char) = *(yy_c_buf_p); 4671 } 4672 4673 /** Allocate and initialize an input buffer state. 4674 * @param file A readable stream. 4675 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. 4676 * 4677 * @return the allocated buffer state. 4678 */ 4679 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) 4680 { 4681 YY_BUFFER_STATE b; 4682 4683 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); 4684 if ( ! b ) 4685 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 4686 4687 b->yy_buf_size = size; 4688 4689 /* yy_ch_buf has to be 2 characters longer than the size given because 4690 * we need to put in 2 end-of-buffer characters. 4691 */ 4692 b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); 4693 if ( ! b->yy_ch_buf ) 4694 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); 4695 4696 b->yy_is_our_buffer = 1; 4697 4698 yy_init_buffer( b, file ); 4699 4700 return b; 4701 } 4702 4703 /** Destroy the buffer. 4704 * @param b a buffer created with yy_create_buffer() 4705 * 4706 */ 4707 void yy_delete_buffer (YY_BUFFER_STATE b ) 4708 { 4709 4710 if ( ! b ) 4711 return; 4712 4713 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ 4714 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; 4715 4716 if ( b->yy_is_our_buffer ) 4717 yyfree( (void *) b->yy_ch_buf ); 4718 4719 yyfree( (void *) b ); 4720 } 4721 4722 /* Initializes or reinitializes a buffer. 4723 * This function is sometimes called more than once on the same buffer, 4724 * such as during a yyrestart() or at EOF. 4725 */ 4726 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) 4727 4728 { 4729 int oerrno = errno; 4730 4731 yy_flush_buffer( b ); 4732 4733 b->yy_input_file = file; 4734 b->yy_fill_buffer = 1; 4735 4736 /* If b is the current buffer, then yy_init_buffer was _probably_ 4737 * called from yyrestart() or through yy_get_next_buffer. 4738 * In that case, we don't want to reset the lineno or column. 4739 */ 4740 if (b != YY_CURRENT_BUFFER){ 4741 b->yy_bs_lineno = 1; 4742 b->yy_bs_column = 0; 4743 } 4744 4745 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0; 4746 4747 errno = oerrno; 4748 } 4749 4750 /** Discard all buffered characters. On the next scan, YY_INPUT will be called. 4751 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. 4752 * 4753 */ 4754 void yy_flush_buffer (YY_BUFFER_STATE b ) 4755 { 4756 if ( ! b ) 4757 return; 4758 4759 b->yy_n_chars = 0; 4760 4761 /* We always need two end-of-buffer characters. The first causes 4762 * a transition to the end-of-buffer state. The second causes 4763 * a jam in that state. 4764 */ 4765 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; 4766 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; 4767 4768 b->yy_buf_pos = &b->yy_ch_buf[0]; 4769 4770 b->yy_at_bol = 1; 4771 b->yy_buffer_status = YY_BUFFER_NEW; 4772 4773 if ( b == YY_CURRENT_BUFFER ) 4774 yy_load_buffer_state( ); 4775 } 4776 4777 /** Pushes the new state onto the stack. The new state becomes 4778 * the current state. This function will allocate the stack 4779 * if necessary. 4780 * @param new_buffer The new state. 4781 * 4782 */ 4783 void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) 4784 { 4785 if (new_buffer == NULL) 4786 return; 4787 4788 yyensure_buffer_stack(); 4789 4790 /* This block is copied from yy_switch_to_buffer. */ 4791 if ( YY_CURRENT_BUFFER ) 4792 { 4793 /* Flush out information for old buffer. */ 4794 *(yy_c_buf_p) = (yy_hold_char); 4795 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); 4796 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); 4797 } 4798 4799 /* Only push if top exists. Otherwise, replace top. */ 4800 if (YY_CURRENT_BUFFER) 4801 (yy_buffer_stack_top)++; 4802 YY_CURRENT_BUFFER_LVALUE = new_buffer; 4803 4804 /* copied from yy_switch_to_buffer. */ 4805 yy_load_buffer_state( ); 4806 (yy_did_buffer_switch_on_eof) = 1; 4807 } 4808 4809 /** Removes and deletes the top of the stack, if present. 4810 * The next element becomes the new top. 4811 * 4812 */ 4813 void yypop_buffer_state (void) 4814 { 4815 if (!YY_CURRENT_BUFFER) 4816 return; 4817 4818 yy_delete_buffer(YY_CURRENT_BUFFER ); 4819 YY_CURRENT_BUFFER_LVALUE = NULL; 4820 if ((yy_buffer_stack_top) > 0) 4821 --(yy_buffer_stack_top); 4822 4823 if (YY_CURRENT_BUFFER) { 4824 yy_load_buffer_state( ); 4825 (yy_did_buffer_switch_on_eof) = 1; 4826 } 4827 } 4828 4829 /* Allocates the stack if it does not exist. 4830 * Guarantees space for at least one push. 4831 */ 4832 static void yyensure_buffer_stack (void) 4833 { 4834 yy_size_t num_to_alloc; 4835 4836 if (!(yy_buffer_stack)) { 4837 4838 /* First allocation is just for 2 elements, since we don't know if this 4839 * scanner will even need a stack. We use 2 instead of 1 to avoid an 4840 * immediate realloc on the next call. 4841 */ 4842 num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ 4843 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc 4844 (num_to_alloc * sizeof(struct yy_buffer_state*) 4845 ); 4846 if ( ! (yy_buffer_stack) ) 4847 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); 4848 4849 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); 4850 4851 (yy_buffer_stack_max) = num_to_alloc; 4852 (yy_buffer_stack_top) = 0; 4853 return; 4854 } 4855 4856 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ 4857 4858 /* Increase the buffer to prepare for a possible push. */ 4859 yy_size_t grow_size = 8 /* arbitrary grow size */; 4860 4861 num_to_alloc = (yy_buffer_stack_max) + grow_size; 4862 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc 4863 ((yy_buffer_stack), 4864 num_to_alloc * sizeof(struct yy_buffer_state*) 4865 ); 4866 if ( ! (yy_buffer_stack) ) 4867 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); 4868 4869 /* zero only the new slots.*/ 4870 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); 4871 (yy_buffer_stack_max) = num_to_alloc; 4872 } 4873 } 4874 4875 /** Setup the input buffer state to scan directly from a user-specified character buffer. 4876 * @param base the character buffer 4877 * @param size the size in bytes of the character buffer 4878 * 4879 * @return the newly allocated buffer state object. 4880 */ 4881 YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) 4882 { 4883 YY_BUFFER_STATE b; 4884 4885 if ( size < 2 || 4886 base[size-2] != YY_END_OF_BUFFER_CHAR || 4887 base[size-1] != YY_END_OF_BUFFER_CHAR ) 4888 /* They forgot to leave room for the EOB's. */ 4889 return NULL; 4890 4891 b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); 4892 if ( ! b ) 4893 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); 4894 4895 b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ 4896 b->yy_buf_pos = b->yy_ch_buf = base; 4897 b->yy_is_our_buffer = 0; 4898 b->yy_input_file = NULL; 4899 b->yy_n_chars = b->yy_buf_size; 4900 b->yy_is_interactive = 0; 4901 b->yy_at_bol = 1; 4902 b->yy_fill_buffer = 0; 4903 b->yy_buffer_status = YY_BUFFER_NEW; 4904 4905 yy_switch_to_buffer( b ); 4906 4907 return b; 4908 } 4909 4910 /** Setup the input buffer state to scan a string. The next call to yylex() will 4911 * scan from a @e copy of @a str. 4912 * @param yystr a NUL-terminated string to scan 4913 * 4914 * @return the newly allocated buffer state object. 4915 * @note If you want to scan bytes that may contain NUL values, then use 4916 * yy_scan_bytes() instead. 4917 */ 4918 YY_BUFFER_STATE yy_scan_string (const char * yystr ) 4919 { 4920 4921 return yy_scan_bytes( yystr, (int) strlen(yystr) ); 4922 } 4923 4924 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will 4925 * scan from a @e copy of @a bytes. 4926 * @param yybytes the byte buffer to scan 4927 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. 4928 * 4929 * @return the newly allocated buffer state object. 4930 */ 4931 YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) 4932 { 4933 YY_BUFFER_STATE b; 4934 char *buf; 4935 yy_size_t n; 4936 int i; 4937 4938 /* Get memory for full buffer, including space for trailing EOB's. */ 4939 n = (yy_size_t) (_yybytes_len + 2); 4940 buf = (char *) yyalloc( n ); 4941 if ( ! buf ) 4942 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); 4943 4944 for ( i = 0; i < _yybytes_len; ++i ) 4945 buf[i] = yybytes[i]; 4946 4947 buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; 4948 4949 b = yy_scan_buffer( buf, n ); 4950 if ( ! b ) 4951 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); 4952 4953 /* It's okay to grow etc. this buffer, and we should throw it 4954 * away when we're done. 4955 */ 4956 b->yy_is_our_buffer = 1; 4957 4958 return b; 4959 } 4960 4961 static void yy_push_state (int _new_state ) 4962 { 4963 if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) 4964 { 4965 yy_size_t new_size; 4966 4967 (yy_start_stack_depth) += YY_START_STACK_INCR; 4968 new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); 4969 4970 if ( ! (yy_start_stack) ) 4971 (yy_start_stack) = (int *) yyalloc( new_size ); 4972 4973 else 4974 (yy_start_stack) = (int *) yyrealloc( 4975 (void *) (yy_start_stack), new_size ); 4976 4977 if ( ! (yy_start_stack) ) 4978 YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); 4979 } 4980 4981 (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; 4982 4983 BEGIN(_new_state); 4984 } 4985 4986 static void yy_pop_state (void) 4987 { 4988 if ( --(yy_start_stack_ptr) < 0 ) 4989 YY_FATAL_ERROR( "start-condition stack underflow" ); 4990 4991 BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); 4992 } 4993 4994 #ifndef YY_EXIT_FAILURE 4995 #define YY_EXIT_FAILURE 2 4996 #endif 4997 4998 static void yynoreturn yy_fatal_error (const char* msg ) 4999 { 5000 fprintf( stderr, "%s\n", msg ); 5001 exit( YY_EXIT_FAILURE ); 5002 } 5003 5004 /* Redefine yyless() so it works in section 3 code. */ 5005 5006 #undef yyless 5007 #define yyless(n) \ 5008 do \ 5009 { \ 5010 /* Undo effects of setting up yytext. */ \ 5011 int yyless_macro_arg = (n); \ 5012 YY_LESS_LINENO(yyless_macro_arg);\ 5013 yytext[yyleng] = (yy_hold_char); \ 5014 (yy_c_buf_p) = yytext + yyless_macro_arg; \ 5015 (yy_hold_char) = *(yy_c_buf_p); \ 5016 *(yy_c_buf_p) = '\0'; \ 5017 yyleng = yyless_macro_arg; \ 5018 } \ 5019 while ( 0 ) 5020 5021 /* Accessor methods (get/set functions) to struct members. */ 5022 5023 /** Get the current line number. 5024 * 5025 */ 5026 int yyget_lineno (void) 5027 { 5028 5029 return yylineno; 5030 } 5031 5032 /** Get the input stream. 5033 * 5034 */ 5035 FILE *yyget_in (void) 5036 { 5037 return yyin; 5038 } 5039 5040 /** Get the output stream. 5041 * 5042 */ 5043 FILE *yyget_out (void) 5044 { 5045 return yyout; 5046 } 5047 5048 /** Get the length of the current token. 5049 * 5050 */ 5051 int yyget_leng (void) 5052 { 5053 return yyleng; 5054 } 5055 5056 /** Get the current token. 5057 * 5058 */ 5059 5060 char *yyget_text (void) 5061 { 5062 return yytext; 5063 } 5064 5065 /** Set the current line number. 5066 * @param _line_number line number 5067 * 5068 */ 5069 void yyset_lineno (int _line_number ) 5070 { 5071 5072 yylineno = _line_number; 5073 } 5074 5075 /** Set the input stream. This does not discard the current 5076 * input buffer. 5077 * @param _in_str A readable stream. 5078 * 5079 * @see yy_switch_to_buffer 5080 */ 5081 void yyset_in (FILE * _in_str ) 5082 { 5083 yyin = _in_str ; 5084 } 5085 5086 void yyset_out (FILE * _out_str ) 5087 { 5088 yyout = _out_str ; 5089 } 5090 5091 int yyget_debug (void) 5092 { 5093 return yy_flex_debug; 5094 } 5095 5096 void yyset_debug (int _bdebug ) 5097 { 5098 yy_flex_debug = _bdebug ; 5099 } 5100 5101 static int yy_init_globals (void) 5102 { 5103 /* Initialization is the same as for the non-reentrant scanner. 5104 * This function is called from yylex_destroy(), so don't allocate here. 5105 */ 5106 5107 (yy_buffer_stack) = NULL; 5108 (yy_buffer_stack_top) = 0; 5109 (yy_buffer_stack_max) = 0; 5110 (yy_c_buf_p) = NULL; 5111 (yy_init) = 0; 5112 (yy_start) = 0; 5113 5114 (yy_start_stack_ptr) = 0; 5115 (yy_start_stack_depth) = 0; 5116 (yy_start_stack) = NULL; 5117 5118 /* Defined in main.c */ 5119 #ifdef YY_STDINIT 5120 yyin = stdin; 5121 yyout = stdout; 5122 #else 5123 yyin = NULL; 5124 yyout = NULL; 5125 #endif 5126 5127 /* For future reference: Set errno on error, since we are called by 5128 * yylex_init() 5129 */ 5130 return 0; 5131 } 5132 5133 /* yylex_destroy is for both reentrant and non-reentrant scanners. */ 5134 int yylex_destroy (void) 5135 { 5136 5137 /* Pop the buffer stack, destroying each element. */ 5138 while(YY_CURRENT_BUFFER){ 5139 yy_delete_buffer( YY_CURRENT_BUFFER ); 5140 YY_CURRENT_BUFFER_LVALUE = NULL; 5141 yypop_buffer_state(); 5142 } 5143 5144 /* Destroy the stack itself. */ 5145 yyfree((yy_buffer_stack) ); 5146 (yy_buffer_stack) = NULL; 5147 5148 /* Destroy the start condition stack. */ 5149 yyfree( (yy_start_stack) ); 5150 (yy_start_stack) = NULL; 5151 5152 /* Reset the globals. This is important in a non-reentrant scanner so the next time 5153 * yylex() is called, initialization will occur. */ 5154 yy_init_globals( ); 5155 5156 return 0; 5157 } 5158 5159 /* 5160 * Internal utility routines. 5161 */ 5162 5163 #ifndef yytext_ptr 5164 static void yy_flex_strncpy (char* s1, const char * s2, int n ) 5165 { 5166 5167 int i; 5168 for ( i = 0; i < n; ++i ) 5169 s1[i] = s2[i]; 5170 } 5171 #endif 5172 5173 #ifdef YY_NEED_STRLEN 5174 static int yy_flex_strlen (const char * s ) 5175 { 5176 int n; 5177 for ( n = 0; s[n]; ++n ) 5178 ; 5179 5180 return n; 5181 } 5182 #endif 5183 5184 void *yyalloc (yy_size_t size ) 5185 { 5186 return malloc(size); 5187 } 5188 5189 void *yyrealloc (void * ptr, yy_size_t size ) 5190 { 5191 5192 /* The cast to (char *) in the following accommodates both 5193 * implementations that use char* generic pointers, and those 5194 * that use void* generic pointers. It works with the latter 5195 * because both ANSI C and C++ allow castless assignment from 5196 * any pointer type to void*, and deal with argument conversions 5197 * as though doing an assignment. 5198 */ 5199 return realloc(ptr, size); 5200 } 5201 5202 void yyfree (void * ptr ) 5203 { 5204 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ 5205 } 5206 5207 #define YYTABLES_NAME "yytables" 5208 5209 #line 1014 "scan.l" 5210 5211 5212 5213 int yywrap(void) 5214 { 5215 if ( --num_input_files > 0 ) 5216 { 5217 set_input_file( *++input_files ); 5218 return 0; 5219 } 5220 5221 else 5222 return 1; 5223 } 5224 5225 5226 /* set_input_file - open the given file (if NULL, stdin) for scanning */ 5227 5228 void set_input_file( char *file ) 5229 { 5230 if ( file && strcmp( file, "-" ) ) 5231 { 5232 infilename = xstrdup(file); 5233 yyin = fopen( infilename, "r" ); 5234 5235 if ( yyin == NULL ) 5236 lerr( _( "can't open %s" ), file ); 5237 } 5238 5239 else 5240 { 5241 yyin = stdin; 5242 infilename = xstrdup("<stdin>"); 5243 } 5244 5245 linenum = 1; 5246 } 5247 5248