Merge with upstream widl from Wine git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6553 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-tools/widl/src/header.c b/mingw-w64-tools/widl/src/header.c index 97a8ee0..547774c 100644 --- a/mingw-w64-tools/widl/src/header.c +++ b/mingw-w64-tools/widl/src/header.c
@@ -88,20 +88,16 @@ int is_attr(const attr_list_t *list, enum attr_type t) { const attr_t *attr; - if (list) { - LIST_FOR_EACH_ENTRY( attr, list, const attr_t, entry ) + if (list) LIST_FOR_EACH_ENTRY( attr, list, const attr_t, entry ) if (attr->type == t) return 1; - } return 0; } void *get_attrp(const attr_list_t *list, enum attr_type t) { const attr_t *attr; - if (list) { - LIST_FOR_EACH_ENTRY( attr, list, const attr_t, entry ) + if (list) LIST_FOR_EACH_ENTRY( attr, list, const attr_t, entry ) if (attr->type == t) return attr->u.pval; - } return NULL; } @@ -113,16 +109,6 @@ return 0; } -int is_void(const type_t *t) -{ - return type_get_type(t) == TYPE_VOID; -} - -int is_conformant_array(const type_t *t) -{ - return is_array(t) && type_array_has_conformance(t); -} - static void write_guid(FILE *f, const char *guid_prefix, const char *name, const UUID *uuid) { if (!uuid) return; @@ -1535,6 +1521,7 @@ case STMT_TYPEDEF: case STMT_MODULE: case STMT_CPPQUOTE: + case STMT_PRAGMA: case STMT_DECLARATION: /* not processed here */ break; @@ -1569,6 +1556,7 @@ case STMT_TYPEDEF: case STMT_MODULE: case STMT_CPPQUOTE: + case STMT_PRAGMA: case STMT_DECLARATION: /* not processed here */ break; @@ -1639,6 +1627,7 @@ break; case STMT_IMPORTLIB: case STMT_MODULE: + case STMT_PRAGMA: /* not included in header */ break; case STMT_IMPORT:
diff --git a/mingw-w64-tools/widl/src/header.h b/mingw-w64-tools/widl/src/header.h index bb3ed86..380d4a4 100644 --- a/mingw-w64-tools/widl/src/header.h +++ b/mingw-w64-tools/widl/src/header.h
@@ -28,9 +28,6 @@ extern int is_attr(const attr_list_t *list, enum attr_type t); extern void *get_attrp(const attr_list_t *list, enum attr_type t); extern unsigned int get_attrv(const attr_list_t *list, enum attr_type t); -extern int is_void(const type_t *t); -extern int is_conformant_array(const type_t *t); -extern int is_declptr(const type_t *t); extern const char* get_name(const var_t *v); extern void write_type_left(FILE *h, type_t *t, int declonly); extern void write_type_right(FILE *h, type_t *t, int is_field); @@ -63,6 +60,31 @@ extern int has_out_arg_or_return(const var_t *func); extern int is_const_decl(const var_t *var); +static inline int is_ptr(const type_t *t) +{ + return type_get_type(t) == TYPE_POINTER; +} + +static inline int is_array(const type_t *t) +{ + return type_get_type(t) == TYPE_ARRAY; +} + +static inline int is_void(const type_t *t) +{ + return type_get_type(t) == TYPE_VOID; +} + +static inline int is_declptr(const type_t *t) +{ + return is_ptr(t) || (type_get_type(t) == TYPE_ARRAY && type_array_is_decl_as_ptr(t)); +} + +static inline int is_conformant_array(const type_t *t) +{ + return is_array(t) && type_array_has_conformance(t); +} + static inline int last_ptr(const type_t *type) { return is_ptr(type) && !is_declptr(type_pointer_get_ref(type));
diff --git a/mingw-w64-tools/widl/src/parser.l b/mingw-w64-tools/widl/src/parser.l index 2bb9c33..e5e9f76 100644 --- a/mingw-w64-tools/widl/src/parser.l +++ b/mingw-w64-tools/widl/src/parser.l
@@ -37,6 +37,7 @@ %x WSTRQUOTE %x ATTR %x PP_LINE +%x PP_PRAGMA %x SQUOTE %{ @@ -89,6 +90,8 @@ static unsigned int xstrtoul(const char *nptr, char **endptr, int base) { #if defined(__MINGW32__) || defined(_MSC_VER) + /* Long might be not wide enough for LLP64 target, so we want to use + double-precision here instead. */ unsigned long long val; errno = 0; @@ -135,6 +138,7 @@ ************************************************************************** */ %% +<INITIAL>^{ws}*\#{ws}*pragma{ws}+ yy_push_state(PP_PRAGMA); <INITIAL,ATTR>^{ws}*\#{ws}* yy_push_state(PP_LINE); <PP_LINE>[^\n]* { int lineno; @@ -154,6 +158,8 @@ line_number = lineno - 1; /* We didn't read the newline */ input_name = xstrdup(fname); } +<PP_PRAGMA>midl_echo[^\n]* yyless(9); yy_pop_state(); return tCPPQUOTE; +<PP_PRAGMA>[^\n]* parser_lval.str = xstrdup(yytext); yy_pop_state(); return aPRAGMA; <INITIAL,ATTR>\" yy_push_state(QUOTE); cbufidx = 0; <QUOTE>\" { yy_pop_state(); @@ -425,7 +431,7 @@ struct keyword key, *kwp; key.kw = kw; kwp = bsearch(&key, keywords, NKEYWORDS, sizeof(keywords[0]), kw_cmp_func); - if (kwp && (flag_is_rt || kwp->token != tNAMESPACE)) { + if (kwp && (do_rt_extension || kwp->token != tNAMESPACE)) { parser_lval.str = xstrdup(kwp->kw); return kwp->token; }
diff --git a/mingw-w64-tools/widl/src/parser.tab.c b/mingw-w64-tools/widl/src/parser.tab.c index ba7d6f2..2e076d6 100644 --- a/mingw-w64-tools/widl/src/parser.tab.c +++ b/mingw-w64-tools/widl/src/parser.tab.c
@@ -1,9 +1,8 @@ -/* A Bison parser, made by GNU Bison 2.4.3. */ +/* A Bison parser, made by GNU Bison 2.7.12-4996. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -45,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.4.3" +#define YYBISON_VERSION "2.7.12-4996" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -59,8 +58,6 @@ /* Pull parsers. */ #define YYPULL 1 -/* Using locations. */ -#define YYLSP_NEEDED 0 /* Substitute the variable and function names. */ #define yyparse parser_parse @@ -71,10 +68,8 @@ #define yydebug parser_debug #define yynerrs parser_nerrs - /* Copy the first part of user declarations. */ - -/* Line 189 of yacc.c */ +/* Line 371 of yacc.c */ #line 1 "parser.y" /* @@ -116,33 +111,6 @@ #include "expr.h" #include "typetree.h" -#if defined(YYBYACC) - /* Berkeley yacc (byacc) doesn't seem to know about these */ - /* Some *BSD supplied versions do define these though */ -# ifndef YYEMPTY -# define YYEMPTY (-1) /* Empty lookahead value of yychar */ -# endif -# ifndef YYLEX -# define YYLEX yylex() -# endif - -#elif defined(YYBISON) - /* Bison was used for original development */ - /* #define YYEMPTY -2 */ - /* #define YYLEX yylex() */ - -#else - /* No yacc we know yet */ -# if !defined(YYEMPTY) || !defined(YYLEX) -# error Yacc version/type unknown. This version needs to be verified for settings of YYEMPTY and YYLEX. -# elif defined(__GNUC__) /* gcc defines the #warning directive */ -# warning Yacc version/type unknown. It defines YYEMPTY and YYLEX, but is not tested - /* #else we just take a chance that it works... */ -# endif -#endif - -#define YYERROR_VERBOSE - static unsigned char pointer_default = RPC_FC_UP; typedef struct list typelist_t; @@ -219,6 +187,7 @@ static statement_t *make_statement_reference(type_t *type); static statement_t *make_statement_declaration(var_t *var); static statement_t *make_statement_library(typelib_t *typelib); +static statement_t *make_statement_pragma(const char *str); static statement_t *make_statement_cppquote(const char *str); static statement_t *make_statement_importlib(const char *str); static statement_t *make_statement_module(type_t *type); @@ -230,28 +199,36 @@ static attr_list_t *append_attribs(attr_list_t *, attr_list_t *); +/* Line 371 of yacc.c */ +#line 204 "parser.tab.c" -/* Line 189 of yacc.c */ -#line 236 "parser.tab.c" - -/* Enabling traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif +# ifndef YY_NULL +# if defined __cplusplus && 201103L <= __cplusplus +# define YY_NULL nullptr +# else +# define YY_NULL 0 +# endif +# endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else -# define YYERROR_VERBOSE 0 +# define YYERROR_VERBOSE 1 #endif -/* Enabling the token table. */ -#ifndef YYTOKEN_TABLE -# define YYTOKEN_TABLE 0 +/* In a future release of Bison, this section will be replaced + by #include "parser.tab.h". */ +#ifndef YY_PARSER_PARSER_TAB_H_INCLUDED +# define YY_PARSER_PARSER_TAB_H_INCLUDED +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 #endif - +#if YYDEBUG +extern int parser_debug; +#endif /* Tokens. */ #ifndef YYTOKENTYPE @@ -260,198 +237,197 @@ know about them. */ enum yytokentype { aIDENTIFIER = 258, - aKNOWNTYPE = 259, - aNUM = 260, - aHEXNUM = 261, - aDOUBLE = 262, - aSTRING = 263, - aWSTRING = 264, - aSQSTRING = 265, - aUUID = 266, - aEOF = 267, - SHL = 268, - SHR = 269, - MEMBERPTR = 270, - EQUALITY = 271, - INEQUALITY = 272, - GREATEREQUAL = 273, - LESSEQUAL = 274, - LOGICALOR = 275, - LOGICALAND = 276, - ELLIPSIS = 277, - tAGGREGATABLE = 278, - tALLOCATE = 279, - tANNOTATION = 280, - tAPPOBJECT = 281, - tASYNC = 282, - tASYNCUUID = 283, - tAUTOHANDLE = 284, - tBINDABLE = 285, - tBOOLEAN = 286, - tBROADCAST = 287, - tBYTE = 288, - tBYTECOUNT = 289, - tCALLAS = 290, - tCALLBACK = 291, - tCASE = 292, - tCDECL = 293, - tCHAR = 294, - tCOCLASS = 295, - tCODE = 296, - tCOMMSTATUS = 297, - tCONST = 298, - tCONTEXTHANDLE = 299, - tCONTEXTHANDLENOSERIALIZE = 300, - tCONTEXTHANDLESERIALIZE = 301, - tCONTROL = 302, - tCPPQUOTE = 303, - tDECODE = 304, - tDEFAULT = 305, - tDEFAULTBIND = 306, - tDEFAULTCOLLELEM = 307, - tDEFAULTVALUE = 308, - tDEFAULTVTABLE = 309, - tDISABLECONSISTENCYCHECK = 310, - tDISPLAYBIND = 311, - tDISPINTERFACE = 312, - tDLLNAME = 313, - tDOUBLE = 314, - tDUAL = 315, - tENABLEALLOCATE = 316, - tENCODE = 317, - tENDPOINT = 318, - tENTRY = 319, - tENUM = 320, - tERRORSTATUST = 321, - tEXPLICITHANDLE = 322, - tEXTERN = 323, - tFALSE = 324, - tFASTCALL = 325, - tFAULTSTATUS = 326, - tFLOAT = 327, - tFORCEALLOCATE = 328, - tHANDLE = 329, - tHANDLET = 330, - tHELPCONTEXT = 331, - tHELPFILE = 332, - tHELPSTRING = 333, - tHELPSTRINGCONTEXT = 334, - tHELPSTRINGDLL = 335, - tHIDDEN = 336, - tHYPER = 337, - tID = 338, - tIDEMPOTENT = 339, - tIGNORE = 340, - tIIDIS = 341, - tIMMEDIATEBIND = 342, - tIMPLICITHANDLE = 343, - tIMPORT = 344, - tIMPORTLIB = 345, - tIN = 346, - tIN_LINE = 347, - tINLINE = 348, - tINPUTSYNC = 349, - tINT = 350, - tINT3264 = 351, - tINT64 = 352, - tINTERFACE = 353, - tLCID = 354, - tLENGTHIS = 355, - tLIBRARY = 356, - tLICENSED = 357, - tLOCAL = 358, - tLONG = 359, - tMAYBE = 360, - tMESSAGE = 361, - tMETHODS = 362, - tMODULE = 363, - tNAMESPACE = 364, - tNOCODE = 365, - tNONBROWSABLE = 366, - tNONCREATABLE = 367, - tNONEXTENSIBLE = 368, - tNOTIFY = 369, - tNOTIFYFLAG = 370, - tNULL = 371, - tOBJECT = 372, - tODL = 373, - tOLEAUTOMATION = 374, - tOPTIMIZE = 375, - tOPTIONAL = 376, - tOUT = 377, - tPARTIALIGNORE = 378, - tPASCAL = 379, - tPOINTERDEFAULT = 380, - tPROGID = 381, - tPROPERTIES = 382, - tPROPGET = 383, - tPROPPUT = 384, - tPROPPUTREF = 385, - tPROXY = 386, - tPTR = 387, - tPUBLIC = 388, - tRANGE = 389, - tREADONLY = 390, - tREF = 391, - tREGISTER = 392, - tREPRESENTAS = 393, - tREQUESTEDIT = 394, - tRESTRICTED = 395, - tRETVAL = 396, - tSAFEARRAY = 397, - tSHORT = 398, - tSIGNED = 399, - tSIZEIS = 400, - tSIZEOF = 401, - tSMALL = 402, - tSOURCE = 403, - tSTATIC = 404, - tSTDCALL = 405, - tSTRICTCONTEXTHANDLE = 406, - tSTRING = 407, - tSTRUCT = 408, - tSWITCH = 409, - tSWITCHIS = 410, - tSWITCHTYPE = 411, - tTHREADING = 412, - tTRANSMITAS = 413, - tTRUE = 414, - tTYPEDEF = 415, - tUIDEFAULT = 416, - tUNION = 417, - tUNIQUE = 418, - tUNSIGNED = 419, - tUSESGETLASTERROR = 420, - tUSERMARSHAL = 421, - tUUID = 422, - tV1ENUM = 423, - tVARARG = 424, - tVERSION = 425, - tVIPROGID = 426, - tVOID = 427, - tWCHAR = 428, - tWIREMARSHAL = 429, - tAPARTMENT = 430, - tNEUTRAL = 431, - tSINGLE = 432, - tFREE = 433, - tBOTH = 434, - ADDRESSOF = 435, - NEG = 436, - POS = 437, - PPTR = 438, - CAST = 439 + aPRAGMA = 259, + aKNOWNTYPE = 260, + aNUM = 261, + aHEXNUM = 262, + aDOUBLE = 263, + aSTRING = 264, + aWSTRING = 265, + aSQSTRING = 266, + aUUID = 267, + aEOF = 268, + SHL = 269, + SHR = 270, + MEMBERPTR = 271, + EQUALITY = 272, + INEQUALITY = 273, + GREATEREQUAL = 274, + LESSEQUAL = 275, + LOGICALOR = 276, + LOGICALAND = 277, + ELLIPSIS = 278, + tAGGREGATABLE = 279, + tALLOCATE = 280, + tANNOTATION = 281, + tAPPOBJECT = 282, + tASYNC = 283, + tASYNCUUID = 284, + tAUTOHANDLE = 285, + tBINDABLE = 286, + tBOOLEAN = 287, + tBROADCAST = 288, + tBYTE = 289, + tBYTECOUNT = 290, + tCALLAS = 291, + tCALLBACK = 292, + tCASE = 293, + tCDECL = 294, + tCHAR = 295, + tCOCLASS = 296, + tCODE = 297, + tCOMMSTATUS = 298, + tCONST = 299, + tCONTEXTHANDLE = 300, + tCONTEXTHANDLENOSERIALIZE = 301, + tCONTEXTHANDLESERIALIZE = 302, + tCONTROL = 303, + tCPPQUOTE = 304, + tDECODE = 305, + tDEFAULT = 306, + tDEFAULTBIND = 307, + tDEFAULTCOLLELEM = 308, + tDEFAULTVALUE = 309, + tDEFAULTVTABLE = 310, + tDISABLECONSISTENCYCHECK = 311, + tDISPLAYBIND = 312, + tDISPINTERFACE = 313, + tDLLNAME = 314, + tDOUBLE = 315, + tDUAL = 316, + tENABLEALLOCATE = 317, + tENCODE = 318, + tENDPOINT = 319, + tENTRY = 320, + tENUM = 321, + tERRORSTATUST = 322, + tEXPLICITHANDLE = 323, + tEXTERN = 324, + tFALSE = 325, + tFASTCALL = 326, + tFAULTSTATUS = 327, + tFLOAT = 328, + tFORCEALLOCATE = 329, + tHANDLE = 330, + tHANDLET = 331, + tHELPCONTEXT = 332, + tHELPFILE = 333, + tHELPSTRING = 334, + tHELPSTRINGCONTEXT = 335, + tHELPSTRINGDLL = 336, + tHIDDEN = 337, + tHYPER = 338, + tID = 339, + tIDEMPOTENT = 340, + tIGNORE = 341, + tIIDIS = 342, + tIMMEDIATEBIND = 343, + tIMPLICITHANDLE = 344, + tIMPORT = 345, + tIMPORTLIB = 346, + tIN = 347, + tIN_LINE = 348, + tINLINE = 349, + tINPUTSYNC = 350, + tINT = 351, + tINT3264 = 352, + tINT64 = 353, + tINTERFACE = 354, + tLCID = 355, + tLENGTHIS = 356, + tLIBRARY = 357, + tLICENSED = 358, + tLOCAL = 359, + tLONG = 360, + tMAYBE = 361, + tMESSAGE = 362, + tMETHODS = 363, + tMODULE = 364, + tNAMESPACE = 365, + tNOCODE = 366, + tNONBROWSABLE = 367, + tNONCREATABLE = 368, + tNONEXTENSIBLE = 369, + tNOTIFY = 370, + tNOTIFYFLAG = 371, + tNULL = 372, + tOBJECT = 373, + tODL = 374, + tOLEAUTOMATION = 375, + tOPTIMIZE = 376, + tOPTIONAL = 377, + tOUT = 378, + tPARTIALIGNORE = 379, + tPASCAL = 380, + tPOINTERDEFAULT = 381, + tPROGID = 382, + tPROPERTIES = 383, + tPROPGET = 384, + tPROPPUT = 385, + tPROPPUTREF = 386, + tPROXY = 387, + tPTR = 388, + tPUBLIC = 389, + tRANGE = 390, + tREADONLY = 391, + tREF = 392, + tREGISTER = 393, + tREPRESENTAS = 394, + tREQUESTEDIT = 395, + tRESTRICTED = 396, + tRETVAL = 397, + tSAFEARRAY = 398, + tSHORT = 399, + tSIGNED = 400, + tSIZEIS = 401, + tSIZEOF = 402, + tSMALL = 403, + tSOURCE = 404, + tSTATIC = 405, + tSTDCALL = 406, + tSTRICTCONTEXTHANDLE = 407, + tSTRING = 408, + tSTRUCT = 409, + tSWITCH = 410, + tSWITCHIS = 411, + tSWITCHTYPE = 412, + tTHREADING = 413, + tTRANSMITAS = 414, + tTRUE = 415, + tTYPEDEF = 416, + tUIDEFAULT = 417, + tUNION = 418, + tUNIQUE = 419, + tUNSIGNED = 420, + tUSESGETLASTERROR = 421, + tUSERMARSHAL = 422, + tUUID = 423, + tV1ENUM = 424, + tVARARG = 425, + tVERSION = 426, + tVIPROGID = 427, + tVOID = 428, + tWCHAR = 429, + tWIREMARSHAL = 430, + tAPARTMENT = 431, + tNEUTRAL = 432, + tSINGLE = 433, + tFREE = 434, + tBOTH = 435, + ADDRESSOF = 436, + NEG = 437, + POS = 438, + PPTR = 439, + CAST = 440 }; #endif - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { - -/* Line 214 of yacc.c */ -#line 155 "parser.y" +/* Line 387 of yacc.c */ +#line 129 "parser.y" attr_t *attr; attr_list_t *attr_list; @@ -479,21 +455,36 @@ enum storage_class stgclass; - -/* Line 214 of yacc.c */ -#line 485 "parser.tab.c" +/* Line 387 of yacc.c */ +#line 460 "parser.tab.c" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 #endif +extern YYSTYPE parser_lval; + +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int parser_parse (void *YYPARSE_PARAM); +#else +int parser_parse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int parser_parse (void); +#else +int parser_parse (); +#endif +#endif /* ! YYPARSE_PARAM */ + +#endif /* !YY_PARSER_PARSER_TAB_H_INCLUDED */ /* Copy the second part of user declarations. */ - -/* Line 264 of yacc.c */ -#line 497 "parser.tab.c" +/* Line 390 of yacc.c */ +#line 488 "parser.tab.c" #ifdef short # undef short @@ -546,24 +537,33 @@ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include <libintl.h> /* INFRINGES ON USER NAME SPACE */ -# define YY_(msgid) dgettext ("bison-runtime", msgid) +# define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ -# define YY_(msgid) msgid +# define YY_(Msgid) Msgid +# endif +#endif + +#ifndef __attribute__ +/* This feature is available in gcc versions 2.5 and later. */ +# if (! defined __GNUC__ || __GNUC__ < 2 \ + || (__GNUC__ == 2 && __GNUC_MINOR__ < 5)) +# define __attribute__(Spec) /* empty */ # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(e) ((void) (e)) +# define YYUSE(E) ((void) (E)) #else -# define YYUSE(e) /* empty */ +# define YYUSE(E) /* empty */ #endif + /* Identity function, used to suppress warnings about constant conditions. */ #ifndef lint -# define YYID(n) (n) +# define YYID(N) (N) #else #if (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) @@ -596,11 +596,12 @@ # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 + /* Use EXIT_SUCCESS as a witness for stdlib.h. */ +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # endif @@ -623,24 +624,24 @@ # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# if (defined __cplusplus && ! defined _STDLIB_H \ +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif @@ -669,23 +670,7 @@ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (YYID (0)) -# endif -# endif +# define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of @@ -705,23 +690,43 @@ #endif +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from SRC to DST. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(Dst, Src, Count) \ + __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) +# else +# define YYCOPY(Dst, Src, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (Dst)[yyi] = (Src)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3002 +#define YYLAST 3077 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 209 +#define YYNTOKENS 210 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 101 /* YYNRULES -- Number of rules. */ -#define YYNRULES 386 +#define YYNRULES 387 /* YYNRULES -- Number of states. */ -#define YYNSTATES 678 +#define YYNSTATES 679 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 439 +#define YYMAXUTOK 440 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -732,16 +737,16 @@ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 193, 2, 2, 2, 192, 185, 2, - 206, 207, 190, 189, 180, 188, 200, 191, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 182, 205, - 186, 208, 187, 181, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 194, 2, 2, 2, 193, 186, 2, + 207, 208, 191, 190, 181, 189, 201, 192, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 183, 206, + 187, 209, 188, 182, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 201, 2, 202, 184, 2, 2, 2, 2, 2, + 2, 202, 2, 203, 185, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 203, 183, 204, 194, 2, 2, 2, + 2, 2, 2, 204, 184, 205, 195, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -772,7 +777,8 @@ 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 195, 196, 197, 198, 199 + 175, 176, 177, 178, 179, 180, 196, 197, 198, 199, + 200 }; #if YYDEBUG @@ -783,219 +789,219 @@ 0, 0, 3, 5, 6, 12, 15, 18, 22, 25, 28, 31, 34, 35, 38, 44, 47, 51, 54, 57, 60, 63, 66, 67, 70, 71, 73, 75, 78, 81, - 83, 86, 88, 91, 93, 96, 98, 101, 104, 107, - 110, 115, 119, 123, 129, 132, 136, 141, 142, 144, - 146, 150, 152, 156, 160, 163, 167, 171, 174, 175, - 177, 181, 183, 187, 192, 194, 198, 199, 201, 206, - 208, 210, 212, 214, 216, 221, 226, 228, 230, 232, - 234, 236, 238, 240, 242, 244, 246, 251, 253, 255, - 257, 262, 264, 266, 268, 273, 278, 280, 282, 284, - 286, 291, 296, 301, 306, 311, 313, 318, 320, 322, - 327, 329, 334, 336, 338, 343, 348, 350, 352, 354, + 83, 86, 88, 90, 93, 95, 98, 100, 103, 106, + 109, 112, 117, 121, 125, 131, 134, 138, 143, 144, + 146, 148, 152, 154, 158, 162, 165, 169, 173, 176, + 177, 179, 183, 185, 189, 194, 196, 200, 201, 203, + 208, 210, 212, 214, 216, 218, 223, 228, 230, 232, + 234, 236, 238, 240, 242, 244, 246, 248, 253, 255, + 257, 259, 264, 266, 268, 270, 275, 280, 282, 284, + 286, 288, 293, 298, 303, 308, 313, 315, 320, 322, + 324, 329, 331, 336, 338, 340, 345, 350, 352, 354, 356, 358, 360, 362, 364, 366, 368, 370, 372, 374, - 376, 381, 383, 385, 387, 392, 397, 399, 401, 403, - 405, 407, 414, 416, 421, 423, 425, 427, 432, 434, - 436, 438, 443, 448, 453, 458, 460, 462, 467, 472, - 477, 479, 481, 486, 491, 496, 498, 500, 502, 504, - 506, 508, 510, 511, 514, 519, 523, 524, 527, 529, - 531, 535, 539, 541, 547, 549, 553, 554, 556, 558, - 560, 562, 564, 566, 568, 570, 572, 574, 576, 582, - 586, 590, 594, 598, 602, 606, 610, 614, 618, 622, - 626, 630, 634, 638, 642, 646, 650, 654, 657, 660, - 663, 666, 669, 672, 676, 680, 686, 692, 697, 701, - 703, 707, 709, 711, 712, 715, 720, 724, 727, 730, - 731, 734, 737, 739, 743, 746, 748, 752, 755, 756, - 758, 759, 761, 763, 765, 767, 769, 771, 773, 776, - 779, 781, 783, 785, 787, 789, 791, 792, 794, 796, - 799, 801, 804, 807, 809, 811, 813, 816, 819, 822, - 828, 831, 832, 835, 838, 841, 844, 847, 850, 854, - 857, 861, 867, 873, 874, 877, 880, 883, 886, 893, - 902, 905, 908, 911, 914, 917, 920, 926, 928, 930, - 932, 934, 936, 937, 940, 943, 947, 948, 950, 953, - 956, 959, 963, 966, 968, 970, 974, 977, 982, 986, - 989, 991, 995, 998, 999, 1001, 1005, 1008, 1010, 1014, - 1019, 1023, 1026, 1028, 1032, 1035, 1036, 1038, 1040, 1044, - 1047, 1049, 1053, 1058, 1060, 1064, 1065, 1068, 1071, 1073, - 1077, 1079, 1083, 1085, 1087, 1089, 1091, 1093, 1095, 1097, - 1099, 1105, 1107, 1109, 1111, 1113, 1116, 1118, 1121, 1123, - 1126, 1131, 1137, 1143, 1154, 1156, 1160 + 376, 378, 383, 385, 387, 389, 394, 399, 401, 403, + 405, 407, 409, 416, 418, 423, 425, 427, 429, 434, + 436, 438, 440, 445, 450, 455, 460, 462, 464, 469, + 474, 479, 481, 483, 488, 493, 498, 500, 502, 504, + 506, 508, 510, 512, 513, 516, 521, 525, 526, 529, + 531, 533, 537, 541, 543, 549, 551, 555, 556, 558, + 560, 562, 564, 566, 568, 570, 572, 574, 576, 578, + 584, 588, 592, 596, 600, 604, 608, 612, 616, 620, + 624, 628, 632, 636, 640, 644, 648, 652, 656, 659, + 662, 665, 668, 671, 674, 678, 682, 688, 694, 699, + 703, 705, 709, 711, 713, 714, 717, 722, 726, 729, + 732, 733, 736, 739, 741, 745, 748, 750, 754, 757, + 758, 760, 761, 763, 765, 767, 769, 771, 773, 775, + 778, 781, 783, 785, 787, 789, 791, 793, 794, 796, + 798, 801, 803, 806, 809, 811, 813, 815, 818, 821, + 824, 830, 833, 834, 837, 840, 843, 846, 849, 852, + 856, 859, 863, 869, 875, 876, 879, 882, 885, 888, + 895, 904, 907, 910, 913, 916, 919, 922, 928, 930, + 932, 934, 936, 938, 939, 942, 945, 949, 950, 952, + 955, 958, 961, 965, 968, 970, 972, 976, 979, 984, + 988, 991, 993, 997, 1000, 1001, 1003, 1007, 1010, 1012, + 1016, 1021, 1025, 1028, 1030, 1034, 1037, 1038, 1040, 1042, + 1046, 1049, 1051, 1055, 1060, 1062, 1066, 1067, 1070, 1073, + 1075, 1079, 1081, 1085, 1087, 1089, 1091, 1093, 1095, 1097, + 1099, 1101, 1107, 1109, 1111, 1113, 1115, 1118, 1120, 1123, + 1125, 1128, 1133, 1139, 1145, 1156, 1158, 1162 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 210, 0, -1, 211, -1, -1, 211, 265, 203, 211, - 204, -1, 211, 277, -1, 211, 276, -1, 211, 262, - 205, -1, 211, 264, -1, 211, 280, -1, 211, 223, - -1, 211, 215, -1, -1, 212, 277, -1, 212, 265, - 203, 212, 204, -1, 212, 276, -1, 212, 262, 205, - -1, 212, 264, -1, 212, 280, -1, 212, 215, -1, - 212, 220, -1, 212, 223, -1, -1, 213, 215, -1, - -1, 205, -1, 217, -1, 216, 205, -1, 255, 205, - -1, 219, -1, 307, 205, -1, 241, -1, 65, 3, - -1, 305, -1, 153, 3, -1, 308, -1, 162, 3, - -1, 230, 241, -1, 230, 305, -1, 230, 308, -1, - 48, 206, 8, 207, -1, 89, 8, 205, -1, 218, - 212, 12, -1, 90, 206, 8, 207, 214, -1, 101, - 3, -1, 230, 221, 203, -1, 222, 212, 204, 214, - -1, -1, 226, -1, 227, -1, 225, 180, 227, -1, - 225, -1, 225, 180, 22, -1, 230, 285, 296, -1, - 285, 296, -1, 201, 244, 202, -1, 201, 190, 202, - -1, 201, 202, -1, -1, 230, -1, 201, 231, 202, - -1, 233, -1, 231, 180, 233, -1, 231, 202, 201, - 233, -1, 8, -1, 232, 180, 8, -1, -1, 23, - -1, 25, 206, 8, 207, -1, 26, -1, 27, -1, - 29, -1, 30, -1, 32, -1, 35, 206, 258, 207, - -1, 37, 206, 245, 207, -1, 41, -1, 42, -1, - 44, -1, 45, -1, 46, -1, 47, -1, 49, -1, - 50, -1, 51, -1, 52, -1, 53, 206, 247, 207, - -1, 54, -1, 55, -1, 56, -1, 58, 206, 8, - 207, -1, 60, -1, 61, -1, 62, -1, 63, 206, - 232, 207, -1, 64, 206, 247, 207, -1, 67, -1, - 71, -1, 73, -1, 74, -1, 76, 206, 246, 207, - -1, 77, 206, 8, 207, -1, 78, 206, 8, 207, - -1, 79, 206, 246, 207, -1, 80, 206, 8, 207, - -1, 81, -1, 83, 206, 246, 207, -1, 84, -1, - 85, -1, 86, 206, 244, 207, -1, 87, -1, 88, - 206, 227, 207, -1, 91, -1, 94, -1, 100, 206, - 242, 207, -1, 99, 206, 246, 207, -1, 99, -1, - 102, -1, 103, -1, 105, -1, 106, -1, 110, -1, + 211, 0, -1, 212, -1, -1, 212, 266, 204, 212, + 205, -1, 212, 278, -1, 212, 277, -1, 212, 263, + 206, -1, 212, 265, -1, 212, 281, -1, 212, 224, + -1, 212, 216, -1, -1, 213, 278, -1, 213, 266, + 204, 213, 205, -1, 213, 277, -1, 213, 263, 206, + -1, 213, 265, -1, 213, 281, -1, 213, 216, -1, + 213, 221, -1, 213, 224, -1, -1, 214, 216, -1, + -1, 206, -1, 218, -1, 217, 206, -1, 256, 206, + -1, 220, -1, 308, 206, -1, 4, -1, 242, -1, + 66, 3, -1, 306, -1, 154, 3, -1, 309, -1, + 163, 3, -1, 231, 242, -1, 231, 306, -1, 231, + 309, -1, 49, 207, 9, 208, -1, 90, 9, 206, + -1, 219, 213, 13, -1, 91, 207, 9, 208, 215, + -1, 102, 3, -1, 231, 222, 204, -1, 223, 213, + 205, 215, -1, -1, 227, -1, 228, -1, 226, 181, + 228, -1, 226, -1, 226, 181, 23, -1, 231, 286, + 297, -1, 286, 297, -1, 202, 245, 203, -1, 202, + 191, 203, -1, 202, 203, -1, -1, 231, -1, 202, + 232, 203, -1, 234, -1, 232, 181, 234, -1, 232, + 203, 202, 234, -1, 9, -1, 233, 181, 9, -1, + -1, 24, -1, 26, 207, 9, 208, -1, 27, -1, + 28, -1, 30, -1, 31, -1, 33, -1, 36, 207, + 259, 208, -1, 38, 207, 246, 208, -1, 42, -1, + 43, -1, 45, -1, 46, -1, 47, -1, 48, -1, + 50, -1, 51, -1, 52, -1, 53, -1, 54, 207, + 248, 208, -1, 55, -1, 56, -1, 57, -1, 59, + 207, 9, 208, -1, 61, -1, 62, -1, 63, -1, + 64, 207, 233, 208, -1, 65, 207, 248, 208, -1, + 68, -1, 72, -1, 74, -1, 75, -1, 77, 207, + 247, 208, -1, 78, 207, 9, 208, -1, 79, 207, + 9, 208, -1, 80, 207, 247, 208, -1, 81, 207, + 9, 208, -1, 82, -1, 84, 207, 247, 208, -1, + 85, -1, 86, -1, 87, 207, 245, 208, -1, 88, + -1, 89, 207, 228, 208, -1, 92, -1, 95, -1, + 101, 207, 243, 208, -1, 100, 207, 247, 208, -1, + 100, -1, 103, -1, 104, -1, 106, -1, 107, -1, 111, -1, 112, -1, 113, -1, 114, -1, 115, -1, - 117, -1, 118, -1, 119, -1, 120, 206, 8, 207, - -1, 121, -1, 122, -1, 123, -1, 125, 206, 304, - 207, -1, 126, 206, 8, 207, -1, 128, -1, 129, - -1, 130, -1, 131, -1, 133, -1, 134, 206, 246, - 180, 246, 207, -1, 135, -1, 138, 206, 306, 207, - -1, 139, -1, 140, -1, 141, -1, 145, 206, 242, - 207, -1, 148, -1, 151, -1, 152, -1, 155, 206, - 244, 207, -1, 156, 206, 306, 207, -1, 158, 206, - 306, 207, -1, 157, 206, 303, 207, -1, 161, -1, - 165, -1, 166, 206, 306, 207, -1, 167, 206, 234, - 207, -1, 28, 206, 234, 207, -1, 168, -1, 169, - -1, 170, 206, 309, 207, -1, 171, 206, 8, 207, - -1, 174, 206, 306, 207, -1, 304, -1, 11, -1, - 8, -1, 38, -1, 70, -1, 124, -1, 150, -1, - -1, 236, 237, -1, 37, 246, 182, 252, -1, 50, - 182, 252, -1, -1, 239, 180, -1, 239, -1, 240, - -1, 239, 180, 240, -1, 258, 208, 246, -1, 258, - -1, 65, 257, 203, 238, 204, -1, 243, -1, 242, - 180, 243, -1, -1, 244, -1, 5, -1, 6, -1, - 7, -1, 69, -1, 116, -1, 159, -1, 8, -1, - 9, -1, 10, -1, 3, -1, 244, 181, 244, 182, - 244, -1, 244, 20, 244, -1, 244, 21, 244, -1, - 244, 183, 244, -1, 244, 184, 244, -1, 244, 185, - 244, -1, 244, 16, 244, -1, 244, 17, 244, -1, - 244, 187, 244, -1, 244, 186, 244, -1, 244, 18, - 244, -1, 244, 19, 244, -1, 244, 13, 244, -1, - 244, 14, 244, -1, 244, 189, 244, -1, 244, 188, - 244, -1, 244, 192, 244, -1, 244, 190, 244, -1, - 244, 191, 244, -1, 193, 244, -1, 194, 244, -1, - 189, 244, -1, 188, 244, -1, 185, 244, -1, 190, - 244, -1, 244, 15, 3, -1, 244, 200, 3, -1, - 206, 285, 292, 207, 244, -1, 146, 206, 285, 292, - 207, -1, 244, 201, 244, 202, -1, 206, 244, 207, - -1, 246, -1, 245, 180, 246, -1, 244, -1, 244, - -1, -1, 248, 249, -1, 229, 285, 301, 205, -1, - 229, 308, 205, -1, 253, 205, -1, 230, 205, -1, - -1, 251, 250, -1, 253, 205, -1, 205, -1, 229, - 285, 288, -1, 229, 305, -1, 255, -1, 230, 285, - 302, -1, 285, 302, -1, -1, 258, -1, -1, 3, - -1, 4, -1, 3, -1, 4, -1, 33, -1, 173, - -1, 261, -1, 144, 261, -1, 164, 261, -1, 164, - -1, 72, -1, 59, -1, 31, -1, 66, -1, 75, - -1, -1, 95, -1, 95, -1, 143, 260, -1, 147, - -1, 104, 260, -1, 82, 260, -1, 97, -1, 39, - -1, 96, -1, 40, 3, -1, 40, 4, -1, 230, - 262, -1, 263, 203, 266, 204, 214, -1, 109, 3, - -1, -1, 266, 267, -1, 229, 277, -1, 57, 3, - -1, 57, 4, -1, 230, 268, -1, 127, 182, -1, - 270, 253, 205, -1, 107, 182, -1, 271, 254, 205, - -1, 269, 203, 270, 271, 204, -1, 269, 203, 274, - 205, 204, -1, -1, 182, 4, -1, 98, 3, -1, - 98, 4, -1, 230, 274, -1, 275, 273, 203, 213, - 204, 214, -1, 275, 182, 3, 203, 219, 213, 204, - 214, -1, 272, 214, -1, 274, 205, -1, 268, 205, - -1, 108, 3, -1, 108, 4, -1, 230, 278, -1, - 279, 203, 213, 204, 214, -1, 68, -1, 149, -1, - 137, -1, 93, -1, 43, -1, -1, 284, 283, -1, - 306, 286, -1, 287, 306, 286, -1, -1, 287, -1, - 283, 286, -1, 282, 286, -1, 281, 286, -1, 190, - 284, 288, -1, 235, 288, -1, 289, -1, 258, -1, - 206, 288, 207, -1, 289, 228, -1, 289, 206, 224, - 207, -1, 190, 284, 292, -1, 235, 292, -1, 293, - -1, 190, 284, 296, -1, 235, 296, -1, -1, 290, - -1, 206, 291, 207, -1, 293, 228, -1, 228, -1, - 206, 224, 207, -1, 293, 206, 224, 207, -1, 190, - 284, 296, -1, 235, 296, -1, 297, -1, 190, 284, - 296, -1, 235, 296, -1, -1, 294, -1, 258, -1, - 206, 295, 207, -1, 297, 228, -1, 228, -1, 206, - 224, 207, -1, 297, 206, 224, 207, -1, 288, -1, - 298, 180, 288, -1, -1, 182, 247, -1, 294, 299, - -1, 300, -1, 301, 180, 300, -1, 288, -1, 288, - 208, 247, -1, 175, -1, 176, -1, 177, -1, 178, - -1, 179, -1, 136, -1, 163, -1, 132, -1, 153, - 257, 203, 248, 204, -1, 172, -1, 4, -1, 259, - -1, 241, -1, 65, 3, -1, 305, -1, 153, 3, - -1, 308, -1, 162, 3, -1, 142, 206, 306, 207, - -1, 229, 160, 229, 285, 298, -1, 162, 257, 203, - 251, 204, -1, 162, 257, 154, 206, 253, 207, 256, - 203, 236, 204, -1, 5, -1, 5, 200, 5, -1, - 6, -1 + 116, -1, 118, -1, 119, -1, 120, -1, 121, 207, + 9, 208, -1, 122, -1, 123, -1, 124, -1, 126, + 207, 305, 208, -1, 127, 207, 9, 208, -1, 129, + -1, 130, -1, 131, -1, 132, -1, 134, -1, 135, + 207, 247, 181, 247, 208, -1, 136, -1, 139, 207, + 307, 208, -1, 140, -1, 141, -1, 142, -1, 146, + 207, 243, 208, -1, 149, -1, 152, -1, 153, -1, + 156, 207, 245, 208, -1, 157, 207, 307, 208, -1, + 159, 207, 307, 208, -1, 158, 207, 304, 208, -1, + 162, -1, 166, -1, 167, 207, 307, 208, -1, 168, + 207, 235, 208, -1, 29, 207, 235, 208, -1, 169, + -1, 170, -1, 171, 207, 310, 208, -1, 172, 207, + 9, 208, -1, 175, 207, 307, 208, -1, 305, -1, + 12, -1, 9, -1, 39, -1, 71, -1, 125, -1, + 151, -1, -1, 237, 238, -1, 38, 247, 183, 253, + -1, 51, 183, 253, -1, -1, 240, 181, -1, 240, + -1, 241, -1, 240, 181, 241, -1, 259, 209, 247, + -1, 259, -1, 66, 258, 204, 239, 205, -1, 244, + -1, 243, 181, 244, -1, -1, 245, -1, 6, -1, + 7, -1, 8, -1, 70, -1, 117, -1, 160, -1, + 9, -1, 10, -1, 11, -1, 3, -1, 245, 182, + 245, 183, 245, -1, 245, 21, 245, -1, 245, 22, + 245, -1, 245, 184, 245, -1, 245, 185, 245, -1, + 245, 186, 245, -1, 245, 17, 245, -1, 245, 18, + 245, -1, 245, 188, 245, -1, 245, 187, 245, -1, + 245, 19, 245, -1, 245, 20, 245, -1, 245, 14, + 245, -1, 245, 15, 245, -1, 245, 190, 245, -1, + 245, 189, 245, -1, 245, 193, 245, -1, 245, 191, + 245, -1, 245, 192, 245, -1, 194, 245, -1, 195, + 245, -1, 190, 245, -1, 189, 245, -1, 186, 245, + -1, 191, 245, -1, 245, 16, 3, -1, 245, 201, + 3, -1, 207, 286, 293, 208, 245, -1, 147, 207, + 286, 293, 208, -1, 245, 202, 245, 203, -1, 207, + 245, 208, -1, 247, -1, 246, 181, 247, -1, 245, + -1, 245, -1, -1, 249, 250, -1, 230, 286, 302, + 206, -1, 230, 309, 206, -1, 254, 206, -1, 231, + 206, -1, -1, 252, 251, -1, 254, 206, -1, 206, + -1, 230, 286, 289, -1, 230, 306, -1, 256, -1, + 231, 286, 303, -1, 286, 303, -1, -1, 259, -1, + -1, 3, -1, 5, -1, 3, -1, 5, -1, 34, + -1, 174, -1, 262, -1, 145, 262, -1, 165, 262, + -1, 165, -1, 73, -1, 60, -1, 32, -1, 67, + -1, 76, -1, -1, 96, -1, 96, -1, 144, 261, + -1, 148, -1, 105, 261, -1, 83, 261, -1, 98, + -1, 40, -1, 97, -1, 41, 3, -1, 41, 5, + -1, 231, 263, -1, 264, 204, 267, 205, 215, -1, + 110, 3, -1, -1, 267, 268, -1, 230, 278, -1, + 58, 3, -1, 58, 5, -1, 231, 269, -1, 128, + 183, -1, 271, 254, 206, -1, 108, 183, -1, 272, + 255, 206, -1, 270, 204, 271, 272, 205, -1, 270, + 204, 275, 206, 205, -1, -1, 183, 5, -1, 99, + 3, -1, 99, 5, -1, 231, 275, -1, 276, 274, + 204, 214, 205, 215, -1, 276, 183, 3, 204, 220, + 214, 205, 215, -1, 273, 215, -1, 275, 206, -1, + 269, 206, -1, 109, 3, -1, 109, 5, -1, 231, + 279, -1, 280, 204, 214, 205, 215, -1, 69, -1, + 150, -1, 138, -1, 94, -1, 44, -1, -1, 285, + 284, -1, 307, 287, -1, 288, 307, 287, -1, -1, + 288, -1, 284, 287, -1, 283, 287, -1, 282, 287, + -1, 191, 285, 289, -1, 236, 289, -1, 290, -1, + 259, -1, 207, 289, 208, -1, 290, 229, -1, 290, + 207, 225, 208, -1, 191, 285, 293, -1, 236, 293, + -1, 294, -1, 191, 285, 297, -1, 236, 297, -1, + -1, 291, -1, 207, 292, 208, -1, 294, 229, -1, + 229, -1, 207, 225, 208, -1, 294, 207, 225, 208, + -1, 191, 285, 297, -1, 236, 297, -1, 298, -1, + 191, 285, 297, -1, 236, 297, -1, -1, 295, -1, + 259, -1, 207, 296, 208, -1, 298, 229, -1, 229, + -1, 207, 225, 208, -1, 298, 207, 225, 208, -1, + 289, -1, 299, 181, 289, -1, -1, 183, 248, -1, + 295, 300, -1, 301, -1, 302, 181, 301, -1, 289, + -1, 289, 209, 248, -1, 176, -1, 177, -1, 178, + -1, 179, -1, 180, -1, 137, -1, 164, -1, 133, + -1, 154, 258, 204, 249, 205, -1, 173, -1, 5, + -1, 260, -1, 242, -1, 66, 3, -1, 306, -1, + 154, 3, -1, 309, -1, 163, 3, -1, 143, 207, + 307, 208, -1, 230, 161, 230, 286, 299, -1, 163, + 258, 204, 252, 205, -1, 163, 258, 155, 207, 254, + 208, 257, 204, 237, 205, -1, 6, -1, 6, 201, + 6, -1, 7, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 331, 331, 345, 346, 348, 349, 350, 353, 356, - 357, 358, 361, 362, 363, 364, 365, 366, 369, 370, - 371, 372, 375, 376, 379, 380, 384, 385, 386, 387, - 388, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 403, 405, 413, 419, 423, 425, 429, 436, 437, 440, - 441, 444, 445, 449, 454, 461, 465, 466, 469, 470, - 474, 477, 478, 479, 482, 483, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, - 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, - 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 565, 566, 567, 568, 569, 570, 571, 572, - 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, - 583, 584, 585, 586, 587, 588, 592, 593, 598, 599, - 600, 601, 604, 605, 608, 612, 618, 619, 620, 623, - 627, 639, 643, 648, 651, 652, 655, 656, 659, 660, - 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, - 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, - 691, 692, 693, 694, 695, 696, 698, 700, 701, 704, - 705, 708, 714, 720, 721, 724, 729, 736, 737, 740, - 741, 745, 746, 749, 753, 759, 767, 771, 776, 777, - 780, 781, 782, 785, 787, 790, 791, 792, 793, 794, - 795, 796, 797, 798, 799, 800, 803, 804, 807, 808, - 809, 810, 811, 812, 813, 814, 817, 818, 826, 832, - 836, 840, 841, 845, 848, 849, 852, 861, 862, 865, - 866, 869, 875, 881, 882, 885, 886, 889, 899, 908, - 914, 918, 919, 922, 923, 926, 931, 938, 939, 940, - 944, 948, 951, 952, 955, 956, 960, 961, 965, 966, - 967, 971, 973, 975, 979, 980, 981, 982, 990, 992, - 994, 999, 1001, 1006, 1007, 1012, 1013, 1014, 1015, 1020, - 1029, 1031, 1032, 1037, 1039, 1043, 1044, 1051, 1052, 1053, - 1054, 1055, 1060, 1068, 1069, 1072, 1073, 1076, 1083, 1084, - 1089, 1090, 1094, 1095, 1096, 1097, 1098, 1102, 1103, 1104, - 1107, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, - 1119, 1122, 1130, 1132, 1138, 1139, 1140 + 0, 308, 308, 322, 323, 325, 326, 327, 330, 333, + 334, 335, 338, 339, 340, 342, 343, 344, 347, 348, + 349, 350, 353, 354, 357, 358, 362, 363, 364, 365, + 366, 367, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 382, 384, 392, 398, 402, 404, 408, 415, 416, + 419, 420, 423, 424, 428, 433, 440, 444, 445, 448, + 449, 453, 456, 457, 458, 461, 462, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, + 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, + 538, 539, 540, 544, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 571, 572, 577, + 578, 579, 580, 583, 584, 587, 591, 597, 598, 599, + 602, 606, 618, 622, 627, 630, 631, 634, 635, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, + 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 677, 679, 680, + 683, 684, 687, 693, 699, 700, 703, 708, 715, 716, + 719, 720, 724, 725, 728, 732, 738, 746, 750, 755, + 756, 759, 760, 761, 764, 766, 769, 770, 771, 772, + 773, 774, 775, 776, 777, 778, 779, 782, 783, 786, + 787, 788, 789, 790, 791, 792, 793, 796, 797, 805, + 811, 815, 818, 819, 823, 826, 827, 830, 839, 840, + 843, 844, 847, 853, 859, 860, 863, 864, 867, 877, + 886, 892, 896, 897, 900, 901, 904, 909, 916, 917, + 918, 922, 926, 929, 930, 933, 934, 938, 939, 943, + 944, 945, 949, 951, 953, 957, 958, 959, 960, 968, + 970, 972, 977, 979, 984, 985, 990, 991, 992, 993, + 998, 1007, 1009, 1010, 1015, 1017, 1021, 1022, 1029, 1030, + 1031, 1032, 1033, 1038, 1046, 1047, 1050, 1051, 1054, 1061, + 1062, 1067, 1068, 1072, 1073, 1074, 1075, 1076, 1080, 1081, + 1082, 1085, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, + 1096, 1097, 1100, 1107, 1109, 1115, 1116, 1117 }; #endif -#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE +#if YYDEBUG || YYERROR_VERBOSE || 1 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "aIDENTIFIER", "aKNOWNTYPE", "aNUM", - "aHEXNUM", "aDOUBLE", "aSTRING", "aWSTRING", "aSQSTRING", "aUUID", - "aEOF", "SHL", "SHR", "MEMBERPTR", "EQUALITY", "INEQUALITY", + "$end", "error", "$undefined", "aIDENTIFIER", "aPRAGMA", "aKNOWNTYPE", + "aNUM", "aHEXNUM", "aDOUBLE", "aSTRING", "aWSTRING", "aSQSTRING", + "aUUID", "aEOF", "SHL", "SHR", "MEMBERPTR", "EQUALITY", "INEQUALITY", "GREATEREQUAL", "LESSEQUAL", "LOGICALOR", "LOGICALAND", "ELLIPSIS", "tAGGREGATABLE", "tALLOCATE", "tANNOTATION", "tAPPOBJECT", "tASYNC", "tASYNCUUID", "tAUTOHANDLE", "tBINDABLE", "tBOOLEAN", "tBROADCAST", @@ -1052,7 +1058,7 @@ "any_declarator_no_direct", "m_any_declarator", "any_direct_declarator", "declarator_list", "m_bitfield", "struct_declarator", "struct_declarator_list", "init_declarator", "threading_type", - "pointer_type", "structdef", "type", "typedef", "uniondef", "version", 0 + "pointer_type", "structdef", "type", "typedef", "uniondef", "version", YY_NULL }; #endif @@ -1079,54 +1085,54 @@ 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 44, 63, 58, 124, 94, 38, 60, 62, 45, 43, - 42, 47, 37, 33, 126, 435, 436, 437, 438, 439, - 46, 91, 93, 123, 125, 59, 40, 41, 61 + 435, 44, 63, 58, 124, 94, 38, 60, 62, 45, + 43, 42, 47, 37, 33, 126, 436, 437, 438, 439, + 440, 46, 91, 93, 123, 125, 59, 40, 41, 61 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 yyr1[] = { - 0, 209, 210, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 213, 213, 214, 214, 215, 215, 215, 215, - 215, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 217, 218, 219, 220, 221, 222, 223, 224, 224, 225, - 225, 226, 226, 227, 227, 228, 228, 228, 229, 229, - 230, 231, 231, 231, 232, 232, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 234, 234, 235, 235, - 235, 235, 236, 236, 237, 237, 238, 238, 238, 239, - 239, 240, 240, 241, 242, 242, 243, 243, 244, 244, - 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 244, 244, 244, 244, 244, 244, 245, - 245, 246, 247, 248, 248, 249, 249, 250, 250, 251, - 251, 252, 252, 253, 253, 254, 255, 255, 256, 256, - 257, 257, 257, 258, 258, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 259, 260, 260, 261, 261, - 261, 261, 261, 261, 261, 261, 262, 262, 263, 264, - 265, 266, 266, 267, 268, 268, 269, 270, 270, 271, - 271, 272, 272, 273, 273, 274, 274, 275, 276, 276, - 276, 277, 277, 278, 278, 279, 280, 281, 281, 281, - 282, 283, 284, 284, 285, 285, 286, 286, 287, 287, - 287, 288, 288, 288, 289, 289, 289, 289, 290, 290, - 290, 291, 291, 292, 292, 293, 293, 293, 293, 293, - 294, 294, 294, 295, 295, 296, 296, 297, 297, 297, - 297, 297, 297, 298, 298, 299, 299, 300, 301, 301, - 302, 302, 303, 303, 303, 303, 303, 304, 304, 304, - 305, 306, 306, 306, 306, 306, 306, 306, 306, 306, - 306, 307, 308, 308, 309, 309, 309 + 0, 210, 211, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 214, 214, 215, 215, 216, 216, 216, 216, + 216, 216, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 225, + 226, 226, 227, 227, 228, 228, 229, 229, 229, 230, + 230, 231, 232, 232, 232, 233, 233, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 235, 235, 236, + 236, 236, 236, 237, 237, 238, 238, 239, 239, 239, + 240, 240, 241, 241, 242, 243, 243, 244, 244, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 246, 246, 247, 248, 249, 249, 250, 250, 251, 251, + 252, 252, 253, 253, 254, 254, 255, 256, 256, 257, + 257, 258, 258, 258, 259, 259, 260, 260, 260, 260, + 260, 260, 260, 260, 260, 260, 260, 261, 261, 262, + 262, 262, 262, 262, 262, 262, 262, 263, 263, 264, + 265, 266, 267, 267, 268, 269, 269, 270, 271, 271, + 272, 272, 273, 273, 274, 274, 275, 275, 276, 277, + 277, 277, 278, 278, 279, 279, 280, 281, 282, 282, + 282, 283, 284, 285, 285, 286, 286, 287, 287, 288, + 288, 288, 289, 289, 289, 290, 290, 290, 290, 291, + 291, 291, 292, 292, 293, 293, 294, 294, 294, 294, + 294, 295, 295, 295, 296, 296, 297, 297, 298, 298, + 298, 298, 298, 298, 299, 299, 300, 300, 301, 302, + 302, 303, 303, 304, 304, 304, 304, 304, 305, 305, + 305, 306, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 307, 308, 309, 309, 310, 310, 310 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -1135,913 +1141,932 @@ 0, 2, 1, 0, 5, 2, 2, 3, 2, 2, 2, 2, 0, 2, 5, 2, 3, 2, 2, 2, 2, 2, 0, 2, 0, 1, 1, 2, 2, 1, - 2, 1, 2, 1, 2, 1, 2, 2, 2, 2, - 4, 3, 3, 5, 2, 3, 4, 0, 1, 1, - 3, 1, 3, 3, 2, 3, 3, 2, 0, 1, - 3, 1, 3, 4, 1, 3, 0, 1, 4, 1, - 1, 1, 1, 1, 4, 4, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, - 4, 1, 1, 1, 4, 4, 1, 1, 1, 1, - 4, 4, 4, 4, 4, 1, 4, 1, 1, 4, - 1, 4, 1, 1, 4, 4, 1, 1, 1, 1, + 2, 1, 1, 2, 1, 2, 1, 2, 2, 2, + 2, 4, 3, 3, 5, 2, 3, 4, 0, 1, + 1, 3, 1, 3, 3, 2, 3, 3, 2, 0, + 1, 3, 1, 3, 4, 1, 3, 0, 1, 4, + 1, 1, 1, 1, 1, 4, 4, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, + 1, 4, 1, 1, 1, 4, 4, 1, 1, 1, + 1, 4, 4, 4, 4, 4, 1, 4, 1, 1, + 4, 1, 4, 1, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 4, 1, 1, 1, 4, 4, 1, 1, 1, 1, - 1, 6, 1, 4, 1, 1, 1, 4, 1, 1, - 1, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 4, 4, 4, 1, 1, 1, 1, 1, - 1, 1, 0, 2, 4, 3, 0, 2, 1, 1, - 3, 3, 1, 5, 1, 3, 0, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, + 1, 4, 1, 1, 1, 4, 4, 1, 1, 1, + 1, 1, 6, 1, 4, 1, 1, 1, 4, 1, + 1, 1, 4, 4, 4, 4, 1, 1, 4, 4, + 4, 1, 1, 4, 4, 4, 1, 1, 1, 1, + 1, 1, 1, 0, 2, 4, 3, 0, 2, 1, + 1, 3, 3, 1, 5, 1, 3, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, - 2, 2, 2, 3, 3, 5, 5, 4, 3, 1, - 3, 1, 1, 0, 2, 4, 3, 2, 2, 0, - 2, 2, 1, 3, 2, 1, 3, 2, 0, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 2, 2, - 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, - 1, 2, 2, 1, 1, 1, 2, 2, 2, 5, - 2, 0, 2, 2, 2, 2, 2, 2, 3, 2, - 3, 5, 5, 0, 2, 2, 2, 2, 6, 8, - 2, 2, 2, 2, 2, 2, 5, 1, 1, 1, - 1, 1, 0, 2, 2, 3, 0, 1, 2, 2, - 2, 3, 2, 1, 1, 3, 2, 4, 3, 2, - 1, 3, 2, 0, 1, 3, 2, 1, 3, 4, - 3, 2, 1, 3, 2, 0, 1, 1, 3, 2, - 1, 3, 4, 1, 3, 0, 2, 2, 1, 3, - 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 5, 1, 1, 1, 1, 2, 1, 2, 1, 2, - 4, 5, 5, 10, 1, 3, 1 + 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, + 2, 2, 2, 2, 3, 3, 5, 5, 4, 3, + 1, 3, 1, 1, 0, 2, 4, 3, 2, 2, + 0, 2, 2, 1, 3, 2, 1, 3, 2, 0, + 1, 0, 1, 1, 1, 1, 1, 1, 1, 2, + 2, 1, 1, 1, 1, 1, 1, 0, 1, 1, + 2, 1, 2, 2, 1, 1, 1, 2, 2, 2, + 5, 2, 0, 2, 2, 2, 2, 2, 2, 3, + 2, 3, 5, 5, 0, 2, 2, 2, 2, 6, + 8, 2, 2, 2, 2, 2, 2, 5, 1, 1, + 1, 1, 1, 0, 2, 2, 3, 0, 1, 2, + 2, 2, 3, 2, 1, 1, 3, 2, 4, 3, + 2, 1, 3, 2, 0, 1, 3, 2, 1, 3, + 4, 3, 2, 1, 3, 2, 0, 1, 1, 3, + 2, 1, 3, 4, 1, 3, 0, 2, 2, 1, + 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, + 1, 5, 1, 1, 1, 1, 2, 1, 2, 1, + 2, 4, 5, 5, 10, 1, 3, 1 }; -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero +/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint16 yydefact[] = { - 3, 0, 2, 1, 372, 263, 255, 274, 0, 311, - 0, 0, 262, 250, 264, 307, 261, 265, 266, 0, - 310, 268, 275, 273, 0, 266, 0, 309, 0, 266, - 0, 270, 308, 250, 250, 260, 371, 256, 66, 11, - 0, 26, 12, 29, 12, 10, 0, 59, 374, 0, - 373, 257, 0, 0, 8, 0, 0, 0, 24, 0, - 293, 6, 5, 0, 9, 316, 316, 316, 0, 0, - 376, 316, 0, 378, 276, 277, 0, 284, 285, 375, - 252, 0, 267, 272, 0, 295, 296, 271, 280, 0, - 269, 258, 377, 0, 379, 0, 259, 67, 0, 69, - 70, 0, 71, 72, 73, 0, 0, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 0, 87, 88, - 89, 0, 91, 92, 93, 0, 0, 96, 97, 98, - 99, 0, 0, 0, 0, 0, 105, 0, 107, 108, - 0, 110, 0, 112, 113, 116, 0, 117, 118, 119, + 3, 0, 2, 1, 31, 373, 264, 256, 275, 0, + 312, 0, 0, 263, 251, 265, 308, 262, 266, 267, + 0, 311, 269, 276, 274, 0, 267, 0, 310, 0, + 267, 0, 271, 309, 251, 251, 261, 372, 257, 67, + 11, 0, 26, 12, 29, 12, 10, 0, 60, 375, + 0, 374, 258, 0, 0, 8, 0, 0, 0, 24, + 0, 294, 6, 5, 0, 9, 317, 317, 317, 0, + 0, 377, 317, 0, 379, 277, 278, 0, 285, 286, + 376, 253, 0, 268, 273, 0, 296, 297, 272, 281, + 0, 270, 259, 378, 0, 380, 0, 260, 68, 0, + 70, 71, 0, 72, 73, 74, 0, 0, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 0, 88, + 89, 90, 0, 92, 93, 94, 0, 0, 97, 98, + 99, 100, 0, 0, 0, 0, 0, 106, 0, 108, + 109, 0, 111, 0, 113, 114, 117, 0, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, - 0, 131, 132, 133, 0, 0, 136, 137, 138, 139, - 369, 140, 0, 142, 367, 0, 144, 145, 146, 0, - 148, 149, 150, 0, 0, 0, 0, 155, 368, 156, - 0, 0, 160, 161, 0, 0, 0, 0, 61, 165, - 27, 58, 58, 58, 250, 0, 0, 250, 250, 0, - 374, 278, 286, 297, 305, 0, 376, 378, 28, 7, - 281, 3, 302, 0, 25, 300, 301, 0, 0, 22, - 320, 317, 319, 318, 253, 254, 168, 169, 170, 171, - 312, 0, 0, 324, 360, 323, 247, 374, 376, 316, - 378, 314, 30, 0, 176, 41, 0, 233, 0, 239, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 186, 0, 0, - 0, 0, 0, 186, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66, 60, 42, 0, 19, 20, 21, - 0, 17, 0, 15, 13, 18, 24, 0, 59, 375, - 44, 303, 304, 377, 379, 45, 246, 58, 58, 0, - 58, 0, 0, 294, 22, 58, 0, 0, 322, 0, - 0, 47, 326, 315, 40, 0, 178, 179, 182, 380, - 58, 58, 58, 0, 167, 166, 0, 0, 197, 188, - 189, 190, 194, 195, 196, 191, 192, 0, 193, 0, - 0, 0, 0, 0, 0, 0, 231, 0, 229, 232, - 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 345, 0, 0, 184, 187, 0, - 0, 0, 0, 0, 0, 0, 0, 362, 363, 364, - 365, 366, 0, 0, 0, 0, 384, 386, 0, 0, - 0, 62, 66, 0, 16, 12, 46, 0, 24, 0, - 282, 4, 287, 0, 0, 0, 0, 0, 0, 58, - 24, 23, 59, 313, 321, 325, 361, 0, 57, 0, - 0, 51, 48, 49, 183, 177, 0, 370, 0, 234, - 0, 382, 59, 240, 0, 68, 159, 74, 0, 221, - 220, 219, 222, 217, 218, 0, 333, 0, 0, 0, + 130, 0, 132, 133, 134, 0, 0, 137, 138, 139, + 140, 370, 141, 0, 143, 368, 0, 145, 146, 147, + 0, 149, 150, 151, 0, 0, 0, 0, 156, 369, + 157, 0, 0, 161, 162, 0, 0, 0, 0, 62, + 166, 27, 59, 59, 59, 251, 0, 0, 251, 251, + 0, 375, 279, 287, 298, 306, 0, 377, 379, 28, + 7, 282, 3, 303, 0, 25, 301, 302, 0, 0, + 22, 321, 318, 320, 319, 254, 255, 169, 170, 171, + 172, 313, 0, 0, 325, 361, 324, 248, 375, 377, + 317, 379, 315, 30, 0, 177, 42, 0, 234, 0, + 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 187, 0, + 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 67, 61, 43, 0, 19, 20, + 21, 0, 17, 0, 15, 13, 18, 24, 0, 60, + 376, 45, 304, 305, 378, 380, 46, 247, 59, 59, + 0, 59, 0, 0, 295, 22, 59, 0, 0, 323, + 0, 0, 48, 327, 316, 41, 0, 179, 180, 183, + 381, 59, 59, 59, 0, 168, 167, 0, 0, 198, + 189, 190, 191, 195, 196, 197, 192, 193, 0, 194, + 0, 0, 0, 0, 0, 0, 0, 232, 0, 230, + 233, 0, 0, 65, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 346, 0, 0, 185, 188, + 0, 0, 0, 0, 0, 0, 0, 0, 363, 364, + 365, 366, 367, 0, 0, 0, 0, 385, 387, 0, + 0, 0, 63, 67, 0, 16, 12, 47, 0, 24, + 0, 283, 4, 288, 0, 0, 0, 0, 0, 0, + 59, 24, 23, 60, 314, 322, 326, 362, 0, 58, + 0, 0, 52, 49, 50, 184, 178, 0, 371, 0, + 235, 0, 383, 60, 241, 0, 69, 160, 75, 0, + 222, 221, 220, 223, 218, 219, 0, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 75, 86, 90, 0, 94, 95, 100, 101, 102, 103, - 104, 106, 109, 111, 345, 312, 47, 350, 345, 347, - 346, 54, 342, 115, 186, 114, 130, 134, 135, 0, - 143, 147, 151, 152, 154, 153, 157, 158, 0, 162, - 163, 164, 63, 0, 58, 353, 381, 279, 283, 289, - 0, 376, 288, 291, 0, 0, 245, 292, 22, 24, - 306, 56, 55, 327, 0, 180, 181, 0, 378, 248, - 238, 237, 333, 228, 312, 47, 337, 333, 334, 0, - 330, 210, 211, 223, 204, 205, 208, 209, 199, 200, - 0, 201, 202, 203, 207, 206, 213, 212, 215, 216, - 214, 224, 0, 230, 65, 53, 345, 312, 0, 345, - 0, 341, 47, 349, 185, 0, 385, 24, 14, 0, - 243, 290, 58, 298, 52, 50, 355, 358, 0, 236, - 0, 249, 0, 333, 312, 0, 345, 0, 329, 0, - 47, 336, 0, 227, 340, 345, 351, 344, 348, 0, - 141, 43, 354, 24, 0, 357, 0, 235, 172, 226, - 328, 345, 338, 332, 335, 225, 0, 198, 343, 352, - 299, 356, 359, 0, 331, 339, 0, 0, 383, 173, - 0, 58, 58, 242, 175, 0, 174, 241 + 0, 76, 87, 91, 0, 95, 96, 101, 102, 103, + 104, 105, 107, 110, 112, 346, 313, 48, 351, 346, + 348, 347, 55, 343, 116, 187, 115, 131, 135, 136, + 0, 144, 148, 152, 153, 155, 154, 158, 159, 0, + 163, 164, 165, 64, 0, 59, 354, 382, 280, 284, + 290, 0, 377, 289, 292, 0, 0, 246, 293, 22, + 24, 307, 57, 56, 328, 0, 181, 182, 0, 379, + 249, 239, 238, 334, 229, 313, 48, 338, 334, 335, + 0, 331, 211, 212, 224, 205, 206, 209, 210, 200, + 201, 0, 202, 203, 204, 208, 207, 214, 213, 216, + 217, 215, 225, 0, 231, 66, 54, 346, 313, 0, + 346, 0, 342, 48, 350, 186, 0, 386, 24, 14, + 0, 244, 291, 59, 299, 53, 51, 356, 359, 0, + 237, 0, 250, 0, 334, 313, 0, 346, 0, 330, + 0, 48, 337, 0, 228, 341, 346, 352, 345, 349, + 0, 142, 44, 355, 24, 0, 358, 0, 236, 173, + 227, 329, 346, 339, 333, 336, 226, 0, 199, 344, + 353, 300, 357, 360, 0, 332, 340, 0, 0, 384, + 174, 0, 59, 59, 243, 176, 0, 175, 242 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 2, 201, 325, 225, 297, 40, 41, 42, - 43, 298, 209, 44, 299, 440, 441, 442, 443, 507, - 46, 308, 197, 373, 198, 346, 508, 663, 669, 335, - 336, 337, 247, 386, 387, 366, 367, 368, 370, 340, - 449, 453, 342, 674, 675, 545, 49, 620, 81, 509, - 50, 83, 51, 300, 53, 301, 302, 317, 420, 56, - 57, 320, 426, 58, 228, 59, 60, 303, 304, 214, - 63, 305, 65, 66, 67, 326, 68, 230, 69, 244, - 245, 568, 627, 569, 570, 510, 600, 511, 512, 536, - 645, 617, 618, 246, 402, 199, 248, 71, 72, 250, - 408 + -1, 1, 2, 202, 326, 226, 298, 41, 42, 43, + 44, 299, 210, 45, 300, 441, 442, 443, 444, 508, + 47, 309, 198, 374, 199, 347, 509, 664, 670, 336, + 337, 338, 248, 387, 388, 367, 368, 369, 371, 341, + 450, 454, 343, 675, 676, 546, 50, 621, 82, 510, + 51, 84, 52, 301, 54, 302, 303, 318, 421, 57, + 58, 321, 427, 59, 229, 60, 61, 304, 305, 215, + 64, 306, 66, 67, 68, 327, 69, 231, 70, 245, + 246, 569, 628, 570, 571, 511, 601, 512, 513, 537, + 646, 618, 619, 247, 403, 200, 249, 72, 73, 251, + 409 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -531 +#define YYPACT_NINF -526 static const yytype_int16 yypact[] = { - -531, 75, 1662, -531, -531, -531, -531, -531, 95, -531, - -91, 151, -531, 240, -531, -531, -531, -531, 37, 116, - -531, -531, -531, -531, 245, 37, 156, -531, -30, 37, - 525, -531, -531, 249, 251, 525, -531, -531, 2828, -531, - -23, -531, -531, -531, -531, -531, 24, 2505, -9, -7, - -531, -531, -4, 54, -531, 58, 6, 62, 16, 67, - 96, -531, -531, 79, -531, 9, 9, 9, 446, 2677, - 80, 9, 85, 97, -531, -531, 170, -531, -531, -138, - -531, 100, -531, -531, 99, -531, -531, -531, -531, 2677, - -531, -531, -56, 102, -111, -110, -531, -531, 0, -531, - -531, 103, -531, -531, -531, 106, 107, -531, -531, -531, - -531, -531, -531, -531, -531, -531, -531, 112, -531, -531, - -531, 125, -531, -531, -531, 130, 131, -531, -531, -531, - -531, 142, 143, 150, 161, 162, -531, 163, -531, -531, - 165, -531, 166, -531, -531, 167, 171, -531, -531, -531, - -531, -531, -531, -531, -531, -531, -531, -531, -531, -531, - 172, -531, -531, -531, 175, 177, -531, -531, -531, -531, - -531, -531, 178, -531, -531, 182, -531, -531, -531, 183, - -531, -531, -531, 184, 185, 186, 187, -531, -531, -531, - 188, 190, -531, -531, 191, 193, 194, -51, -531, -531, - -531, 1545, 850, 110, 256, 305, 264, 273, 277, 119, - 196, -531, -531, -531, -531, 446, 206, 207, -531, -531, - -531, -531, -531, -32, -531, -531, -531, 292, 212, -531, - -531, -531, -531, -531, -531, -531, -531, -531, -531, -531, - -531, 446, 446, -531, 208, -133, -531, -531, -531, 9, - -531, -531, -531, 210, 296, -531, 214, -531, 216, -531, - 406, 158, 296, 449, 449, 412, 415, 449, 449, 418, - 421, 449, 426, 449, 449, 2093, 449, 449, 429, -87, - 430, 449, 2677, 449, 449, 2677, -14, 2677, 2677, 158, - 211, 433, 2677, 2828, 241, -531, 237, -531, -531, -531, - 243, -531, 242, -531, -531, -531, 16, 2591, -531, 250, - -531, -531, -531, 250, -107, -531, -531, -34, 1084, 278, - -75, 257, 260, -531, -531, 1170, 101, 258, -531, 449, - 81, 2093, -531, -531, -531, 263, 284, -531, 261, -531, - -29, 110, -27, 267, -531, -531, 268, 269, -531, -531, - -531, -531, -531, -531, -531, -531, -531, 276, -531, 449, - 449, 449, 449, 449, 449, 706, 2316, -129, -531, 2316, - 272, 279, -531, -127, 281, 282, 285, 287, 288, 294, - 295, 777, 301, 2591, 443, 303, -99, -531, 2316, 304, - 307, 308, 290, 312, -80, 2099, 314, -531, -531, -531, - -531, -531, 317, 318, 324, 326, 283, -531, 327, 329, - 333, -531, 2828, 477, -531, -531, -531, 446, 16, 5, - -531, -531, -531, 309, 2591, 343, 1428, 347, 464, 1256, - 16, -531, 2591, -531, -531, -531, -531, 104, -531, 2254, - 348, 374, -531, -531, -531, 296, 449, -531, 2591, -531, - 349, -531, 353, -531, 354, -531, -531, -531, 2591, 18, - 18, 18, 18, 18, 18, 2185, 316, 449, 449, 557, - 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, - 449, 449, 449, 449, 449, 449, 449, 563, 449, 449, - -531, -531, -531, 560, -531, -531, -531, -531, -531, -531, - -531, -531, -531, -531, 443, -531, 1748, -531, 443, -531, - -531, -531, -73, -531, 449, -531, -531, -531, -531, 449, - -531, -531, -531, -531, -531, -531, -531, -531, 564, -531, - -531, -531, -531, 364, 967, -531, 399, -531, -531, -531, - 446, -24, -531, -531, 2591, 375, -531, -531, -531, 16, - -531, -531, -531, -531, 2007, -531, -531, 443, 376, 296, - -531, -531, 316, -531, -531, 1875, -531, 316, -531, 377, - -70, 218, 218, -531, 531, 531, 338, 338, 2210, 174, - 646, 1263, 1350, 2332, 338, 338, 22, 22, 18, 18, - 18, -531, 2294, -531, -531, -531, 36, -531, 379, 443, - 380, -531, 2093, -531, -531, 381, -531, 16, -531, 446, - -531, -531, 1342, -531, -531, -531, 400, -531, -120, -531, - 386, -531, 383, 554, -531, 384, 443, 387, -531, 449, - 2093, -531, 449, -531, -531, 36, -531, -531, -531, 391, - -531, -531, -531, 16, 449, -531, 443, -531, -531, -531, - -531, 36, -531, -531, -531, 18, 392, 2316, -531, -531, - -531, -531, -531, 32, -531, -531, 449, 401, -531, -531, - 419, -67, -67, -531, -531, 397, -531, -531 + -526, 59, 1737, -526, -526, -526, -526, -526, -526, 163, + -526, -138, 169, -526, 194, -526, -526, -526, -526, 12, + 73, -526, -526, -526, -526, 219, 12, 120, -526, -64, + 12, 300, -526, -526, 266, 270, 300, -526, -526, 2902, + -526, -48, -526, -526, -526, -526, -526, 46, 2579, -44, + -23, -526, -526, 39, 19, -526, 48, 47, 54, 62, + 76, -33, -526, -526, 82, -526, 96, 96, 96, 57, + 2751, 86, 96, 87, 90, -526, -526, 223, -526, -526, + 72, -526, 95, -526, -526, 103, -526, -526, -526, -526, + 2751, -526, -526, 99, 112, -112, -109, -526, -526, 21, + -526, -526, 56, -526, -526, -526, 93, 156, -526, -526, + -526, -526, -526, -526, -526, -526, -526, -526, 157, -526, + -526, -526, 162, -526, -526, -526, 164, 168, -526, -526, + -526, -526, 170, 171, 173, 174, 175, -526, 177, -526, + -526, 178, -526, 179, -526, -526, 184, 186, -526, -526, + -526, -526, -526, -526, -526, -526, -526, -526, -526, -526, + -526, 187, -526, -526, -526, 193, 196, -526, -526, -526, + -526, -526, -526, 197, -526, -526, 200, -526, -526, -526, + 201, -526, -526, -526, 202, 203, 215, 216, -526, -526, + -526, 220, 225, -526, -526, 228, 231, 234, -56, -526, + -526, -526, 1620, 877, 136, 301, 373, 329, 347, 356, + 226, 195, -526, -526, -526, -526, 57, 237, 239, -526, + -526, -526, -526, -526, -22, -526, -526, -526, 357, 242, + -526, -526, -526, -526, -526, -526, -526, -526, -526, -526, + -526, -526, 57, 57, -526, 238, -141, -526, -526, -526, + 96, -526, -526, -526, 241, 365, -526, 243, -526, 247, + -526, 453, 161, 365, 713, 713, 454, 455, 713, 713, + 456, 457, 713, 458, 713, 713, 2168, 713, 713, 459, + -54, 461, 713, 2751, 713, 713, 2751, 135, 2751, 2751, + 161, 130, 462, 2751, 2902, 271, -526, 265, -526, -526, + -526, 273, -526, 276, -526, -526, -526, 62, 2665, -526, + 277, -526, -526, -526, 277, -105, -526, -526, -18, 1111, + 294, -76, 280, 278, -526, -526, 1213, 42, 279, -526, + 713, 94, 2168, -526, -526, -526, 284, 309, -526, 282, + -526, -13, 136, -11, 288, -526, -526, 289, 291, -526, + -526, -526, -526, -526, -526, -526, -526, -526, 285, -526, + 713, 713, 713, 713, 713, 713, 703, 2390, -91, -526, + 2390, 292, 296, -526, -70, 298, 302, 303, 304, 305, + 306, 307, 398, 308, 2665, 88, 310, -66, -526, 2390, + 311, 313, 314, 321, 315, -63, 2174, 316, -526, -526, + -526, -526, -526, 317, 318, 319, 322, 328, -526, 323, + 324, 326, -526, 2902, 499, -526, -526, -526, 57, 62, + -21, -526, -526, -526, 352, 2665, 331, 1503, 334, 419, + 1315, 62, -526, 2665, -526, -526, -526, -526, 450, -526, + 1425, 336, 366, -526, -526, -526, 365, 713, -526, 2665, + -526, 338, -526, 342, -526, 343, -526, -526, -526, 2665, + 18, 18, 18, 18, 18, 18, 2260, 248, 713, 713, + 547, 713, 713, 713, 713, 713, 713, 713, 713, 713, + 713, 713, 713, 713, 713, 713, 713, 713, 548, 713, + 713, -526, -526, -526, 543, -526, -526, -526, -526, -526, + -526, -526, -526, -526, -526, 88, -526, 1823, -526, 88, + -526, -526, -526, -137, -526, 713, -526, -526, -526, -526, + 713, -526, -526, -526, -526, -526, -526, -526, -526, 549, + -526, -526, -526, -526, 346, 994, -526, 375, -526, -526, + -526, 57, 166, -526, -526, 2665, 351, -526, -526, -526, + 62, -526, -526, -526, -526, 2082, -526, -526, 88, 354, + 365, -526, -526, 248, -526, -526, 1950, -526, 248, -526, + 350, -135, 25, 25, -526, 603, 603, 165, 165, 817, + 2285, 2369, 2408, 2440, 740, 165, 165, 64, 64, 18, + 18, 18, -526, 2329, -526, -526, -526, 70, -526, 353, + 88, 355, -526, 2168, -526, -526, 358, -526, 62, -526, + 57, -526, -526, 1417, -526, -526, -526, 379, -526, -94, + -526, 364, -526, 361, 100, -526, 369, 88, 370, -526, + 713, 2168, -526, 713, -526, -526, 70, -526, -526, -526, + 371, -526, -526, -526, 62, 713, -526, 88, -526, -526, + -526, -526, 70, -526, -526, -526, 18, 384, 2390, -526, + -526, -526, -526, -526, -3, -526, -526, 713, 411, -526, + -526, 412, -86, -86, -526, -526, 390, -526, -526 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -531, -531, 382, -33, -301, -293, -1, -531, -531, -531, - 176, -531, -531, -531, 23, -482, -531, -531, -253, -228, - -199, -2, -531, -531, -267, 320, -62, -531, -531, -531, - -531, 160, 7, 323, 98, 213, -531, -261, -259, -531, - -531, -531, -531, -58, -219, -531, 192, -531, 38, -47, - -531, 127, 105, 17, -531, 26, 27, -531, -531, 569, - -531, -531, -531, -531, -531, 8, -531, 28, 12, -531, - -531, 29, -531, -531, -308, -467, -45, -25, -8, -207, - -531, -531, -531, -506, -531, -530, -531, -128, -531, -531, - -531, -21, -531, 402, -531, 344, 1, -53, -531, 3, - -531 + -526, -526, 359, -28, -305, -300, -1, -526, -526, -526, + 176, -526, -526, -526, 23, -468, -526, -526, -257, -232, + -189, -2, -526, -526, -267, 312, -65, -526, -526, -526, + -526, 152, 7, 320, 92, 210, -526, -261, -256, -526, + -526, -526, -526, -60, -187, -526, 181, -526, 22, -67, + -526, 131, 40, 16, -526, 24, 26, -526, -526, 555, + -526, -526, -526, -526, -526, -12, -526, 28, 4, -526, + -526, 29, -526, -526, -287, -477, -38, 17, -14, -220, + -526, -526, -526, -500, -526, -525, -526, -467, -526, -526, + -526, -32, -526, 393, -526, 341, 1, -46, -526, 3, + -526 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -252 + number is the opposite. If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -253 static const yytype_int16 yytable[] = { - 47, 39, 215, 70, 307, 73, 242, 375, 374, 48, - 378, 202, 380, 416, 62, 385, 249, 332, 433, 52, - 392, 243, 382, 429, 598, 45, 411, 616, 54, 55, - 61, 64, 423, 469, 327, 328, 256, 469, 596, 234, - 235, 232, 233, -251, 258, 170, 251, -251, 216, 174, - 217, 489, 9, 493, 210, 213, 622, 231, 231, 231, - 646, 628, 11, 231, 211, -251, 24, -32, 330, 666, - 436, 93, 95, 331, 236, 3, 188, 15, 490, 9, - 494, 514, 667, 625, 348, 647, 349, 350, 351, 352, - 353, 354, -251, 259, -36, 319, -251, 623, 74, 75, - 514, 425, 20, 24, 234, 235, 237, 348, 515, 349, - 350, 351, 352, 353, 354, 76, 616, 650, 419, 434, - 639, 424, 450, 454, 84, 537, 38, 521, 330, 293, - 635, 330, 82, 602, 38, 91, 630, 550, 673, 236, - 96, 448, 424, 424, 9, 532, 27, -251, 656, -34, - 355, 294, 87, 242, 77, 78, 90, 651, 32, 88, - 238, 397, 398, 399, 400, 401, 344, 38, 243, 345, - 418, 237, 38, 355, 38, 447, 89, 451, 253, 242, - 242, -244, 200, -244, 203, 556, 239, 467, 468, 469, - 470, 471, 472, 473, 243, 243, -31, 356, 218, 47, - 47, 219, 70, 70, 73, 73, 260, 338, 48, 48, - 535, 222, 484, 485, 486, 347, 406, 407, 487, 488, - 356, 224, 487, 488, 333, 238, 505, 357, 593, 393, - 384, 321, 396, 469, 403, 404, 668, 330, 566, 410, - 358, 231, 506, 79, 80, 93, 95, 612, 85, 86, - 357, 239, 92, 80, 94, 80, 613, 220, 605, 309, - 80, 221, 417, 358, 242, 223, 359, 311, 312, 360, - 361, 437, 226, 383, 363, 364, 313, 80, 227, 243, - 314, 80, 229, 438, 603, -33, 384, 365, 433, 359, - 252, 240, 360, 361, 362, 322, 323, 363, 364, 234, - 235, 615, -35, 254, 255, 257, 551, 241, 310, 261, - 365, 38, 262, 263, 641, 433, 47, 39, 264, 70, - 466, 73, 315, 432, 431, 48, 70, 433, 73, 383, - 62, 265, 48, 610, 566, 52, 266, 267, 504, 566, - 452, 45, 631, 433, 54, 55, 61, 64, 268, 269, - 660, 467, 468, 469, 236, 242, 270, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 271, 272, 273, - 243, 274, 275, 276, 487, 488, 595, 277, 278, 540, - 601, 279, 534, 280, 281, 661, 237, 215, 282, 283, - 284, 285, 286, 287, 288, 566, 289, 290, 338, 291, - 292, -37, 642, 557, 567, 670, 482, 483, 484, 485, - 486, -38, -39, 562, 343, 324, 329, 334, 487, 488, - 371, 339, 341, 372, 544, 541, 376, 432, 431, 377, - 70, 538, 73, 216, 379, 217, 48, 389, 391, 210, - 238, 409, 412, 413, 599, 415, 234, 235, 414, 234, - 235, 558, 348, -251, 349, 350, 351, 352, 353, 354, - 422, 384, 427, 428, 445, 435, 239, 444, 634, 446, - 519, 637, 424, 424, 455, 456, 457, 369, 242, 491, - 369, 236, 458, 528, 236, 533, 492, 381, 495, 496, - 388, 539, 497, 243, 498, 499, 388, 395, 653, 215, - 567, 500, 501, 626, 383, 567, 564, 658, 503, 384, - 513, 516, 621, 237, 517, 518, 237, 330, 355, 520, - 384, 523, 565, 664, 524, 525, 482, 483, 484, 485, - 486, 526, 47, 527, 529, 70, 530, 73, 487, 488, - 531, 48, 369, 439, 467, 468, 469, 242, 542, 472, - 473, 547, 383, 19, 554, 553, 559, 384, 560, 561, - 573, 567, 243, 383, 7, 356, 591, 238, 594, 606, - 238, 607, 459, 460, 461, 462, 463, 464, 465, 609, - 611, 619, 644, 671, 629, 384, 636, 638, 640, 648, - 649, 652, 236, 239, 654, 357, 239, 9, 659, 665, - 383, 672, 677, 318, 548, 555, 394, 18, 358, 405, - 432, 431, 604, 70, 676, 73, 212, 316, 546, 48, - 21, 22, 23, 390, 237, 662, 0, 0, 383, 25, - 0, 0, 0, 505, 359, 0, 240, 360, 361, 362, - 0, 0, 363, 364, 330, 0, 0, 0, 0, 506, - 462, 0, 241, 0, 0, 365, 0, 0, 0, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 29, 0, - 0, 0, 31, 0, 0, 0, 0, 0, 238, 0, - 571, 572, 0, 574, 575, 576, 577, 578, 579, 580, - 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, - 0, 592, 0, 0, 239, 0, 0, 0, 0, 348, - 4, 349, 350, 351, 352, 353, 354, 480, 481, 482, - 483, 484, 485, 486, 0, 0, 0, 388, 0, 0, - 0, 487, 488, 0, 0, 0, 0, 5, 0, 6, - 0, 0, 0, 0, 564, 7, 0, 0, 0, 9, - 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, - 565, 0, 0, 0, 0, 12, 0, 0, 0, 0, - 0, 204, 14, 0, 15, 355, 0, 0, 16, 0, - 0, 17, 0, 0, 0, 0, 0, 0, 18, 0, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 20, - 0, 21, 22, 23, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 356, 0, 0, 0, 0, 476, 632, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 0, - 0, 0, 655, 27, 0, 657, 487, 488, 28, 29, - 30, 0, 357, 31, 4, 32, 0, 369, 0, 207, - 0, 0, 0, 0, 0, 358, 0, 0, 208, 0, - 35, 0, 0, 0, 0, 0, 0, 0, 36, 37, - 0, 5, 0, 6, 0, 0, 0, 0, 0, 7, - 8, 359, 0, 9, 360, 361, 362, 0, 10, 363, - 364, 0, 0, 0, 0, 0, 0, 11, 0, 12, - 0, 0, 365, 0, 0, 13, 14, 0, 15, 0, - 0, 0, 16, 0, 0, 17, 0, 0, 0, 0, - 0, 0, 18, 0, 0, 0, 0, 0, 0, 19, - 296, 0, 0, 20, 0, 21, 22, 23, 24, 0, - 0, 0, 0, 0, 25, 0, 0, 0, 476, 26, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - 0, 4, 0, 0, 0, 0, 0, 487, 488, 0, - 0, 0, 0, 0, 502, 0, 0, 27, 0, 0, - 0, 0, 28, 29, 30, 0, 0, 31, 5, 32, - 6, 0, 0, 33, 0, 0, 7, 8, 0, 0, - 9, 0, 34, 0, 35, 10, 0, 0, 0, 0, - 0, 0, 36, 37, 11, 0, 12, 0, 0, 0, - 0, 0, 13, 14, 0, 15, 0, 0, 0, 16, - 0, 0, 17, 0, 0, 0, 0, 0, 0, 18, - 0, 38, 0, 0, 306, 0, 19, 296, 0, 0, - 20, 0, 21, 22, 23, 24, 0, 0, 0, 0, - 0, 25, 0, 0, 0, 0, 26, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, + 48, 40, 244, 71, 243, 74, 63, 417, 376, 49, + 216, 379, 375, 381, 333, 308, 386, 203, 53, 383, + 430, 393, 328, 329, 250, 46, 55, 412, 56, 597, + 62, 65, 424, 617, 470, 667, 214, 12, 596, 599, + 434, 470, 602, -252, 257, 235, 259, 236, 668, 217, + -252, 218, 232, 232, 232, 211, 94, 96, 232, 3, + 235, 331, 236, 623, 212, 331, 332, 331, 629, 77, + 603, 92, 631, 235, 437, 236, 97, 25, 25, 171, + 470, 237, 85, 175, 233, 234, 10, 647, 624, 252, + 490, 235, -252, 236, -37, 260, 237, 349, 626, -252, + 350, 351, 352, 353, 354, 355, 320, 435, 83, 237, + 189, 494, 648, 238, 10, 515, 39, 491, 515, 538, + 674, 636, 617, 89, 651, 294, 39, 237, 238, 420, + 635, 551, 425, 638, 426, 640, 407, 408, 495, 237, + 10, 238, 516, 90, 10, 522, 533, 295, 652, 244, + 228, 243, 449, 425, 425, 451, 455, 88, 201, 238, + 654, 91, -32, 657, 356, 16, 75, 239, 76, 659, + 345, 238, 78, 346, 79, 244, 244, 243, 243, 468, + 469, 470, 239, 219, 39, 665, 557, 419, 339, 39, + 21, 39, 448, 240, 452, 239, 348, 80, 536, 81, + 48, 48, 669, 71, 71, 74, 74, 204, 240, 49, + 49, 357, 322, 239, 483, 484, 485, 486, 487, 488, + 489, 240, 86, 221, 87, 239, 488, 489, 261, 594, + 94, 96, 254, 241, 28, 567, 232, 394, 385, 240, + 397, 358, 404, 405, 613, 220, 33, 411, 241, 242, + 614, 240, 222, 223, 359, 485, 486, 487, 224, 606, + 244, 506, 243, 262, 242, 488, 489, 334, 225, 93, + 418, 81, 331, 95, 384, 81, -252, 507, -33, 506, + 360, 604, 227, 361, 362, 438, 230, 237, 364, 365, + 331, 565, -34, 253, 385, 507, -36, 439, 616, 255, + 263, 366, 331, -252, 310, -35, 81, 566, 642, 256, + 434, 398, 399, 400, 401, 402, 258, 48, 40, 238, + 71, 611, 74, 63, 433, 432, 49, 71, 467, 74, + 384, 567, 312, 49, 313, 53, 567, 434, 39, 632, + 8, 453, 46, 55, 661, 56, 505, 62, 65, 434, + 314, 244, 81, 243, 483, 484, 485, 486, 487, 315, + 323, 81, 324, 264, 265, 434, 488, 489, 235, 266, + 236, 267, -245, 239, -245, 268, 311, 269, 270, 339, + 271, 272, 273, 19, 274, 275, 276, 541, 535, 662, + 643, 277, 567, 278, 279, 216, 22, 23, 24, 240, + 280, -38, 568, 281, 282, 26, 671, 283, 284, 285, + 286, 558, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 563, 287, 288, 539, 545, 542, 289, 433, 432, + 316, 71, 290, 74, 217, 291, 218, 49, 292, 565, + 211, 293, 600, -39, 30, -40, 325, 330, 32, 335, + 331, 340, 559, 349, 342, 566, 350, 351, 352, 353, + 354, 355, 344, 372, 373, 377, 378, 380, 390, 385, + 392, 410, 414, 413, 244, 370, 243, 423, 370, 415, + 416, -252, 429, 425, 425, 382, 428, 436, 389, 445, + 446, 447, 459, 622, 389, 396, 456, 457, 568, 458, + 492, 627, 520, 568, 493, 384, 496, 216, 534, 20, + 497, 498, 499, 500, 501, 502, 504, 385, 514, 517, + 356, 518, 519, 521, 524, 525, 526, 527, 385, 529, + 528, 530, 531, 48, 532, 540, 71, 543, 74, 548, + 370, 440, 49, 244, 554, 243, 560, 555, 561, 562, + 574, 592, 595, 384, 608, 607, 610, 612, 630, 568, + 620, 637, 645, 639, 384, 385, 641, 357, 649, 650, + 460, 461, 462, 463, 464, 465, 466, 653, 655, 660, + 477, 319, 478, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 666, 385, 672, 673, 678, 358, 556, 488, + 489, 384, 406, 213, 395, 549, 503, 605, 547, 317, + 359, 433, 432, 677, 71, 663, 74, 468, 469, 470, + 49, 391, 473, 474, 0, 0, 0, 0, 0, 384, + 0, 0, 0, 0, 0, 0, 360, 0, 0, 361, + 362, 363, 0, 0, 364, 365, 0, 0, 463, 0, + 0, 0, 0, 552, 0, 0, 0, 366, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 27, 0, 0, 0, 0, 28, - 29, 30, 0, 0, 31, 5, 32, 6, 0, 0, - 33, 0, 0, 7, 8, 0, 0, 9, 0, 34, - 0, 35, 10, 0, 0, 0, 0, 0, 0, 36, - 37, 11, 0, 12, 0, 0, 0, 0, 0, 13, - 14, 0, 15, 0, 0, 0, 16, 0, 0, 17, - 0, 0, 0, 0, 0, 0, 18, 0, 38, 0, - 0, 608, 0, 19, 4, 0, 0, 20, 0, 21, - 22, 23, 24, 0, 0, 0, 0, 0, 25, 0, - 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, - 0, 5, 0, 6, 0, 0, 0, 0, 0, 7, - 0, 0, 0, 9, 0, 0, 0, 0, 10, 0, - 0, 27, 0, 0, 0, 0, 28, 29, 30, 12, - 0, 31, 0, 32, 0, 13, 14, 33, 15, 0, - 0, 0, 16, 0, 0, 17, 34, 0, 35, 0, - 0, 0, 18, 0, 0, 0, 36, 37, 0, 19, - 4, 0, 0, 20, 0, 21, 22, 23, 0, 0, - 0, 0, 0, 0, 25, 0, 467, 468, 469, 470, - 471, 472, 473, 0, 0, 38, 0, 5, 421, 6, - 0, 0, 0, 0, 0, 7, 0, 0, 0, 9, - 0, 0, 0, 0, 10, 0, 0, 27, 0, 0, - 0, 0, 28, 29, 30, 12, 0, 31, 0, 32, - 0, 13, 14, 33, 15, 0, 0, 0, 16, 0, - 0, 17, 34, 0, 35, 0, 0, 0, 18, 0, - 0, 0, 36, 37, 0, 19, 4, 0, 0, 20, - 0, 21, 22, 23, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 467, 468, 469, 470, 471, 472, 473, - 0, 38, 0, 5, 430, 6, 0, 0, 0, 0, - 0, 7, 0, 0, 0, 9, 0, 0, 0, 0, - 10, 0, 0, 27, 0, 0, 0, 0, 28, 29, - 30, 12, 0, 31, 0, 32, 0, 13, 14, 33, - 15, 0, 0, 0, 16, 0, 0, 17, 34, 0, - 35, 0, 0, 0, 18, 0, 0, 0, 36, 37, - 0, 19, 4, 0, 0, 20, 0, 21, 22, 23, - 0, 0, 0, 0, 0, 0, 25, 478, 479, 480, - 481, 482, 483, 484, 485, 486, 0, 38, 0, 5, - 549, 6, 0, 487, 488, 0, 0, 7, 0, 0, - 0, 9, 0, 0, 0, 0, 0, 0, 0, 27, - 0, 0, 0, 0, 28, 29, 30, 12, 0, 31, - 0, 32, 0, 204, 14, 33, 15, 0, 0, 0, - 16, 0, 0, 17, 34, 0, 35, 0, 0, 0, - 18, 0, 0, 0, 36, 37, 0, 0, 0, 0, - 0, 20, 0, 21, 22, 23, 0, 0, 0, 0, - 0, 0, 25, 0, 0, 479, 480, 481, 482, 483, - 484, 485, 486, 38, 0, 0, 643, 0, 0, 4, - 487, 488, 0, 0, 0, 0, 0, 295, 0, 0, - 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, - 28, 29, 30, 0, 0, 31, 5, 32, 6, 0, - 0, 207, 0, 0, 7, 8, 0, 0, 9, 0, - 208, 0, 35, 10, 0, 0, 0, 0, 0, 0, - 36, 37, 11, 0, 12, 0, 0, 0, 0, 0, - 13, 14, 0, 15, 0, 0, 0, 16, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 18, 0, 38, - 0, 0, 543, 0, 19, 296, 0, 0, 20, 0, - 21, 22, 23, 24, 0, 0, 0, 0, 0, 25, - 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 572, 573, + 0, 575, 576, 577, 578, 579, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 591, 0, 593, + 0, 0, 0, 0, 0, 0, 349, 0, 5, 350, + 351, 352, 353, 354, 355, 0, 349, 0, 0, 350, + 351, 352, 353, 354, 355, 389, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 6, 0, 7, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 10, 0, 0, + 0, 0, 0, 0, 468, 469, 470, 471, 472, 473, + 474, 0, 0, 13, 0, 0, 0, 0, 0, 205, + 15, 0, 16, 356, 0, 0, 17, 0, 0, 18, + 0, 0, 0, 356, 0, 0, 19, 0, 0, 0, + 481, 482, 483, 484, 485, 486, 487, 21, 0, 22, + 23, 24, 0, 0, 488, 489, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 27, 0, 0, 0, 0, 28, 29, 30, - 0, 0, 31, 5, 32, 6, 0, 0, 33, 0, - 0, 7, 8, 0, 0, 9, 0, 34, 0, 35, - 10, 0, 0, 0, 0, 0, 0, 36, 37, 11, - 0, 12, 0, 0, 0, 0, 0, 13, 14, 0, - 15, 0, 0, 0, 16, 0, 0, 17, 0, 0, - 0, 0, 0, 0, 18, 0, 38, 0, 0, 0, - 0, 19, 4, 0, 0, 20, 0, 21, 22, 23, - 24, 0, 0, 0, 0, 0, 25, 0, 0, 0, - 0, 26, 0, 0, 0, 0, 0, 0, 0, 5, - 0, 6, 0, 0, 0, 0, 236, 7, 0, 0, - 0, 9, 0, 0, 0, 0, 0, 0, 0, 27, - 0, 0, 0, 0, 28, 29, 30, 12, 0, 31, - 0, 32, 0, 204, 14, 33, 15, 0, 237, 0, - 16, 0, -58, 17, 34, 0, 35, 0, 0, 0, - 18, 0, 0, 0, 36, 37, 0, 0, 0, 0, - 0, 20, 0, 21, 22, 23, 0, 0, 0, 0, - 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 38, 0, 0, 0, 0, 0, 0, - 0, 0, 238, 0, 0, 0, 0, 0, 0, 4, - 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, - 28, 29, 30, 0, 0, 31, 0, 32, 239, 0, - 0, 207, 0, 0, 0, 0, 5, 0, 6, 0, - 208, 0, 35, 236, 7, 0, 0, 0, 9, 0, - 36, 37, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 0, 0, 597, 0, - 204, 14, 0, 15, 0, 237, 0, 16, 0, 38, - 17, 0, 0, 0, 0, 0, 0, 18, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, - 21, 22, 23, 0, 0, 0, 0, 0, 0, 25, + 357, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 357, 468, 469, 470, 471, 472, 473, 474, 0, 476, + 656, 28, 0, 658, 0, 0, 29, 30, 31, 0, + 358, 32, 0, 33, 0, 370, 0, 208, 0, 0, + 358, 0, 0, 359, 0, 0, 209, 0, 36, 0, + 0, 0, 0, 359, 0, 0, 37, 38, 0, 0, + 0, 4, 5, 0, 0, 0, 0, 0, 0, 360, + 0, 0, 361, 362, 363, 0, 0, 364, 365, 360, + 0, 0, 361, 362, 363, 0, 0, 364, 365, 6, + 366, 7, 0, 0, 0, 0, 0, 8, 9, 0, + 366, 10, 0, 0, 0, 0, 11, 481, 482, 483, + 484, 485, 486, 487, 0, 12, 0, 13, 0, 0, + 0, 488, 489, 14, 15, 0, 16, 0, 0, 0, + 17, 0, 0, 18, 0, 0, 0, 0, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 20, 297, 0, + 0, 21, 0, 22, 23, 24, 25, 0, 0, 0, + 0, 0, 26, 0, 0, 0, 0, 27, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, + 0, 478, 479, 480, 481, 482, 483, 484, 485, 486, + 487, 0, 0, 0, 0, 28, 0, 0, 488, 489, + 29, 30, 31, 0, 0, 32, 6, 33, 7, 0, + 0, 34, 0, 0, 8, 9, 0, 0, 10, 0, + 35, 0, 36, 11, 0, 0, 0, 0, 0, 0, + 37, 38, 12, 0, 13, 0, 0, 0, 0, 0, + 14, 15, 0, 16, 0, 0, 0, 17, 0, 0, + 18, 0, 0, 0, 0, 0, 0, 19, 0, 39, + 0, 0, 307, 0, 20, 297, 0, 0, 21, 0, + 22, 23, 24, 25, 0, 0, 0, 0, 0, 26, + 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, + 0, 0, 28, 0, 0, 0, 0, 29, 30, 31, + 0, 0, 32, 6, 33, 7, 0, 0, 34, 0, + 0, 8, 9, 0, 0, 10, 0, 35, 0, 36, + 11, 0, 0, 0, 0, 0, 0, 37, 38, 12, + 0, 13, 0, 0, 0, 0, 0, 14, 15, 0, + 16, 0, 0, 0, 17, 0, 0, 18, 0, 0, + 0, 0, 0, 0, 19, 0, 39, 0, 0, 609, + 0, 20, 0, 0, 0, 21, 0, 22, 23, 24, + 25, 0, 0, 0, 0, 0, 26, 4, 5, 0, + 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 27, 0, 0, 0, 0, 28, 29, 30, - 0, 0, 31, 0, 32, 239, 0, 0, 207, 614, - 0, 0, 0, 0, 0, 0, 0, 208, 5, 35, - 6, 0, 0, 0, 0, 0, 7, 36, 37, 0, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 624, 12, 0, 0, 0, - 0, 0, 204, 14, 0, 15, 38, 0, 0, 16, - 0, 0, 17, 0, 0, 0, 0, 0, 0, 18, - 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, - 20, 0, 21, 22, 23, 0, 0, 0, 0, 0, - 0, 25, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 0, 0, 0, 5, 0, 6, 0, 0, 0, - 0, 0, 7, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 27, 0, 0, 0, 0, 28, - 29, 30, 12, 0, 31, 0, 32, 0, 204, 14, - 207, 15, 0, 0, 0, 16, 0, 0, 17, 208, - 0, 35, 0, 0, 0, 18, 0, 0, 0, 36, - 37, 0, 0, 0, 0, 0, 20, 0, 21, 22, - 23, 0, 0, 0, 0, 0, 0, 25, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 0, 38, 0, + 0, 0, 0, 0, 0, 6, 0, 7, 0, 28, + 0, 0, 0, 8, 29, 30, 31, 10, 0, 32, + 0, 33, 11, 0, 0, 34, 0, 0, 0, 0, + 0, 0, 0, 13, 35, 0, 36, 0, 0, 14, + 15, 0, 16, 0, 37, 38, 17, 0, 0, 18, + 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, + 0, 0, 0, 20, 0, 0, 0, 21, 0, 22, + 23, 24, 0, 39, 0, 0, 422, 0, 26, 4, + 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 467, 468, 469, 470, 471, 472, 473, - 27, 475, 0, 0, 0, 28, 29, 30, 0, 0, - 31, 0, 32, 0, 0, 0, 207, 0, 0, 0, - 0, 0, 0, 0, 0, 208, 0, 35, 0, 0, - 0, 0, 0, 0, 0, 36, 37, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 476, 0, 477, 478, 479, 480, 481, 482, 483, 484, - 485, 486, 0, 0, 38, 0, 0, 0, 0, 487, - 488, 0, 0, 0, 0, 0, 522, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 0, 0, - 0, 0, 0, 0, 0, 467, 468, 469, 470, 471, - 472, 473, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 476, 0, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 0, 0, - 0, 0, 0, 0, 0, 487, 488, 0, 0, 0, - 0, 0, 563, 477, 478, 479, 480, 481, 482, 483, - 484, 485, 486, 0, 0, 0, 0, 0, 0, 0, - 487, 488, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, + 0, 28, 0, 0, 0, 8, 29, 30, 31, 10, + 0, 32, 0, 33, 11, 0, 0, 34, 0, 0, + 0, 0, 0, 0, 0, 13, 35, 0, 36, 0, + 0, 14, 15, 0, 16, 0, 37, 38, 17, 0, + 0, 18, 0, 0, 0, 0, 0, 0, 19, 0, + 0, 0, 0, 0, 0, 20, 0, 0, 0, 21, + 0, 22, 23, 24, 0, 39, 0, 0, 431, 0, + 26, 4, 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 0, 6, + 0, 7, 0, 28, 0, 0, 0, 8, 29, 30, + 31, 10, 0, 32, 0, 33, 11, 0, 0, 34, + 0, 0, 0, 0, 0, 0, 0, 13, 35, 0, + 36, 0, 0, 14, 15, 0, 16, 0, 37, 38, + 17, 0, 0, 18, 0, 0, 0, 0, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 20, 5, 0, + 0, 21, 0, 22, 23, 24, 0, 39, 0, 0, + 550, 0, 26, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 6, 0, 7, 0, 0, + 0, 0, 0, 8, 0, 0, 0, 10, 0, 0, + 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, + 29, 30, 31, 13, 0, 32, 0, 33, 0, 205, + 15, 34, 16, 0, 0, 0, 17, 0, 0, 18, + 35, 0, 36, 0, 0, 0, 19, 0, 0, 0, + 37, 38, 0, 0, 0, 0, 0, 21, 0, 22, + 23, 24, 0, 0, 0, 0, 0, 477, 26, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 39, + 0, 0, 644, 0, 4, 5, 488, 489, 553, 0, + 0, 0, 0, 296, 0, 0, 0, 0, 0, 0, + 0, 28, 0, 0, 0, 0, 29, 30, 31, 0, + 0, 32, 6, 33, 7, 0, 0, 208, 0, 0, + 8, 9, 0, 0, 10, 0, 209, 0, 36, 11, + 0, 0, 0, 0, 0, 0, 37, 38, 12, 0, + 13, 0, 0, 0, 0, 0, 14, 15, 0, 16, + 0, 0, 0, 17, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 19, 0, 39, 0, 0, 544, 0, + 20, 297, 0, 0, 21, 0, 22, 23, 24, 25, + 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, + 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 4, 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, + 0, 0, 0, 29, 30, 31, 0, 0, 32, 6, + 33, 7, 0, 0, 34, 0, 0, 8, 9, 0, + 0, 10, 0, 35, 0, 36, 11, 0, 0, 0, + 0, 0, 0, 37, 38, 12, 0, 13, 0, 0, + 0, 0, 0, 14, 15, 0, 16, 0, 0, 0, + 17, 0, 0, 18, 0, 0, 0, 0, 0, 0, + 19, 0, 39, 0, 0, 0, 0, 20, 5, 0, + 0, 21, 0, 22, 23, 24, 25, 0, 0, 0, + 0, 0, 26, 0, 0, 0, 0, 27, 0, 0, + 0, 0, 0, 0, 0, 6, 0, 7, 0, 0, + 0, 0, 237, 8, 0, 0, 0, 10, 0, 0, + 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, + 29, 30, 31, 13, 0, 32, 0, 33, 0, 205, + 15, 34, 16, 0, 238, 0, 17, 0, -59, 18, + 35, 0, 36, 0, 0, 0, 19, 0, 0, 0, + 37, 38, 0, 0, 0, 0, 0, 21, 0, 22, + 23, 24, 0, 0, 0, 0, 0, 0, 26, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, + 0, 0, 0, 0, 0, 0, 0, 0, 239, 0, + 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, + 0, 28, 0, 0, 0, 0, 29, 30, 31, 0, + 0, 32, 0, 33, 240, 0, 0, 208, 0, 0, + 0, 0, 6, 0, 7, 0, 209, 0, 36, 237, + 8, 0, 0, 0, 10, 0, 37, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 476, 0, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 0, 0, 0, - 0, 0, 0, 0, 487, 488, 552, 0, 0, 0, + 13, 0, 0, 0, 598, 0, 205, 15, 0, 16, + 0, 238, 0, 17, 0, 39, 18, 0, 0, 0, + 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 21, 0, 22, 23, 24, 0, + 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 476, 0, 477, 478, 479, - 480, 481, 482, 483, 484, 485, 486, 0, 0, 0, - 0, 0, 0, 0, 487, 488, 633, 476, 0, 477, - 478, 479, 480, 481, 482, 483, 484, 485, 486, 4, - 0, 0, 0, 0, 0, 0, 487, 488, 480, 481, - 482, 483, 484, 485, 486, 0, 0, 0, 0, 0, - 0, 0, 487, 488, 0, 0, 5, 0, 6, 0, - 0, 0, 0, 0, 7, 8, 0, 0, 9, 0, + 0, 0, 0, 0, 0, 239, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 5, 28, 0, + 0, 0, 0, 29, 30, 31, 0, 0, 32, 0, + 33, 240, 0, 0, 208, 615, 0, 0, 0, 0, + 0, 0, 0, 209, 6, 36, 7, 0, 0, 0, + 0, 0, 8, 37, 38, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 11, 0, 12, 0, 0, 0, 0, 0, - 204, 14, 0, 15, 0, 0, 0, 16, 0, 0, - 17, 0, 0, 0, 0, 0, 0, 18, 0, 0, - 0, 0, 0, 0, 0, 4, 0, 0, 20, 0, - 21, 22, 23, 24, 0, 0, 205, 0, 0, 25, - 0, 0, 0, 206, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 0, 6, 0, 0, 0, 0, 0, - 7, 0, 0, 0, 9, 0, 0, 0, 0, 0, - 0, 0, 27, 0, 0, 0, 0, 28, 29, 30, - 12, 0, 31, 0, 32, 0, 204, 14, 207, 15, - 0, 0, 0, 16, 0, 0, 17, 208, 0, 35, - 0, 0, 0, 18, 0, 0, 0, 36, 37, 0, - 0, 4, 0, 0, 20, 0, 21, 22, 23, 0, - 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, - 6, 0, 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, - 0, 0, 0, 28, 29, 30, 12, 0, 31, 0, - 32, 0, 204, 14, 207, 0, 0, 0, 0, 16, - 0, 0, 17, 208, 0, 35, 0, 0, 0, 18, - 0, 0, 0, 36, 37, 0, 0, 0, 0, 0, - 0, 0, 21, 22, 23, 0, 0, 0, 0, 0, - 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 625, 13, 0, 0, 0, 0, 0, 205, 15, + 0, 16, 39, 0, 0, 17, 0, 0, 18, 0, + 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, + 0, 0, 0, 5, 0, 0, 21, 0, 22, 23, + 24, 0, 0, 0, 0, 0, 0, 26, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 0, 0, 0, + 6, 0, 7, 0, 0, 0, 0, 0, 8, 0, + 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, + 28, 0, 0, 0, 0, 29, 30, 31, 13, 0, + 32, 0, 33, 0, 205, 15, 208, 16, 0, 0, + 0, 17, 0, 0, 18, 209, 0, 36, 0, 0, + 0, 19, 0, 0, 0, 37, 38, 0, 0, 0, + 0, 0, 21, 0, 22, 23, 24, 0, 0, 0, + 0, 0, 0, 26, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 0, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 468, + 469, 470, 471, 472, 473, 474, 28, 0, 0, 0, + 0, 29, 30, 31, 0, 0, 32, 0, 33, 0, + 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, + 0, 209, 0, 36, 0, 0, 0, 0, 0, 0, + 0, 37, 38, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 0, 0, 0, 0, 477, 0, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 0, 0, + 39, 0, 0, 0, 0, 488, 489, 0, 0, 0, + 0, 0, 523, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 468, 469, 470, 471, 472, 473, 474, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 468, 469, 470, 471, 472, 473, + 474, 488, 489, 0, 0, 0, 0, 0, 564, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 0, + 0, 0, 0, 0, 0, 0, 488, 489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, - 29, 30, 0, 0, 31, 0, 0, 0, 0, 0, - 207, 0, 0, 0, 0, 0, 0, 0, 0, 208, - 0, 35, 0, 0, 0, 0, 0, 0, 0, 36, - 37, 97, 0, 98, 99, 100, 101, 102, 103, 0, - 104, 0, 0, 105, 0, 106, 0, 0, 0, 107, - 108, 0, 109, 110, 111, 112, 0, 113, 114, 115, - 116, 117, 118, 119, 120, 0, 121, 0, 122, 123, - 124, 125, 126, 0, 0, 127, 0, 0, 0, 128, - 0, 129, 130, 0, 131, 132, 133, 134, 135, 136, - 0, 137, 138, 139, 140, 141, 142, 0, 0, 143, - 0, 0, 144, 0, 0, 0, 0, 145, 146, 0, - 147, 148, 0, 149, 150, 0, 0, 0, 151, 152, - 153, 154, 155, 156, 0, 157, 158, 159, 160, 161, - 162, 163, 0, 164, 165, 0, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 0, 175, 176, 177, 178, - 0, 0, 0, 179, 0, 0, 180, 0, 0, 181, - 182, 0, 0, 183, 184, 185, 186, 0, 0, 187, - 0, 188, 0, 189, 190, 191, 192, 193, 194, 195, - 0, 0, 196 + 0, 477, 0, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 0, 0, 0, 0, 0, 0, 0, + 488, 489, 634, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 477, 633, 478, 479, 480, 481, 482, 483, 484, + 485, 486, 487, 0, 0, 0, 0, 0, 0, 0, + 488, 489, 477, 0, 478, 479, 480, 481, 482, 483, + 484, 485, 486, 487, 5, 0, 0, 0, 0, 0, + 0, 488, 489, 479, 480, 481, 482, 483, 484, 485, + 486, 487, 0, 0, 0, 0, 0, 0, 0, 488, + 489, 6, 0, 7, 0, 0, 0, 0, 0, 8, + 9, 0, 0, 10, 0, 0, 480, 481, 482, 483, + 484, 485, 486, 487, 0, 0, 0, 12, 0, 13, + 0, 488, 489, 0, 0, 205, 15, 0, 16, 0, + 0, 0, 17, 0, 0, 18, 0, 0, 0, 0, + 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, + 5, 0, 0, 21, 0, 22, 23, 24, 25, 0, + 0, 206, 0, 0, 26, 0, 0, 0, 207, 0, + 0, 0, 0, 0, 0, 0, 0, 6, 0, 7, + 0, 0, 0, 0, 0, 8, 0, 0, 0, 10, + 0, 0, 0, 0, 0, 0, 0, 28, 0, 0, + 0, 0, 29, 30, 31, 13, 0, 32, 0, 33, + 0, 205, 15, 208, 16, 0, 0, 0, 17, 0, + 0, 18, 209, 0, 36, 0, 0, 0, 19, 0, + 0, 0, 37, 38, 0, 0, 5, 0, 0, 21, + 0, 22, 23, 24, 0, 0, 0, 0, 0, 0, + 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 6, 0, 7, 0, 0, 0, 0, + 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 28, 0, 0, 0, 0, 29, 30, + 31, 13, 0, 32, 0, 33, 0, 205, 15, 208, + 0, 0, 0, 0, 17, 0, 0, 18, 209, 0, + 36, 0, 0, 0, 19, 0, 0, 0, 37, 38, + 0, 0, 0, 0, 0, 0, 0, 22, 23, 24, + 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 29, 30, 31, 0, 0, 32, + 0, 0, 0, 0, 0, 208, 0, 0, 0, 0, + 0, 0, 0, 0, 209, 0, 36, 0, 0, 0, + 0, 0, 0, 0, 37, 38, 98, 0, 99, 100, + 101, 102, 103, 104, 0, 105, 0, 0, 106, 0, + 107, 0, 0, 0, 108, 109, 0, 110, 111, 112, + 113, 0, 114, 115, 116, 117, 118, 119, 120, 121, + 0, 122, 0, 123, 124, 125, 126, 127, 0, 0, + 128, 0, 0, 0, 129, 0, 130, 131, 0, 132, + 133, 134, 135, 136, 137, 0, 138, 139, 140, 141, + 142, 143, 0, 0, 144, 0, 0, 145, 0, 0, + 0, 0, 146, 147, 0, 148, 149, 0, 150, 151, + 0, 0, 0, 152, 153, 154, 155, 156, 157, 0, + 158, 159, 160, 161, 162, 163, 164, 0, 165, 166, + 0, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 0, 176, 177, 178, 179, 0, 0, 0, 180, 0, + 0, 181, 0, 0, 182, 183, 0, 0, 184, 185, + 186, 187, 0, 0, 188, 0, 189, 0, 190, 191, + 192, 193, 194, 195, 196, 0, 0, 197 }; +#define yypact_value_is_default(Yystate) \ + (!!((Yystate) == (-526))) + +#define yytable_value_is_error(Yytable_value) \ + YYID (0) + static const yytype_int16 yycheck[] = { - 2, 2, 47, 2, 203, 2, 68, 268, 267, 2, - 271, 44, 273, 306, 2, 276, 69, 245, 326, 2, - 281, 68, 275, 324, 506, 2, 293, 557, 2, 2, - 2, 2, 107, 15, 241, 242, 89, 15, 505, 3, - 4, 66, 67, 154, 154, 132, 71, 154, 47, 136, - 47, 180, 43, 180, 47, 47, 562, 65, 66, 67, - 180, 567, 57, 71, 47, 203, 98, 205, 201, 37, - 329, 33, 34, 206, 38, 0, 163, 68, 207, 43, - 207, 180, 50, 565, 3, 205, 5, 6, 7, 8, - 9, 10, 203, 203, 205, 127, 203, 564, 3, 4, - 180, 320, 93, 98, 3, 4, 70, 3, 207, 5, - 6, 7, 8, 9, 10, 206, 646, 623, 317, 326, - 602, 320, 341, 342, 8, 418, 201, 207, 201, 180, - 597, 201, 95, 206, 201, 30, 206, 430, 205, 38, - 35, 340, 341, 342, 43, 412, 137, 203, 630, 205, - 69, 202, 25, 215, 3, 4, 29, 624, 149, 3, - 124, 175, 176, 177, 178, 179, 8, 201, 215, 11, - 204, 70, 201, 69, 201, 204, 206, 204, 8, 241, - 242, 205, 205, 207, 160, 446, 150, 13, 14, 15, - 16, 17, 18, 19, 241, 242, 205, 116, 205, 201, - 202, 205, 201, 202, 201, 202, 206, 254, 201, 202, - 417, 205, 190, 191, 192, 262, 5, 6, 200, 201, - 116, 205, 200, 201, 249, 124, 190, 146, 489, 282, - 275, 223, 285, 15, 287, 288, 204, 201, 466, 292, - 159, 249, 206, 3, 4, 207, 208, 548, 3, 4, - 146, 150, 3, 4, 3, 4, 549, 203, 519, 3, - 4, 203, 307, 159, 326, 203, 185, 3, 4, 188, - 189, 190, 205, 275, 193, 194, 3, 4, 182, 326, - 3, 4, 203, 202, 512, 205, 331, 206, 596, 185, - 205, 190, 188, 189, 190, 3, 4, 193, 194, 3, - 4, 554, 205, 203, 205, 203, 202, 206, 3, 206, - 206, 201, 206, 206, 607, 623, 318, 318, 206, 318, - 365, 318, 203, 325, 325, 318, 325, 635, 325, 331, - 318, 206, 325, 540, 562, 318, 206, 206, 383, 567, - 342, 318, 570, 651, 318, 318, 318, 318, 206, 206, - 643, 13, 14, 15, 38, 417, 206, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 206, 206, 206, - 417, 206, 206, 206, 200, 201, 504, 206, 206, 424, - 508, 206, 415, 206, 206, 644, 70, 432, 206, 206, - 206, 206, 206, 206, 206, 623, 206, 206, 445, 206, - 206, 205, 609, 448, 466, 666, 188, 189, 190, 191, - 192, 205, 205, 458, 8, 203, 208, 207, 200, 201, - 8, 207, 206, 8, 426, 424, 8, 429, 429, 8, - 429, 419, 429, 432, 8, 432, 429, 8, 8, 432, - 124, 8, 201, 206, 506, 203, 3, 4, 205, 3, - 4, 448, 3, 203, 5, 6, 7, 8, 9, 10, - 182, 506, 205, 203, 180, 207, 150, 204, 596, 208, - 180, 599, 671, 672, 207, 207, 207, 264, 540, 207, - 267, 38, 206, 200, 38, 8, 207, 274, 207, 207, - 277, 182, 207, 540, 207, 207, 283, 284, 626, 544, - 562, 207, 207, 565, 506, 567, 190, 635, 207, 554, - 207, 207, 559, 70, 207, 207, 70, 201, 69, 207, - 565, 207, 206, 651, 207, 207, 188, 189, 190, 191, - 192, 207, 534, 207, 207, 534, 207, 534, 200, 201, - 207, 534, 329, 330, 13, 14, 15, 609, 205, 18, - 19, 204, 554, 89, 180, 207, 207, 602, 205, 205, - 3, 623, 609, 565, 39, 116, 3, 124, 8, 5, - 124, 207, 359, 360, 361, 362, 363, 364, 365, 180, - 205, 205, 182, 182, 207, 630, 207, 207, 207, 203, - 207, 207, 38, 150, 207, 146, 150, 43, 207, 207, - 602, 182, 205, 221, 428, 445, 283, 82, 159, 289, - 612, 612, 514, 612, 672, 612, 47, 215, 426, 612, - 95, 96, 97, 279, 70, 646, -1, -1, 630, 104, - -1, -1, -1, 190, 185, -1, 190, 188, 189, 190, - -1, -1, 193, 194, 201, -1, -1, -1, -1, 206, - 437, -1, 206, -1, -1, 206, -1, -1, -1, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 143, -1, - -1, -1, 147, -1, -1, -1, -1, -1, 124, -1, - 467, 468, -1, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, - -1, 488, -1, -1, 150, -1, -1, -1, -1, 3, - 4, 5, 6, 7, 8, 9, 10, 186, 187, 188, - 189, 190, 191, 192, -1, -1, -1, 514, -1, -1, - -1, 200, 201, -1, -1, -1, -1, 31, -1, 33, - -1, -1, -1, -1, 190, 39, -1, -1, -1, 43, - -1, -1, -1, -1, -1, 201, -1, -1, -1, -1, - 206, -1, -1, -1, -1, 59, -1, -1, -1, -1, - -1, 65, 66, -1, 68, 69, -1, -1, 72, -1, - -1, 75, -1, -1, -1, -1, -1, -1, 82, -1, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 93, - -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, - 104, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 116, -1, -1, -1, -1, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, - -1, -1, 629, 137, -1, 632, 200, 201, 142, 143, - 144, -1, 146, 147, 4, 149, -1, 644, -1, 153, - -1, -1, -1, -1, -1, 159, -1, -1, 162, -1, - 164, -1, -1, -1, -1, -1, -1, -1, 172, 173, - -1, 31, -1, 33, -1, -1, -1, -1, -1, 39, - 40, 185, -1, 43, 188, 189, 190, -1, 48, 193, - 194, -1, -1, -1, -1, -1, -1, 57, -1, 59, - -1, -1, 206, -1, -1, 65, 66, -1, 68, -1, - -1, -1, 72, -1, -1, 75, -1, -1, -1, -1, - -1, -1, 82, -1, -1, -1, -1, -1, -1, 89, - 90, -1, -1, 93, -1, 95, 96, 97, 98, -1, - -1, -1, -1, -1, 104, -1, -1, -1, 181, 109, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - -1, 4, -1, -1, -1, -1, -1, 200, 201, -1, - -1, -1, -1, -1, 207, -1, -1, 137, -1, -1, - -1, -1, 142, 143, 144, -1, -1, 147, 31, 149, - 33, -1, -1, 153, -1, -1, 39, 40, -1, -1, - 43, -1, 162, -1, 164, 48, -1, -1, -1, -1, - -1, -1, 172, 173, 57, -1, 59, -1, -1, -1, - -1, -1, 65, 66, -1, 68, -1, -1, -1, 72, - -1, -1, 75, -1, -1, -1, -1, -1, -1, 82, - -1, 201, -1, -1, 204, -1, 89, 90, -1, -1, - 93, -1, 95, 96, 97, 98, -1, -1, -1, -1, - -1, 104, -1, -1, -1, -1, 109, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 4, -1, + 2, 2, 69, 2, 69, 2, 2, 307, 269, 2, + 48, 272, 268, 274, 246, 204, 277, 45, 2, 276, + 325, 282, 242, 243, 70, 2, 2, 294, 2, 506, + 2, 2, 108, 558, 16, 38, 48, 58, 505, 507, + 327, 16, 509, 155, 90, 3, 155, 5, 51, 48, + 155, 48, 66, 67, 68, 48, 34, 35, 72, 0, + 3, 202, 5, 563, 48, 202, 207, 202, 568, 207, + 207, 31, 207, 3, 330, 5, 36, 99, 99, 133, + 16, 39, 9, 137, 67, 68, 44, 181, 565, 72, + 181, 3, 204, 5, 206, 204, 39, 3, 566, 204, + 6, 7, 8, 9, 10, 11, 128, 327, 96, 39, + 164, 181, 206, 71, 44, 181, 202, 208, 181, 419, + 206, 598, 647, 3, 624, 181, 202, 39, 71, 318, + 597, 431, 321, 600, 321, 603, 6, 7, 208, 39, + 44, 71, 208, 207, 44, 208, 413, 203, 625, 216, + 183, 216, 341, 342, 343, 342, 343, 26, 206, 71, + 627, 30, 206, 631, 70, 69, 3, 125, 5, 636, + 9, 71, 3, 12, 5, 242, 243, 242, 243, 14, + 15, 16, 125, 206, 202, 652, 447, 205, 255, 202, + 94, 202, 205, 151, 205, 125, 263, 3, 418, 5, + 202, 203, 205, 202, 203, 202, 203, 161, 151, 202, + 203, 117, 224, 125, 189, 190, 191, 192, 193, 201, + 202, 151, 3, 204, 5, 125, 201, 202, 207, 490, + 208, 209, 9, 191, 138, 467, 250, 283, 276, 151, + 286, 147, 288, 289, 549, 206, 150, 293, 191, 207, + 550, 151, 204, 206, 160, 191, 192, 193, 204, 520, + 327, 191, 327, 207, 207, 201, 202, 250, 206, 3, + 308, 5, 202, 3, 276, 5, 204, 207, 206, 191, + 186, 513, 206, 189, 190, 191, 204, 39, 194, 195, + 202, 191, 206, 206, 332, 207, 206, 203, 555, 204, + 207, 207, 202, 204, 3, 206, 5, 207, 608, 206, + 597, 176, 177, 178, 179, 180, 204, 319, 319, 71, + 319, 541, 319, 319, 326, 326, 319, 326, 366, 326, + 332, 563, 3, 326, 5, 319, 568, 624, 202, 571, + 40, 343, 319, 319, 644, 319, 384, 319, 319, 636, + 3, 418, 5, 418, 189, 190, 191, 192, 193, 3, + 3, 5, 5, 207, 207, 652, 201, 202, 3, 207, + 5, 207, 206, 125, 208, 207, 3, 207, 207, 446, + 207, 207, 207, 83, 207, 207, 207, 425, 416, 645, + 610, 207, 624, 207, 207, 433, 96, 97, 98, 151, + 207, 206, 467, 207, 207, 105, 667, 207, 207, 207, + 207, 449, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 459, 207, 207, 420, 427, 425, 207, 430, 430, + 204, 430, 207, 430, 433, 207, 433, 430, 207, 191, + 433, 207, 507, 206, 144, 206, 204, 209, 148, 208, + 202, 208, 449, 3, 207, 207, 6, 7, 8, 9, + 10, 11, 9, 9, 9, 9, 9, 9, 9, 507, + 9, 9, 207, 202, 541, 265, 541, 183, 268, 206, + 204, 204, 204, 672, 673, 275, 206, 208, 278, 205, + 181, 209, 207, 560, 284, 285, 208, 208, 563, 208, + 208, 566, 181, 568, 208, 507, 208, 545, 9, 90, + 208, 208, 208, 208, 208, 208, 208, 555, 208, 208, + 70, 208, 208, 208, 208, 208, 208, 208, 566, 201, + 208, 208, 208, 535, 208, 183, 535, 206, 535, 205, + 330, 331, 535, 610, 208, 610, 208, 181, 206, 206, + 3, 3, 9, 555, 208, 6, 181, 206, 208, 624, + 206, 208, 183, 208, 566, 603, 208, 117, 204, 208, + 360, 361, 362, 363, 364, 365, 366, 208, 208, 208, + 182, 222, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 208, 631, 183, 183, 206, 147, 446, 201, + 202, 603, 290, 48, 284, 429, 208, 515, 427, 216, + 160, 613, 613, 673, 613, 647, 613, 14, 15, 16, + 613, 280, 19, 20, -1, -1, -1, -1, -1, 631, + -1, -1, -1, -1, -1, -1, 186, -1, -1, 189, + 190, 191, -1, -1, 194, 195, -1, -1, 438, -1, + -1, -1, -1, 203, -1, -1, -1, 207, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 137, -1, -1, -1, -1, 142, - 143, 144, -1, -1, 147, 31, 149, 33, -1, -1, - 153, -1, -1, 39, 40, -1, -1, 43, -1, 162, - -1, 164, 48, -1, -1, -1, -1, -1, -1, 172, - 173, 57, -1, 59, -1, -1, -1, -1, -1, 65, - 66, -1, 68, -1, -1, -1, 72, -1, -1, 75, - -1, -1, -1, -1, -1, -1, 82, -1, 201, -1, - -1, 204, -1, 89, 4, -1, -1, 93, -1, 95, - 96, 97, 98, -1, -1, -1, -1, -1, 104, -1, - -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, - -1, 31, -1, 33, -1, -1, -1, -1, -1, 39, - -1, -1, -1, 43, -1, -1, -1, -1, 48, -1, - -1, 137, -1, -1, -1, -1, 142, 143, 144, 59, - -1, 147, -1, 149, -1, 65, 66, 153, 68, -1, - -1, -1, 72, -1, -1, 75, 162, -1, 164, -1, - -1, -1, 82, -1, -1, -1, 172, 173, -1, 89, - 4, -1, -1, 93, -1, 95, 96, 97, -1, -1, - -1, -1, -1, -1, 104, -1, 13, 14, 15, 16, - 17, 18, 19, -1, -1, 201, -1, 31, 204, 33, - -1, -1, -1, -1, -1, 39, -1, -1, -1, 43, - -1, -1, -1, -1, 48, -1, -1, 137, -1, -1, - -1, -1, 142, 143, 144, 59, -1, 147, -1, 149, - -1, 65, 66, 153, 68, -1, -1, -1, 72, -1, - -1, 75, 162, -1, 164, -1, -1, -1, 82, -1, - -1, -1, 172, 173, -1, 89, 4, -1, -1, 93, - -1, 95, 96, 97, -1, -1, -1, -1, -1, -1, - 104, -1, -1, 13, 14, 15, 16, 17, 18, 19, - -1, 201, -1, 31, 204, 33, -1, -1, -1, -1, - -1, 39, -1, -1, -1, 43, -1, -1, -1, -1, - 48, -1, -1, 137, -1, -1, -1, -1, 142, 143, - 144, 59, -1, 147, -1, 149, -1, 65, 66, 153, - 68, -1, -1, -1, 72, -1, -1, 75, 162, -1, - 164, -1, -1, -1, 82, -1, -1, -1, 172, 173, - -1, 89, 4, -1, -1, 93, -1, 95, 96, 97, - -1, -1, -1, -1, -1, -1, 104, 184, 185, 186, - 187, 188, 189, 190, 191, 192, -1, 201, -1, 31, - 204, 33, -1, 200, 201, -1, -1, 39, -1, -1, - -1, 43, -1, -1, -1, -1, -1, -1, -1, 137, - -1, -1, -1, -1, 142, 143, 144, 59, -1, 147, - -1, 149, -1, 65, 66, 153, 68, -1, -1, -1, - 72, -1, -1, 75, 162, -1, 164, -1, -1, -1, - 82, -1, -1, -1, 172, 173, -1, -1, -1, -1, - -1, 93, -1, 95, 96, 97, -1, -1, -1, -1, - -1, -1, 104, -1, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 201, -1, -1, 204, -1, -1, 4, - 200, 201, -1, -1, -1, -1, -1, 12, -1, -1, - -1, -1, -1, -1, -1, 137, -1, -1, -1, -1, - 142, 143, 144, -1, -1, 147, 31, 149, 33, -1, - -1, 153, -1, -1, 39, 40, -1, -1, 43, -1, - 162, -1, 164, 48, -1, -1, -1, -1, -1, -1, - 172, 173, 57, -1, 59, -1, -1, -1, -1, -1, - 65, 66, -1, 68, -1, -1, -1, 72, -1, -1, - 75, -1, -1, -1, -1, -1, -1, 82, -1, 201, - -1, -1, 204, -1, 89, 90, -1, -1, 93, -1, - 95, 96, 97, 98, -1, -1, -1, -1, -1, 104, - -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 468, 469, + -1, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, -1, 489, + -1, -1, -1, -1, -1, -1, 3, -1, 5, 6, + 7, 8, 9, 10, 11, -1, 3, -1, -1, 6, + 7, 8, 9, 10, 11, 515, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 32, -1, 34, -1, -1, + -1, -1, -1, 40, -1, -1, -1, 44, -1, -1, + -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, + 20, -1, -1, 60, -1, -1, -1, -1, -1, 66, + 67, -1, 69, 70, -1, -1, 73, -1, -1, 76, + -1, -1, -1, 70, -1, -1, 83, -1, -1, -1, + 187, 188, 189, 190, 191, 192, 193, 94, -1, 96, + 97, 98, -1, -1, 201, 202, -1, -1, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 137, -1, -1, -1, -1, 142, 143, 144, - -1, -1, 147, 31, 149, 33, -1, -1, 153, -1, - -1, 39, 40, -1, -1, 43, -1, 162, -1, 164, - 48, -1, -1, -1, -1, -1, -1, 172, 173, 57, - -1, 59, -1, -1, -1, -1, -1, 65, 66, -1, - 68, -1, -1, -1, 72, -1, -1, 75, -1, -1, - -1, -1, -1, -1, 82, -1, 201, -1, -1, -1, - -1, 89, 4, -1, -1, 93, -1, 95, 96, 97, - 98, -1, -1, -1, -1, -1, 104, -1, -1, -1, - -1, 109, -1, -1, -1, -1, -1, -1, -1, 31, - -1, 33, -1, -1, -1, -1, 38, 39, -1, -1, - -1, 43, -1, -1, -1, -1, -1, -1, -1, 137, - -1, -1, -1, -1, 142, 143, 144, 59, -1, 147, - -1, 149, -1, 65, 66, 153, 68, -1, 70, -1, - 72, -1, 160, 75, 162, -1, 164, -1, -1, -1, - 82, -1, -1, -1, 172, 173, -1, -1, -1, -1, - -1, 93, -1, 95, 96, 97, -1, -1, -1, -1, - -1, -1, 104, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 201, -1, -1, -1, -1, -1, -1, - -1, -1, 124, -1, -1, -1, -1, -1, -1, 4, - -1, -1, -1, -1, -1, 137, -1, -1, -1, -1, - 142, 143, 144, -1, -1, 147, -1, 149, 150, -1, - -1, 153, -1, -1, -1, -1, 31, -1, 33, -1, - 162, -1, 164, 38, 39, -1, -1, -1, 43, -1, - 172, 173, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 59, -1, -1, -1, 190, -1, - 65, 66, -1, 68, -1, 70, -1, 72, -1, 201, - 75, -1, -1, -1, -1, -1, -1, 82, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 93, -1, - 95, 96, 97, -1, -1, -1, -1, -1, -1, 104, + 117, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 117, 14, 15, 16, 17, 18, 19, 20, -1, 22, + 630, 138, -1, 633, -1, -1, 143, 144, 145, -1, + 147, 148, -1, 150, -1, 645, -1, 154, -1, -1, + 147, -1, -1, 160, -1, -1, 163, -1, 165, -1, + -1, -1, -1, 160, -1, -1, 173, 174, -1, -1, + -1, 4, 5, -1, -1, -1, -1, -1, -1, 186, + -1, -1, 189, 190, 191, -1, -1, 194, 195, 186, + -1, -1, 189, 190, 191, -1, -1, 194, 195, 32, + 207, 34, -1, -1, -1, -1, -1, 40, 41, -1, + 207, 44, -1, -1, -1, -1, 49, 187, 188, 189, + 190, 191, 192, 193, -1, 58, -1, 60, -1, -1, + -1, 201, 202, 66, 67, -1, 69, -1, -1, -1, + 73, -1, -1, 76, -1, -1, -1, -1, -1, -1, + 83, -1, -1, -1, -1, -1, -1, 90, 91, -1, + -1, 94, -1, 96, 97, 98, 99, -1, -1, -1, + -1, -1, 105, -1, -1, -1, -1, 110, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, + -1, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, -1, -1, -1, -1, 138, -1, -1, 201, 202, + 143, 144, 145, -1, -1, 148, 32, 150, 34, -1, + -1, 154, -1, -1, 40, 41, -1, -1, 44, -1, + 163, -1, 165, 49, -1, -1, -1, -1, -1, -1, + 173, 174, 58, -1, 60, -1, -1, -1, -1, -1, + 66, 67, -1, 69, -1, -1, -1, 73, -1, -1, + 76, -1, -1, -1, -1, -1, -1, 83, -1, 202, + -1, -1, 205, -1, 90, 91, -1, -1, 94, -1, + 96, 97, 98, 99, -1, -1, -1, -1, -1, 105, + -1, -1, -1, -1, 110, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 124, + -1, -1, 138, -1, -1, -1, -1, 143, 144, 145, + -1, -1, 148, 32, 150, 34, -1, -1, 154, -1, + -1, 40, 41, -1, -1, 44, -1, 163, -1, 165, + 49, -1, -1, -1, -1, -1, -1, 173, 174, 58, + -1, 60, -1, -1, -1, -1, -1, 66, 67, -1, + 69, -1, -1, -1, 73, -1, -1, 76, -1, -1, + -1, -1, -1, -1, 83, -1, 202, -1, -1, 205, + -1, 90, -1, -1, -1, 94, -1, 96, 97, 98, + 99, -1, -1, -1, -1, -1, 105, 4, 5, -1, + -1, 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 4, 137, -1, -1, -1, -1, 142, 143, 144, - -1, -1, 147, -1, 149, 150, -1, -1, 153, 22, - -1, -1, -1, -1, -1, -1, -1, 162, 31, 164, - 33, -1, -1, -1, -1, -1, 39, 172, 173, -1, - 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 190, 59, -1, -1, -1, - -1, -1, 65, 66, -1, 68, 201, -1, -1, 72, - -1, -1, 75, -1, -1, -1, -1, -1, -1, 82, - -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, - 93, -1, 95, 96, 97, -1, -1, -1, -1, -1, - -1, 104, 13, 14, 15, 16, 17, 18, 19, 20, - 21, -1, -1, -1, 31, -1, 33, -1, -1, -1, - -1, -1, 39, -1, -1, -1, 43, -1, -1, -1, - -1, -1, -1, -1, 137, -1, -1, -1, -1, 142, - 143, 144, 59, -1, 147, -1, 149, -1, 65, 66, - 153, 68, -1, -1, -1, 72, -1, -1, 75, 162, - -1, 164, -1, -1, -1, 82, -1, -1, -1, 172, - 173, -1, -1, -1, -1, -1, 93, -1, 95, 96, - 97, -1, -1, -1, -1, -1, -1, 104, 13, 14, - 15, 16, 17, 18, 19, 20, 21, -1, 201, -1, + -1, -1, -1, -1, -1, 32, -1, 34, -1, 138, + -1, -1, -1, 40, 143, 144, 145, 44, -1, 148, + -1, 150, 49, -1, -1, 154, -1, -1, -1, -1, + -1, -1, -1, 60, 163, -1, 165, -1, -1, 66, + 67, -1, 69, -1, 173, 174, 73, -1, -1, 76, + -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, + -1, -1, -1, 90, -1, -1, -1, 94, -1, 96, + 97, 98, -1, 202, -1, -1, 205, -1, 105, 4, + 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 13, 14, 15, 16, 17, 18, 19, - 137, 21, -1, -1, -1, 142, 143, 144, -1, -1, - 147, -1, 149, -1, -1, -1, 153, -1, -1, -1, - -1, -1, -1, -1, -1, 162, -1, 164, -1, -1, - -1, -1, -1, -1, -1, 172, 173, 13, 14, 15, - 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, - 181, -1, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, -1, -1, 201, -1, -1, -1, -1, 200, - 201, -1, -1, -1, -1, -1, 207, 13, 14, 15, - 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 13, - 14, 15, 16, 17, 18, 19, 20, 21, -1, -1, - -1, -1, -1, -1, -1, 13, 14, 15, 16, 17, - 18, 19, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 181, -1, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, -1, -1, - -1, -1, -1, -1, -1, 200, 201, -1, -1, -1, - -1, -1, 207, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, -1, -1, -1, -1, -1, -1, -1, - 200, 201, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 32, -1, 34, + -1, 138, -1, -1, -1, 40, 143, 144, 145, 44, + -1, 148, -1, 150, 49, -1, -1, 154, -1, -1, + -1, -1, -1, -1, -1, 60, 163, -1, 165, -1, + -1, 66, 67, -1, 69, -1, 173, 174, 73, -1, + -1, 76, -1, -1, -1, -1, -1, -1, 83, -1, + -1, -1, -1, -1, -1, 90, -1, -1, -1, 94, + -1, 96, 97, 98, -1, 202, -1, -1, 205, -1, + 105, 4, 5, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 21, 22, -1, 32, + -1, 34, -1, 138, -1, -1, -1, 40, 143, 144, + 145, 44, -1, 148, -1, 150, 49, -1, -1, 154, + -1, -1, -1, -1, -1, -1, -1, 60, 163, -1, + 165, -1, -1, 66, 67, -1, 69, -1, 173, 174, + 73, -1, -1, 76, -1, -1, -1, -1, -1, -1, + 83, -1, -1, -1, -1, -1, -1, 90, 5, -1, + -1, 94, -1, 96, 97, 98, -1, 202, -1, -1, + 205, -1, 105, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 32, -1, 34, -1, -1, + -1, -1, -1, 40, -1, -1, -1, 44, -1, -1, + -1, -1, -1, -1, -1, 138, -1, -1, -1, -1, + 143, 144, 145, 60, -1, 148, -1, 150, -1, 66, + 67, 154, 69, -1, -1, -1, 73, -1, -1, 76, + 163, -1, 165, -1, -1, -1, 83, -1, -1, -1, + 173, 174, -1, -1, -1, -1, -1, 94, -1, 96, + 97, 98, -1, -1, -1, -1, -1, 182, 105, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 202, + -1, -1, 205, -1, 4, 5, 201, 202, 203, -1, + -1, -1, -1, 13, -1, -1, -1, -1, -1, -1, + -1, 138, -1, -1, -1, -1, 143, 144, 145, -1, + -1, 148, 32, 150, 34, -1, -1, 154, -1, -1, + 40, 41, -1, -1, 44, -1, 163, -1, 165, 49, + -1, -1, -1, -1, -1, -1, 173, 174, 58, -1, + 60, -1, -1, -1, -1, -1, 66, 67, -1, 69, + -1, -1, -1, 73, -1, -1, 76, -1, -1, -1, + -1, -1, -1, 83, -1, 202, -1, -1, 205, -1, + 90, 91, -1, -1, 94, -1, 96, 97, 98, 99, + -1, -1, -1, -1, -1, 105, -1, -1, -1, -1, + 110, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 4, 5, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 138, -1, + -1, -1, -1, 143, 144, 145, -1, -1, 148, 32, + 150, 34, -1, -1, 154, -1, -1, 40, 41, -1, + -1, 44, -1, 163, -1, 165, 49, -1, -1, -1, + -1, -1, -1, 173, 174, 58, -1, 60, -1, -1, + -1, -1, -1, 66, 67, -1, 69, -1, -1, -1, + 73, -1, -1, 76, -1, -1, -1, -1, -1, -1, + 83, -1, 202, -1, -1, -1, -1, 90, 5, -1, + -1, 94, -1, 96, 97, 98, 99, -1, -1, -1, + -1, -1, 105, -1, -1, -1, -1, 110, -1, -1, + -1, -1, -1, -1, -1, 32, -1, 34, -1, -1, + -1, -1, 39, 40, -1, -1, -1, 44, -1, -1, + -1, -1, -1, -1, -1, 138, -1, -1, -1, -1, + 143, 144, 145, 60, -1, 148, -1, 150, -1, 66, + 67, 154, 69, -1, 71, -1, 73, -1, 161, 76, + 163, -1, 165, -1, -1, -1, 83, -1, -1, -1, + 173, 174, -1, -1, -1, -1, -1, 94, -1, 96, + 97, 98, -1, -1, -1, -1, -1, -1, 105, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 202, + -1, -1, -1, -1, -1, -1, -1, -1, 125, -1, + -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, + -1, 138, -1, -1, -1, -1, 143, 144, 145, -1, + -1, 148, -1, 150, 151, -1, -1, 154, -1, -1, + -1, -1, 32, -1, 34, -1, 163, -1, 165, 39, + 40, -1, -1, -1, 44, -1, 173, 174, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 181, -1, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, -1, -1, -1, - -1, -1, -1, -1, 200, 201, 202, -1, -1, -1, + 60, -1, -1, -1, 191, -1, 66, 67, -1, 69, + -1, 71, -1, 73, -1, 202, 76, -1, -1, -1, + -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 94, -1, 96, 97, 98, -1, + -1, -1, -1, -1, -1, 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 181, -1, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, -1, -1, -1, - -1, -1, -1, -1, 200, 201, 202, 181, -1, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 4, - -1, -1, -1, -1, -1, -1, 200, 201, 186, 187, - 188, 189, 190, 191, 192, -1, -1, -1, -1, -1, - -1, -1, 200, 201, -1, -1, 31, -1, 33, -1, - -1, -1, -1, -1, 39, 40, -1, -1, 43, -1, + -1, -1, -1, -1, -1, 125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 5, 138, -1, + -1, -1, -1, 143, 144, 145, -1, -1, 148, -1, + 150, 151, -1, -1, 154, 23, -1, -1, -1, -1, + -1, -1, -1, 163, 32, 165, 34, -1, -1, -1, + -1, -1, 40, 173, 174, -1, 44, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 57, -1, 59, -1, -1, -1, -1, -1, - 65, 66, -1, 68, -1, -1, -1, 72, -1, -1, - 75, -1, -1, -1, -1, -1, -1, 82, -1, -1, - -1, -1, -1, -1, -1, 4, -1, -1, 93, -1, - 95, 96, 97, 98, -1, -1, 101, -1, -1, 104, - -1, -1, -1, 108, -1, -1, -1, -1, -1, -1, - -1, -1, 31, -1, 33, -1, -1, -1, -1, -1, - 39, -1, -1, -1, 43, -1, -1, -1, -1, -1, - -1, -1, 137, -1, -1, -1, -1, 142, 143, 144, - 59, -1, 147, -1, 149, -1, 65, 66, 153, 68, - -1, -1, -1, 72, -1, -1, 75, 162, -1, 164, - -1, -1, -1, 82, -1, -1, -1, 172, 173, -1, - -1, 4, -1, -1, 93, -1, 95, 96, 97, -1, - -1, -1, -1, -1, -1, 104, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 31, -1, - 33, -1, -1, -1, -1, -1, 39, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 137, -1, - -1, -1, -1, 142, 143, 144, 59, -1, 147, -1, - 149, -1, 65, 66, 153, -1, -1, -1, -1, 72, - -1, -1, 75, 162, -1, 164, -1, -1, -1, 82, - -1, -1, -1, 172, 173, -1, -1, -1, -1, -1, - -1, -1, 95, 96, 97, -1, -1, -1, -1, -1, - -1, 104, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 191, 60, -1, -1, -1, -1, -1, 66, 67, + -1, 69, 202, -1, -1, 73, -1, -1, 76, -1, + -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, + -1, -1, -1, 5, -1, -1, 94, -1, 96, 97, + 98, -1, -1, -1, -1, -1, -1, 105, 14, 15, + 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, + 32, -1, 34, -1, -1, -1, -1, -1, 40, -1, + -1, -1, 44, -1, -1, -1, -1, -1, -1, -1, + 138, -1, -1, -1, -1, 143, 144, 145, 60, -1, + 148, -1, 150, -1, 66, 67, 154, 69, -1, -1, + -1, 73, -1, -1, 76, 163, -1, 165, -1, -1, + -1, 83, -1, -1, -1, 173, 174, -1, -1, -1, + -1, -1, 94, -1, 96, 97, 98, -1, -1, -1, + -1, -1, -1, 105, 14, 15, 16, 17, 18, 19, + 20, 21, 22, -1, 202, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 14, + 15, 16, 17, 18, 19, 20, 138, -1, -1, -1, + -1, 143, 144, 145, -1, -1, 148, -1, 150, -1, + -1, -1, 154, -1, -1, -1, -1, -1, -1, -1, + -1, 163, -1, 165, -1, -1, -1, -1, -1, -1, + -1, 173, 174, 14, 15, 16, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, 182, -1, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, -1, -1, + 202, -1, -1, -1, -1, 201, 202, -1, -1, -1, + -1, -1, 208, 14, 15, 16, 17, 18, 19, 20, + 21, 22, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, + 20, 21, 22, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 14, 15, 16, 17, 18, 19, 20, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 182, -1, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 14, 15, 16, 17, 18, 19, + 20, 201, 202, -1, -1, -1, -1, -1, 208, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, -1, + -1, -1, -1, -1, -1, -1, 201, 202, -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, 142, - 143, 144, -1, -1, 147, -1, -1, -1, -1, -1, - 153, -1, -1, -1, -1, -1, -1, -1, -1, 162, - -1, 164, -1, -1, -1, -1, -1, -1, -1, 172, - 173, 23, -1, 25, 26, 27, 28, 29, 30, -1, - 32, -1, -1, 35, -1, 37, -1, -1, -1, 41, - 42, -1, 44, 45, 46, 47, -1, 49, 50, 51, - 52, 53, 54, 55, 56, -1, 58, -1, 60, 61, - 62, 63, 64, -1, -1, 67, -1, -1, -1, 71, - -1, 73, 74, -1, 76, 77, 78, 79, 80, 81, - -1, 83, 84, 85, 86, 87, 88, -1, -1, 91, - -1, -1, 94, -1, -1, -1, -1, 99, 100, -1, - 102, 103, -1, 105, 106, -1, -1, -1, 110, 111, - 112, 113, 114, 115, -1, 117, 118, 119, 120, 121, - 122, 123, -1, 125, 126, -1, 128, 129, 130, 131, - 132, 133, 134, 135, 136, -1, 138, 139, 140, 141, - -1, -1, -1, 145, -1, -1, 148, -1, -1, 151, - 152, -1, -1, 155, 156, 157, 158, -1, -1, 161, - -1, 163, -1, 165, 166, 167, 168, 169, 170, 171, - -1, -1, 174 + -1, 182, -1, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, -1, -1, -1, -1, -1, -1, -1, + 201, 202, 203, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, -1, -1, -1, -1, -1, -1, -1, + 201, 202, 182, -1, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 5, -1, -1, -1, -1, -1, + -1, 201, 202, 185, 186, 187, 188, 189, 190, 191, + 192, 193, -1, -1, -1, -1, -1, -1, -1, 201, + 202, 32, -1, 34, -1, -1, -1, -1, -1, 40, + 41, -1, -1, 44, -1, -1, 186, 187, 188, 189, + 190, 191, 192, 193, -1, -1, -1, 58, -1, 60, + -1, 201, 202, -1, -1, 66, 67, -1, 69, -1, + -1, -1, 73, -1, -1, 76, -1, -1, -1, -1, + -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, + 5, -1, -1, 94, -1, 96, 97, 98, 99, -1, + -1, 102, -1, -1, 105, -1, -1, -1, 109, -1, + -1, -1, -1, -1, -1, -1, -1, 32, -1, 34, + -1, -1, -1, -1, -1, 40, -1, -1, -1, 44, + -1, -1, -1, -1, -1, -1, -1, 138, -1, -1, + -1, -1, 143, 144, 145, 60, -1, 148, -1, 150, + -1, 66, 67, 154, 69, -1, -1, -1, 73, -1, + -1, 76, 163, -1, 165, -1, -1, -1, 83, -1, + -1, -1, 173, 174, -1, -1, 5, -1, -1, 94, + -1, 96, 97, 98, -1, -1, -1, -1, -1, -1, + 105, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 32, -1, 34, -1, -1, -1, -1, + -1, 40, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 138, -1, -1, -1, -1, 143, 144, + 145, 60, -1, 148, -1, 150, -1, 66, 67, 154, + -1, -1, -1, -1, 73, -1, -1, 76, 163, -1, + 165, -1, -1, -1, 83, -1, -1, -1, 173, 174, + -1, -1, -1, -1, -1, -1, -1, 96, 97, 98, + -1, -1, -1, -1, -1, -1, 105, -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, 143, 144, 145, -1, -1, 148, + -1, -1, -1, -1, -1, 154, -1, -1, -1, -1, + -1, -1, -1, -1, 163, -1, 165, -1, -1, -1, + -1, -1, -1, -1, 173, 174, 24, -1, 26, 27, + 28, 29, 30, 31, -1, 33, -1, -1, 36, -1, + 38, -1, -1, -1, 42, 43, -1, 45, 46, 47, + 48, -1, 50, 51, 52, 53, 54, 55, 56, 57, + -1, 59, -1, 61, 62, 63, 64, 65, -1, -1, + 68, -1, -1, -1, 72, -1, 74, 75, -1, 77, + 78, 79, 80, 81, 82, -1, 84, 85, 86, 87, + 88, 89, -1, -1, 92, -1, -1, 95, -1, -1, + -1, -1, 100, 101, -1, 103, 104, -1, 106, 107, + -1, -1, -1, 111, 112, 113, 114, 115, 116, -1, + 118, 119, 120, 121, 122, 123, 124, -1, 126, 127, + -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, + -1, 139, 140, 141, 142, -1, -1, -1, 146, -1, + -1, 149, -1, -1, 152, 153, -1, -1, 156, 157, + 158, 159, -1, -1, 162, -1, 164, -1, 166, 167, + 168, 169, 170, 171, 172, -1, -1, 175 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 yystos[] = { - 0, 210, 211, 0, 4, 31, 33, 39, 40, 43, - 48, 57, 59, 65, 66, 68, 72, 75, 82, 89, - 93, 95, 96, 97, 98, 104, 109, 137, 142, 143, - 144, 147, 149, 153, 162, 164, 172, 173, 201, 215, - 216, 217, 218, 219, 222, 223, 229, 230, 241, 255, - 259, 261, 262, 263, 264, 265, 268, 269, 272, 274, - 275, 276, 277, 279, 280, 281, 282, 283, 285, 287, - 305, 306, 307, 308, 3, 4, 206, 3, 4, 3, - 4, 257, 95, 260, 8, 3, 4, 260, 3, 206, - 260, 261, 3, 257, 3, 257, 261, 23, 25, 26, - 27, 28, 29, 30, 32, 35, 37, 41, 42, 44, - 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, - 56, 58, 60, 61, 62, 63, 64, 67, 71, 73, - 74, 76, 77, 78, 79, 80, 81, 83, 84, 85, - 86, 87, 88, 91, 94, 99, 100, 102, 103, 105, - 106, 110, 111, 112, 113, 114, 115, 117, 118, 119, - 120, 121, 122, 123, 125, 126, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 138, 139, 140, 141, 145, - 148, 151, 152, 155, 156, 157, 158, 161, 163, 165, - 166, 167, 168, 169, 170, 171, 174, 231, 233, 304, - 205, 212, 212, 160, 65, 101, 108, 153, 162, 221, - 241, 262, 268, 274, 278, 285, 305, 308, 205, 205, - 203, 203, 205, 203, 205, 214, 205, 182, 273, 203, - 286, 287, 286, 286, 3, 4, 38, 70, 124, 150, - 190, 206, 235, 258, 288, 289, 302, 241, 305, 306, - 308, 286, 205, 8, 203, 205, 306, 203, 154, 203, - 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, - 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, - 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, - 206, 206, 206, 180, 202, 12, 90, 215, 220, 223, - 262, 264, 265, 276, 277, 280, 204, 229, 230, 3, - 3, 3, 4, 3, 3, 203, 302, 266, 211, 127, - 270, 274, 3, 4, 203, 213, 284, 288, 288, 208, - 201, 206, 228, 286, 207, 238, 239, 240, 258, 207, - 248, 206, 251, 8, 8, 11, 234, 258, 3, 5, - 6, 7, 8, 9, 10, 69, 116, 146, 159, 185, - 188, 189, 190, 193, 194, 206, 244, 245, 246, 244, - 247, 8, 8, 232, 247, 246, 8, 8, 246, 8, - 246, 244, 227, 230, 285, 246, 242, 243, 244, 8, - 304, 8, 246, 306, 242, 244, 306, 175, 176, 177, - 178, 179, 303, 306, 306, 234, 5, 6, 309, 8, - 306, 233, 201, 206, 205, 203, 214, 285, 204, 229, - 267, 204, 182, 107, 229, 253, 271, 205, 203, 213, - 204, 215, 230, 283, 288, 207, 247, 190, 202, 244, - 224, 225, 226, 227, 204, 180, 208, 204, 229, 249, - 253, 204, 230, 250, 253, 207, 207, 207, 206, 244, - 244, 244, 244, 244, 244, 244, 285, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 181, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 200, 201, 180, - 207, 207, 207, 180, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 285, 190, 206, 228, 235, 258, - 294, 296, 297, 207, 180, 207, 207, 207, 207, 180, - 207, 207, 207, 207, 207, 207, 207, 207, 200, 207, - 207, 207, 233, 8, 212, 288, 298, 214, 277, 182, - 285, 305, 205, 204, 230, 254, 255, 204, 219, 204, - 214, 202, 202, 207, 180, 240, 246, 285, 308, 207, - 205, 205, 285, 207, 190, 206, 228, 235, 290, 292, - 293, 244, 244, 3, 244, 244, 244, 244, 244, 244, - 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, - 244, 3, 244, 246, 8, 296, 284, 190, 224, 235, - 295, 296, 206, 228, 243, 246, 5, 207, 204, 180, - 288, 205, 213, 214, 22, 227, 294, 300, 301, 205, - 256, 258, 292, 284, 190, 224, 235, 291, 292, 207, - 206, 228, 182, 202, 296, 284, 207, 296, 207, 224, - 207, 214, 288, 204, 182, 299, 180, 205, 203, 207, - 292, 284, 207, 296, 207, 244, 224, 244, 296, 207, - 214, 247, 300, 236, 296, 207, 37, 50, 204, 237, - 246, 182, 182, 205, 252, 253, 252, 205 + 0, 211, 212, 0, 4, 5, 32, 34, 40, 41, + 44, 49, 58, 60, 66, 67, 69, 73, 76, 83, + 90, 94, 96, 97, 98, 99, 105, 110, 138, 143, + 144, 145, 148, 150, 154, 163, 165, 173, 174, 202, + 216, 217, 218, 219, 220, 223, 224, 230, 231, 242, + 256, 260, 262, 263, 264, 265, 266, 269, 270, 273, + 275, 276, 277, 278, 280, 281, 282, 283, 284, 286, + 288, 306, 307, 308, 309, 3, 5, 207, 3, 5, + 3, 5, 258, 96, 261, 9, 3, 5, 261, 3, + 207, 261, 262, 3, 258, 3, 258, 262, 24, 26, + 27, 28, 29, 30, 31, 33, 36, 38, 42, 43, + 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, + 56, 57, 59, 61, 62, 63, 64, 65, 68, 72, + 74, 75, 77, 78, 79, 80, 81, 82, 84, 85, + 86, 87, 88, 89, 92, 95, 100, 101, 103, 104, + 106, 107, 111, 112, 113, 114, 115, 116, 118, 119, + 120, 121, 122, 123, 124, 126, 127, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 139, 140, 141, 142, + 146, 149, 152, 153, 156, 157, 158, 159, 162, 164, + 166, 167, 168, 169, 170, 171, 172, 175, 232, 234, + 305, 206, 213, 213, 161, 66, 102, 109, 154, 163, + 222, 242, 263, 269, 275, 279, 286, 306, 309, 206, + 206, 204, 204, 206, 204, 206, 215, 206, 183, 274, + 204, 287, 288, 287, 287, 3, 5, 39, 71, 125, + 151, 191, 207, 236, 259, 289, 290, 303, 242, 306, + 307, 309, 287, 206, 9, 204, 206, 307, 204, 155, + 204, 207, 207, 207, 207, 207, 207, 207, 207, 207, + 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, + 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, + 207, 207, 207, 207, 181, 203, 13, 91, 216, 221, + 224, 263, 265, 266, 277, 278, 281, 205, 230, 231, + 3, 3, 3, 5, 3, 3, 204, 303, 267, 212, + 128, 271, 275, 3, 5, 204, 214, 285, 289, 289, + 209, 202, 207, 229, 287, 208, 239, 240, 241, 259, + 208, 249, 207, 252, 9, 9, 12, 235, 259, 3, + 6, 7, 8, 9, 10, 11, 70, 117, 147, 160, + 186, 189, 190, 191, 194, 195, 207, 245, 246, 247, + 245, 248, 9, 9, 233, 248, 247, 9, 9, 247, + 9, 247, 245, 228, 231, 286, 247, 243, 244, 245, + 9, 305, 9, 247, 307, 243, 245, 307, 176, 177, + 178, 179, 180, 304, 307, 307, 235, 6, 7, 310, + 9, 307, 234, 202, 207, 206, 204, 215, 286, 205, + 230, 268, 205, 183, 108, 230, 254, 272, 206, 204, + 214, 205, 216, 231, 284, 289, 208, 248, 191, 203, + 245, 225, 226, 227, 228, 205, 181, 209, 205, 230, + 250, 254, 205, 231, 251, 254, 208, 208, 208, 207, + 245, 245, 245, 245, 245, 245, 245, 286, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 182, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 201, 202, + 181, 208, 208, 208, 181, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 286, 191, 207, 229, 236, + 259, 295, 297, 298, 208, 181, 208, 208, 208, 208, + 181, 208, 208, 208, 208, 208, 208, 208, 208, 201, + 208, 208, 208, 234, 9, 213, 289, 299, 215, 278, + 183, 286, 306, 206, 205, 231, 255, 256, 205, 220, + 205, 215, 203, 203, 208, 181, 241, 247, 286, 309, + 208, 206, 206, 286, 208, 191, 207, 229, 236, 291, + 293, 294, 245, 245, 3, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 3, 245, 247, 9, 297, 285, 191, 225, + 236, 296, 297, 207, 229, 244, 247, 6, 208, 205, + 181, 289, 206, 214, 215, 23, 228, 295, 301, 302, + 206, 257, 259, 293, 285, 191, 225, 236, 292, 293, + 208, 207, 229, 183, 203, 297, 285, 208, 297, 208, + 225, 208, 215, 289, 205, 183, 300, 181, 206, 204, + 208, 293, 285, 208, 297, 208, 245, 225, 245, 297, + 208, 215, 248, 301, 237, 297, 208, 38, 51, 205, + 238, 247, 183, 183, 206, 253, 254, 253, 206 }; #define yyerrok (yyerrstatus = 0) @@ -2071,72 +2096,35 @@ #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(Token, Value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { \ - yychar = (Token); \ - yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ - YYPOPSTACK (1); \ - goto yybackup; \ - } \ - else \ - { \ +#define YYBACKUP(Token, Value) \ +do \ + if (yychar == YYEMPTY) \ + { \ + yychar = (Token); \ + yylval = (Value); \ + YYPOPSTACK (yylen); \ + yystate = *yyssp; \ + goto yybackup; \ + } \ + else \ + { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (YYID (0)) - +/* Error token number */ #define YYTERROR 1 #define YYERRCODE 256 -/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. - If N is 0, then set CURRENT to the empty location which ends - the previous symbol: RHS[0] (always defined). */ - -#define YYRHSLOC(Rhs, K) ((Rhs)[K]) -#ifndef YYLLOC_DEFAULT -# define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (YYID (N)) \ - { \ - (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ - (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ - (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ - (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ - } \ - else \ - { \ - (Current).first_line = (Current).last_line = \ - YYRHSLOC (Rhs, 0).last_line; \ - (Current).first_column = (Current).last_column = \ - YYRHSLOC (Rhs, 0).last_column; \ - } \ - while (YYID (0)) -#endif - - -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ - +/* This macro is provided for backward compatibility. */ #ifndef YY_LOCATION_PRINT -# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif /* YYLEX -- calling `yylex' with the right arguments. */ - #ifdef YYLEX_PARAM # define YYLEX yylex (YYLEX_PARAM) #else @@ -2186,6 +2174,8 @@ YYSTYPE const * const yyvaluep; #endif { + FILE *yyo = yyoutput; + YYUSE (yyo); if (!yyvaluep) return; # ifdef YYPRINT @@ -2194,11 +2184,7 @@ # else YYUSE (yyoutput); # endif - switch (yytype) - { - default: - break; - } + YYUSE (yytype); } @@ -2323,7 +2309,6 @@ # define YYMAXDEPTH 10000 #endif - #if YYERROR_VERBOSE @@ -2426,115 +2411,145 @@ } # endif -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) { - int yyn = yypact[yystate]; + YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = YY_NULL; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else + /* There are many possibilities here to consider: + - Assume YYFAIL is not used. It's too flawed to consider. See + <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html> + for details. YYERROR is fine as it does not invoke this + function. + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) + { + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - - if (yysize_overflow) - return YYSIZE_MAXIMUM; - - if (yyresult) - { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } - } - return yysize; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + { + YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + } + } } + + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } + + { + YYSIZE_T yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; + } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; } #endif /* YYERROR_VERBOSE */ - /*-----------------------------------------------. | Release the memory associated to this symbol. | @@ -2559,44 +2574,34 @@ yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); - switch (yytype) - { - - default: - break; - } + YYUSE (yytype); } -/* Prevent warnings from -Wmissing-prototypes. */ -#ifdef YYPARSE_PARAM -#if defined __STDC__ || defined __cplusplus -int yyparse (void *YYPARSE_PARAM); -#else -int yyparse (); -#endif -#else /* ! YYPARSE_PARAM */ -#if defined __STDC__ || defined __cplusplus -int yyparse (void); -#else -int yyparse (); -#endif -#endif /* ! YYPARSE_PARAM */ + /* The lookahead symbol. */ int yychar; + +#ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN +# define YY_IGNORE_MAYBE_UNINITIALIZED_END +#endif +#ifndef YY_INITIAL_VALUE +# define YY_INITIAL_VALUE(Value) /* Nothing. */ +#endif + /* The semantic value of the lookahead symbol. */ -YYSTYPE yylval; +YYSTYPE yylval YY_INITIAL_VALUE(yyval_default); /* Number of syntax errors so far. */ int yynerrs; - -/*-------------------------. -| yyparse or yypush_parse. | -`-------------------------*/ +/*----------. +| yyparse. | +`----------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ @@ -2620,8 +2625,6 @@ #endif #endif { - - int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; @@ -2630,7 +2633,7 @@ `yyss': related to states. `yyvs': related to semantic values. - Refer to the stacks thru separate pointers, to allow yyoverflow + Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ @@ -2648,7 +2651,7 @@ int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ - int yytoken; + int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; @@ -2666,9 +2669,8 @@ Keep to zero when no symbol should be popped. */ int yylen = 0; - yytoken = 0; - yyss = yyssa; - yyvs = yyvsa; + yyssp = yyss = yyssa; + yyvsp = yyvs = yyvsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); @@ -2677,14 +2679,6 @@ yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - yyssp = yyss; - yyvsp = yyvs; - goto yysetstate; /*------------------------------------------------------------. @@ -2776,7 +2770,7 @@ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) + if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ @@ -2807,8 +2801,8 @@ yyn = yytable[yyn]; if (yyn <= 0) { - if (yyn == 0 || yyn == YYTABLE_NINF) - goto yyerrlab; + if (yytable_value_is_error (yyn)) + goto yyerrlab; yyn = -yyn; goto yyreduce; } @@ -2825,7 +2819,9 @@ yychar = YYEMPTY; yystate = yyn; + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END goto yynewstate; @@ -2862,9 +2858,8 @@ switch (yyn) { case 2: - -/* Line 1464 of yacc.c */ -#line 331 "parser.y" +/* Line 1787 of yacc.c */ +#line 308 "parser.y" { fix_incomplete(); check_statements((yyvsp[(1) - (1)].stmt_list), FALSE); check_all_user_types((yyvsp[(1) - (1)].stmt_list)); @@ -2876,1225 +2871,1063 @@ write_regscript((yyvsp[(1) - (1)].stmt_list)); write_dlldata((yyvsp[(1) - (1)].stmt_list)); write_local_stubs((yyvsp[(1) - (1)].stmt_list)); - ;} + } break; case 3: - -/* Line 1464 of yacc.c */ -#line 345 "parser.y" - { (yyval.stmt_list) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 322 "parser.y" + { (yyval.stmt_list) = NULL; } break; case 4: - -/* Line 1464 of yacc.c */ -#line 347 "parser.y" - { (yyval.stmt_list) = append_statements((yyvsp[(1) - (5)].stmt_list), (yyvsp[(4) - (5)].stmt_list)); ;} +/* Line 1787 of yacc.c */ +#line 324 "parser.y" + { (yyval.stmt_list) = append_statements((yyvsp[(1) - (5)].stmt_list), (yyvsp[(4) - (5)].stmt_list)); } break; case 5: - -/* Line 1464 of yacc.c */ -#line 348 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_reference((yyvsp[(2) - (2)].type))); ;} +/* Line 1787 of yacc.c */ +#line 325 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_reference((yyvsp[(2) - (2)].type))); } break; case 6: - -/* Line 1464 of yacc.c */ -#line 349 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_type_decl((yyvsp[(2) - (2)].type))); ;} +/* Line 1787 of yacc.c */ +#line 326 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_type_decl((yyvsp[(2) - (2)].type))); } break; case 7: - -/* Line 1464 of yacc.c */ -#line 350 "parser.y" +/* Line 1787 of yacc.c */ +#line 327 "parser.y" { (yyval.stmt_list) = (yyvsp[(1) - (3)].stmt_list); reg_type((yyvsp[(2) - (3)].type), (yyvsp[(2) - (3)].type)->name, 0); - ;} + } break; case 8: - -/* Line 1464 of yacc.c */ -#line 353 "parser.y" +/* Line 1787 of yacc.c */ +#line 330 "parser.y" { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_type_decl((yyvsp[(2) - (2)].type))); reg_type((yyvsp[(2) - (2)].type), (yyvsp[(2) - (2)].type)->name, 0); - ;} + } break; case 9: - -/* Line 1464 of yacc.c */ -#line 356 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_module((yyvsp[(2) - (2)].type))); ;} +/* Line 1787 of yacc.c */ +#line 333 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_module((yyvsp[(2) - (2)].type))); } break; case 10: - -/* Line 1464 of yacc.c */ -#line 357 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_library((yyvsp[(2) - (2)].typelib))); ;} +/* Line 1787 of yacc.c */ +#line 334 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_library((yyvsp[(2) - (2)].typelib))); } break; case 11: - -/* Line 1464 of yacc.c */ -#line 358 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), (yyvsp[(2) - (2)].statement)); ;} +/* Line 1787 of yacc.c */ +#line 335 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), (yyvsp[(2) - (2)].statement)); } break; case 12: - -/* Line 1464 of yacc.c */ -#line 361 "parser.y" - { (yyval.stmt_list) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 338 "parser.y" + { (yyval.stmt_list) = NULL; } break; case 13: - -/* Line 1464 of yacc.c */ -#line 362 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_reference((yyvsp[(2) - (2)].type))); ;} +/* Line 1787 of yacc.c */ +#line 339 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_reference((yyvsp[(2) - (2)].type))); } break; case 14: - -/* Line 1464 of yacc.c */ -#line 363 "parser.y" - { (yyval.stmt_list) = append_statements((yyvsp[(1) - (5)].stmt_list), (yyvsp[(4) - (5)].stmt_list)); ;} +/* Line 1787 of yacc.c */ +#line 341 "parser.y" + { (yyval.stmt_list) = append_statements((yyvsp[(1) - (5)].stmt_list), (yyvsp[(4) - (5)].stmt_list)); } break; case 15: - -/* Line 1464 of yacc.c */ -#line 364 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_type_decl((yyvsp[(2) - (2)].type))); ;} +/* Line 1787 of yacc.c */ +#line 342 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_type_decl((yyvsp[(2) - (2)].type))); } break; case 16: - -/* Line 1464 of yacc.c */ -#line 365 "parser.y" - { (yyval.stmt_list) = (yyvsp[(1) - (3)].stmt_list); reg_type((yyvsp[(2) - (3)].type), (yyvsp[(2) - (3)].type)->name, 0); ;} +/* Line 1787 of yacc.c */ +#line 343 "parser.y" + { (yyval.stmt_list) = (yyvsp[(1) - (3)].stmt_list); reg_type((yyvsp[(2) - (3)].type), (yyvsp[(2) - (3)].type)->name, 0); } break; case 17: - -/* Line 1464 of yacc.c */ -#line 366 "parser.y" +/* Line 1787 of yacc.c */ +#line 344 "parser.y" { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_type_decl((yyvsp[(2) - (2)].type))); reg_type((yyvsp[(2) - (2)].type), (yyvsp[(2) - (2)].type)->name, 0); - ;} + } break; case 18: - -/* Line 1464 of yacc.c */ -#line 369 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_module((yyvsp[(2) - (2)].type))); ;} +/* Line 1787 of yacc.c */ +#line 347 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_module((yyvsp[(2) - (2)].type))); } break; case 19: - -/* Line 1464 of yacc.c */ -#line 370 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), (yyvsp[(2) - (2)].statement)); ;} +/* Line 1787 of yacc.c */ +#line 348 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), (yyvsp[(2) - (2)].statement)); } break; case 20: - -/* Line 1464 of yacc.c */ -#line 371 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_importlib((yyvsp[(2) - (2)].str))); ;} +/* Line 1787 of yacc.c */ +#line 349 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_importlib((yyvsp[(2) - (2)].str))); } break; case 21: - -/* Line 1464 of yacc.c */ -#line 372 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_library((yyvsp[(2) - (2)].typelib))); ;} +/* Line 1787 of yacc.c */ +#line 350 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), make_statement_library((yyvsp[(2) - (2)].typelib))); } break; case 22: - -/* Line 1464 of yacc.c */ -#line 375 "parser.y" - { (yyval.stmt_list) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 353 "parser.y" + { (yyval.stmt_list) = NULL; } break; case 23: - -/* Line 1464 of yacc.c */ -#line 376 "parser.y" - { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), (yyvsp[(2) - (2)].statement)); ;} +/* Line 1787 of yacc.c */ +#line 354 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[(1) - (2)].stmt_list), (yyvsp[(2) - (2)].statement)); } break; case 26: - -/* Line 1464 of yacc.c */ -#line 384 "parser.y" - { (yyval.statement) = make_statement_cppquote((yyvsp[(1) - (1)].str)); ;} +/* Line 1787 of yacc.c */ +#line 362 "parser.y" + { (yyval.statement) = make_statement_cppquote((yyvsp[(1) - (1)].str)); } break; case 27: - -/* Line 1464 of yacc.c */ -#line 385 "parser.y" - { (yyval.statement) = make_statement_type_decl((yyvsp[(1) - (2)].type)); ;} +/* Line 1787 of yacc.c */ +#line 363 "parser.y" + { (yyval.statement) = make_statement_type_decl((yyvsp[(1) - (2)].type)); } break; case 28: - -/* Line 1464 of yacc.c */ -#line 386 "parser.y" - { (yyval.statement) = make_statement_declaration((yyvsp[(1) - (2)].var)); ;} +/* Line 1787 of yacc.c */ +#line 364 "parser.y" + { (yyval.statement) = make_statement_declaration((yyvsp[(1) - (2)].var)); } break; case 29: - -/* Line 1464 of yacc.c */ -#line 387 "parser.y" - { (yyval.statement) = make_statement_import((yyvsp[(1) - (1)].str)); ;} +/* Line 1787 of yacc.c */ +#line 365 "parser.y" + { (yyval.statement) = make_statement_import((yyvsp[(1) - (1)].str)); } break; case 30: - -/* Line 1464 of yacc.c */ -#line 388 "parser.y" - { (yyval.statement) = (yyvsp[(1) - (2)].statement); ;} +/* Line 1787 of yacc.c */ +#line 366 "parser.y" + { (yyval.statement) = (yyvsp[(1) - (2)].statement); } break; - case 32: - -/* Line 1464 of yacc.c */ -#line 393 "parser.y" - { (yyval.type) = type_new_enum((yyvsp[(2) - (2)].str), FALSE, NULL); ;} + case 31: +/* Line 1787 of yacc.c */ +#line 367 "parser.y" + { (yyval.statement) = make_statement_pragma((yyvsp[(1) - (1)].str)); } break; - case 34: - -/* Line 1464 of yacc.c */ -#line 395 "parser.y" - { (yyval.type) = type_new_struct((yyvsp[(2) - (2)].str), FALSE, NULL); ;} + case 33: +/* Line 1787 of yacc.c */ +#line 372 "parser.y" + { (yyval.type) = type_new_enum((yyvsp[(2) - (2)].str), FALSE, NULL); } break; - case 36: - -/* Line 1464 of yacc.c */ -#line 397 "parser.y" - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (2)].str), FALSE, NULL); ;} + case 35: +/* Line 1787 of yacc.c */ +#line 374 "parser.y" + { (yyval.type) = type_new_struct((yyvsp[(2) - (2)].str), FALSE, NULL); } break; case 37: - -/* Line 1464 of yacc.c */ -#line 398 "parser.y" - { (yyval.type) = (yyvsp[(2) - (2)].type); (yyval.type)->attrs = check_enum_attrs((yyvsp[(1) - (2)].attr_list)); ;} +/* Line 1787 of yacc.c */ +#line 376 "parser.y" + { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (2)].str), FALSE, NULL); } break; case 38: - -/* Line 1464 of yacc.c */ -#line 399 "parser.y" - { (yyval.type) = (yyvsp[(2) - (2)].type); (yyval.type)->attrs = check_struct_attrs((yyvsp[(1) - (2)].attr_list)); ;} +/* Line 1787 of yacc.c */ +#line 377 "parser.y" + { (yyval.type) = (yyvsp[(2) - (2)].type); (yyval.type)->attrs = check_enum_attrs((yyvsp[(1) - (2)].attr_list)); } break; case 39: - -/* Line 1464 of yacc.c */ -#line 400 "parser.y" - { (yyval.type) = (yyvsp[(2) - (2)].type); (yyval.type)->attrs = check_union_attrs((yyvsp[(1) - (2)].attr_list)); ;} +/* Line 1787 of yacc.c */ +#line 378 "parser.y" + { (yyval.type) = (yyvsp[(2) - (2)].type); (yyval.type)->attrs = check_struct_attrs((yyvsp[(1) - (2)].attr_list)); } break; case 40: - -/* Line 1464 of yacc.c */ -#line 403 "parser.y" - { (yyval.str) = (yyvsp[(3) - (4)].str); ;} +/* Line 1787 of yacc.c */ +#line 379 "parser.y" + { (yyval.type) = (yyvsp[(2) - (2)].type); (yyval.type)->attrs = check_union_attrs((yyvsp[(1) - (2)].attr_list)); } break; case 41: +/* Line 1787 of yacc.c */ +#line 382 "parser.y" + { (yyval.str) = (yyvsp[(3) - (4)].str); } + break; -/* Line 1464 of yacc.c */ -#line 405 "parser.y" + case 42: +/* Line 1787 of yacc.c */ +#line 384 "parser.y" { assert(yychar == YYEMPTY); (yyval.import) = xmalloc(sizeof(struct _import_t)); (yyval.import)->name = (yyvsp[(2) - (3)].str); (yyval.import)->import_performed = do_import((yyvsp[(2) - (3)].str)); if (!(yyval.import)->import_performed) yychar = aEOF; - ;} - break; - - case 42: - -/* Line 1464 of yacc.c */ -#line 413 "parser.y" - { (yyval.str) = (yyvsp[(1) - (3)].import)->name; - if ((yyvsp[(1) - (3)].import)->import_performed) pop_import(); - free((yyvsp[(1) - (3)].import)); - ;} + } break; case 43: - -/* Line 1464 of yacc.c */ -#line 420 "parser.y" - { (yyval.str) = (yyvsp[(3) - (5)].str); if(!parse_only) add_importlib((yyvsp[(3) - (5)].str)); ;} +/* Line 1787 of yacc.c */ +#line 392 "parser.y" + { (yyval.str) = (yyvsp[(1) - (3)].import)->name; + if ((yyvsp[(1) - (3)].import)->import_performed) pop_import(); + free((yyvsp[(1) - (3)].import)); + } break; case 44: - -/* Line 1464 of yacc.c */ -#line 423 "parser.y" - { (yyval.str) = (yyvsp[(2) - (2)].str); ;} +/* Line 1787 of yacc.c */ +#line 399 "parser.y" + { (yyval.str) = (yyvsp[(3) - (5)].str); if(!parse_only) add_importlib((yyvsp[(3) - (5)].str)); } break; case 45: - -/* Line 1464 of yacc.c */ -#line 425 "parser.y" - { (yyval.typelib) = make_library((yyvsp[(2) - (3)].str), check_library_attrs((yyvsp[(2) - (3)].str), (yyvsp[(1) - (3)].attr_list))); - if (!parse_only) start_typelib((yyval.typelib)); - ;} +/* Line 1787 of yacc.c */ +#line 402 "parser.y" + { (yyval.str) = (yyvsp[(2) - (2)].str); } break; case 46: - -/* Line 1464 of yacc.c */ -#line 430 "parser.y" - { (yyval.typelib) = (yyvsp[(1) - (4)].typelib); - (yyval.typelib)->stmts = (yyvsp[(2) - (4)].stmt_list); - if (!parse_only) end_typelib(); - ;} +/* Line 1787 of yacc.c */ +#line 404 "parser.y" + { (yyval.typelib) = make_library((yyvsp[(2) - (3)].str), check_library_attrs((yyvsp[(2) - (3)].str), (yyvsp[(1) - (3)].attr_list))); + if (!parse_only) start_typelib((yyval.typelib)); + } break; case 47: - -/* Line 1464 of yacc.c */ -#line 436 "parser.y" - { (yyval.var_list) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 409 "parser.y" + { (yyval.typelib) = (yyvsp[(1) - (4)].typelib); + (yyval.typelib)->stmts = (yyvsp[(2) - (4)].stmt_list); + if (!parse_only) end_typelib(); + } break; - case 49: - -/* Line 1464 of yacc.c */ -#line 440 "parser.y" - { check_arg_attrs((yyvsp[(1) - (1)].var)); (yyval.var_list) = append_var( NULL, (yyvsp[(1) - (1)].var) ); ;} + case 48: +/* Line 1787 of yacc.c */ +#line 415 "parser.y" + { (yyval.var_list) = NULL; } break; case 50: - -/* Line 1464 of yacc.c */ -#line 441 "parser.y" - { check_arg_attrs((yyvsp[(3) - (3)].var)); (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(3) - (3)].var) ); ;} +/* Line 1787 of yacc.c */ +#line 419 "parser.y" + { check_arg_attrs((yyvsp[(1) - (1)].var)); (yyval.var_list) = append_var( NULL, (yyvsp[(1) - (1)].var) ); } break; - case 52: - -/* Line 1464 of yacc.c */ -#line 445 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), make_var(strdup("...")) ); ;} + case 51: +/* Line 1787 of yacc.c */ +#line 420 "parser.y" + { check_arg_attrs((yyvsp[(3) - (3)].var)); (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(3) - (3)].var) ); } break; case 53: +/* Line 1787 of yacc.c */ +#line 424 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), make_var(strdup("...")) ); } + break; -/* Line 1464 of yacc.c */ -#line 449 "parser.y" + case 54: +/* Line 1787 of yacc.c */ +#line 428 "parser.y" { if ((yyvsp[(2) - (3)].declspec)->stgclass != STG_NONE && (yyvsp[(2) - (3)].declspec)->stgclass != STG_REGISTER) error_loc("invalid storage class for function parameter\n"); (yyval.var) = declare_var((yyvsp[(1) - (3)].attr_list), (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), TRUE); free((yyvsp[(2) - (3)].declspec)); free((yyvsp[(3) - (3)].declarator)); - ;} + } break; - case 54: - -/* Line 1464 of yacc.c */ -#line 454 "parser.y" + case 55: +/* Line 1787 of yacc.c */ +#line 433 "parser.y" { if ((yyvsp[(1) - (2)].declspec)->stgclass != STG_NONE && (yyvsp[(1) - (2)].declspec)->stgclass != STG_REGISTER) error_loc("invalid storage class for function parameter\n"); (yyval.var) = declare_var(NULL, (yyvsp[(1) - (2)].declspec), (yyvsp[(2) - (2)].declarator), TRUE); free((yyvsp[(1) - (2)].declspec)); free((yyvsp[(2) - (2)].declarator)); - ;} - break; - - case 55: - -/* Line 1464 of yacc.c */ -#line 461 "parser.y" - { (yyval.expr) = (yyvsp[(2) - (3)].expr); - if (!(yyval.expr)->is_const) - error_loc("array dimension is not an integer constant\n"); - ;} + } break; case 56: - -/* Line 1464 of yacc.c */ -#line 465 "parser.y" - { (yyval.expr) = make_expr(EXPR_VOID); ;} +/* Line 1787 of yacc.c */ +#line 440 "parser.y" + { (yyval.expr) = (yyvsp[(2) - (3)].expr); + if (!(yyval.expr)->is_const) + error_loc("array dimension is not an integer constant\n"); + } break; case 57: - -/* Line 1464 of yacc.c */ -#line 466 "parser.y" - { (yyval.expr) = make_expr(EXPR_VOID); ;} +/* Line 1787 of yacc.c */ +#line 444 "parser.y" + { (yyval.expr) = make_expr(EXPR_VOID); } break; case 58: - -/* Line 1464 of yacc.c */ -#line 469 "parser.y" - { (yyval.attr_list) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 445 "parser.y" + { (yyval.expr) = make_expr(EXPR_VOID); } break; - case 60: - -/* Line 1464 of yacc.c */ -#line 474 "parser.y" - { (yyval.attr_list) = (yyvsp[(2) - (3)].attr_list); ;} + case 59: +/* Line 1787 of yacc.c */ +#line 448 "parser.y" + { (yyval.attr_list) = NULL; } break; case 61: - -/* Line 1464 of yacc.c */ -#line 477 "parser.y" - { (yyval.attr_list) = append_attr( NULL, (yyvsp[(1) - (1)].attr) ); ;} +/* Line 1787 of yacc.c */ +#line 453 "parser.y" + { (yyval.attr_list) = (yyvsp[(2) - (3)].attr_list); } break; case 62: - -/* Line 1464 of yacc.c */ -#line 478 "parser.y" - { (yyval.attr_list) = append_attr( (yyvsp[(1) - (3)].attr_list), (yyvsp[(3) - (3)].attr) ); ;} +/* Line 1787 of yacc.c */ +#line 456 "parser.y" + { (yyval.attr_list) = append_attr( NULL, (yyvsp[(1) - (1)].attr) ); } break; case 63: - -/* Line 1464 of yacc.c */ -#line 479 "parser.y" - { (yyval.attr_list) = append_attr( (yyvsp[(1) - (4)].attr_list), (yyvsp[(4) - (4)].attr) ); ;} +/* Line 1787 of yacc.c */ +#line 457 "parser.y" + { (yyval.attr_list) = append_attr( (yyvsp[(1) - (3)].attr_list), (yyvsp[(3) - (3)].attr) ); } break; case 64: - -/* Line 1464 of yacc.c */ -#line 482 "parser.y" - { (yyval.str_list) = append_str( NULL, (yyvsp[(1) - (1)].str) ); ;} +/* Line 1787 of yacc.c */ +#line 458 "parser.y" + { (yyval.attr_list) = append_attr( (yyvsp[(1) - (4)].attr_list), (yyvsp[(4) - (4)].attr) ); } break; case 65: - -/* Line 1464 of yacc.c */ -#line 483 "parser.y" - { (yyval.str_list) = append_str( (yyvsp[(1) - (3)].str_list), (yyvsp[(3) - (3)].str) ); ;} +/* Line 1787 of yacc.c */ +#line 461 "parser.y" + { (yyval.str_list) = append_str( NULL, (yyvsp[(1) - (1)].str) ); } break; case 66: - -/* Line 1464 of yacc.c */ -#line 486 "parser.y" - { (yyval.attr) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 462 "parser.y" + { (yyval.str_list) = append_str( (yyvsp[(1) - (3)].str_list), (yyvsp[(3) - (3)].str) ); } break; case 67: - -/* Line 1464 of yacc.c */ -#line 487 "parser.y" - { (yyval.attr) = make_attr(ATTR_AGGREGATABLE); ;} +/* Line 1787 of yacc.c */ +#line 465 "parser.y" + { (yyval.attr) = NULL; } break; case 68: - -/* Line 1464 of yacc.c */ -#line 488 "parser.y" - { (yyval.attr) = make_attrp(ATTR_ANNOTATION, (yyvsp[(3) - (4)].str)); ;} +/* Line 1787 of yacc.c */ +#line 466 "parser.y" + { (yyval.attr) = make_attr(ATTR_AGGREGATABLE); } break; case 69: - -/* Line 1464 of yacc.c */ -#line 489 "parser.y" - { (yyval.attr) = make_attr(ATTR_APPOBJECT); ;} +/* Line 1787 of yacc.c */ +#line 467 "parser.y" + { (yyval.attr) = make_attrp(ATTR_ANNOTATION, (yyvsp[(3) - (4)].str)); } break; case 70: - -/* Line 1464 of yacc.c */ -#line 490 "parser.y" - { (yyval.attr) = make_attr(ATTR_ASYNC); ;} +/* Line 1787 of yacc.c */ +#line 468 "parser.y" + { (yyval.attr) = make_attr(ATTR_APPOBJECT); } break; case 71: - -/* Line 1464 of yacc.c */ -#line 491 "parser.y" - { (yyval.attr) = make_attr(ATTR_AUTO_HANDLE); ;} +/* Line 1787 of yacc.c */ +#line 469 "parser.y" + { (yyval.attr) = make_attr(ATTR_ASYNC); } break; case 72: - -/* Line 1464 of yacc.c */ -#line 492 "parser.y" - { (yyval.attr) = make_attr(ATTR_BINDABLE); ;} +/* Line 1787 of yacc.c */ +#line 470 "parser.y" + { (yyval.attr) = make_attr(ATTR_AUTO_HANDLE); } break; case 73: - -/* Line 1464 of yacc.c */ -#line 493 "parser.y" - { (yyval.attr) = make_attr(ATTR_BROADCAST); ;} +/* Line 1787 of yacc.c */ +#line 471 "parser.y" + { (yyval.attr) = make_attr(ATTR_BINDABLE); } break; case 74: - -/* Line 1464 of yacc.c */ -#line 494 "parser.y" - { (yyval.attr) = make_attrp(ATTR_CALLAS, (yyvsp[(3) - (4)].var)); ;} +/* Line 1787 of yacc.c */ +#line 472 "parser.y" + { (yyval.attr) = make_attr(ATTR_BROADCAST); } break; case 75: - -/* Line 1464 of yacc.c */ -#line 495 "parser.y" - { (yyval.attr) = make_attrp(ATTR_CASE, (yyvsp[(3) - (4)].expr_list)); ;} +/* Line 1787 of yacc.c */ +#line 473 "parser.y" + { (yyval.attr) = make_attrp(ATTR_CALLAS, (yyvsp[(3) - (4)].var)); } break; case 76: - -/* Line 1464 of yacc.c */ -#line 496 "parser.y" - { (yyval.attr) = make_attr(ATTR_CODE); ;} +/* Line 1787 of yacc.c */ +#line 474 "parser.y" + { (yyval.attr) = make_attrp(ATTR_CASE, (yyvsp[(3) - (4)].expr_list)); } break; case 77: - -/* Line 1464 of yacc.c */ -#line 497 "parser.y" - { (yyval.attr) = make_attr(ATTR_COMMSTATUS); ;} +/* Line 1787 of yacc.c */ +#line 475 "parser.y" + { (yyval.attr) = make_attr(ATTR_CODE); } break; case 78: - -/* Line 1464 of yacc.c */ -#line 498 "parser.y" - { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); ;} +/* Line 1787 of yacc.c */ +#line 476 "parser.y" + { (yyval.attr) = make_attr(ATTR_COMMSTATUS); } break; case 79: - -/* Line 1464 of yacc.c */ -#line 499 "parser.y" - { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ ;} +/* Line 1787 of yacc.c */ +#line 477 "parser.y" + { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); } break; case 80: - -/* Line 1464 of yacc.c */ -#line 500 "parser.y" - { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ ;} +/* Line 1787 of yacc.c */ +#line 478 "parser.y" + { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ } break; case 81: - -/* Line 1464 of yacc.c */ -#line 501 "parser.y" - { (yyval.attr) = make_attr(ATTR_CONTROL); ;} +/* Line 1787 of yacc.c */ +#line 479 "parser.y" + { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ } break; case 82: - -/* Line 1464 of yacc.c */ -#line 502 "parser.y" - { (yyval.attr) = make_attr(ATTR_DECODE); ;} +/* Line 1787 of yacc.c */ +#line 480 "parser.y" + { (yyval.attr) = make_attr(ATTR_CONTROL); } break; case 83: - -/* Line 1464 of yacc.c */ -#line 503 "parser.y" - { (yyval.attr) = make_attr(ATTR_DEFAULT); ;} +/* Line 1787 of yacc.c */ +#line 481 "parser.y" + { (yyval.attr) = make_attr(ATTR_DECODE); } break; case 84: - -/* Line 1464 of yacc.c */ -#line 504 "parser.y" - { (yyval.attr) = make_attr(ATTR_DEFAULTBIND); ;} +/* Line 1787 of yacc.c */ +#line 482 "parser.y" + { (yyval.attr) = make_attr(ATTR_DEFAULT); } break; case 85: - -/* Line 1464 of yacc.c */ -#line 505 "parser.y" - { (yyval.attr) = make_attr(ATTR_DEFAULTCOLLELEM); ;} +/* Line 1787 of yacc.c */ +#line 483 "parser.y" + { (yyval.attr) = make_attr(ATTR_DEFAULTBIND); } break; case 86: - -/* Line 1464 of yacc.c */ -#line 506 "parser.y" - { (yyval.attr) = make_attrp(ATTR_DEFAULTVALUE, (yyvsp[(3) - (4)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 484 "parser.y" + { (yyval.attr) = make_attr(ATTR_DEFAULTCOLLELEM); } break; case 87: - -/* Line 1464 of yacc.c */ -#line 507 "parser.y" - { (yyval.attr) = make_attr(ATTR_DEFAULTVTABLE); ;} +/* Line 1787 of yacc.c */ +#line 485 "parser.y" + { (yyval.attr) = make_attrp(ATTR_DEFAULTVALUE, (yyvsp[(3) - (4)].expr)); } break; case 88: - -/* Line 1464 of yacc.c */ -#line 508 "parser.y" - { (yyval.attr) = make_attr(ATTR_DISABLECONSISTENCYCHECK); ;} +/* Line 1787 of yacc.c */ +#line 486 "parser.y" + { (yyval.attr) = make_attr(ATTR_DEFAULTVTABLE); } break; case 89: - -/* Line 1464 of yacc.c */ -#line 509 "parser.y" - { (yyval.attr) = make_attr(ATTR_DISPLAYBIND); ;} +/* Line 1787 of yacc.c */ +#line 487 "parser.y" + { (yyval.attr) = make_attr(ATTR_DISABLECONSISTENCYCHECK); } break; case 90: - -/* Line 1464 of yacc.c */ -#line 510 "parser.y" - { (yyval.attr) = make_attrp(ATTR_DLLNAME, (yyvsp[(3) - (4)].str)); ;} +/* Line 1787 of yacc.c */ +#line 488 "parser.y" + { (yyval.attr) = make_attr(ATTR_DISPLAYBIND); } break; case 91: - -/* Line 1464 of yacc.c */ -#line 511 "parser.y" - { (yyval.attr) = make_attr(ATTR_DUAL); ;} +/* Line 1787 of yacc.c */ +#line 489 "parser.y" + { (yyval.attr) = make_attrp(ATTR_DLLNAME, (yyvsp[(3) - (4)].str)); } break; case 92: - -/* Line 1464 of yacc.c */ -#line 512 "parser.y" - { (yyval.attr) = make_attr(ATTR_ENABLEALLOCATE); ;} +/* Line 1787 of yacc.c */ +#line 490 "parser.y" + { (yyval.attr) = make_attr(ATTR_DUAL); } break; case 93: - -/* Line 1464 of yacc.c */ -#line 513 "parser.y" - { (yyval.attr) = make_attr(ATTR_ENCODE); ;} +/* Line 1787 of yacc.c */ +#line 491 "parser.y" + { (yyval.attr) = make_attr(ATTR_ENABLEALLOCATE); } break; case 94: - -/* Line 1464 of yacc.c */ -#line 514 "parser.y" - { (yyval.attr) = make_attrp(ATTR_ENDPOINT, (yyvsp[(3) - (4)].str_list)); ;} +/* Line 1787 of yacc.c */ +#line 492 "parser.y" + { (yyval.attr) = make_attr(ATTR_ENCODE); } break; case 95: - -/* Line 1464 of yacc.c */ -#line 515 "parser.y" - { (yyval.attr) = make_attrp(ATTR_ENTRY, (yyvsp[(3) - (4)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 493 "parser.y" + { (yyval.attr) = make_attrp(ATTR_ENDPOINT, (yyvsp[(3) - (4)].str_list)); } break; case 96: - -/* Line 1464 of yacc.c */ -#line 516 "parser.y" - { (yyval.attr) = make_attr(ATTR_EXPLICIT_HANDLE); ;} +/* Line 1787 of yacc.c */ +#line 494 "parser.y" + { (yyval.attr) = make_attrp(ATTR_ENTRY, (yyvsp[(3) - (4)].expr)); } break; case 97: - -/* Line 1464 of yacc.c */ -#line 517 "parser.y" - { (yyval.attr) = make_attr(ATTR_FAULTSTATUS); ;} +/* Line 1787 of yacc.c */ +#line 495 "parser.y" + { (yyval.attr) = make_attr(ATTR_EXPLICIT_HANDLE); } break; case 98: - -/* Line 1464 of yacc.c */ -#line 518 "parser.y" - { (yyval.attr) = make_attr(ATTR_FORCEALLOCATE); ;} +/* Line 1787 of yacc.c */ +#line 496 "parser.y" + { (yyval.attr) = make_attr(ATTR_FAULTSTATUS); } break; case 99: - -/* Line 1464 of yacc.c */ -#line 519 "parser.y" - { (yyval.attr) = make_attr(ATTR_HANDLE); ;} +/* Line 1787 of yacc.c */ +#line 497 "parser.y" + { (yyval.attr) = make_attr(ATTR_FORCEALLOCATE); } break; case 100: - -/* Line 1464 of yacc.c */ -#line 520 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPCONTEXT, (yyvsp[(3) - (4)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 498 "parser.y" + { (yyval.attr) = make_attr(ATTR_HANDLE); } break; case 101: - -/* Line 1464 of yacc.c */ -#line 521 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPFILE, (yyvsp[(3) - (4)].str)); ;} +/* Line 1787 of yacc.c */ +#line 499 "parser.y" + { (yyval.attr) = make_attrp(ATTR_HELPCONTEXT, (yyvsp[(3) - (4)].expr)); } break; case 102: - -/* Line 1464 of yacc.c */ -#line 522 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPSTRING, (yyvsp[(3) - (4)].str)); ;} +/* Line 1787 of yacc.c */ +#line 500 "parser.y" + { (yyval.attr) = make_attrp(ATTR_HELPFILE, (yyvsp[(3) - (4)].str)); } break; case 103: - -/* Line 1464 of yacc.c */ -#line 523 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPSTRINGCONTEXT, (yyvsp[(3) - (4)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 501 "parser.y" + { (yyval.attr) = make_attrp(ATTR_HELPSTRING, (yyvsp[(3) - (4)].str)); } break; case 104: - -/* Line 1464 of yacc.c */ -#line 524 "parser.y" - { (yyval.attr) = make_attrp(ATTR_HELPSTRINGDLL, (yyvsp[(3) - (4)].str)); ;} +/* Line 1787 of yacc.c */ +#line 502 "parser.y" + { (yyval.attr) = make_attrp(ATTR_HELPSTRINGCONTEXT, (yyvsp[(3) - (4)].expr)); } break; case 105: - -/* Line 1464 of yacc.c */ -#line 525 "parser.y" - { (yyval.attr) = make_attr(ATTR_HIDDEN); ;} +/* Line 1787 of yacc.c */ +#line 503 "parser.y" + { (yyval.attr) = make_attrp(ATTR_HELPSTRINGDLL, (yyvsp[(3) - (4)].str)); } break; case 106: - -/* Line 1464 of yacc.c */ -#line 526 "parser.y" - { (yyval.attr) = make_attrp(ATTR_ID, (yyvsp[(3) - (4)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 504 "parser.y" + { (yyval.attr) = make_attr(ATTR_HIDDEN); } break; case 107: - -/* Line 1464 of yacc.c */ -#line 527 "parser.y" - { (yyval.attr) = make_attr(ATTR_IDEMPOTENT); ;} +/* Line 1787 of yacc.c */ +#line 505 "parser.y" + { (yyval.attr) = make_attrp(ATTR_ID, (yyvsp[(3) - (4)].expr)); } break; case 108: - -/* Line 1464 of yacc.c */ -#line 528 "parser.y" - { (yyval.attr) = make_attr(ATTR_IGNORE); ;} +/* Line 1787 of yacc.c */ +#line 506 "parser.y" + { (yyval.attr) = make_attr(ATTR_IDEMPOTENT); } break; case 109: - -/* Line 1464 of yacc.c */ -#line 529 "parser.y" - { (yyval.attr) = make_attrp(ATTR_IIDIS, (yyvsp[(3) - (4)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 507 "parser.y" + { (yyval.attr) = make_attr(ATTR_IGNORE); } break; case 110: - -/* Line 1464 of yacc.c */ -#line 530 "parser.y" - { (yyval.attr) = make_attr(ATTR_IMMEDIATEBIND); ;} +/* Line 1787 of yacc.c */ +#line 508 "parser.y" + { (yyval.attr) = make_attrp(ATTR_IIDIS, (yyvsp[(3) - (4)].expr)); } break; case 111: - -/* Line 1464 of yacc.c */ -#line 531 "parser.y" - { (yyval.attr) = make_attrp(ATTR_IMPLICIT_HANDLE, (yyvsp[(3) - (4)].var)); ;} +/* Line 1787 of yacc.c */ +#line 509 "parser.y" + { (yyval.attr) = make_attr(ATTR_IMMEDIATEBIND); } break; case 112: - -/* Line 1464 of yacc.c */ -#line 532 "parser.y" - { (yyval.attr) = make_attr(ATTR_IN); ;} +/* Line 1787 of yacc.c */ +#line 510 "parser.y" + { (yyval.attr) = make_attrp(ATTR_IMPLICIT_HANDLE, (yyvsp[(3) - (4)].var)); } break; case 113: - -/* Line 1464 of yacc.c */ -#line 533 "parser.y" - { (yyval.attr) = make_attr(ATTR_INPUTSYNC); ;} +/* Line 1787 of yacc.c */ +#line 511 "parser.y" + { (yyval.attr) = make_attr(ATTR_IN); } break; case 114: - -/* Line 1464 of yacc.c */ -#line 534 "parser.y" - { (yyval.attr) = make_attrp(ATTR_LENGTHIS, (yyvsp[(3) - (4)].expr_list)); ;} +/* Line 1787 of yacc.c */ +#line 512 "parser.y" + { (yyval.attr) = make_attr(ATTR_INPUTSYNC); } break; case 115: - -/* Line 1464 of yacc.c */ -#line 535 "parser.y" - { (yyval.attr) = make_attrp(ATTR_LIBLCID, (yyvsp[(3) - (4)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 513 "parser.y" + { (yyval.attr) = make_attrp(ATTR_LENGTHIS, (yyvsp[(3) - (4)].expr_list)); } break; case 116: - -/* Line 1464 of yacc.c */ -#line 536 "parser.y" - { (yyval.attr) = make_attr(ATTR_PARAMLCID); ;} +/* Line 1787 of yacc.c */ +#line 514 "parser.y" + { (yyval.attr) = make_attrp(ATTR_LIBLCID, (yyvsp[(3) - (4)].expr)); } break; case 117: - -/* Line 1464 of yacc.c */ -#line 537 "parser.y" - { (yyval.attr) = make_attr(ATTR_LICENSED); ;} +/* Line 1787 of yacc.c */ +#line 515 "parser.y" + { (yyval.attr) = make_attr(ATTR_PARAMLCID); } break; case 118: - -/* Line 1464 of yacc.c */ -#line 538 "parser.y" - { (yyval.attr) = make_attr(ATTR_LOCAL); ;} +/* Line 1787 of yacc.c */ +#line 516 "parser.y" + { (yyval.attr) = make_attr(ATTR_LICENSED); } break; case 119: - -/* Line 1464 of yacc.c */ -#line 539 "parser.y" - { (yyval.attr) = make_attr(ATTR_MAYBE); ;} +/* Line 1787 of yacc.c */ +#line 517 "parser.y" + { (yyval.attr) = make_attr(ATTR_LOCAL); } break; case 120: - -/* Line 1464 of yacc.c */ -#line 540 "parser.y" - { (yyval.attr) = make_attr(ATTR_MESSAGE); ;} +/* Line 1787 of yacc.c */ +#line 518 "parser.y" + { (yyval.attr) = make_attr(ATTR_MAYBE); } break; case 121: - -/* Line 1464 of yacc.c */ -#line 541 "parser.y" - { (yyval.attr) = make_attr(ATTR_NOCODE); ;} +/* Line 1787 of yacc.c */ +#line 519 "parser.y" + { (yyval.attr) = make_attr(ATTR_MESSAGE); } break; case 122: - -/* Line 1464 of yacc.c */ -#line 542 "parser.y" - { (yyval.attr) = make_attr(ATTR_NONBROWSABLE); ;} +/* Line 1787 of yacc.c */ +#line 520 "parser.y" + { (yyval.attr) = make_attr(ATTR_NOCODE); } break; case 123: - -/* Line 1464 of yacc.c */ -#line 543 "parser.y" - { (yyval.attr) = make_attr(ATTR_NONCREATABLE); ;} +/* Line 1787 of yacc.c */ +#line 521 "parser.y" + { (yyval.attr) = make_attr(ATTR_NONBROWSABLE); } break; case 124: - -/* Line 1464 of yacc.c */ -#line 544 "parser.y" - { (yyval.attr) = make_attr(ATTR_NONEXTENSIBLE); ;} +/* Line 1787 of yacc.c */ +#line 522 "parser.y" + { (yyval.attr) = make_attr(ATTR_NONCREATABLE); } break; case 125: - -/* Line 1464 of yacc.c */ -#line 545 "parser.y" - { (yyval.attr) = make_attr(ATTR_NOTIFY); ;} +/* Line 1787 of yacc.c */ +#line 523 "parser.y" + { (yyval.attr) = make_attr(ATTR_NONEXTENSIBLE); } break; case 126: - -/* Line 1464 of yacc.c */ -#line 546 "parser.y" - { (yyval.attr) = make_attr(ATTR_NOTIFYFLAG); ;} +/* Line 1787 of yacc.c */ +#line 524 "parser.y" + { (yyval.attr) = make_attr(ATTR_NOTIFY); } break; case 127: - -/* Line 1464 of yacc.c */ -#line 547 "parser.y" - { (yyval.attr) = make_attr(ATTR_OBJECT); ;} +/* Line 1787 of yacc.c */ +#line 525 "parser.y" + { (yyval.attr) = make_attr(ATTR_NOTIFYFLAG); } break; case 128: - -/* Line 1464 of yacc.c */ -#line 548 "parser.y" - { (yyval.attr) = make_attr(ATTR_ODL); ;} +/* Line 1787 of yacc.c */ +#line 526 "parser.y" + { (yyval.attr) = make_attr(ATTR_OBJECT); } break; case 129: - -/* Line 1464 of yacc.c */ -#line 549 "parser.y" - { (yyval.attr) = make_attr(ATTR_OLEAUTOMATION); ;} +/* Line 1787 of yacc.c */ +#line 527 "parser.y" + { (yyval.attr) = make_attr(ATTR_ODL); } break; case 130: - -/* Line 1464 of yacc.c */ -#line 550 "parser.y" - { (yyval.attr) = make_attrp(ATTR_OPTIMIZE, (yyvsp[(3) - (4)].str)); ;} +/* Line 1787 of yacc.c */ +#line 528 "parser.y" + { (yyval.attr) = make_attr(ATTR_OLEAUTOMATION); } break; case 131: - -/* Line 1464 of yacc.c */ -#line 551 "parser.y" - { (yyval.attr) = make_attr(ATTR_OPTIONAL); ;} +/* Line 1787 of yacc.c */ +#line 529 "parser.y" + { (yyval.attr) = make_attrp(ATTR_OPTIMIZE, (yyvsp[(3) - (4)].str)); } break; case 132: - -/* Line 1464 of yacc.c */ -#line 552 "parser.y" - { (yyval.attr) = make_attr(ATTR_OUT); ;} +/* Line 1787 of yacc.c */ +#line 530 "parser.y" + { (yyval.attr) = make_attr(ATTR_OPTIONAL); } break; case 133: - -/* Line 1464 of yacc.c */ -#line 553 "parser.y" - { (yyval.attr) = make_attr(ATTR_PARTIALIGNORE); ;} +/* Line 1787 of yacc.c */ +#line 531 "parser.y" + { (yyval.attr) = make_attr(ATTR_OUT); } break; case 134: - -/* Line 1464 of yacc.c */ -#line 554 "parser.y" - { (yyval.attr) = make_attrv(ATTR_POINTERDEFAULT, (yyvsp[(3) - (4)].num)); ;} +/* Line 1787 of yacc.c */ +#line 532 "parser.y" + { (yyval.attr) = make_attr(ATTR_PARTIALIGNORE); } break; case 135: - -/* Line 1464 of yacc.c */ -#line 555 "parser.y" - { (yyval.attr) = make_attrp(ATTR_PROGID, (yyvsp[(3) - (4)].str)); ;} +/* Line 1787 of yacc.c */ +#line 533 "parser.y" + { (yyval.attr) = make_attrv(ATTR_POINTERDEFAULT, (yyvsp[(3) - (4)].num)); } break; case 136: - -/* Line 1464 of yacc.c */ -#line 556 "parser.y" - { (yyval.attr) = make_attr(ATTR_PROPGET); ;} +/* Line 1787 of yacc.c */ +#line 534 "parser.y" + { (yyval.attr) = make_attrp(ATTR_PROGID, (yyvsp[(3) - (4)].str)); } break; case 137: - -/* Line 1464 of yacc.c */ -#line 557 "parser.y" - { (yyval.attr) = make_attr(ATTR_PROPPUT); ;} +/* Line 1787 of yacc.c */ +#line 535 "parser.y" + { (yyval.attr) = make_attr(ATTR_PROPGET); } break; case 138: - -/* Line 1464 of yacc.c */ -#line 558 "parser.y" - { (yyval.attr) = make_attr(ATTR_PROPPUTREF); ;} +/* Line 1787 of yacc.c */ +#line 536 "parser.y" + { (yyval.attr) = make_attr(ATTR_PROPPUT); } break; case 139: - -/* Line 1464 of yacc.c */ -#line 559 "parser.y" - { (yyval.attr) = make_attr(ATTR_PROXY); ;} +/* Line 1787 of yacc.c */ +#line 537 "parser.y" + { (yyval.attr) = make_attr(ATTR_PROPPUTREF); } break; case 140: - -/* Line 1464 of yacc.c */ -#line 560 "parser.y" - { (yyval.attr) = make_attr(ATTR_PUBLIC); ;} +/* Line 1787 of yacc.c */ +#line 538 "parser.y" + { (yyval.attr) = make_attr(ATTR_PROXY); } break; case 141: - -/* Line 1464 of yacc.c */ -#line 562 "parser.y" - { expr_list_t *list = append_expr( NULL, (yyvsp[(3) - (6)].expr) ); - list = append_expr( list, (yyvsp[(5) - (6)].expr) ); - (yyval.attr) = make_attrp(ATTR_RANGE, list); ;} +/* Line 1787 of yacc.c */ +#line 539 "parser.y" + { (yyval.attr) = make_attr(ATTR_PUBLIC); } break; case 142: - -/* Line 1464 of yacc.c */ -#line 565 "parser.y" - { (yyval.attr) = make_attr(ATTR_READONLY); ;} +/* Line 1787 of yacc.c */ +#line 541 "parser.y" + { expr_list_t *list = append_expr( NULL, (yyvsp[(3) - (6)].expr) ); + list = append_expr( list, (yyvsp[(5) - (6)].expr) ); + (yyval.attr) = make_attrp(ATTR_RANGE, list); } break; case 143: - -/* Line 1464 of yacc.c */ -#line 566 "parser.y" - { (yyval.attr) = make_attrp(ATTR_REPRESENTAS, (yyvsp[(3) - (4)].type)); ;} +/* Line 1787 of yacc.c */ +#line 544 "parser.y" + { (yyval.attr) = make_attr(ATTR_READONLY); } break; case 144: - -/* Line 1464 of yacc.c */ -#line 567 "parser.y" - { (yyval.attr) = make_attr(ATTR_REQUESTEDIT); ;} +/* Line 1787 of yacc.c */ +#line 545 "parser.y" + { (yyval.attr) = make_attrp(ATTR_REPRESENTAS, (yyvsp[(3) - (4)].type)); } break; case 145: - -/* Line 1464 of yacc.c */ -#line 568 "parser.y" - { (yyval.attr) = make_attr(ATTR_RESTRICTED); ;} +/* Line 1787 of yacc.c */ +#line 546 "parser.y" + { (yyval.attr) = make_attr(ATTR_REQUESTEDIT); } break; case 146: - -/* Line 1464 of yacc.c */ -#line 569 "parser.y" - { (yyval.attr) = make_attr(ATTR_RETVAL); ;} +/* Line 1787 of yacc.c */ +#line 547 "parser.y" + { (yyval.attr) = make_attr(ATTR_RESTRICTED); } break; case 147: - -/* Line 1464 of yacc.c */ -#line 570 "parser.y" - { (yyval.attr) = make_attrp(ATTR_SIZEIS, (yyvsp[(3) - (4)].expr_list)); ;} +/* Line 1787 of yacc.c */ +#line 548 "parser.y" + { (yyval.attr) = make_attr(ATTR_RETVAL); } break; case 148: - -/* Line 1464 of yacc.c */ -#line 571 "parser.y" - { (yyval.attr) = make_attr(ATTR_SOURCE); ;} +/* Line 1787 of yacc.c */ +#line 549 "parser.y" + { (yyval.attr) = make_attrp(ATTR_SIZEIS, (yyvsp[(3) - (4)].expr_list)); } break; case 149: - -/* Line 1464 of yacc.c */ -#line 572 "parser.y" - { (yyval.attr) = make_attr(ATTR_STRICTCONTEXTHANDLE); ;} +/* Line 1787 of yacc.c */ +#line 550 "parser.y" + { (yyval.attr) = make_attr(ATTR_SOURCE); } break; case 150: - -/* Line 1464 of yacc.c */ -#line 573 "parser.y" - { (yyval.attr) = make_attr(ATTR_STRING); ;} +/* Line 1787 of yacc.c */ +#line 551 "parser.y" + { (yyval.attr) = make_attr(ATTR_STRICTCONTEXTHANDLE); } break; case 151: - -/* Line 1464 of yacc.c */ -#line 574 "parser.y" - { (yyval.attr) = make_attrp(ATTR_SWITCHIS, (yyvsp[(3) - (4)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 552 "parser.y" + { (yyval.attr) = make_attr(ATTR_STRING); } break; case 152: - -/* Line 1464 of yacc.c */ -#line 575 "parser.y" - { (yyval.attr) = make_attrp(ATTR_SWITCHTYPE, (yyvsp[(3) - (4)].type)); ;} +/* Line 1787 of yacc.c */ +#line 553 "parser.y" + { (yyval.attr) = make_attrp(ATTR_SWITCHIS, (yyvsp[(3) - (4)].expr)); } break; case 153: - -/* Line 1464 of yacc.c */ -#line 576 "parser.y" - { (yyval.attr) = make_attrp(ATTR_TRANSMITAS, (yyvsp[(3) - (4)].type)); ;} +/* Line 1787 of yacc.c */ +#line 554 "parser.y" + { (yyval.attr) = make_attrp(ATTR_SWITCHTYPE, (yyvsp[(3) - (4)].type)); } break; case 154: - -/* Line 1464 of yacc.c */ -#line 577 "parser.y" - { (yyval.attr) = make_attrv(ATTR_THREADING, (yyvsp[(3) - (4)].num)); ;} +/* Line 1787 of yacc.c */ +#line 555 "parser.y" + { (yyval.attr) = make_attrp(ATTR_TRANSMITAS, (yyvsp[(3) - (4)].type)); } break; case 155: - -/* Line 1464 of yacc.c */ -#line 578 "parser.y" - { (yyval.attr) = make_attr(ATTR_UIDEFAULT); ;} +/* Line 1787 of yacc.c */ +#line 556 "parser.y" + { (yyval.attr) = make_attrv(ATTR_THREADING, (yyvsp[(3) - (4)].num)); } break; case 156: - -/* Line 1464 of yacc.c */ -#line 579 "parser.y" - { (yyval.attr) = make_attr(ATTR_USESGETLASTERROR); ;} +/* Line 1787 of yacc.c */ +#line 557 "parser.y" + { (yyval.attr) = make_attr(ATTR_UIDEFAULT); } break; case 157: - -/* Line 1464 of yacc.c */ -#line 580 "parser.y" - { (yyval.attr) = make_attrp(ATTR_USERMARSHAL, (yyvsp[(3) - (4)].type)); ;} +/* Line 1787 of yacc.c */ +#line 558 "parser.y" + { (yyval.attr) = make_attr(ATTR_USESGETLASTERROR); } break; case 158: - -/* Line 1464 of yacc.c */ -#line 581 "parser.y" - { (yyval.attr) = make_attrp(ATTR_UUID, (yyvsp[(3) - (4)].uuid)); ;} +/* Line 1787 of yacc.c */ +#line 559 "parser.y" + { (yyval.attr) = make_attrp(ATTR_USERMARSHAL, (yyvsp[(3) - (4)].type)); } break; case 159: - -/* Line 1464 of yacc.c */ -#line 582 "parser.y" - { (yyval.attr) = make_attrp(ATTR_ASYNCUUID, (yyvsp[(3) - (4)].uuid)); ;} +/* Line 1787 of yacc.c */ +#line 560 "parser.y" + { (yyval.attr) = make_attrp(ATTR_UUID, (yyvsp[(3) - (4)].uuid)); } break; case 160: - -/* Line 1464 of yacc.c */ -#line 583 "parser.y" - { (yyval.attr) = make_attr(ATTR_V1ENUM); ;} +/* Line 1787 of yacc.c */ +#line 561 "parser.y" + { (yyval.attr) = make_attrp(ATTR_ASYNCUUID, (yyvsp[(3) - (4)].uuid)); } break; case 161: - -/* Line 1464 of yacc.c */ -#line 584 "parser.y" - { (yyval.attr) = make_attr(ATTR_VARARG); ;} +/* Line 1787 of yacc.c */ +#line 562 "parser.y" + { (yyval.attr) = make_attr(ATTR_V1ENUM); } break; case 162: - -/* Line 1464 of yacc.c */ -#line 585 "parser.y" - { (yyval.attr) = make_attrv(ATTR_VERSION, (yyvsp[(3) - (4)].num)); ;} +/* Line 1787 of yacc.c */ +#line 563 "parser.y" + { (yyval.attr) = make_attr(ATTR_VARARG); } break; case 163: - -/* Line 1464 of yacc.c */ -#line 586 "parser.y" - { (yyval.attr) = make_attrp(ATTR_VIPROGID, (yyvsp[(3) - (4)].str)); ;} +/* Line 1787 of yacc.c */ +#line 564 "parser.y" + { (yyval.attr) = make_attrv(ATTR_VERSION, (yyvsp[(3) - (4)].num)); } break; case 164: - -/* Line 1464 of yacc.c */ -#line 587 "parser.y" - { (yyval.attr) = make_attrp(ATTR_WIREMARSHAL, (yyvsp[(3) - (4)].type)); ;} +/* Line 1787 of yacc.c */ +#line 565 "parser.y" + { (yyval.attr) = make_attrp(ATTR_VIPROGID, (yyvsp[(3) - (4)].str)); } break; case 165: - -/* Line 1464 of yacc.c */ -#line 588 "parser.y" - { (yyval.attr) = make_attrv(ATTR_POINTERTYPE, (yyvsp[(1) - (1)].num)); ;} +/* Line 1787 of yacc.c */ +#line 566 "parser.y" + { (yyval.attr) = make_attrp(ATTR_WIREMARSHAL, (yyvsp[(3) - (4)].type)); } break; - case 167: - -/* Line 1464 of yacc.c */ -#line 593 "parser.y" - { if (!is_valid_uuid((yyvsp[(1) - (1)].str))) - error_loc("invalid UUID: %s\n", (yyvsp[(1) - (1)].str)); - (yyval.uuid) = parse_uuid((yyvsp[(1) - (1)].str)); ;} + case 166: +/* Line 1787 of yacc.c */ +#line 567 "parser.y" + { (yyval.attr) = make_attrv(ATTR_POINTERTYPE, (yyvsp[(1) - (1)].num)); } break; case 168: - -/* Line 1464 of yacc.c */ -#line 598 "parser.y" - { (yyval.str) = xstrdup("__cdecl"); ;} +/* Line 1787 of yacc.c */ +#line 572 "parser.y" + { if (!is_valid_uuid((yyvsp[(1) - (1)].str))) + error_loc("invalid UUID: %s\n", (yyvsp[(1) - (1)].str)); + (yyval.uuid) = parse_uuid((yyvsp[(1) - (1)].str)); } break; case 169: - -/* Line 1464 of yacc.c */ -#line 599 "parser.y" - { (yyval.str) = xstrdup("__fastcall"); ;} +/* Line 1787 of yacc.c */ +#line 577 "parser.y" + { (yyval.str) = xstrdup("__cdecl"); } break; case 170: - -/* Line 1464 of yacc.c */ -#line 600 "parser.y" - { (yyval.str) = xstrdup("__pascal"); ;} +/* Line 1787 of yacc.c */ +#line 578 "parser.y" + { (yyval.str) = xstrdup("__fastcall"); } break; case 171: - -/* Line 1464 of yacc.c */ -#line 601 "parser.y" - { (yyval.str) = xstrdup("__stdcall"); ;} +/* Line 1787 of yacc.c */ +#line 579 "parser.y" + { (yyval.str) = xstrdup("__pascal"); } break; case 172: - -/* Line 1464 of yacc.c */ -#line 604 "parser.y" - { (yyval.var_list) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 580 "parser.y" + { (yyval.str) = xstrdup("__stdcall"); } break; case 173: - -/* Line 1464 of yacc.c */ -#line 605 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var) ); ;} +/* Line 1787 of yacc.c */ +#line 583 "parser.y" + { (yyval.var_list) = NULL; } break; case 174: - -/* Line 1464 of yacc.c */ -#line 608 "parser.y" - { attr_t *a = make_attrp(ATTR_CASE, append_expr( NULL, (yyvsp[(2) - (4)].expr) )); - (yyval.var) = (yyvsp[(4) - (4)].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); - (yyval.var)->attrs = append_attr( (yyval.var)->attrs, a ); - ;} +/* Line 1787 of yacc.c */ +#line 584 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var) ); } break; case 175: - -/* Line 1464 of yacc.c */ -#line 612 "parser.y" - { attr_t *a = make_attr(ATTR_DEFAULT); - (yyval.var) = (yyvsp[(3) - (3)].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); +/* Line 1787 of yacc.c */ +#line 587 "parser.y" + { attr_t *a = make_attrp(ATTR_CASE, append_expr( NULL, (yyvsp[(2) - (4)].expr) )); + (yyval.var) = (yyvsp[(4) - (4)].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); (yyval.var)->attrs = append_attr( (yyval.var)->attrs, a ); - ;} + } break; case 176: - -/* Line 1464 of yacc.c */ -#line 618 "parser.y" - { (yyval.var_list) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 591 "parser.y" + { attr_t *a = make_attr(ATTR_DEFAULT); + (yyval.var) = (yyvsp[(3) - (3)].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); + (yyval.var)->attrs = append_attr( (yyval.var)->attrs, a ); + } break; case 177: - -/* Line 1464 of yacc.c */ -#line 619 "parser.y" - { (yyval.var_list) = (yyvsp[(1) - (2)].var_list); ;} +/* Line 1787 of yacc.c */ +#line 597 "parser.y" + { (yyval.var_list) = NULL; } break; - case 179: - -/* Line 1464 of yacc.c */ -#line 623 "parser.y" - { if (!(yyvsp[(1) - (1)].var)->eval) - (yyvsp[(1) - (1)].var)->eval = make_exprl(EXPR_NUM, 0 /* default for first enum entry */); - (yyval.var_list) = append_var( NULL, (yyvsp[(1) - (1)].var) ); - ;} + case 178: +/* Line 1787 of yacc.c */ +#line 598 "parser.y" + { (yyval.var_list) = (yyvsp[(1) - (2)].var_list); } break; case 180: +/* Line 1787 of yacc.c */ +#line 602 "parser.y" + { if (!(yyvsp[(1) - (1)].var)->eval) + (yyvsp[(1) - (1)].var)->eval = make_exprl(EXPR_NUM, 0 /* default for first enum entry */); + (yyval.var_list) = append_var( NULL, (yyvsp[(1) - (1)].var) ); + } + break; -/* Line 1464 of yacc.c */ -#line 627 "parser.y" + case 181: +/* Line 1787 of yacc.c */ +#line 606 "parser.y" { if (!(yyvsp[(3) - (3)].var)->eval) { var_t *last = LIST_ENTRY( list_tail((yyval.var_list)), var_t, entry ); @@ -4104,839 +3937,727 @@ (yyvsp[(3) - (3)].var)->eval = make_exprl(type, last->eval->cval + 1); } (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(3) - (3)].var) ); - ;} - break; - - case 181: - -/* Line 1464 of yacc.c */ -#line 639 "parser.y" - { (yyval.var) = reg_const((yyvsp[(1) - (3)].var)); - (yyval.var)->eval = (yyvsp[(3) - (3)].expr); - (yyval.var)->type = type_new_int(TYPE_BASIC_INT, 0); - ;} + } break; case 182: - -/* Line 1464 of yacc.c */ -#line 643 "parser.y" - { (yyval.var) = reg_const((yyvsp[(1) - (1)].var)); +/* Line 1787 of yacc.c */ +#line 618 "parser.y" + { (yyval.var) = reg_const((yyvsp[(1) - (3)].var)); + (yyval.var)->eval = (yyvsp[(3) - (3)].expr); (yyval.var)->type = type_new_int(TYPE_BASIC_INT, 0); - ;} + } break; case 183: - -/* Line 1464 of yacc.c */ -#line 648 "parser.y" - { (yyval.type) = type_new_enum((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); ;} +/* Line 1787 of yacc.c */ +#line 622 "parser.y" + { (yyval.var) = reg_const((yyvsp[(1) - (1)].var)); + (yyval.var)->type = type_new_int(TYPE_BASIC_INT, 0); + } break; case 184: - -/* Line 1464 of yacc.c */ -#line 651 "parser.y" - { (yyval.expr_list) = append_expr( NULL, (yyvsp[(1) - (1)].expr) ); ;} +/* Line 1787 of yacc.c */ +#line 627 "parser.y" + { (yyval.type) = type_new_enum((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); } break; case 185: - -/* Line 1464 of yacc.c */ -#line 652 "parser.y" - { (yyval.expr_list) = append_expr( (yyvsp[(1) - (3)].expr_list), (yyvsp[(3) - (3)].expr) ); ;} +/* Line 1787 of yacc.c */ +#line 630 "parser.y" + { (yyval.expr_list) = append_expr( NULL, (yyvsp[(1) - (1)].expr) ); } break; case 186: - -/* Line 1464 of yacc.c */ -#line 655 "parser.y" - { (yyval.expr) = make_expr(EXPR_VOID); ;} +/* Line 1787 of yacc.c */ +#line 631 "parser.y" + { (yyval.expr_list) = append_expr( (yyvsp[(1) - (3)].expr_list), (yyvsp[(3) - (3)].expr) ); } break; - case 188: - -/* Line 1464 of yacc.c */ -#line 659 "parser.y" - { (yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[(1) - (1)].num)); ;} + case 187: +/* Line 1787 of yacc.c */ +#line 634 "parser.y" + { (yyval.expr) = make_expr(EXPR_VOID); } break; case 189: - -/* Line 1464 of yacc.c */ -#line 660 "parser.y" - { (yyval.expr) = make_exprl(EXPR_HEXNUM, (yyvsp[(1) - (1)].num)); ;} +/* Line 1787 of yacc.c */ +#line 638 "parser.y" + { (yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[(1) - (1)].num)); } break; case 190: - -/* Line 1464 of yacc.c */ -#line 661 "parser.y" - { (yyval.expr) = make_exprd(EXPR_DOUBLE, (yyvsp[(1) - (1)].dbl)); ;} +/* Line 1787 of yacc.c */ +#line 639 "parser.y" + { (yyval.expr) = make_exprl(EXPR_HEXNUM, (yyvsp[(1) - (1)].num)); } break; case 191: - -/* Line 1464 of yacc.c */ -#line 662 "parser.y" - { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 0); ;} +/* Line 1787 of yacc.c */ +#line 640 "parser.y" + { (yyval.expr) = make_exprd(EXPR_DOUBLE, (yyvsp[(1) - (1)].dbl)); } break; case 192: - -/* Line 1464 of yacc.c */ -#line 663 "parser.y" - { (yyval.expr) = make_exprl(EXPR_NUM, 0); ;} +/* Line 1787 of yacc.c */ +#line 641 "parser.y" + { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 0); } break; case 193: - -/* Line 1464 of yacc.c */ -#line 664 "parser.y" - { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 1); ;} +/* Line 1787 of yacc.c */ +#line 642 "parser.y" + { (yyval.expr) = make_exprl(EXPR_NUM, 0); } break; case 194: - -/* Line 1464 of yacc.c */ -#line 665 "parser.y" - { (yyval.expr) = make_exprs(EXPR_STRLIT, (yyvsp[(1) - (1)].str)); ;} +/* Line 1787 of yacc.c */ +#line 643 "parser.y" + { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 1); } break; case 195: - -/* Line 1464 of yacc.c */ -#line 666 "parser.y" - { (yyval.expr) = make_exprs(EXPR_WSTRLIT, (yyvsp[(1) - (1)].str)); ;} +/* Line 1787 of yacc.c */ +#line 644 "parser.y" + { (yyval.expr) = make_exprs(EXPR_STRLIT, (yyvsp[(1) - (1)].str)); } break; case 196: - -/* Line 1464 of yacc.c */ -#line 667 "parser.y" - { (yyval.expr) = make_exprs(EXPR_CHARCONST, (yyvsp[(1) - (1)].str)); ;} +/* Line 1787 of yacc.c */ +#line 645 "parser.y" + { (yyval.expr) = make_exprs(EXPR_WSTRLIT, (yyvsp[(1) - (1)].str)); } break; case 197: - -/* Line 1464 of yacc.c */ -#line 668 "parser.y" - { (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[(1) - (1)].str)); ;} +/* Line 1787 of yacc.c */ +#line 646 "parser.y" + { (yyval.expr) = make_exprs(EXPR_CHARCONST, (yyvsp[(1) - (1)].str)); } break; case 198: - -/* Line 1464 of yacc.c */ -#line 669 "parser.y" - { (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[(1) - (5)].expr), (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 647 "parser.y" + { (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[(1) - (1)].str)); } break; case 199: - -/* Line 1464 of yacc.c */ -#line 670 "parser.y" - { (yyval.expr) = make_expr2(EXPR_LOGOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 648 "parser.y" + { (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[(1) - (5)].expr), (yyvsp[(3) - (5)].expr), (yyvsp[(5) - (5)].expr)); } break; case 200: - -/* Line 1464 of yacc.c */ -#line 671 "parser.y" - { (yyval.expr) = make_expr2(EXPR_LOGAND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 649 "parser.y" + { (yyval.expr) = make_expr2(EXPR_LOGOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 201: - -/* Line 1464 of yacc.c */ -#line 672 "parser.y" - { (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 650 "parser.y" + { (yyval.expr) = make_expr2(EXPR_LOGAND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 202: - -/* Line 1464 of yacc.c */ -#line 673 "parser.y" - { (yyval.expr) = make_expr2(EXPR_XOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 651 "parser.y" + { (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 203: - -/* Line 1464 of yacc.c */ -#line 674 "parser.y" - { (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 652 "parser.y" + { (yyval.expr) = make_expr2(EXPR_XOR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 204: - -/* Line 1464 of yacc.c */ -#line 675 "parser.y" - { (yyval.expr) = make_expr2(EXPR_EQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 653 "parser.y" + { (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 205: - -/* Line 1464 of yacc.c */ -#line 676 "parser.y" - { (yyval.expr) = make_expr2(EXPR_INEQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 654 "parser.y" + { (yyval.expr) = make_expr2(EXPR_EQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 206: - -/* Line 1464 of yacc.c */ -#line 677 "parser.y" - { (yyval.expr) = make_expr2(EXPR_GTR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 655 "parser.y" + { (yyval.expr) = make_expr2(EXPR_INEQUALITY, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 207: - -/* Line 1464 of yacc.c */ -#line 678 "parser.y" - { (yyval.expr) = make_expr2(EXPR_LESS, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 656 "parser.y" + { (yyval.expr) = make_expr2(EXPR_GTR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 208: - -/* Line 1464 of yacc.c */ -#line 679 "parser.y" - { (yyval.expr) = make_expr2(EXPR_GTREQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 657 "parser.y" + { (yyval.expr) = make_expr2(EXPR_LESS, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 209: - -/* Line 1464 of yacc.c */ -#line 680 "parser.y" - { (yyval.expr) = make_expr2(EXPR_LESSEQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 658 "parser.y" + { (yyval.expr) = make_expr2(EXPR_GTREQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 210: - -/* Line 1464 of yacc.c */ -#line 681 "parser.y" - { (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 659 "parser.y" + { (yyval.expr) = make_expr2(EXPR_LESSEQL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 211: - -/* Line 1464 of yacc.c */ -#line 682 "parser.y" - { (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 660 "parser.y" + { (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 212: - -/* Line 1464 of yacc.c */ -#line 683 "parser.y" - { (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 661 "parser.y" + { (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 213: - -/* Line 1464 of yacc.c */ -#line 684 "parser.y" - { (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 662 "parser.y" + { (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 214: - -/* Line 1464 of yacc.c */ -#line 685 "parser.y" - { (yyval.expr) = make_expr2(EXPR_MOD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 663 "parser.y" + { (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 215: - -/* Line 1464 of yacc.c */ -#line 686 "parser.y" - { (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 664 "parser.y" + { (yyval.expr) = make_expr2(EXPR_MOD, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 216: - -/* Line 1464 of yacc.c */ -#line 687 "parser.y" - { (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 665 "parser.y" + { (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 217: - -/* Line 1464 of yacc.c */ -#line 688 "parser.y" - { (yyval.expr) = make_expr1(EXPR_LOGNOT, (yyvsp[(2) - (2)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 666 "parser.y" + { (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); } break; case 218: - -/* Line 1464 of yacc.c */ -#line 689 "parser.y" - { (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[(2) - (2)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 667 "parser.y" + { (yyval.expr) = make_expr1(EXPR_LOGNOT, (yyvsp[(2) - (2)].expr)); } break; case 219: - -/* Line 1464 of yacc.c */ -#line 690 "parser.y" - { (yyval.expr) = make_expr1(EXPR_POS, (yyvsp[(2) - (2)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 668 "parser.y" + { (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[(2) - (2)].expr)); } break; case 220: - -/* Line 1464 of yacc.c */ -#line 691 "parser.y" - { (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[(2) - (2)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 669 "parser.y" + { (yyval.expr) = make_expr1(EXPR_POS, (yyvsp[(2) - (2)].expr)); } break; case 221: - -/* Line 1464 of yacc.c */ -#line 692 "parser.y" - { (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[(2) - (2)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 670 "parser.y" + { (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[(2) - (2)].expr)); } break; case 222: - -/* Line 1464 of yacc.c */ -#line 693 "parser.y" - { (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[(2) - (2)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 671 "parser.y" + { (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[(2) - (2)].expr)); } break; case 223: - -/* Line 1464 of yacc.c */ -#line 694 "parser.y" - { (yyval.expr) = make_expr2(EXPR_MEMBER, make_expr1(EXPR_PPTR, (yyvsp[(1) - (3)].expr)), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); ;} +/* Line 1787 of yacc.c */ +#line 672 "parser.y" + { (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[(2) - (2)].expr)); } break; case 224: - -/* Line 1464 of yacc.c */ -#line 695 "parser.y" - { (yyval.expr) = make_expr2(EXPR_MEMBER, (yyvsp[(1) - (3)].expr), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); ;} +/* Line 1787 of yacc.c */ +#line 673 "parser.y" + { (yyval.expr) = make_expr2(EXPR_MEMBER, make_expr1(EXPR_PPTR, (yyvsp[(1) - (3)].expr)), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); } break; case 225: - -/* Line 1464 of yacc.c */ -#line 697 "parser.y" - { (yyval.expr) = make_exprt(EXPR_CAST, declare_var(NULL, (yyvsp[(2) - (5)].declspec), (yyvsp[(3) - (5)].declarator), 0), (yyvsp[(5) - (5)].expr)); free((yyvsp[(2) - (5)].declspec)); free((yyvsp[(3) - (5)].declarator)); ;} +/* Line 1787 of yacc.c */ +#line 674 "parser.y" + { (yyval.expr) = make_expr2(EXPR_MEMBER, (yyvsp[(1) - (3)].expr), make_exprs(EXPR_IDENTIFIER, (yyvsp[(3) - (3)].str))); } break; case 226: - -/* Line 1464 of yacc.c */ -#line 699 "parser.y" - { (yyval.expr) = make_exprt(EXPR_SIZEOF, declare_var(NULL, (yyvsp[(3) - (5)].declspec), (yyvsp[(4) - (5)].declarator), 0), NULL); free((yyvsp[(3) - (5)].declspec)); free((yyvsp[(4) - (5)].declarator)); ;} +/* Line 1787 of yacc.c */ +#line 676 "parser.y" + { (yyval.expr) = make_exprt(EXPR_CAST, declare_var(NULL, (yyvsp[(2) - (5)].declspec), (yyvsp[(3) - (5)].declarator), 0), (yyvsp[(5) - (5)].expr)); free((yyvsp[(2) - (5)].declspec)); free((yyvsp[(3) - (5)].declarator)); } break; case 227: - -/* Line 1464 of yacc.c */ -#line 700 "parser.y" - { (yyval.expr) = make_expr2(EXPR_ARRAY, (yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 678 "parser.y" + { (yyval.expr) = make_exprt(EXPR_SIZEOF, declare_var(NULL, (yyvsp[(3) - (5)].declspec), (yyvsp[(4) - (5)].declarator), 0), NULL); free((yyvsp[(3) - (5)].declspec)); free((yyvsp[(4) - (5)].declarator)); } break; case 228: - -/* Line 1464 of yacc.c */ -#line 701 "parser.y" - { (yyval.expr) = (yyvsp[(2) - (3)].expr); ;} +/* Line 1787 of yacc.c */ +#line 679 "parser.y" + { (yyval.expr) = make_expr2(EXPR_ARRAY, (yyvsp[(1) - (4)].expr), (yyvsp[(3) - (4)].expr)); } break; case 229: - -/* Line 1464 of yacc.c */ -#line 704 "parser.y" - { (yyval.expr_list) = append_expr( NULL, (yyvsp[(1) - (1)].expr) ); ;} +/* Line 1787 of yacc.c */ +#line 680 "parser.y" + { (yyval.expr) = (yyvsp[(2) - (3)].expr); } break; case 230: - -/* Line 1464 of yacc.c */ -#line 705 "parser.y" - { (yyval.expr_list) = append_expr( (yyvsp[(1) - (3)].expr_list), (yyvsp[(3) - (3)].expr) ); ;} +/* Line 1787 of yacc.c */ +#line 683 "parser.y" + { (yyval.expr_list) = append_expr( NULL, (yyvsp[(1) - (1)].expr) ); } break; case 231: - -/* Line 1464 of yacc.c */ -#line 708 "parser.y" - { (yyval.expr) = (yyvsp[(1) - (1)].expr); - if (!(yyval.expr)->is_const) - error_loc("expression is not an integer constant\n"); - ;} +/* Line 1787 of yacc.c */ +#line 684 "parser.y" + { (yyval.expr_list) = append_expr( (yyvsp[(1) - (3)].expr_list), (yyvsp[(3) - (3)].expr) ); } break; case 232: - -/* Line 1464 of yacc.c */ -#line 714 "parser.y" +/* Line 1787 of yacc.c */ +#line 687 "parser.y" { (yyval.expr) = (yyvsp[(1) - (1)].expr); - if (!(yyval.expr)->is_const && (yyval.expr)->type != EXPR_STRLIT && (yyval.expr)->type != EXPR_WSTRLIT) - error_loc("expression is not constant\n"); - ;} + if (!(yyval.expr)->is_const) + error_loc("expression is not an integer constant\n"); + } break; case 233: - -/* Line 1464 of yacc.c */ -#line 720 "parser.y" - { (yyval.var_list) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 693 "parser.y" + { (yyval.expr) = (yyvsp[(1) - (1)].expr); + if (!(yyval.expr)->is_const && (yyval.expr)->type != EXPR_STRLIT && (yyval.expr)->type != EXPR_WSTRLIT) + error_loc("expression is not constant\n"); + } break; case 234: - -/* Line 1464 of yacc.c */ -#line 721 "parser.y" - { (yyval.var_list) = append_var_list((yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var_list)); ;} +/* Line 1787 of yacc.c */ +#line 699 "parser.y" + { (yyval.var_list) = NULL; } break; case 235: - -/* Line 1464 of yacc.c */ -#line 725 "parser.y" - { const char *first = LIST_ENTRY(list_head((yyvsp[(3) - (4)].declarator_list)), declarator_t, entry)->var->name; - check_field_attrs(first, (yyvsp[(1) - (4)].attr_list)); - (yyval.var_list) = set_var_types((yyvsp[(1) - (4)].attr_list), (yyvsp[(2) - (4)].declspec), (yyvsp[(3) - (4)].declarator_list)); - ;} +/* Line 1787 of yacc.c */ +#line 700 "parser.y" + { (yyval.var_list) = append_var_list((yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var_list)); } break; case 236: - -/* Line 1464 of yacc.c */ -#line 729 "parser.y" - { var_t *v = make_var(NULL); - v->type = (yyvsp[(2) - (3)].type); v->attrs = (yyvsp[(1) - (3)].attr_list); - (yyval.var_list) = append_var(NULL, v); - ;} +/* Line 1787 of yacc.c */ +#line 704 "parser.y" + { const char *first = LIST_ENTRY(list_head((yyvsp[(3) - (4)].declarator_list)), declarator_t, entry)->var->name; + check_field_attrs(first, (yyvsp[(1) - (4)].attr_list)); + (yyval.var_list) = set_var_types((yyvsp[(1) - (4)].attr_list), (yyvsp[(2) - (4)].declspec), (yyvsp[(3) - (4)].declarator_list)); + } break; case 237: - -/* Line 1464 of yacc.c */ -#line 736 "parser.y" - { (yyval.var) = (yyvsp[(1) - (2)].var); ;} +/* Line 1787 of yacc.c */ +#line 708 "parser.y" + { var_t *v = make_var(NULL); + v->type = (yyvsp[(2) - (3)].type); v->attrs = (yyvsp[(1) - (3)].attr_list); + (yyval.var_list) = append_var(NULL, v); + } break; case 238: - -/* Line 1464 of yacc.c */ -#line 737 "parser.y" - { (yyval.var) = make_var(NULL); (yyval.var)->attrs = (yyvsp[(1) - (2)].attr_list); ;} +/* Line 1787 of yacc.c */ +#line 715 "parser.y" + { (yyval.var) = (yyvsp[(1) - (2)].var); } break; case 239: - -/* Line 1464 of yacc.c */ -#line 740 "parser.y" - { (yyval.var_list) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 716 "parser.y" + { (yyval.var) = make_var(NULL); (yyval.var)->attrs = (yyvsp[(1) - (2)].attr_list); } break; case 240: - -/* Line 1464 of yacc.c */ -#line 741 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var) ); ;} +/* Line 1787 of yacc.c */ +#line 719 "parser.y" + { (yyval.var_list) = NULL; } break; case 241: - -/* Line 1464 of yacc.c */ -#line 745 "parser.y" - { (yyval.var) = (yyvsp[(1) - (2)].var); ;} +/* Line 1787 of yacc.c */ +#line 720 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[(1) - (2)].var_list), (yyvsp[(2) - (2)].var) ); } break; case 242: - -/* Line 1464 of yacc.c */ -#line 746 "parser.y" - { (yyval.var) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 724 "parser.y" + { (yyval.var) = (yyvsp[(1) - (2)].var); } break; case 243: - -/* Line 1464 of yacc.c */ -#line 749 "parser.y" - { (yyval.var) = declare_var(check_field_attrs((yyvsp[(3) - (3)].declarator)->var->name, (yyvsp[(1) - (3)].attr_list)), - (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE); - free((yyvsp[(3) - (3)].declarator)); - ;} +/* Line 1787 of yacc.c */ +#line 725 "parser.y" + { (yyval.var) = NULL; } break; case 244: - -/* Line 1464 of yacc.c */ -#line 753 "parser.y" - { var_t *v = make_var(NULL); - v->type = (yyvsp[(2) - (2)].type); v->attrs = (yyvsp[(1) - (2)].attr_list); - (yyval.var) = v; - ;} +/* Line 1787 of yacc.c */ +#line 728 "parser.y" + { (yyval.var) = declare_var(check_field_attrs((yyvsp[(3) - (3)].declarator)->var->name, (yyvsp[(1) - (3)].attr_list)), + (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE); + free((yyvsp[(3) - (3)].declarator)); + } break; case 245: +/* Line 1787 of yacc.c */ +#line 732 "parser.y" + { var_t *v = make_var(NULL); + v->type = (yyvsp[(2) - (2)].type); v->attrs = (yyvsp[(1) - (2)].attr_list); + (yyval.var) = v; + } + break; -/* Line 1464 of yacc.c */ -#line 759 "parser.y" + case 246: +/* Line 1787 of yacc.c */ +#line 738 "parser.y" { (yyval.var) = (yyvsp[(1) - (1)].var); if (type_get_type((yyval.var)->type) != TYPE_FUNCTION) error_loc("only methods may be declared inside the methods section of a dispinterface\n"); check_function_attrs((yyval.var)->name, (yyval.var)->attrs); - ;} - break; - - case 246: - -/* Line 1464 of yacc.c */ -#line 768 "parser.y" - { (yyval.var) = declare_var((yyvsp[(1) - (3)].attr_list), (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE); - free((yyvsp[(3) - (3)].declarator)); - ;} + } break; case 247: - -/* Line 1464 of yacc.c */ -#line 771 "parser.y" - { (yyval.var) = declare_var(NULL, (yyvsp[(1) - (2)].declspec), (yyvsp[(2) - (2)].declarator), FALSE); - free((yyvsp[(2) - (2)].declarator)); - ;} +/* Line 1787 of yacc.c */ +#line 747 "parser.y" + { (yyval.var) = declare_var((yyvsp[(1) - (3)].attr_list), (yyvsp[(2) - (3)].declspec), (yyvsp[(3) - (3)].declarator), FALSE); + free((yyvsp[(3) - (3)].declarator)); + } break; case 248: - -/* Line 1464 of yacc.c */ -#line 776 "parser.y" - { (yyval.var) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 750 "parser.y" + { (yyval.var) = declare_var(NULL, (yyvsp[(1) - (2)].declspec), (yyvsp[(2) - (2)].declarator), FALSE); + free((yyvsp[(2) - (2)].declarator)); + } break; - case 250: - -/* Line 1464 of yacc.c */ -#line 780 "parser.y" - { (yyval.str) = NULL; ;} + case 249: +/* Line 1787 of yacc.c */ +#line 755 "parser.y" + { (yyval.var) = NULL; } break; case 251: - -/* Line 1464 of yacc.c */ -#line 781 "parser.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +/* Line 1787 of yacc.c */ +#line 759 "parser.y" + { (yyval.str) = NULL; } break; case 252: - -/* Line 1464 of yacc.c */ -#line 782 "parser.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +/* Line 1787 of yacc.c */ +#line 760 "parser.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 253: - -/* Line 1464 of yacc.c */ -#line 785 "parser.y" - { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); ;} +/* Line 1787 of yacc.c */ +#line 761 "parser.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); } break; case 254: - -/* Line 1464 of yacc.c */ -#line 787 "parser.y" - { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); ;} +/* Line 1787 of yacc.c */ +#line 764 "parser.y" + { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); } break; case 255: - -/* Line 1464 of yacc.c */ -#line 790 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} +/* Line 1787 of yacc.c */ +#line 766 "parser.y" + { (yyval.var) = make_var((yyvsp[(1) - (1)].str)); } break; case 256: - -/* Line 1464 of yacc.c */ -#line 791 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} +/* Line 1787 of yacc.c */ +#line 769 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } break; - case 258: - -/* Line 1464 of yacc.c */ -#line 793 "parser.y" - { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), -1); ;} + case 257: +/* Line 1787 of yacc.c */ +#line 770 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } break; case 259: - -/* Line 1464 of yacc.c */ -#line 794 "parser.y" - { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), 1); ;} +/* Line 1787 of yacc.c */ +#line 772 "parser.y" + { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), -1); } break; case 260: - -/* Line 1464 of yacc.c */ -#line 795 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); ;} +/* Line 1787 of yacc.c */ +#line 773 "parser.y" + { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[(2) - (2)].type)), 1); } break; case 261: - -/* Line 1464 of yacc.c */ -#line 796 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} +/* Line 1787 of yacc.c */ +#line 774 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); } break; case 262: - -/* Line 1464 of yacc.c */ -#line 797 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} +/* Line 1787 of yacc.c */ +#line 775 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } break; case 263: - -/* Line 1464 of yacc.c */ -#line 798 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} +/* Line 1787 of yacc.c */ +#line 776 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } break; case 264: - -/* Line 1464 of yacc.c */ -#line 799 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} +/* Line 1787 of yacc.c */ +#line 777 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } break; case 265: - -/* Line 1464 of yacc.c */ -#line 800 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} +/* Line 1787 of yacc.c */ +#line 778 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } break; - case 268: - -/* Line 1464 of yacc.c */ -#line 807 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); ;} + case 266: +/* Line 1787 of yacc.c */ +#line 779 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } break; case 269: - -/* Line 1464 of yacc.c */ -#line 808 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); ;} +/* Line 1787 of yacc.c */ +#line 786 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); } break; case 270: - -/* Line 1464 of yacc.c */ -#line 809 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); ;} +/* Line 1787 of yacc.c */ +#line 787 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); } break; case 271: - -/* Line 1464 of yacc.c */ -#line 810 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); ;} +/* Line 1787 of yacc.c */ +#line 788 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); } break; case 272: - -/* Line 1464 of yacc.c */ -#line 811 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); ;} +/* Line 1787 of yacc.c */ +#line 789 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); } break; case 273: - -/* Line 1464 of yacc.c */ -#line 812 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); ;} +/* Line 1787 of yacc.c */ +#line 790 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); } break; case 274: - -/* Line 1464 of yacc.c */ -#line 813 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); ;} +/* Line 1787 of yacc.c */ +#line 791 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); } break; case 275: - -/* Line 1464 of yacc.c */ -#line 814 "parser.y" - { (yyval.type) = type_new_int(TYPE_BASIC_INT3264, 0); ;} +/* Line 1787 of yacc.c */ +#line 792 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); } break; case 276: - -/* Line 1464 of yacc.c */ -#line 817 "parser.y" - { (yyval.type) = type_new_coclass((yyvsp[(2) - (2)].str)); ;} +/* Line 1787 of yacc.c */ +#line 793 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT3264, 0); } break; case 277: +/* Line 1787 of yacc.c */ +#line 796 "parser.y" + { (yyval.type) = type_new_coclass((yyvsp[(2) - (2)].str)); } + break; -/* Line 1464 of yacc.c */ -#line 818 "parser.y" + case 278: +/* Line 1787 of yacc.c */ +#line 797 "parser.y" { (yyval.type) = find_type((yyvsp[(2) - (2)].str), 0); if (type_get_type_detect_alias((yyval.type)) != TYPE_COCLASS) error_loc("%s was not declared a coclass at %s:%d\n", (yyvsp[(2) - (2)].str), (yyval.type)->loc_info.input_name, (yyval.type)->loc_info.line_number); - ;} - break; - - case 278: - -/* Line 1464 of yacc.c */ -#line 826 "parser.y" - { (yyval.type) = (yyvsp[(2) - (2)].type); - check_def((yyval.type)); - (yyval.type)->attrs = check_coclass_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); - ;} + } break; case 279: - -/* Line 1464 of yacc.c */ -#line 833 "parser.y" - { (yyval.type) = type_coclass_define((yyvsp[(1) - (5)].type), (yyvsp[(3) - (5)].ifref_list)); ;} +/* Line 1787 of yacc.c */ +#line 805 "parser.y" + { (yyval.type) = (yyvsp[(2) - (2)].type); + check_def((yyval.type)); + (yyval.type)->attrs = check_coclass_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); + } break; case 280: - -/* Line 1464 of yacc.c */ -#line 837 "parser.y" - { fprintf (stderr, "NS<%s>\n", (yyvsp[(2) - (2)].str)); (yyval.type)=NULL; ;} +/* Line 1787 of yacc.c */ +#line 812 "parser.y" + { (yyval.type) = type_coclass_define((yyvsp[(1) - (5)].type), (yyvsp[(3) - (5)].ifref_list)); } break; case 281: - -/* Line 1464 of yacc.c */ -#line 840 "parser.y" - { (yyval.ifref_list) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 815 "parser.y" + { (yyval.type) = NULL; } break; case 282: - -/* Line 1464 of yacc.c */ -#line 841 "parser.y" - { (yyval.ifref_list) = append_ifref( (yyvsp[(1) - (2)].ifref_list), (yyvsp[(2) - (2)].ifref) ); ;} +/* Line 1787 of yacc.c */ +#line 818 "parser.y" + { (yyval.ifref_list) = NULL; } break; case 283: - -/* Line 1464 of yacc.c */ -#line 845 "parser.y" - { (yyval.ifref) = make_ifref((yyvsp[(2) - (2)].type)); (yyval.ifref)->attrs = (yyvsp[(1) - (2)].attr_list); ;} +/* Line 1787 of yacc.c */ +#line 819 "parser.y" + { (yyval.ifref_list) = append_ifref( (yyvsp[(1) - (2)].ifref_list), (yyvsp[(2) - (2)].ifref) ); } break; case 284: - -/* Line 1464 of yacc.c */ -#line 848 "parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); ;} +/* Line 1787 of yacc.c */ +#line 823 "parser.y" + { (yyval.ifref) = make_ifref((yyvsp[(2) - (2)].type)); (yyval.ifref)->attrs = (yyvsp[(1) - (2)].attr_list); } break; case 285: - -/* Line 1464 of yacc.c */ -#line 849 "parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); ;} +/* Line 1787 of yacc.c */ +#line 826 "parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } break; case 286: +/* Line 1787 of yacc.c */ +#line 827 "parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } + break; -/* Line 1464 of yacc.c */ -#line 852 "parser.y" + case 287: +/* Line 1787 of yacc.c */ +#line 830 "parser.y" { attr_t *attrs; (yyval.type) = (yyvsp[(2) - (2)].type); check_def((yyval.type)); attrs = make_attr(ATTR_DISPINTERFACE); (yyval.type)->attrs = append_attr( check_dispiface_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)), attrs ); (yyval.type)->defined = TRUE; - ;} - break; - - case 287: - -/* Line 1464 of yacc.c */ -#line 861 "parser.y" - { (yyval.var_list) = NULL; ;} + } break; case 288: - -/* Line 1464 of yacc.c */ -#line 862 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(2) - (3)].var) ); ;} +/* Line 1787 of yacc.c */ +#line 839 "parser.y" + { (yyval.var_list) = NULL; } break; case 289: - -/* Line 1464 of yacc.c */ -#line 865 "parser.y" - { (yyval.var_list) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 840 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(2) - (3)].var) ); } break; case 290: - -/* Line 1464 of yacc.c */ -#line 866 "parser.y" - { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(2) - (3)].var) ); ;} +/* Line 1787 of yacc.c */ +#line 843 "parser.y" + { (yyval.var_list) = NULL; } break; case 291: - -/* Line 1464 of yacc.c */ -#line 872 "parser.y" - { (yyval.type) = (yyvsp[(1) - (5)].type); - type_dispinterface_define((yyval.type), (yyvsp[(3) - (5)].var_list), (yyvsp[(4) - (5)].var_list)); - ;} +/* Line 1787 of yacc.c */ +#line 844 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[(1) - (3)].var_list), (yyvsp[(2) - (3)].var) ); } break; case 292: - -/* Line 1464 of yacc.c */ -#line 876 "parser.y" +/* Line 1787 of yacc.c */ +#line 850 "parser.y" { (yyval.type) = (yyvsp[(1) - (5)].type); - type_dispinterface_define_from_iface((yyval.type), (yyvsp[(3) - (5)].type)); - ;} + type_dispinterface_define((yyval.type), (yyvsp[(3) - (5)].var_list), (yyvsp[(4) - (5)].var_list)); + } break; case 293: - -/* Line 1464 of yacc.c */ -#line 881 "parser.y" - { (yyval.type) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 854 "parser.y" + { (yyval.type) = (yyvsp[(1) - (5)].type); + type_dispinterface_define_from_iface((yyval.type), (yyvsp[(3) - (5)].type)); + } break; case 294: - -/* Line 1464 of yacc.c */ -#line 882 "parser.y" - { (yyval.type) = find_type_or_error2((yyvsp[(2) - (2)].str), 0); ;} +/* Line 1787 of yacc.c */ +#line 859 "parser.y" + { (yyval.type) = NULL; } break; case 295: - -/* Line 1464 of yacc.c */ -#line 885 "parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); ;} +/* Line 1787 of yacc.c */ +#line 860 "parser.y" + { (yyval.type) = find_type_or_error2((yyvsp[(2) - (2)].str), 0); } break; case 296: - -/* Line 1464 of yacc.c */ -#line 886 "parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); ;} +/* Line 1787 of yacc.c */ +#line 863 "parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } break; case 297: +/* Line 1787 of yacc.c */ +#line 864 "parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[(2) - (2)].str), 0); } + break; -/* Line 1464 of yacc.c */ -#line 889 "parser.y" + case 298: +/* Line 1787 of yacc.c */ +#line 867 "parser.y" { (yyval.ifinfo).interface = (yyvsp[(2) - (2)].type); (yyval.ifinfo).old_pointer_default = pointer_default; if (is_attr((yyvsp[(1) - (2)].attr_list), ATTR_POINTERDEFAULT)) @@ -4944,633 +4665,559 @@ check_def((yyvsp[(2) - (2)].type)); (yyvsp[(2) - (2)].type)->attrs = check_iface_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); (yyvsp[(2) - (2)].type)->defined = TRUE; - ;} + } break; - case 298: - -/* Line 1464 of yacc.c */ -#line 900 "parser.y" + case 299: +/* Line 1787 of yacc.c */ +#line 878 "parser.y" { (yyval.type) = (yyvsp[(1) - (6)].ifinfo).interface; if((yyval.type) == (yyvsp[(2) - (6)].type)) error_loc("Interface can't inherit from itself\n"); type_interface_define((yyval.type), (yyvsp[(2) - (6)].type), (yyvsp[(4) - (6)].stmt_list)); pointer_default = (yyvsp[(1) - (6)].ifinfo).old_pointer_default; - ;} - break; - - case 299: - -/* Line 1464 of yacc.c */ -#line 910 "parser.y" - { (yyval.type) = (yyvsp[(1) - (8)].ifinfo).interface; - type_interface_define((yyval.type), find_type_or_error2((yyvsp[(3) - (8)].str), 0), (yyvsp[(6) - (8)].stmt_list)); - pointer_default = (yyvsp[(1) - (8)].ifinfo).old_pointer_default; - ;} + } break; case 300: - -/* Line 1464 of yacc.c */ -#line 914 "parser.y" - { (yyval.type) = (yyvsp[(1) - (2)].type); ;} +/* Line 1787 of yacc.c */ +#line 888 "parser.y" + { (yyval.type) = (yyvsp[(1) - (8)].ifinfo).interface; + type_interface_define((yyval.type), find_type_or_error2((yyvsp[(3) - (8)].str), 0), (yyvsp[(6) - (8)].stmt_list)); + pointer_default = (yyvsp[(1) - (8)].ifinfo).old_pointer_default; + } break; case 301: - -/* Line 1464 of yacc.c */ -#line 918 "parser.y" - { (yyval.type) = (yyvsp[(1) - (2)].type); ;} +/* Line 1787 of yacc.c */ +#line 892 "parser.y" + { (yyval.type) = (yyvsp[(1) - (2)].type); } break; case 302: - -/* Line 1464 of yacc.c */ -#line 919 "parser.y" - { (yyval.type) = (yyvsp[(1) - (2)].type); ;} +/* Line 1787 of yacc.c */ +#line 896 "parser.y" + { (yyval.type) = (yyvsp[(1) - (2)].type); } break; case 303: - -/* Line 1464 of yacc.c */ -#line 922 "parser.y" - { (yyval.type) = type_new_module((yyvsp[(2) - (2)].str)); ;} +/* Line 1787 of yacc.c */ +#line 897 "parser.y" + { (yyval.type) = (yyvsp[(1) - (2)].type); } break; case 304: - -/* Line 1464 of yacc.c */ -#line 923 "parser.y" - { (yyval.type) = type_new_module((yyvsp[(2) - (2)].str)); ;} +/* Line 1787 of yacc.c */ +#line 900 "parser.y" + { (yyval.type) = type_new_module((yyvsp[(2) - (2)].str)); } break; case 305: - -/* Line 1464 of yacc.c */ -#line 926 "parser.y" - { (yyval.type) = (yyvsp[(2) - (2)].type); - (yyval.type)->attrs = check_module_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); - ;} +/* Line 1787 of yacc.c */ +#line 901 "parser.y" + { (yyval.type) = type_new_module((yyvsp[(2) - (2)].str)); } break; case 306: - -/* Line 1464 of yacc.c */ -#line 932 "parser.y" - { (yyval.type) = (yyvsp[(1) - (5)].type); - type_module_define((yyval.type), (yyvsp[(3) - (5)].stmt_list)); - ;} +/* Line 1787 of yacc.c */ +#line 904 "parser.y" + { (yyval.type) = (yyvsp[(2) - (2)].type); + (yyval.type)->attrs = check_module_attrs((yyvsp[(2) - (2)].type)->name, (yyvsp[(1) - (2)].attr_list)); + } break; case 307: - -/* Line 1464 of yacc.c */ -#line 938 "parser.y" - { (yyval.stgclass) = STG_EXTERN; ;} +/* Line 1787 of yacc.c */ +#line 910 "parser.y" + { (yyval.type) = (yyvsp[(1) - (5)].type); + type_module_define((yyval.type), (yyvsp[(3) - (5)].stmt_list)); + } break; case 308: - -/* Line 1464 of yacc.c */ -#line 939 "parser.y" - { (yyval.stgclass) = STG_STATIC; ;} +/* Line 1787 of yacc.c */ +#line 916 "parser.y" + { (yyval.stgclass) = STG_EXTERN; } break; case 309: - -/* Line 1464 of yacc.c */ -#line 940 "parser.y" - { (yyval.stgclass) = STG_REGISTER; ;} +/* Line 1787 of yacc.c */ +#line 917 "parser.y" + { (yyval.stgclass) = STG_STATIC; } break; case 310: - -/* Line 1464 of yacc.c */ -#line 944 "parser.y" - { (yyval.attr) = make_attr(ATTR_INLINE); ;} +/* Line 1787 of yacc.c */ +#line 918 "parser.y" + { (yyval.stgclass) = STG_REGISTER; } break; case 311: - -/* Line 1464 of yacc.c */ -#line 948 "parser.y" - { (yyval.attr) = make_attr(ATTR_CONST); ;} +/* Line 1787 of yacc.c */ +#line 922 "parser.y" + { (yyval.attr) = make_attr(ATTR_INLINE); } break; case 312: - -/* Line 1464 of yacc.c */ -#line 951 "parser.y" - { (yyval.attr_list) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 926 "parser.y" + { (yyval.attr) = make_attr(ATTR_CONST); } break; case 313: - -/* Line 1464 of yacc.c */ -#line 952 "parser.y" - { (yyval.attr_list) = append_attr((yyvsp[(1) - (2)].attr_list), (yyvsp[(2) - (2)].attr)); ;} +/* Line 1787 of yacc.c */ +#line 929 "parser.y" + { (yyval.attr_list) = NULL; } break; case 314: - -/* Line 1464 of yacc.c */ -#line 955 "parser.y" - { (yyval.declspec) = make_decl_spec((yyvsp[(1) - (2)].type), (yyvsp[(2) - (2)].declspec), NULL, NULL, STG_NONE); ;} +/* Line 1787 of yacc.c */ +#line 930 "parser.y" + { (yyval.attr_list) = append_attr((yyvsp[(1) - (2)].attr_list), (yyvsp[(2) - (2)].attr)); } break; case 315: - -/* Line 1464 of yacc.c */ -#line 957 "parser.y" - { (yyval.declspec) = make_decl_spec((yyvsp[(2) - (3)].type), (yyvsp[(1) - (3)].declspec), (yyvsp[(3) - (3)].declspec), NULL, STG_NONE); ;} +/* Line 1787 of yacc.c */ +#line 933 "parser.y" + { (yyval.declspec) = make_decl_spec((yyvsp[(1) - (2)].type), (yyvsp[(2) - (2)].declspec), NULL, NULL, STG_NONE); } break; case 316: - -/* Line 1464 of yacc.c */ -#line 960 "parser.y" - { (yyval.declspec) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 935 "parser.y" + { (yyval.declspec) = make_decl_spec((yyvsp[(2) - (3)].type), (yyvsp[(1) - (3)].declspec), (yyvsp[(3) - (3)].declspec), NULL, STG_NONE); } break; - case 318: - -/* Line 1464 of yacc.c */ -#line 965 "parser.y" - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, (yyvsp[(1) - (2)].attr), STG_NONE); ;} + case 317: +/* Line 1787 of yacc.c */ +#line 938 "parser.y" + { (yyval.declspec) = NULL; } break; case 319: - -/* Line 1464 of yacc.c */ -#line 966 "parser.y" - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, (yyvsp[(1) - (2)].attr), STG_NONE); ;} +/* Line 1787 of yacc.c */ +#line 943 "parser.y" + { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, (yyvsp[(1) - (2)].attr), STG_NONE); } break; case 320: - -/* Line 1464 of yacc.c */ -#line 967 "parser.y" - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, NULL, (yyvsp[(1) - (2)].stgclass)); ;} +/* Line 1787 of yacc.c */ +#line 944 "parser.y" + { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, (yyvsp[(1) - (2)].attr), STG_NONE); } break; case 321: - -/* Line 1464 of yacc.c */ -#line 972 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} +/* Line 1787 of yacc.c */ +#line 945 "parser.y" + { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[(2) - (2)].declspec), NULL, NULL, (yyvsp[(1) - (2)].stgclass)); } break; case 322: - -/* Line 1464 of yacc.c */ -#line 973 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); - else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} +/* Line 1787 of yacc.c */ +#line 950 "parser.y" + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } break; - case 324: - -/* Line 1464 of yacc.c */ -#line 979 "parser.y" - { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); ;} + case 323: +/* Line 1787 of yacc.c */ +#line 951 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); + else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } break; case 325: - -/* Line 1464 of yacc.c */ -#line 980 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); ;} +/* Line 1787 of yacc.c */ +#line 957 "parser.y" + { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); } break; case 326: - -/* Line 1464 of yacc.c */ -#line 981 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 958 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); } break; case 327: - -/* Line 1464 of yacc.c */ -#line 982 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); - (yyval.declarator)->type = NULL; - ;} +/* Line 1787 of yacc.c */ +#line 959 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); } break; case 328: - -/* Line 1464 of yacc.c */ -#line 991 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} +/* Line 1787 of yacc.c */ +#line 960 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); + (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); + (yyval.declarator)->type = NULL; + } break; case 329: - -/* Line 1464 of yacc.c */ -#line 992 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); - else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} +/* Line 1787 of yacc.c */ +#line 969 "parser.y" + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } break; - case 331: - -/* Line 1464 of yacc.c */ -#line 1000 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} + case 330: +/* Line 1787 of yacc.c */ +#line 970 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); + else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } break; case 332: - -/* Line 1464 of yacc.c */ -#line 1001 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); - else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} +/* Line 1787 of yacc.c */ +#line 978 "parser.y" + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } break; case 333: - -/* Line 1464 of yacc.c */ -#line 1006 "parser.y" - { (yyval.declarator) = make_declarator(NULL); ;} +/* Line 1787 of yacc.c */ +#line 979 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); + else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } break; - case 335: - -/* Line 1464 of yacc.c */ -#line 1012 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); ;} + case 334: +/* Line 1787 of yacc.c */ +#line 984 "parser.y" + { (yyval.declarator) = make_declarator(NULL); } break; case 336: - -/* Line 1464 of yacc.c */ -#line 1013 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 990 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); } break; case 337: - -/* Line 1464 of yacc.c */ -#line 1014 "parser.y" - { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); ;} +/* Line 1787 of yacc.c */ +#line 991 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); } break; case 338: - -/* Line 1464 of yacc.c */ -#line 1016 "parser.y" - { (yyval.declarator) = make_declarator(NULL); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(2) - (3)].var_list))); - (yyval.declarator)->type = NULL; - ;} +/* Line 1787 of yacc.c */ +#line 992 "parser.y" + { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); } break; case 339: - -/* Line 1464 of yacc.c */ -#line 1021 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); - (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); - (yyval.declarator)->type = NULL; - ;} - break; - - case 340: - -/* Line 1464 of yacc.c */ -#line 1030 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} - break; - - case 341: - -/* Line 1464 of yacc.c */ -#line 1031 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} - break; - - case 343: - -/* Line 1464 of yacc.c */ -#line 1038 "parser.y" - { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); ;} - break; - - case 344: - -/* Line 1464 of yacc.c */ -#line 1039 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); ;} - break; - - case 345: - -/* Line 1464 of yacc.c */ -#line 1043 "parser.y" - { (yyval.declarator) = make_declarator(NULL); ;} - break; - - case 347: - -/* Line 1464 of yacc.c */ -#line 1051 "parser.y" - { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); ;} - break; - - case 348: - -/* Line 1464 of yacc.c */ -#line 1052 "parser.y" - { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); ;} - break; - - case 349: - -/* Line 1464 of yacc.c */ -#line 1053 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); ;} - break; - - case 350: - -/* Line 1464 of yacc.c */ -#line 1054 "parser.y" - { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); ;} - break; - - case 351: - -/* Line 1464 of yacc.c */ -#line 1056 "parser.y" +/* Line 1787 of yacc.c */ +#line 994 "parser.y" { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(2) - (3)].var_list))); (yyval.declarator)->type = NULL; - ;} + } break; - case 352: - -/* Line 1464 of yacc.c */ -#line 1061 "parser.y" + case 340: +/* Line 1787 of yacc.c */ +#line 999 "parser.y" { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); (yyval.declarator)->type = NULL; - ;} + } + break; + + case 341: +/* Line 1787 of yacc.c */ +#line 1008 "parser.y" + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } + break; + + case 342: +/* Line 1787 of yacc.c */ +#line 1009 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } + break; + + case 344: +/* Line 1787 of yacc.c */ +#line 1016 "parser.y" + { (yyval.declarator) = (yyvsp[(3) - (3)].declarator); (yyval.declarator)->type = append_ptrchain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[(2) - (3)].attr_list))); } + break; + + case 345: +/* Line 1787 of yacc.c */ +#line 1017 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (2)].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[(1) - (2)].str))); } + break; + + case 346: +/* Line 1787 of yacc.c */ +#line 1021 "parser.y" + { (yyval.declarator) = make_declarator(NULL); } + break; + + case 348: +/* Line 1787 of yacc.c */ +#line 1029 "parser.y" + { (yyval.declarator) = make_declarator((yyvsp[(1) - (1)].var)); } + break; + + case 349: +/* Line 1787 of yacc.c */ +#line 1030 "parser.y" + { (yyval.declarator) = (yyvsp[(2) - (3)].declarator); } + break; + + case 350: +/* Line 1787 of yacc.c */ +#line 1031 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(2) - (2)].expr)); } + break; + + case 351: +/* Line 1787 of yacc.c */ +#line 1032 "parser.y" + { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->array = append_array((yyval.declarator)->array, (yyvsp[(1) - (1)].expr)); } + break; + + case 352: +/* Line 1787 of yacc.c */ +#line 1034 "parser.y" + { (yyval.declarator) = make_declarator(NULL); + (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(2) - (3)].var_list))); + (yyval.declarator)->type = NULL; + } break; case 353: - -/* Line 1464 of yacc.c */ -#line 1068 "parser.y" - { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); ;} +/* Line 1787 of yacc.c */ +#line 1039 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (4)].declarator); + (yyval.declarator)->func_type = append_ptrchain_type((yyval.declarator)->type, type_new_function((yyvsp[(3) - (4)].var_list))); + (yyval.declarator)->type = NULL; + } break; case 354: - -/* Line 1464 of yacc.c */ -#line 1069 "parser.y" - { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); ;} +/* Line 1787 of yacc.c */ +#line 1046 "parser.y" + { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); } break; case 355: - -/* Line 1464 of yacc.c */ -#line 1072 "parser.y" - { (yyval.expr) = NULL; ;} +/* Line 1787 of yacc.c */ +#line 1047 "parser.y" + { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); } break; case 356: - -/* Line 1464 of yacc.c */ -#line 1073 "parser.y" - { (yyval.expr) = (yyvsp[(2) - (2)].expr); ;} +/* Line 1787 of yacc.c */ +#line 1050 "parser.y" + { (yyval.expr) = NULL; } break; case 357: - -/* Line 1464 of yacc.c */ -#line 1076 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->bits = (yyvsp[(2) - (2)].expr); - if (!(yyval.declarator)->bits && !(yyval.declarator)->var->name) - error_loc("unnamed fields are not allowed\n"); - ;} +/* Line 1787 of yacc.c */ +#line 1051 "parser.y" + { (yyval.expr) = (yyvsp[(2) - (2)].expr); } break; case 358: - -/* Line 1464 of yacc.c */ -#line 1083 "parser.y" - { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); ;} +/* Line 1787 of yacc.c */ +#line 1054 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (2)].declarator); (yyval.declarator)->bits = (yyvsp[(2) - (2)].expr); + if (!(yyval.declarator)->bits && !(yyval.declarator)->var->name) + error_loc("unnamed fields are not allowed\n"); + } break; case 359: - -/* Line 1464 of yacc.c */ -#line 1085 "parser.y" - { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); ;} +/* Line 1787 of yacc.c */ +#line 1061 "parser.y" + { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[(1) - (1)].declarator) ); } break; case 360: - -/* Line 1464 of yacc.c */ -#line 1089 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (1)].declarator); ;} +/* Line 1787 of yacc.c */ +#line 1063 "parser.y" + { (yyval.declarator_list) = append_declarator( (yyvsp[(1) - (3)].declarator_list), (yyvsp[(3) - (3)].declarator) ); } break; case 361: - -/* Line 1464 of yacc.c */ -#line 1090 "parser.y" - { (yyval.declarator) = (yyvsp[(1) - (3)].declarator); (yyvsp[(1) - (3)].declarator)->var->eval = (yyvsp[(3) - (3)].expr); ;} +/* Line 1787 of yacc.c */ +#line 1067 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (1)].declarator); } break; case 362: - -/* Line 1464 of yacc.c */ -#line 1094 "parser.y" - { (yyval.num) = THREADING_APARTMENT; ;} +/* Line 1787 of yacc.c */ +#line 1068 "parser.y" + { (yyval.declarator) = (yyvsp[(1) - (3)].declarator); (yyvsp[(1) - (3)].declarator)->var->eval = (yyvsp[(3) - (3)].expr); } break; case 363: - -/* Line 1464 of yacc.c */ -#line 1095 "parser.y" - { (yyval.num) = THREADING_NEUTRAL; ;} +/* Line 1787 of yacc.c */ +#line 1072 "parser.y" + { (yyval.num) = THREADING_APARTMENT; } break; case 364: - -/* Line 1464 of yacc.c */ -#line 1096 "parser.y" - { (yyval.num) = THREADING_SINGLE; ;} +/* Line 1787 of yacc.c */ +#line 1073 "parser.y" + { (yyval.num) = THREADING_NEUTRAL; } break; case 365: - -/* Line 1464 of yacc.c */ -#line 1097 "parser.y" - { (yyval.num) = THREADING_FREE; ;} +/* Line 1787 of yacc.c */ +#line 1074 "parser.y" + { (yyval.num) = THREADING_SINGLE; } break; case 366: - -/* Line 1464 of yacc.c */ -#line 1098 "parser.y" - { (yyval.num) = THREADING_BOTH; ;} +/* Line 1787 of yacc.c */ +#line 1075 "parser.y" + { (yyval.num) = THREADING_FREE; } break; case 367: - -/* Line 1464 of yacc.c */ -#line 1102 "parser.y" - { (yyval.num) = RPC_FC_RP; ;} +/* Line 1787 of yacc.c */ +#line 1076 "parser.y" + { (yyval.num) = THREADING_BOTH; } break; case 368: - -/* Line 1464 of yacc.c */ -#line 1103 "parser.y" - { (yyval.num) = RPC_FC_UP; ;} +/* Line 1787 of yacc.c */ +#line 1080 "parser.y" + { (yyval.num) = RPC_FC_RP; } break; case 369: - -/* Line 1464 of yacc.c */ -#line 1104 "parser.y" - { (yyval.num) = RPC_FC_FP; ;} +/* Line 1787 of yacc.c */ +#line 1081 "parser.y" + { (yyval.num) = RPC_FC_UP; } break; case 370: - -/* Line 1464 of yacc.c */ -#line 1107 "parser.y" - { (yyval.type) = type_new_struct((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); ;} +/* Line 1787 of yacc.c */ +#line 1082 "parser.y" + { (yyval.num) = RPC_FC_FP; } break; case 371: - -/* Line 1464 of yacc.c */ -#line 1110 "parser.y" - { (yyval.type) = type_new_void(); ;} +/* Line 1787 of yacc.c */ +#line 1085 "parser.y" + { (yyval.type) = type_new_struct((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); } break; case 372: - -/* Line 1464 of yacc.c */ -#line 1111 "parser.y" - { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); ;} +/* Line 1787 of yacc.c */ +#line 1088 "parser.y" + { (yyval.type) = type_new_void(); } break; case 373: - -/* Line 1464 of yacc.c */ -#line 1112 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); ;} +/* Line 1787 of yacc.c */ +#line 1089 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[(1) - (1)].str), 0); } break; case 374: - -/* Line 1464 of yacc.c */ -#line 1113 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); ;} +/* Line 1787 of yacc.c */ +#line 1090 "parser.y" + { (yyval.type) = (yyvsp[(1) - (1)].type); } break; case 375: - -/* Line 1464 of yacc.c */ -#line 1114 "parser.y" - { (yyval.type) = type_new_enum((yyvsp[(2) - (2)].str), FALSE, NULL); ;} +/* Line 1787 of yacc.c */ +#line 1091 "parser.y" + { (yyval.type) = (yyvsp[(1) - (1)].type); } break; case 376: - -/* Line 1464 of yacc.c */ -#line 1115 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); ;} +/* Line 1787 of yacc.c */ +#line 1092 "parser.y" + { (yyval.type) = type_new_enum((yyvsp[(2) - (2)].str), FALSE, NULL); } break; case 377: - -/* Line 1464 of yacc.c */ -#line 1116 "parser.y" - { (yyval.type) = type_new_struct((yyvsp[(2) - (2)].str), FALSE, NULL); ;} +/* Line 1787 of yacc.c */ +#line 1093 "parser.y" + { (yyval.type) = (yyvsp[(1) - (1)].type); } break; case 378: - -/* Line 1464 of yacc.c */ -#line 1117 "parser.y" - { (yyval.type) = (yyvsp[(1) - (1)].type); ;} +/* Line 1787 of yacc.c */ +#line 1094 "parser.y" + { (yyval.type) = type_new_struct((yyvsp[(2) - (2)].str), FALSE, NULL); } break; case 379: - -/* Line 1464 of yacc.c */ -#line 1118 "parser.y" - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (2)].str), FALSE, NULL); ;} +/* Line 1787 of yacc.c */ +#line 1095 "parser.y" + { (yyval.type) = (yyvsp[(1) - (1)].type); } break; case 380: - -/* Line 1464 of yacc.c */ -#line 1119 "parser.y" - { (yyval.type) = make_safearray((yyvsp[(3) - (4)].type)); ;} +/* Line 1787 of yacc.c */ +#line 1096 "parser.y" + { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (2)].str), FALSE, NULL); } break; case 381: - -/* Line 1464 of yacc.c */ -#line 1123 "parser.y" - { - (yyvsp[(1) - (5)].attr_list) = append_attribs ((yyvsp[(1) - (5)].attr_list), (yyvsp[(3) - (5)].attr_list)); - reg_typedefs((yyvsp[(4) - (5)].declspec), (yyvsp[(5) - (5)].declarator_list), check_typedef_attrs((yyvsp[(1) - (5)].attr_list))); - (yyval.statement) = make_statement_typedef((yyvsp[(5) - (5)].declarator_list)); - ;} +/* Line 1787 of yacc.c */ +#line 1097 "parser.y" + { (yyval.type) = make_safearray((yyvsp[(3) - (4)].type)); } break; case 382: - -/* Line 1464 of yacc.c */ -#line 1131 "parser.y" - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); ;} +/* Line 1787 of yacc.c */ +#line 1101 "parser.y" + { (yyvsp[(1) - (5)].attr_list) = append_attribs((yyvsp[(1) - (5)].attr_list), (yyvsp[(3) - (5)].attr_list)); + reg_typedefs((yyvsp[(4) - (5)].declspec), (yyvsp[(5) - (5)].declarator_list), check_typedef_attrs((yyvsp[(1) - (5)].attr_list))); + (yyval.statement) = make_statement_typedef((yyvsp[(5) - (5)].declarator_list)); + } break; case 383: - -/* Line 1464 of yacc.c */ -#line 1134 "parser.y" - { (yyval.type) = type_new_encapsulated_union((yyvsp[(2) - (10)].str), (yyvsp[(5) - (10)].var), (yyvsp[(7) - (10)].var), (yyvsp[(9) - (10)].var_list)); ;} +/* Line 1787 of yacc.c */ +#line 1108 "parser.y" + { (yyval.type) = type_new_nonencapsulated_union((yyvsp[(2) - (5)].str), TRUE, (yyvsp[(4) - (5)].var_list)); } break; case 384: - -/* Line 1464 of yacc.c */ -#line 1138 "parser.y" - { (yyval.num) = MAKEVERSION((yyvsp[(1) - (1)].num), 0); ;} +/* Line 1787 of yacc.c */ +#line 1111 "parser.y" + { (yyval.type) = type_new_encapsulated_union((yyvsp[(2) - (10)].str), (yyvsp[(5) - (10)].var), (yyvsp[(7) - (10)].var), (yyvsp[(9) - (10)].var_list)); } break; case 385: - -/* Line 1464 of yacc.c */ -#line 1139 "parser.y" - { (yyval.num) = MAKEVERSION((yyvsp[(1) - (3)].num), (yyvsp[(3) - (3)].num)); ;} +/* Line 1787 of yacc.c */ +#line 1115 "parser.y" + { (yyval.num) = MAKEVERSION((yyvsp[(1) - (1)].num), 0); } break; case 386: +/* Line 1787 of yacc.c */ +#line 1116 "parser.y" + { (yyval.num) = MAKEVERSION((yyvsp[(1) - (3)].num), (yyvsp[(3) - (3)].num)); } + break; -/* Line 1464 of yacc.c */ -#line 1140 "parser.y" - { (yyval.num) = (yyvsp[(1) - (1)].num); ;} + case 387: +/* Line 1787 of yacc.c */ +#line 1117 "parser.y" + { (yyval.num) = (yyvsp[(1) - (1)].num); } break; - -/* Line 1464 of yacc.c */ -#line 5572 "parser.tab.c" +/* Line 1787 of yacc.c */ +#line 5208 "parser.tab.c" default: break; } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); @@ -5598,6 +5245,10 @@ | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { @@ -5605,37 +5256,36 @@ #if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); #else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) - { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; - if (yymsg != yymsgbuf) - YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else - { - yymsg = yymsgbuf; - yymsg_alloc = sizeof yymsgbuf; - } - } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) + { + if (yymsg != yymsgbuf) + YYSTACK_FREE (yymsg); + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) + { + yymsg = yymsgbuf; + yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; + } + } + yyerror (yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; } +# undef YYSYNTAX_ERROR #endif } @@ -5694,7 +5344,7 @@ for (;;) { yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) + if (!yypact_value_is_default (yyn)) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) @@ -5717,7 +5367,9 @@ YY_STACK_PRINT (yyss, yyssp); } + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; + YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ @@ -5741,7 +5393,7 @@ yyresult = 1; goto yyreturn; -#if !defined(yyoverflow) || YYERROR_VERBOSE +#if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ @@ -5753,8 +5405,13 @@ yyreturn: if (yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); @@ -5778,9 +5435,8 @@ } - -/* Line 1684 of yacc.c */ -#line 1143 "parser.y" +/* Line 2050 of yacc.c */ +#line 1120 "parser.y" static void decl_builtin_basic(const char *name, enum type_basic_type type) @@ -6513,7 +6169,7 @@ type->name = gen_name(); } else if (is_attr(attrs, ATTR_UUID) && !is_attr(attrs, ATTR_PUBLIC) - && !is_attr (attrs, ATTR_HIDDEN)) + && !is_attr(attrs, ATTR_HIDDEN)) attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) ); LIST_FOR_EACH_ENTRY( decl, decls, const declarator_t, entry ) @@ -6687,7 +6343,7 @@ /* ATTR_ANNOTATION */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "annotation" }, /* ATTR_APPOBJECT */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "appobject" }, /* ATTR_ASYNC */ { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "async" }, - /* ATTR_ASYNCUUID */ { 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "async_uuid" }, + /* ATTR_ASYNCUUID */ { 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "async_uuid" }, /* ATTR_AUTO_HANDLE */ { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "auto_handle" }, /* ATTR_BINDABLE */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "bindable" }, /* ATTR_BROADCAST */ { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "broadcast" }, @@ -6778,7 +6434,7 @@ /* ATTR_UIDEFAULT */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "uidefault" }, /* ATTR_USESGETLASTERROR */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "usesgetlasterror" }, /* ATTR_USERMARSHAL */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "user_marshal" }, - /* ATTR_UUID */ { 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "uuid" }, + /* ATTR_UUID */ { 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, "uuid" }, /* ATTR_V1ENUM */ { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, "v1_enum" }, /* ATTR_VARARG */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "vararg" }, /* ATTR_VERSION */ { 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, "version" }, @@ -7410,6 +7066,13 @@ return stmt; } +static statement_t *make_statement_pragma(const char *str) +{ + statement_t *stmt = make_statement(STMT_PRAGMA); + stmt->u.str = str; + return stmt; +} + static statement_t *make_statement_cppquote(const char *str) { statement_t *stmt = make_statement(STMT_CPPQUOTE); @@ -7468,18 +7131,18 @@ static statement_list_t *append_statements(statement_list_t *l1, statement_list_t *l2) { - if (!l2) return l1; - if (!l1 || l1 == l2) return l2; - list_move_tail (l1, l2); - return l1; + if (!l2) return l1; + if (!l1 || l1 == l2) return l2; + list_move_tail (l1, l2); + return l1; } static attr_list_t *append_attribs(attr_list_t *l1, attr_list_t *l2) { - if (!l2) return l1; - if (!l1 || l1 == l2) return l2; - list_move_tail (l1, l2); - return l1; + if (!l2) return l1; + if (!l1 || l1 == l2) return l2; + list_move_tail (l1, l2); + return l1; } static statement_list_t *append_statement(statement_list_t *list, statement_t *stmt) @@ -7507,4 +7170,3 @@ error_loc("%s: redefinition error; original definition was at %s:%d\n", t->name, t->loc_info.input_name, t->loc_info.line_number); } -
diff --git a/mingw-w64-tools/widl/src/parser.tab.h b/mingw-w64-tools/widl/src/parser.tab.h index 430a977..9cb4037 100644 --- a/mingw-w64-tools/widl/src/parser.tab.h +++ b/mingw-w64-tools/widl/src/parser.tab.h
@@ -1,9 +1,8 @@ -/* A Bison parser, made by GNU Bison 2.4.3. */ +/* A Bison parser, made by GNU Bison 2.7.12-4996. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2009, 2010 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -31,6 +30,15 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ +#ifndef YY_PARSER_PARSER_TAB_H_INCLUDED +# define YY_PARSER_PARSER_TAB_H_INCLUDED +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif +#if YYDEBUG +extern int parser_debug; +#endif /* Tokens. */ #ifndef YYTOKENTYPE @@ -39,198 +47,197 @@ know about them. */ enum yytokentype { aIDENTIFIER = 258, - aKNOWNTYPE = 259, - aNUM = 260, - aHEXNUM = 261, - aDOUBLE = 262, - aSTRING = 263, - aWSTRING = 264, - aSQSTRING = 265, - aUUID = 266, - aEOF = 267, - SHL = 268, - SHR = 269, - MEMBERPTR = 270, - EQUALITY = 271, - INEQUALITY = 272, - GREATEREQUAL = 273, - LESSEQUAL = 274, - LOGICALOR = 275, - LOGICALAND = 276, - ELLIPSIS = 277, - tAGGREGATABLE = 278, - tALLOCATE = 279, - tANNOTATION = 280, - tAPPOBJECT = 281, - tASYNC = 282, - tASYNCUUID = 283, - tAUTOHANDLE = 284, - tBINDABLE = 285, - tBOOLEAN = 286, - tBROADCAST = 287, - tBYTE = 288, - tBYTECOUNT = 289, - tCALLAS = 290, - tCALLBACK = 291, - tCASE = 292, - tCDECL = 293, - tCHAR = 294, - tCOCLASS = 295, - tCODE = 296, - tCOMMSTATUS = 297, - tCONST = 298, - tCONTEXTHANDLE = 299, - tCONTEXTHANDLENOSERIALIZE = 300, - tCONTEXTHANDLESERIALIZE = 301, - tCONTROL = 302, - tCPPQUOTE = 303, - tDECODE = 304, - tDEFAULT = 305, - tDEFAULTBIND = 306, - tDEFAULTCOLLELEM = 307, - tDEFAULTVALUE = 308, - tDEFAULTVTABLE = 309, - tDISABLECONSISTENCYCHECK = 310, - tDISPLAYBIND = 311, - tDISPINTERFACE = 312, - tDLLNAME = 313, - tDOUBLE = 314, - tDUAL = 315, - tENABLEALLOCATE = 316, - tENCODE = 317, - tENDPOINT = 318, - tENTRY = 319, - tENUM = 320, - tERRORSTATUST = 321, - tEXPLICITHANDLE = 322, - tEXTERN = 323, - tFALSE = 324, - tFASTCALL = 325, - tFAULTSTATUS = 326, - tFLOAT = 327, - tFORCEALLOCATE = 328, - tHANDLE = 329, - tHANDLET = 330, - tHELPCONTEXT = 331, - tHELPFILE = 332, - tHELPSTRING = 333, - tHELPSTRINGCONTEXT = 334, - tHELPSTRINGDLL = 335, - tHIDDEN = 336, - tHYPER = 337, - tID = 338, - tIDEMPOTENT = 339, - tIGNORE = 340, - tIIDIS = 341, - tIMMEDIATEBIND = 342, - tIMPLICITHANDLE = 343, - tIMPORT = 344, - tIMPORTLIB = 345, - tIN = 346, - tIN_LINE = 347, - tINLINE = 348, - tINPUTSYNC = 349, - tINT = 350, - tINT3264 = 351, - tINT64 = 352, - tINTERFACE = 353, - tLCID = 354, - tLENGTHIS = 355, - tLIBRARY = 356, - tLICENSED = 357, - tLOCAL = 358, - tLONG = 359, - tMAYBE = 360, - tMESSAGE = 361, - tMETHODS = 362, - tMODULE = 363, - tNAMESPACE = 364, - tNOCODE = 365, - tNONBROWSABLE = 366, - tNONCREATABLE = 367, - tNONEXTENSIBLE = 368, - tNOTIFY = 369, - tNOTIFYFLAG = 370, - tNULL = 371, - tOBJECT = 372, - tODL = 373, - tOLEAUTOMATION = 374, - tOPTIMIZE = 375, - tOPTIONAL = 376, - tOUT = 377, - tPARTIALIGNORE = 378, - tPASCAL = 379, - tPOINTERDEFAULT = 380, - tPROGID = 381, - tPROPERTIES = 382, - tPROPGET = 383, - tPROPPUT = 384, - tPROPPUTREF = 385, - tPROXY = 386, - tPTR = 387, - tPUBLIC = 388, - tRANGE = 389, - tREADONLY = 390, - tREF = 391, - tREGISTER = 392, - tREPRESENTAS = 393, - tREQUESTEDIT = 394, - tRESTRICTED = 395, - tRETVAL = 396, - tSAFEARRAY = 397, - tSHORT = 398, - tSIGNED = 399, - tSIZEIS = 400, - tSIZEOF = 401, - tSMALL = 402, - tSOURCE = 403, - tSTATIC = 404, - tSTDCALL = 405, - tSTRICTCONTEXTHANDLE = 406, - tSTRING = 407, - tSTRUCT = 408, - tSWITCH = 409, - tSWITCHIS = 410, - tSWITCHTYPE = 411, - tTHREADING = 412, - tTRANSMITAS = 413, - tTRUE = 414, - tTYPEDEF = 415, - tUIDEFAULT = 416, - tUNION = 417, - tUNIQUE = 418, - tUNSIGNED = 419, - tUSESGETLASTERROR = 420, - tUSERMARSHAL = 421, - tUUID = 422, - tV1ENUM = 423, - tVARARG = 424, - tVERSION = 425, - tVIPROGID = 426, - tVOID = 427, - tWCHAR = 428, - tWIREMARSHAL = 429, - tAPARTMENT = 430, - tNEUTRAL = 431, - tSINGLE = 432, - tFREE = 433, - tBOTH = 434, - ADDRESSOF = 435, - NEG = 436, - POS = 437, - PPTR = 438, - CAST = 439 + aPRAGMA = 259, + aKNOWNTYPE = 260, + aNUM = 261, + aHEXNUM = 262, + aDOUBLE = 263, + aSTRING = 264, + aWSTRING = 265, + aSQSTRING = 266, + aUUID = 267, + aEOF = 268, + SHL = 269, + SHR = 270, + MEMBERPTR = 271, + EQUALITY = 272, + INEQUALITY = 273, + GREATEREQUAL = 274, + LESSEQUAL = 275, + LOGICALOR = 276, + LOGICALAND = 277, + ELLIPSIS = 278, + tAGGREGATABLE = 279, + tALLOCATE = 280, + tANNOTATION = 281, + tAPPOBJECT = 282, + tASYNC = 283, + tASYNCUUID = 284, + tAUTOHANDLE = 285, + tBINDABLE = 286, + tBOOLEAN = 287, + tBROADCAST = 288, + tBYTE = 289, + tBYTECOUNT = 290, + tCALLAS = 291, + tCALLBACK = 292, + tCASE = 293, + tCDECL = 294, + tCHAR = 295, + tCOCLASS = 296, + tCODE = 297, + tCOMMSTATUS = 298, + tCONST = 299, + tCONTEXTHANDLE = 300, + tCONTEXTHANDLENOSERIALIZE = 301, + tCONTEXTHANDLESERIALIZE = 302, + tCONTROL = 303, + tCPPQUOTE = 304, + tDECODE = 305, + tDEFAULT = 306, + tDEFAULTBIND = 307, + tDEFAULTCOLLELEM = 308, + tDEFAULTVALUE = 309, + tDEFAULTVTABLE = 310, + tDISABLECONSISTENCYCHECK = 311, + tDISPLAYBIND = 312, + tDISPINTERFACE = 313, + tDLLNAME = 314, + tDOUBLE = 315, + tDUAL = 316, + tENABLEALLOCATE = 317, + tENCODE = 318, + tENDPOINT = 319, + tENTRY = 320, + tENUM = 321, + tERRORSTATUST = 322, + tEXPLICITHANDLE = 323, + tEXTERN = 324, + tFALSE = 325, + tFASTCALL = 326, + tFAULTSTATUS = 327, + tFLOAT = 328, + tFORCEALLOCATE = 329, + tHANDLE = 330, + tHANDLET = 331, + tHELPCONTEXT = 332, + tHELPFILE = 333, + tHELPSTRING = 334, + tHELPSTRINGCONTEXT = 335, + tHELPSTRINGDLL = 336, + tHIDDEN = 337, + tHYPER = 338, + tID = 339, + tIDEMPOTENT = 340, + tIGNORE = 341, + tIIDIS = 342, + tIMMEDIATEBIND = 343, + tIMPLICITHANDLE = 344, + tIMPORT = 345, + tIMPORTLIB = 346, + tIN = 347, + tIN_LINE = 348, + tINLINE = 349, + tINPUTSYNC = 350, + tINT = 351, + tINT3264 = 352, + tINT64 = 353, + tINTERFACE = 354, + tLCID = 355, + tLENGTHIS = 356, + tLIBRARY = 357, + tLICENSED = 358, + tLOCAL = 359, + tLONG = 360, + tMAYBE = 361, + tMESSAGE = 362, + tMETHODS = 363, + tMODULE = 364, + tNAMESPACE = 365, + tNOCODE = 366, + tNONBROWSABLE = 367, + tNONCREATABLE = 368, + tNONEXTENSIBLE = 369, + tNOTIFY = 370, + tNOTIFYFLAG = 371, + tNULL = 372, + tOBJECT = 373, + tODL = 374, + tOLEAUTOMATION = 375, + tOPTIMIZE = 376, + tOPTIONAL = 377, + tOUT = 378, + tPARTIALIGNORE = 379, + tPASCAL = 380, + tPOINTERDEFAULT = 381, + tPROGID = 382, + tPROPERTIES = 383, + tPROPGET = 384, + tPROPPUT = 385, + tPROPPUTREF = 386, + tPROXY = 387, + tPTR = 388, + tPUBLIC = 389, + tRANGE = 390, + tREADONLY = 391, + tREF = 392, + tREGISTER = 393, + tREPRESENTAS = 394, + tREQUESTEDIT = 395, + tRESTRICTED = 396, + tRETVAL = 397, + tSAFEARRAY = 398, + tSHORT = 399, + tSIGNED = 400, + tSIZEIS = 401, + tSIZEOF = 402, + tSMALL = 403, + tSOURCE = 404, + tSTATIC = 405, + tSTDCALL = 406, + tSTRICTCONTEXTHANDLE = 407, + tSTRING = 408, + tSTRUCT = 409, + tSWITCH = 410, + tSWITCHIS = 411, + tSWITCHTYPE = 412, + tTHREADING = 413, + tTRANSMITAS = 414, + tTRUE = 415, + tTYPEDEF = 416, + tUIDEFAULT = 417, + tUNION = 418, + tUNIQUE = 419, + tUNSIGNED = 420, + tUSESGETLASTERROR = 421, + tUSERMARSHAL = 422, + tUUID = 423, + tV1ENUM = 424, + tVARARG = 425, + tVERSION = 426, + tVIPROGID = 427, + tVOID = 428, + tWCHAR = 429, + tWIREMARSHAL = 430, + tAPARTMENT = 431, + tNEUTRAL = 432, + tSINGLE = 433, + tFREE = 434, + tBOTH = 435, + ADDRESSOF = 436, + NEG = 437, + POS = 438, + PPTR = 439, + CAST = 440 }; #endif - #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED typedef union YYSTYPE { - -/* Line 1685 of yacc.c */ -#line 155 "parser.y" +/* Line 2053 of yacc.c */ +#line 129 "parser.y" attr_t *attr; attr_list_t *attr_list; @@ -258,9 +265,8 @@ enum storage_class stgclass; - -/* Line 1685 of yacc.c */ -#line 264 "parser.tab.h" +/* Line 2053 of yacc.c */ +#line 270 "parser.tab.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -269,4 +275,18 @@ extern YYSTYPE parser_lval; +#ifdef YYPARSE_PARAM +#if defined __STDC__ || defined __cplusplus +int parser_parse (void *YYPARSE_PARAM); +#else +int parser_parse (); +#endif +#else /* ! YYPARSE_PARAM */ +#if defined __STDC__ || defined __cplusplus +int parser_parse (void); +#else +int parser_parse (); +#endif +#endif /* ! YYPARSE_PARAM */ +#endif /* !YY_PARSER_PARSER_TAB_H_INCLUDED */
diff --git a/mingw-w64-tools/widl/src/parser.y b/mingw-w64-tools/widl/src/parser.y index ef3bee5..c0c77d7 100644 --- a/mingw-w64-tools/widl/src/parser.y +++ b/mingw-w64-tools/widl/src/parser.y
@@ -38,33 +38,6 @@ #include "expr.h" #include "typetree.h" -#if defined(YYBYACC) - /* Berkeley yacc (byacc) doesn't seem to know about these */ - /* Some *BSD supplied versions do define these though */ -# ifndef YYEMPTY -# define YYEMPTY (-1) /* Empty lookahead value of yychar */ -# endif -# ifndef YYLEX -# define YYLEX yylex() -# endif - -#elif defined(YYBISON) - /* Bison was used for original development */ - /* #define YYEMPTY -2 */ - /* #define YYLEX yylex() */ - -#else - /* No yacc we know yet */ -# if !defined(YYEMPTY) || !defined(YYLEX) -# error Yacc version/type unknown. This version needs to be verified for settings of YYEMPTY and YYLEX. -# elif defined(__GNUC__) /* gcc defines the #warning directive */ -# warning Yacc version/type unknown. It defines YYEMPTY and YYLEX, but is not tested - /* #else we just take a chance that it works... */ -# endif -#endif - -#define YYERROR_VERBOSE - static unsigned char pointer_default = RPC_FC_UP; typedef struct list typelist_t; @@ -88,26 +61,6 @@ typelist_t incomplete_types = LIST_INIT(incomplete_types); -typedef struct str_namespace_pool_t { - struct str_namespace_pool_t *next; - size_t len; - char name[1]; -} str_namespace_pool_t; - -static const char *unify_ns_str (const char *str); -static const char *unify_ns_name(const char *l, const char *r); - -typedef struct ctx_namespace_t { - struct ctx_namespace_t *prev; - const char *name; -} ctx_namespace_t; - -static ctx_namespace_t *ctx_namespace = NULL; - -static void push_namespace(const char *name); -static int pop_namespace(void); -static const char *get_cur_namespace(void); - static void fix_incomplete(void); static void fix_incomplete_types(type_t *complete_type); @@ -161,6 +114,7 @@ static statement_t *make_statement_reference(type_t *type); static statement_t *make_statement_declaration(var_t *var); static statement_t *make_statement_library(typelib_t *typelib); +static statement_t *make_statement_pragma(const char *str); static statement_t *make_statement_cppquote(const char *str); static statement_t *make_statement_importlib(const char *str); static statement_t *make_statement_module(type_t *type); @@ -199,7 +153,7 @@ enum storage_class stgclass; } -%token <str> aIDENTIFIER +%token <str> aIDENTIFIER aPRAGMA %token <str> aKNOWNTYPE %token <num> aNUM aHEXNUM %token <dbl> aDOUBLE @@ -305,9 +259,10 @@ %type <ifinfo> interfacehdr %type <stgclass> storage_cls_spec %type <declspec> decl_spec decl_spec_no_type m_decl_spec_no_type -%type <type> inherit interface interfacedef interfacedec namespacedef +%type <type> inherit interface interfacedef interfacedec %type <type> dispinterface dispinterfacehdr dispinterfacedef %type <type> module modulehdr moduledef +%type <type> namespacedef %type <type> base_type int_std %type <type> enumdef structdef uniondef typedecl %type <type> type @@ -346,6 +301,8 @@ %right '!' '~' CAST PPTR POS NEG ADDRESSOF tSIZEOF %left '.' MEMBERPTR '[' ']' +%error-verbose + %% input: gbl_statements { fix_incomplete(); @@ -364,7 +321,7 @@ gbl_statements: { $$ = NULL; } | gbl_statements namespacedef '{' gbl_statements '}' - { $$ = append_statements($1, $4); pop_namespace(); } + { $$ = append_statements($1, $4); } | gbl_statements interfacedec { $$ = append_statement($1, make_statement_reference($2)); } | gbl_statements interfacedef { $$ = append_statement($1, make_statement_type_decl($2)); } | gbl_statements coclass ';' { $$ = $1; @@ -380,7 +337,8 @@ imp_statements: { $$ = NULL; } | imp_statements interfacedec { $$ = append_statement($1, make_statement_reference($2)); } - | imp_statements namespacedef '{' imp_statements '}' { $$ = append_statements($1, $4); pop_namespace(); } + | imp_statements namespacedef '{' imp_statements '}' + { $$ = append_statements($1, $4); } | imp_statements interfacedef { $$ = append_statement($1, make_statement_type_decl($2)); } | imp_statements coclass ';' { $$ = $1; reg_type($2, $2->name, 0); } | imp_statements coclassdef { $$ = append_statement($1, make_statement_type_decl($2)); @@ -406,6 +364,7 @@ | declaration ';' { $$ = make_statement_declaration($1); } | import { $$ = make_statement_import($1); } | typedef ';' { $$ = $1; } + | aPRAGMA { $$ = make_statement_pragma($1); } ; typedecl: @@ -853,8 +812,7 @@ { $$ = type_coclass_define($1, $3); } ; -namespacedef: tNAMESPACE aIDENTIFIER - { $$=NULL; push_namespace($2); } +namespacedef: tNAMESPACE aIDENTIFIER { $$ = NULL; } ; coclass_ints: { $$ = NULL; } @@ -1140,8 +1098,7 @@ ; typedef: m_attributes tTYPEDEF m_attributes decl_spec declarator_list - { - $1 = append_attribs ($1, $3); + { $1 = append_attribs($1, $3); reg_typedefs($4, $5, check_typedef_attrs($1)); $$ = make_statement_typedef($5); } @@ -1892,7 +1849,7 @@ type->name = gen_name(); } else if (is_attr(attrs, ATTR_UUID) && !is_attr(attrs, ATTR_PUBLIC) - && !is_attr (attrs, ATTR_HIDDEN)) + && !is_attr(attrs, ATTR_HIDDEN)) attrs = append_attr( attrs, make_attr(ATTR_PUBLIC) ); LIST_FOR_EACH_ENTRY( decl, decls, const declarator_t, entry ) @@ -2066,7 +2023,7 @@ /* ATTR_ANNOTATION */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, "annotation" }, /* ATTR_APPOBJECT */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "appobject" }, /* ATTR_ASYNC */ { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "async" }, - /* ATTR_ASYNCUUID */ { 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "async_uuid" }, + /* ATTR_ASYNCUUID */ { 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "async_uuid" }, /* ATTR_AUTO_HANDLE */ { 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "auto_handle" }, /* ATTR_BINDABLE */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "bindable" }, /* ATTR_BROADCAST */ { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "broadcast" }, @@ -2157,7 +2114,7 @@ /* ATTR_UIDEFAULT */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "uidefault" }, /* ATTR_USESGETLASTERROR */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "usesgetlasterror" }, /* ATTR_USERMARSHAL */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "user_marshal" }, - /* ATTR_UUID */ { 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, "uuid" }, + /* ATTR_UUID */ { 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, "uuid" }, /* ATTR_V1ENUM */ { 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, "v1_enum" }, /* ATTR_VARARG */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "vararg" }, /* ATTR_VERSION */ { 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 1, "version" }, @@ -2747,7 +2704,6 @@ { statement_t *stmt = xmalloc(sizeof(*stmt)); stmt->type = type; - stmt->nspace = get_cur_namespace(); return stmt; } @@ -2790,6 +2746,13 @@ return stmt; } +static statement_t *make_statement_pragma(const char *str) +{ + statement_t *stmt = make_statement(STMT_PRAGMA); + stmt->u.str = str; + return stmt; +} + static statement_t *make_statement_cppquote(const char *str) { statement_t *stmt = make_statement(STMT_CPPQUOTE); @@ -2848,18 +2811,18 @@ static statement_list_t *append_statements(statement_list_t *l1, statement_list_t *l2) { - if (!l2) return l1; - if (!l1 || l1 == l2) return l2; - list_move_tail (l1, l2); - return l1; + if (!l2) return l1; + if (!l1 || l1 == l2) return l2; + list_move_tail (l1, l2); + return l1; } static attr_list_t *append_attribs(attr_list_t *l1, attr_list_t *l2) { - if (!l2) return l1; - if (!l1 || l1 == l2) return l2; - list_move_tail (l1, l2); - return l1; + if (!l2) return l1; + if (!l1 || l1 == l2) return l2; + list_move_tail (l1, l2); + return l1; } static statement_list_t *append_statement(statement_list_t *list, statement_t *stmt) @@ -2887,84 +2850,3 @@ error_loc("%s: redefinition error; original definition was at %s:%d\n", t->name, t->loc_info.input_name, t->loc_info.line_number); } - -static void push_namespace(const char *nameadd) -{ - ctx_namespace_t *c; - - if (!nameadd) - nameadd = ""; - c = xmalloc(sizeof(ctx_namespace_t)); - c->name = unify_ns_name(get_cur_namespace(), nameadd); - c->prev = ctx_namespace; - ctx_namespace = c; -} - -static int pop_namespace(void) -{ - ctx_namespace_t *c; - - if (!(c = ctx_namespace)) - return 0; - ctx_namespace = c->prev; - c->prev = NULL; - free (c); - return 1; -} - -static const char *get_cur_namespace(void) -{ - if (!ctx_namespace) - return unify_ns_str(NULL); - return ctx_namespace->name; -} - -static const char *unify_ns_name(const char *l, const char *r) -{ - const char *r; - char *h; - if (!l || *l == 0) - return unify_ns_str(r); - if (!r || *r == 0) - return unify_ns_str(l); - h = xmalloc(strlen(l) + strlen(r) + 2); - strcpy(h, l); - strcat(h, "."); - strcat(h, r); - r = unify_ns_str(h); - free(h); - return r; -} - -static const char *unify_ns_str (const char *str) -{ - static str_namespace_pool_t *pool = NULL; - size_t l; - int e; - str_namespace_pool_t *p, *c, *n; - - if (!str || *str == 0) - return ""; - l = strlen (str); - p = NULL; - c = pool; - while (c != NULL) - { - if (c->len == l && (e = strcmp (c->name, str)) >= 0) - { - if (!e) - return &(c->name[0]); - break; - } - c = (p = c)->next; - } - n = xmalloc (sizeof (str_namespace_pool_t) + l); - strcpy (n->name, str); - n->next = c; - n->len = l; - if (!p) - pool = n; - else - p->next = n; - return &(n->name[0]); -}
diff --git a/mingw-w64-tools/widl/src/parser.yy.c b/mingw-w64-tools/widl/src/parser.yy.c index 89ecfba..4b24c87 100644 --- a/mingw-w64-tools/widl/src/parser.yy.c +++ b/mingw-w64-tools/widl/src/parser.yy.c
@@ -379,8 +379,8 @@ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 36 -#define YY_END_OF_BUFFER 37 +#define YY_NUM_RULES 39 +#define YY_END_OF_BUFFER 40 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -388,24 +388,27 @@ flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[148] = +static yyconst flex_int16_t yy_accept[174] = { 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, - 0, 0, 37, 35, 24, 23, 35, 3, 35, 7, - 35, 35, 19, 19, 35, 35, 35, 22, 22, 22, - 14, 35, 24, 1, 13, 36, 4, 13, 6, 19, - 19, 16, 16, 16, 15, 2, 8, 13, 29, 33, - 27, 0, 0, 19, 19, 19, 0, 25, 31, 28, - 30, 26, 22, 5, 22, 32, 0, 1, 1, 12, - 10, 9, 19, 0, 16, 16, 2, 11, 34, 20, - 19, 19, 18, 22, 19, 0, 16, 0, 18, 18, - 22, 19, 0, 16, 0, 20, 18, 18, 22, 19, + 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, + 5, 5, 0, 0, 40, 38, 27, 26, 38, 6, + 38, 10, 38, 38, 22, 22, 38, 38, 38, 25, + 25, 25, 17, 38, 27, 2, 16, 39, 7, 16, + 9, 22, 22, 19, 19, 19, 18, 27, 2, 3, + 5, 5, 11, 16, 32, 36, 30, 0, 0, 22, + 22, 22, 0, 28, 34, 31, 33, 29, 25, 8, + 25, 35, 0, 2, 2, 0, 15, 13, 12, 22, + 0, 19, 19, 0, 2, 2, 3, 5, 5, 14, + 37, 23, 22, 22, 21, 25, 0, 22, 0, 19, - 0, 16, 22, 19, 0, 16, 22, 19, 0, 16, - 22, 19, 0, 16, 22, 0, 19, 0, 21, 0, + 5, 0, 21, 21, 25, 0, 22, 0, 19, 5, + 0, 23, 21, 21, 25, 0, 22, 0, 19, 5, + 25, 0, 22, 0, 19, 5, 25, 0, 22, 0, + 19, 5, 25, 1, 22, 0, 19, 5, 25, 0, + 22, 4, 0, 24, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 17, 0 + 0, 20, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -419,11 +422,11 @@ 16, 17, 1, 1, 18, 19, 19, 19, 20, 21, 22, 22, 22, 22, 22, 23, 22, 22, 22, 22, 22, 24, 25, 22, 26, 22, 22, 27, 28, 22, - 29, 30, 31, 1, 22, 1, 19, 19, 19, 19, + 29, 30, 31, 1, 32, 1, 33, 19, 34, 35, - 32, 19, 22, 22, 22, 22, 22, 33, 22, 22, - 22, 22, 22, 22, 22, 22, 34, 22, 22, 35, - 22, 22, 1, 36, 1, 1, 1, 1, 1, 1, + 36, 19, 37, 38, 39, 22, 22, 40, 41, 22, + 42, 43, 22, 44, 22, 22, 45, 22, 22, 46, + 22, 22, 1, 47, 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, @@ -440,182 +443,227 @@ 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[37] = +static yyconst flex_int32_t yy_meta[48] = { 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 3, 4, 4, 4, 1 + 1, 4, 3, 3, 3, 3, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 1 } ; -static yyconst flex_int16_t yy_base[184] = +static yyconst flex_int16_t yy_base[214] = { 0, - 0, 35, 35, 39, 40, 43, 61, 45, 262, 261, - 46, 47, 263, 481, 481, 481, 246, 481, 254, 481, - 243, 243, 85, 25, 41, 238, 42, 0, 248, 229, - 481, 210, 60, 243, 481, 481, 481, 34, 481, 108, - 26, 131, 154, 239, 481, 0, 481, 60, 481, 481, - 481, 231, 58, 0, 75, 77, 0, 481, 481, 481, - 481, 481, 0, 481, 220, 481, 61, 238, 236, 481, - 481, 481, 174, 0, 196, 0, 0, 481, 481, 93, - 481, 481, 113, 213, 216, 0, 238, 166, 89, 81, - 214, 258, 0, 280, 89, 169, 481, 481, 207, 300, + 0, 46, 46, 50, 51, 54, 84, 56, 345, 344, + 129, 130, 131, 132, 346, 639, 639, 639, 325, 639, + 333, 639, 322, 326, 160, 124, 45, 321, 47, 0, + 331, 316, 639, 286, 63, 139, 639, 639, 639, 45, + 639, 194, 117, 228, 0, 326, 639, 64, 324, 0, + 0, 286, 639, 135, 639, 639, 639, 312, 54, 154, + 130, 119, 0, 639, 639, 639, 639, 639, 0, 639, + 296, 639, 71, 146, 147, 272, 639, 639, 639, 252, + 0, 285, 0, 72, 313, 312, 0, 0, 278, 639, + 639, 140, 639, 639, 158, 291, 277, 309, 0, 342, - 0, 322, 203, 342, 0, 364, 208, 384, 0, 406, - 197, 428, 213, 212, 115, 0, 211, 128, 481, 0, - 0, 0, 210, 0, 0, 0, 0, 209, 0, 0, - 0, 0, 208, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 481, 481, 462, 466, 468, - 472, 476, 215, 210, 209, 208, 202, 201, 200, 199, - 196, 195, 193, 188, 187, 182, 181, 178, 175, 168, - 167, 166, 159, 158, 157, 145, 135, 130, 129, 113, - 102, 88, 75 + 269, 182, 152, 162, 290, 265, 366, 0, 399, 269, + 58, 196, 639, 639, 276, 255, 423, 0, 456, 259, + 270, 258, 480, 0, 513, 255, 266, 281, 537, 0, + 570, 244, 251, 275, 212, 265, 263, 227, 143, 0, + 267, 0, 149, 639, 0, 0, 0, 0, 257, 0, + 0, 0, 0, 256, 0, 0, 0, 0, 249, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 639, 639, 606, 610, 614, 616, 620, 622, 626, + 630, 256, 255, 253, 252, 251, 250, 248, 247, 634, + 242, 241, 240, 234, 233, 230, 228, 221, 219, 216, + + 215, 208, 201, 198, 188, 185, 176, 154, 152, 143, + 80, 79, 76 } ; -static yyconst flex_int16_t yy_def[184] = +static yyconst flex_int16_t yy_def[214] = { 0, - 147, 1, 148, 148, 148, 148, 1, 7, 149, 149, - 148, 148, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 23, 147, 147, 147, 150, 150, 150, - 147, 147, 147, 147, 147, 147, 147, 151, 147, 147, - 40, 147, 42, 43, 147, 152, 147, 151, 147, 147, - 147, 147, 147, 24, 147, 147, 153, 147, 147, 147, - 147, 147, 150, 147, 150, 147, 147, 147, 147, 147, - 147, 147, 147, 154, 43, 43, 152, 147, 147, 147, - 147, 147, 153, 150, 147, 155, 43, 147, 147, 147, - 150, 147, 156, 43, 147, 147, 147, 147, 150, 147, + 173, 1, 174, 174, 174, 174, 173, 7, 175, 175, + 176, 176, 174, 174, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 177, + 177, 177, 173, 173, 173, 173, 173, 173, 173, 178, + 173, 173, 42, 179, 179, 179, 173, 173, 173, 180, + 181, 181, 173, 178, 173, 173, 173, 173, 173, 173, + 173, 173, 182, 173, 173, 173, 173, 173, 177, 173, + 177, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 183, 179, 179, 173, 173, 173, 180, 181, 181, 173, + 173, 173, 173, 173, 182, 177, 173, 173, 184, 179, - 157, 43, 150, 147, 158, 43, 150, 147, 159, 43, - 150, 147, 147, 43, 150, 160, 112, 147, 147, 161, - 162, 163, 147, 164, 165, 166, 167, 147, 168, 169, - 170, 171, 147, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 147, 0, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147 + 181, 173, 173, 173, 177, 173, 173, 185, 179, 181, + 173, 173, 173, 173, 177, 173, 173, 186, 179, 181, + 177, 173, 173, 187, 179, 181, 177, 173, 173, 188, + 179, 181, 177, 173, 173, 173, 179, 181, 177, 189, + 173, 190, 173, 173, 191, 190, 192, 193, 173, 194, + 195, 196, 197, 173, 198, 199, 200, 201, 173, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 173, 0, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173 } ; -static yyconst flex_int16_t yy_nxt[518] = +static yyconst flex_int16_t yy_nxt[687] = { 0, - 14, 15, 16, 17, 18, 14, 19, 20, 14, 14, - 21, 22, 23, 24, 25, 26, 27, 28, 28, 28, - 28, 28, 29, 28, 30, 28, 28, 28, 31, 14, - 14, 28, 28, 28, 28, 32, 33, 36, 71, 37, - 34, 36, 36, 37, 39, 36, 33, 39, 36, 36, - 34, 147, 147, 47, 47, 58, 59, 61, 62, 147, - 147, 67, 67, 72, 38, 68, 68, 78, 38, 38, - 80, 80, 38, 40, 41, 48, 48, 146, 42, 42, - 42, 42, 43, 44, 43, 43, 43, 43, 43, 72, - 145, 45, 42, 43, 43, 43, 53, 54, 54, 82, + 16, 17, 18, 19, 20, 16, 21, 22, 16, 16, + 23, 24, 25, 26, 27, 28, 29, 30, 30, 30, + 30, 30, 31, 30, 32, 30, 30, 30, 33, 16, + 16, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 34, 35, 38, 78, + 39, 36, 38, 38, 39, 41, 38, 48, 41, 64, + 65, 49, 67, 68, 73, 84, 92, 92, 74, 85, + 112, 112, 73, 84, 79, 40, 74, 85, 172, 40, + 40, 171, 170, 40, 16, 17, 18, 19, 20, 16, + 21, 22, 16, 16, 23, 24, 42, 43, 27, 28, - 81, 96, 96, 98, 144, 80, 80, 55, 81, 82, - 56, 57, 88, 98, 97, 143, 118, 55, 56, 57, - 73, 73, 97, 119, 88, 74, 74, 74, 74, 118, - 55, 142, 141, 56, 57, 89, 119, 140, 90, 74, - 55, 56, 57, 75, 75, 89, 90, 139, 75, 75, - 75, 75, 76, 76, 76, 76, 76, 76, 76, 138, - 137, 136, 75, 76, 76, 76, 76, 76, 135, 133, - 132, 76, 76, 76, 76, 95, 95, 131, 96, 96, - 130, 96, 96, 128, 127, 76, 85, 85, 88, 126, - 125, 86, 86, 86, 86, 123, 55, 122, 121, 56, + 29, 44, 44, 44, 44, 45, 46, 45, 45, 45, + 45, 45, 33, 16, 47, 45, 44, 44, 44, 44, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 34, 38, 38, 38, 38, 59, 60, 60, 53, 53, + 75, 94, 90, 173, 143, 169, 61, 75, 75, 62, + 143, 144, 92, 92, 168, 93, 167, 144, 94, 102, + 54, 54, 173, 61, 79, 59, 60, 60, 62, 52, + 52, 59, 60, 60, 93, 102, 61, 113, 166, 62, + 103, 76, 61, 104, 114, 62, 63, 165, 76, 76, + 164, 111, 111, 61, 112, 112, 113, 103, 62, 61, - 88, 120, 113, 109, 105, 86, 55, 56, 87, 87, - 101, 93, 86, 87, 87, 87, 87, 83, 134, 129, - 124, 147, 116, 116, 115, 111, 107, 87, 92, 92, - 103, 99, 91, 93, 93, 93, 93, 69, 55, 69, - 84, 56, 79, 64, 69, 66, 65, 93, 55, 56, - 94, 94, 64, 60, 52, 94, 94, 94, 94, 51, - 50, 49, 147, 36, 36, 147, 147, 147, 147, 94, - 100, 100, 147, 147, 147, 101, 101, 101, 101, 147, - 55, 147, 147, 56, 147, 147, 147, 147, 147, 101, - 55, 56, 102, 102, 147, 147, 147, 102, 102, 102, + 163, 114, 104, 162, 62, 63, 80, 80, 112, 112, + 161, 81, 81, 81, 81, 102, 61, 159, 158, 62, + 63, 157, 140, 156, 141, 141, 81, 81, 81, 81, + 154, 102, 153, 61, 61, 152, 151, 62, 62, 63, + 82, 82, 149, 148, 147, 82, 82, 82, 82, 145, + 136, 61, 130, 124, 118, 108, 62, 99, 95, 160, + 82, 82, 82, 82, 98, 98, 155, 150, 142, 99, + 99, 99, 99, 140, 61, 140, 134, 62, 139, 141, + 141, 138, 134, 133, 99, 99, 99, 99, 132, 61, + 128, 61, 62, 127, 126, 122, 62, 100, 100, 121, - 102, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 102, 104, 104, 147, 147, 147, 105, 105, 105, - 105, 147, 55, 147, 147, 56, 147, 147, 147, 147, - 147, 105, 55, 56, 106, 106, 147, 147, 147, 106, - 106, 106, 106, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 106, 108, 108, 147, 147, 147, 109, - 109, 109, 109, 147, 55, 147, 147, 56, 147, 147, - 147, 147, 147, 109, 55, 56, 110, 110, 147, 147, - 147, 110, 110, 110, 110, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 110, 112, 112, 147, 147, + 120, 116, 100, 100, 100, 100, 61, 115, 110, 106, + 105, 62, 101, 86, 86, 97, 96, 100, 100, 100, + 100, 107, 107, 91, 89, 86, 108, 108, 108, 108, + 70, 61, 72, 71, 62, 70, 66, 58, 57, 56, + 55, 108, 108, 108, 108, 173, 38, 38, 61, 173, + 173, 173, 173, 62, 109, 109, 173, 173, 173, 109, + 109, 109, 109, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 109, 109, 109, 109, 117, 117, + 173, 173, 173, 118, 118, 118, 118, 173, 61, 173, + 173, 62, 173, 173, 173, 173, 173, 173, 118, 118, - 147, 113, 113, 113, 113, 147, 55, 147, 147, 56, - 147, 147, 147, 147, 147, 113, 55, 56, 114, 114, - 147, 147, 147, 114, 114, 114, 114, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 114, 116, 147, - 117, 117, 147, 147, 147, 147, 147, 147, 147, 147, - 55, 147, 147, 56, 147, 147, 147, 147, 147, 147, - 55, 56, 35, 35, 35, 35, 46, 46, 46, 46, - 63, 63, 70, 147, 70, 70, 77, 147, 77, 77, - 13, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, + 118, 118, 173, 173, 173, 61, 173, 173, 173, 173, + 62, 119, 119, 173, 173, 173, 119, 119, 119, 119, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 119, 119, 119, 119, 123, 123, 173, 173, 173, + 124, 124, 124, 124, 173, 61, 173, 173, 62, 173, + 173, 173, 173, 173, 173, 124, 124, 124, 124, 173, + 173, 173, 61, 173, 173, 173, 173, 62, 125, 125, + 173, 173, 173, 125, 125, 125, 125, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 125, 125, + 125, 125, 129, 129, 173, 173, 173, 130, 130, 130, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147 + 130, 173, 61, 173, 173, 62, 173, 173, 173, 173, + 173, 173, 130, 130, 130, 130, 173, 173, 173, 61, + 173, 173, 173, 173, 62, 131, 131, 173, 173, 173, + 131, 131, 131, 131, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 131, 131, 131, 131, 135, + 135, 173, 173, 173, 136, 136, 136, 136, 173, 61, + 173, 173, 62, 173, 173, 173, 173, 173, 173, 136, + 136, 136, 136, 173, 173, 173, 61, 173, 173, 173, + 173, 62, 137, 137, 173, 173, 173, 137, 137, 137, + 137, 173, 173, 173, 173, 173, 173, 173, 173, 173, + + 173, 173, 137, 137, 137, 137, 37, 37, 37, 37, + 50, 50, 50, 50, 51, 51, 51, 51, 69, 69, + 77, 173, 77, 77, 83, 83, 87, 173, 87, 87, + 88, 173, 88, 88, 146, 173, 146, 146, 15, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173 } ; -static yyconst flex_int16_t yy_chk[518] = +static yyconst flex_int16_t yy_chk[687] = { 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, 2, 3, 38, 3, - 2, 4, 5, 4, 5, 6, 8, 6, 11, 12, - 8, 24, 41, 11, 12, 25, 25, 27, 27, 24, - 41, 33, 67, 38, 3, 33, 67, 48, 4, 5, - 53, 53, 6, 7, 7, 11, 12, 183, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 48, - 182, 7, 7, 7, 7, 7, 23, 23, 23, 56, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 3, 40, + 3, 2, 4, 5, 4, 5, 6, 8, 6, 27, + 27, 8, 29, 29, 35, 48, 59, 59, 35, 48, + 111, 111, 73, 84, 40, 3, 73, 84, 213, 4, + 5, 212, 211, 6, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 55, 95, 95, 90, 181, 80, 80, 23, 55, 56, - 23, 23, 80, 90, 89, 180, 115, 23, 23, 23, - 40, 40, 89, 115, 80, 40, 40, 40, 40, 118, - 40, 179, 178, 40, 40, 83, 118, 177, 83, 40, - 40, 40, 40, 42, 42, 83, 83, 176, 42, 42, - 42, 42, 42, 42, 42, 42, 42, 42, 42, 175, - 174, 173, 42, 42, 42, 42, 43, 43, 172, 171, - 170, 43, 43, 43, 43, 88, 88, 169, 88, 88, - 168, 96, 96, 167, 166, 43, 73, 73, 96, 165, - 164, 73, 73, 73, 73, 163, 73, 162, 161, 73, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 11, 12, 13, 14, 26, 26, 26, 13, 14, + 36, 62, 54, 43, 139, 210, 26, 74, 75, 26, + 143, 139, 92, 92, 209, 61, 208, 143, 62, 92, + 13, 14, 43, 26, 54, 60, 60, 60, 26, 11, + 12, 25, 25, 25, 61, 92, 60, 103, 207, 60, + 95, 36, 25, 95, 104, 25, 25, 206, 74, 75, + 205, 102, 102, 60, 102, 102, 103, 95, 60, 25, - 96, 160, 159, 158, 157, 73, 73, 73, 75, 75, - 156, 155, 154, 75, 75, 75, 75, 153, 133, 128, - 123, 117, 114, 113, 111, 107, 103, 75, 85, 85, - 99, 91, 84, 85, 85, 85, 85, 69, 85, 68, - 65, 85, 52, 44, 34, 32, 30, 85, 85, 85, - 87, 87, 29, 26, 22, 87, 87, 87, 87, 21, - 19, 17, 13, 10, 9, 0, 0, 0, 0, 87, - 92, 92, 0, 0, 0, 92, 92, 92, 92, 0, - 92, 0, 0, 92, 0, 0, 0, 0, 0, 92, - 92, 92, 94, 94, 0, 0, 0, 94, 94, 94, + 204, 104, 95, 203, 25, 25, 42, 42, 112, 112, + 202, 42, 42, 42, 42, 112, 42, 201, 200, 42, + 42, 199, 135, 198, 135, 135, 42, 42, 42, 42, + 197, 112, 196, 42, 135, 195, 194, 135, 42, 42, + 44, 44, 193, 192, 191, 44, 44, 44, 44, 189, + 188, 135, 187, 186, 185, 184, 135, 183, 182, 159, + 44, 44, 44, 44, 80, 80, 154, 149, 138, 80, + 80, 80, 80, 137, 80, 136, 134, 80, 133, 141, + 141, 132, 128, 127, 80, 80, 80, 80, 126, 141, + 122, 80, 141, 121, 120, 116, 80, 82, 82, 115, - 94, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 94, 100, 100, 0, 0, 0, 100, 100, 100, - 100, 0, 100, 0, 0, 100, 0, 0, 0, 0, - 0, 100, 100, 100, 102, 102, 0, 0, 0, 102, - 102, 102, 102, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 102, 104, 104, 0, 0, 0, 104, - 104, 104, 104, 0, 104, 0, 0, 104, 0, 0, - 0, 0, 0, 104, 104, 104, 106, 106, 0, 0, - 0, 106, 106, 106, 106, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 106, 108, 108, 0, 0, + 110, 106, 82, 82, 82, 82, 141, 105, 101, 97, + 96, 141, 89, 86, 85, 76, 71, 82, 82, 82, + 82, 98, 98, 58, 52, 49, 98, 98, 98, 98, + 46, 98, 34, 32, 98, 31, 28, 24, 23, 21, + 19, 98, 98, 98, 98, 15, 10, 9, 98, 0, + 0, 0, 0, 98, 100, 100, 0, 0, 0, 100, + 100, 100, 100, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 100, 100, 100, 100, 107, 107, + 0, 0, 0, 107, 107, 107, 107, 0, 107, 0, + 0, 107, 0, 0, 0, 0, 0, 0, 107, 107, - 0, 108, 108, 108, 108, 0, 108, 0, 0, 108, - 0, 0, 0, 0, 0, 108, 108, 108, 110, 110, - 0, 0, 0, 110, 110, 110, 110, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 110, 112, 0, - 112, 112, 0, 0, 0, 0, 0, 0, 0, 0, - 112, 0, 0, 112, 0, 0, 0, 0, 0, 0, - 112, 112, 148, 148, 148, 148, 149, 149, 149, 149, - 150, 150, 151, 0, 151, 151, 152, 0, 152, 152, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, + 107, 107, 0, 0, 0, 107, 0, 0, 0, 0, + 107, 109, 109, 0, 0, 0, 109, 109, 109, 109, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 109, 109, 109, 109, 117, 117, 0, 0, 0, + 117, 117, 117, 117, 0, 117, 0, 0, 117, 0, + 0, 0, 0, 0, 0, 117, 117, 117, 117, 0, + 0, 0, 117, 0, 0, 0, 0, 117, 119, 119, + 0, 0, 0, 119, 119, 119, 119, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 119, 119, + 119, 119, 123, 123, 0, 0, 0, 123, 123, 123, - 147, 147, 147, 147, 147, 147, 147, 147, 147, 147, - 147, 147, 147, 147, 147, 147, 147 + 123, 0, 123, 0, 0, 123, 0, 0, 0, 0, + 0, 0, 123, 123, 123, 123, 0, 0, 0, 123, + 0, 0, 0, 0, 123, 125, 125, 0, 0, 0, + 125, 125, 125, 125, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 125, 125, 125, 125, 129, + 129, 0, 0, 0, 129, 129, 129, 129, 0, 129, + 0, 0, 129, 0, 0, 0, 0, 0, 0, 129, + 129, 129, 129, 0, 0, 0, 129, 0, 0, 0, + 0, 129, 131, 131, 0, 0, 0, 131, 131, 131, + 131, 0, 0, 0, 0, 0, 0, 0, 0, 0, + + 0, 0, 131, 131, 131, 131, 174, 174, 174, 174, + 175, 175, 175, 175, 176, 176, 176, 176, 177, 177, + 178, 0, 178, 178, 179, 179, 180, 0, 180, 180, + 181, 0, 181, 181, 190, 0, 190, 190, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, + 173, 173, 173, 173, 173, 173 } ; static yy_state_type yy_last_accepting_state; @@ -658,7 +706,8 @@ -#line 43 "parser.l" + +#line 44 "parser.l" #include "config.h" #include "wine/port.h" @@ -708,6 +757,8 @@ static unsigned int xstrtoul(const char *nptr, char **endptr, int base) { #if defined(__MINGW32__) || defined(_MSC_VER) + /* Long might be not wide enough for LLP64 target, so we want to use + double-precision here instead. */ unsigned long long val; errno = 0; @@ -751,14 +802,15 @@ * The flexer starts here ************************************************************************** */ -#line 755 "parser.yy.c" +#line 806 "parser.yy.c" #define INITIAL 0 #define QUOTE 1 #define WSTRQUOTE 2 #define ATTR 3 #define PP_LINE 4 -#define SQUOTE 5 +#define PP_PRAGMA 5 +#define SQUOTE 6 #ifndef YY_NO_UNISTD_H /* Special case for "unistd.h", since it is non-ANSI. We include it way @@ -947,9 +999,9 @@ register char *yy_cp, *yy_bp; register int yy_act; -#line 137 "parser.l" +#line 140 "parser.l" -#line 953 "parser.yy.c" +#line 1005 "parser.yy.c" if ( !(yy_init) ) { @@ -1003,13 +1055,13 @@ 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 >= 148 ) + if ( yy_current_state >= 174 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_current_state != 147 ); + while ( yy_current_state != 173 ); yy_cp = (yy_last_accepting_cpos); yy_current_state = (yy_last_accepting_state); @@ -1031,12 +1083,17 @@ case 1: YY_RULE_SETUP -#line 138 "parser.l" -yy_push_state(PP_LINE); +#line 141 "parser.l" +yy_push_state(PP_PRAGMA); YY_BREAK case 2: YY_RULE_SETUP -#line 139 "parser.l" +#line 142 "parser.l" +yy_push_state(PP_LINE); + YY_BREAK +case 3: +YY_RULE_SETUP +#line 143 "parser.l" { int lineno; char *cptr, *fname; @@ -1056,194 +1113,204 @@ input_name = xstrdup(fname); } YY_BREAK -case 3: -YY_RULE_SETUP -#line 157 "parser.l" -yy_push_state(QUOTE); cbufidx = 0; - YY_BREAK case 4: YY_RULE_SETUP -#line 158 "parser.l" +#line 161 "parser.l" +yyless(9); yy_pop_state(); return tCPPQUOTE; + YY_BREAK +case 5: +YY_RULE_SETUP +#line 162 "parser.l" +parser_lval.str = xstrdup(parser_text); yy_pop_state(); return aPRAGMA; + YY_BREAK +case 6: +YY_RULE_SETUP +#line 163 "parser.l" +yy_push_state(QUOTE); cbufidx = 0; + YY_BREAK +case 7: +YY_RULE_SETUP +#line 164 "parser.l" { yy_pop_state(); parser_lval.str = get_buffered_cstring(); return aSTRING; } YY_BREAK -case 5: +case 8: YY_RULE_SETUP -#line 163 "parser.l" +#line 169 "parser.l" yy_push_state(WSTRQUOTE); cbufidx = 0; YY_BREAK -case 6: +case 9: YY_RULE_SETUP -#line 164 "parser.l" +#line 170 "parser.l" { yy_pop_state(); parser_lval.str = get_buffered_cstring(); return aWSTRING; } YY_BREAK -case 7: +case 10: YY_RULE_SETUP -#line 169 "parser.l" +#line 175 "parser.l" yy_push_state(SQUOTE); cbufidx = 0; YY_BREAK -case 8: +case 11: YY_RULE_SETUP -#line 170 "parser.l" +#line 176 "parser.l" { yy_pop_state(); parser_lval.str = get_buffered_cstring(); return aSQSTRING; } YY_BREAK -case 9: -#line 176 "parser.l" -case 10: -YY_RULE_SETUP -#line 176 "parser.l" -addcchar(parser_text[1]); - YY_BREAK -case 11: -YY_RULE_SETUP -#line 177 "parser.l" -addcchar(parser_text[1]); - YY_BREAK case 12: -YY_RULE_SETUP -#line 178 "parser.l" -addcchar('\\'); addcchar(parser_text[1]); - YY_BREAK +#line 182 "parser.l" case 13: YY_RULE_SETUP -#line 179 "parser.l" -addcchar(parser_text[0]); +#line 182 "parser.l" +addcchar(parser_text[1]); YY_BREAK case 14: YY_RULE_SETUP -#line 180 "parser.l" -yy_push_state(ATTR); return '['; +#line 183 "parser.l" +addcchar(parser_text[1]); YY_BREAK case 15: YY_RULE_SETUP -#line 181 "parser.l" -yy_pop_state(); return ']'; +#line 184 "parser.l" +addcchar('\\'); addcchar(parser_text[1]); YY_BREAK case 16: YY_RULE_SETUP -#line 182 "parser.l" -return attr_token(parser_text); +#line 185 "parser.l" +addcchar(parser_text[0]); YY_BREAK case 17: YY_RULE_SETUP -#line 183 "parser.l" +#line 186 "parser.l" +yy_push_state(ATTR); return '['; + YY_BREAK +case 18: +YY_RULE_SETUP +#line 187 "parser.l" +yy_pop_state(); return ']'; + YY_BREAK +case 19: +YY_RULE_SETUP +#line 188 "parser.l" +return attr_token(parser_text); + YY_BREAK +case 20: +YY_RULE_SETUP +#line 189 "parser.l" { parser_lval.uuid = parse_uuid(parser_text); return aUUID; } YY_BREAK -case 18: +case 21: YY_RULE_SETUP -#line 187 "parser.l" +#line 193 "parser.l" { parser_lval.num = xstrtoul(parser_text, NULL, 0); return aHEXNUM; } YY_BREAK -case 19: +case 22: YY_RULE_SETUP -#line 191 "parser.l" +#line 197 "parser.l" { parser_lval.num = xstrtoul(parser_text, NULL, 0); return aNUM; } YY_BREAK -case 20: +case 23: YY_RULE_SETUP -#line 195 "parser.l" +#line 201 "parser.l" { parser_lval.dbl = strtod(parser_text, NULL); return aDOUBLE; } YY_BREAK -case 21: +case 24: *yy_cp = (yy_hold_char); /* undo effects of setting up parser_text */ (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up parser_text again */ YY_RULE_SETUP -#line 199 "parser.l" +#line 205 "parser.l" return tSAFEARRAY; YY_BREAK -case 22: -YY_RULE_SETUP -#line 200 "parser.l" -return kw_token(parser_text); - YY_BREAK -case 23: -/* rule 23 can match eol */ -YY_RULE_SETUP -#line 201 "parser.l" -line_number++; - YY_BREAK -case 24: -YY_RULE_SETUP -#line 202 "parser.l" - - YY_BREAK case 25: YY_RULE_SETUP -#line 203 "parser.l" -return SHL; +#line 206 "parser.l" +return kw_token(parser_text); YY_BREAK case 26: +/* rule 26 can match eol */ YY_RULE_SETUP -#line 204 "parser.l" -return SHR; +#line 207 "parser.l" +line_number++; YY_BREAK case 27: YY_RULE_SETUP -#line 205 "parser.l" -return MEMBERPTR; +#line 208 "parser.l" + YY_BREAK case 28: YY_RULE_SETUP -#line 206 "parser.l" -return EQUALITY; +#line 209 "parser.l" +return SHL; YY_BREAK case 29: YY_RULE_SETUP -#line 207 "parser.l" -return INEQUALITY; +#line 210 "parser.l" +return SHR; YY_BREAK case 30: YY_RULE_SETUP -#line 208 "parser.l" -return GREATEREQUAL; +#line 211 "parser.l" +return MEMBERPTR; YY_BREAK case 31: YY_RULE_SETUP -#line 209 "parser.l" -return LESSEQUAL; +#line 212 "parser.l" +return EQUALITY; YY_BREAK case 32: YY_RULE_SETUP -#line 210 "parser.l" -return LOGICALOR; +#line 213 "parser.l" +return INEQUALITY; YY_BREAK case 33: YY_RULE_SETUP -#line 211 "parser.l" -return LOGICALAND; +#line 214 "parser.l" +return GREATEREQUAL; YY_BREAK case 34: YY_RULE_SETUP -#line 212 "parser.l" -return ELLIPSIS; +#line 215 "parser.l" +return LESSEQUAL; YY_BREAK case 35: YY_RULE_SETUP -#line 213 "parser.l" +#line 216 "parser.l" +return LOGICALOR; + YY_BREAK +case 36: +YY_RULE_SETUP +#line 217 "parser.l" +return LOGICALAND; + YY_BREAK +case 37: +YY_RULE_SETUP +#line 218 "parser.l" +return ELLIPSIS; + YY_BREAK +case 38: +YY_RULE_SETUP +#line 219 "parser.l" return parser_text[0]; YY_BREAK case YY_STATE_EOF(INITIAL): @@ -1251,20 +1318,21 @@ case YY_STATE_EOF(WSTRQUOTE): case YY_STATE_EOF(ATTR): case YY_STATE_EOF(PP_LINE): +case YY_STATE_EOF(PP_PRAGMA): case YY_STATE_EOF(SQUOTE): -#line 214 "parser.l" +#line 220 "parser.l" { if (import_stack_ptr) return aEOF; else yyterminate(); } YY_BREAK -case 36: +case 39: YY_RULE_SETUP -#line 219 "parser.l" +#line 225 "parser.l" ECHO; YY_BREAK -#line 1268 "parser.yy.c" +#line 1336 "parser.yy.c" case YY_END_OF_BUFFER: { @@ -1556,7 +1624,7 @@ 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 >= 148 ) + if ( yy_current_state >= 174 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1584,11 +1652,11 @@ 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 >= 148 ) + if ( yy_current_state >= 174 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 147); + yy_is_jam = (yy_current_state == 173); return yy_is_jam ? 0 : yy_current_state; } @@ -2263,7 +2331,7 @@ #define YYTABLES_NAME "yytables" -#line 219 "parser.l" +#line 225 "parser.l" @@ -2474,7 +2542,7 @@ struct keyword key, *kwp; key.kw = kw; kwp = bsearch(&key, keywords, NKEYWORDS, sizeof(keywords[0]), kw_cmp_func); - if (kwp && (flag_is_rt || kwp->token != tNAMESPACE)) { + if (kwp && (do_rt_extension || kwp->token != tNAMESPACE)) { parser_lval.str = xstrdup(kwp->kw); return kwp->token; }
diff --git a/mingw-w64-tools/widl/src/register.c b/mingw-w64-tools/widl/src/register.c index d8b34d9..9a4f219 100644 --- a/mingw-w64-tools/widl/src/register.c +++ b/mingw-w64-tools/widl/src/register.c
@@ -280,6 +280,8 @@ const expr_t *lcid_expr = get_attrp( typelib->attrs, ATTR_LIBLCID ); unsigned int version = get_attrv( typelib->attrs, ATTR_VERSION ); unsigned int flags = 0; + char id_part[12] = ""; + expr_t *expr; if (is_attr( typelib->attrs, ATTR_RESTRICTED )) flags |= 1; /* LIBFLAG_FRESTRICTED */ if (is_attr( typelib->attrs, ATTR_CONTROL )) flags |= 2; /* LIBFLAG_FCONTROL */ @@ -295,8 +297,11 @@ put_str( indent, "'%u.%u' = s '%s'\n", MAJORVERSION(version), MINORVERSION(version), descr ? descr : typelib->name ); put_str( indent++, "{\n" ); - put_str( indent, "'%x' { %s = s '%%MODULE%%' }\n", - lcid_expr ? lcid_expr->cval : 0, typelib_kind == SYS_WIN64 ? "win64" : "win32" ); + expr = get_attrp( typelib->attrs, ATTR_ID ); + if (expr) + sprintf(id_part, "\\%d", expr->cval); + put_str( indent, "'%x' { %s = s '%%MODULE%%%s' }\n", + lcid_expr ? lcid_expr->cval : 0, typelib_kind == SYS_WIN64 ? "win64" : "win32", id_part ); put_str( indent, "FLAGS = s '%u'\n", flags ); put_str( --indent, "}\n" ); put_str( --indent, "}\n" );
diff --git a/mingw-w64-tools/widl/src/typegen.c b/mingw-w64-tools/widl/src/typegen.c index 29ec15f..ea9bca6 100644 --- a/mingw-w64-tools/widl/src/typegen.c +++ b/mingw-w64-tools/widl/src/typegen.c
@@ -864,7 +864,7 @@ do { \ if (file) \ fprintf(file, "/* %2u */\n", typestring_offset); \ - print_file((file), 2, "0x%02x, /* " #fctype " */\n", RPC_##fctype); \ + print_file((file), 2, "0x%02x,\t/* " #fctype " */\n", RPC_##fctype); \ } \ while (0) @@ -1451,8 +1451,8 @@ if (!is_new_style) { print_file(file, 0, "/* %u (void) */\n", *offset); - print_file(file, indent, "0x5b, /* FC_END */\n"); - print_file(file, indent, "0x5c, /* FC_PAD */\n"); + print_file(file, indent, "0x5b,\t/* FC_END */\n"); + print_file(file, indent, "0x5c,\t/* FC_PAD */\n"); *offset += 2; } } @@ -2354,10 +2354,10 @@ { if (*tfsoff % 2 == 0) { - print_file(file, 2, "0x%x,\t\t/* FC_PAD */\n", RPC_FC_PAD); + print_file(file, 2, "0x%x,\t/* FC_PAD */\n", RPC_FC_PAD); *tfsoff += 1; } - print_file(file, 2, "0x%x,\t\t/* FC_END */\n", RPC_FC_END); + print_file(file, 2, "0x%x,\t/* FC_END */\n", RPC_FC_END); *tfsoff += 1; } @@ -2778,11 +2778,6 @@ &offset_in_memory, &offset_in_buffer, typestring_offset); } -int is_declptr(const type_t *t) -{ - return is_ptr(t) || (type_get_type(t) == TYPE_ARRAY && type_array_is_decl_as_ptr(t)); -} - static unsigned int write_string_tfs(FILE *file, const attr_list_t *attrs, type_t *type, enum type_context context, const char *name, unsigned int *typestring_offset) @@ -2846,7 +2841,7 @@ WRITE_FCTYPE(file, FC_WSTRING, *typestring_offset); else WRITE_FCTYPE(file, FC_CSTRING, *typestring_offset); - print_file(file, 2, "0x%x, /* FC_PAD */\n", RPC_FC_PAD); + print_file(file, 2, "0x%x,\t/* FC_PAD */\n", RPC_FC_PAD); *typestring_offset += 2; print_file(file, 2, "NdrFcShort(0x%hx),\t/* %d */\n", (unsigned short)dim, dim); @@ -2861,7 +2856,7 @@ WRITE_FCTYPE(file, FC_C_WSTRING, *typestring_offset); else WRITE_FCTYPE(file, FC_C_CSTRING, *typestring_offset); - print_file(file, 2, "0x%x, /* FC_STRING_SIZED */\n", RPC_FC_STRING_SIZED); + print_file(file, 2, "0x%x,\t/* FC_STRING_SIZED */\n", RPC_FC_STRING_SIZED); *typestring_offset += 2; *typestring_offset += write_conf_or_var_desc( @@ -2882,7 +2877,7 @@ WRITE_FCTYPE(file, FC_C_WSTRING, *typestring_offset); else WRITE_FCTYPE(file, FC_C_CSTRING, *typestring_offset); - print_file(file, 2, "0x%x, /* FC_PAD */\n", RPC_FC_PAD); + print_file(file, 2, "0x%x,\t/* FC_PAD */\n", RPC_FC_PAD); *typestring_offset += 2; update_tfsoff(type, start_offset, file); @@ -2968,11 +2963,11 @@ if (type_has_pointers(type_array_get_element(type)) && (type_array_is_decl_as_ptr(type) || !current_structure)) { - print_file(file, 2, "0x%x, /* FC_PP */\n", RPC_FC_PP); - print_file(file, 2, "0x%x, /* FC_PAD */\n", RPC_FC_PAD); + print_file(file, 2, "0x%x,\t/* FC_PP */\n", RPC_FC_PP); + print_file(file, 2, "0x%x,\t/* FC_PAD */\n", RPC_FC_PAD); *typestring_offset += 2; write_pointer_description(file, type, typestring_offset); - print_file(file, 2, "0x%x, /* FC_END */\n", RPC_FC_END); + print_file(file, 2, "0x%x,\t/* FC_END */\n", RPC_FC_END); *typestring_offset += 1; } @@ -3155,11 +3150,11 @@ (fc == RPC_FC_CPSTRUCT) || (fc == RPC_FC_CVSTRUCT && type_has_pointers(type))) { - print_file(file, 2, "0x%x, /* FC_PP */\n", RPC_FC_PP); - print_file(file, 2, "0x%x, /* FC_PAD */\n", RPC_FC_PAD); + print_file(file, 2, "0x%x,\t/* FC_PP */\n", RPC_FC_PP); + print_file(file, 2, "0x%x,\t/* FC_PAD */\n", RPC_FC_PAD); *tfsoff += 2; write_pointer_description(file, type, tfsoff); - print_file(file, 2, "0x%x, /* FC_END */\n", RPC_FC_END); + print_file(file, 2, "0x%x,\t/* FC_END */\n", RPC_FC_END); *tfsoff += 1; }
diff --git a/mingw-w64-tools/widl/src/typelib.c b/mingw-w64-tools/widl/src/typelib.c index e3fc0b9..8632fdf 100644 --- a/mingw-w64-tools/widl/src/typelib.c +++ b/mingw-w64-tools/widl/src/typelib.c
@@ -49,16 +49,6 @@ static typelib_t *typelib; -int is_ptr(const type_t *t) -{ - return type_get_type(t) == TYPE_POINTER; -} - -int is_array(const type_t *t) -{ - return type_get_type(t) == TYPE_ARRAY; -} - /* List of oleauto types that should be recognized by name. * (most of) these seem to be intrinsic types in mktyplib. * This table MUST be alphabetically sorted on the kw field.
diff --git a/mingw-w64-tools/widl/src/typelib_struct.h b/mingw-w64-tools/widl/src/typelib_struct.h index 79b86b9..42faac8 100644 --- a/mingw-w64-tools/widl/src/typelib_struct.h +++ b/mingw-w64-tools/widl/src/typelib_struct.h
@@ -97,12 +97,12 @@ /*2*/MSFT_pSeg pImpInfo; /* table with info for imported types */ /*3*/MSFT_pSeg pImpFiles; /* import libraries */ /*4*/MSFT_pSeg pRefTab; /* References table */ -/*5*/MSFT_pSeg pLibtab; /* always exists, always same size (0x80) */ - /* hash table w offsets to guid????? */ +/*5*/MSFT_pSeg pGuidHashTab; /* always exists, always same size (0x80) */ + /* hash table with offsets to guid */ /*6*/MSFT_pSeg pGuidTab; /* all guids are stored here together with */ /* offset in some table???? */ -/*7*/MSFT_pSeg res07; /* always created, always same size (0x200) */ - /* purpose largely unknown */ +/*7*/MSFT_pSeg pNameHashTab; /* always created, always same size (0x200) */ + /* hash table with offsets to names */ /*8*/MSFT_pSeg pNametab; /* name tables */ /*9*/MSFT_pSeg pStringtab; /* string table */ /*A*/MSFT_pSeg pTypdescTab; /* table with type descriptors */
diff --git a/mingw-w64-tools/widl/src/typetree.h b/mingw-w64-tools/widl/src/typetree.h index 1e7ed88..8ba348b 100644 --- a/mingw-w64-tools/widl/src/typetree.h +++ b/mingw-w64-tools/widl/src/typetree.h
@@ -85,6 +85,13 @@ return type->details.structure->fields; } +static inline var_list_t *type_union_get_fields(const type_t *type) +{ + type = type_get_real_type(type); + assert(type_get_type(type) == TYPE_UNION); + return type->details.structure->fields; +} + static inline var_list_t *type_function_get_args(const type_t *type) { type = type_get_real_type(type);
diff --git a/mingw-w64-tools/widl/src/widl.c b/mingw-w64-tools/widl/src/widl.c index 64319ed..dfe2341 100644 --- a/mingw-w64-tools/widl/src/widl.c +++ b/mingw-w64-tools/widl/src/widl.c
@@ -72,12 +72,12 @@ " --prefix-client=p Prefix names of client stubs with 'p'\n" " --prefix-server=p Prefix names of server functions with 'p'\n" " -r Generate registration script\n" +" --rt Enable WinRT's language extensions for IDL\n" " -s Generate server stub\n" " -t Generate typelib\n" " -u Generate interface identifiers file\n" " -V Print version and exit\n" " -W Enable pedantic warnings\n" -" --rt Enable RT's extensions\n" " --win32 Only generate 32-bit code\n" " --win64 Only generate 64-bit code\n" " --win32-align n Set win32 structure alignment to 'n'\n" @@ -114,7 +114,7 @@ int do_win64 = 1; int win32_packing = 8; int win64_packing = 8; -int flag_is_rt = 0; +int do_rt_extension = 0; static enum stub_mode stub_mode = MODE_Os; char *input_name; @@ -141,7 +141,7 @@ static FILE *idfile; -unsigned int pointer_size = sizeof (void*); +unsigned int pointer_size = sizeof(void*); syskind_t typelib_kind = sizeof(void*) == 8 ? SYS_WIN64 : SYS_WIN32; time_t now; @@ -400,7 +400,7 @@ dlldata = fopen(dlldata_name, "r"); if (dlldata) { - static char marker[] = "REFERENCE_PROXY_FILE"; + static const char marker[] = "REFERENCE_PROXY_FILE"; static const char delegation_define[] = "#define PROXY_DELEGATION"; char *line = NULL; size_t len = 0; @@ -578,7 +578,7 @@ fprintf(stderr, "%s", usage); return 0; case RT_OPTION: - flag_is_rt = 1; + do_rt_extension = 1; break; case WIN32_OPTION: do_win32 = 1; @@ -635,7 +635,6 @@ case 'm': if (!strcmp( optarg, "32" )) typelib_kind = SYS_WIN32; else if (!strcmp( optarg, "64" )) typelib_kind = SYS_WIN64; - else error( "Invalid -m argument '%s'\n", optarg ); break; case 'N': no_preprocess = 1; @@ -699,14 +698,30 @@ wpp_add_include_path(DEFAULT_INCLUDE_DIR); #endif + /* if nothing specified, try to guess output type from the output file name */ + if (output_name && do_everything && !do_header && !do_typelib && !do_proxies && + !do_client && !do_server && !do_regscript && !do_idfile && !do_dlldata) + { + do_everything = 0; + if (strendswith( output_name, ".h" )) do_header = 1; + else if (strendswith( output_name, ".tlb" )) do_typelib = 1; + else if (strendswith( output_name, "_p.c" )) do_proxies = 1; + else if (strendswith( output_name, "_c.c" )) do_client = 1; + else if (strendswith( output_name, "_s.c" )) do_server = 1; + else if (strendswith( output_name, "_i.c" )) do_idfile = 1; + else if (strendswith( output_name, "_r.res" )) do_regscript = 1; + else if (strendswith( output_name, "_t.res" )) do_typelib = 1; + else if (strendswith( output_name, "dlldata.c" )) do_dlldata = 1; + else do_everything = 1; + } + if(do_everything) { set_everything(TRUE); } if (!output_name) output_name = dup_basename(input_name, ".idl"); - if (!do_everything && - do_header + do_typelib + do_proxies + do_client + + if (do_header + do_typelib + do_proxies + do_client + do_server + do_regscript + do_idfile + do_dlldata == 1) { if (do_header) header_name = output_name;
diff --git a/mingw-w64-tools/widl/src/widl.h b/mingw-w64-tools/widl/src/widl.h index b8ab374..9e09f76 100644 --- a/mingw-w64-tools/widl/src/widl.h +++ b/mingw-w64-tools/widl/src/widl.h
@@ -49,7 +49,7 @@ extern int do_win64; extern int win32_packing; extern int win64_packing; -extern int flag_is_rt; +extern int do_rt_extension; extern char *input_name; extern char *input_idl_name;
diff --git a/mingw-w64-tools/widl/src/widltypes.h b/mingw-w64-tools/widl/src/widltypes.h index 4aa46d7..47c8844 100644 --- a/mingw-w64-tools/widl/src/widltypes.h +++ b/mingw-w64-tools/widl/src/widltypes.h
@@ -243,6 +243,7 @@ STMT_TYPEDEF, STMT_IMPORT, STMT_IMPORTLIB, + STMT_PRAGMA, STMT_CPPQUOTE }; @@ -514,7 +515,6 @@ struct _statement_t { struct list entry; enum statement_type type; - const char *nspace; union { ifref_t iface; @@ -544,9 +544,6 @@ void set_all_tfswrite(int val); void clear_all_offsets(void); -int is_ptr(const type_t *t); -int is_array(const type_t *t); - #define tsENUM 1 #define tsSTRUCT 2 #define tsUNION 3
diff --git a/mingw-w64-tools/widl/src/write_msft.c b/mingw-w64-tools/widl/src/write_msft.c index 53e1feb..1a13f67 100644 --- a/mingw-w64-tools/widl/src/write_msft.c +++ b/mingw-w64-tools/widl/src/write_msft.c
@@ -174,7 +174,7 @@ segdir = &typelib->typelib_segdir[MSFT_SEG_TYPEINFO]; - for (i = 0; i < 15; i++) { + for (i = 0; i < MSFT_SEG_MAX; i++) { segdir[i].offset = -1; segdir[i].length = 0; segdir[i].res08 = -1; @@ -743,6 +743,7 @@ return NULL; } +static void add_union_typeinfo(msft_typelib_t *typelib, type_t *structure); static void add_structure_typeinfo(msft_typelib_t *typelib, type_t *structure); static void add_interface_typeinfo(msft_typelib_t *typelib, type_t *interface); static void add_enum_typeinfo(msft_typelib_t *typelib, type_t *enumeration); @@ -827,7 +828,6 @@ case VT_UI4: case VT_R4: case VT_ERROR: - case VT_BSTR: case VT_HRESULT: *encoded_type = default_type; *width = 4; @@ -863,8 +863,9 @@ case VT_UNKNOWN: case VT_DISPATCH: + case VT_BSTR: *encoded_type = default_type; - *width = 4; + *width = pointer_size; *alignment = 4; break; @@ -875,7 +876,7 @@ case VT_LPSTR: case VT_LPWSTR: *encoded_type = 0xfffe0000 | vt; - *width = 4; + *width = pointer_size; *alignment = 4; break; @@ -898,7 +899,7 @@ if(next_vt == VT_DISPATCH || next_vt == VT_UNKNOWN) { chat("encode_type: skipping ptr\n"); *encoded_type = target_type; - *width = 4; + *width = pointer_size; *alignment = 4; *decoded_size = child_size; break; @@ -928,13 +929,12 @@ *encoded_type = typeoffset; - *width = 4; + *width = pointer_size; *alignment = 4; *decoded_size = 8 /*sizeof(TYPEDESC)*/ + child_size; break; } - case VT_SAFEARRAY: { type_t *element_type = type_alias_get_aliasee(type_array_get_element(type)); @@ -966,13 +966,12 @@ *encoded_type = typeoffset; - *width = 4; + *width = pointer_size; *alignment = 4; *decoded_size = 8 /*sizeof(TYPEDESC)*/ + child_size; break; } - case VT_USERDEFINED: { int typeinfo_offset; @@ -990,6 +989,9 @@ case TYPE_STRUCT: add_structure_typeinfo(typelib, type); break; + case TYPE_UNION: + add_union_typeinfo(typelib, type); + break; case TYPE_INTERFACE: add_interface_typeinfo(typelib, type); break; @@ -1119,7 +1121,7 @@ chat("encode_var: skipping ptr\n"); *encoded_type = target_type; *decoded_size = child_size; - *width = 4; + *width = pointer_size; *alignment = 4; return 0; } @@ -1148,7 +1150,7 @@ *encoded_type = typeoffset; - *width = 4; + *width = pointer_size; *alignment = 4; *decoded_size = 8 /*sizeof(TYPEDESC)*/ + child_size; return 0; @@ -1193,6 +1195,8 @@ case VT_UINT: case VT_HRESULT: case VT_PTR: + case VT_UNKNOWN: + case VT_DISPATCH: { const unsigned int lv = get_ulong_val(*(const unsigned int *)value, vt); if((lv & 0x3ffffff) == lv) { @@ -1232,7 +1236,7 @@ } static HRESULT set_custdata(msft_typelib_t *typelib, REFGUID guid, - int vt, int value, int *offset) + int vt, const void *value, int *offset) { MSFT_GuidEntry guidentry; int guidoffset; @@ -1246,7 +1250,7 @@ guidentry.next_hash = -1; guidoffset = ctl2_alloc_guid(typelib, &guidentry); - write_value(typelib, &data_out, vt, &value); + write_value(typelib, &data_out, vt, value); custoffset = ctl2_alloc_segment(typelib, MSFT_SEG_CUSTDATAGUID, 12, 0); @@ -1259,6 +1263,33 @@ return S_OK; } +/* It's possible to have a default value for pointer arguments too. + In this case default value has a referenced type, e.g. + 'LONG*' argument gets VT_I4, 'DOUBLE*' - VT_R8. IUnknown* and IDispatch* + are recognised too and stored as VT_UNKNOWN and VT_DISPATCH. + But IUnknown/IDispatch arguments can only have default value of 0 + (or expression that resolves to zero) while other pointers can have + any default value. */ +static int get_defaultvalue_vt(type_t *type) +{ + int vt = get_type_vt(type); + if (type_get_type(type) == TYPE_ENUM) + vt = VT_I4; + else + { + vt = get_type_vt(type); + if (vt == VT_PTR && is_ptr(type)) { + vt = get_type_vt(type_pointer_get_ref(type)); + /* The only acceptable value for pointers to non-basic types + is NULL, it's stored as VT_I4 for both 32 and 64 bit typelibs. */ + if (vt == VT_USERDEFINED) + vt = VT_I4; + } + } + + return vt; +} + static HRESULT add_func_desc(msft_typeinfo_t* typeinfo, var_t *func, int index) { int offset, name_offset; @@ -1483,10 +1514,7 @@ { int vt; expr_t *expr = (expr_t *)attr->u.pval; - if (type_get_type(arg->type) == TYPE_ENUM) - vt = VT_INT; - else - vt = get_type_vt(arg->type); + vt = get_defaultvalue_vt(arg->type); paramflags |= 0x30; /* PARAMFLAG_FHASDEFAULT | PARAMFLAG_FOPT */ if (expr->type == EXPR_STRLIT || expr->type == EXPR_WSTRLIT) { @@ -1728,7 +1756,7 @@ break; case TKIND_DISPATCH: var_kind = 3; /* VAR_DISPATCH */ - typeinfo->datawidth = 4; + typeinfo->datawidth = pointer_size; var_alignment = 4; break; default: @@ -1981,7 +2009,7 @@ msft_typeinfo = create_msft_typeinfo(typelib, TKIND_DISPATCH, dispinterface->name, dispinterface->attrs); - msft_typeinfo->typeinfo->size = 4; + msft_typeinfo->typeinfo->size = pointer_size; msft_typeinfo->typeinfo->typekind |= 0x2100; msft_typeinfo->typeinfo->flags |= 0x1000; /* TYPEFLAG_FDISPATCHABLE */ @@ -2046,7 +2074,7 @@ interface->typelib_idx = typelib->typelib_header.nrtypeinfos; msft_typeinfo = create_msft_typeinfo(typelib, TKIND_INTERFACE, interface->name, interface->attrs); - msft_typeinfo->typeinfo->size = 4; + msft_typeinfo->typeinfo->size = pointer_size; msft_typeinfo->typeinfo->typekind |= 0x2200; for (derived = inherit; derived; derived = type_iface_get_inherit(derived)) @@ -2079,6 +2107,24 @@ } } +static void add_union_typeinfo(msft_typelib_t *typelib, type_t *structure) +{ + int idx = 0; + var_t *cur; + msft_typeinfo_t *msft_typeinfo; + + if (-1 < structure->typelib_idx) + return; + + structure->typelib_idx = typelib->typelib_header.nrtypeinfos; + msft_typeinfo = create_msft_typeinfo(typelib, TKIND_UNION, structure->name, structure->attrs); + msft_typeinfo->typeinfo->size = 0; + + if (type_union_get_cases(structure)) + LIST_FOR_EACH_ENTRY( cur, type_union_get_cases(structure), var_t, entry ) + add_var_desc(msft_typeinfo, idx++, cur); +} + static void add_structure_typeinfo(msft_typelib_t *typelib, type_t *structure) { int idx = 0; @@ -2103,6 +2149,9 @@ var_t *cur; msft_typeinfo_t *msft_typeinfo; + if (-1 < enumeration->typelib_idx) + return; + enumeration->typelib_idx = typelib->typelib_header.nrtypeinfos; msft_typeinfo = create_msft_typeinfo(typelib, TKIND_ENUM, enumeration->name, enumeration->attrs); msft_typeinfo->typeinfo->size = 0; @@ -2210,7 +2259,7 @@ first_source->flags |= 0x1; msft_typeinfo->typeinfo->cImplTypes = num_ifaces; - msft_typeinfo->typeinfo->size = 4; + msft_typeinfo->typeinfo->size = pointer_size; msft_typeinfo->typeinfo->typekind |= 0x2200; } @@ -2245,6 +2294,9 @@ case TYPE_STRUCT: add_structure_typeinfo(typelib, type); break; + case TYPE_UNION: + add_union_typeinfo(typelib, type); + break; case TYPE_ENUM: add_enum_typeinfo(typelib, type); break; @@ -2266,6 +2318,7 @@ switch(stmt->type) { case STMT_LIBRARY: case STMT_IMPORT: + case STMT_PRAGMA: case STMT_CPPQUOTE: case STMT_DECLARATION: /* not included in typelib */ @@ -2566,9 +2619,11 @@ const statement_t *stmt; time_t cur_time; char *time_override; - unsigned int version = 5 << 24 | 1 << 16 | 164; /* 5.01.0164 */ - GUID midl_time_guid = {0xde77ba63,0x517c,0x11d1,{0xa2,0xda,0x00,0x00,0xf8,0x77,0x3c,0xe9}}; - GUID midl_version_guid = {0xde77ba64,0x517c,0x11d1,{0xa2,0xda,0x00,0x00,0xf8,0x77,0x3c,0xe9}}; + unsigned int version = 7 << 24 | 555; /* 7.00.0555 */ + GUID midl_time_guid = {0xde77ba63,0x517c,0x11d1,{0xa2,0xda,0x00,0x00,0xf8,0x77,0x3c,0xe9}}; + GUID midl_version_guid = {0xde77ba64,0x517c,0x11d1,{0xa2,0xda,0x00,0x00,0xf8,0x77,0x3c,0xe9}}; + GUID midl_info_guid = {0xde77ba65,0x517c,0x11d1,{0xa2,0xda,0x00,0x00,0xf8,0x77,0x3c,0xe9}}; + char info_string[128]; pointer_size = (typelib_kind == SYS_WIN64) ? 8 : 4; @@ -2615,8 +2670,10 @@ and midl's version number */ time_override = getenv( "WIDL_TIME_OVERRIDE"); cur_time = time_override ? atol( time_override) : time(NULL); - set_custdata(msft, &midl_time_guid, VT_UI4, cur_time, &msft->typelib_header.CustomDataOffset); - set_custdata(msft, &midl_version_guid, VT_UI4, version, &msft->typelib_header.CustomDataOffset); + sprintf(info_string, "Created by WIDL version %s at %s\n", PACKAGE_VERSION, ctime(&cur_time)); + set_custdata(msft, &midl_info_guid, VT_BSTR, info_string, &msft->typelib_header.CustomDataOffset); + set_custdata(msft, &midl_time_guid, VT_UI4, &cur_time, &msft->typelib_header.CustomDataOffset); + set_custdata(msft, &midl_version_guid, VT_UI4, &version, &msft->typelib_header.CustomDataOffset); if (typelib->stmts) LIST_FOR_EACH_ENTRY( stmt, typelib->stmts, const statement_t, entry )