|  | #line 1 "tools/widl/parser.yy.c" | 
|  |  | 
|  | #line 3 "tools/widl/parser.yy.c" | 
|  |  | 
|  | #define  YY_INT_ALIGNED short int | 
|  |  | 
|  | /* A lexical scanner generated by flex */ | 
|  |  | 
|  | #define yy_create_buffer parser__create_buffer | 
|  | #define yy_delete_buffer parser__delete_buffer | 
|  | #define yy_scan_buffer parser__scan_buffer | 
|  | #define yy_scan_string parser__scan_string | 
|  | #define yy_scan_bytes parser__scan_bytes | 
|  | #define yy_init_buffer parser__init_buffer | 
|  | #define yy_flush_buffer parser__flush_buffer | 
|  | #define yy_load_buffer_state parser__load_buffer_state | 
|  | #define yy_switch_to_buffer parser__switch_to_buffer | 
|  | #define yypush_buffer_state parser_push_buffer_state | 
|  | #define yypop_buffer_state parser_pop_buffer_state | 
|  | #define yyensure_buffer_stack parser_ensure_buffer_stack | 
|  | #define yy_flex_debug parser__flex_debug | 
|  | #define yyin parser_in | 
|  | #define yyleng parser_leng | 
|  | #define yylex parser_lex | 
|  | #define yylineno parser_lineno | 
|  | #define yyout parser_out | 
|  | #define yyrestart parser_restart | 
|  | #define yytext parser_text | 
|  | #define yywrap parser_wrap | 
|  | #define yyalloc parser_alloc | 
|  | #define yyrealloc parser_realloc | 
|  | #define yyfree parser_free | 
|  |  | 
|  | #define FLEX_SCANNER | 
|  | #define YY_FLEX_MAJOR_VERSION 2 | 
|  | #define YY_FLEX_MINOR_VERSION 6 | 
|  | #define YY_FLEX_SUBMINOR_VERSION 4 | 
|  | #if YY_FLEX_SUBMINOR_VERSION > 0 | 
|  | #define FLEX_BETA | 
|  | #endif | 
|  |  | 
|  | #ifdef yy_create_buffer | 
|  | #define parser__create_buffer_ALREADY_DEFINED | 
|  | #else | 
|  | #define yy_create_buffer parser__create_buffer | 
|  | #endif | 
|  |  | 
|  | #ifdef yy_delete_buffer | 
|  | #define parser__delete_buffer_ALREADY_DEFINED | 
|  | #else | 
|  | #define yy_delete_buffer parser__delete_buffer | 
|  | #endif | 
|  |  | 
|  | #ifdef yy_scan_buffer | 
|  | #define parser__scan_buffer_ALREADY_DEFINED | 
|  | #else | 
|  | #define yy_scan_buffer parser__scan_buffer | 
|  | #endif | 
|  |  | 
|  | #ifdef yy_scan_string | 
|  | #define parser__scan_string_ALREADY_DEFINED | 
|  | #else | 
|  | #define yy_scan_string parser__scan_string | 
|  | #endif | 
|  |  | 
|  | #ifdef yy_scan_bytes | 
|  | #define parser__scan_bytes_ALREADY_DEFINED | 
|  | #else | 
|  | #define yy_scan_bytes parser__scan_bytes | 
|  | #endif | 
|  |  | 
|  | #ifdef yy_init_buffer | 
|  | #define parser__init_buffer_ALREADY_DEFINED | 
|  | #else | 
|  | #define yy_init_buffer parser__init_buffer | 
|  | #endif | 
|  |  | 
|  | #ifdef yy_flush_buffer | 
|  | #define parser__flush_buffer_ALREADY_DEFINED | 
|  | #else | 
|  | #define yy_flush_buffer parser__flush_buffer | 
|  | #endif | 
|  |  | 
|  | #ifdef yy_load_buffer_state | 
|  | #define parser__load_buffer_state_ALREADY_DEFINED | 
|  | #else | 
|  | #define yy_load_buffer_state parser__load_buffer_state | 
|  | #endif | 
|  |  | 
|  | #ifdef yy_switch_to_buffer | 
|  | #define parser__switch_to_buffer_ALREADY_DEFINED | 
|  | #else | 
|  | #define yy_switch_to_buffer parser__switch_to_buffer | 
|  | #endif | 
|  |  | 
|  | #ifdef yypush_buffer_state | 
|  | #define parser_push_buffer_state_ALREADY_DEFINED | 
|  | #else | 
|  | #define yypush_buffer_state parser_push_buffer_state | 
|  | #endif | 
|  |  | 
|  | #ifdef yypop_buffer_state | 
|  | #define parser_pop_buffer_state_ALREADY_DEFINED | 
|  | #else | 
|  | #define yypop_buffer_state parser_pop_buffer_state | 
|  | #endif | 
|  |  | 
|  | #ifdef yyensure_buffer_stack | 
|  | #define parser_ensure_buffer_stack_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyensure_buffer_stack parser_ensure_buffer_stack | 
|  | #endif | 
|  |  | 
|  | #ifdef yylex | 
|  | #define parser_lex_ALREADY_DEFINED | 
|  | #else | 
|  | #define yylex parser_lex | 
|  | #endif | 
|  |  | 
|  | #ifdef yyrestart | 
|  | #define parser_restart_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyrestart parser_restart | 
|  | #endif | 
|  |  | 
|  | #ifdef yylex_init | 
|  | #define parser_lex_init_ALREADY_DEFINED | 
|  | #else | 
|  | #define yylex_init parser_lex_init | 
|  | #endif | 
|  |  | 
|  | #ifdef yylex_init_extra | 
|  | #define parser_lex_init_extra_ALREADY_DEFINED | 
|  | #else | 
|  | #define yylex_init_extra parser_lex_init_extra | 
|  | #endif | 
|  |  | 
|  | #ifdef yylex_destroy | 
|  | #define parser_lex_destroy_ALREADY_DEFINED | 
|  | #else | 
|  | #define yylex_destroy parser_lex_destroy | 
|  | #endif | 
|  |  | 
|  | #ifdef yyget_debug | 
|  | #define parser_get_debug_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyget_debug parser_get_debug | 
|  | #endif | 
|  |  | 
|  | #ifdef yyset_debug | 
|  | #define parser_set_debug_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyset_debug parser_set_debug | 
|  | #endif | 
|  |  | 
|  | #ifdef yyget_extra | 
|  | #define parser_get_extra_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyget_extra parser_get_extra | 
|  | #endif | 
|  |  | 
|  | #ifdef yyset_extra | 
|  | #define parser_set_extra_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyset_extra parser_set_extra | 
|  | #endif | 
|  |  | 
|  | #ifdef yyget_in | 
|  | #define parser_get_in_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyget_in parser_get_in | 
|  | #endif | 
|  |  | 
|  | #ifdef yyset_in | 
|  | #define parser_set_in_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyset_in parser_set_in | 
|  | #endif | 
|  |  | 
|  | #ifdef yyget_out | 
|  | #define parser_get_out_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyget_out parser_get_out | 
|  | #endif | 
|  |  | 
|  | #ifdef yyset_out | 
|  | #define parser_set_out_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyset_out parser_set_out | 
|  | #endif | 
|  |  | 
|  | #ifdef yyget_leng | 
|  | #define parser_get_leng_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyget_leng parser_get_leng | 
|  | #endif | 
|  |  | 
|  | #ifdef yyget_text | 
|  | #define parser_get_text_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyget_text parser_get_text | 
|  | #endif | 
|  |  | 
|  | #ifdef yyget_lineno | 
|  | #define parser_get_lineno_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyget_lineno parser_get_lineno | 
|  | #endif | 
|  |  | 
|  | #ifdef yyset_lineno | 
|  | #define parser_set_lineno_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyset_lineno parser_set_lineno | 
|  | #endif | 
|  |  | 
|  | #ifdef yywrap | 
|  | #define parser_wrap_ALREADY_DEFINED | 
|  | #else | 
|  | #define yywrap parser_wrap | 
|  | #endif | 
|  |  | 
|  | #ifdef yyget_lval | 
|  | #define parser_get_lval_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyget_lval parser_get_lval | 
|  | #endif | 
|  |  | 
|  | #ifdef yyset_lval | 
|  | #define parser_set_lval_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyset_lval parser_set_lval | 
|  | #endif | 
|  |  | 
|  | #ifdef yyget_lloc | 
|  | #define parser_get_lloc_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyget_lloc parser_get_lloc | 
|  | #endif | 
|  |  | 
|  | #ifdef yyset_lloc | 
|  | #define parser_set_lloc_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyset_lloc parser_set_lloc | 
|  | #endif | 
|  |  | 
|  | #ifdef yyalloc | 
|  | #define parser_alloc_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyalloc parser_alloc | 
|  | #endif | 
|  |  | 
|  | #ifdef yyrealloc | 
|  | #define parser_realloc_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyrealloc parser_realloc | 
|  | #endif | 
|  |  | 
|  | #ifdef yyfree | 
|  | #define parser_free_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyfree parser_free | 
|  | #endif | 
|  |  | 
|  | #ifdef yytext | 
|  | #define parser_text_ALREADY_DEFINED | 
|  | #else | 
|  | #define yytext parser_text | 
|  | #endif | 
|  |  | 
|  | #ifdef yyleng | 
|  | #define parser_leng_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyleng parser_leng | 
|  | #endif | 
|  |  | 
|  | #ifdef yyin | 
|  | #define parser_in_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyin parser_in | 
|  | #endif | 
|  |  | 
|  | #ifdef yyout | 
|  | #define parser_out_ALREADY_DEFINED | 
|  | #else | 
|  | #define yyout parser_out | 
|  | #endif | 
|  |  | 
|  | #ifdef yy_flex_debug | 
|  | #define parser__flex_debug_ALREADY_DEFINED | 
|  | #else | 
|  | #define yy_flex_debug parser__flex_debug | 
|  | #endif | 
|  |  | 
|  | #ifdef yylineno | 
|  | #define parser_lineno_ALREADY_DEFINED | 
|  | #else | 
|  | #define yylineno parser_lineno | 
|  | #endif | 
|  |  | 
|  | /* First, we deal with  platform-specific or compiler-specific issues. */ | 
|  |  | 
|  | /* begin standard C headers. */ | 
|  |  | 
|  | #include <stdio.h> | 
|  | #include <string.h> | 
|  | #include <errno.h> | 
|  | #include <stdlib.h> | 
|  |  | 
|  | /* end standard C headers. */ | 
|  |  | 
|  | /* flex integer type definitions */ | 
|  |  | 
|  | #ifndef FLEXINT_H | 
|  | #define FLEXINT_H | 
|  |  | 
|  | /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */ | 
|  |  | 
|  | #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L | 
|  |  | 
|  | /* C++ systems might need __STDC_LIMIT_MACROS defined before including | 
|  | * <stdint.h>, if you want the limit (max/min) macros for int types. | 
|  | */ | 
|  | #ifndef __STDC_LIMIT_MACROS | 
|  | #define __STDC_LIMIT_MACROS 1 | 
|  | #endif | 
|  |  | 
|  | #include <inttypes.h> | 
|  | typedef int8_t flex_int8_t; | 
|  | typedef uint8_t flex_uint8_t; | 
|  | typedef int16_t flex_int16_t; | 
|  | typedef uint16_t flex_uint16_t; | 
|  | typedef int32_t flex_int32_t; | 
|  | typedef uint32_t flex_uint32_t; | 
|  | #else | 
|  | typedef signed char flex_int8_t; | 
|  | typedef short int flex_int16_t; | 
|  | typedef int flex_int32_t; | 
|  | typedef unsigned char flex_uint8_t; | 
|  | typedef unsigned short int flex_uint16_t; | 
|  | typedef unsigned int flex_uint32_t; | 
|  |  | 
|  | /* Limits of integral types. */ | 
|  | #ifndef INT8_MIN | 
|  | #define INT8_MIN               (-128) | 
|  | #endif | 
|  | #ifndef INT16_MIN | 
|  | #define INT16_MIN              (-32767-1) | 
|  | #endif | 
|  | #ifndef INT32_MIN | 
|  | #define INT32_MIN              (-2147483647-1) | 
|  | #endif | 
|  | #ifndef INT8_MAX | 
|  | #define INT8_MAX               (127) | 
|  | #endif | 
|  | #ifndef INT16_MAX | 
|  | #define INT16_MAX              (32767) | 
|  | #endif | 
|  | #ifndef INT32_MAX | 
|  | #define INT32_MAX              (2147483647) | 
|  | #endif | 
|  | #ifndef UINT8_MAX | 
|  | #define UINT8_MAX              (255U) | 
|  | #endif | 
|  | #ifndef UINT16_MAX | 
|  | #define UINT16_MAX             (65535U) | 
|  | #endif | 
|  | #ifndef UINT32_MAX | 
|  | #define UINT32_MAX             (4294967295U) | 
|  | #endif | 
|  |  | 
|  | #ifndef SIZE_MAX | 
|  | #define SIZE_MAX               (~(size_t)0) | 
|  | #endif | 
|  |  | 
|  | #endif /* ! C99 */ | 
|  |  | 
|  | #endif /* ! FLEXINT_H */ | 
|  |  | 
|  | /* begin standard C++ headers. */ | 
|  |  | 
|  | /* TODO: this is always defined, so inline it */ | 
|  | #define yyconst const | 
|  |  | 
|  | #if defined(__GNUC__) && __GNUC__ >= 3 | 
|  | #define yynoreturn __attribute__((__noreturn__)) | 
|  | #else | 
|  | #define yynoreturn | 
|  | #endif | 
|  |  | 
|  | /* Returned upon end-of-file. */ | 
|  | #define YY_NULL 0 | 
|  |  | 
|  | /* Promotes a possibly negative, possibly signed char to an | 
|  | *   integer in range [0..255] for use as an array index. | 
|  | */ | 
|  | #define YY_SC_TO_UI(c) ((YY_CHAR) (c)) | 
|  |  | 
|  | /* Enter a start condition.  This macro really ought to take a parameter, | 
|  | * but we do it the disgusting crufty way forced on us by the ()-less | 
|  | * definition of BEGIN. | 
|  | */ | 
|  | #define BEGIN (yy_start) = 1 + 2 * | 
|  | /* Translate the current start state into a value that can be later handed | 
|  | * to BEGIN to return to the state.  The YYSTATE alias is for lex | 
|  | * compatibility. | 
|  | */ | 
|  | #define YY_START (((yy_start) - 1) / 2) | 
|  | #define YYSTATE YY_START | 
|  | /* Action number for EOF rule of a given start state. */ | 
|  | #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) | 
|  | /* Special action meaning "start processing a new file". */ | 
|  | #define YY_NEW_FILE yyrestart( yyin  ) | 
|  | #define YY_END_OF_BUFFER_CHAR 0 | 
|  |  | 
|  | /* Size of default input buffer. */ | 
|  | #ifndef YY_BUF_SIZE | 
|  | #ifdef __ia64__ | 
|  | /* On IA-64, the buffer size is 16k, not 8k. | 
|  | * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. | 
|  | * Ditto for the __ia64__ case accordingly. | 
|  | */ | 
|  | #define YY_BUF_SIZE 32768 | 
|  | #else | 
|  | #define YY_BUF_SIZE 16384 | 
|  | #endif /* __ia64__ */ | 
|  | #endif | 
|  |  | 
|  | /* The state buf must be large enough to hold one state per character in the main buffer. | 
|  | */ | 
|  | #define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type)) | 
|  |  | 
|  | #ifndef YY_TYPEDEF_YY_BUFFER_STATE | 
|  | #define YY_TYPEDEF_YY_BUFFER_STATE | 
|  | typedef struct yy_buffer_state *YY_BUFFER_STATE; | 
|  | #endif | 
|  |  | 
|  | #ifndef YY_TYPEDEF_YY_SIZE_T | 
|  | #define YY_TYPEDEF_YY_SIZE_T | 
|  | typedef size_t yy_size_t; | 
|  | #endif | 
|  |  | 
|  | extern int yyleng; | 
|  |  | 
|  | extern FILE *yyin, *yyout; | 
|  |  | 
|  | #define EOB_ACT_CONTINUE_SCAN 0 | 
|  | #define EOB_ACT_END_OF_FILE 1 | 
|  | #define EOB_ACT_LAST_MATCH 2 | 
|  |  | 
|  | #define YY_LESS_LINENO(n) | 
|  | #define YY_LINENO_REWIND_TO(ptr) | 
|  |  | 
|  | /* Return all but the first "n" matched characters back to the input stream. */ | 
|  | #define yyless(n) \ | 
|  | do \ | 
|  | { \ | 
|  | /* Undo effects of setting up yytext. */ \ | 
|  | int yyless_macro_arg = (n); \ | 
|  | YY_LESS_LINENO(yyless_macro_arg);\ | 
|  | *yy_cp = (yy_hold_char); \ | 
|  | YY_RESTORE_YY_MORE_OFFSET \ | 
|  | (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ | 
|  | YY_DO_BEFORE_ACTION; /* set up yytext again */ \ | 
|  | } \ | 
|  | while ( 0 ) | 
|  | #define unput(c) yyunput( c, (yytext_ptr)  ) | 
|  |  | 
|  | #ifndef YY_STRUCT_YY_BUFFER_STATE | 
|  | #define YY_STRUCT_YY_BUFFER_STATE | 
|  | struct yy_buffer_state | 
|  | { | 
|  | FILE *yy_input_file; | 
|  |  | 
|  | char *yy_ch_buf;		/* input buffer */ | 
|  | char *yy_buf_pos;		/* current position in input buffer */ | 
|  |  | 
|  | /* Size of input buffer in bytes, not including room for EOB | 
|  | * characters. | 
|  | */ | 
|  | int yy_buf_size; | 
|  |  | 
|  | /* Number of characters read into yy_ch_buf, not including EOB | 
|  | * characters. | 
|  | */ | 
|  | int yy_n_chars; | 
|  |  | 
|  | /* Whether we "own" the buffer - i.e., we know we created it, | 
|  | * and can realloc() it to grow it, and should free() it to | 
|  | * delete it. | 
|  | */ | 
|  | int yy_is_our_buffer; | 
|  |  | 
|  | /* Whether this is an "interactive" input source; if so, and | 
|  | * if we're using stdio for input, then we want to use getc() | 
|  | * instead of fread(), to make sure we stop fetching input after | 
|  | * each newline. | 
|  | */ | 
|  | int yy_is_interactive; | 
|  |  | 
|  | /* Whether we're considered to be at the beginning of a line. | 
|  | * If so, '^' rules will be active on the next match, otherwise | 
|  | * not. | 
|  | */ | 
|  | int yy_at_bol; | 
|  |  | 
|  | int yy_bs_lineno; /**< The line count. */ | 
|  | int yy_bs_column; /**< The column count. */ | 
|  |  | 
|  | /* Whether to try to fill the input buffer when we reach the | 
|  | * end of it. | 
|  | */ | 
|  | int yy_fill_buffer; | 
|  |  | 
|  | int yy_buffer_status; | 
|  |  | 
|  | #define YY_BUFFER_NEW 0 | 
|  | #define YY_BUFFER_NORMAL 1 | 
|  | /* When an EOF's been seen but there's still some text to process | 
|  | * then we mark the buffer as YY_EOF_PENDING, to indicate that we | 
|  | * shouldn't try reading from the input source any more.  We might | 
|  | * still have a bunch of tokens to match, though, because of | 
|  | * possible backing-up. | 
|  | * | 
|  | * When we actually see the EOF, we change the status to "new" | 
|  | * (via yyrestart()), so that the user can continue scanning by | 
|  | * just pointing yyin at a new input file. | 
|  | */ | 
|  | #define YY_BUFFER_EOF_PENDING 2 | 
|  |  | 
|  | }; | 
|  | #endif /* !YY_STRUCT_YY_BUFFER_STATE */ | 
|  |  | 
|  | /* Stack of input buffers. */ | 
|  | static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ | 
|  | static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ | 
|  | static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ | 
|  |  | 
|  | /* We provide macros for accessing buffer states in case in the | 
|  | * future we want to put the buffer states in a more general | 
|  | * "scanner state". | 
|  | * | 
|  | * Returns the top of the stack, or NULL. | 
|  | */ | 
|  | #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ | 
|  | ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ | 
|  | : NULL) | 
|  | /* Same as previous macro, but useful when we know that the buffer stack is not | 
|  | * NULL or when we need an lvalue. For internal use only. | 
|  | */ | 
|  | #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] | 
|  |  | 
|  | /* yy_hold_char holds the character lost when yytext is formed. */ | 
|  | static char yy_hold_char; | 
|  | static int yy_n_chars;		/* number of characters read into yy_ch_buf */ | 
|  | int yyleng; | 
|  |  | 
|  | /* Points to current character in buffer. */ | 
|  | static char *yy_c_buf_p = NULL; | 
|  | static int yy_init = 0;		/* whether we need to initialize */ | 
|  | static int yy_start = 0;	/* start state number */ | 
|  |  | 
|  | /* Flag which is used to allow yywrap()'s to do buffer switches | 
|  | * instead of setting up a fresh yyin.  A bit of a hack ... | 
|  | */ | 
|  | static int yy_did_buffer_switch_on_eof; | 
|  |  | 
|  | void yyrestart ( FILE *input_file  ); | 
|  | void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer  ); | 
|  | YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size  ); | 
|  | void yy_delete_buffer ( YY_BUFFER_STATE b  ); | 
|  | void yy_flush_buffer ( YY_BUFFER_STATE b  ); | 
|  | void yypush_buffer_state ( YY_BUFFER_STATE new_buffer  ); | 
|  | void yypop_buffer_state ( void ); | 
|  |  | 
|  | static void yyensure_buffer_stack ( void ); | 
|  | static void yy_load_buffer_state ( void ); | 
|  | static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file  ); | 
|  | #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) | 
|  |  | 
|  | YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size  ); | 
|  | YY_BUFFER_STATE yy_scan_string ( const char *yy_str  ); | 
|  | YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len  ); | 
|  |  | 
|  | void *yyalloc ( yy_size_t  ); | 
|  | void *yyrealloc ( void *, yy_size_t  ); | 
|  | void yyfree ( void *  ); | 
|  |  | 
|  | #define yy_new_buffer yy_create_buffer | 
|  | #define yy_set_interactive(is_interactive) \ | 
|  | { \ | 
|  | if ( ! YY_CURRENT_BUFFER ){ \ | 
|  | yyensure_buffer_stack (); \ | 
|  | YY_CURRENT_BUFFER_LVALUE =    \ | 
|  | yy_create_buffer( yyin, YY_BUF_SIZE ); \ | 
|  | } \ | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ | 
|  | } | 
|  | #define yy_set_bol(at_bol) \ | 
|  | { \ | 
|  | if ( ! YY_CURRENT_BUFFER ){\ | 
|  | yyensure_buffer_stack (); \ | 
|  | YY_CURRENT_BUFFER_LVALUE =    \ | 
|  | yy_create_buffer( yyin, YY_BUF_SIZE ); \ | 
|  | } \ | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ | 
|  | } | 
|  | #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) | 
|  |  | 
|  | /* Begin user sect3 */ | 
|  |  | 
|  | #define parser_wrap() (/*CONSTCOND*/1) | 
|  | #define YY_SKIP_YYWRAP | 
|  | typedef flex_uint8_t YY_CHAR; | 
|  |  | 
|  | FILE *yyin = NULL, *yyout = NULL; | 
|  |  | 
|  | typedef int yy_state_type; | 
|  |  | 
|  | extern int yylineno; | 
|  | int yylineno = 1; | 
|  |  | 
|  | extern char *yytext; | 
|  | #ifdef yytext_ptr | 
|  | #undef yytext_ptr | 
|  | #endif | 
|  | #define yytext_ptr yytext | 
|  |  | 
|  | static yy_state_type yy_get_previous_state ( void ); | 
|  | static yy_state_type yy_try_NUL_trans ( yy_state_type current_state  ); | 
|  | static int yy_get_next_buffer ( void ); | 
|  | static void yynoreturn yy_fatal_error ( const char* msg  ); | 
|  |  | 
|  | /* Done after the current pattern has been matched and before the | 
|  | * corresponding action - sets up yytext. | 
|  | */ | 
|  | #define YY_DO_BEFORE_ACTION \ | 
|  | (yytext_ptr) = yy_bp; \ | 
|  | yyleng = (int) (yy_cp - yy_bp); \ | 
|  | (yy_hold_char) = *yy_cp; \ | 
|  | *yy_cp = '\0'; \ | 
|  | (yy_c_buf_p) = yy_cp; | 
|  | #define YY_NUM_RULES 219 | 
|  | #define YY_END_OF_BUFFER 220 | 
|  | /* This struct is not used in this scanner, | 
|  | but its presence is necessary. */ | 
|  | struct yy_trans_info | 
|  | { | 
|  | flex_int32_t yy_verify; | 
|  | flex_int32_t yy_nxt; | 
|  | }; | 
|  | static const flex_int16_t yy_accept[1469] = | 
|  | {   0, | 
|  | 0,    0,    0,    0,    0,    0,    0,    0,    4,    4, | 
|  | 220,  218,  207,  206,  218,  218,  218,  218,  218,  218, | 
|  | 202,  202,  218,  218,  218,  200,  200,  200,  200,  200, | 
|  | 200,  144,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  218,  207,  143,  200,  218,  202,  202,  200,  200, | 
|  | 8,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 207,  143,  219,    5,    7,  219,    4,    4,    4,  212, | 
|  | 0,  204,    0,  216,    0,  205,    0,  210,    0,    0, | 
|  |  | 
|  | 202,  202,  202,    0,  208,  214,  211,  213,  209,  200, | 
|  | 200,    0,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  215,    0,  143, | 
|  | 0,  143,    0,  200,    0,  202,    0,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,   68, | 
|  |  | 
|  | 200,  200,  200,   74,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,    0,  143,  143,    5,    5,    7,    0,    6,    0, | 
|  | 4,    4,    4,  217,  141,  201,  200,    0,  203,    0, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  177,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  |  | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,    0,    0,  200,    0,  202,    0,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,   84,  200,  200,  200,  200,  200,   94, | 
|  | 200,  200,   98,  200,  200,  200,  200,  108,  200,  200, | 
|  | 200,  112,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  |  | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,    6,    4,    4,    0,  201,  201,  200, | 
|  | 146,  200,  147,  200,  200,  200,  200,  157,  158,  200, | 
|  | 159,  200,  200,  200,  200,  200,  200,  200,  200,  168, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  180, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  198, | 
|  | 200,    0,    0,  200,    0,  202,    0,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,   22, | 
|  | 200,  157,  200,  200,   27,  200,  200,  200,  200,  200, | 
|  |  | 
|  | 200,  200,  200,  200,  200,  200,   48,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,   60,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,   77,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,   89, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  133,  200,  200,  200,  200,  200,    4,    4,    0, | 
|  | 141,  145,  200,  200,  200,  200,  200,  148,  200,  161, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  171,  200, | 
|  |  | 
|  | 173,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  188,  200,  200,  191,  200,  200,  200, | 
|  | 200,  200,  196,  200,  200,    0,    0,  200,    0,  202, | 
|  | 0,  200,  200,  200,   12,  200,  200,  200,  200,  200, | 
|  | 18,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,   52,  200,  200,  200,  200,   58,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,   80,  200,   82,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  |  | 
|  | 200,  200,  200,  200,  107,  200,  110,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,    4,    3,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  167,  200,  170,  200,  174, | 
|  | 176,  200,  200,  200,  182,  200,  149,  200,  200,  200, | 
|  | 200,  189,  190,  192,  200,  193,  194,  200,  200,  200, | 
|  | 0,    0,  200,    0,  202,    0,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,   36,   37,  200,  200, | 
|  |  | 
|  | 200,  200,  200,  200,  200,   50,  200,  200,  200,  200, | 
|  | 200,  200,  200,   61,  200,  200,  200,   67,  200,   70, | 
|  | 71,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 86,  200,  200,  200,   91,   93,  200,  200,  200,  200, | 
|  | 200,  200,  102,  200,  200,  200,  109,  200,  200,  200, | 
|  | 200,  116,  117,  200,  120,  200,  122,  200,  124,  194, | 
|  | 200,  200,  200,  130,  200,  200,  200,  135,  200,  200, | 
|  | 200,    4,    3,    3,  200,  152,  154,  200,  200,  156, | 
|  | 160,  200,  163,  164,  200,  200,  200,  200,  200,  200, | 
|  | 179,  181,  200,  200,  200,  200,  200,  150,  195,  200, | 
|  |  | 
|  | 199,    0,    0,  200,    0,  202,    0,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 25,  200,  200,  200,  200,  200,   35,  164,  200,  200, | 
|  | 200,   46,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,   75,  200,  200, | 
|  | 200,  200,   83,   85,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  103,  104,  200,  200,  200,  200, | 
|  | 200,  200,  119,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  134,  136,  200,  200,    4,    3,  200,  200,  200, | 
|  | 200,  200,  165,  200,  200,  172,  200,  200,  200,  200, | 
|  |  | 
|  | 185,  186,  200,  197,    0,  139,  200,    0,  202,    0, | 
|  | 200,  200,  200,  200,   14,  200,  200,  200,  200,  200, | 
|  | 21,  200,  200,   26,  200,  200,  200,   33,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  200,   51,   53,  200, | 
|  | 200,  200,  200,  200,  200,   63,  200,  200,  200,  200, | 
|  | 200,  200,   79,  200,  200,  200,  200,  200,  200,   96, | 
|  | 97,   99,  200,  200,  200,  200,  111,  200,  200,  200, | 
|  | 200,  121,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,    4,    3,  200,  153,  151,  200,  162,  200, | 
|  | 200,  175,  178,  183,  200,  200,    0,  200,    0,    0, | 
|  |  | 
|  | 202,  200,  200,   13,  200,   16,   17,  200,  200,   23, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,   47,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,   78,  200,  200,  200, | 
|  | 200,  200,  200,  200,  200,  200,  106,  200,  200,  200, | 
|  | 200,  200,  125,  200,  127,  200,  129,  200,  200,  137, | 
|  | 200,    4,    3,    0,  142,  200,  200,  200,  184,  200, | 
|  | 0,  200,    0,    0,  200,  200,   15,   19,  200,   24, | 
|  | 200,   29,  200,  200,  200,  200,  200,  200,  200,   43, | 
|  | 200,  200,  200,  200,  200,  200,  200,  200,  200,   64, | 
|  |  | 
|  | 69,  200,  200,   76,  200,  200,  200,  200,  200,  200, | 
|  | 200,  200,  105,  200,  200,  115,  200,  200,  200,  200, | 
|  | 200,  200,  200,    1,    3,  155,  200,  200,  200,    0, | 
|  | 200,    0,    0,   10,  200,   20,   28,  200,  200,  200, | 
|  | 39,  200,  200,  200,  200,   45,  200,   54,   55,  200, | 
|  | 200,  200,   62,  200,  200,  200,  200,  200,  200,  200, | 
|  | 200,   92,  200,  200,  200,  200,  114,  118,  200,  126, | 
|  | 128,  200,  200,  200,    3,  200,  200,  187,    0,    0, | 
|  | 0,    0,   11,  200,  200,  200,  200,   41,  200,  200, | 
|  | 200,  200,   57,  200,  200,  200,  200,  200,  200,   87, | 
|  |  | 
|  | 88,  200,  200,  200,  200,  113,  200,  131,  200,  138, | 
|  | 3,  166,  200,    0,    0,    0,  200,  200,  200,  200, | 
|  | 42,  200,  200,  200,  200,  200,   66,   72,  200,  200, | 
|  | 90,   95,  200,  200,  200,  200,    3,  169,    0,    0, | 
|  | 0,   30,  200,  200,  200,  200,  200,  200,   59,  200, | 
|  | 200,  200,  100,  200,  200,  200,    3,    0,    0,    0, | 
|  | 200,   34,  200,   40,  200,   49,   56,  200,   73,  200, | 
|  | 101,  200,  200,    2,    0,    0,    0,  200,  200,   38, | 
|  | 200,  200,  200,  200,  132,    2,    0,    0,    0,  200, | 
|  | 200,  200,   65,  200,  200,    0,    0,    0,  200,  200, | 
|  |  | 
|  | 200,  200,  200,  140,    0,    0,  200,  200,  200,   81, | 
|  | 200,    0,    0,  200,  200,  200,  200,    0,    0,  200, | 
|  | 200,  200,  123,    0,    0,  200,  200,  200,    0,    0, | 
|  | 200,  200,  200,    0,    0,  200,   32,  200,    0,    0, | 
|  | 200,   44,    0,    0,   31,    0,    0,    0,    0,    0, | 
|  | 0,    0,    0,    0,    0,    0,    0,    0,    0,    0, | 
|  | 0,    0,    0,    0,    9,    0,    9,    0 | 
|  | } ; | 
|  |  | 
|  | static const YY_CHAR yy_ec[256] = | 
|  | {   0, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    2,    3, | 
|  | 1,    2,    2,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    2,    4,    5,    6,    1,    1,    7,    8,    9, | 
|  | 1,    1,   10,    1,   11,   12,    1,   13,   14,   15, | 
|  | 16,   17,   18,   19,   18,   18,   18,    1,    1,   20, | 
|  | 21,   22,    1,    1,   23,   24,   24,   24,   25,   26, | 
|  | 27,   27,   27,   27,   27,   28,   27,   29,   27,   27, | 
|  | 27,   30,   31,   32,   33,   27,   27,   34,   35,   27, | 
|  | 36,   37,   38,    1,   39,    1,   40,   41,   42,   43, | 
|  |  | 
|  | 44,   45,   46,   47,   48,   49,   50,   51,   52,   53, | 
|  | 54,   55,   56,   57,   58,   59,   60,   61,   62,   63, | 
|  | 64,   65,    1,   66,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  |  | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1 | 
|  | } ; | 
|  |  | 
|  | static const YY_CHAR yy_meta[67] = | 
|  | {   0, | 
|  | 1,    1,    2,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    3,    3,    3,    3,    3,    3,    3,    1, | 
|  | 1,    1,    3,    3,    3,    3,    4,    4,    4,    4, | 
|  | 4,    4,    4,    4,    4,    1,    1,    1,    4,    3, | 
|  | 3,    3,    3,    3,    3,    4,    4,    4,    4,    4, | 
|  | 4,    4,    4,    4,    4,    4,    4,    4,    4,    4, | 
|  | 4,    4,    4,    4,    4,    1 | 
|  | } ; | 
|  |  | 
|  | static const flex_int16_t yy_base[1512] = | 
|  | {   0, | 
|  | 0,   65,  113,   66,   60,   67, 2486, 2485,   88,   90, | 
|  | 2489, 2492, 2492, 2492, 2467,   64, 2480,   62, 2464, 2473, | 
|  | 164,   53,   68, 2463,   73,    0, 2460, 2477, 2448, 2457, | 
|  | 2449, 2492,   64, 2423,   36,  146,   48,   51, 2426,   57, | 
|  | 58,   59,   61, 2436,   84,   89,  143, 2411, 2421, 2419, | 
|  | 2430, 2405,  157,  132,  140,  223,  256,  151,  307, 2447, | 
|  | 2492,  165,  165,  248,  309,  198,  287,  186,  313,  292, | 
|  | 314,  177,  321,  252,  218,  331,  188,  257,  356,  162, | 
|  | 141, 2467, 2492,  399,    0,  207,    0, 2420, 2419, 2492, | 
|  | 248, 2492, 2463, 2492,  195, 2492, 2462, 2492, 2452,  406, | 
|  |  | 
|  | 220, 2492,   84,    0, 2492, 2492, 2492, 2492, 2492,    0, | 
|  | 2435,  281, 2434, 2435, 2427,  329, 2416, 2418, 2417, 2397, | 
|  | 2407, 2400, 2394, 2394, 2407, 2410,  234, 2394,  344, 2390, | 
|  | 2387, 2386, 2388, 2385, 2389, 2389, 2386, 2385,  278, 2398, | 
|  | 2385, 2378, 2393, 2383, 2376, 2379,  150, 2379, 2377,  248, | 
|  | 2390,  105, 2381, 2373,  185, 2379, 2379, 2492,  386,  144, | 
|  | 2377,  312, 2367, 2380,  426,  459,    0,  507, 2394, 2362, | 
|  | 77, 2369, 2366,  351, 2354, 2358, 2363,  321, 2361, 2355, | 
|  | 277, 2369,  355, 2354,  463, 2353, 2359,  349, 2369,  387, | 
|  | 2364,  406, 2347,  439, 2349, 2361, 2351, 2352, 2359, 2357, | 
|  |  | 
|  | 2347, 2356,  287,  456, 2350, 2344,  215,  251,  369,  373, | 
|  | 2356, 2335,  352, 2345, 2342, 2348, 2332, 2331, 2345,  377, | 
|  | 2340, 2333, 2329, 2344, 2331,  498,  444, 2323,  502, 2334, | 
|  | 2324, 2340, 2336,  297, 2334, 2329, 2337, 2318, 2317, 2334, | 
|  | 2315,  451, 2369, 2368, 2367,  553,    0,  423, 2366,  433, | 
|  | 0, 2324, 2313, 2492,  560,  530, 2334,  451, 2492, 2361, | 
|  | 2335, 2337, 2336, 2307, 2301, 2315, 2315, 2305, 2311, 2310, | 
|  | 2311, 2295, 2300, 2292, 2310, 2297, 2307, 2302, 2290, 2303, | 
|  | 2291, 2288, 2297, 2300, 2296, 2294, 2283, 2288, 2291, 2277, | 
|  | 2287, 2285, 2271, 2286, 2287, 2273, 2279, 2266, 2266, 2267, | 
|  |  | 
|  | 2270, 2278, 2270, 2261, 2277, 2258, 2258, 2272, 2261, 2266, | 
|  | 2270, 2272, 2268, 2270, 2258,  592,  625,    0,  673, 2260, | 
|  | 2250, 2255,  442, 2251, 2247, 2249, 2249, 2247, 2257, 2252, | 
|  | 2258, 2253, 2245, 2253, 2250,  403,  404, 2234,  440, 2252, | 
|  | 2234,  458, 2237, 2230, 2237, 2246, 2232, 2230, 2227, 2230, | 
|  | 2231, 2230, 2229, 2233, 2236, 2233, 2233, 2220, 2231, 2221, | 
|  | 2218, 2232, 2226,  483, 2218, 2208, 2222, 2215, 2209, 2209, | 
|  | 2187, 2174, 2156,    0, 2154, 2158,  520, 2163, 2166,    0, | 
|  | 2169, 2160,    0, 2150, 2147, 2152,  534,    0, 2153, 2157, | 
|  | 2155,    0, 2140, 2136, 2123, 2120, 2134, 2135, 2121,  453, | 
|  |  | 
|  | 468, 2118, 2132, 2122, 2130,  473,  478, 2130, 2128, 2131, | 
|  | 2112, 2110, 2120, 2161, 2098, 2091,  609, 2492,  489, 2122, | 
|  | 0, 2123,    0, 2086, 2085, 2089, 2098,    0,    0, 2090, | 
|  | 0, 2100, 2080, 2082, 2097, 2072, 2085, 2082, 2065,    0, | 
|  | 2058, 2057, 2054, 2061, 2054, 2053, 2056, 2051, 2067,    0, | 
|  | 2052, 2054, 2046, 2059, 2054, 2039, 2035, 2034, 2022, 2036, | 
|  | 2025, 2027, 2029, 2036, 2033, 2032, 2030, 2019, 2025,    0, | 
|  | 2009, 2014, 2018, 2011,  706,  739,    0,  787, 1988, 2004, | 
|  | 2003, 1993, 2003, 1985, 1984, 2001, 1999, 2001, 1999,    0, | 
|  | 1995, 1994,  500, 1981,    0, 1992, 1963,  538, 1962, 1972, | 
|  |  | 
|  | 1954, 1969, 1971,  535, 1971, 1971,    0, 1958, 1965, 1953, | 
|  | 1942, 1946, 1940, 1951, 1939, 1926, 1939,    0, 1931,  542, | 
|  | 1937, 1925, 1922, 1930, 1934, 1928, 1927, 1915,    0, 1914, | 
|  | 1919, 1916, 1919, 1921, 1911, 1893, 1906, 1891, 1890, 1883, | 
|  | 1900, 1902, 1883,  540, 1891, 1893, 1881, 1891,  557, 1890, | 
|  | 1869, 1884, 1874, 1863, 1872,  554, 1858, 1874, 1862,  560, | 
|  | 1870, 1868, 1862,  603, 1867, 1868, 1849, 1861, 1841, 1861, | 
|  | 1853,    0, 1832, 1827, 1835, 1825, 1842, 1841, 1820,  664, | 
|  | 801,    0, 1848,  572, 1835, 1823, 1835,    0, 1816,    0, | 
|  | 1813, 1811, 1816, 1826, 1799, 1807, 1811, 1796,    0, 1804, | 
|  |  | 
|  | 0, 1788, 1802, 1800, 1787, 1800, 1798, 1786, 1789, 1778, | 
|  | 1775, 1776, 1767,    0, 1775, 1772,    0, 1774, 1764, 1755, | 
|  | 1766, 1768,    0, 1758, 1771, 1770, 1756, 1752,  833,  866, | 
|  | 0,  914, 1762, 1755,    0, 1746, 1746, 1745, 1732, 1734, | 
|  | 1743, 1734, 1739, 1737, 1736, 1737, 1736, 1717, 1716, 1706, | 
|  | 506, 1716, 1723, 1702, 1710, 1700, 1710, 1697, 1703, 1703, | 
|  | 1702, 1697,    0,  397, 1686, 1701, 1703,    0, 1702, 1692, | 
|  | 1681, 1686, 1661, 1666, 1664, 1673, 1658, 1667, 1672, 1660, | 
|  | 1673, 1664, 1652,    0, 1669,    0, 1662, 1663, 1658, 1647, | 
|  | 1643, 1627, 1621, 1625, 1624, 1634, 1628, 1626, 1639, 1634, | 
|  |  | 
|  | 1634, 1632, 1615, 1628,    0,   56,    0,   67,  111,  150, | 
|  | 229,  292,  359,  411,  420,  440,  447,  506,  550,  566, | 
|  | 578,  577,  590,  587,  594,  603,  592,  608,  601,  603, | 
|  | 607,  616,  659,  632,  648,  647,  631,  613,  620,  616, | 
|  | 621,  640,  634,  635,  636,    0,  642,    0,  662,  651, | 
|  | 0,  663,  640,  647,    0,  666,    0,  648,  664,  665, | 
|  | 666,    0,    0,    0,  660,    0,    0,  667,  682,  668, | 
|  | 673,  693,  677,  947,  980,    0, 1028,  676,  696,  694, | 
|  | 679,  680,  696,  697,  682,  703,  693,  705,  705,  702, | 
|  | 719,  707,  728,  710,  728,  720,    0,    0,  714,  734, | 
|  |  | 
|  | 731,  712,  733,  721,  746,    0,  733,  744,  744,  741, | 
|  | 743,  734,  753,  755,  742,  745,  740,    0,  739,    0, | 
|  | 0,  767,  760,  765,  763,  783,  779,  773,  781,  782, | 
|  | 0,  772,  795,  792,  798,    0,  784,  774,  800,  801, | 
|  | 791,  786,    0,  785,  794,  795,    0,  804,  816,  802, | 
|  | 820,    0,  824,  806,    0,  808,    0,  827,    0,  828, | 
|  | 820,  821,  810,    0,  831,  813,  834,    0,  834,  842, | 
|  | 853,  853,    0,  894,  874,  879,    0,  849,  844,    0, | 
|  | 0,  843,    0,    0,  859,  860,  846,  853,  865,  872, | 
|  | 0,    0,  873,  868,  861,  861,  878,    0,    0,  878, | 
|  |  | 
|  | 0,  865,  921,  884, 1061, 1094,    0, 1142,  885,  875, | 
|  | 891,  892,  893,  889,  901,  884,  892,  902,  890,  889, | 
|  | 0,  900,  911,  911,  914,  908,    0,  939,  909,  930, | 
|  | 933,    0,  931,  936,  918,  936,  930,  922,  925,  926, | 
|  | 935,  942,  958,  959,  965,  951,  952,    0,  948,  966, | 
|  | 972,  968,    0,    0,  959,  959,  966,  981,  975,  984, | 
|  | 978,  987,  993,  994,    0,  977,  991,  972,  984,  994, | 
|  | 980,  995,    0, 1006, 1008, 1007, 1003,  998, 1007, 1002, | 
|  | 1009,    0,    0, 1013, 1005, 1016, 1006, 1030, 1050, 1030, | 
|  | 1042, 1039,    0, 1031, 1049,    0, 1049, 1047, 1048, 1049, | 
|  |  | 
|  | 0,    0, 1043,    0, 1055, 1094, 1051, 1175, 1210, 1087, | 
|  | 1088, 1059, 1074, 1057,    0, 1062, 1062, 1064, 1076, 1082, | 
|  | 0, 1067, 1075,    0, 1070, 1079, 1084, 1071, 1079, 1092, | 
|  | 1087, 1103, 1098, 1102, 1098, 1103, 1097,    0,    0, 1095, | 
|  | 1106, 1112, 1112, 1102, 1119,    0, 1111, 1116, 1126, 1132, | 
|  | 1119, 1115,    0, 1121, 1135, 1136, 1119, 1127, 1139,    0, | 
|  | 0,    0, 1132, 1138, 1151, 1153,    0, 1138, 1159, 1159, | 
|  | 1150,    0, 1151, 1148, 1143, 1162, 1170, 1151, 1153, 1172, | 
|  | 1170, 1156, 1168, 1191, 1230,    0,    0, 1189,    0, 1188, | 
|  | 1175,    0,    0,    0, 1177, 1196, 1191, 1188, 1260,    0, | 
|  |  | 
|  | 1230, 1191, 1203,    0, 1192,    0,    0, 1203, 1196,    0, | 
|  | 1189, 1189, 1206, 1211, 1208, 1192, 1201, 1204, 1205, 1217, | 
|  | 1215, 1205, 1207,    0, 1211, 1202, 1205, 1218, 1207, 1213, | 
|  | 1205, 1223, 1213, 1239, 1234, 1240,    0, 1241, 1247, 1248, | 
|  | 1242, 1251, 1233, 1247, 1250, 1250,    0, 1257, 1249, 1255, | 
|  | 1256, 1253,    0, 1252,    0, 1268,    0, 1262, 1252,    0, | 
|  | 1264, 1303, 1258, 1312, 2492, 1256, 1276, 1257,    0, 1260, | 
|  | 1267, 1280, 1309,    0, 1285, 1279,    0,    0, 1287,    0, | 
|  | 1278,    0, 1284, 1281, 1295, 1297, 1290, 1282, 1302,    0, | 
|  | 1291, 1302, 1292, 1303, 1294, 1315, 1296, 1315, 1299, 1317, | 
|  |  | 
|  | 0, 1313, 1322,    0, 1324, 1313, 1314, 1325, 1321, 1320, | 
|  | 1316, 1325,    0, 1331, 1313,    0, 1329, 1315, 1331, 1318, | 
|  | 1337, 1319, 1339,    0, 1323,    0, 1339, 1324, 1325, 1344, | 
|  | 1383, 1373,    0,    0, 1349,    0,    0, 1351, 1337, 1343, | 
|  | 0, 1357, 1358, 1352, 1346,    0, 1363,    0,    0, 1353, | 
|  | 1349, 1368,    0, 1355, 1359, 1358, 1359, 1378, 1376, 1377, | 
|  | 1371,    0, 1369, 1370, 1385, 1368,    0,    0, 1383,    0, | 
|  | 0, 1377, 1385, 1379, 1387, 1388, 1394,    0, 1432, 1433, | 
|  | 1483,    0,    0, 1385, 1389, 1387, 1388,    0, 1396, 1393, | 
|  | 1402, 1400,    0, 1385, 1392, 1395, 1404, 1405, 1405,    0, | 
|  |  | 
|  | 0, 1406, 1398, 1395, 1393,    0, 1391,    0, 1398,    0, | 
|  | 1411,    0, 1398, 1418, 1516, 1448, 1416, 1407, 1408, 1419, | 
|  | 0, 1406, 1406, 1415, 1423, 1409,    0,    0, 1418, 1423, | 
|  | 0,    0, 1427, 1421, 1414, 1417, 1427,    0, 1419, 1466, | 
|  | 0, 1439, 1426, 1440, 1429, 1423, 1439, 1440,    0, 1441, | 
|  | 1442, 1447,    0, 1429, 1450, 1436, 1428, 1439, 1549,    0, | 
|  | 1452,    0, 1450,    0, 1450,    0,    0, 1440,    0, 1443, | 
|  | 0, 1464, 1455,    0, 1465, 1582,    0, 1460, 1471,    0, | 
|  | 1463, 1458, 1470, 1479,    0,    0, 1467, 1615,    0, 1463, | 
|  | 1465, 1494,    0, 1483, 1485, 1497, 1648, 1533, 1501, 1498, | 
|  |  | 
|  | 1483, 1491, 1506, 2492, 1539,    0, 1494, 1512, 1514,    0, | 
|  | 1503, 1681,    0, 1507, 1518, 1528, 1527, 1714,    0, 1536, | 
|  | 1529, 1531,    0, 1747,    0, 1528, 1515, 1537, 1780, 1571, | 
|  | 1535, 1540, 1543, 1575,    0, 1522,    0, 1538, 1813,    0, | 
|  | 1558,    0, 1846,    0,    0, 1879,    0, 1912,    0, 1945, | 
|  | 0, 1978,    0, 2011,    0, 2044,    0, 2077,    0, 2110, | 
|  | 0, 2143,    0, 2176, 2492, 1598, 2492, 2492, 2221, 2225, | 
|  | 2229, 2233, 2237, 2239, 2243, 2247, 2251, 1601, 2255, 1607, | 
|  | 1608, 1609, 1610, 2259, 1611, 1612, 1613, 1614, 1615, 1616, | 
|  | 1617, 1618, 2263, 1632, 1633, 1634, 1639, 1640, 1641, 1642, | 
|  |  | 
|  | 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1665, | 
|  | 1666 | 
|  | } ; | 
|  |  | 
|  | static const flex_int16_t yy_def[1512] = | 
|  | {   0, | 
|  | 1468,    1,    1,    3, 1469, 1469, 1470, 1470, 1471, 1471, | 
|  | 1468, 1468, 1468, 1468, 1468, 1472, 1468, 1473, 1468, 1468, | 
|  | 1468,   21, 1468, 1468, 1468, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1468, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1468, 1468, 1468, 1474, 1472, 1468,   57, 1474,   59, | 
|  | 1468,   59,   59,   59,   59,   59,   59, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1468, 1468, 1468, 1468, 1475, 1476, 1477, 1477, 1477, 1468, | 
|  | 1472, 1468, 1472, 1468, 1473, 1468, 1473, 1468, 1468, 1468, | 
|  |  | 
|  | 21, 1468, 1468, 1478, 1468, 1468, 1468, 1468, 1468, 1474, | 
|  | 1474, 1479, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1468, 1468, 1468, | 
|  | 1468, 1468, 1468, 1474,   56, 1468, 1480, 1474,  168,  168, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 168,  168, 1474, 1474,  168, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474,  168, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  |  | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1468, 1468, 1468, 1468, 1468, 1475, 1476, 1468, 1476, | 
|  | 1477, 1477, 1477, 1468, 1468, 1478, 1474, 1479, 1468, 1479, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  |  | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1468, 1468, 1474,   56, 1468, 1481, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474,  319, 1474, 1474, 1474, 1474,  319,  319, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  |  | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1468, 1477, 1477, 1468, 1468, 1468, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1468, 1468, 1474,   56, 1468, 1482, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474,  478, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  |  | 
|  | 478, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1477, 1477, 1468, | 
|  | 1468, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  |  | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1468, 1468, 1474,   56, 1468, | 
|  | 1483, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  |  | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1477, 1484, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1468, 1468, 1474,   56, 1468, 1485, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  |  | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1477, 1484, 1484, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  |  | 
|  | 1474, 1468, 1468, 1474,   56, 1468, 1486, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1477, 1484, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  |  | 
|  | 1474, 1474, 1474, 1474, 1468, 1468, 1474,   56, 1468, 1468, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1477, 1484, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1468, 1474,   56, 1487, | 
|  |  | 
|  | 1009, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1477, 1484, 1468, 1468, 1474, 1474, 1474, 1474, 1474, | 
|  | 1468, 1474,   56, 1488, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  |  | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1477, 1484, 1474, 1474, 1474, 1474, 1468, | 
|  | 1474,   56, 1489, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1484, 1474, 1474, 1474, 1468, 1468, | 
|  | 56, 1490, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  |  | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1484, 1474, 1474, 1468,   56, 1468, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1484, 1474, 1468, 1099, | 
|  | 1491, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1484, 1468,   56, 1492, | 
|  | 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1493, 1468,   56, 1494, 1474, 1474, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1493, 1468,   56, 1495, 1474, | 
|  | 1474, 1474, 1474, 1474, 1474, 1468,   56, 1468, 1474, 1474, | 
|  |  | 
|  | 1474, 1474, 1474, 1468, 1099, 1496, 1474, 1474, 1474, 1474, | 
|  | 1474,   56, 1497, 1474, 1474, 1474, 1474,   56, 1498, 1474, | 
|  | 1474, 1474, 1474,   56, 1499, 1474, 1474, 1474,   56, 1468, | 
|  | 1474, 1474, 1474, 1099, 1500, 1474, 1474, 1474,   56, 1501, | 
|  | 1474, 1474,   56, 1502, 1474,   56, 1503,   56, 1504,   56, | 
|  | 1505,   56, 1506,   56, 1507,   56, 1508,   56, 1509,   56, | 
|  | 1510,   56, 1511,   56, 1468, 1099, 1468,    0, 1468, 1468, | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  |  | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  | 1468 | 
|  | } ; | 
|  |  | 
|  | static const flex_int16_t yy_nxt[2559] = | 
|  | {   0, | 
|  | 12,   13,   14,   15,   16,   12,   17,   18,   12,   12, | 
|  | 19,   20,   21,   22,   22,   22,   22,   22,   22,   23, | 
|  | 24,   25,   26,   26,   26,   27,   26,   28,   29,   26, | 
|  | 30,   31,   26,   26,   26,   32,   12,   12,   33,   34, | 
|  | 35,   36,   37,   38,   39,   26,   40,   41,   26,   26, | 
|  | 42,   43,   44,   26,   45,   26,   46,   47,   48,   49, | 
|  | 50,   51,   26,   26,   26,   52,   53,   81,   92,   96, | 
|  | 54,   82,   84,   84,   84,   84,   84,   84,   84,   84, | 
|  | 84,   84,   84,   84,   84,   84, 1468,  105,  106,  122, | 
|  | 83,  129,   83,  108,  109,  130,  136,  847,   97,  123, | 
|  |  | 
|  | 93,  131,  116,  132,  142,  117,  140,  133,  118,  138, | 
|  | 139,  102,  141,  134,  143, 1468,   55,   56,  119,  848, | 
|  | 137,  120,  321,  145,  322,   57,   58,   58,   58,   58, | 
|  | 58,   58,  147,  162,  102,   59,   59,   59,   60,   88, | 
|  | 146,   88,  242,   26,  304,  162,  243,  305,  148,   89, | 
|  | 61,   89,   62,   63,   64,   65,   66,   67,  159,   68, | 
|  | 69,  306,  160,   70,   71,   72,   73,   74,  849,   75, | 
|  | 76,   77,   78,   79,   80,  100,  101,  101,  101,  101, | 
|  | 101,  101,  101,  142, 1468,  124,  163,  164,  125,  149, | 
|  | 150,  102,  126,  143,  151,  297,  103,  104,  163,  127, | 
|  |  | 
|  | 128,  152,   96,  157,  153,  298,  170,  850,  161,  241, | 
|  | 171,  249,  177, 1468,  102,  172,  144,  173,  178,  174, | 
|  | 212,  179,  175,  103,  176,  197,  104,   92,  180,  198, | 
|  | 213,   97,  309,  199,  231,  165,  165,  165,  165,  165, | 
|  | 165,  165,  310,  250,  232,  165,  165,  165,  165,  137, | 
|  | 190,  154,   92, 1468,  133,  290,  369,  225,  191,   93, | 
|  | 192,  226,  165,  165,  165,  165,  165,  165,  166,  166, | 
|  | 166,  166,  166,  166,  166,  273,  851,  148,  167,  167, | 
|  | 167,  167, 1468,  102,   93,  259,  274,  181,  103,  104, | 
|  | 182,  220,  370,  301,  126,  167,  167,  167,  167,  167, | 
|  |  | 
|  | 167,  183,  128,  291,  233,  221,  102,  184,  222,  234, | 
|  | 223,  224,  302,  162,  235,  103,  236,  260,  104,  168, | 
|  | 168,  168,  168,  168,  168,  168,  193,  333,  288,  168, | 
|  | 168,  168,  168,  205,  270,  206,  289,  194,  363,  207, | 
|  | 195,  364,  852,  196,  406,  208,  168,  168,  168,  168, | 
|  | 168,  168,  185,  209,  310,  200,  186,  210,  201,  187, | 
|  | 202,  214,  188,  215,  203,  204,  163,  143,  189,  237, | 
|  | 117,  216,  211,  118,  268,  217,  264,  149,  227,  330, | 
|  | 218,  219,  151,  119,  228,  276,  120,  159,  277,  229, | 
|  | 325,  160,  230,  376,  278,  238,  273,  335,  267,  239, | 
|  |  | 
|  | 245,  344,  853,  240,  377,  326,  336,  337,  280,  156, | 
|  | 378,  246,  246,  246,  246,  246,  246,  246,  255,  255, | 
|  | 255,  255,  255,  255,  255,  371,  346,  249,  347,  348, | 
|  | 373,  292,  372,  385,  295,  248,  808,  161,  316,  316, | 
|  | 316,  316,  316,  316,  316,  349,  281,  351,  316,  316, | 
|  | 316,  316,  242,  809,  496,  259,  243,  497,  854,  250, | 
|  | 352,  433,  498,  855,  283,  316,  316,  316,  316,  316, | 
|  | 316,  317,  317,  317,  317,  317,  317,  317,  354,  856, | 
|  | 482,  318,  318,  318,  318, 1468,  102,  260,  857,  301, | 
|  | 435,  103,  284,  500,  365,  483,  397,  503,  318,  318, | 
|  |  | 
|  | 318,  318,  318,  318,  339,  562,  288,  340,  398,  102, | 
|  | 366,  563,  504,  278,  289,  564,  418,  341,  103,  319, | 
|  | 319,  319,  319,  319,  319,  319,  468,  465,  569,  319, | 
|  | 319,  319,  319,  526,  570,  571,  446,  391,  646,  418, | 
|  | 647,  400,  392,  297,  305,  795,  319,  319,  319,  319, | 
|  | 319,  319,  393,  394,  245,  395,  396,  418,  401,  796, | 
|  | 538,  539,  419,  540,  858,  246,  246,  246,  246,  246, | 
|  | 246,  246,  255,  255,  255,  255,  255,  255,  255,  548, | 
|  | 418,  650,  595,  671,  417,  657,  672,  735,  549,  419, | 
|  | 736,  696,  550,  697,  651,  859,  551,  710,  714,  673, | 
|  |  | 
|  | 610,  612,  702,  417,  475,  475,  475,  475,  475,  475, | 
|  | 475,  703,  860,  616,  475,  475,  475,  475,  580,  580, | 
|  | 861,  581,  581,  581,  581,  581,  581,  581,  862,  863, | 
|  | 864,  475,  475,  475,  475,  475,  475,  476,  476,  476, | 
|  | 476,  476,  476,  476,  718,  865,  866,  477,  477,  477, | 
|  | 477,  867,  102,  868,  869,  719,  870,  103,  871,  872, | 
|  | 874,  875,  876,  877,  477,  477,  477,  477,  477,  477, | 
|  | 878,  879,  880,  881,  882,  102,  581,  581,  581,  581, | 
|  | 581,  581,  581,  883,  103,  478,  478,  478,  478,  478, | 
|  | 478,  478,  884,  885,  886,  478,  478,  478,  478,  887, | 
|  |  | 
|  | 888,  889,  890,  891,  892,  893,  894,  895,  896,  897, | 
|  | 898,  899,  478,  478,  478,  478,  478,  478,  629,  629, | 
|  | 629,  629,  629,  629,  629,  900,  901,  902,  629,  629, | 
|  | 629,  629,  903,  904,  909,  910,  911,  912,  913,  914, | 
|  | 915,  916,  917,  918,  919,  629,  629,  629,  629,  629, | 
|  | 629,  630,  630,  630,  630,  630,  630,  630,  920,  921, | 
|  | 922,  631,  631,  631,  631,  923,  102,  924,  925,  926, | 
|  | 927,  103,  928,  929,  930,  931,  932,  933,  631,  631, | 
|  | 631,  631,  631,  631,  934,  935,  936,  937,  938,  102, | 
|  | 939,  940,  941,  888,  942,  943,  944,  945,  103,  632, | 
|  |  | 
|  | 632,  632,  632,  632,  632,  632,  946,  947,  948,  632, | 
|  | 632,  632,  632,  581,  581,  581,  581,  581,  581,  581, | 
|  | 949,  950,  951,  952,  953,  417,  632,  632,  632,  632, | 
|  | 632,  632,  954,  955,  956,  957,  958,  959,  960,  961, | 
|  | 962,  963,  964,  965,  417,  774,  774,  774,  774,  774, | 
|  | 774,  774,  966,  967,  968,  774,  774,  774,  774,  969, | 
|  | 970,  971,  972,  973,  974,  975,  976,  977,  978,  979, | 
|  | 980,  981,  774,  774,  774,  774,  774,  774,  775,  775, | 
|  | 775,  775,  775,  775,  775,  982,  983,  984,  776,  776, | 
|  | 776,  776,  985,  102,  986,  874,  988,  989,  103,  990, | 
|  |  | 
|  | 991,  992,  993,  994,  995,  776,  776,  776,  776,  776, | 
|  | 776,  996,  997,  998,  999, 1000,  102, 1001, 1002, 1003, | 
|  | 1004, 1005, 1006, 1007, 1012,  103,  777,  777,  777,  777, | 
|  | 777,  777,  777, 1013, 1014, 1015,  777,  777,  777,  777, | 
|  | 1016, 1017, 1018, 1019, 1020, 1021,  987, 1022, 1023, 1024, | 
|  | 1025, 1026, 1027,  777,  777,  777,  777,  777,  777,  905, | 
|  | 905,  905,  905,  905,  905,  905, 1028, 1033, 1034,  905, | 
|  | 905,  905,  905, 1035, 1036, 1037, 1038, 1029, 1039, 1030, | 
|  | 1031, 1040, 1041, 1042, 1043, 1044,  905,  905,  905,  905, | 
|  | 905,  905,  906,  906,  906,  906,  906,  906,  906, 1032, | 
|  |  | 
|  | 1045, 1046,  907,  907,  907,  907, 1047,  102, 1048, 1049, | 
|  | 1050, 1051,  103, 1052, 1053, 1054, 1055, 1056, 1057,  907, | 
|  | 907,  907,  907,  907,  907, 1058, 1059, 1060, 1061, 1062, | 
|  | 102, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070,  103, | 
|  | 908,  908,  908,  908,  908,  908,  908, 1071, 1072, 1073, | 
|  | 908,  908,  908,  908, 1074, 1076, 1077, 1078, 1079, 1080, | 
|  | 1081, 1082, 1083, 1084, 1085, 1075, 1086,  908,  908,  908, | 
|  | 908,  908,  908, 1008, 1008, 1008, 1008, 1008, 1008, 1008, | 
|  | 1087, 1088, 1089, 1008, 1008, 1008, 1008, 1090, 1091, 1092, | 
|  | 1093, 1094, 1095, 1096, 1097, 1006, 1098, 1100, 1100, 1102, | 
|  |  | 
|  | 1008, 1008, 1008, 1008, 1008, 1008, 1009, 1009, 1009, 1009, | 
|  | 1009, 1009, 1009, 1103, 1104, 1105, 1010, 1010, 1010, 1010, | 
|  | 1106,  102, 1107, 1108, 1109, 1110,  103, 1111, 1112, 1113, | 
|  | 1114, 1115, 1116, 1010, 1010, 1010, 1010, 1010, 1010, 1117, | 
|  | 1118, 1121, 1119, 1122,  102, 1123, 1124, 1125, 1126, 1127, | 
|  | 1128, 1129, 1130,  103, 1011, 1011, 1011, 1011, 1011, 1011, | 
|  | 1011, 1120, 1131, 1132, 1011, 1011, 1011, 1011, 1133, 1134, | 
|  | 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, | 
|  | 1145, 1011, 1011, 1011, 1011, 1011, 1011, 1099, 1099, 1099, | 
|  | 1099, 1099, 1099, 1099, 1146, 1147, 1148, 1099, 1099, 1099, | 
|  |  | 
|  | 1099, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, | 
|  | 1158, 1159, 1160, 1161, 1099, 1099, 1099, 1099, 1099, 1099, | 
|  | 1100, 1162, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1163, | 
|  | 1166, 1164, 1167, 1168, 1169, 1170, 1171,  102, 1165, 1172, | 
|  | 1468, 1175,  103, 1176, 1177, 1178, 1179, 1180, 1181, 1182, | 
|  | 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, | 
|  | 102, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200,  103, | 
|  | 1173, 1201,   91,   91,   91,   91,   91,   91,   91, 1202, | 
|  | 1203, 1204,   91,   91,   91,   91, 1205, 1206, 1207, 1208, | 
|  | 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217,   91, | 
|  |  | 
|  | 91,   91,   91,   91,   91, 1218, 1219, 1220, 1221, 1222, | 
|  | 1223, 1224, 1225, 1164, 1226, 1227, 1228, 1229, 1230, 1231, | 
|  | 1165, 1232, 1232, 1232, 1232, 1232, 1232, 1232, 1234, 1235, | 
|  | 1236, 1232, 1232, 1232, 1232, 1237, 1238, 1239, 1240, 1241, | 
|  | 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1232, 1232, | 
|  | 1232, 1232, 1232, 1232, 1250, 1251, 1252, 1253, 1254, 1255, | 
|  | 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, | 
|  | 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, | 
|  | 1276, 1277, 1278, 1279, 1280, 1281, 1281, 1281, 1281, 1281, | 
|  | 1281, 1281, 1283, 1284, 1285, 1281, 1281, 1281, 1281, 1286, | 
|  |  | 
|  | 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, | 
|  | 1297, 1298, 1281, 1281, 1281, 1281, 1281, 1281, 1299, 1300, | 
|  | 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, | 
|  | 1311, 1312, 1313, 1280, 1280, 1317, 1318, 1319, 1320, 1321, | 
|  | 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, | 
|  | 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1341, 1342, | 
|  | 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, | 
|  | 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1361, 1362, 1363, | 
|  | 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, | 
|  | 1374, 1375, 1380, 1381, 1314, 1315, 1315, 1315, 1315, 1315, | 
|  |  | 
|  | 1315, 1315, 1382, 1383, 1378, 1315, 1315, 1315, 1315, 1379, | 
|  | 1384, 1385, 1387, 1390, 1391, 1392, 1393, 1394, 1395, 1396, | 
|  | 1399, 1400, 1315, 1315, 1315, 1315, 1315, 1315, 1340, 1340, | 
|  | 1340, 1340, 1340, 1340, 1340, 1401, 1402, 1403, 1340, 1340, | 
|  | 1340, 1340, 1404, 1406, 1407, 1408, 1409, 1410, 1411, 1412, | 
|  | 1414, 1415, 1416, 1417, 1420, 1340, 1340, 1340, 1340, 1340, | 
|  | 1340, 1376, 1376, 1376, 1376, 1376, 1376, 1376, 1421, 1422, | 
|  | 1423, 1376, 1376, 1376, 1376, 1426, 1427, 1428, 1431, 1432, | 
|  | 1433, 1435, 1436, 1437, 1438, 1439, 1441, 1442, 1376, 1376, | 
|  | 1376, 1376, 1376, 1376, 1388, 1388, 1388, 1388, 1388, 1388, | 
|  |  | 
|  | 1388, 1445, 1467,  256, 1388, 1388, 1388, 1388,   91,  318, | 
|  | 477,  631,  776,  907, 1010, 1174, 1233, 1282, 1316, 1360, | 
|  | 1377, 1388, 1388, 1388, 1388, 1388, 1388, 1397, 1397, 1397, | 
|  | 1397, 1397, 1397, 1397, 1389, 1398, 1413, 1397, 1397, 1397, | 
|  | 1397, 1419, 1425, 1430, 1440, 1444, 1447, 1449, 1451, 1453, | 
|  | 1455, 1457, 1459, 1461, 1397, 1397, 1397, 1397, 1397, 1397, | 
|  | 1405, 1405, 1405, 1405, 1405, 1405, 1405, 1463, 1465,  846, | 
|  | 1405, 1405, 1405, 1405,  845,  844,  843,  842,  841,  840, | 
|  | 839,  838,  837,  836,  835,  834,  833, 1405, 1405, 1405, | 
|  | 1405, 1405, 1405, 1418, 1418, 1418, 1418, 1418, 1418, 1418, | 
|  |  | 
|  | 832,  831,  830, 1418, 1418, 1418, 1418,  829,  828,  827, | 
|  | 826,  825,  824,  823,  822,  821,  820,  819,  818,  817, | 
|  | 1418, 1418, 1418, 1418, 1418, 1418, 1424, 1424, 1424, 1424, | 
|  | 1424, 1424, 1424,  816,  815,  814, 1424, 1424, 1424, 1424, | 
|  | 813,  812,  811,  810,  807,  806,  805,  804,  803,  802, | 
|  | 801,  800,  799, 1424, 1424, 1424, 1424, 1424, 1424, 1429, | 
|  | 1429, 1429, 1429, 1429, 1429, 1429,  798,  797,  794, 1429, | 
|  | 1429, 1429, 1429,  793,  792,  791,  790,  789,  788,  787, | 
|  | 786,  785,  784,  783,  782,  781, 1429, 1429, 1429, 1429, | 
|  | 1429, 1429, 1434, 1434, 1434, 1434, 1434, 1434, 1434,  780, | 
|  |  | 
|  | 779,  778, 1434, 1434, 1434, 1434,  773,  772,  771,  770, | 
|  | 769,  768,  767,  766,  765,  764,  763,  762,  761, 1434, | 
|  | 1434, 1434, 1434, 1434, 1434, 1443, 1443, 1443, 1443, 1443, | 
|  | 1443, 1443,  760,  759,  758, 1443, 1443, 1443, 1443,  757, | 
|  | 756,  755,  754,  753,  752,  751,  750,  749,  748,  747, | 
|  | 746,  745, 1443, 1443, 1443, 1443, 1443, 1443, 1446, 1446, | 
|  | 1446, 1446, 1446, 1446, 1446,  744,  743,  742, 1446, 1446, | 
|  | 1446, 1446,  741,  740,  739,  738,  737,  734,  733,  732, | 
|  | 731,  730,  729,  728,  727, 1446, 1446, 1446, 1446, 1446, | 
|  | 1446, 1448, 1448, 1448, 1448, 1448, 1448, 1448,  726,  725, | 
|  |  | 
|  | 724, 1448, 1448, 1448, 1448,  723,  722,  721,  720,  717, | 
|  | 716,  715,  713,  712,  711,  709,  708,  707, 1448, 1448, | 
|  | 1448, 1448, 1448, 1448, 1450, 1450, 1450, 1450, 1450, 1450, | 
|  | 1450,  706,  705,  704, 1450, 1450, 1450, 1450,  701,  700, | 
|  | 699,  698,  695,  694,  693,  692,  691,  690,  689,  688, | 
|  | 687, 1450, 1450, 1450, 1450, 1450, 1450, 1452, 1452, 1452, | 
|  | 1452, 1452, 1452, 1452,  686,  685,  684, 1452, 1452, 1452, | 
|  | 1452,  683,  682,  681,  680,  679,  678,  677,  676,  675, | 
|  | 674,  670,  669,  668, 1452, 1452, 1452, 1452, 1452, 1452, | 
|  | 1454, 1454, 1454, 1454, 1454, 1454, 1454,  667,  666,  665, | 
|  |  | 
|  | 1454, 1454, 1454, 1454,  664,  663,  662,  661,  660,  659, | 
|  | 658,  656,  655,  654,  653,  652,  649, 1454, 1454, 1454, | 
|  | 1454, 1454, 1454, 1456, 1456, 1456, 1456, 1456, 1456, 1456, | 
|  | 648,  588,  645, 1456, 1456, 1456, 1456,  644,  643,  642, | 
|  | 641,  640,  639,  638,  637,  636,  635,  634,  633,  628, | 
|  | 1456, 1456, 1456, 1456, 1456, 1456, 1458, 1458, 1458, 1458, | 
|  | 1458, 1458, 1458,  627,  626,  625, 1458, 1458, 1458, 1458, | 
|  | 624,  623,  622,  621,  620,  619,  618,  617,  616,  615, | 
|  | 614,  613,  612, 1458, 1458, 1458, 1458, 1458, 1458, 1460, | 
|  | 1460, 1460, 1460, 1460, 1460, 1460,  611,  610,  609, 1460, | 
|  |  | 
|  | 1460, 1460, 1460,  608,  607,  606,  605,  604,  603,  602, | 
|  | 601,  600,  599,  598,  597,  596, 1460, 1460, 1460, 1460, | 
|  | 1460, 1460, 1462, 1462, 1462, 1462, 1462, 1462, 1462,  595, | 
|  | 594,  593, 1462, 1462, 1462, 1462,  592,  591,  590,  589, | 
|  | 588,  587,  586,  585,  584,  583,  582,  579,  578, 1462, | 
|  | 1462, 1462, 1462, 1462, 1462, 1464, 1464, 1464, 1464, 1464, | 
|  | 1464, 1464,  414,  577,  576, 1464, 1464, 1464, 1464,  575, | 
|  | 574,  573,  572,  568,  567,  566,  565,  561,  560,  559, | 
|  | 558,  557, 1464, 1464, 1464, 1464, 1464, 1464, 1466, 1466, | 
|  | 1466, 1466, 1466, 1466, 1466,  556,  555,  554, 1466, 1466, | 
|  |  | 
|  | 1466, 1466,  553,  552,  547,  546,  545,  544,  543,  542, | 
|  | 541,  537,  536,  535,  534, 1466, 1466, 1466, 1466, 1466, | 
|  | 1466,   83,   83,   83,   83,   85,   85,   85,   85,   87, | 
|  | 87,   87,   87,   91,   91,   91,   91,   95,   95,   95, | 
|  | 95,  110,  110,  247,  533,  247,  247,  248,  532,  248, | 
|  | 248,  251,  531,  251,  251,  258,  258,  258,  258,  873, | 
|  | 530,  873,  873, 1386,  529, 1386, 1386,  528,  527,  525, | 
|  | 524,  523,  522,  521,  520,  519,  518,  517,  516,  515, | 
|  | 514,  513,  512,  511,  510,  509,  508,  507,  506,  505, | 
|  | 502,  501,  499,  495,  494,  493,  492,  491,  490,  489, | 
|  |  | 
|  | 488,  487,  486,  485,  484,  481,  480,  479,  474,  473, | 
|  | 472,  471,  470,  469,  468,  467,  466,  465,  464,  463, | 
|  | 462,  461,  460,  459,  458,  457,  456,  455,  454,  453, | 
|  | 452,  451,  450,  449,  448,  447,  446,  445,  444,  443, | 
|  | 442,  441,  440,  439,  438,  437,  436,  435,  434,  433, | 
|  | 432,  431,  430,  429,  428,  427,  426,  305,  425,  424, | 
|  | 423,  422,  421, 1468,  420,  416,  415,  414,  245,  244, | 
|  | 244,  413,  412,  411,  410,  409,  408,  407,  405,  404, | 
|  | 403,  402,  399,  390,  389,  388,  387,  386,  384,  383, | 
|  | 382,  381,  380,  379,  375,  374,  368,  367,  362,  361, | 
|  |  | 
|  | 360,  359,  358,  357,  356,  355,  353,  350,  345,  343, | 
|  | 342,  338,  334,  332,  331,  329,  328,  327,  324,  323, | 
|  | 320,  257,  315,  314,  313,  312,  311,  308,  307,  303, | 
|  | 300,  299,  296,  295,  294,  293,  292,  291,  290,  287, | 
|  | 286,  285,  284,  283,  282,  281,  280,  279,  275,  272, | 
|  | 271,  270,  269,  268,  267,  266,  145,  265,  125,  263, | 
|  | 262,  261,  257,  254, 1468, 1468,  253,  252,  244,  169, | 
|  | 158,  157,  156,  155,  154,  144,  135,  121,  115,  114, | 
|  | 113,  112,  111,  107,   99,   98,   94,   90, 1468,   86, | 
|  | 86,   11, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  |  | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468 | 
|  | } ; | 
|  |  | 
|  | static const flex_int16_t yy_chk[2559] = | 
|  | {   0, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    1,    1,    1,    1, | 
|  | 1,    1,    1,    1,    1,    1,    2,    4,   16,   18, | 
|  | 2,    4,    5,    5,    5,    5,    5,    5,    5,    6, | 
|  | 6,    6,    6,    6,    6,    6,   22,   23,   23,   35, | 
|  | 9,   37,   10,   25,   25,   37,   40,  706,   18,   35, | 
|  |  | 
|  | 16,   37,   33,   38,   43,   33,   42,   38,   33,   41, | 
|  | 41,  103,   42,   38,   43,   22,    2,    3,   33,  708, | 
|  | 40,   33,  171,   45,  171,    3,    3,    3,    3,    3, | 
|  | 3,    3,   46,   54,  103,    3,    3,    3,    3,    9, | 
|  | 45,   10,   81,    3,  152,  160,   81,  152,   46,    9, | 
|  | 3,   10,    3,    3,    3,    3,    3,    3,   53,    3, | 
|  | 3,  152,   53,    3,    3,    3,    3,    3,  709,    3, | 
|  | 3,    3,    3,    3,    3,   21,   21,   21,   21,   21, | 
|  | 21,   21,   21,   55,   58,   36,   54,   55,   36,   47, | 
|  | 47,   21,   36,   55,   47,  147,   21,   21,  160,   36, | 
|  |  | 
|  | 36,   47,   95,   80,   47,  147,   62,  710,   53,   80, | 
|  | 62,   86,   63,   58,   21,   62,   72,   62,   63,   62, | 
|  | 72,   63,   62,   21,   62,   68,   21,   56,   63,   68, | 
|  | 72,   95,  155,   68,   77,   56,   56,   56,   56,   56, | 
|  | 56,   56,  155,   86,   77,   56,   56,   56,   56,   68, | 
|  | 66,   77,   91,  101,   66,  207,  207,   75,   66,   56, | 
|  | 66,   75,   56,   56,   56,   56,   56,   56,   57,   57, | 
|  | 57,   57,   57,   57,   57,  127,  711,   75,   57,   57, | 
|  | 57,   57,  101,   57,   91,  112,  127,   64,   57,   57, | 
|  | 64,   74,  208,  150,   64,   57,   57,   57,   57,   57, | 
|  |  | 
|  | 57,   64,   64,  208,   78,   74,   57,   64,   74,   78, | 
|  | 74,   74,  150,  162,   78,   57,   78,  112,   57,   59, | 
|  | 59,   59,   59,   59,   59,   59,   67,  181,  139,   59, | 
|  | 59,   59,   59,   70,  181,   70,  139,   67,  203,   70, | 
|  | 67,  203,  712,   67,  234,   70,   59,   59,   59,   59, | 
|  | 59,   59,   65,   71,  234,   69,   65,   71,   69,   65, | 
|  | 69,   73,   65,   73,   69,   69,  162,   71,   65,   79, | 
|  | 116,   73,   71,  116,  178,   73,  116,   76,   76,  178, | 
|  | 73,   73,   76,  116,   76,  129,  116,  159,  129,   76, | 
|  | 174,  159,   76,  213,  129,   79,  183,  183,  174,   79, | 
|  |  | 
|  | 84,  188,  713,   79,  213,  174,  183,  183,  188,   79, | 
|  | 213,   84,   84,   84,   84,   84,   84,   84,  100,  100, | 
|  | 100,  100,  100,  100,  100,  209,  190,  248,  190,  190, | 
|  | 210,  210,  209,  220,  220,  250,  664,  159,  165,  165, | 
|  | 165,  165,  165,  165,  165,  190,  190,  192,  165,  165, | 
|  | 165,  165,  242,  664,  336,  258,  242,  336,  714,  248, | 
|  | 192,  337,  337,  715,  192,  165,  165,  165,  165,  165, | 
|  | 165,  166,  166,  166,  166,  166,  166,  166,  194,  716, | 
|  | 323,  166,  166,  166,  166,  250,  166,  258,  717,  227, | 
|  | 339,  166,  194,  339,  204,  323,  227,  342,  166,  166, | 
|  |  | 
|  | 166,  166,  166,  166,  185,  400,  204,  185,  227,  166, | 
|  | 204,  400,  342,  185,  204,  401,  419,  185,  166,  168, | 
|  | 168,  168,  168,  168,  168,  168,  406,  401,  406,  168, | 
|  | 168,  168,  168,  364,  407,  407,  364,  226,  493,  419, | 
|  | 493,  229,  226,  226,  229,  651,  168,  168,  168,  168, | 
|  | 168,  168,  226,  226,  246,  226,  226,  256,  229,  651, | 
|  | 377,  377,  256,  377,  718,  246,  246,  246,  246,  246, | 
|  | 246,  246,  255,  255,  255,  255,  255,  255,  255,  387, | 
|  | 256,  498,  504,  520,  255,  504,  520,  584,  387,  256, | 
|  | 584,  544,  387,  544,  498,  719,  387,  556,  560,  520, | 
|  |  | 
|  | 549,  556,  549,  255,  316,  316,  316,  316,  316,  316, | 
|  | 316,  549,  720,  560,  316,  316,  316,  316,  417,  417, | 
|  | 721,  417,  417,  417,  417,  417,  417,  417,  722,  723, | 
|  | 724,  316,  316,  316,  316,  316,  316,  317,  317,  317, | 
|  | 317,  317,  317,  317,  564,  725,  726,  317,  317,  317, | 
|  | 317,  727,  317,  728,  729,  564,  730,  317,  731,  732, | 
|  | 733,  734,  735,  736,  317,  317,  317,  317,  317,  317, | 
|  | 737,  738,  739,  740,  741,  317,  580,  580,  580,  580, | 
|  | 580,  580,  580,  742,  317,  319,  319,  319,  319,  319, | 
|  | 319,  319,  743,  744,  745,  319,  319,  319,  319,  747, | 
|  |  | 
|  | 749,  750,  752,  753,  754,  756,  758,  759,  760,  761, | 
|  | 765,  768,  319,  319,  319,  319,  319,  319,  475,  475, | 
|  | 475,  475,  475,  475,  475,  769,  770,  771,  475,  475, | 
|  | 475,  475,  772,  773,  778,  779,  780,  781,  782,  783, | 
|  | 784,  785,  786,  787,  788,  475,  475,  475,  475,  475, | 
|  | 475,  476,  476,  476,  476,  476,  476,  476,  789,  790, | 
|  | 791,  476,  476,  476,  476,  792,  476,  793,  794,  795, | 
|  | 796,  476,  799,  800,  801,  802,  803,  804,  476,  476, | 
|  | 476,  476,  476,  476,  805,  807,  808,  809,  810,  476, | 
|  | 811,  812,  813,  814,  815,  816,  817,  819,  476,  478, | 
|  |  | 
|  | 478,  478,  478,  478,  478,  478,  822,  823,  824,  478, | 
|  | 478,  478,  478,  581,  581,  581,  581,  581,  581,  581, | 
|  | 825,  826,  827,  828,  829,  581,  478,  478,  478,  478, | 
|  | 478,  478,  830,  832,  833,  834,  835,  837,  838,  839, | 
|  | 840,  841,  842,  844,  581,  629,  629,  629,  629,  629, | 
|  | 629,  629,  845,  846,  848,  629,  629,  629,  629,  849, | 
|  | 850,  851,  853,  854,  856,  858,  860,  861,  862,  863, | 
|  | 865,  866,  629,  629,  629,  629,  629,  629,  630,  630, | 
|  | 630,  630,  630,  630,  630,  867,  869,  870,  630,  630, | 
|  | 630,  630,  871,  630,  872,  874,  875,  876,  630,  878, | 
|  |  | 
|  | 879,  882,  885,  886,  887,  630,  630,  630,  630,  630, | 
|  | 630,  888,  889,  890,  893,  894,  630,  895,  896,  897, | 
|  | 900,  902,  903,  904,  909,  630,  632,  632,  632,  632, | 
|  | 632,  632,  632,  910,  911,  912,  632,  632,  632,  632, | 
|  | 913,  914,  915,  916,  917,  918,  874,  919,  920,  922, | 
|  | 923,  924,  925,  632,  632,  632,  632,  632,  632,  774, | 
|  | 774,  774,  774,  774,  774,  774,  926,  929,  930,  774, | 
|  | 774,  774,  774,  931,  933,  934,  935,  928,  936,  928, | 
|  | 928,  937,  938,  939,  940,  941,  774,  774,  774,  774, | 
|  | 774,  774,  775,  775,  775,  775,  775,  775,  775,  928, | 
|  |  | 
|  | 942,  943,  775,  775,  775,  775,  944,  775,  945,  946, | 
|  | 947,  949,  775,  950,  951,  952,  955,  956,  957,  775, | 
|  | 775,  775,  775,  775,  775,  958,  959,  960,  961,  962, | 
|  | 775,  963,  964,  966,  967,  968,  969,  970,  971,  775, | 
|  | 777,  777,  777,  777,  777,  777,  777,  972,  974,  975, | 
|  | 777,  777,  777,  777,  976,  977,  978,  979,  980,  981, | 
|  | 984,  985,  986,  987,  988,  976,  989,  777,  777,  777, | 
|  | 777,  777,  777,  905,  905,  905,  905,  905,  905,  905, | 
|  | 990,  991,  992,  905,  905,  905,  905,  994,  995,  997, | 
|  | 998,  999, 1000, 1003, 1005, 1006, 1007, 1010, 1011, 1012, | 
|  |  | 
|  | 905,  905,  905,  905,  905,  905,  906,  906,  906,  906, | 
|  | 906,  906,  906, 1013, 1014, 1016,  906,  906,  906,  906, | 
|  | 1017,  906, 1018, 1019, 1020, 1022,  906, 1023, 1025, 1026, | 
|  | 1027, 1028, 1029,  906,  906,  906,  906,  906,  906, 1030, | 
|  | 1031, 1033, 1032, 1034,  906, 1035, 1036, 1037, 1040, 1041, | 
|  | 1042, 1043, 1044,  906,  908,  908,  908,  908,  908,  908, | 
|  | 908, 1032, 1045, 1047,  908,  908,  908,  908, 1048, 1049, | 
|  | 1050, 1051, 1052, 1054, 1055, 1056, 1057, 1058, 1059, 1063, | 
|  | 1064,  908,  908,  908,  908,  908,  908, 1008, 1008, 1008, | 
|  | 1008, 1008, 1008, 1008, 1065, 1066, 1068, 1008, 1008, 1008, | 
|  |  | 
|  | 1008, 1069, 1070, 1071, 1073, 1074, 1075, 1076, 1077, 1078, | 
|  | 1079, 1080, 1081, 1082, 1008, 1008, 1008, 1008, 1008, 1008, | 
|  | 1009, 1083, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1084, | 
|  | 1088, 1085, 1090, 1091, 1095, 1096, 1097, 1009, 1085, 1098, | 
|  | 1101, 1102, 1009, 1103, 1105, 1108, 1109, 1111, 1112, 1113, | 
|  | 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, | 
|  | 1009, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1009, | 
|  | 1099, 1133, 1099, 1099, 1099, 1099, 1099, 1099, 1099, 1134, | 
|  | 1135, 1136, 1099, 1099, 1099, 1099, 1138, 1139, 1140, 1141, | 
|  | 1142, 1143, 1144, 1145, 1146, 1148, 1149, 1150, 1151, 1099, | 
|  |  | 
|  | 1099, 1099, 1099, 1099, 1099, 1152, 1154, 1156, 1158, 1159, | 
|  | 1161, 1162, 1163, 1164, 1166, 1167, 1168, 1170, 1171, 1172, | 
|  | 1164, 1173, 1173, 1173, 1173, 1173, 1173, 1173, 1175, 1176, | 
|  | 1179, 1173, 1173, 1173, 1173, 1181, 1183, 1184, 1185, 1186, | 
|  | 1187, 1188, 1189, 1191, 1192, 1193, 1194, 1195, 1173, 1173, | 
|  | 1173, 1173, 1173, 1173, 1196, 1197, 1198, 1199, 1200, 1200, | 
|  | 1202, 1203, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, | 
|  | 1214, 1215, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1225, | 
|  | 1227, 1228, 1229, 1230, 1231, 1232, 1232, 1232, 1232, 1232, | 
|  | 1232, 1232, 1235, 1238, 1239, 1232, 1232, 1232, 1232, 1240, | 
|  |  | 
|  | 1242, 1243, 1244, 1245, 1247, 1250, 1251, 1252, 1254, 1255, | 
|  | 1256, 1257, 1232, 1232, 1232, 1232, 1232, 1232, 1258, 1259, | 
|  | 1260, 1261, 1263, 1264, 1265, 1266, 1269, 1272, 1273, 1274, | 
|  | 1275, 1276, 1277, 1279, 1280, 1284, 1285, 1286, 1287, 1289, | 
|  | 1290, 1291, 1292, 1294, 1295, 1296, 1297, 1298, 1299, 1302, | 
|  | 1303, 1304, 1305, 1307, 1309, 1311, 1313, 1314, 1316, 1317, | 
|  | 1318, 1319, 1320, 1322, 1323, 1324, 1325, 1326, 1329, 1330, | 
|  | 1333, 1334, 1335, 1336, 1337, 1339, 1340, 1342, 1343, 1344, | 
|  | 1345, 1346, 1347, 1348, 1350, 1351, 1352, 1354, 1355, 1356, | 
|  | 1357, 1358, 1363, 1365, 1280, 1281, 1281, 1281, 1281, 1281, | 
|  |  | 
|  | 1281, 1281, 1368, 1370, 1361, 1281, 1281, 1281, 1281, 1361, | 
|  | 1372, 1373, 1375, 1378, 1379, 1381, 1382, 1383, 1384, 1387, | 
|  | 1390, 1391, 1281, 1281, 1281, 1281, 1281, 1281, 1315, 1315, | 
|  | 1315, 1315, 1315, 1315, 1315, 1392, 1394, 1395, 1315, 1315, | 
|  | 1315, 1315, 1396, 1398, 1399, 1400, 1401, 1402, 1403, 1405, | 
|  | 1407, 1408, 1409, 1411, 1414, 1315, 1315, 1315, 1315, 1315, | 
|  | 1315, 1359, 1359, 1359, 1359, 1359, 1359, 1359, 1415, 1416, | 
|  | 1417, 1359, 1359, 1359, 1359, 1420, 1421, 1422, 1426, 1427, | 
|  | 1428, 1430, 1431, 1432, 1433, 1434, 1436, 1438, 1359, 1359, | 
|  | 1359, 1359, 1359, 1359, 1376, 1376, 1376, 1376, 1376, 1376, | 
|  |  | 
|  | 1376, 1441, 1466, 1478, 1376, 1376, 1376, 1376, 1466, 1480, | 
|  | 1481, 1482, 1483, 1485, 1486, 1487, 1488, 1489, 1490, 1491, | 
|  | 1492, 1376, 1376, 1376, 1376, 1376, 1376, 1388, 1388, 1388, | 
|  | 1388, 1388, 1388, 1388, 1494, 1495, 1496, 1388, 1388, 1388, | 
|  | 1388, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, | 
|  | 1506, 1507, 1508, 1509, 1388, 1388, 1388, 1388, 1388, 1388, | 
|  | 1397, 1397, 1397, 1397, 1397, 1397, 1397, 1510, 1511,  704, | 
|  | 1397, 1397, 1397, 1397,  703,  702,  701,  700,  699,  698, | 
|  | 697,  696,  695,  694,  693,  692,  691, 1397, 1397, 1397, | 
|  | 1397, 1397, 1397, 1412, 1412, 1412, 1412, 1412, 1412, 1412, | 
|  |  | 
|  | 690,  689,  688, 1412, 1412, 1412, 1412,  687,  685,  683, | 
|  | 682,  681,  680,  679,  678,  677,  676,  675,  674,  673, | 
|  | 1412, 1412, 1412, 1412, 1412, 1412, 1418, 1418, 1418, 1418, | 
|  | 1418, 1418, 1418,  672,  671,  670, 1418, 1418, 1418, 1418, | 
|  | 669,  667,  666,  665,  662,  661,  660,  659,  658,  657, | 
|  | 656,  655,  654, 1418, 1418, 1418, 1418, 1418, 1418, 1424, | 
|  | 1424, 1424, 1424, 1424, 1424, 1424,  653,  652,  650, 1424, | 
|  | 1424, 1424, 1424,  649,  648,  647,  646,  645,  644,  643, | 
|  | 642,  641,  640,  639,  638,  637, 1424, 1424, 1424, 1424, | 
|  | 1424, 1424, 1429, 1429, 1429, 1429, 1429, 1429, 1429,  636, | 
|  |  | 
|  | 634,  633, 1429, 1429, 1429, 1429,  628,  627,  626,  625, | 
|  | 624,  622,  621,  620,  619,  618,  616,  615,  613, 1429, | 
|  | 1429, 1429, 1429, 1429, 1429, 1439, 1439, 1439, 1439, 1439, | 
|  | 1439, 1439,  612,  611,  610, 1439, 1439, 1439, 1439,  609, | 
|  | 608,  607,  606,  605,  604,  603,  602,  600,  598,  597, | 
|  | 596,  595, 1439, 1439, 1439, 1439, 1439, 1439, 1443, 1443, | 
|  | 1443, 1443, 1443, 1443, 1443,  594,  593,  592, 1443, 1443, | 
|  | 1443, 1443,  591,  589,  587,  586,  585,  583,  579,  578, | 
|  | 577,  576,  575,  574,  573, 1443, 1443, 1443, 1443, 1443, | 
|  | 1443, 1446, 1446, 1446, 1446, 1446, 1446, 1446,  571,  570, | 
|  |  | 
|  | 569, 1446, 1446, 1446, 1446,  568,  567,  566,  565,  563, | 
|  | 562,  561,  559,  558,  557,  555,  554,  553, 1446, 1446, | 
|  | 1446, 1446, 1446, 1446, 1448, 1448, 1448, 1448, 1448, 1448, | 
|  | 1448,  552,  551,  550, 1448, 1448, 1448, 1448,  548,  547, | 
|  | 546,  545,  543,  542,  541,  540,  539,  538,  537,  536, | 
|  | 535, 1448, 1448, 1448, 1448, 1448, 1448, 1450, 1450, 1450, | 
|  | 1450, 1450, 1450, 1450,  534,  533,  532, 1450, 1450, 1450, | 
|  | 1450,  531,  530,  528,  527,  526,  525,  524,  523,  522, | 
|  | 521,  519,  517,  516, 1450, 1450, 1450, 1450, 1450, 1450, | 
|  | 1452, 1452, 1452, 1452, 1452, 1452, 1452,  515,  514,  513, | 
|  |  | 
|  | 1452, 1452, 1452, 1452,  512,  511,  510,  509,  508,  506, | 
|  | 505,  503,  502,  501,  500,  499,  497, 1452, 1452, 1452, | 
|  | 1452, 1452, 1452, 1454, 1454, 1454, 1454, 1454, 1454, 1454, | 
|  | 496,  494,  492, 1454, 1454, 1454, 1454,  491,  489,  488, | 
|  | 487,  486,  485,  484,  483,  482,  481,  480,  479,  474, | 
|  | 1454, 1454, 1454, 1454, 1454, 1454, 1456, 1456, 1456, 1456, | 
|  | 1456, 1456, 1456,  473,  472,  471, 1456, 1456, 1456, 1456, | 
|  | 469,  468,  467,  466,  465,  464,  463,  462,  461,  460, | 
|  | 459,  458,  457, 1456, 1456, 1456, 1456, 1456, 1456, 1458, | 
|  | 1458, 1458, 1458, 1458, 1458, 1458,  456,  455,  454, 1458, | 
|  |  | 
|  | 1458, 1458, 1458,  453,  452,  451,  449,  448,  447,  446, | 
|  | 445,  444,  443,  442,  441,  439, 1458, 1458, 1458, 1458, | 
|  | 1458, 1458, 1460, 1460, 1460, 1460, 1460, 1460, 1460,  438, | 
|  | 437,  436, 1460, 1460, 1460, 1460,  435,  434,  433,  432, | 
|  | 430,  427,  426,  425,  424,  422,  420,  416,  415, 1460, | 
|  | 1460, 1460, 1460, 1460, 1460, 1462, 1462, 1462, 1462, 1462, | 
|  | 1462, 1462,  414,  413,  412, 1462, 1462, 1462, 1462,  411, | 
|  | 410,  409,  408,  405,  404,  403,  402,  399,  398,  397, | 
|  | 396,  395, 1462, 1462, 1462, 1462, 1462, 1462, 1464, 1464, | 
|  | 1464, 1464, 1464, 1464, 1464,  394,  393,  391, 1464, 1464, | 
|  |  | 
|  | 1464, 1464,  390,  389,  386,  385,  384,  382,  381,  379, | 
|  | 378,  376,  375,  373,  372, 1464, 1464, 1464, 1464, 1464, | 
|  | 1464, 1469, 1469, 1469, 1469, 1470, 1470, 1470, 1470, 1471, | 
|  | 1471, 1471, 1471, 1472, 1472, 1472, 1472, 1473, 1473, 1473, | 
|  | 1473, 1474, 1474, 1475,  371, 1475, 1475, 1476,  370, 1476, | 
|  | 1476, 1477,  369, 1477, 1477, 1479, 1479, 1479, 1479, 1484, | 
|  | 368, 1484, 1484, 1493,  367, 1493, 1493,  366,  365,  363, | 
|  | 362,  361,  360,  359,  358,  357,  356,  355,  354,  353, | 
|  | 352,  351,  350,  349,  348,  347,  346,  345,  344,  343, | 
|  | 341,  340,  338,  335,  334,  333,  332,  331,  330,  329, | 
|  |  | 
|  | 328,  327,  326,  325,  324,  322,  321,  320,  315,  314, | 
|  | 313,  312,  311,  310,  309,  308,  307,  306,  305,  304, | 
|  | 303,  302,  301,  300,  299,  298,  297,  296,  295,  294, | 
|  | 293,  292,  291,  290,  289,  288,  287,  286,  285,  284, | 
|  | 283,  282,  281,  280,  279,  278,  277,  276,  275,  274, | 
|  | 273,  272,  271,  270,  269,  268,  267,  266,  265,  264, | 
|  | 263,  262,  261,  260,  257,  253,  252,  249,  245,  244, | 
|  | 243,  241,  240,  239,  238,  237,  236,  235,  233,  232, | 
|  | 231,  230,  228,  225,  224,  223,  222,  221,  219,  218, | 
|  | 217,  216,  215,  214,  212,  211,  206,  205,  202,  201, | 
|  |  | 
|  | 200,  199,  198,  197,  196,  195,  193,  191,  189,  187, | 
|  | 186,  184,  182,  180,  179,  177,  176,  175,  173,  172, | 
|  | 170,  169,  164,  163,  161,  157,  156,  154,  153,  151, | 
|  | 149,  148,  146,  145,  144,  143,  142,  141,  140,  138, | 
|  | 137,  136,  135,  134,  133,  132,  131,  130,  128,  126, | 
|  | 125,  124,  123,  122,  121,  120,  119,  118,  117,  115, | 
|  | 114,  113,  111,   99,   97,   93,   89,   88,   82,   60, | 
|  | 52,   51,   50,   49,   48,   44,   39,   34,   31,   30, | 
|  | 29,   28,   27,   24,   20,   19,   17,   15,   11,    8, | 
|  | 7, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  |  | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468, | 
|  | 1468, 1468, 1468, 1468, 1468, 1468, 1468, 1468 | 
|  | } ; | 
|  |  | 
|  | static yy_state_type yy_last_accepting_state; | 
|  | static char *yy_last_accepting_cpos; | 
|  |  | 
|  | extern int yy_flex_debug; | 
|  | int yy_flex_debug = 0; | 
|  |  | 
|  | /* The intent behind this definition is that it'll catch | 
|  | * any uses of REJECT which flex missed. | 
|  | */ | 
|  | #define REJECT reject_used_but_not_detected | 
|  | #define yymore() yymore_used_but_not_detected | 
|  | #define YY_MORE_ADJ 0 | 
|  | #define YY_RESTORE_YY_MORE_OFFSET | 
|  | char *yytext; | 
|  | #line 1 "tools/widl/parser.l" | 
|  | /* -*-C-*- | 
|  | * IDL Compiler | 
|  | * | 
|  | * Copyright 2002 Ove Kaaven | 
|  | * | 
|  | * This library is free software; you can redistribute it and/or | 
|  | * modify it under the terms of the GNU Lesser General Public | 
|  | * License as published by the Free Software Foundation; either | 
|  | * version 2.1 of the License, or (at your option) any later version. | 
|  | * | 
|  | * This library is distributed in the hope that it will be useful, | 
|  | * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
|  | * Lesser General Public License for more details. | 
|  | * | 
|  | * You should have received a copy of the GNU Lesser General Public | 
|  | * License along with this library; if not, write to the Free Software | 
|  | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  | #define YY_NO_INPUT 1 | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | #line 38 "tools/widl/parser.l" | 
|  |  | 
|  | #include "config.h" | 
|  |  | 
|  | #include <stdio.h> | 
|  | #include <stdlib.h> | 
|  | #include <string.h> | 
|  | #include <ctype.h> | 
|  | #include <assert.h> | 
|  | #include <errno.h> | 
|  | #include <limits.h> | 
|  | #define YY_NO_UNISTD_H | 
|  |  | 
|  | #include "widl.h" | 
|  | #include "utils.h" | 
|  | #include "parser.h" | 
|  | #include "wpp_private.h" | 
|  |  | 
|  | #define YYerror PARSER_error | 
|  | #define YYSTYPE PARSER_STYPE | 
|  | #define YYLTYPE PARSER_LTYPE | 
|  | #define YYUNDEF PARSER_UNDEF | 
|  | #define yyerror parser_error | 
|  |  | 
|  | #include "parser.tab.h" | 
|  |  | 
|  | static void reset_location( struct location *where, const char *input_name ); | 
|  | static void update_location( struct location *where, const char *yytext ); | 
|  | static void end_of_line( struct location *where ); | 
|  |  | 
|  | #define YY_USER_INIT    reset_location( yylloc, input_name ) | 
|  | #define YY_USER_ACTION  update_location( yylloc, yytext ); | 
|  |  | 
|  | static void switch_to_acf(void); | 
|  |  | 
|  | static warning_list_t *disabled_warnings = NULL; | 
|  |  | 
|  | struct import_state | 
|  | { | 
|  | YY_BUFFER_STATE buffer; | 
|  | char *input_name; | 
|  | struct location where; | 
|  | struct list entry; | 
|  | }; | 
|  | static struct list import_stack = LIST_INIT( import_stack ); | 
|  | int parse_only = 0; | 
|  |  | 
|  | struct import | 
|  | { | 
|  | const char *name; | 
|  | struct list entry; | 
|  | }; | 
|  | static struct list imports = LIST_INIT( imports ); | 
|  | static struct location previous_location; | 
|  |  | 
|  | /* converts an integer in string form to an unsigned long and prints an error | 
|  | * on overflow */ | 
|  | static unsigned int xstrtoul(const char *nptr, char **endptr, int base) | 
|  | { | 
|  | unsigned long val; | 
|  |  | 
|  | errno = 0; | 
|  | val = strtoul(nptr, endptr, base); | 
|  | if ((val == ULONG_MAX && errno == ERANGE) || ((unsigned int)val != val)) | 
|  | error_loc("integer constant %s is too large\n", nptr); | 
|  | return val; | 
|  | } | 
|  |  | 
|  | static int token_uuid( const char *str, YYSTYPE *yylval ) | 
|  | { | 
|  | struct uuid *uuid; | 
|  | char tmp[3] = {0}; | 
|  |  | 
|  | if (*str == '\"') str++; | 
|  |  | 
|  | uuid = xmalloc( sizeof(*uuid) ); | 
|  | uuid->Data1 = strtoul( str , NULL, 16 ); | 
|  | uuid->Data2 = strtoul( str + 9, NULL, 16 ); | 
|  | uuid->Data3 = strtoul( str + 14, NULL, 16 ); | 
|  | memcpy( tmp, str + 19, 2 ); | 
|  | uuid->Data4[0] = strtoul( tmp, NULL, 16 ); | 
|  | memcpy( tmp, str + 21, 2 ); | 
|  | uuid->Data4[1] = strtoul( tmp, NULL, 16 ); | 
|  | memcpy( tmp, str + 24, 2 ); | 
|  | uuid->Data4[2] = strtoul( tmp, NULL, 16 ); | 
|  | memcpy( tmp, str + 26, 2 ); | 
|  | uuid->Data4[3] = strtoul( tmp, NULL, 16 ); | 
|  | memcpy( tmp, str + 28, 2 ); | 
|  | uuid->Data4[4] = strtoul( tmp, NULL, 16 ); | 
|  | memcpy( tmp, str + 30, 2 ); | 
|  | uuid->Data4[5] = strtoul( tmp, NULL, 16 ); | 
|  | memcpy( tmp, str + 32, 2 ); | 
|  | uuid->Data4[6] = strtoul( tmp, NULL, 16 ); | 
|  | memcpy( tmp, str + 34, 2 ); | 
|  | uuid->Data4[7] = strtoul( tmp, NULL, 16 ); | 
|  |  | 
|  | yylval->uuid = uuid; | 
|  | return aUUID; | 
|  | } | 
|  |  | 
|  | static int token_str( int token, const char *str, YYSTYPE *yylval ) | 
|  | { | 
|  | char *tmp = xstrdup( str ); | 
|  |  | 
|  | if (token == aWSTRING || token == aSTRING || token == aSQSTRING) | 
|  | { | 
|  | char *src, *dst; | 
|  | src = dst = ++tmp; /* skip first quote */ | 
|  | while (*src) | 
|  | { | 
|  | if (*src == '\\') src++; | 
|  | *dst++ = *src++; | 
|  | } | 
|  | dst[-1] = 0; /* strip last quote */ | 
|  | } | 
|  |  | 
|  | yylval->str = tmp; | 
|  | return token; | 
|  | } | 
|  |  | 
|  | static int token_num( const char *yytext, YYSTYPE *yylval, int is_hex ) | 
|  | { | 
|  | yylval->integer.value = xstrtoul( yytext, NULL, 0 ); | 
|  | yylval->integer.is_hex = is_hex; | 
|  | yylval->integer.is_long = !!strchr(yytext, 'l'); | 
|  | yylval->integer.is_unsigned = !!strchr(yytext, 'u'); | 
|  | return is_hex ? aHEXNUM : aNUM; | 
|  | } | 
|  |  | 
|  | static int token_ident( const char *str, YYSTYPE *yylval ) | 
|  | { | 
|  | return token_str( is_type( str ) ? aKNOWNTYPE : aIDENTIFIER, str, yylval ); | 
|  | } | 
|  |  | 
|  | static int token_winrt( int token, const char *str, YYSTYPE *yylval ) | 
|  | { | 
|  | if (winrt_mode) return token; | 
|  | return token_ident( str, yylval ); | 
|  | } | 
|  |  | 
|  | static void winrt_enable( int ns_prefix ) | 
|  | { | 
|  | if (!list_empty( &import_stack ) && !winrt_mode) error_loc( "WinRT IDL file imported in non-winrt mode.\n" ); | 
|  |  | 
|  | use_abi_namespace = ns_prefix; | 
|  | winrt_mode = TRUE; | 
|  | } | 
|  |  | 
|  | #line 1958 "tools/widl/parser.yy.c" | 
|  | /* | 
|  | ************************************************************************** | 
|  | * The flexer starts here | 
|  | ************************************************************************** | 
|  | */ | 
|  | #line 1964 "tools/widl/parser.yy.c" | 
|  |  | 
|  | #define INITIAL 0 | 
|  | #define ATTR 1 | 
|  | #define PP_LINE 2 | 
|  | #define PP_FILE 3 | 
|  | #define PP_PRAGMA 4 | 
|  |  | 
|  | #ifndef YY_NO_UNISTD_H | 
|  | /* Special case for "unistd.h", since it is non-ANSI. We include it way | 
|  | * down here because we want the user's section 1 to have been scanned first. | 
|  | * The user has a chance to override it with an option. | 
|  | */ | 
|  | #include <unistd.h> | 
|  | #endif | 
|  |  | 
|  | #ifndef YY_EXTRA_TYPE | 
|  | #define YY_EXTRA_TYPE void * | 
|  | #endif | 
|  |  | 
|  | static int yy_init_globals ( void ); | 
|  |  | 
|  | /* Accessor methods to globals. | 
|  | These are made visible to non-reentrant scanners for convenience. */ | 
|  |  | 
|  | int yylex_destroy ( void ); | 
|  |  | 
|  | int yyget_debug ( void ); | 
|  |  | 
|  | void yyset_debug ( int debug_flag  ); | 
|  |  | 
|  | YY_EXTRA_TYPE yyget_extra ( void ); | 
|  |  | 
|  | void yyset_extra ( YY_EXTRA_TYPE user_defined  ); | 
|  |  | 
|  | FILE *yyget_in ( void ); | 
|  |  | 
|  | void yyset_in  ( FILE * _in_str  ); | 
|  |  | 
|  | FILE *yyget_out ( void ); | 
|  |  | 
|  | void yyset_out  ( FILE * _out_str  ); | 
|  |  | 
|  | int yyget_leng ( void ); | 
|  |  | 
|  | char *yyget_text ( void ); | 
|  |  | 
|  | int yyget_lineno ( void ); | 
|  |  | 
|  | void yyset_lineno ( int _line_number  ); | 
|  |  | 
|  | YYSTYPE * yyget_lval ( void ); | 
|  |  | 
|  | void yyset_lval ( YYSTYPE * yylval_param  ); | 
|  |  | 
|  | YYLTYPE *yyget_lloc ( void ); | 
|  |  | 
|  | void yyset_lloc ( YYLTYPE * yylloc_param  ); | 
|  |  | 
|  | /* Macros after this point can all be overridden by user definitions in | 
|  | * section 1. | 
|  | */ | 
|  |  | 
|  | #ifndef YY_SKIP_YYWRAP | 
|  | #ifdef __cplusplus | 
|  | extern "C" int yywrap ( void ); | 
|  | #else | 
|  | extern int yywrap ( void ); | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #ifndef YY_NO_UNPUT | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef yytext_ptr | 
|  | static void yy_flex_strncpy ( char *, const char *, int ); | 
|  | #endif | 
|  |  | 
|  | #ifdef YY_NEED_STRLEN | 
|  | static int yy_flex_strlen ( const char * ); | 
|  | #endif | 
|  |  | 
|  | #ifndef YY_NO_INPUT | 
|  | #ifdef __cplusplus | 
|  | static int yyinput ( void ); | 
|  | #else | 
|  | static int input ( void ); | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  | static int yy_start_stack_ptr = 0; | 
|  | static int yy_start_stack_depth = 0; | 
|  | static int *yy_start_stack = NULL; | 
|  |  | 
|  | static void yy_push_state ( int _new_state ); | 
|  |  | 
|  | static void yy_pop_state ( void ); | 
|  |  | 
|  | /* Amount of stuff to slurp up with each read. */ | 
|  | #ifndef YY_READ_BUF_SIZE | 
|  | #ifdef __ia64__ | 
|  | /* On IA-64, the buffer size is 16k, not 8k */ | 
|  | #define YY_READ_BUF_SIZE 16384 | 
|  | #else | 
|  | #define YY_READ_BUF_SIZE 8192 | 
|  | #endif /* __ia64__ */ | 
|  | #endif | 
|  |  | 
|  | /* Copy whatever the last rule matched to the standard output. */ | 
|  | #ifndef ECHO | 
|  | /* This used to be an fputs(), but since the string might contain NUL's, | 
|  | * we now use fwrite(). | 
|  | */ | 
|  | #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) | 
|  | #endif | 
|  |  | 
|  | /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL, | 
|  | * is returned in "result". | 
|  | */ | 
|  | #ifndef YY_INPUT | 
|  | #define YY_INPUT(buf,result,max_size) \ | 
|  | if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ | 
|  | { \ | 
|  | int c = '*'; \ | 
|  | int n; \ | 
|  | for ( n = 0; n < max_size && \ | 
|  | (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ | 
|  | buf[n] = (char) c; \ | 
|  | if ( c == '\n' ) \ | 
|  | buf[n++] = (char) c; \ | 
|  | if ( c == EOF && ferror( yyin ) ) \ | 
|  | YY_FATAL_ERROR( "input in flex scanner failed" ); \ | 
|  | result = n; \ | 
|  | } \ | 
|  | else \ | 
|  | { \ | 
|  | errno=0; \ | 
|  | while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ | 
|  | { \ | 
|  | if( errno != EINTR) \ | 
|  | { \ | 
|  | YY_FATAL_ERROR( "input in flex scanner failed" ); \ | 
|  | break; \ | 
|  | } \ | 
|  | errno=0; \ | 
|  | clearerr(yyin); \ | 
|  | } \ | 
|  | }\ | 
|  | \ | 
|  |  | 
|  | #endif | 
|  |  | 
|  | /* No semi-colon after return; correct usage is to write "yyterminate();" - | 
|  | * we don't want an extra ';' after the "return" because that will cause | 
|  | * some compilers to complain about unreachable statements. | 
|  | */ | 
|  | #ifndef yyterminate | 
|  | #define yyterminate() return YY_NULL | 
|  | #endif | 
|  |  | 
|  | /* Number of entries by which start-condition stack grows. */ | 
|  | #ifndef YY_START_STACK_INCR | 
|  | #define YY_START_STACK_INCR 25 | 
|  | #endif | 
|  |  | 
|  | /* Report a fatal error. */ | 
|  | #ifndef YY_FATAL_ERROR | 
|  | #define YY_FATAL_ERROR(msg) yy_fatal_error( msg ) | 
|  | #endif | 
|  |  | 
|  | /* end tables serialization structures and prototypes */ | 
|  |  | 
|  | /* Default declaration of generated scanner - a define so the user can | 
|  | * easily add parameters. | 
|  | */ | 
|  | #ifndef YY_DECL | 
|  | #define YY_DECL_IS_OURS 1 | 
|  |  | 
|  | extern int yylex \ | 
|  | (YYSTYPE * yylval_param, YYLTYPE * yylloc_param ); | 
|  |  | 
|  | #define YY_DECL int yylex \ | 
|  | (YYSTYPE * yylval_param, YYLTYPE * yylloc_param ) | 
|  | #endif /* !YY_DECL */ | 
|  |  | 
|  | /* Code executed at the beginning of each rule, after yytext and yyleng | 
|  | * have been set up. | 
|  | */ | 
|  | #ifndef YY_USER_ACTION | 
|  | #define YY_USER_ACTION | 
|  | #endif | 
|  |  | 
|  | /* Code executed at the end of each rule. */ | 
|  | #ifndef YY_BREAK | 
|  | #define YY_BREAK /*LINTED*/break; | 
|  | #endif | 
|  |  | 
|  | #define YY_RULE_SETUP \ | 
|  | if ( yyleng > 0 ) \ | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ | 
|  | (yytext[yyleng - 1] == '\n'); \ | 
|  | YY_USER_ACTION | 
|  |  | 
|  | /** The main scanner function which does all the work. | 
|  | */ | 
|  | YY_DECL | 
|  | { | 
|  | yy_state_type yy_current_state; | 
|  | char *yy_cp, *yy_bp; | 
|  | int yy_act; | 
|  |  | 
|  | YYSTYPE * yylval; | 
|  |  | 
|  | YYLTYPE * yylloc; | 
|  |  | 
|  | yylval = yylval_param; | 
|  |  | 
|  | yylloc = yylloc_param; | 
|  |  | 
|  | if ( !(yy_init) ) | 
|  | { | 
|  | (yy_init) = 1; | 
|  |  | 
|  | #ifdef YY_USER_INIT | 
|  | YY_USER_INIT; | 
|  | #endif | 
|  |  | 
|  | if ( ! (yy_start) ) | 
|  | (yy_start) = 1;	/* first start state */ | 
|  |  | 
|  | if ( ! yyin ) | 
|  | yyin = stdin; | 
|  |  | 
|  | if ( ! yyout ) | 
|  | yyout = stdout; | 
|  |  | 
|  | if ( ! YY_CURRENT_BUFFER ) { | 
|  | yyensure_buffer_stack (); | 
|  | YY_CURRENT_BUFFER_LVALUE = | 
|  | yy_create_buffer( yyin, YY_BUF_SIZE ); | 
|  | } | 
|  |  | 
|  | yy_load_buffer_state(  ); | 
|  | } | 
|  |  | 
|  | { | 
|  | #line 192 "tools/widl/parser.l" | 
|  |  | 
|  | #line 2214 "tools/widl/parser.yy.c" | 
|  |  | 
|  | while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */ | 
|  | { | 
|  | yy_cp = (yy_c_buf_p); | 
|  |  | 
|  | /* Support of yytext. */ | 
|  | *yy_cp = (yy_hold_char); | 
|  |  | 
|  | /* yy_bp points to the position in yy_ch_buf of the start of | 
|  | * the current run. | 
|  | */ | 
|  | yy_bp = yy_cp; | 
|  |  | 
|  | yy_current_state = (yy_start); | 
|  | yy_current_state += YY_AT_BOL(); | 
|  | yy_match: | 
|  | do | 
|  | { | 
|  | YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; | 
|  | if ( yy_accept[yy_current_state] ) | 
|  | { | 
|  | (yy_last_accepting_state) = yy_current_state; | 
|  | (yy_last_accepting_cpos) = yy_cp; | 
|  | } | 
|  | while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | 
|  | { | 
|  | yy_current_state = (int) yy_def[yy_current_state]; | 
|  | if ( yy_current_state >= 1469 ) | 
|  | yy_c = yy_meta[yy_c]; | 
|  | } | 
|  | yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; | 
|  | ++yy_cp; | 
|  | } | 
|  | while ( yy_current_state != 1468 ); | 
|  | yy_cp = (yy_last_accepting_cpos); | 
|  | yy_current_state = (yy_last_accepting_state); | 
|  |  | 
|  | yy_find_action: | 
|  | yy_act = yy_accept[yy_current_state]; | 
|  |  | 
|  | YY_DO_BEFORE_ACTION; | 
|  |  | 
|  | do_action:	/* This label is used only to access EOF actions. */ | 
|  |  | 
|  | switch ( yy_act ) | 
|  | { /* beginning of action switch */ | 
|  | case 0: /* must back up */ | 
|  | /* undo the effects of YY_DO_BEFORE_ACTION */ | 
|  | *yy_cp = (yy_hold_char); | 
|  | yy_cp = (yy_last_accepting_cpos); | 
|  | yy_current_state = (yy_last_accepting_state); | 
|  | goto yy_find_action; | 
|  |  | 
|  | case 1: | 
|  | *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ | 
|  | (yy_c_buf_p) = yy_cp = yy_bp + 9; | 
|  | YY_DO_BEFORE_ACTION; /* set up yytext again */ | 
|  | YY_RULE_SETUP | 
|  | #line 194 "tools/widl/parser.l" | 
|  | { | 
|  | yy_pop_state(); | 
|  | yylloc->first_line -= 1; | 
|  | return tCPPQUOTE; | 
|  | } | 
|  | YY_BREAK | 
|  | case 2: | 
|  | YY_RULE_SETUP | 
|  | #line 199 "tools/widl/parser.l" | 
|  | { | 
|  | yy_pop_state(); | 
|  | yylloc->first_line -= 1; | 
|  | winrt_enable( TRUE ); | 
|  | } | 
|  | YY_BREAK | 
|  | case 3: | 
|  | YY_RULE_SETUP | 
|  | #line 204 "tools/widl/parser.l" | 
|  | { | 
|  | yy_pop_state(); | 
|  | yylloc->first_line -= 1; | 
|  | winrt_enable( FALSE ); | 
|  | } | 
|  | YY_BREAK | 
|  | case 4: | 
|  | YY_RULE_SETUP | 
|  | #line 209 "tools/widl/parser.l" | 
|  | { | 
|  | yy_pop_state(); | 
|  | yylloc->first_line -= 1; | 
|  | return token_str( aPRAGMA, yytext, yylval ); | 
|  | } | 
|  | YY_BREAK | 
|  |  | 
|  | case 5: | 
|  | YY_RULE_SETUP | 
|  | #line 215 "tools/widl/parser.l" | 
|  | { | 
|  | yylloc->first_line = strtoul( yytext, NULL, 10 ) - 1; | 
|  | yylloc->last_line = yylloc->first_line; | 
|  | yy_pop_state(); | 
|  | yy_push_state(PP_FILE); | 
|  | } | 
|  | YY_BREAK | 
|  | case 6: | 
|  | /* rule 6 can match eol */ | 
|  | YY_RULE_SETUP | 
|  | #line 221 "tools/widl/parser.l" | 
|  | { | 
|  | input_name = xstrdup( yytext + 1 ); | 
|  | *strchr( input_name, '"' ) = 0; | 
|  | yylloc->input_name = input_name; | 
|  | } | 
|  | YY_BREAK | 
|  | case 7: | 
|  | /* rule 7 can match eol */ | 
|  | YY_RULE_SETUP | 
|  | #line 226 "tools/widl/parser.l" | 
|  | { yy_pop_state(); } | 
|  | YY_BREAK | 
|  |  | 
|  | case 8: | 
|  | YY_RULE_SETUP | 
|  | #line 229 "tools/widl/parser.l" | 
|  | { yy_pop_state(); return ']'; } | 
|  | YY_BREAK | 
|  | case 9: | 
|  | YY_RULE_SETUP | 
|  | #line 231 "tools/widl/parser.l" | 
|  | { return token_uuid( yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 10: | 
|  | YY_RULE_SETUP | 
|  | #line 232 "tools/widl/parser.l" | 
|  | { return token_winrt( tACTIVATABLE, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 11: | 
|  | YY_RULE_SETUP | 
|  | #line 233 "tools/widl/parser.l" | 
|  | { return tAGGREGATABLE; } | 
|  | YY_BREAK | 
|  | case 12: | 
|  | YY_RULE_SETUP | 
|  | #line 234 "tools/widl/parser.l" | 
|  | { return token_winrt( tAGILE, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 13: | 
|  | YY_RULE_SETUP | 
|  | #line 235 "tools/widl/parser.l" | 
|  | { return tALLNODES; } | 
|  | YY_BREAK | 
|  | case 14: | 
|  | YY_RULE_SETUP | 
|  | #line 236 "tools/widl/parser.l" | 
|  | { return tALLOCATE; } | 
|  | YY_BREAK | 
|  | case 15: | 
|  | YY_RULE_SETUP | 
|  | #line 237 "tools/widl/parser.l" | 
|  | { return tANNOTATION; } | 
|  | YY_BREAK | 
|  | case 16: | 
|  | YY_RULE_SETUP | 
|  | #line 238 "tools/widl/parser.l" | 
|  | { return tAPARTMENT; } | 
|  | YY_BREAK | 
|  | case 17: | 
|  | YY_RULE_SETUP | 
|  | #line 239 "tools/widl/parser.l" | 
|  | { return tAPPOBJECT; } | 
|  | YY_BREAK | 
|  | case 18: | 
|  | YY_RULE_SETUP | 
|  | #line 240 "tools/widl/parser.l" | 
|  | { return tASYNC; } | 
|  | YY_BREAK | 
|  | case 19: | 
|  | YY_RULE_SETUP | 
|  | #line 241 "tools/widl/parser.l" | 
|  | { return tASYNCUUID; } | 
|  | YY_BREAK | 
|  | case 20: | 
|  | YY_RULE_SETUP | 
|  | #line 242 "tools/widl/parser.l" | 
|  | { return tAUTOHANDLE; } | 
|  | YY_BREAK | 
|  | case 21: | 
|  | YY_RULE_SETUP | 
|  | #line 243 "tools/widl/parser.l" | 
|  | { return tBINDABLE; } | 
|  | YY_BREAK | 
|  | case 22: | 
|  | YY_RULE_SETUP | 
|  | #line 244 "tools/widl/parser.l" | 
|  | { return tBOTH; } | 
|  | YY_BREAK | 
|  | case 23: | 
|  | YY_RULE_SETUP | 
|  | #line 245 "tools/widl/parser.l" | 
|  | { return tBROADCAST; } | 
|  | YY_BREAK | 
|  | case 24: | 
|  | YY_RULE_SETUP | 
|  | #line 246 "tools/widl/parser.l" | 
|  | { return tBYTECOUNT; } | 
|  | YY_BREAK | 
|  | case 25: | 
|  | YY_RULE_SETUP | 
|  | #line 247 "tools/widl/parser.l" | 
|  | { return tCALLAS; } | 
|  | YY_BREAK | 
|  | case 26: | 
|  | YY_RULE_SETUP | 
|  | #line 248 "tools/widl/parser.l" | 
|  | { return tCALLBACK; } | 
|  | YY_BREAK | 
|  | case 27: | 
|  | YY_RULE_SETUP | 
|  | #line 249 "tools/widl/parser.l" | 
|  | { return tCODE; } | 
|  | YY_BREAK | 
|  | case 28: | 
|  | YY_RULE_SETUP | 
|  | #line 250 "tools/widl/parser.l" | 
|  | { return tCOMMSTATUS; } | 
|  | YY_BREAK | 
|  | case 29: | 
|  | YY_RULE_SETUP | 
|  | #line 251 "tools/widl/parser.l" | 
|  | { return token_winrt( tCOMPOSABLE, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 30: | 
|  | YY_RULE_SETUP | 
|  | #line 252 "tools/widl/parser.l" | 
|  | { return tCONTEXTHANDLE; } | 
|  | YY_BREAK | 
|  | case 31: | 
|  | YY_RULE_SETUP | 
|  | #line 253 "tools/widl/parser.l" | 
|  | { return tCONTEXTHANDLENOSERIALIZE; } | 
|  | YY_BREAK | 
|  | case 32: | 
|  | YY_RULE_SETUP | 
|  | #line 254 "tools/widl/parser.l" | 
|  | { return tCONTEXTHANDLENOSERIALIZE; } | 
|  | YY_BREAK | 
|  | case 33: | 
|  | YY_RULE_SETUP | 
|  | #line 255 "tools/widl/parser.l" | 
|  | { return token_winrt( tCONTRACT, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 34: | 
|  | YY_RULE_SETUP | 
|  | #line 256 "tools/widl/parser.l" | 
|  | { return token_winrt( tCONTRACTVERSION, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 35: | 
|  | YY_RULE_SETUP | 
|  | #line 257 "tools/widl/parser.l" | 
|  | { return tCONTROL; } | 
|  | YY_BREAK | 
|  | case 36: | 
|  | YY_RULE_SETUP | 
|  | #line 258 "tools/widl/parser.l" | 
|  | { return tCUSTOM; } | 
|  | YY_BREAK | 
|  | case 37: | 
|  | YY_RULE_SETUP | 
|  | #line 259 "tools/widl/parser.l" | 
|  | { return tDECODE; } | 
|  | YY_BREAK | 
|  | case 38: | 
|  | YY_RULE_SETUP | 
|  | #line 260 "tools/widl/parser.l" | 
|  | { return tDEFAULT_OVERLOAD; } | 
|  | YY_BREAK | 
|  | case 39: | 
|  | YY_RULE_SETUP | 
|  | #line 261 "tools/widl/parser.l" | 
|  | { return tDEFAULTBIND; } | 
|  | YY_BREAK | 
|  | case 40: | 
|  | YY_RULE_SETUP | 
|  | #line 262 "tools/widl/parser.l" | 
|  | { return tDEFAULTCOLLELEM; } | 
|  | YY_BREAK | 
|  | case 41: | 
|  | YY_RULE_SETUP | 
|  | #line 263 "tools/widl/parser.l" | 
|  | { return tDEFAULTVALUE; } | 
|  | YY_BREAK | 
|  | case 42: | 
|  | YY_RULE_SETUP | 
|  | #line 264 "tools/widl/parser.l" | 
|  | { return tDEFAULTVTABLE; } | 
|  | YY_BREAK | 
|  | case 43: | 
|  | YY_RULE_SETUP | 
|  | #line 265 "tools/widl/parser.l" | 
|  | { return token_winrt( tDEPRECATED, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 44: | 
|  | YY_RULE_SETUP | 
|  | #line 266 "tools/widl/parser.l" | 
|  | { return tDISABLECONSISTENCYCHECK; } | 
|  | YY_BREAK | 
|  | case 45: | 
|  | YY_RULE_SETUP | 
|  | #line 267 "tools/widl/parser.l" | 
|  | { return tDISPLAYBIND; } | 
|  | YY_BREAK | 
|  | case 46: | 
|  | YY_RULE_SETUP | 
|  | #line 268 "tools/widl/parser.l" | 
|  | { return tDLLNAME; } | 
|  | YY_BREAK | 
|  | case 47: | 
|  | YY_RULE_SETUP | 
|  | #line 269 "tools/widl/parser.l" | 
|  | { return tDONTFREE; } | 
|  | YY_BREAK | 
|  | case 48: | 
|  | YY_RULE_SETUP | 
|  | #line 270 "tools/widl/parser.l" | 
|  | { return tDUAL; } | 
|  | YY_BREAK | 
|  | case 49: | 
|  | YY_RULE_SETUP | 
|  | #line 271 "tools/widl/parser.l" | 
|  | { return tENABLEALLOCATE; } | 
|  | YY_BREAK | 
|  | case 50: | 
|  | YY_RULE_SETUP | 
|  | #line 272 "tools/widl/parser.l" | 
|  | { return tENCODE; } | 
|  | YY_BREAK | 
|  | case 51: | 
|  | YY_RULE_SETUP | 
|  | #line 273 "tools/widl/parser.l" | 
|  | { return tENDPOINT; } | 
|  | YY_BREAK | 
|  | case 52: | 
|  | YY_RULE_SETUP | 
|  | #line 274 "tools/widl/parser.l" | 
|  | { return tENTRY; } | 
|  | YY_BREAK | 
|  | case 53: | 
|  | YY_RULE_SETUP | 
|  | #line 275 "tools/widl/parser.l" | 
|  | { return token_winrt( tEVENTADD, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 54: | 
|  | YY_RULE_SETUP | 
|  | #line 276 "tools/widl/parser.l" | 
|  | { return token_winrt( tEVENTREMOVE, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 55: | 
|  | YY_RULE_SETUP | 
|  | #line 277 "tools/widl/parser.l" | 
|  | { return token_winrt( tEXCLUSIVETO, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 56: | 
|  | YY_RULE_SETUP | 
|  | #line 278 "tools/widl/parser.l" | 
|  | { return tEXPLICITHANDLE; } | 
|  | YY_BREAK | 
|  | case 57: | 
|  | YY_RULE_SETUP | 
|  | #line 279 "tools/widl/parser.l" | 
|  | { return tFAULTSTATUS; } | 
|  | YY_BREAK | 
|  | case 58: | 
|  | YY_RULE_SETUP | 
|  | #line 280 "tools/widl/parser.l" | 
|  | { return token_winrt( tFLAGS, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 59: | 
|  | YY_RULE_SETUP | 
|  | #line 281 "tools/widl/parser.l" | 
|  | { return tFORCEALLOCATE; } | 
|  | YY_BREAK | 
|  | case 60: | 
|  | YY_RULE_SETUP | 
|  | #line 282 "tools/widl/parser.l" | 
|  | { return tFREE; } | 
|  | YY_BREAK | 
|  | case 61: | 
|  | YY_RULE_SETUP | 
|  | #line 283 "tools/widl/parser.l" | 
|  | { return tHANDLE; } | 
|  | YY_BREAK | 
|  | case 62: | 
|  | YY_RULE_SETUP | 
|  | #line 284 "tools/widl/parser.l" | 
|  | { return tHELPCONTEXT; } | 
|  | YY_BREAK | 
|  | case 63: | 
|  | YY_RULE_SETUP | 
|  | #line 285 "tools/widl/parser.l" | 
|  | { return tHELPFILE; } | 
|  | YY_BREAK | 
|  | case 64: | 
|  | YY_RULE_SETUP | 
|  | #line 286 "tools/widl/parser.l" | 
|  | { return tHELPSTRING; } | 
|  | YY_BREAK | 
|  | case 65: | 
|  | YY_RULE_SETUP | 
|  | #line 287 "tools/widl/parser.l" | 
|  | { return tHELPSTRINGCONTEXT; } | 
|  | YY_BREAK | 
|  | case 66: | 
|  | YY_RULE_SETUP | 
|  | #line 288 "tools/widl/parser.l" | 
|  | { return tHELPSTRINGDLL; } | 
|  | YY_BREAK | 
|  | case 67: | 
|  | YY_RULE_SETUP | 
|  | #line 289 "tools/widl/parser.l" | 
|  | { return tHIDDEN; } | 
|  | YY_BREAK | 
|  | case 68: | 
|  | YY_RULE_SETUP | 
|  | #line 290 "tools/widl/parser.l" | 
|  | { return tID; } | 
|  | YY_BREAK | 
|  | case 69: | 
|  | YY_RULE_SETUP | 
|  | #line 291 "tools/widl/parser.l" | 
|  | { return tIDEMPOTENT; } | 
|  | YY_BREAK | 
|  | case 70: | 
|  | YY_RULE_SETUP | 
|  | #line 292 "tools/widl/parser.l" | 
|  | { return tIGNORE; } | 
|  | YY_BREAK | 
|  | case 71: | 
|  | YY_RULE_SETUP | 
|  | #line 293 "tools/widl/parser.l" | 
|  | { return tIIDIS; } | 
|  | YY_BREAK | 
|  | case 72: | 
|  | YY_RULE_SETUP | 
|  | #line 294 "tools/widl/parser.l" | 
|  | { return tIMMEDIATEBIND; } | 
|  | YY_BREAK | 
|  | case 73: | 
|  | YY_RULE_SETUP | 
|  | #line 295 "tools/widl/parser.l" | 
|  | { return tIMPLICITHANDLE; } | 
|  | YY_BREAK | 
|  | case 74: | 
|  | YY_RULE_SETUP | 
|  | #line 296 "tools/widl/parser.l" | 
|  | { return tIN; } | 
|  | YY_BREAK | 
|  | case 75: | 
|  | YY_RULE_SETUP | 
|  | #line 297 "tools/widl/parser.l" | 
|  | { return tIN_LINE; } | 
|  | YY_BREAK | 
|  | case 76: | 
|  | YY_RULE_SETUP | 
|  | #line 298 "tools/widl/parser.l" | 
|  | { return tINPUTSYNC; } | 
|  | YY_BREAK | 
|  | case 77: | 
|  | YY_RULE_SETUP | 
|  | #line 299 "tools/widl/parser.l" | 
|  | { return tLCID; } | 
|  | YY_BREAK | 
|  | case 78: | 
|  | YY_RULE_SETUP | 
|  | #line 300 "tools/widl/parser.l" | 
|  | { return tLENGTHIS; } | 
|  | YY_BREAK | 
|  | case 79: | 
|  | YY_RULE_SETUP | 
|  | #line 301 "tools/widl/parser.l" | 
|  | { return tLICENSED; } | 
|  | YY_BREAK | 
|  | case 80: | 
|  | YY_RULE_SETUP | 
|  | #line 302 "tools/widl/parser.l" | 
|  | { return tLOCAL; } | 
|  | YY_BREAK | 
|  | case 81: | 
|  | YY_RULE_SETUP | 
|  | #line 303 "tools/widl/parser.l" | 
|  | { return token_winrt( tMARSHALINGBEHAVIOR, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 82: | 
|  | YY_RULE_SETUP | 
|  | #line 304 "tools/widl/parser.l" | 
|  | { return tMAYBE; } | 
|  | YY_BREAK | 
|  | case 83: | 
|  | YY_RULE_SETUP | 
|  | #line 305 "tools/widl/parser.l" | 
|  | { return tMESSAGE; } | 
|  | YY_BREAK | 
|  | case 84: | 
|  | YY_RULE_SETUP | 
|  | #line 306 "tools/widl/parser.l" | 
|  | { return tMTA; } | 
|  | YY_BREAK | 
|  | case 85: | 
|  | YY_RULE_SETUP | 
|  | #line 307 "tools/widl/parser.l" | 
|  | { return tNEUTRAL; } | 
|  | YY_BREAK | 
|  | case 86: | 
|  | YY_RULE_SETUP | 
|  | #line 308 "tools/widl/parser.l" | 
|  | { return tNOCODE; } | 
|  | YY_BREAK | 
|  | case 87: | 
|  | YY_RULE_SETUP | 
|  | #line 309 "tools/widl/parser.l" | 
|  | { return tNONBROWSABLE; } | 
|  | YY_BREAK | 
|  | case 88: | 
|  | YY_RULE_SETUP | 
|  | #line 310 "tools/widl/parser.l" | 
|  | { return tNONCREATABLE; } | 
|  | YY_BREAK | 
|  | case 89: | 
|  | YY_RULE_SETUP | 
|  | #line 311 "tools/widl/parser.l" | 
|  | { return token_winrt( tNONE, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 90: | 
|  | YY_RULE_SETUP | 
|  | #line 312 "tools/widl/parser.l" | 
|  | { return tNONEXTENSIBLE; } | 
|  | YY_BREAK | 
|  | case 91: | 
|  | YY_RULE_SETUP | 
|  | #line 313 "tools/widl/parser.l" | 
|  | { return tNOTIFY; } | 
|  | YY_BREAK | 
|  | case 92: | 
|  | YY_RULE_SETUP | 
|  | #line 314 "tools/widl/parser.l" | 
|  | { return tNOTIFYFLAG; } | 
|  | YY_BREAK | 
|  | case 93: | 
|  | YY_RULE_SETUP | 
|  | #line 315 "tools/widl/parser.l" | 
|  | { return tOBJECT; } | 
|  | YY_BREAK | 
|  | case 94: | 
|  | YY_RULE_SETUP | 
|  | #line 316 "tools/widl/parser.l" | 
|  | { return tODL; } | 
|  | YY_BREAK | 
|  | case 95: | 
|  | YY_RULE_SETUP | 
|  | #line 317 "tools/widl/parser.l" | 
|  | { return tOLEAUTOMATION; } | 
|  | YY_BREAK | 
|  | case 96: | 
|  | YY_RULE_SETUP | 
|  | #line 318 "tools/widl/parser.l" | 
|  | { return tOPTIMIZE; } | 
|  | YY_BREAK | 
|  | case 97: | 
|  | YY_RULE_SETUP | 
|  | #line 319 "tools/widl/parser.l" | 
|  | { return tOPTIONAL; } | 
|  | YY_BREAK | 
|  | case 98: | 
|  | YY_RULE_SETUP | 
|  | #line 320 "tools/widl/parser.l" | 
|  | { return tOUT; } | 
|  | YY_BREAK | 
|  | case 99: | 
|  | YY_RULE_SETUP | 
|  | #line 321 "tools/widl/parser.l" | 
|  | { return tOVERLOAD; } | 
|  | YY_BREAK | 
|  | case 100: | 
|  | YY_RULE_SETUP | 
|  | #line 322 "tools/widl/parser.l" | 
|  | { return tPARTIALIGNORE; } | 
|  | YY_BREAK | 
|  | case 101: | 
|  | YY_RULE_SETUP | 
|  | #line 323 "tools/widl/parser.l" | 
|  | { return tPOINTERDEFAULT; } | 
|  | YY_BREAK | 
|  | case 102: | 
|  | YY_RULE_SETUP | 
|  | #line 324 "tools/widl/parser.l" | 
|  | { return tPROGID; } | 
|  | YY_BREAK | 
|  | case 103: | 
|  | YY_RULE_SETUP | 
|  | #line 325 "tools/widl/parser.l" | 
|  | { return tPROPGET; } | 
|  | YY_BREAK | 
|  | case 104: | 
|  | YY_RULE_SETUP | 
|  | #line 326 "tools/widl/parser.l" | 
|  | { return tPROPPUT; } | 
|  | YY_BREAK | 
|  | case 105: | 
|  | YY_RULE_SETUP | 
|  | #line 327 "tools/widl/parser.l" | 
|  | { return tPROPPUTREF; } | 
|  | YY_BREAK | 
|  | case 106: | 
|  | YY_RULE_SETUP | 
|  | #line 328 "tools/widl/parser.l" | 
|  | { return tPROTECTED; } | 
|  | YY_BREAK | 
|  | case 107: | 
|  | YY_RULE_SETUP | 
|  | #line 329 "tools/widl/parser.l" | 
|  | { return tPROXY; } | 
|  | YY_BREAK | 
|  | case 108: | 
|  | YY_RULE_SETUP | 
|  | #line 330 "tools/widl/parser.l" | 
|  | { return tPTR; } | 
|  | YY_BREAK | 
|  | case 109: | 
|  | YY_RULE_SETUP | 
|  | #line 331 "tools/widl/parser.l" | 
|  | { return tPUBLIC; } | 
|  | YY_BREAK | 
|  | case 110: | 
|  | YY_RULE_SETUP | 
|  | #line 332 "tools/widl/parser.l" | 
|  | { return tRANGE; } | 
|  | YY_BREAK | 
|  | case 111: | 
|  | YY_RULE_SETUP | 
|  | #line 333 "tools/widl/parser.l" | 
|  | { return tREADONLY; } | 
|  | YY_BREAK | 
|  | case 112: | 
|  | YY_RULE_SETUP | 
|  | #line 334 "tools/widl/parser.l" | 
|  | { return tREF; } | 
|  | YY_BREAK | 
|  | case 113: | 
|  | YY_RULE_SETUP | 
|  | #line 335 "tools/widl/parser.l" | 
|  | { return tREPRESENTAS; } | 
|  | YY_BREAK | 
|  | case 114: | 
|  | YY_RULE_SETUP | 
|  | #line 336 "tools/widl/parser.l" | 
|  | { return tREQUESTEDIT; } | 
|  | YY_BREAK | 
|  | case 115: | 
|  | YY_RULE_SETUP | 
|  | #line 337 "tools/widl/parser.l" | 
|  | { return tRESTRICTED; } | 
|  | YY_BREAK | 
|  | case 116: | 
|  | YY_RULE_SETUP | 
|  | #line 338 "tools/widl/parser.l" | 
|  | { return tRETVAL; } | 
|  | YY_BREAK | 
|  | case 117: | 
|  | YY_RULE_SETUP | 
|  | #line 339 "tools/widl/parser.l" | 
|  | { return tSINGLE; } | 
|  | YY_BREAK | 
|  | case 118: | 
|  | YY_RULE_SETUP | 
|  | #line 340 "tools/widl/parser.l" | 
|  | { return tSINGLENODE; } | 
|  | YY_BREAK | 
|  | case 119: | 
|  | YY_RULE_SETUP | 
|  | #line 341 "tools/widl/parser.l" | 
|  | { return tSIZEIS; } | 
|  | YY_BREAK | 
|  | case 120: | 
|  | YY_RULE_SETUP | 
|  | #line 342 "tools/widl/parser.l" | 
|  | { return tSOURCE; } | 
|  | YY_BREAK | 
|  | case 121: | 
|  | YY_RULE_SETUP | 
|  | #line 343 "tools/widl/parser.l" | 
|  | { return token_winrt( tSTANDARD, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 122: | 
|  | YY_RULE_SETUP | 
|  | #line 344 "tools/widl/parser.l" | 
|  | { return token_winrt( tSTATIC, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 123: | 
|  | YY_RULE_SETUP | 
|  | #line 345 "tools/widl/parser.l" | 
|  | { return tSTRICTCONTEXTHANDLE; } | 
|  | YY_BREAK | 
|  | case 124: | 
|  | YY_RULE_SETUP | 
|  | #line 346 "tools/widl/parser.l" | 
|  | { return tSTRING; } | 
|  | YY_BREAK | 
|  | case 125: | 
|  | YY_RULE_SETUP | 
|  | #line 347 "tools/widl/parser.l" | 
|  | { return tSWITCHIS; } | 
|  | YY_BREAK | 
|  | case 126: | 
|  | YY_RULE_SETUP | 
|  | #line 348 "tools/widl/parser.l" | 
|  | { return tSWITCHTYPE; } | 
|  | YY_BREAK | 
|  | case 127: | 
|  | YY_RULE_SETUP | 
|  | #line 349 "tools/widl/parser.l" | 
|  | { return tTHREADING; } | 
|  | YY_BREAK | 
|  | case 128: | 
|  | YY_RULE_SETUP | 
|  | #line 350 "tools/widl/parser.l" | 
|  | { return tTRANSMITAS; } | 
|  | YY_BREAK | 
|  | case 129: | 
|  | YY_RULE_SETUP | 
|  | #line 351 "tools/widl/parser.l" | 
|  | { return tUIDEFAULT; } | 
|  | YY_BREAK | 
|  | case 130: | 
|  | YY_RULE_SETUP | 
|  | #line 352 "tools/widl/parser.l" | 
|  | { return tUNIQUE; } | 
|  | YY_BREAK | 
|  | case 131: | 
|  | YY_RULE_SETUP | 
|  | #line 353 "tools/widl/parser.l" | 
|  | { return tUSERMARSHAL; } | 
|  | YY_BREAK | 
|  | case 132: | 
|  | YY_RULE_SETUP | 
|  | #line 354 "tools/widl/parser.l" | 
|  | { return tUSESGETLASTERROR; } | 
|  | YY_BREAK | 
|  | case 133: | 
|  | YY_RULE_SETUP | 
|  | #line 355 "tools/widl/parser.l" | 
|  | { return tUUID; } | 
|  | YY_BREAK | 
|  | case 134: | 
|  | YY_RULE_SETUP | 
|  | #line 356 "tools/widl/parser.l" | 
|  | { return tV1ENUM; } | 
|  | YY_BREAK | 
|  | case 135: | 
|  | YY_RULE_SETUP | 
|  | #line 357 "tools/widl/parser.l" | 
|  | { return tVARARG; } | 
|  | YY_BREAK | 
|  | case 136: | 
|  | YY_RULE_SETUP | 
|  | #line 358 "tools/widl/parser.l" | 
|  | { return tVERSION; } | 
|  | YY_BREAK | 
|  | case 137: | 
|  | YY_RULE_SETUP | 
|  | #line 359 "tools/widl/parser.l" | 
|  | { return tVIPROGID; } | 
|  | YY_BREAK | 
|  | case 138: | 
|  | YY_RULE_SETUP | 
|  | #line 360 "tools/widl/parser.l" | 
|  | { return tWIREMARSHAL; } | 
|  | YY_BREAK | 
|  |  | 
|  |  | 
|  | case 139: | 
|  | YY_RULE_SETUP | 
|  | #line 364 "tools/widl/parser.l" | 
|  | { yy_push_state( PP_PRAGMA ); } | 
|  | YY_BREAK | 
|  | case 140: | 
|  | YY_RULE_SETUP | 
|  | #line 365 "tools/widl/parser.l" | 
|  | { return tPRAGMA_WARNING; } | 
|  | YY_BREAK | 
|  | case 141: | 
|  | YY_RULE_SETUP | 
|  | #line 367 "tools/widl/parser.l" | 
|  | { | 
|  | yylval->dbl = strtod( yytext, NULL ); | 
|  | return aDOUBLE; | 
|  | } | 
|  | YY_BREAK | 
|  |  | 
|  | case 142: | 
|  | *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ | 
|  | (yy_c_buf_p) = yy_cp -= 1; | 
|  | YY_DO_BEFORE_ACTION; /* set up yytext again */ | 
|  | YY_RULE_SETUP | 
|  | #line 373 "tools/widl/parser.l" | 
|  | return tSAFEARRAY; | 
|  | YY_BREAK | 
|  |  | 
|  | case 143: | 
|  | YY_RULE_SETUP | 
|  | #line 376 "tools/widl/parser.l" | 
|  | { yy_push_state(PP_LINE); } | 
|  | YY_BREAK | 
|  | case 144: | 
|  | YY_RULE_SETUP | 
|  | #line 377 "tools/widl/parser.l" | 
|  | { yy_push_state(ATTR); return '['; } | 
|  | YY_BREAK | 
|  | case 145: | 
|  | YY_RULE_SETUP | 
|  | #line 379 "tools/widl/parser.l" | 
|  | { return tFALSE; } | 
|  | YY_BREAK | 
|  | case 146: | 
|  | YY_RULE_SETUP | 
|  | #line 380 "tools/widl/parser.l" | 
|  | { return tNULL; } | 
|  | YY_BREAK | 
|  | case 147: | 
|  | YY_RULE_SETUP | 
|  | #line 381 "tools/widl/parser.l" | 
|  | { return tTRUE; } | 
|  | YY_BREAK | 
|  | case 148: | 
|  | YY_RULE_SETUP | 
|  | #line 382 "tools/widl/parser.l" | 
|  | { return token_str( tCDECL, "__cdecl", yylval ); } | 
|  | YY_BREAK | 
|  | case 149: | 
|  | YY_RULE_SETUP | 
|  | #line 383 "tools/widl/parser.l" | 
|  | { return token_str( tPASCAL, "__pascal", yylval ); } | 
|  | YY_BREAK | 
|  | case 150: | 
|  | YY_RULE_SETUP | 
|  | #line 384 "tools/widl/parser.l" | 
|  | { return token_str( tSTDCALL, "__stdcall", yylval ); } | 
|  | YY_BREAK | 
|  | case 151: | 
|  | YY_RULE_SETUP | 
|  | #line 385 "tools/widl/parser.l" | 
|  | { return token_str( tFASTCALL, "__fastcall", yylval ); } | 
|  | YY_BREAK | 
|  | case 152: | 
|  | YY_RULE_SETUP | 
|  | #line 386 "tools/widl/parser.l" | 
|  | { return tINT32; } | 
|  | YY_BREAK | 
|  | case 153: | 
|  | YY_RULE_SETUP | 
|  | #line 387 "tools/widl/parser.l" | 
|  | { return tINT3264; } | 
|  | YY_BREAK | 
|  | case 154: | 
|  | YY_RULE_SETUP | 
|  | #line 388 "tools/widl/parser.l" | 
|  | { return tINT64; } | 
|  | YY_BREAK | 
|  | case 155: | 
|  | YY_RULE_SETUP | 
|  | #line 389 "tools/widl/parser.l" | 
|  | { return token_winrt( tAPICONTRACT, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 156: | 
|  | YY_RULE_SETUP | 
|  | #line 390 "tools/widl/parser.l" | 
|  | { return tBOOLEAN; } | 
|  | YY_BREAK | 
|  | case 157: | 
|  | YY_RULE_SETUP | 
|  | #line 391 "tools/widl/parser.l" | 
|  | { return tBYTE; } | 
|  | YY_BREAK | 
|  | case 158: | 
|  | YY_RULE_SETUP | 
|  | #line 392 "tools/widl/parser.l" | 
|  | { return tCASE; } | 
|  | YY_BREAK | 
|  | case 159: | 
|  | YY_RULE_SETUP | 
|  | #line 393 "tools/widl/parser.l" | 
|  | { return tCHAR; } | 
|  | YY_BREAK | 
|  | case 160: | 
|  | YY_RULE_SETUP | 
|  | #line 394 "tools/widl/parser.l" | 
|  | { return tCOCLASS; } | 
|  | YY_BREAK | 
|  | case 161: | 
|  | YY_RULE_SETUP | 
|  | #line 395 "tools/widl/parser.l" | 
|  | { return tCONST; } | 
|  | YY_BREAK | 
|  | case 162: | 
|  | YY_RULE_SETUP | 
|  | #line 396 "tools/widl/parser.l" | 
|  | { return tCPPQUOTE; } | 
|  | YY_BREAK | 
|  | case 163: | 
|  | YY_RULE_SETUP | 
|  | #line 397 "tools/widl/parser.l" | 
|  | { return token_winrt( tDECLARE, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 164: | 
|  | YY_RULE_SETUP | 
|  | #line 398 "tools/widl/parser.l" | 
|  | { return tDEFAULT; } | 
|  | YY_BREAK | 
|  | case 165: | 
|  | YY_RULE_SETUP | 
|  | #line 399 "tools/widl/parser.l" | 
|  | { return token_winrt( tDELEGATE, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 166: | 
|  | YY_RULE_SETUP | 
|  | #line 400 "tools/widl/parser.l" | 
|  | { return tDISPINTERFACE; } | 
|  | YY_BREAK | 
|  | case 167: | 
|  | YY_RULE_SETUP | 
|  | #line 401 "tools/widl/parser.l" | 
|  | { return tDOUBLE; } | 
|  | YY_BREAK | 
|  | case 168: | 
|  | YY_RULE_SETUP | 
|  | #line 402 "tools/widl/parser.l" | 
|  | { return tENUM; } | 
|  | YY_BREAK | 
|  | case 169: | 
|  | YY_RULE_SETUP | 
|  | #line 403 "tools/widl/parser.l" | 
|  | { return tERRORSTATUST; } | 
|  | YY_BREAK | 
|  | case 170: | 
|  | YY_RULE_SETUP | 
|  | #line 404 "tools/widl/parser.l" | 
|  | { return tEXTERN; } | 
|  | YY_BREAK | 
|  | case 171: | 
|  | YY_RULE_SETUP | 
|  | #line 405 "tools/widl/parser.l" | 
|  | { return tFLOAT; } | 
|  | YY_BREAK | 
|  | case 172: | 
|  | YY_RULE_SETUP | 
|  | #line 406 "tools/widl/parser.l" | 
|  | { return tHANDLET; } | 
|  | YY_BREAK | 
|  | case 173: | 
|  | YY_RULE_SETUP | 
|  | #line 407 "tools/widl/parser.l" | 
|  | { return tHYPER; } | 
|  | YY_BREAK | 
|  | case 174: | 
|  | YY_RULE_SETUP | 
|  | #line 408 "tools/widl/parser.l" | 
|  | { return tIMPORT; } | 
|  | YY_BREAK | 
|  | case 175: | 
|  | YY_RULE_SETUP | 
|  | #line 409 "tools/widl/parser.l" | 
|  | { return tIMPORTLIB; } | 
|  | YY_BREAK | 
|  | case 176: | 
|  | YY_RULE_SETUP | 
|  | #line 410 "tools/widl/parser.l" | 
|  | { return tINLINE; } | 
|  | YY_BREAK | 
|  | case 177: | 
|  | YY_RULE_SETUP | 
|  | #line 411 "tools/widl/parser.l" | 
|  | { return tINT; } | 
|  | YY_BREAK | 
|  | case 178: | 
|  | YY_RULE_SETUP | 
|  | #line 412 "tools/widl/parser.l" | 
|  | { return tINTERFACE; } | 
|  | YY_BREAK | 
|  | case 179: | 
|  | YY_RULE_SETUP | 
|  | #line 413 "tools/widl/parser.l" | 
|  | { return tLIBRARY; } | 
|  | YY_BREAK | 
|  | case 180: | 
|  | YY_RULE_SETUP | 
|  | #line 414 "tools/widl/parser.l" | 
|  | { return tLONG; } | 
|  | YY_BREAK | 
|  | case 181: | 
|  | YY_RULE_SETUP | 
|  | #line 415 "tools/widl/parser.l" | 
|  | { return tMETHODS; } | 
|  | YY_BREAK | 
|  | case 182: | 
|  | YY_RULE_SETUP | 
|  | #line 416 "tools/widl/parser.l" | 
|  | { return tMODULE; } | 
|  | YY_BREAK | 
|  | case 183: | 
|  | YY_RULE_SETUP | 
|  | #line 417 "tools/widl/parser.l" | 
|  | { return token_winrt( tNAMESPACE, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 184: | 
|  | YY_RULE_SETUP | 
|  | #line 418 "tools/widl/parser.l" | 
|  | { return tPROPERTIES; } | 
|  | YY_BREAK | 
|  | case 185: | 
|  | YY_RULE_SETUP | 
|  | #line 419 "tools/widl/parser.l" | 
|  | { return tREGISTER; } | 
|  | YY_BREAK | 
|  | case 186: | 
|  | YY_RULE_SETUP | 
|  | #line 420 "tools/widl/parser.l" | 
|  | { return token_winrt( tREQUIRES, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 187: | 
|  | YY_RULE_SETUP | 
|  | #line 421 "tools/widl/parser.l" | 
|  | { return token_winrt( tRUNTIMECLASS, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 188: | 
|  | YY_RULE_SETUP | 
|  | #line 422 "tools/widl/parser.l" | 
|  | { return tSHORT; } | 
|  | YY_BREAK | 
|  | case 189: | 
|  | YY_RULE_SETUP | 
|  | #line 423 "tools/widl/parser.l" | 
|  | { return tSIGNED; } | 
|  | YY_BREAK | 
|  | case 190: | 
|  | YY_RULE_SETUP | 
|  | #line 424 "tools/widl/parser.l" | 
|  | { return tSIZEOF; } | 
|  | YY_BREAK | 
|  | case 191: | 
|  | YY_RULE_SETUP | 
|  | #line 425 "tools/widl/parser.l" | 
|  | { return tSMALL; } | 
|  | YY_BREAK | 
|  | case 192: | 
|  | YY_RULE_SETUP | 
|  | #line 426 "tools/widl/parser.l" | 
|  | { return tSTATIC; } | 
|  | YY_BREAK | 
|  | case 193: | 
|  | YY_RULE_SETUP | 
|  | #line 427 "tools/widl/parser.l" | 
|  | { return tSTRUCT; } | 
|  | YY_BREAK | 
|  | case 194: | 
|  | YY_RULE_SETUP | 
|  | #line 428 "tools/widl/parser.l" | 
|  | { return tSWITCH; } | 
|  | YY_BREAK | 
|  | case 195: | 
|  | YY_RULE_SETUP | 
|  | #line 429 "tools/widl/parser.l" | 
|  | { return tTYPEDEF; } | 
|  | YY_BREAK | 
|  | case 196: | 
|  | YY_RULE_SETUP | 
|  | #line 430 "tools/widl/parser.l" | 
|  | { return tUNION; } | 
|  | YY_BREAK | 
|  | case 197: | 
|  | YY_RULE_SETUP | 
|  | #line 431 "tools/widl/parser.l" | 
|  | { return tUNSIGNED; } | 
|  | YY_BREAK | 
|  | case 198: | 
|  | YY_RULE_SETUP | 
|  | #line 432 "tools/widl/parser.l" | 
|  | { return tVOID; } | 
|  | YY_BREAK | 
|  | case 199: | 
|  | YY_RULE_SETUP | 
|  | #line 433 "tools/widl/parser.l" | 
|  | { return tWCHAR; } | 
|  | YY_BREAK | 
|  | case 200: | 
|  | YY_RULE_SETUP | 
|  | #line 435 "tools/widl/parser.l" | 
|  | { return token_ident( yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 201: | 
|  | YY_RULE_SETUP | 
|  | #line 437 "tools/widl/parser.l" | 
|  | { return token_num( yytext, yylval, TRUE ); } | 
|  | YY_BREAK | 
|  | case 202: | 
|  | YY_RULE_SETUP | 
|  | #line 438 "tools/widl/parser.l" | 
|  | { return token_num( yytext, yylval, FALSE ); } | 
|  | YY_BREAK | 
|  | case 203: | 
|  | /* rule 203 can match eol */ | 
|  | YY_RULE_SETUP | 
|  | #line 440 "tools/widl/parser.l" | 
|  | { return token_str( aWSTRING, yytext + 1, yylval ); } | 
|  | YY_BREAK | 
|  | case 204: | 
|  | /* rule 204 can match eol */ | 
|  | YY_RULE_SETUP | 
|  | #line 441 "tools/widl/parser.l" | 
|  | { return token_str( aSTRING, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 205: | 
|  | /* rule 205 can match eol */ | 
|  | YY_RULE_SETUP | 
|  | #line 442 "tools/widl/parser.l" | 
|  | { return token_str( aSQSTRING, yytext, yylval ); } | 
|  | YY_BREAK | 
|  | case 206: | 
|  | /* rule 206 can match eol */ | 
|  | YY_RULE_SETUP | 
|  | #line 444 "tools/widl/parser.l" | 
|  | { end_of_line( yylloc ); } | 
|  | YY_BREAK | 
|  | case 207: | 
|  | YY_RULE_SETUP | 
|  | #line 445 "tools/widl/parser.l" | 
|  | {} | 
|  | YY_BREAK | 
|  | case 208: | 
|  | YY_RULE_SETUP | 
|  | #line 446 "tools/widl/parser.l" | 
|  | { return SHL; } | 
|  | YY_BREAK | 
|  | case 209: | 
|  | YY_RULE_SETUP | 
|  | #line 447 "tools/widl/parser.l" | 
|  | { return SHR; } | 
|  | YY_BREAK | 
|  | case 210: | 
|  | YY_RULE_SETUP | 
|  | #line 448 "tools/widl/parser.l" | 
|  | { return MEMBERPTR; } | 
|  | YY_BREAK | 
|  | case 211: | 
|  | YY_RULE_SETUP | 
|  | #line 449 "tools/widl/parser.l" | 
|  | { return EQUALITY; } | 
|  | YY_BREAK | 
|  | case 212: | 
|  | YY_RULE_SETUP | 
|  | #line 450 "tools/widl/parser.l" | 
|  | { return INEQUALITY; } | 
|  | YY_BREAK | 
|  | case 213: | 
|  | YY_RULE_SETUP | 
|  | #line 451 "tools/widl/parser.l" | 
|  | { return GREATEREQUAL; } | 
|  | YY_BREAK | 
|  | case 214: | 
|  | YY_RULE_SETUP | 
|  | #line 452 "tools/widl/parser.l" | 
|  | { return LESSEQUAL; } | 
|  | YY_BREAK | 
|  | case 215: | 
|  | YY_RULE_SETUP | 
|  | #line 453 "tools/widl/parser.l" | 
|  | { return LOGICALOR; } | 
|  | YY_BREAK | 
|  | case 216: | 
|  | YY_RULE_SETUP | 
|  | #line 454 "tools/widl/parser.l" | 
|  | { return LOGICALAND; } | 
|  | YY_BREAK | 
|  | case 217: | 
|  | YY_RULE_SETUP | 
|  | #line 455 "tools/widl/parser.l" | 
|  | { return ELLIPSIS; } | 
|  | YY_BREAK | 
|  | case 218: | 
|  | YY_RULE_SETUP | 
|  | #line 456 "tools/widl/parser.l" | 
|  | { return yytext[0]; } | 
|  | YY_BREAK | 
|  |  | 
|  | case YY_STATE_EOF(INITIAL): | 
|  | case YY_STATE_EOF(ATTR): | 
|  | case YY_STATE_EOF(PP_LINE): | 
|  | case YY_STATE_EOF(PP_FILE): | 
|  | case YY_STATE_EOF(PP_PRAGMA): | 
|  | #line 459 "tools/widl/parser.l" | 
|  | { | 
|  | if (!list_empty( &import_stack )) | 
|  | return aEOF; | 
|  | if (acf_name) | 
|  | { | 
|  | switch_to_acf(); | 
|  | return aACF; | 
|  | } | 
|  | yyterminate(); | 
|  | } | 
|  | YY_BREAK | 
|  | case 219: | 
|  | YY_RULE_SETUP | 
|  | #line 469 "tools/widl/parser.l" | 
|  | ECHO; | 
|  | YY_BREAK | 
|  | #line 3427 "tools/widl/parser.yy.c" | 
|  |  | 
|  | case YY_END_OF_BUFFER: | 
|  | { | 
|  | /* Amount of text matched not including the EOB char. */ | 
|  | int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1; | 
|  |  | 
|  | /* Undo the effects of YY_DO_BEFORE_ACTION. */ | 
|  | *yy_cp = (yy_hold_char); | 
|  | YY_RESTORE_YY_MORE_OFFSET | 
|  |  | 
|  | if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW ) | 
|  | { | 
|  | /* We're scanning a new file or input source.  It's | 
|  | * possible that this happened because the user | 
|  | * just pointed yyin at a new source and called | 
|  | * yylex().  If so, then we have to assure | 
|  | * consistency between YY_CURRENT_BUFFER and our | 
|  | * globals.  Here is the right place to do so, because | 
|  | * this is the first action (other than possibly a | 
|  | * back-up) that will match for the new input source. | 
|  | */ | 
|  | (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; | 
|  | } | 
|  |  | 
|  | /* Note that here we test for yy_c_buf_p "<=" to the position | 
|  | * of the first EOB in the buffer, since yy_c_buf_p will | 
|  | * already have been incremented past the NUL character | 
|  | * (since all states make transitions on EOB to the | 
|  | * end-of-buffer state).  Contrast this with the test | 
|  | * in input(). | 
|  | */ | 
|  | if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) | 
|  | { /* This was really a NUL. */ | 
|  | yy_state_type yy_next_state; | 
|  |  | 
|  | (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text; | 
|  |  | 
|  | yy_current_state = yy_get_previous_state(  ); | 
|  |  | 
|  | /* Okay, we're now positioned to make the NUL | 
|  | * transition.  We couldn't have | 
|  | * yy_get_previous_state() go ahead and do it | 
|  | * for us because it doesn't know how to deal | 
|  | * with the possibility of jamming (and we don't | 
|  | * want to build jamming into it because then it | 
|  | * will run more slowly). | 
|  | */ | 
|  |  | 
|  | yy_next_state = yy_try_NUL_trans( yy_current_state ); | 
|  |  | 
|  | yy_bp = (yytext_ptr) + YY_MORE_ADJ; | 
|  |  | 
|  | if ( yy_next_state ) | 
|  | { | 
|  | /* Consume the NUL. */ | 
|  | yy_cp = ++(yy_c_buf_p); | 
|  | yy_current_state = yy_next_state; | 
|  | goto yy_match; | 
|  | } | 
|  |  | 
|  | else | 
|  | { | 
|  | yy_cp = (yy_last_accepting_cpos); | 
|  | yy_current_state = (yy_last_accepting_state); | 
|  | goto yy_find_action; | 
|  | } | 
|  | } | 
|  |  | 
|  | else switch ( yy_get_next_buffer(  ) ) | 
|  | { | 
|  | case EOB_ACT_END_OF_FILE: | 
|  | { | 
|  | (yy_did_buffer_switch_on_eof) = 0; | 
|  |  | 
|  | if ( yywrap(  ) ) | 
|  | { | 
|  | /* Note: because we've taken care in | 
|  | * yy_get_next_buffer() to have set up | 
|  | * yytext, we can now set up | 
|  | * yy_c_buf_p so that if some total | 
|  | * hoser (like flex itself) wants to | 
|  | * call the scanner after we return the | 
|  | * YY_NULL, it'll still work - another | 
|  | * YY_NULL will get returned. | 
|  | */ | 
|  | (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ; | 
|  |  | 
|  | yy_act = YY_STATE_EOF(YY_START); | 
|  | goto do_action; | 
|  | } | 
|  |  | 
|  | else | 
|  | { | 
|  | if ( ! (yy_did_buffer_switch_on_eof) ) | 
|  | YY_NEW_FILE; | 
|  | } | 
|  | break; | 
|  | } | 
|  |  | 
|  | case EOB_ACT_CONTINUE_SCAN: | 
|  | (yy_c_buf_p) = | 
|  | (yytext_ptr) + yy_amount_of_matched_text; | 
|  |  | 
|  | yy_current_state = yy_get_previous_state(  ); | 
|  |  | 
|  | yy_cp = (yy_c_buf_p); | 
|  | yy_bp = (yytext_ptr) + YY_MORE_ADJ; | 
|  | goto yy_match; | 
|  |  | 
|  | case EOB_ACT_LAST_MATCH: | 
|  | (yy_c_buf_p) = | 
|  | &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)]; | 
|  |  | 
|  | yy_current_state = yy_get_previous_state(  ); | 
|  |  | 
|  | yy_cp = (yy_c_buf_p); | 
|  | yy_bp = (yytext_ptr) + YY_MORE_ADJ; | 
|  | goto yy_find_action; | 
|  | } | 
|  | break; | 
|  | } | 
|  |  | 
|  | default: | 
|  | YY_FATAL_ERROR( | 
|  | "fatal flex scanner internal error--no action found" ); | 
|  | } /* end of action switch */ | 
|  | } /* end of scanning one token */ | 
|  | } /* end of user's declarations */ | 
|  | } /* end of yylex */ | 
|  |  | 
|  | /* yy_get_next_buffer - try to read in a new buffer | 
|  | * | 
|  | * Returns a code representing an action: | 
|  | *	EOB_ACT_LAST_MATCH - | 
|  | *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position | 
|  | *	EOB_ACT_END_OF_FILE - end of file | 
|  | */ | 
|  | static int yy_get_next_buffer (void) | 
|  | { | 
|  | char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; | 
|  | char *source = (yytext_ptr); | 
|  | int number_to_move, i; | 
|  | int ret_val; | 
|  |  | 
|  | if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) | 
|  | YY_FATAL_ERROR( | 
|  | "fatal flex scanner internal error--end of buffer missed" ); | 
|  |  | 
|  | if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 ) | 
|  | { /* Don't try to fill the buffer, so this is an EOF. */ | 
|  | if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 ) | 
|  | { | 
|  | /* We matched a single character, the EOB, so | 
|  | * treat this as a final EOF. | 
|  | */ | 
|  | return EOB_ACT_END_OF_FILE; | 
|  | } | 
|  |  | 
|  | else | 
|  | { | 
|  | /* We matched some text prior to the EOB, first | 
|  | * process it. | 
|  | */ | 
|  | return EOB_ACT_LAST_MATCH; | 
|  | } | 
|  | } | 
|  |  | 
|  | /* Try to read more data. */ | 
|  |  | 
|  | /* First move last chars to start of buffer. */ | 
|  | number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); | 
|  |  | 
|  | for ( i = 0; i < number_to_move; ++i ) | 
|  | *(dest++) = *(source++); | 
|  |  | 
|  | if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING ) | 
|  | /* don't do the read, it's not guaranteed to return an EOF, | 
|  | * just force an EOF | 
|  | */ | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0; | 
|  |  | 
|  | else | 
|  | { | 
|  | int num_to_read = | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; | 
|  |  | 
|  | while ( num_to_read <= 0 ) | 
|  | { /* Not enough room in the buffer - grow it. */ | 
|  |  | 
|  | /* just a shorter name for the current buffer */ | 
|  | YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; | 
|  |  | 
|  | int yy_c_buf_p_offset = | 
|  | (int) ((yy_c_buf_p) - b->yy_ch_buf); | 
|  |  | 
|  | if ( b->yy_is_our_buffer ) | 
|  | { | 
|  | int new_size = b->yy_buf_size * 2; | 
|  |  | 
|  | if ( new_size <= 0 ) | 
|  | b->yy_buf_size += b->yy_buf_size / 8; | 
|  | else | 
|  | b->yy_buf_size *= 2; | 
|  |  | 
|  | b->yy_ch_buf = (char *) | 
|  | /* Include room in for 2 EOB chars. */ | 
|  | yyrealloc( (void *) b->yy_ch_buf, | 
|  | (yy_size_t) (b->yy_buf_size + 2)  ); | 
|  | } | 
|  | else | 
|  | /* Can't grow it, we don't own it. */ | 
|  | b->yy_ch_buf = NULL; | 
|  |  | 
|  | if ( ! b->yy_ch_buf ) | 
|  | YY_FATAL_ERROR( | 
|  | "fatal error - scanner input buffer overflow" ); | 
|  |  | 
|  | (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; | 
|  |  | 
|  | num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - | 
|  | number_to_move - 1; | 
|  |  | 
|  | } | 
|  |  | 
|  | if ( num_to_read > YY_READ_BUF_SIZE ) | 
|  | num_to_read = YY_READ_BUF_SIZE; | 
|  |  | 
|  | /* Read in more data. */ | 
|  | YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), | 
|  | (yy_n_chars), num_to_read ); | 
|  |  | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); | 
|  | } | 
|  |  | 
|  | if ( (yy_n_chars) == 0 ) | 
|  | { | 
|  | if ( number_to_move == YY_MORE_ADJ ) | 
|  | { | 
|  | ret_val = EOB_ACT_END_OF_FILE; | 
|  | yyrestart( yyin  ); | 
|  | } | 
|  |  | 
|  | else | 
|  | { | 
|  | ret_val = EOB_ACT_LAST_MATCH; | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = | 
|  | YY_BUFFER_EOF_PENDING; | 
|  | } | 
|  | } | 
|  |  | 
|  | else | 
|  | ret_val = EOB_ACT_CONTINUE_SCAN; | 
|  |  | 
|  | if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { | 
|  | /* Extend the array by 50%, plus the number we really need. */ | 
|  | int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( | 
|  | (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  ); | 
|  | if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) | 
|  | YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); | 
|  | /* "- 2" to take care of EOB's */ | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); | 
|  | } | 
|  |  | 
|  | (yy_n_chars) += number_to_move; | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR; | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR; | 
|  |  | 
|  | (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0]; | 
|  |  | 
|  | return ret_val; | 
|  | } | 
|  |  | 
|  | /* yy_get_previous_state - get the state just before the EOB char was reached */ | 
|  |  | 
|  | static yy_state_type yy_get_previous_state (void) | 
|  | { | 
|  | yy_state_type yy_current_state; | 
|  | char *yy_cp; | 
|  |  | 
|  | yy_current_state = (yy_start); | 
|  | yy_current_state += YY_AT_BOL(); | 
|  |  | 
|  | for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) | 
|  | { | 
|  | YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); | 
|  | if ( yy_accept[yy_current_state] ) | 
|  | { | 
|  | (yy_last_accepting_state) = yy_current_state; | 
|  | (yy_last_accepting_cpos) = yy_cp; | 
|  | } | 
|  | while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | 
|  | { | 
|  | yy_current_state = (int) yy_def[yy_current_state]; | 
|  | if ( yy_current_state >= 1469 ) | 
|  | yy_c = yy_meta[yy_c]; | 
|  | } | 
|  | yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; | 
|  | } | 
|  |  | 
|  | return yy_current_state; | 
|  | } | 
|  |  | 
|  | /* yy_try_NUL_trans - try to make a transition on the NUL character | 
|  | * | 
|  | * synopsis | 
|  | *	next_state = yy_try_NUL_trans( current_state ); | 
|  | */ | 
|  | static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state ) | 
|  | { | 
|  | int yy_is_jam; | 
|  | char *yy_cp = (yy_c_buf_p); | 
|  |  | 
|  | YY_CHAR yy_c = 1; | 
|  | if ( yy_accept[yy_current_state] ) | 
|  | { | 
|  | (yy_last_accepting_state) = yy_current_state; | 
|  | (yy_last_accepting_cpos) = yy_cp; | 
|  | } | 
|  | while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) | 
|  | { | 
|  | yy_current_state = (int) yy_def[yy_current_state]; | 
|  | if ( yy_current_state >= 1469 ) | 
|  | yy_c = yy_meta[yy_c]; | 
|  | } | 
|  | yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; | 
|  | yy_is_jam = (yy_current_state == 1468); | 
|  |  | 
|  | return yy_is_jam ? 0 : yy_current_state; | 
|  | } | 
|  |  | 
|  | #ifndef YY_NO_UNPUT | 
|  |  | 
|  | #endif | 
|  |  | 
|  | #ifndef YY_NO_INPUT | 
|  | #ifdef __cplusplus | 
|  | static int yyinput (void) | 
|  | #else | 
|  | static int input  (void) | 
|  | #endif | 
|  |  | 
|  | { | 
|  | int c; | 
|  |  | 
|  | *(yy_c_buf_p) = (yy_hold_char); | 
|  |  | 
|  | if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR ) | 
|  | { | 
|  | /* yy_c_buf_p now points to the character we want to return. | 
|  | * If this occurs *before* the EOB characters, then it's a | 
|  | * valid NUL; if not, then we've hit the end of the buffer. | 
|  | */ | 
|  | if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] ) | 
|  | /* This was really a NUL. */ | 
|  | *(yy_c_buf_p) = '\0'; | 
|  |  | 
|  | else | 
|  | { /* need more input */ | 
|  | int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); | 
|  | ++(yy_c_buf_p); | 
|  |  | 
|  | switch ( yy_get_next_buffer(  ) ) | 
|  | { | 
|  | case EOB_ACT_LAST_MATCH: | 
|  | /* This happens because yy_g_n_b() | 
|  | * sees that we've accumulated a | 
|  | * token and flags that we need to | 
|  | * try matching the token before | 
|  | * proceeding.  But for input(), | 
|  | * there's no matching to consider. | 
|  | * So convert the EOB_ACT_LAST_MATCH | 
|  | * to EOB_ACT_END_OF_FILE. | 
|  | */ | 
|  |  | 
|  | /* Reset buffer status. */ | 
|  | yyrestart( yyin ); | 
|  |  | 
|  | /*FALLTHROUGH*/ | 
|  |  | 
|  | case EOB_ACT_END_OF_FILE: | 
|  | { | 
|  | if ( yywrap(  ) ) | 
|  | return 0; | 
|  |  | 
|  | if ( ! (yy_did_buffer_switch_on_eof) ) | 
|  | YY_NEW_FILE; | 
|  | #ifdef __cplusplus | 
|  | return yyinput(); | 
|  | #else | 
|  | return input(); | 
|  | #endif | 
|  | } | 
|  |  | 
|  | case EOB_ACT_CONTINUE_SCAN: | 
|  | (yy_c_buf_p) = (yytext_ptr) + offset; | 
|  | break; | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */ | 
|  | *(yy_c_buf_p) = '\0';	/* preserve yytext */ | 
|  | (yy_hold_char) = *++(yy_c_buf_p); | 
|  |  | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); | 
|  |  | 
|  | return c; | 
|  | } | 
|  | #endif	/* ifndef YY_NO_INPUT */ | 
|  |  | 
|  | /** Immediately switch to a different input stream. | 
|  | * @param input_file A readable stream. | 
|  | * | 
|  | * @note This function does not reset the start condition to @c INITIAL . | 
|  | */ | 
|  | void yyrestart  (FILE * input_file ) | 
|  | { | 
|  |  | 
|  | if ( ! YY_CURRENT_BUFFER ){ | 
|  | yyensure_buffer_stack (); | 
|  | YY_CURRENT_BUFFER_LVALUE = | 
|  | yy_create_buffer( yyin, YY_BUF_SIZE ); | 
|  | } | 
|  |  | 
|  | yy_init_buffer( YY_CURRENT_BUFFER, input_file ); | 
|  | yy_load_buffer_state(  ); | 
|  | } | 
|  |  | 
|  | /** Switch to a different input buffer. | 
|  | * @param new_buffer The new input buffer. | 
|  | * | 
|  | */ | 
|  | void yy_switch_to_buffer  (YY_BUFFER_STATE  new_buffer ) | 
|  | { | 
|  |  | 
|  | /* TODO. We should be able to replace this entire function body | 
|  | * with | 
|  | *		yypop_buffer_state(); | 
|  | *		yypush_buffer_state(new_buffer); | 
|  | */ | 
|  | yyensure_buffer_stack (); | 
|  | if ( YY_CURRENT_BUFFER == new_buffer ) | 
|  | return; | 
|  |  | 
|  | if ( YY_CURRENT_BUFFER ) | 
|  | { | 
|  | /* Flush out information for old buffer. */ | 
|  | *(yy_c_buf_p) = (yy_hold_char); | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); | 
|  | } | 
|  |  | 
|  | YY_CURRENT_BUFFER_LVALUE = new_buffer; | 
|  | yy_load_buffer_state(  ); | 
|  |  | 
|  | /* We don't actually know whether we did this switch during | 
|  | * EOF (yywrap()) processing, but the only time this flag | 
|  | * is looked at is after yywrap() is called, so it's safe | 
|  | * to go ahead and always set it. | 
|  | */ | 
|  | (yy_did_buffer_switch_on_eof) = 1; | 
|  | } | 
|  |  | 
|  | static void yy_load_buffer_state  (void) | 
|  | { | 
|  | (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; | 
|  | (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; | 
|  | yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; | 
|  | (yy_hold_char) = *(yy_c_buf_p); | 
|  | } | 
|  |  | 
|  | /** Allocate and initialize an input buffer state. | 
|  | * @param file A readable stream. | 
|  | * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE. | 
|  | * | 
|  | * @return the allocated buffer state. | 
|  | */ | 
|  | YY_BUFFER_STATE yy_create_buffer  (FILE * file, int  size ) | 
|  | { | 
|  | YY_BUFFER_STATE b; | 
|  |  | 
|  | b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  ); | 
|  | if ( ! b ) | 
|  | YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); | 
|  |  | 
|  | b->yy_buf_size = size; | 
|  |  | 
|  | /* yy_ch_buf has to be 2 characters longer than the size given because | 
|  | * we need to put in 2 end-of-buffer characters. | 
|  | */ | 
|  | b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  ); | 
|  | if ( ! b->yy_ch_buf ) | 
|  | YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); | 
|  |  | 
|  | b->yy_is_our_buffer = 1; | 
|  |  | 
|  | yy_init_buffer( b, file ); | 
|  |  | 
|  | return b; | 
|  | } | 
|  |  | 
|  | /** Destroy the buffer. | 
|  | * @param b a buffer created with yy_create_buffer() | 
|  | * | 
|  | */ | 
|  | void yy_delete_buffer (YY_BUFFER_STATE  b ) | 
|  | { | 
|  |  | 
|  | if ( ! b ) | 
|  | return; | 
|  |  | 
|  | if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */ | 
|  | YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; | 
|  |  | 
|  | if ( b->yy_is_our_buffer ) | 
|  | yyfree( (void *) b->yy_ch_buf  ); | 
|  |  | 
|  | yyfree( (void *) b  ); | 
|  | } | 
|  |  | 
|  | /* Initializes or reinitializes a buffer. | 
|  | * This function is sometimes called more than once on the same buffer, | 
|  | * such as during a yyrestart() or at EOF. | 
|  | */ | 
|  | static void yy_init_buffer  (YY_BUFFER_STATE  b, FILE * file ) | 
|  |  | 
|  | { | 
|  | int oerrno = errno; | 
|  |  | 
|  | yy_flush_buffer( b ); | 
|  |  | 
|  | b->yy_input_file = file; | 
|  | b->yy_fill_buffer = 1; | 
|  |  | 
|  | /* If b is the current buffer, then yy_init_buffer was _probably_ | 
|  | * called from yyrestart() or through yy_get_next_buffer. | 
|  | * In that case, we don't want to reset the lineno or column. | 
|  | */ | 
|  | if (b != YY_CURRENT_BUFFER){ | 
|  | b->yy_bs_lineno = 1; | 
|  | b->yy_bs_column = 0; | 
|  | } | 
|  |  | 
|  | b->yy_is_interactive = 0; | 
|  |  | 
|  | errno = oerrno; | 
|  | } | 
|  |  | 
|  | /** Discard all buffered characters. On the next scan, YY_INPUT will be called. | 
|  | * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. | 
|  | * | 
|  | */ | 
|  | void yy_flush_buffer (YY_BUFFER_STATE  b ) | 
|  | { | 
|  | if ( ! b ) | 
|  | return; | 
|  |  | 
|  | b->yy_n_chars = 0; | 
|  |  | 
|  | /* We always need two end-of-buffer characters.  The first causes | 
|  | * a transition to the end-of-buffer state.  The second causes | 
|  | * a jam in that state. | 
|  | */ | 
|  | b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR; | 
|  | b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR; | 
|  |  | 
|  | b->yy_buf_pos = &b->yy_ch_buf[0]; | 
|  |  | 
|  | b->yy_at_bol = 1; | 
|  | b->yy_buffer_status = YY_BUFFER_NEW; | 
|  |  | 
|  | if ( b == YY_CURRENT_BUFFER ) | 
|  | yy_load_buffer_state(  ); | 
|  | } | 
|  |  | 
|  | /** Pushes the new state onto the stack. The new state becomes | 
|  | *  the current state. This function will allocate the stack | 
|  | *  if necessary. | 
|  | *  @param new_buffer The new state. | 
|  | * | 
|  | */ | 
|  | void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) | 
|  | { | 
|  | if (new_buffer == NULL) | 
|  | return; | 
|  |  | 
|  | yyensure_buffer_stack(); | 
|  |  | 
|  | /* This block is copied from yy_switch_to_buffer. */ | 
|  | if ( YY_CURRENT_BUFFER ) | 
|  | { | 
|  | /* Flush out information for old buffer. */ | 
|  | *(yy_c_buf_p) = (yy_hold_char); | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p); | 
|  | YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars); | 
|  | } | 
|  |  | 
|  | /* Only push if top exists. Otherwise, replace top. */ | 
|  | if (YY_CURRENT_BUFFER) | 
|  | (yy_buffer_stack_top)++; | 
|  | YY_CURRENT_BUFFER_LVALUE = new_buffer; | 
|  |  | 
|  | /* copied from yy_switch_to_buffer. */ | 
|  | yy_load_buffer_state(  ); | 
|  | (yy_did_buffer_switch_on_eof) = 1; | 
|  | } | 
|  |  | 
|  | /** Removes and deletes the top of the stack, if present. | 
|  | *  The next element becomes the new top. | 
|  | * | 
|  | */ | 
|  | void yypop_buffer_state (void) | 
|  | { | 
|  | if (!YY_CURRENT_BUFFER) | 
|  | return; | 
|  |  | 
|  | yy_delete_buffer(YY_CURRENT_BUFFER ); | 
|  | YY_CURRENT_BUFFER_LVALUE = NULL; | 
|  | if ((yy_buffer_stack_top) > 0) | 
|  | --(yy_buffer_stack_top); | 
|  |  | 
|  | if (YY_CURRENT_BUFFER) { | 
|  | yy_load_buffer_state(  ); | 
|  | (yy_did_buffer_switch_on_eof) = 1; | 
|  | } | 
|  | } | 
|  |  | 
|  | /* Allocates the stack if it does not exist. | 
|  | *  Guarantees space for at least one push. | 
|  | */ | 
|  | static void yyensure_buffer_stack (void) | 
|  | { | 
|  | yy_size_t num_to_alloc; | 
|  |  | 
|  | if (!(yy_buffer_stack)) { | 
|  |  | 
|  | /* First allocation is just for 2 elements, since we don't know if this | 
|  | * scanner will even need a stack. We use 2 instead of 1 to avoid an | 
|  | * immediate realloc on the next call. | 
|  | */ | 
|  | num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ | 
|  | (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc | 
|  | (num_to_alloc * sizeof(struct yy_buffer_state*) | 
|  | ); | 
|  | if ( ! (yy_buffer_stack) ) | 
|  | YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); | 
|  |  | 
|  | memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); | 
|  |  | 
|  | (yy_buffer_stack_max) = num_to_alloc; | 
|  | (yy_buffer_stack_top) = 0; | 
|  | return; | 
|  | } | 
|  |  | 
|  | if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ | 
|  |  | 
|  | /* Increase the buffer to prepare for a possible push. */ | 
|  | yy_size_t grow_size = 8 /* arbitrary grow size */; | 
|  |  | 
|  | num_to_alloc = (yy_buffer_stack_max) + grow_size; | 
|  | (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc | 
|  | ((yy_buffer_stack), | 
|  | num_to_alloc * sizeof(struct yy_buffer_state*) | 
|  | ); | 
|  | if ( ! (yy_buffer_stack) ) | 
|  | YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); | 
|  |  | 
|  | /* zero only the new slots.*/ | 
|  | memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); | 
|  | (yy_buffer_stack_max) = num_to_alloc; | 
|  | } | 
|  | } | 
|  |  | 
|  | /** Setup the input buffer state to scan directly from a user-specified character buffer. | 
|  | * @param base the character buffer | 
|  | * @param size the size in bytes of the character buffer | 
|  | * | 
|  | * @return the newly allocated buffer state object. | 
|  | */ | 
|  | YY_BUFFER_STATE yy_scan_buffer  (char * base, yy_size_t  size ) | 
|  | { | 
|  | YY_BUFFER_STATE b; | 
|  |  | 
|  | if ( size < 2 || | 
|  | base[size-2] != YY_END_OF_BUFFER_CHAR || | 
|  | base[size-1] != YY_END_OF_BUFFER_CHAR ) | 
|  | /* They forgot to leave room for the EOB's. */ | 
|  | return NULL; | 
|  |  | 
|  | b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  ); | 
|  | if ( ! b ) | 
|  | YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); | 
|  |  | 
|  | b->yy_buf_size = (int) (size - 2);	/* "- 2" to take care of EOB's */ | 
|  | b->yy_buf_pos = b->yy_ch_buf = base; | 
|  | b->yy_is_our_buffer = 0; | 
|  | b->yy_input_file = NULL; | 
|  | b->yy_n_chars = b->yy_buf_size; | 
|  | b->yy_is_interactive = 0; | 
|  | b->yy_at_bol = 1; | 
|  | b->yy_fill_buffer = 0; | 
|  | b->yy_buffer_status = YY_BUFFER_NEW; | 
|  |  | 
|  | yy_switch_to_buffer( b  ); | 
|  |  | 
|  | return b; | 
|  | } | 
|  |  | 
|  | /** Setup the input buffer state to scan a string. The next call to yylex() will | 
|  | * scan from a @e copy of @a str. | 
|  | * @param yystr a NUL-terminated string to scan | 
|  | * | 
|  | * @return the newly allocated buffer state object. | 
|  | * @note If you want to scan bytes that may contain NUL values, then use | 
|  | *       yy_scan_bytes() instead. | 
|  | */ | 
|  | YY_BUFFER_STATE yy_scan_string (const char * yystr ) | 
|  | { | 
|  |  | 
|  | return yy_scan_bytes( yystr, (int) strlen(yystr) ); | 
|  | } | 
|  |  | 
|  | /** Setup the input buffer state to scan the given bytes. The next call to yylex() will | 
|  | * scan from a @e copy of @a bytes. | 
|  | * @param yybytes the byte buffer to scan | 
|  | * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. | 
|  | * | 
|  | * @return the newly allocated buffer state object. | 
|  | */ | 
|  | YY_BUFFER_STATE yy_scan_bytes  (const char * yybytes, int  _yybytes_len ) | 
|  | { | 
|  | YY_BUFFER_STATE b; | 
|  | char *buf; | 
|  | yy_size_t n; | 
|  | int i; | 
|  |  | 
|  | /* Get memory for full buffer, including space for trailing EOB's. */ | 
|  | n = (yy_size_t) (_yybytes_len + 2); | 
|  | buf = (char *) yyalloc( n  ); | 
|  | if ( ! buf ) | 
|  | YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); | 
|  |  | 
|  | for ( i = 0; i < _yybytes_len; ++i ) | 
|  | buf[i] = yybytes[i]; | 
|  |  | 
|  | buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; | 
|  |  | 
|  | b = yy_scan_buffer( buf, n ); | 
|  | if ( ! b ) | 
|  | YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); | 
|  |  | 
|  | /* It's okay to grow etc. this buffer, and we should throw it | 
|  | * away when we're done. | 
|  | */ | 
|  | b->yy_is_our_buffer = 1; | 
|  |  | 
|  | return b; | 
|  | } | 
|  |  | 
|  | static void yy_push_state (int  _new_state ) | 
|  | { | 
|  | if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) | 
|  | { | 
|  | yy_size_t new_size; | 
|  |  | 
|  | (yy_start_stack_depth) += YY_START_STACK_INCR; | 
|  | new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); | 
|  |  | 
|  | if ( ! (yy_start_stack) ) | 
|  | (yy_start_stack) = (int *) yyalloc( new_size  ); | 
|  |  | 
|  | else | 
|  | (yy_start_stack) = (int *) yyrealloc( | 
|  | (void *) (yy_start_stack), new_size  ); | 
|  |  | 
|  | if ( ! (yy_start_stack) ) | 
|  | YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); | 
|  | } | 
|  |  | 
|  | (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; | 
|  |  | 
|  | BEGIN(_new_state); | 
|  | } | 
|  |  | 
|  | static void yy_pop_state  (void) | 
|  | { | 
|  | if ( --(yy_start_stack_ptr) < 0 ) | 
|  | YY_FATAL_ERROR( "start-condition stack underflow" ); | 
|  |  | 
|  | BEGIN((yy_start_stack)[(yy_start_stack_ptr)]); | 
|  | } | 
|  |  | 
|  | #ifndef YY_EXIT_FAILURE | 
|  | #define YY_EXIT_FAILURE 2 | 
|  | #endif | 
|  |  | 
|  | static void yynoreturn yy_fatal_error (const char* msg ) | 
|  | { | 
|  | fprintf( stderr, "%s\n", msg ); | 
|  | exit( YY_EXIT_FAILURE ); | 
|  | } | 
|  |  | 
|  | /* Redefine yyless() so it works in section 3 code. */ | 
|  |  | 
|  | #undef yyless | 
|  | #define yyless(n) \ | 
|  | do \ | 
|  | { \ | 
|  | /* Undo effects of setting up yytext. */ \ | 
|  | int yyless_macro_arg = (n); \ | 
|  | YY_LESS_LINENO(yyless_macro_arg);\ | 
|  | yytext[yyleng] = (yy_hold_char); \ | 
|  | (yy_c_buf_p) = yytext + yyless_macro_arg; \ | 
|  | (yy_hold_char) = *(yy_c_buf_p); \ | 
|  | *(yy_c_buf_p) = '\0'; \ | 
|  | yyleng = yyless_macro_arg; \ | 
|  | } \ | 
|  | while ( 0 ) | 
|  |  | 
|  | /* Accessor  methods (get/set functions) to struct members. */ | 
|  |  | 
|  | /** Get the current line number. | 
|  | * | 
|  | */ | 
|  | int yyget_lineno  (void) | 
|  | { | 
|  |  | 
|  | return yylineno; | 
|  | } | 
|  |  | 
|  | /** Get the input stream. | 
|  | * | 
|  | */ | 
|  | FILE *yyget_in  (void) | 
|  | { | 
|  | return yyin; | 
|  | } | 
|  |  | 
|  | /** Get the output stream. | 
|  | * | 
|  | */ | 
|  | FILE *yyget_out  (void) | 
|  | { | 
|  | return yyout; | 
|  | } | 
|  |  | 
|  | /** Get the length of the current token. | 
|  | * | 
|  | */ | 
|  | int yyget_leng  (void) | 
|  | { | 
|  | return yyleng; | 
|  | } | 
|  |  | 
|  | /** Get the current token. | 
|  | * | 
|  | */ | 
|  |  | 
|  | char *yyget_text  (void) | 
|  | { | 
|  | return yytext; | 
|  | } | 
|  |  | 
|  | /** Set the current line number. | 
|  | * @param _line_number line number | 
|  | * | 
|  | */ | 
|  | void yyset_lineno (int  _line_number ) | 
|  | { | 
|  |  | 
|  | yylineno = _line_number; | 
|  | } | 
|  |  | 
|  | /** Set the input stream. This does not discard the current | 
|  | * input buffer. | 
|  | * @param _in_str A readable stream. | 
|  | * | 
|  | * @see yy_switch_to_buffer | 
|  | */ | 
|  | void yyset_in (FILE *  _in_str ) | 
|  | { | 
|  | yyin = _in_str ; | 
|  | } | 
|  |  | 
|  | void yyset_out (FILE *  _out_str ) | 
|  | { | 
|  | yyout = _out_str ; | 
|  | } | 
|  |  | 
|  | int yyget_debug  (void) | 
|  | { | 
|  | return yy_flex_debug; | 
|  | } | 
|  |  | 
|  | void yyset_debug (int  _bdebug ) | 
|  | { | 
|  | yy_flex_debug = _bdebug ; | 
|  | } | 
|  |  | 
|  | static int yy_init_globals (void) | 
|  | { | 
|  | /* Initialization is the same as for the non-reentrant scanner. | 
|  | * This function is called from yylex_destroy(), so don't allocate here. | 
|  | */ | 
|  |  | 
|  | (yy_buffer_stack) = NULL; | 
|  | (yy_buffer_stack_top) = 0; | 
|  | (yy_buffer_stack_max) = 0; | 
|  | (yy_c_buf_p) = NULL; | 
|  | (yy_init) = 0; | 
|  | (yy_start) = 0; | 
|  |  | 
|  | (yy_start_stack_ptr) = 0; | 
|  | (yy_start_stack_depth) = 0; | 
|  | (yy_start_stack) =  NULL; | 
|  |  | 
|  | /* Defined in main.c */ | 
|  | #ifdef YY_STDINIT | 
|  | yyin = stdin; | 
|  | yyout = stdout; | 
|  | #else | 
|  | yyin = NULL; | 
|  | yyout = NULL; | 
|  | #endif | 
|  |  | 
|  | /* For future reference: Set errno on error, since we are called by | 
|  | * yylex_init() | 
|  | */ | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | /* yylex_destroy is for both reentrant and non-reentrant scanners. */ | 
|  | int yylex_destroy  (void) | 
|  | { | 
|  |  | 
|  | /* Pop the buffer stack, destroying each element. */ | 
|  | while(YY_CURRENT_BUFFER){ | 
|  | yy_delete_buffer( YY_CURRENT_BUFFER  ); | 
|  | YY_CURRENT_BUFFER_LVALUE = NULL; | 
|  | yypop_buffer_state(); | 
|  | } | 
|  |  | 
|  | /* Destroy the stack itself. */ | 
|  | yyfree((yy_buffer_stack) ); | 
|  | (yy_buffer_stack) = NULL; | 
|  |  | 
|  | /* Destroy the start condition stack. */ | 
|  | yyfree( (yy_start_stack)  ); | 
|  | (yy_start_stack) = NULL; | 
|  |  | 
|  | /* Reset the globals. This is important in a non-reentrant scanner so the next time | 
|  | * yylex() is called, initialization will occur. */ | 
|  | yy_init_globals( ); | 
|  |  | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | /* | 
|  | * Internal utility routines. | 
|  | */ | 
|  |  | 
|  | #ifndef yytext_ptr | 
|  | static void yy_flex_strncpy (char* s1, const char * s2, int n ) | 
|  | { | 
|  |  | 
|  | int i; | 
|  | for ( i = 0; i < n; ++i ) | 
|  | s1[i] = s2[i]; | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #ifdef YY_NEED_STRLEN | 
|  | static int yy_flex_strlen (const char * s ) | 
|  | { | 
|  | int n; | 
|  | for ( n = 0; s[n]; ++n ) | 
|  | ; | 
|  |  | 
|  | return n; | 
|  | } | 
|  | #endif | 
|  |  | 
|  | void *yyalloc (yy_size_t  size ) | 
|  | { | 
|  | return malloc(size); | 
|  | } | 
|  |  | 
|  | void *yyrealloc  (void * ptr, yy_size_t  size ) | 
|  | { | 
|  |  | 
|  | /* The cast to (char *) in the following accommodates both | 
|  | * implementations that use char* generic pointers, and those | 
|  | * that use void* generic pointers.  It works with the latter | 
|  | * because both ANSI C and C++ allow castless assignment from | 
|  | * any pointer type to void*, and deal with argument conversions | 
|  | * as though doing an assignment. | 
|  | */ | 
|  | return realloc(ptr, size); | 
|  | } | 
|  |  | 
|  | void yyfree (void * ptr ) | 
|  | { | 
|  | free( (char *) ptr );	/* see yyrealloc() for (char *) cast */ | 
|  | } | 
|  |  | 
|  | #define YYTABLES_NAME "yytables" | 
|  |  | 
|  | #line 469 "tools/widl/parser.l" | 
|  |  | 
|  |  | 
|  | static void print_imports(void) | 
|  | { | 
|  | struct import_state *state, *next; | 
|  |  | 
|  | if (list_empty( &import_stack )) return; | 
|  |  | 
|  | fprintf( stderr, "In file included from " ); | 
|  | LIST_FOR_EACH_ENTRY_SAFE_REV( state, next, &import_stack, struct import_state, entry ) | 
|  | { | 
|  | if (&next->entry == &import_stack) break; | 
|  | fprintf( stderr, "%s:%d,\n", state->input_name, state->where.first_line ); | 
|  | fprintf( stderr, "                 from "); | 
|  | } | 
|  | fprintf( stderr, "%s:%d:\n", state->input_name, state->where.first_line ); | 
|  | } | 
|  |  | 
|  | struct location pop_import(void) | 
|  | { | 
|  | struct list *entry = list_head( &import_stack ); | 
|  | struct import_state *state; | 
|  | struct location where; | 
|  | assert( entry ); | 
|  |  | 
|  | state = LIST_ENTRY( entry, struct import_state, entry ); | 
|  | list_remove( &state->entry ); | 
|  | parse_only = !list_empty( &import_stack ); | 
|  |  | 
|  | if (yyin) fclose( yyin ); | 
|  | yy_delete_buffer( YY_CURRENT_BUFFER ); | 
|  | yy_switch_to_buffer( state->buffer ); | 
|  |  | 
|  | input_name = state->input_name; | 
|  | where = state->where; | 
|  | free( state ); | 
|  | return where; | 
|  | } | 
|  |  | 
|  | void push_import( const char *import_name, struct location *where ) | 
|  | { | 
|  | struct import_state *state; | 
|  | struct import *import; | 
|  | FILE *file; | 
|  |  | 
|  | state = xmalloc( sizeof(struct import_state )); | 
|  | list_add_head( &import_stack, &state->entry ); | 
|  | parse_only = !list_empty( &import_stack ); | 
|  |  | 
|  | state->buffer = YY_CURRENT_BUFFER; | 
|  | state->input_name = input_name; | 
|  | state->where = *where; | 
|  | input_name = NULL; | 
|  |  | 
|  | /* reset buffer for <<EOF>>, in case import fails or already imported */ | 
|  | yy_scan_string( "" ); | 
|  |  | 
|  | LIST_FOR_EACH_ENTRY( import, &imports, struct import, entry ) | 
|  | if (!strcmp( import->name, import_name )) return;  /* already imported */ | 
|  | if (!strcmp( idl_name, import_name )) return;  /* already imported */ | 
|  |  | 
|  | import = xmalloc( sizeof(struct import) ); | 
|  | import->name = xstrdup( import_name ); | 
|  | list_add_tail( &imports, &import->entry ); | 
|  |  | 
|  | input_name = find_input_file( import_name, state->input_name ); | 
|  | file = open_input_file( input_name ); | 
|  | reset_location( where, input_name ); | 
|  |  | 
|  | yy_switch_to_buffer( yy_create_buffer( file, YY_BUF_SIZE ) ); | 
|  | } | 
|  |  | 
|  | static void switch_to_acf(void) | 
|  | { | 
|  | FILE *file; | 
|  |  | 
|  | if (yyin) fclose( yyin ); | 
|  | yy_delete_buffer( YY_CURRENT_BUFFER ); | 
|  |  | 
|  | input_name = xstrdup( acf_name ); | 
|  | file = open_input_file( input_name ); | 
|  | acf_name = NULL; | 
|  |  | 
|  | yy_switch_to_buffer( yy_create_buffer( file, YY_BUF_SIZE ) ); | 
|  | } | 
|  |  | 
|  | void close_all_inputs(void) | 
|  | { | 
|  | while (!list_empty( &import_stack )) pop_import(); | 
|  | if (yyin) fclose( yyin ); | 
|  | } | 
|  |  | 
|  | static void reset_location( struct location *where, const char *input_name ) | 
|  | { | 
|  | where->first_line = 1; | 
|  | where->last_line = 1; | 
|  | where->first_column = 1; | 
|  | where->last_column = 1; | 
|  | where->input_name = xstrdup( input_name ); | 
|  | } | 
|  |  | 
|  | static void update_location( struct location *where, const char *yytext ) | 
|  | { | 
|  | int len = strlen( yytext ); | 
|  | previous_location = *where; | 
|  | where->first_column = where->last_column; | 
|  | where->last_column += len; | 
|  | } | 
|  |  | 
|  | static void end_of_line( struct location *where ) | 
|  | { | 
|  | where->first_line++; | 
|  | where->last_line++; | 
|  | where->first_column = 1; | 
|  | where->last_column = 1; | 
|  | } | 
|  |  | 
|  | void init_location( struct location *where, const struct location *begin, const struct location *end ) | 
|  | { | 
|  | if (!begin) begin = &previous_location; | 
|  | *where = *begin; | 
|  |  | 
|  | if (end) | 
|  | { | 
|  | where->last_line   = end->last_line; | 
|  | where->last_column = end->last_column; | 
|  | } | 
|  | else | 
|  | { | 
|  | where->first_line   = begin->last_line; | 
|  | where->first_column = begin->last_column; | 
|  | } | 
|  | } | 
|  |  | 
|  | static void diagnostic( const struct location *where, const char *type, const char *message ) | 
|  | { | 
|  | char buffer[1024], *line = NULL; | 
|  | FILE *file; | 
|  | int i; | 
|  |  | 
|  | if (!where) where = &previous_location; | 
|  |  | 
|  | print_imports(); | 
|  |  | 
|  | fprintf( stderr, "%s:%d:%d: %s: %s\n", where->input_name, where->first_line, where->first_column, type, message ); | 
|  |  | 
|  | if (!where->input_name || !(file = fopen( where->input_name, "r" ))) return; | 
|  | for (i = 0; i < where->first_line; i++) if (!(line = fgets( buffer, sizeof(buffer), file ))) break; | 
|  | fclose( file ); | 
|  | if (!line) return; | 
|  | fprintf( stderr, "%s", line ); | 
|  |  | 
|  | line = buffer; | 
|  | for (i = 0; i < where->first_column - 1; i++) *line++ = ' '; | 
|  | *line++ = '^'; | 
|  | for (i = where->first_column + 1; i < where->last_column; i++) *line++ = '~'; | 
|  | *line = '\0'; | 
|  | fprintf( stderr, "%s\n", buffer ); | 
|  | } | 
|  |  | 
|  | void parser_error( const struct location *where, const char *message ) | 
|  | { | 
|  | diagnostic( where, "error", message ); | 
|  | } | 
|  |  | 
|  | void parser_warning( const struct location *where, const char *message ) | 
|  | { | 
|  | diagnostic( where, "warning", message ); | 
|  | } | 
|  |  | 
|  | static void warning_disable(int warning) | 
|  | { | 
|  | warning_t *warning_entry; | 
|  | LIST_FOR_EACH_ENTRY(warning_entry, disabled_warnings, warning_t, entry) | 
|  | if(warning_entry->num == warning) | 
|  | return; | 
|  | warning_entry = xmalloc( sizeof(*warning_entry) ); | 
|  | warning_entry->num = warning; | 
|  | list_add_tail(disabled_warnings, &warning_entry->entry); | 
|  | } | 
|  |  | 
|  | static void warning_enable(int warning) | 
|  | { | 
|  | warning_t *warning_entry; | 
|  | LIST_FOR_EACH_ENTRY(warning_entry, disabled_warnings, warning_t, entry) | 
|  | if(warning_entry->num == warning) | 
|  | { | 
|  | list_remove(&warning_entry->entry); | 
|  | free(warning_entry); | 
|  | break; | 
|  | } | 
|  | } | 
|  |  | 
|  | int do_warning(const char *toggle, warning_list_t *wnum) | 
|  | { | 
|  | warning_t *warning, *next; | 
|  | int ret = 1; | 
|  | if(!disabled_warnings) | 
|  | { | 
|  | disabled_warnings = xmalloc( sizeof(*disabled_warnings) ); | 
|  | list_init( disabled_warnings ); | 
|  | } | 
|  |  | 
|  | if(!strcmp(toggle, "disable")) | 
|  | LIST_FOR_EACH_ENTRY(warning, wnum, warning_t, entry) | 
|  | warning_disable(warning->num); | 
|  | else if(!strcmp(toggle, "enable") || !strcmp(toggle, "default")) | 
|  | LIST_FOR_EACH_ENTRY(warning, wnum, warning_t, entry) | 
|  | warning_enable(warning->num); | 
|  | else | 
|  | ret = 0; | 
|  |  | 
|  | LIST_FOR_EACH_ENTRY_SAFE(warning, next, wnum, warning_t, entry) | 
|  | free(warning); | 
|  | return ret; | 
|  | } | 
|  |  | 
|  | int is_warning_enabled(int warning) | 
|  | { | 
|  | warning_t *warning_entry; | 
|  | if(!disabled_warnings) | 
|  | return 1; | 
|  | LIST_FOR_EACH_ENTRY(warning_entry, disabled_warnings, warning_t, entry) | 
|  | if(warning_entry->num == warning) | 
|  | return 0; | 
|  | return 1; | 
|  | } | 
|  |  |