From f9220ea4440e6e808cdc75557401e341fbd59cff Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sat, 26 Dec 2020 14:00:26 +0100 Subject: [PATCH] [WIDL] Port ALLOCATE attribute support to our WIDL --- sdk/tools/widl/parser.l | 3 + sdk/tools/widl/parser.tab.c | 5016 ++++++++++++++++++----------------- sdk/tools/widl/parser.tab.h | 350 +-- sdk/tools/widl/parser.y | 32 +- sdk/tools/widl/parser.yy.c | 1021 ++++--- sdk/tools/widl/parser.yy.h | 595 ++++- sdk/tools/widl/typegen.c | 7 + sdk/tools/widl/widltypes.h | 1 + 8 files changed, 3937 insertions(+), 3088 deletions(-) diff --git a/sdk/tools/widl/parser.l b/sdk/tools/widl/parser.l index 3cbf4ff2d2b..da80432e050 100644 --- a/sdk/tools/widl/parser.l +++ b/sdk/tools/widl/parser.l @@ -318,6 +318,7 @@ static const struct keyword keywords[] = { static const struct keyword attr_keywords[] = { {"aggregatable", tAGGREGATABLE}, + {"all_nodes", tALLNODES}, {"allocate", tALLOCATE}, {"annotation", tANNOTATION}, {"apartment", tAPARTMENT}, @@ -345,6 +346,7 @@ static const struct keyword attr_keywords[] = {"disable_consistency_check", tDISABLECONSISTENCYCHECK}, {"displaybind", tDISPLAYBIND}, {"dllname", tDLLNAME}, + {"dont_free", tDONTFREE}, {"dual", tDUAL}, {"enable_allocate", tENABLEALLOCATE}, {"encode", tENCODE}, @@ -406,6 +408,7 @@ static const struct keyword attr_keywords[] = {"restricted", tRESTRICTED}, {"retval", tRETVAL}, {"single", tSINGLE}, + {"single_node", tSINGLENODE}, {"size_is", tSIZEIS}, {"source", tSOURCE}, {"strict_context_handle", tSTRICTCONTEXTHANDLE}, diff --git a/sdk/tools/widl/parser.tab.c b/sdk/tools/widl/parser.tab.c index c45e0c08053..79369804346 100644 --- a/sdk/tools/widl/parser.tab.c +++ b/sdk/tools/widl/parser.tab.c @@ -1,8 +1,9 @@ -/* A Bison parser, made by GNU Bison 3.0. */ +/* A Bison parser, made by GNU Bison 3.5.4. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 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 @@ -40,11 +41,14 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ + /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "3.0" +#define YYBISON_VERSION "3.5.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -65,12 +69,11 @@ #define yyerror parser_error #define yydebug parser_debug #define yynerrs parser_nerrs - #define yylval parser_lval #define yychar parser_char -/* Copy the first part of user declarations. */ -#line 1 "parser.y" /* yacc.c:339 */ +/* First part of user prologue. */ +#line 1 "parser.y" /* * IDL Compiler @@ -214,13 +217,26 @@ static typelib_t *current_typelib; #endif -#line 218 "parser.tab.c" /* yacc.c:339 */ +#line 221 "parser.tab.c" -# ifndef YY_NULL -# if defined __cplusplus && 201103L <= __cplusplus -# define YY_NULL nullptr +# ifndef YY_CAST +# ifdef __cplusplus +# define YY_CAST(Type, Val) static_cast (Val) +# define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) # else -# define YY_NULL 0 +# define YY_CAST(Type, Val) ((Type) (Val)) +# define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) +# endif +# endif +# ifndef YY_NULLPTR +# if defined __cplusplus +# if 201103L <= __cplusplus +# define YY_NULLPTR nullptr +# else +# define YY_NULLPTR 0 +# endif +# else +# define YY_NULLPTR ((void*)0) # endif # endif @@ -232,10 +248,10 @@ static typelib_t *current_typelib; # define YYERROR_VERBOSE 1 #endif -/* In a future release of Bison, this section will be replaced - by #include "parser.tab.h". */ -#ifndef YY_PARSER_E_REACTOSSYNC_MSVC_HOST_TOOLS_SDK_TOOLS_WIDL_PARSER_TAB_H_INCLUDED -# define YY_PARSER_E_REACTOSSYNC_MSVC_HOST_TOOLS_SDK_TOOLS_WIDL_PARSER_TAB_H_INCLUDED +/* Use api.header.include to #include this header + instead of duplicating it here. */ +#ifndef YY_PARSER_PARSER_TAB_H_INCLUDED +# define YY_PARSER_PARSER_TAB_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -272,178 +288,180 @@ extern int parser_debug; LOGICALAND = 278, ELLIPSIS = 279, tAGGREGATABLE = 280, - tALLOCATE = 281, - tANNOTATION = 282, - tAPPOBJECT = 283, - tASYNC = 284, - tASYNCUUID = 285, - tAUTOHANDLE = 286, - tBINDABLE = 287, - tBOOLEAN = 288, - tBROADCAST = 289, - tBYTE = 290, - tBYTECOUNT = 291, - tCALLAS = 292, - tCALLBACK = 293, - tCASE = 294, - tCDECL = 295, - tCHAR = 296, - tCOCLASS = 297, - tCODE = 298, - tCOMMSTATUS = 299, - tCONST = 300, - tCONTEXTHANDLE = 301, - tCONTEXTHANDLENOSERIALIZE = 302, - tCONTEXTHANDLESERIALIZE = 303, - tCONTROL = 304, - tCPPQUOTE = 305, - tDECODE = 306, - tDEFAULT = 307, - tDEFAULTBIND = 308, - tDEFAULTCOLLELEM = 309, - tDEFAULTVALUE = 310, - tDEFAULTVTABLE = 311, - tDISABLECONSISTENCYCHECK = 312, - tDISPLAYBIND = 313, - tDISPINTERFACE = 314, - tDLLNAME = 315, - tDOUBLE = 316, - tDUAL = 317, - tENABLEALLOCATE = 318, - tENCODE = 319, - tENDPOINT = 320, - tENTRY = 321, - tENUM = 322, - tERRORSTATUST = 323, - tEXPLICITHANDLE = 324, - tEXTERN = 325, - tFALSE = 326, - tFASTCALL = 327, - tFAULTSTATUS = 328, - tFLOAT = 329, - tFORCEALLOCATE = 330, - tHANDLE = 331, - tHANDLET = 332, - tHELPCONTEXT = 333, - tHELPFILE = 334, - tHELPSTRING = 335, - tHELPSTRINGCONTEXT = 336, - tHELPSTRINGDLL = 337, - tHIDDEN = 338, - tHYPER = 339, - tID = 340, - tIDEMPOTENT = 341, - tIGNORE = 342, - tIIDIS = 343, - tIMMEDIATEBIND = 344, - tIMPLICITHANDLE = 345, - tIMPORT = 346, - tIMPORTLIB = 347, - tIN = 348, - tIN_LINE = 349, - tINLINE = 350, - tINPUTSYNC = 351, - tINT = 352, - tINT32 = 353, - tINT3264 = 354, - tINT64 = 355, - tINTERFACE = 356, - tLCID = 357, - tLENGTHIS = 358, - tLIBRARY = 359, - tLICENSED = 360, - tLOCAL = 361, - tLONG = 362, - tMAYBE = 363, - tMESSAGE = 364, - tMETHODS = 365, - tMODULE = 366, - tNAMESPACE = 367, - tNOCODE = 368, - tNONBROWSABLE = 369, - tNONCREATABLE = 370, - tNONEXTENSIBLE = 371, - tNOTIFY = 372, - tNOTIFYFLAG = 373, - tNULL = 374, - tOBJECT = 375, - tODL = 376, - tOLEAUTOMATION = 377, - tOPTIMIZE = 378, - tOPTIONAL = 379, - tOUT = 380, - tPARTIALIGNORE = 381, - tPASCAL = 382, - tPOINTERDEFAULT = 383, - tPRAGMA_WARNING = 384, - tPROGID = 385, - tPROPERTIES = 386, - tPROPGET = 387, - tPROPPUT = 388, - tPROPPUTREF = 389, - tPROXY = 390, - tPTR = 391, - tPUBLIC = 392, - tRANGE = 393, - tREADONLY = 394, - tREF = 395, - tREGISTER = 396, - tREPRESENTAS = 397, - tREQUESTEDIT = 398, - tRESTRICTED = 399, - tRETVAL = 400, - tSAFEARRAY = 401, - tSHORT = 402, - tSIGNED = 403, - tSIZEIS = 404, - tSIZEOF = 405, - tSMALL = 406, - tSOURCE = 407, - tSTATIC = 408, - tSTDCALL = 409, - tSTRICTCONTEXTHANDLE = 410, - tSTRING = 411, - tSTRUCT = 412, - tSWITCH = 413, - tSWITCHIS = 414, - tSWITCHTYPE = 415, - tTHREADING = 416, - tTRANSMITAS = 417, - tTRUE = 418, - tTYPEDEF = 419, - tUIDEFAULT = 420, - tUNION = 421, - tUNIQUE = 422, - tUNSIGNED = 423, - tUSESGETLASTERROR = 424, - tUSERMARSHAL = 425, - tUUID = 426, - tV1ENUM = 427, - tVARARG = 428, - tVERSION = 429, - tVIPROGID = 430, - tVOID = 431, - tWCHAR = 432, - tWIREMARSHAL = 433, - tAPARTMENT = 434, - tNEUTRAL = 435, - tSINGLE = 436, - tFREE = 437, - tBOTH = 438, - CAST = 439, - PPTR = 440, - POS = 441, - NEG = 442, - ADDRESSOF = 443 + tALLNODES = 281, + tALLOCATE = 282, + tANNOTATION = 283, + tAPPOBJECT = 284, + tASYNC = 285, + tASYNCUUID = 286, + tAUTOHANDLE = 287, + tBINDABLE = 288, + tBOOLEAN = 289, + tBROADCAST = 290, + tBYTE = 291, + tBYTECOUNT = 292, + tCALLAS = 293, + tCALLBACK = 294, + tCASE = 295, + tCDECL = 296, + tCHAR = 297, + tCOCLASS = 298, + tCODE = 299, + tCOMMSTATUS = 300, + tCONST = 301, + tCONTEXTHANDLE = 302, + tCONTEXTHANDLENOSERIALIZE = 303, + tCONTEXTHANDLESERIALIZE = 304, + tCONTROL = 305, + tCPPQUOTE = 306, + tDECODE = 307, + tDEFAULT = 308, + tDEFAULTBIND = 309, + tDEFAULTCOLLELEM = 310, + tDEFAULTVALUE = 311, + tDEFAULTVTABLE = 312, + tDISABLECONSISTENCYCHECK = 313, + tDISPLAYBIND = 314, + tDISPINTERFACE = 315, + tDLLNAME = 316, + tDONTFREE = 317, + tDOUBLE = 318, + tDUAL = 319, + tENABLEALLOCATE = 320, + tENCODE = 321, + tENDPOINT = 322, + tENTRY = 323, + tENUM = 324, + tERRORSTATUST = 325, + tEXPLICITHANDLE = 326, + tEXTERN = 327, + tFALSE = 328, + tFASTCALL = 329, + tFAULTSTATUS = 330, + tFLOAT = 331, + tFORCEALLOCATE = 332, + tHANDLE = 333, + tHANDLET = 334, + tHELPCONTEXT = 335, + tHELPFILE = 336, + tHELPSTRING = 337, + tHELPSTRINGCONTEXT = 338, + tHELPSTRINGDLL = 339, + tHIDDEN = 340, + tHYPER = 341, + tID = 342, + tIDEMPOTENT = 343, + tIGNORE = 344, + tIIDIS = 345, + tIMMEDIATEBIND = 346, + tIMPLICITHANDLE = 347, + tIMPORT = 348, + tIMPORTLIB = 349, + tIN = 350, + tIN_LINE = 351, + tINLINE = 352, + tINPUTSYNC = 353, + tINT = 354, + tINT32 = 355, + tINT3264 = 356, + tINT64 = 357, + tINTERFACE = 358, + tLCID = 359, + tLENGTHIS = 360, + tLIBRARY = 361, + tLICENSED = 362, + tLOCAL = 363, + tLONG = 364, + tMAYBE = 365, + tMESSAGE = 366, + tMETHODS = 367, + tMODULE = 368, + tNAMESPACE = 369, + tNOCODE = 370, + tNONBROWSABLE = 371, + tNONCREATABLE = 372, + tNONEXTENSIBLE = 373, + tNOTIFY = 374, + tNOTIFYFLAG = 375, + tNULL = 376, + tOBJECT = 377, + tODL = 378, + tOLEAUTOMATION = 379, + tOPTIMIZE = 380, + tOPTIONAL = 381, + tOUT = 382, + tPARTIALIGNORE = 383, + tPASCAL = 384, + tPOINTERDEFAULT = 385, + tPRAGMA_WARNING = 386, + tPROGID = 387, + tPROPERTIES = 388, + tPROPGET = 389, + tPROPPUT = 390, + tPROPPUTREF = 391, + tPROXY = 392, + tPTR = 393, + tPUBLIC = 394, + tRANGE = 395, + tREADONLY = 396, + tREF = 397, + tREGISTER = 398, + tREPRESENTAS = 399, + tREQUESTEDIT = 400, + tRESTRICTED = 401, + tRETVAL = 402, + tSAFEARRAY = 403, + tSHORT = 404, + tSIGNED = 405, + tSINGLENODE = 406, + tSIZEIS = 407, + tSIZEOF = 408, + tSMALL = 409, + tSOURCE = 410, + tSTATIC = 411, + tSTDCALL = 412, + tSTRICTCONTEXTHANDLE = 413, + tSTRING = 414, + tSTRUCT = 415, + tSWITCH = 416, + tSWITCHIS = 417, + tSWITCHTYPE = 418, + tTHREADING = 419, + tTRANSMITAS = 420, + tTRUE = 421, + tTYPEDEF = 422, + tUIDEFAULT = 423, + tUNION = 424, + tUNIQUE = 425, + tUNSIGNED = 426, + tUSESGETLASTERROR = 427, + tUSERMARSHAL = 428, + tUUID = 429, + tV1ENUM = 430, + tVARARG = 431, + tVERSION = 432, + tVIPROGID = 433, + tVOID = 434, + tWCHAR = 435, + tWIREMARSHAL = 436, + tAPARTMENT = 437, + tNEUTRAL = 438, + tSINGLE = 439, + tFREE = 440, + tBOTH = 441, + CAST = 442, + PPTR = 443, + POS = 444, + NEG = 445, + ADDRESSOF = 446 }; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE YYSTYPE; union YYSTYPE { -#line 144 "parser.y" /* yacc.c:355 */ +#line 144 "parser.y" attr_t *attr; attr_list_t *attr_list; @@ -471,8 +489,10 @@ union YYSTYPE struct _decl_spec_t *declspec; enum storage_class stgclass; -#line 475 "parser.tab.c" /* yacc.c:355 */ +#line 493 "parser.tab.c" + }; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif @@ -482,38 +502,83 @@ extern YYSTYPE parser_lval; int parser_parse (void); -#endif /* !YY_PARSER_E_REACTOSSYNC_MSVC_HOST_TOOLS_SDK_TOOLS_WIDL_PARSER_TAB_H_INCLUDED */ +#endif /* !YY_PARSER_PARSER_TAB_H_INCLUDED */ -/* Copy the second part of user declarations. */ -#line 490 "parser.tab.c" /* yacc.c:358 */ #ifdef short # undef short #endif -#ifdef YYTYPE_UINT8 -typedef YYTYPE_UINT8 yytype_uint8; -#else -typedef unsigned char yytype_uint8; +/* On compilers that do not define __PTRDIFF_MAX__ etc., make sure + and (if available) are included + so that the code can choose integer types of a good width. */ + +#ifndef __PTRDIFF_MAX__ +# include /* INFRINGES ON USER NAME SPACE */ +# if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ +# include /* INFRINGES ON USER NAME SPACE */ +# define YY_STDINT_H +# endif #endif -#ifdef YYTYPE_INT8 -typedef YYTYPE_INT8 yytype_int8; +/* Narrow types that promote to a signed type and that can represent a + signed or unsigned integer of at least N bits. In tables they can + save space and decrease cache pressure. Promoting to a signed type + helps avoid bugs in integer arithmetic. */ + +#ifdef __INT_LEAST8_MAX__ +typedef __INT_LEAST8_TYPE__ yytype_int8; +#elif defined YY_STDINT_H +typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif -#ifdef YYTYPE_UINT16 -typedef YYTYPE_UINT16 yytype_uint16; +#ifdef __INT_LEAST16_MAX__ +typedef __INT_LEAST16_TYPE__ yytype_int16; +#elif defined YY_STDINT_H +typedef int_least16_t yytype_int16; #else -typedef unsigned short int yytype_uint16; +typedef short yytype_int16; #endif -#ifdef YYTYPE_INT16 -typedef YYTYPE_INT16 yytype_int16; +#if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST8_TYPE__ yytype_uint8; +#elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST8_MAX <= INT_MAX) +typedef uint_least8_t yytype_uint8; +#elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX +typedef unsigned char yytype_uint8; #else -typedef short int yytype_int16; +typedef short yytype_uint8; +#endif + +#if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ +typedef __UINT_LEAST16_TYPE__ yytype_uint16; +#elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ + && UINT_LEAST16_MAX <= INT_MAX) +typedef uint_least16_t yytype_uint16; +#elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX +typedef unsigned short yytype_uint16; +#else +typedef int yytype_uint16; +#endif + +#ifndef YYPTRDIFF_T +# if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ +# define YYPTRDIFF_T __PTRDIFF_TYPE__ +# define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ +# elif defined PTRDIFF_MAX +# ifndef ptrdiff_t +# include /* INFRINGES ON USER NAME SPACE */ +# endif +# define YYPTRDIFF_T ptrdiff_t +# define YYPTRDIFF_MAXIMUM PTRDIFF_MAX +# else +# define YYPTRDIFF_T long +# define YYPTRDIFF_MAXIMUM LONG_MAX +# endif #endif #ifndef YYSIZE_T @@ -521,15 +586,27 @@ typedef short int yytype_int16; # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t -# elif ! defined YYSIZE_T +# elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else -# define YYSIZE_T unsigned int +# define YYSIZE_T unsigned # endif #endif -#define YYSIZE_MAXIMUM ((YYSIZE_T) -1) +#define YYSIZE_MAXIMUM \ + YY_CAST (YYPTRDIFF_T, \ + (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ + ? YYPTRDIFF_MAXIMUM \ + : YY_CAST (YYSIZE_T, -1))) + +#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) + +/* Stored state numbers (used for stacks). */ +typedef yytype_int16 yy_state_t; + +/* State numbers in computations. */ +typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS @@ -543,11 +620,19 @@ typedef short int yytype_int16; # 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 */ +#ifndef YY_ATTRIBUTE_PURE +# if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) +# else +# define YY_ATTRIBUTE_PURE +# endif +#endif + +#ifndef YY_ATTRIBUTE_UNUSED +# if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) +# define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) +# else +# define YY_ATTRIBUTE_UNUSED # endif #endif @@ -558,13 +643,13 @@ typedef short int yytype_int16; # define YYUSE(E) /* empty */ #endif -#if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ +#if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ -# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ - _Pragma ("GCC diagnostic push") \ - _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ +# define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") -# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ +# define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value @@ -577,6 +662,20 @@ typedef short int yytype_int16; # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif +#if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ +# define YY_IGNORE_USELESS_CAST_BEGIN \ + _Pragma ("GCC diagnostic push") \ + _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") +# define YY_IGNORE_USELESS_CAST_END \ + _Pragma ("GCC diagnostic pop") +#endif +#ifndef YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_BEGIN +# define YY_IGNORE_USELESS_CAST_END +#endif + + +#define YY_ASSERT(E) ((void) (0 && (E))) #if ! defined yyoverflow || YYERROR_VERBOSE @@ -653,17 +752,17 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */ /* A type that is properly aligned for any stack member. */ union yyalloc { - yytype_int16 yyss_alloc; + yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ -# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) +# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ - ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 @@ -676,11 +775,11 @@ union yyalloc # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ - YYSIZE_T yynewbytes; \ + YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ - yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ - yyptr += yynewbytes / sizeof (*yyptr); \ + yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) @@ -692,12 +791,12 @@ union yyalloc # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ - __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) + __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ - YYSIZE_T yyi; \ + YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ @@ -709,42 +808,43 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3047 +#define YYLAST 3170 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 213 +#define YYNTOKENS 216 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 113 +#define YYNNTS 115 /* YYNRULES -- Number of rules. */ -#define YYNRULES 410 +#define YYNRULES 417 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 718 +#define YYNSTATES 729 -/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned - by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 443 +#define YYMAXUTOK 446 + +/* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM + as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ - ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + (0 <= (YYX) && (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM - as returned by yylex, without out-of-bounds checking. */ + as returned by yylex. */ static const yytype_uint8 yytranslate[] = { 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, 197, 2, 2, 2, 196, 189, 2, - 210, 211, 194, 193, 184, 192, 204, 195, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 186, 209, - 190, 212, 191, 185, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 200, 2, 2, 2, 199, 192, 2, + 213, 214, 197, 196, 187, 195, 207, 198, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 189, 212, + 193, 215, 194, 188, 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, 205, 2, 206, 188, 2, 2, 2, 2, 2, + 2, 208, 2, 209, 191, 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, 207, 187, 208, 198, 2, 2, 2, + 2, 2, 2, 210, 190, 211, 201, 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, @@ -775,56 +875,56 @@ static const yytype_uint8 yytranslate[] = 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, 180, 181, 182, 183, 199, - 200, 201, 202, 203 + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 202, 203, 204, 205, 206 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ -static const yytype_uint16 yyrline[] = +static const yytype_int16 yyrline[] = { - 0, 327, 327, 344, 344, 346, 347, 347, 349, 350, - 351, 354, 357, 358, 359, 362, 363, 364, 364, 366, - 367, 368, 371, 372, 373, 374, 377, 378, 381, 382, - 386, 387, 388, 389, 390, 391, 392, 395, 406, 407, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 422, - 424, 432, 438, 446, 447, 449, 457, 468, 469, 472, - 473, 476, 477, 481, 486, 493, 497, 498, 501, 502, - 506, 509, 510, 511, 514, 515, 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, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, - 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, - 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, - 592, 593, 597, 598, 599, 600, 601, 602, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 624, 625, 630, 631, - 632, 633, 636, 637, 640, 644, 650, 651, 652, 655, - 659, 671, 675, 680, 683, 684, 687, 688, 691, 692, - 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, - 703, 704, 705, 706, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 718, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 728, 730, 732, 733, 736, - 737, 740, 746, 752, 753, 756, 761, 768, 769, 772, - 773, 777, 778, 781, 785, 791, 799, 803, 808, 809, - 812, 813, 814, 817, 819, 822, 823, 824, 825, 826, - 827, 828, 829, 830, 831, 832, 835, 836, 839, 840, - 841, 842, 843, 844, 845, 846, 847, 850, 851, 859, - 865, 869, 872, 873, 877, 880, 881, 884, 893, 894, - 897, 898, 901, 907, 913, 914, 917, 918, 921, 931, - 941, 947, 951, 952, 955, 956, 959, 964, 971, 972, - 973, 977, 981, 984, 985, 988, 989, 993, 994, 998, - 999, 1000, 1004, 1006, 1008, 1012, 1013, 1014, 1015, 1023, - 1025, 1027, 1032, 1034, 1039, 1040, 1045, 1046, 1047, 1048, - 1053, 1062, 1064, 1065, 1070, 1072, 1076, 1077, 1084, 1085, - 1086, 1087, 1088, 1093, 1101, 1102, 1105, 1106, 1109, 1116, - 1117, 1122, 1123, 1127, 1128, 1129, 1130, 1131, 1135, 1136, - 1137, 1140, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, - 1151, 1152, 1155, 1162, 1164, 1170, 1171, 1172, 1175, 1177, - 1179, 1181, 1184, 1189, 1197, 1198, 1201, 1202, 1205, 1206, - 1207 + 0, 328, 328, 345, 345, 347, 348, 348, 350, 351, + 352, 355, 358, 359, 360, 363, 364, 365, 365, 367, + 368, 369, 372, 373, 374, 375, 378, 379, 382, 383, + 387, 388, 389, 390, 391, 392, 393, 396, 407, 408, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 423, + 425, 433, 439, 447, 448, 450, 458, 469, 470, 473, + 474, 477, 478, 482, 487, 494, 498, 499, 502, 503, + 507, 510, 511, 512, 515, 516, 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, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, + 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, + 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, + 593, 594, 598, 599, 600, 601, 602, 603, 604, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, + 616, 617, 618, 619, 620, 621, 625, 626, 631, 632, + 633, 634, 637, 638, 641, 645, 651, 652, 653, 656, + 660, 672, 676, 681, 684, 685, 688, 689, 692, 693, + 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 719, 720, 721, 722, 723, + 724, 725, 726, 727, 728, 729, 731, 733, 734, 737, + 738, 741, 747, 753, 754, 757, 762, 769, 770, 773, + 774, 778, 779, 782, 786, 792, 800, 804, 809, 810, + 813, 814, 815, 818, 820, 823, 824, 825, 826, 827, + 828, 829, 830, 831, 832, 833, 836, 837, 840, 841, + 842, 843, 844, 845, 846, 847, 848, 851, 852, 860, + 866, 870, 873, 874, 878, 881, 882, 885, 894, 895, + 898, 899, 902, 908, 914, 915, 918, 919, 922, 932, + 942, 948, 952, 953, 956, 957, 960, 965, 972, 973, + 974, 978, 982, 985, 986, 989, 990, 994, 995, 999, + 1000, 1001, 1005, 1007, 1009, 1013, 1014, 1015, 1016, 1024, + 1026, 1028, 1033, 1035, 1040, 1041, 1046, 1047, 1048, 1049, + 1054, 1063, 1065, 1066, 1071, 1073, 1077, 1078, 1085, 1086, + 1087, 1088, 1089, 1094, 1102, 1103, 1106, 1107, 1110, 1117, + 1118, 1123, 1124, 1128, 1129, 1130, 1131, 1132, 1136, 1137, + 1138, 1141, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, + 1152, 1153, 1156, 1163, 1165, 1171, 1172, 1173, 1177, 1178, + 1182, 1183, 1187, 1194, 1203, 1204, 1208, 1209, 1213, 1215, + 1216, 1217, 1221, 1222, 1227, 1228, 1229, 1230 }; #endif @@ -837,41 +937,41 @@ static const char *const yytname[] = "aNUM", "aHEXNUM", "aDOUBLE", "aSTRING", "aWSTRING", "aSQSTRING", "aUUID", "aEOF", "aACF", "SHL", "SHR", "MEMBERPTR", "EQUALITY", "INEQUALITY", "GREATEREQUAL", "LESSEQUAL", "LOGICALOR", "LOGICALAND", - "ELLIPSIS", "tAGGREGATABLE", "tALLOCATE", "tANNOTATION", "tAPPOBJECT", - "tASYNC", "tASYNCUUID", "tAUTOHANDLE", "tBINDABLE", "tBOOLEAN", - "tBROADCAST", "tBYTE", "tBYTECOUNT", "tCALLAS", "tCALLBACK", "tCASE", - "tCDECL", "tCHAR", "tCOCLASS", "tCODE", "tCOMMSTATUS", "tCONST", + "ELLIPSIS", "tAGGREGATABLE", "tALLNODES", "tALLOCATE", "tANNOTATION", + "tAPPOBJECT", "tASYNC", "tASYNCUUID", "tAUTOHANDLE", "tBINDABLE", + "tBOOLEAN", "tBROADCAST", "tBYTE", "tBYTECOUNT", "tCALLAS", "tCALLBACK", + "tCASE", "tCDECL", "tCHAR", "tCOCLASS", "tCODE", "tCOMMSTATUS", "tCONST", "tCONTEXTHANDLE", "tCONTEXTHANDLENOSERIALIZE", "tCONTEXTHANDLESERIALIZE", "tCONTROL", "tCPPQUOTE", "tDECODE", "tDEFAULT", "tDEFAULTBIND", "tDEFAULTCOLLELEM", "tDEFAULTVALUE", "tDEFAULTVTABLE", "tDISABLECONSISTENCYCHECK", "tDISPLAYBIND", "tDISPINTERFACE", "tDLLNAME", - "tDOUBLE", "tDUAL", "tENABLEALLOCATE", "tENCODE", "tENDPOINT", "tENTRY", - "tENUM", "tERRORSTATUST", "tEXPLICITHANDLE", "tEXTERN", "tFALSE", - "tFASTCALL", "tFAULTSTATUS", "tFLOAT", "tFORCEALLOCATE", "tHANDLE", - "tHANDLET", "tHELPCONTEXT", "tHELPFILE", "tHELPSTRING", - "tHELPSTRINGCONTEXT", "tHELPSTRINGDLL", "tHIDDEN", "tHYPER", "tID", - "tIDEMPOTENT", "tIGNORE", "tIIDIS", "tIMMEDIATEBIND", "tIMPLICITHANDLE", - "tIMPORT", "tIMPORTLIB", "tIN", "tIN_LINE", "tINLINE", "tINPUTSYNC", - "tINT", "tINT32", "tINT3264", "tINT64", "tINTERFACE", "tLCID", - "tLENGTHIS", "tLIBRARY", "tLICENSED", "tLOCAL", "tLONG", "tMAYBE", - "tMESSAGE", "tMETHODS", "tMODULE", "tNAMESPACE", "tNOCODE", + "tDONTFREE", "tDOUBLE", "tDUAL", "tENABLEALLOCATE", "tENCODE", + "tENDPOINT", "tENTRY", "tENUM", "tERRORSTATUST", "tEXPLICITHANDLE", + "tEXTERN", "tFALSE", "tFASTCALL", "tFAULTSTATUS", "tFLOAT", + "tFORCEALLOCATE", "tHANDLE", "tHANDLET", "tHELPCONTEXT", "tHELPFILE", + "tHELPSTRING", "tHELPSTRINGCONTEXT", "tHELPSTRINGDLL", "tHIDDEN", + "tHYPER", "tID", "tIDEMPOTENT", "tIGNORE", "tIIDIS", "tIMMEDIATEBIND", + "tIMPLICITHANDLE", "tIMPORT", "tIMPORTLIB", "tIN", "tIN_LINE", "tINLINE", + "tINPUTSYNC", "tINT", "tINT32", "tINT3264", "tINT64", "tINTERFACE", + "tLCID", "tLENGTHIS", "tLIBRARY", "tLICENSED", "tLOCAL", "tLONG", + "tMAYBE", "tMESSAGE", "tMETHODS", "tMODULE", "tNAMESPACE", "tNOCODE", "tNONBROWSABLE", "tNONCREATABLE", "tNONEXTENSIBLE", "tNOTIFY", "tNOTIFYFLAG", "tNULL", "tOBJECT", "tODL", "tOLEAUTOMATION", "tOPTIMIZE", "tOPTIONAL", "tOUT", "tPARTIALIGNORE", "tPASCAL", "tPOINTERDEFAULT", "tPRAGMA_WARNING", "tPROGID", "tPROPERTIES", "tPROPGET", "tPROPPUT", "tPROPPUTREF", "tPROXY", "tPTR", "tPUBLIC", "tRANGE", "tREADONLY", "tREF", "tREGISTER", "tREPRESENTAS", "tREQUESTEDIT", "tRESTRICTED", - "tRETVAL", "tSAFEARRAY", "tSHORT", "tSIGNED", "tSIZEIS", "tSIZEOF", - "tSMALL", "tSOURCE", "tSTATIC", "tSTDCALL", "tSTRICTCONTEXTHANDLE", - "tSTRING", "tSTRUCT", "tSWITCH", "tSWITCHIS", "tSWITCHTYPE", - "tTHREADING", "tTRANSMITAS", "tTRUE", "tTYPEDEF", "tUIDEFAULT", "tUNION", - "tUNIQUE", "tUNSIGNED", "tUSESGETLASTERROR", "tUSERMARSHAL", "tUUID", - "tV1ENUM", "tVARARG", "tVERSION", "tVIPROGID", "tVOID", "tWCHAR", - "tWIREMARSHAL", "tAPARTMENT", "tNEUTRAL", "tSINGLE", "tFREE", "tBOTH", - "','", "'?'", "':'", "'|'", "'^'", "'&'", "'<'", "'>'", "'-'", "'+'", - "'*'", "'/'", "'%'", "'!'", "'~'", "CAST", "PPTR", "POS", "NEG", - "ADDRESSOF", "'.'", "'['", "']'", "'{'", "'}'", "';'", "'('", "')'", - "'='", "$accept", "input", "m_acf", "gbl_statements", "$@1", + "tRETVAL", "tSAFEARRAY", "tSHORT", "tSIGNED", "tSINGLENODE", "tSIZEIS", + "tSIZEOF", "tSMALL", "tSOURCE", "tSTATIC", "tSTDCALL", + "tSTRICTCONTEXTHANDLE", "tSTRING", "tSTRUCT", "tSWITCH", "tSWITCHIS", + "tSWITCHTYPE", "tTHREADING", "tTRANSMITAS", "tTRUE", "tTYPEDEF", + "tUIDEFAULT", "tUNION", "tUNIQUE", "tUNSIGNED", "tUSESGETLASTERROR", + "tUSERMARSHAL", "tUUID", "tV1ENUM", "tVARARG", "tVERSION", "tVIPROGID", + "tVOID", "tWCHAR", "tWIREMARSHAL", "tAPARTMENT", "tNEUTRAL", "tSINGLE", + "tFREE", "tBOTH", "','", "'?'", "':'", "'|'", "'^'", "'&'", "'<'", "'>'", + "'-'", "'+'", "'*'", "'/'", "'%'", "'!'", "'~'", "CAST", "PPTR", "POS", + "NEG", "ADDRESSOF", "'.'", "'['", "']'", "'{'", "'}'", "';'", "'('", + "')'", "'='", "$accept", "input", "m_acf", "gbl_statements", "$@1", "imp_statements", "$@2", "int_statements", "semicolon_opt", "statement", "pragma_warning", "warnings", "typedecl", "cppquote", "import_start", "import", "importlib", "libraryhdr", "library_start", "librarydef", @@ -896,14 +996,15 @@ static const char *const yytname[] = "struct_declarator_list", "init_declarator", "threading_type", "pointer_type", "structdef", "type", "typedef", "uniondef", "version", "acf_statements", "acf_int_statements", "acf_int_statement", - "acf_interface", "acf_attributes", "acf_attribute_list", "acf_attribute", YY_NULL + "acf_interface", "acf_attributes", "acf_attribute_list", "acf_attribute", + "allocate_option_list", "allocate_option", YY_NULLPTR }; #endif # ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ -static const yytype_uint16 yytoknum[] = +static const yytype_int16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, @@ -923,105 +1024,106 @@ static const yytype_uint16 yytoknum[] = 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, - 435, 436, 437, 438, 44, 63, 58, 124, 94, 38, - 60, 62, 45, 43, 42, 47, 37, 33, 126, 439, - 440, 441, 442, 443, 46, 91, 93, 123, 125, 59, - 40, 41, 61 + 435, 436, 437, 438, 439, 440, 441, 44, 63, 58, + 124, 94, 38, 60, 62, 45, 43, 42, 47, 37, + 33, 126, 442, 443, 444, 445, 446, 46, 91, 93, + 123, 125, 59, 40, 41, 61 }; # endif -#define YYPACT_NINF -560 +#define YYPACT_NINF (-564) -#define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-560))) +#define yypact_value_is_default(Yyn) \ + ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF -405 +#define YYTABLE_NINF (-405) -#define yytable_value_is_error(Yytable_value) \ +#define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - -560, 94, 1606, -560, -560, -560, -57, -560, -560, -560, - 147, -560, -89, 165, -560, 169, -560, -560, -560, -560, - 35, 149, -560, -560, -560, -560, -560, 172, 35, 164, - -34, -560, -29, 35, 333, -560, -560, 192, 197, 333, - -560, -560, 2869, -560, -560, -560, -27, -560, -560, -560, - -560, -560, 21, 2567, -13, -10, -560, -560, 9, -36, - -560, 2, 12, 38, 23, 46, 41, -560, -560, 57, - -560, 128, 128, 128, 175, 2716, 76, 128, 81, 88, - 61, -560, -57, 219, -560, -560, 315, -560, -560, 15, - -560, 121, -560, -560, 123, -560, -560, -560, -560, 331, - 2716, -560, -560, 58, 129, -94, -112, -560, -560, 130, - -560, -560, 131, -560, -560, -560, 132, 134, -560, -560, - -560, -560, -560, -560, -560, -560, -560, -560, 138, -560, - -560, -560, 140, -560, -560, -560, 141, 146, -560, -560, - -560, -560, 150, 151, 153, 157, 158, -560, 160, -560, - -560, 161, -560, 163, -560, -560, 166, 167, -560, -560, - -560, -560, -560, -560, -560, -560, -560, -560, -560, -560, - -560, 168, -560, -560, -560, 170, 171, -560, -560, -560, - -560, -560, -560, 174, -560, -560, 185, -560, -560, -560, - 187, -560, -560, -560, 188, 189, 190, 191, -560, -560, - -560, 195, 196, -560, -560, 206, 209, 211, -132, -560, - -560, -560, 1736, 851, 133, 267, 270, 273, 283, 286, - 220, 148, -560, -560, -560, -560, 175, 173, 216, -560, - -560, -560, -560, -560, -42, -560, -560, -560, 290, 222, - -560, -560, -560, -560, -560, -560, -560, -560, -560, -560, - -560, -560, 175, 175, -560, 127, -101, -560, -560, -560, - 128, -560, -560, -560, -560, -560, -560, -119, -560, -560, - 374, 215, 291, -560, 249, 225, -560, 227, -560, 429, - 84, 291, 710, 710, 430, 432, 710, 710, 435, 458, - 710, 461, 710, 710, 2097, 710, 710, 463, -68, 464, - 710, 2716, 710, 710, 2716, -38, 2716, 2716, 84, 324, - 466, 2716, 2869, 271, -560, 268, -560, -560, -560, 272, - -560, 278, -560, -560, -560, 23, 2612, -560, 279, -560, - -560, -560, -560, 279, -91, -560, -560, -122, -560, 293, - -65, 280, 284, -560, -560, 1193, 52, 266, -560, 710, - 542, 2097, -560, -560, 61, -560, 285, -560, 282, 303, - -560, 281, 488, -560, -49, 133, -39, 294, -560, -560, - 295, 296, -560, -560, -560, -560, -560, -560, -560, -560, - -560, 305, -560, 710, 710, 710, 710, 710, 710, 596, - 2299, -135, -560, 2299, 306, 307, -560, -111, 308, 309, - 314, 316, 317, 323, 326, 371, 327, 2612, 77, 328, - -106, -560, 2299, 329, 330, 332, 311, 335, -100, 1397, - 343, -560, -560, -560, -560, -560, 344, 346, 359, 360, - 292, -560, 361, 362, 367, -560, 2869, 492, -560, -560, - -560, 175, 23, -11, -560, 1089, -560, 340, 2612, 370, - 1476, 334, 413, 1297, 23, -560, 2612, -560, -560, -560, - -560, 611, -560, 2190, 377, 402, -560, -560, -560, 380, - -560, 291, 710, -560, 18, -560, 2612, -560, 378, -560, - 384, -560, 389, -560, -560, -560, 2612, 36, 36, 36, - 36, 36, 36, 2102, 496, 710, 710, 597, 710, 710, - 710, 710, 710, 710, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 605, 710, 710, -560, -560, - -560, 600, -560, -560, -560, -560, -560, -560, -560, -560, - -560, -560, 77, -560, 1833, -560, 77, -560, -560, -560, - -87, -560, 710, -560, -560, -560, -560, 710, -560, -560, - -560, -560, -560, -560, -560, -560, 604, -560, -560, -560, - -560, 400, -560, -560, 428, -560, -560, -560, -560, 175, - 116, -560, -560, 2612, 407, -560, -560, -560, 23, -560, - -560, -560, -560, 2009, 419, 417, 380, -560, -560, -560, - -560, 77, 418, 291, -560, -560, 496, -560, -560, 1921, - -560, 496, -560, 415, -74, 318, 318, -560, 575, 575, - 482, 482, 2318, 2337, 2260, 2372, 2394, 218, 482, 482, - 54, 54, 36, 36, 36, -560, 2212, -560, -560, -560, - 74, -560, 421, 77, 422, -560, 2097, -560, -560, 424, - -560, 23, 970, 175, -560, -560, 1401, -560, -560, -560, - 623, -560, -560, 444, -560, -103, -560, 431, -560, 425, - 375, -560, 434, 77, 437, -560, 710, 2097, -560, 710, - -560, -560, 74, -560, -560, -560, 440, -560, -560, -560, - -560, 23, 433, 710, -560, 77, -560, -560, -560, -560, - 74, -560, -560, -560, 36, 441, 2299, -560, -560, -560, - -560, -560, -560, -1, -560, -560, 710, 453, -560, -560, - 468, -58, -58, -560, -560, 447, -560, -560 + -564, 108, 1696, -564, -564, -564, -66, -564, -564, -564, + 176, -564, -101, 195, -564, 243, -564, -564, -564, -564, + 38, 148, -564, -564, -564, -564, -564, 269, 38, 165, + -35, -564, -14, 38, 15, -564, -564, 291, 321, 15, + -564, -564, 2989, -564, -564, -564, 47, -564, -564, -564, + -564, -564, 51, 2671, 53, 57, -564, -564, 64, 24, + -564, 81, 80, 85, 87, 91, 117, -564, -564, 123, + -564, -16, -16, -16, 48, 2836, 125, -16, 130, 136, + 96, -564, -66, 152, -564, -564, 346, -564, -564, 119, + -564, 139, -564, -564, 149, -564, -564, -564, -564, 368, + 2836, -564, -564, 122, 168, -92, -117, -564, -564, 169, + -564, -564, 173, -564, -564, -564, 174, 186, -564, -564, + -564, -564, -564, -564, -564, -564, -564, -564, 187, -564, + -564, -564, 188, -564, -564, -564, 189, 190, -564, -564, + -564, -564, 191, 192, 194, 203, 206, -564, 207, -564, + -564, 208, -564, 213, -564, -564, 214, 216, -564, -564, + -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, + -564, 217, -564, -564, -564, 218, 220, -564, -564, -564, + -564, -564, -564, 223, -564, -564, 224, -564, -564, -564, + 225, -564, -564, -564, 226, 228, 230, 231, -564, -564, + -564, 236, 257, -564, -564, 259, 260, 262, -62, -564, + -564, -564, 1836, 878, 200, 335, 340, 349, 359, 364, + 267, 268, -564, -564, -564, -564, 48, 270, 271, -564, + -564, -564, -564, -564, -30, -564, -564, -564, 369, 274, + -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, + -564, -564, 48, 48, -564, 272, -58, -564, -564, -564, + -16, -564, -564, -564, 275, -564, -564, -564, -12, -564, + -564, 423, 278, 376, -564, 296, 279, -564, 276, -564, + 485, 43, 376, 731, 731, 487, 489, 731, 731, 490, + 491, 731, 492, 731, 731, 2224, 731, 731, 494, -80, + 495, 731, 2836, 731, 731, 2836, 98, 2836, 2836, 43, + 202, 496, 2836, 2989, 298, -564, 295, -564, -564, -564, + 299, -564, 302, -564, -564, -564, 87, 2760, -564, 303, + -564, -564, -564, -564, 303, -97, -564, -564, -112, -564, + 325, -72, 305, 308, -564, -564, 1239, 45, 306, -564, + 731, 624, 2224, -564, -564, 66, 96, -564, 311, -564, + 312, 337, -564, 307, 520, -564, -111, 200, 59, 313, + -564, -564, 314, 316, -564, -564, -564, -564, -564, -564, + -564, -564, -564, 318, -564, 731, 731, 731, 731, 731, + 731, 605, 2473, -93, -564, 2473, 320, 322, -564, -42, + 328, 330, 331, 332, 333, 334, 336, 374, 338, 2760, + 65, 339, -41, -564, 2473, 341, 342, 344, 345, 347, + -38, 2230, 360, -564, -564, -564, -564, -564, 361, 362, + 363, 365, 352, -564, 366, 370, 372, -564, 2989, 526, + -564, -564, -564, 48, 87, 27, -564, 1120, -564, 371, + 2760, 351, 1575, 343, 456, 1358, 87, -564, 2760, -564, + -564, -564, -564, 709, -564, 2390, 373, 391, -564, -564, + -564, -564, -564, -564, -34, -564, -564, 384, -564, 376, + 731, -564, 21, -564, 2760, -564, 377, -564, 378, -564, + 380, -564, -564, -564, 2760, 32, 32, 32, 32, 32, + 32, 2319, 227, 731, 731, 590, 731, 731, 731, 731, + 731, 731, 731, 731, 731, 731, 731, 731, 731, 731, + 731, 731, 731, 592, 731, 731, -564, -564, -564, 587, + -564, -564, -564, -564, -564, -564, -564, -564, -564, -564, + 65, -564, 1957, -564, 65, -564, -564, -564, 8, -564, + 731, -564, -564, -564, -564, 731, -564, -564, -564, -564, + -564, -564, -564, -564, 591, -564, -564, -564, -564, 385, + -564, -564, 411, -564, -564, -564, -564, 48, 171, -564, + -564, 2760, 388, -564, -564, -564, 87, -564, -564, -564, + -564, 2135, 66, -564, 393, 394, 384, -564, -564, -564, + -564, 65, 390, 376, -564, -564, 227, -564, -564, 2046, + -564, 227, -564, 392, 28, 90, 90, -564, 672, 672, + 215, 215, 2345, 2504, 2452, 1277, 1396, 1337, 215, 215, + 30, 30, 32, 32, 32, -564, 2430, -564, -564, -564, + 36, -564, 395, 65, 403, -564, 2224, -564, -564, 404, + -564, 87, 999, 48, -564, -564, 1477, -564, -564, -564, + -564, 599, -564, -564, 430, -564, -103, -564, 410, -564, + 407, 289, -564, 408, 65, 409, -564, 731, 2224, -564, + 731, -564, -564, 36, -564, -564, -564, 414, -564, -564, + -564, -564, 87, 412, 731, -564, 65, -564, -564, -564, + -564, 36, -564, -564, -564, 32, 415, 2473, -564, -564, + -564, -564, -564, -564, -7, -564, -564, 731, 436, -564, + -564, 447, -147, -147, -564, -564, 425, -564, -564 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ -static const yytype_uint16 yydefact[] = +static const yytype_int16 yydefact[] = { 5, 0, 3, 1, 35, 383, 398, 273, 265, 284, 0, 322, 0, 0, 272, 260, 274, 318, 271, 275, @@ -1049,86 +1151,87 @@ static const yytype_uint16 yydefact[] = 10, 292, 6, 313, 0, 29, 311, 312, 0, 0, 26, 331, 328, 330, 329, 263, 264, 178, 179, 180, 181, 323, 0, 0, 335, 371, 334, 257, 385, 387, - 327, 389, 325, 34, 409, 408, 410, 0, 406, 399, - 0, 0, 186, 50, 0, 0, 243, 0, 249, 0, + 327, 389, 325, 34, 0, 410, 409, 411, 0, 406, + 399, 0, 0, 186, 50, 0, 0, 243, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 196, 0, 0, 0, - 0, 0, 196, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 70, 51, 0, 23, 24, 25, 0, - 21, 0, 19, 16, 22, 28, 0, 69, 386, 53, - 54, 314, 315, 388, 390, 55, 256, 68, 5, 0, - 68, 0, 0, 305, 26, 68, 0, 0, 333, 0, - 0, 57, 337, 326, 0, 405, 0, 49, 0, 188, - 189, 192, 0, 391, 68, 68, 68, 0, 177, 176, - 0, 0, 207, 198, 199, 200, 204, 205, 206, 201, - 202, 0, 203, 0, 0, 0, 0, 0, 0, 0, - 241, 0, 239, 242, 0, 0, 74, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 356, 0, - 0, 194, 197, 0, 0, 0, 0, 0, 0, 0, - 0, 373, 374, 375, 376, 377, 0, 0, 0, 0, - 395, 397, 0, 0, 0, 72, 76, 0, 20, 17, - 56, 0, 28, 0, 293, 68, 298, 0, 0, 0, - 0, 0, 0, 68, 28, 27, 69, 324, 332, 336, - 372, 0, 67, 0, 0, 61, 58, 59, 407, 400, - 193, 187, 0, 38, 0, 381, 0, 244, 0, 393, - 69, 250, 0, 78, 169, 84, 0, 231, 230, 229, - 232, 227, 228, 0, 344, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 196, 0, 0, + 0, 0, 0, 196, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 76, 70, 51, 0, 23, 24, 25, + 0, 21, 0, 19, 16, 22, 28, 0, 69, 386, + 53, 54, 314, 315, 388, 390, 55, 256, 68, 5, + 0, 68, 0, 0, 305, 26, 68, 0, 0, 333, + 0, 0, 57, 337, 326, 0, 0, 405, 0, 49, + 0, 188, 189, 192, 0, 391, 68, 68, 68, 0, + 177, 176, 0, 0, 207, 198, 199, 200, 204, 205, + 206, 201, 202, 0, 203, 0, 0, 0, 0, 0, + 0, 0, 241, 0, 239, 242, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 85, 96, - 100, 0, 104, 105, 110, 111, 112, 113, 114, 116, - 119, 121, 356, 323, 57, 361, 356, 358, 357, 64, - 353, 125, 196, 124, 140, 144, 145, 0, 153, 157, - 161, 162, 164, 163, 167, 168, 0, 172, 173, 174, - 73, 0, 15, 364, 392, 290, 294, 7, 300, 0, - 387, 299, 302, 0, 0, 255, 303, 26, 28, 317, - 66, 65, 338, 0, 404, 0, 400, 190, 191, 39, + 356, 0, 0, 194, 197, 0, 0, 0, 0, 0, + 0, 0, 0, 373, 374, 375, 376, 377, 0, 0, + 0, 0, 395, 397, 0, 0, 0, 72, 76, 0, + 20, 17, 56, 0, 28, 0, 293, 68, 298, 0, + 0, 0, 0, 0, 0, 68, 28, 27, 69, 324, + 332, 336, 372, 0, 67, 0, 0, 61, 58, 59, + 416, 414, 417, 415, 0, 412, 407, 400, 193, 187, + 0, 38, 0, 381, 0, 244, 0, 393, 69, 250, + 0, 78, 169, 84, 0, 231, 230, 229, 232, 227, + 228, 0, 344, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 85, 96, 100, 0, + 104, 105, 110, 111, 112, 113, 114, 116, 119, 121, + 356, 323, 57, 361, 356, 358, 357, 64, 353, 125, + 196, 124, 140, 144, 145, 0, 153, 157, 161, 162, + 164, 163, 167, 168, 0, 172, 173, 174, 73, 0, + 15, 364, 392, 290, 294, 7, 300, 0, 387, 299, + 302, 0, 0, 255, 303, 26, 28, 317, 66, 65, + 338, 0, 0, 408, 404, 0, 400, 190, 191, 39, 37, 0, 389, 258, 248, 247, 344, 238, 323, 57, 348, 344, 345, 0, 341, 220, 221, 233, 214, 215, 218, 219, 209, 210, 0, 211, 212, 213, 217, 216, 223, 222, 225, 226, 224, 234, 0, 240, 75, 63, 356, 323, 0, 356, 0, 352, 57, 360, 195, 0, 396, 28, 68, 0, 253, 301, 68, 309, 62, 60, - 0, 403, 401, 366, 369, 0, 246, 0, 259, 0, - 344, 323, 0, 356, 0, 340, 0, 57, 347, 0, - 237, 351, 356, 362, 355, 359, 0, 151, 52, 18, - 365, 28, 0, 0, 368, 0, 245, 182, 236, 339, - 356, 349, 343, 346, 235, 0, 208, 354, 363, 310, - 402, 367, 370, 0, 342, 350, 0, 0, 394, 183, - 0, 68, 68, 252, 185, 0, 184, 251 + 413, 0, 403, 401, 366, 369, 0, 246, 0, 259, + 0, 344, 323, 0, 356, 0, 340, 0, 57, 347, + 0, 237, 351, 356, 362, 355, 359, 0, 151, 52, + 18, 365, 28, 0, 0, 368, 0, 245, 182, 236, + 339, 356, 349, 343, 346, 235, 0, 208, 354, 363, + 310, 402, 367, 370, 0, 342, 350, 0, 0, 394, + 183, 0, 68, 68, 252, 185, 0, 184, 251 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -560, -560, -560, 320, -560, -46, -560, -317, -315, 0, - -560, -560, -560, -560, -560, 208, -560, -560, -560, 10, - -514, -560, -560, -261, -242, -203, -2, -560, -560, -272, - 354, -66, -560, -560, -560, -560, 198, 13, 366, 137, - -195, -560, -264, -280, -560, -560, -560, -560, -41, -237, - -560, 233, -560, 25, -69, -560, 42, 99, 5, -560, - 11, 17, -560, -560, 619, -560, -560, -560, -560, -560, - -18, -560, 19, 16, -560, -560, 20, -560, -560, -307, - -496, -52, -43, -30, -236, -560, -560, -560, -540, -560, - -559, -560, 51, -560, -560, -560, 3, -560, 459, -560, - 391, 1, -50, -560, 7, -560, 615, 112, -560, -560, - 115, -560, 348 + -564, -564, -564, 301, -564, -45, -564, -331, -315, 0, + -564, -564, -564, -564, -564, 184, -564, -564, -564, 11, + -483, -564, -564, -263, -246, -207, -2, -564, -564, -284, + 353, -68, -564, -564, -564, -564, 163, 13, 355, 93, + -199, -564, -265, -279, -564, -564, -564, -564, -78, -197, + -564, 196, -564, 5, -70, -564, 110, 162, 10, -564, + 17, 19, -564, -564, 593, -564, -564, -564, -564, -564, + -28, -564, 20, 16, -564, -564, 22, -564, -564, -313, + -506, -52, 6, 3, -236, -564, -564, -564, -539, -564, + -563, -564, -164, -564, -564, -564, -47, -564, 426, -564, + 356, 1, -55, -564, 7, -564, 578, 68, -564, -564, + 67, -564, 310, -564, 75 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 43, 2, 338, 212, 562, 345, 236, 316, - 45, 474, 46, 47, 48, 49, 317, 220, 50, 318, - 464, 465, 466, 467, 535, 52, 327, 208, 397, 209, - 370, 536, 703, 709, 358, 359, 360, 258, 410, 411, - 390, 391, 392, 394, 364, 477, 481, 366, 714, 715, - 574, 55, 657, 91, 537, 56, 93, 57, 319, 59, - 320, 321, 337, 444, 62, 63, 340, 450, 64, 239, - 65, 66, 322, 323, 225, 69, 324, 71, 72, 73, - 346, 74, 241, 75, 255, 256, 602, 664, 603, 604, - 538, 634, 539, 540, 564, 684, 654, 655, 257, 426, - 210, 259, 77, 78, 261, 432, 81, 585, 586, 82, - 83, 267, 268 + -1, 1, 43, 2, 339, 212, 570, 346, 236, 317, + 45, 482, 46, 47, 48, 49, 318, 220, 50, 319, + 466, 467, 468, 469, 543, 52, 328, 208, 399, 209, + 372, 544, 714, 720, 360, 361, 362, 258, 412, 413, + 392, 393, 394, 396, 366, 485, 489, 368, 725, 726, + 582, 55, 668, 91, 545, 56, 93, 57, 320, 59, + 321, 322, 338, 446, 62, 63, 341, 452, 64, 239, + 65, 66, 323, 324, 225, 69, 325, 71, 72, 73, + 347, 74, 241, 75, 255, 256, 612, 675, 613, 614, + 546, 644, 547, 548, 572, 695, 665, 666, 257, 428, + 210, 259, 77, 78, 261, 434, 81, 595, 596, 82, + 83, 268, 269, 474, 475 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1136,749 +1239,776 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 53, 226, 44, 76, 213, 254, 398, 58, 253, 79, - 440, 326, 51, 60, 352, 54, 347, 348, 68, 61, - 632, 67, 70, 399, 589, 260, 402, 453, 404, 243, - 244, 409, 653, 406, 262, 224, 416, 630, 706, 457, - 435, 242, 242, 242, -404, 447, 277, 242, 13, 517, - 275, 707, 312, 497, 227, 245, 659, 246, 222, 27, - 228, 665, 104, 106, -261, 354, 221, -261, 181, 460, - 97, 497, 185, 521, 313, 101, 518, 245, 542, 246, - 245, 685, 246, 42, 542, 662, 442, 355, 393, 339, - 27, 393, 247, 368, 3, 278, 369, 11, 405, 199, - 522, 412, 660, 449, 350, 543, 686, 412, 419, 351, - 458, 549, 264, -261, 247, -45, -261, 247, 350, 11, - 689, 86, 676, 636, 248, 265, 653, 565, 478, 482, - 266, 350, 92, 102, 443, 672, 667, 448, 107, 579, - 42, 421, 422, 423, 424, 425, 248, 42, 80, 248, - 84, 713, 85, 695, 393, 463, 42, 254, 94, 475, - 253, 476, 448, 448, 560, 690, 42, 98, 87, 479, - 88, 231, 89, 11, 90, 95, 99, 96, 245, 249, - 246, 100, 211, 254, 254, 214, 253, 253, 487, 488, - 489, 490, 491, 492, 493, 103, -40, 90, 17, 229, - 105, 249, 90, 361, 249, 563, 250, 708, 588, 232, - 53, 53, 371, 76, 76, 247, 341, 353, 230, 79, - 79, 233, -261, 22, -41, 54, 54, 238, 250, 590, - 242, 250, 235, 495, 496, 497, 498, 499, 500, 501, - 515, 516, 408, 104, 106, 234, 251, 248, 512, 513, - 514, 417, 600, 627, 420, 237, 427, 428, 515, 516, - 646, 434, 252, 647, 240, -261, 490, -43, 533, 31, - 328, 533, 90, 329, 441, 330, 331, 254, 332, 350, - 253, 36, 350, 639, 534, -42, 333, 534, 90, 334, - 263, 90, 407, 342, 245, 343, 246, -44, 637, 408, - 605, 606, 249, 608, 609, 610, 611, 612, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 270, 626, 649, 457, 271, -254, 678, -254, 272, 250, - 430, 431, 273, 644, 274, 497, 276, 494, 42, 349, - 279, 280, 281, 456, 282, 455, 76, 412, 283, 407, - 284, 285, 79, 457, 600, 532, 286, -46, 54, 600, - 287, 288, 668, 289, 480, 457, 699, 290, 291, 251, - 292, 293, 254, 294, 9, 253, 295, 296, 297, 356, - 298, 299, -47, 457, 300, 252, 495, 496, 497, 498, - 499, 500, 501, 502, 503, 301, 569, 302, 303, 304, - 305, 306, 361, 701, 226, 307, 308, 680, 508, 509, - 510, 511, 512, 513, 514, 247, 309, 20, 600, 310, - 11, 311, 515, 516, 591, -48, 357, 335, 601, 344, - 23, 24, 25, 26, 596, 362, 363, 365, 367, 395, - 28, 396, 710, 53, 400, 44, 76, 248, 573, 570, - 58, 456, 79, 455, 76, 51, 60, 227, 54, 566, - 79, 68, 61, 228, 67, 70, 54, 401, 633, 221, - 403, 694, 413, 415, 696, 433, 436, 459, 437, 446, - 33, 438, 408, 592, 35, 439, -261, 471, 393, 451, - 470, 452, 469, 472, 473, 547, 556, 495, 496, 497, - 254, 561, 249, 253, 21, 483, 484, 485, 448, 448, - 510, 511, 512, 513, 514, 486, 642, 519, 520, 523, - 524, 226, 515, 516, 658, 525, 568, 526, 527, 250, - 601, 408, 407, 663, 528, 601, 247, 529, 531, 541, - 544, 545, 576, 546, 584, 372, 548, 408, 373, 374, - 375, 376, 377, 378, 551, 552, 504, 553, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 248, 598, - 554, 555, 557, 558, 254, 515, 516, 253, 559, 571, - 350, 407, 530, 629, 408, 599, 583, 635, 582, 593, - 495, 496, 497, 594, 601, 500, 501, 407, 595, 372, - 607, 5, 373, 374, 375, 376, 377, 378, 625, 628, - 640, 641, 643, 379, 372, 408, 645, 373, 374, 375, - 376, 377, 378, 249, 80, 651, 666, 656, 682, 7, - 683, 8, 673, 675, 407, 677, 688, 9, 687, 711, - 53, 11, 700, 76, 456, 691, 455, 76, 693, 79, - 250, 698, 705, 79, 712, 54, 717, 14, 445, 54, - 577, 380, 429, 215, 16, 407, 17, 379, 418, 587, - 18, 716, 223, 19, 510, 511, 512, 513, 514, 638, - 20, 671, 379, 575, 674, 336, 515, 516, 702, 414, - 598, 22, 381, 23, 24, 25, 26, 269, 652, 650, - 0, 350, 468, 28, 0, 382, 599, 0, 0, 0, - 0, 0, 0, 372, 692, 380, 373, 374, 375, 376, - 377, 378, 0, 697, 0, 0, 0, 0, 0, 0, - 380, 383, 0, 0, 384, 385, 461, 31, 0, 387, - 388, 704, 32, 33, 34, 0, 381, 35, 462, 36, - 0, 0, 389, 218, 0, 0, 0, 0, 0, 382, - 0, 381, 219, 0, 39, 508, 509, 510, 511, 512, - 513, 514, 40, 41, 382, 0, 0, 0, 0, 515, - 516, 379, 0, 0, 0, 383, 0, 0, 384, 385, - 386, 0, 0, 387, 388, 0, 0, 0, 0, 0, - 383, 0, 0, 384, 385, 386, 389, 0, 387, 388, - 0, 0, 0, 0, 0, 0, 0, 580, 0, 0, - 0, 389, 0, 0, 0, 0, 0, 0, 0, 380, + 53, 226, 44, 76, 254, 213, 253, 327, 400, 79, + 353, 442, 58, 51, 455, 54, 348, 349, 68, 60, + 260, 61, 67, 401, 70, 224, 404, 599, 406, 437, + 11, 411, 408, 717, 459, 640, 418, -404, 664, 245, + 449, 246, 104, 106, 278, 276, 718, 505, 245, 505, + 246, 245, 370, 246, 227, 371, 17, 9, 181, 642, + 228, 42, 185, 222, -261, 724, 221, 670, 245, -261, + 246, 462, 676, 27, 242, 242, 242, 247, 243, 244, + 242, 22, 11, 262, 696, 395, 247, 13, 395, 247, + 199, 11, 470, 279, 525, 407, 42, 42, 414, 444, + 483, 20, 671, 340, 414, 421, 247, 505, 3, 697, + 248, 460, 86, -261, 23, 24, 25, 26, -261, 248, + -45, 526, 248, 264, 28, 313, 673, 31, 471, 573, + 27, 445, 700, 664, 450, 683, 42, 92, 97, 248, + 36, 587, 80, 101, 451, 529, 550, 314, 265, 550, + 351, 395, 465, 592, 568, 352, 254, 94, 253, 484, + 450, 450, 266, 687, 33, 249, 701, 267, 98, 35, + 486, 490, 530, 551, 249, 356, 557, 249, 99, 84, + 593, 85, 254, 254, 253, 253, 495, 496, 497, 498, + 499, 500, 501, 250, 249, 706, 102, 357, 87, 100, + 88, 107, 250, 363, 719, 250, 342, 571, 432, 433, + 53, 53, 373, 76, 76, 598, 351, 472, 214, 79, + 79, 646, 250, 104, 106, 54, 54, 520, 521, 522, + 503, 504, 505, 541, 231, 600, 351, 523, 524, 523, + 524, 678, 251, 410, 351, 251, 89, 419, 90, 542, + 422, 473, 429, 430, 656, 271, 610, 436, 252, 211, + 637, 252, 541, 242, 498, -40, 354, 42, 247, 229, + 487, 657, 95, 351, 96, 443, 230, 254, 542, 253, + 423, 424, 425, 426, 427, 518, 519, 520, 521, 522, + 649, 232, 233, 409, 103, 234, 90, 523, 524, 235, + 410, 248, 647, 237, 615, 616, 238, 618, 619, 620, + 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 105, 636, 90, 459, 659, -261, + 247, -41, -261, 240, -43, 11, 689, -42, 329, 502, + 90, 654, 263, 330, 458, 331, 457, 76, -44, 273, + 409, 414, 332, 79, 333, 272, 249, 540, 459, 54, + 610, 274, 334, 248, 90, 610, 488, 335, 679, 90, + 459, 275, 343, 254, 344, 253, 639, 710, 277, 245, + 645, 246, 280, -254, 250, -254, 281, 282, 459, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 577, 283, + 284, 285, 286, 287, 288, 289, 226, 290, 42, 363, + 518, 519, 520, 521, 522, 712, 291, 691, 249, 292, + 293, 294, 523, 524, 608, 610, 295, 296, 358, 297, + 298, 299, 601, 300, 611, 351, 301, 302, 303, 304, + 609, 305, 606, 306, 307, 53, 250, 44, 76, 308, + 581, 578, 721, 458, 79, 457, 76, 58, 51, 227, + 54, 574, 79, 68, 60, 228, 61, 67, 54, 70, + 309, 221, 310, 311, 643, 312, 682, 336, 705, 685, + -46, 707, -47, -48, 345, 364, 608, 350, 355, 367, + 410, 602, 359, 365, 369, 395, 397, 351, 398, 402, + 403, 405, 609, 415, 417, 435, 438, 254, 439, 253, + 703, 440, 441, -261, 448, 450, 450, 453, 454, 708, + 461, 477, 480, 478, 479, 652, 481, 491, 492, 226, + 493, 494, 555, 669, 527, 569, 528, 715, 611, 410, + 409, 674, 531, 611, 532, 533, 534, 535, 536, 21, + 537, 594, 539, 549, 584, 552, 553, 410, 554, 564, + 576, 556, 512, 579, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 559, 560, 561, 562, 591, 563, + 565, 523, 524, 254, 566, 253, 567, 590, 538, 409, + 604, 603, 605, 617, 410, 635, 638, 650, 653, 651, + 655, 80, 667, 611, 693, 662, 677, 409, 374, 684, + 5, 375, 376, 377, 378, 379, 380, 686, 688, 694, + 698, 699, 702, 704, 711, 722, 410, 374, 709, 716, + 375, 376, 377, 378, 379, 380, 723, 728, 585, 7, + 447, 8, 597, 648, 409, 727, 223, 9, 583, 713, + 53, 11, 337, 76, 458, 416, 457, 76, 420, 79, + 270, 661, 431, 79, 663, 54, 476, 660, 14, 54, + 0, 0, 0, 0, 215, 16, 409, 17, 381, 0, + 0, 18, 0, 0, 19, 0, 0, 503, 504, 505, + 0, 20, 508, 509, 0, 0, 0, 381, 0, 0, + 0, 0, 22, 0, 23, 24, 25, 26, 0, 0, + 0, 0, 374, 0, 28, 375, 376, 377, 378, 379, + 380, 0, 0, 0, 0, 0, 382, 0, 0, 0, + 0, 0, 0, 0, 374, 0, 0, 375, 376, 377, + 378, 379, 380, 0, 0, 382, 0, 0, 31, 0, + 0, 0, 0, 32, 33, 34, 0, 0, 383, 35, + 0, 36, 0, 0, 0, 218, 0, 0, 0, 0, + 0, 384, 0, 0, 219, 0, 39, 383, 0, 0, + 0, 0, 381, 0, 40, 41, 0, 0, 0, 0, + 384, 0, 0, 0, 0, 0, 0, 385, 0, 0, + 386, 387, 388, 0, 381, 389, 390, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 385, 0, 391, 386, + 387, 463, 0, 0, 389, 390, 0, 0, 0, 0, + 382, 0, 0, 464, 0, 0, 0, 391, 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, 4, 5, 0, 0, 0, - 381, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 382, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, - 0, 0, 9, 10, 0, 0, 11, 0, 0, 383, - 0, 12, 384, 385, 386, 0, 0, 387, 388, 0, - 13, 0, 14, 0, 0, 0, 0, 0, 15, 16, - 389, 17, 0, 0, 0, 18, 0, 0, 19, 0, - 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, - 0, 0, 21, 315, 0, 0, 22, 0, 23, 24, - 25, 26, 27, 0, 0, 0, 0, 0, 28, 0, - 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 5, 0, 0, 0, 0, - 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 0, 0, 32, 33, 34, - 0, 0, 35, 7, 36, 8, 0, 0, 37, 0, - 0, 9, 10, 0, 0, 11, 0, 38, 0, 39, - 12, 0, 0, 0, 0, 0, 0, 40, 41, 13, - 0, 14, 0, 0, 0, 0, 0, 15, 16, 0, + 0, 0, 382, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 383, 0, 0, 516, 517, 518, 519, 520, + 521, 522, 0, 0, 0, 384, 0, 0, 0, 523, + 524, 0, 4, 5, 383, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 384, 0, 0, + 0, 385, 0, 0, 386, 387, 388, 0, 0, 389, + 390, 0, 7, 0, 8, 0, 0, 0, 588, 0, + 9, 10, 391, 385, 11, 0, 386, 387, 388, 12, + 0, 389, 390, 0, 0, 0, 0, 0, 13, 0, + 0, 14, 0, 0, 391, 0, 0, 15, 16, 0, 17, 0, 0, 0, 18, 0, 0, 19, 0, 0, - 0, 0, 0, 0, 20, 0, 42, 0, 0, 325, - 0, 21, 315, 0, 0, 22, 0, 23, 24, 25, + 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, + 0, 21, 316, 0, 0, 22, 0, 23, 24, 25, 26, 27, 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 0, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 32, 33, 34, 0, - 0, 35, 7, 36, 8, 0, 0, 37, 0, 0, - 9, 10, 0, 0, 11, 0, 38, 0, 39, 12, - 0, 0, 0, 0, 0, 0, 40, 41, 13, 0, - 14, 0, 0, 0, 0, 0, 15, 16, 0, 17, - 0, 0, 0, 18, 0, 0, 19, 0, 0, 0, - 0, 0, 0, 20, 0, 42, 0, 0, 679, 0, - 21, 0, 0, 0, 22, 0, 23, 24, 25, 26, - 27, 0, 0, 0, 0, 0, 28, 4, 5, 0, - 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, - 0, 0, 0, 0, 0, 0, 7, 0, 8, 0, - 31, 0, 0, 0, 9, 32, 33, 34, 11, 0, - 35, 0, 36, 12, 0, 0, 37, 0, 0, 0, - 0, 0, 0, 0, 14, 38, 0, 39, 0, 0, - 15, 16, 0, 17, 0, 40, 41, 18, 0, 0, - 19, 0, 0, 0, 0, 0, 0, 20, 0, 0, - 0, 0, 0, 0, 21, 0, 0, 0, 22, 0, - 23, 24, 25, 26, 42, 0, 0, 567, 0, 0, - 28, 4, 5, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, - 7, 0, 8, 0, 31, 0, 0, 0, 9, 32, - 33, 34, 11, 0, 35, 0, 36, 12, 0, 0, - 37, 0, 0, 0, 0, 0, 0, 0, 14, 38, - 0, 39, 0, 0, 15, 16, 0, 17, 0, 40, - 41, 18, 0, 0, 19, 0, 0, 0, 0, 0, - 0, 20, 0, 0, 0, 0, 0, 0, 21, 0, - 0, 0, 22, 0, 23, 24, 25, 26, 42, 0, - 0, 454, 0, 0, 28, 4, 5, 0, 0, 0, - 0, 0, 495, 496, 497, 498, 499, 500, 501, 502, - 503, 0, 0, 0, 0, 0, 30, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 8, 0, 31, 0, - 0, 0, 9, 32, 33, 34, 11, 0, 35, 0, - 36, 12, 0, 0, 37, 0, 0, 0, 0, 0, - 0, 0, 14, 38, 0, 39, 0, 0, 15, 16, - 0, 17, 0, 40, 41, 18, 0, 0, 19, 0, - 0, 5, 0, 0, 0, 20, 0, 0, 0, 0, - 0, 0, 21, 0, 0, 0, 22, 0, 23, 24, - 25, 26, 42, 0, 0, 578, 0, 0, 28, 7, - 0, 8, 0, 0, 0, 0, 0, 9, 0, 0, - 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, - 30, 0, 0, 0, 0, 0, 0, 14, 0, 0, - 0, 0, 31, 215, 16, 0, 17, 32, 33, 34, - 18, 0, 35, 19, 36, 0, 0, 0, 37, 0, - 20, 0, 0, 0, 0, 0, 0, 38, 0, 39, - 0, 22, 0, 23, 24, 25, 26, 40, 41, 0, - 0, 0, 504, 28, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 0, 0, 0, 0, 0, 0, - 0, 515, 516, 0, 0, 0, 42, 0, 550, 681, - 4, 5, 0, 0, 0, 0, 0, 31, 0, 0, - 6, 0, 32, 33, 34, 0, 0, 35, 0, 36, - 0, 0, 0, 218, 0, 0, 0, 0, 0, 7, - 0, 8, 219, 0, 39, 0, 0, 9, 10, 0, - 0, 11, 40, 41, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 0, 14, 0, 0, - 0, 0, 0, 15, 16, 0, 17, 0, 0, 0, - 18, 42, 0, 19, 572, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 21, 0, 0, - 0, 22, 0, 23, 24, 25, 26, 27, 0, 0, - 0, 0, 0, 28, 0, 0, 0, 0, 29, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 0, 0, 0, 0, - 4, 5, 0, 0, 0, 0, 0, 31, 0, 314, - 0, 0, 32, 33, 34, 0, 0, 35, 0, 36, - 0, 0, 0, 37, 0, 0, 0, 0, 0, 7, - -68, 8, 38, 0, 39, 0, 0, 9, 10, 0, - 0, 11, 40, 41, 0, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 13, 0, 14, 0, 0, - 0, 0, 0, 15, 16, 0, 17, 0, 0, 0, - 18, 42, 0, 19, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 21, 315, 0, - 0, 22, 0, 23, 24, 25, 26, 27, 5, 0, - 0, 0, 0, 28, 0, 0, 0, 0, 29, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 30, 7, 0, 8, 0, - 0, 0, 0, 247, 9, 0, 0, 31, 11, 0, - 0, 0, 32, 33, 34, 0, 0, 35, 0, 36, - 0, 0, 0, 37, 14, 0, 0, 0, 0, 0, - 215, 16, 38, 17, 39, 248, 0, 18, 0, 0, - 19, 0, 40, 41, 0, 0, 0, 20, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 0, 22, 0, - 23, 24, 25, 26, 0, 0, 0, 0, 0, 0, - 28, 42, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, - 249, 247, 9, 0, 0, 0, 11, 0, 0, 0, - 0, 0, 0, 0, 31, 0, 0, 0, 0, 32, - 33, 34, 14, 0, 35, 0, 36, 250, 215, 16, - 218, 17, 0, 248, 0, 18, 0, 0, 19, 219, - 0, 39, 0, 0, 0, 20, 0, 0, 0, 40, - 41, 0, 0, 0, 5, 0, 22, 0, 23, 24, - 25, 26, 0, 0, 0, 0, 0, 631, 28, 0, - 0, 0, 0, 648, 0, 0, 0, 0, 42, 0, - 0, 0, 7, 0, 8, 0, 0, 0, 249, 0, - 9, 0, 0, 0, 11, 0, 0, 0, 0, 0, + 0, 0, 35, 7, 36, 8, 0, 0, 37, 0, + 0, 9, 10, 0, 0, 11, 0, 38, 0, 39, + 12, 0, 0, 0, 0, 0, 0, 40, 41, 13, + 0, 0, 14, 0, 0, 0, 0, 0, 15, 16, + 0, 17, 0, 0, 0, 18, 0, 0, 19, 0, + 0, 0, 0, 0, 0, 20, 42, 0, 0, 326, + 0, 0, 21, 316, 0, 0, 22, 0, 23, 24, + 25, 26, 27, 0, 0, 0, 0, 0, 28, 0, + 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 4, 5, 0, 0, 0, 0, + 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 32, 33, 34, - 14, 0, 35, 0, 36, 250, 215, 16, 218, 17, - 0, 0, 0, 18, 0, 0, 19, 219, 0, 39, - 0, 0, 0, 20, 0, 0, 0, 40, 41, 0, - 0, 0, 5, 0, 22, 0, 23, 24, 25, 26, - 0, 0, 0, 0, 0, 661, 28, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 42, 0, 0, 0, - 7, 0, 8, 0, 0, 0, 0, 0, 9, 0, - 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, - 31, 0, 0, 0, 0, 32, 33, 34, 14, 0, - 35, 0, 36, 0, 215, 16, 218, 17, 0, 0, - 0, 18, 0, 0, 19, 219, 0, 39, 0, 0, - 0, 20, 0, 0, 0, 40, 41, 0, 0, 0, + 0, 0, 0, 35, 7, 36, 8, 0, 0, 37, + 0, 0, 9, 10, 0, 0, 11, 0, 38, 0, + 39, 12, 0, 0, 0, 0, 0, 0, 40, 41, + 13, 0, 0, 14, 0, 0, 0, 0, 0, 15, + 16, 0, 17, 0, 0, 0, 18, 0, 0, 19, + 0, 0, 0, 0, 0, 0, 20, 42, 0, 0, + 690, 0, 0, 21, 0, 0, 0, 22, 0, 23, + 24, 25, 26, 27, 0, 0, 0, 0, 0, 28, + 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 5, 0, 0, 0, 0, 0, + 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 31, 0, 0, 0, 0, 32, 33, + 34, 0, 0, 7, 35, 8, 36, 0, 0, 0, + 37, 9, 0, 0, 0, 11, 0, 0, 0, 38, + 12, 39, 503, 504, 505, 506, 507, 508, 509, 40, + 41, 0, 14, 0, 0, 0, 0, 0, 15, 16, + 0, 17, 0, 0, 0, 18, 0, 0, 19, 0, + 0, 0, 0, 0, 0, 20, 0, 0, 42, 0, + 0, 575, 21, 0, 0, 0, 22, 0, 23, 24, + 25, 26, 0, 0, 0, 0, 0, 0, 28, 0, + 0, 0, 503, 504, 505, 506, 507, 508, 509, 0, + 0, 0, 4, 5, 0, 0, 0, 0, 0, 0, + 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 0, 0, 32, 33, 34, + 0, 0, 7, 35, 8, 36, 0, 0, 0, 37, + 9, 0, 0, 0, 11, 0, 0, 0, 38, 12, + 39, 503, 504, 505, 506, 507, 508, 509, 40, 41, + 0, 14, 0, 0, 0, 0, 0, 15, 16, 0, + 17, 0, 0, 0, 18, 0, 0, 19, 0, 0, + 0, 0, 0, 0, 20, 0, 0, 42, 0, 0, + 456, 21, 0, 0, 0, 22, 0, 23, 24, 25, + 26, 0, 0, 0, 0, 0, 0, 28, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 0, 0, 0, + 0, 4, 5, 0, 523, 524, 0, 0, 0, 30, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 31, 0, 0, 0, 0, 32, 33, 34, 0, + 0, 7, 35, 8, 36, 0, 0, 0, 37, 9, + 0, 0, 0, 11, 0, 0, 0, 38, 12, 39, + 516, 517, 518, 519, 520, 521, 522, 40, 41, 0, + 14, 0, 0, 0, 523, 524, 15, 16, 0, 17, + 0, 0, 0, 18, 0, 0, 19, 0, 0, 0, + 0, 0, 0, 20, 0, 0, 42, 0, 0, 586, + 21, 0, 0, 0, 22, 0, 23, 24, 25, 26, + 5, 0, 0, 0, 0, 0, 28, 0, 515, 516, + 517, 518, 519, 520, 521, 522, 0, 0, 0, 0, + 0, 0, 0, 523, 524, 0, 0, 0, 30, 7, + 0, 8, 0, 0, 0, 0, 0, 9, 0, 0, + 31, 11, 0, 0, 0, 32, 33, 34, 0, 0, + 0, 35, 0, 36, 0, 0, 0, 37, 14, 0, + 0, 0, 0, 0, 215, 16, 38, 17, 39, 0, + 0, 18, 0, 0, 19, 0, 40, 41, 0, 0, + 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 23, 24, 25, 26, 0, 0, - 0, 0, 0, 0, 28, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 42, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 495, 496, 497, - 498, 499, 500, 501, 502, 503, 0, 0, 31, 0, - 0, 0, 0, 32, 33, 34, 0, 0, 35, 0, + 0, 0, 0, 0, 28, 42, 0, 0, 692, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 5, 0, 0, 0, 0, 0, 0, 0, 0, + 6, 0, 0, 0, 0, 0, 0, 0, 31, 0, + 0, 0, 0, 32, 33, 34, 0, 0, 0, 35, + 7, 36, 8, 0, 0, 218, 0, 0, 9, 10, + 0, 0, 11, 0, 219, 0, 39, 12, 0, 0, + 0, 0, 0, 0, 40, 41, 13, 0, 0, 14, + 0, 0, 0, 0, 0, 15, 16, 0, 17, 0, + 0, 0, 18, 0, 0, 19, 0, 0, 0, 0, + 0, 0, 20, 42, 0, 0, 580, 0, 0, 21, + 0, 0, 0, 22, 0, 23, 24, 25, 26, 27, + 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, + 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 30, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, + 4, 5, 0, 0, 32, 33, 34, 0, 0, 315, + 35, 0, 36, 0, 0, 0, 37, 0, 0, 0, + 0, 0, 0, -68, 0, 38, 0, 39, 0, 0, + 7, 0, 8, 0, 0, 40, 41, 0, 9, 10, + 0, 0, 11, 0, 0, 0, 0, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 13, 0, 0, 14, + 0, 0, 0, 0, 42, 15, 16, 0, 17, 0, + 0, 0, 18, 0, 0, 19, 0, 0, 0, 0, + 0, 0, 20, 0, 0, 0, 0, 0, 0, 21, + 316, 0, 0, 22, 0, 23, 24, 25, 26, 27, + 0, 0, 0, 0, 0, 28, 0, 0, 0, 0, + 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 5, 0, 0, 0, 0, 30, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, + 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, + 35, 7, 36, 8, 0, 0, 37, 0, 247, 9, + 0, 0, 0, 11, 0, 38, 0, 39, 0, 0, + 0, 0, 0, 0, 0, 40, 41, 0, 0, 0, + 14, 0, 0, 0, 0, 0, 215, 16, 0, 17, + 0, 248, 0, 18, 0, 0, 19, 0, 0, 0, + 0, 0, 0, 20, 42, 0, 0, 0, 0, 0, + 0, 5, 0, 0, 22, 0, 23, 24, 25, 26, + 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7, 0, 8, 0, 0, 0, 249, 247, 9, 0, + 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 0, 32, 33, 34, 0, 14, + 0, 35, 0, 36, 250, 215, 16, 218, 17, 0, + 248, 0, 18, 0, 0, 19, 219, 0, 39, 0, + 0, 0, 20, 0, 0, 0, 40, 41, 0, 0, + 5, 0, 0, 22, 0, 23, 24, 25, 26, 0, + 0, 0, 0, 0, 641, 28, 0, 0, 0, 658, + 0, 0, 0, 0, 0, 42, 0, 0, 0, 7, + 0, 8, 0, 0, 0, 249, 0, 9, 0, 0, + 0, 11, 0, 0, 0, 0, 0, 0, 0, 31, + 0, 0, 0, 0, 32, 33, 34, 0, 14, 0, + 35, 0, 36, 250, 215, 16, 218, 17, 0, 0, + 0, 18, 0, 0, 19, 219, 0, 39, 0, 0, + 0, 20, 0, 0, 0, 40, 41, 0, 0, 5, + 0, 0, 22, 0, 23, 24, 25, 26, 0, 0, + 0, 0, 0, 672, 28, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 42, 0, 0, 0, 7, 0, + 8, 0, 0, 0, 0, 0, 9, 0, 0, 0, + 11, 0, 0, 0, 0, 0, 0, 0, 31, 0, + 0, 0, 0, 32, 33, 34, 0, 14, 0, 35, + 0, 36, 0, 215, 16, 218, 17, 0, 0, 0, + 18, 0, 0, 19, 219, 0, 39, 0, 0, 0, + 20, 0, 0, 0, 40, 41, 0, 0, 0, 0, + 0, 22, 0, 23, 24, 25, 26, 0, 0, 0, + 0, 0, 0, 28, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 42, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 503, 504, 505, 506, 507, 508, 509, 31, 511, 0, + 0, 0, 32, 33, 34, 0, 0, 0, 35, 0, 36, 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, 0, 0, 219, 0, 39, 0, 0, 0, 0, - 0, 0, 0, 40, 41, 495, 496, 497, 498, 499, - 500, 501, 502, 503, 0, 0, 0, 504, 0, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, - 0, 0, 42, 0, 0, 0, 515, 516, 0, 0, - 0, 0, 0, 597, 495, 496, 497, 498, 499, 500, - 501, 502, 503, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 495, 496, 497, 498, 499, 500, 501, - 0, 503, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 495, 496, 497, 498, 499, 500, 501, 0, + 0, 0, 0, 40, 41, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 0, 0, 0, 0, 512, 0, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 0, 0, 42, 0, 0, 0, 0, 523, 524, 0, + 0, 0, 0, 0, 558, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 512, 0, 513, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 503, + 504, 505, 506, 507, 508, 509, 523, 524, 0, 0, + 0, 0, 0, 607, 0, 513, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 0, 0, 0, 0, 0, + 0, 0, 523, 524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 504, 0, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 495, 496, 497, - 498, 499, 500, 501, 515, 516, 581, 504, 0, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 495, - 496, 497, 498, 499, 500, 501, 515, 516, 670, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 512, 0, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 0, 0, 0, 0, 0, 0, 0, 523, 524, 589, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 512, 0, + 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 0, 0, 0, 0, 0, 0, 0, 523, 524, 681, + 512, 680, 513, 514, 515, 516, 517, 518, 519, 520, + 521, 522, 0, 0, 0, 0, 0, 0, 0, 523, + 524, 512, 0, 513, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 0, 0, 0, 5, 0, 0, 0, + 523, 524, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 0, 7, 0, 8, 0, 0, + 0, 523, 524, 9, 10, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 504, 669, 505, 506, 507, - 508, 509, 510, 511, 512, 513, 514, 0, 0, 0, - 0, 0, 0, 0, 515, 516, 0, 0, 0, 0, + 0, 13, 0, 0, 14, 0, 0, 0, 0, 0, + 215, 16, 0, 17, 0, 0, 0, 18, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 20, 0, 0, + 0, 0, 0, 0, 0, 5, 0, 0, 22, 0, + 23, 24, 25, 26, 27, 0, 0, 216, 0, 0, + 28, 0, 0, 0, 217, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, + 0, 0, 9, 0, 0, 0, 11, 0, 0, 0, + 0, 0, 0, 0, 31, 0, 0, 0, 0, 32, + 33, 34, 0, 14, 0, 35, 0, 36, 0, 215, + 16, 218, 17, 0, 0, 0, 18, 0, 0, 19, + 219, 5, 39, 0, 0, 0, 20, 0, 0, 0, + 40, 41, 0, 0, 0, 0, 0, 22, 0, 23, + 24, 25, 26, 0, 0, 0, 0, 0, 0, 28, + 7, 0, 8, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 504, 0, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 0, 0, 0, 0, - 0, 0, 0, 515, 516, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 0, 0, 0, 0, 0, - 0, 0, 515, 516, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 0, 0, 0, 0, 0, 0, - 0, 515, 516, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 0, - 0, 0, 5, 0, 0, 0, 515, 516, 0, 0, - 0, 0, 0, 507, 508, 509, 510, 511, 512, 513, - 514, 0, 0, 0, 0, 0, 0, 0, 515, 516, - 7, 0, 8, 0, 0, 0, 0, 0, 9, 10, - 0, 0, 11, 0, 0, 0, 0, 5, 0, 0, - 0, 0, 0, 0, 0, 0, 13, 0, 14, 0, - 0, 0, 0, 0, 215, 16, 0, 17, 0, 0, - 0, 18, 0, 0, 19, 7, 0, 8, 0, 0, - 0, 20, 0, 9, 0, 0, 0, 11, 0, 0, - 0, 0, 22, 0, 23, 24, 25, 26, 27, 0, - 0, 216, 0, 14, 28, 0, 0, 0, 217, 215, - 16, 0, 17, 0, 0, 0, 18, 0, 0, 19, - 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 22, 31, 23, - 24, 25, 26, 32, 33, 34, 0, 0, 35, 28, - 36, 5, 0, 0, 218, 0, 0, 0, 0, 0, - 0, 0, 0, 219, 0, 39, 0, 0, 0, 0, - 0, 0, 0, 40, 41, 0, 0, 0, 0, 7, - 0, 8, 0, 31, 0, 0, 0, 9, 32, 33, - 34, 0, 0, 35, 0, 36, 0, 0, 0, 218, - 0, 0, 0, 0, 0, 0, 0, 14, 219, 0, - 39, 0, 0, 215, 16, 0, 0, 0, 40, 41, - 18, 0, 0, 19, 0, 0, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 23, 24, 25, 26, 0, 0, 0, - 0, 0, 0, 28, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, + 0, 0, 0, 31, 0, 215, 16, 0, 32, 33, + 34, 0, 18, 0, 35, 19, 36, 0, 0, 0, + 218, 0, 20, 0, 0, 0, 0, 0, 0, 219, + 0, 39, 0, 0, 0, 23, 24, 25, 26, 40, + 41, 0, 0, 0, 0, 28, 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, 32, 33, 34, 0, 0, 35, 0, 0, - 0, 0, 0, 218, 0, 0, 0, 0, 0, 0, - 0, 0, 219, 0, 39, 0, 0, 0, 0, 0, - 0, 0, 40, 41, 108, 0, 109, 110, 111, 112, - 113, 114, 0, 115, 0, 0, 116, 0, 117, 0, - 0, 0, 118, 119, 0, 120, 121, 122, 123, 0, - 124, 125, 126, 127, 128, 129, 130, 131, 0, 132, - 0, 133, 134, 135, 136, 137, 0, 0, 138, 0, - 0, 0, 139, 0, 140, 141, 0, 142, 143, 144, - 145, 146, 147, 0, 148, 149, 150, 151, 152, 153, - 0, 0, 154, 0, 0, 155, 0, 0, 0, 0, - 0, 156, 157, 0, 158, 159, 0, 160, 161, 0, - 0, 0, 162, 163, 164, 165, 166, 167, 0, 168, - 169, 170, 171, 172, 173, 174, 0, 175, 0, 176, - 0, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 0, 186, 187, 188, 189, 0, 0, 0, 190, 0, - 0, 191, 0, 0, 192, 193, 0, 0, 194, 195, - 196, 197, 0, 0, 198, 0, 199, 0, 200, 201, - 202, 203, 204, 205, 206, 0, 0, 207 + 0, 0, 0, 0, 32, 33, 34, 0, 0, 0, + 35, 0, 0, 0, 0, 0, 218, 0, 0, 0, + 0, 0, 0, 0, 0, 219, 0, 39, 0, 0, + 0, 0, 0, 0, 108, 40, 41, 109, 110, 111, + 112, 113, 114, 0, 115, 0, 0, 116, 0, 117, + 0, 0, 0, 118, 119, 0, 120, 121, 122, 123, + 0, 124, 125, 126, 127, 128, 129, 130, 131, 0, + 132, 0, 0, 133, 134, 135, 136, 137, 0, 0, + 138, 0, 0, 0, 139, 0, 140, 141, 0, 142, + 143, 144, 145, 146, 147, 0, 148, 149, 150, 151, + 152, 153, 0, 0, 154, 0, 0, 155, 0, 0, + 0, 0, 0, 156, 157, 0, 158, 159, 0, 160, + 161, 0, 0, 0, 162, 163, 164, 165, 166, 167, + 0, 168, 169, 170, 171, 172, 173, 174, 0, 175, + 0, 176, 0, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 0, 186, 187, 188, 189, 0, 0, 0, + 0, 190, 0, 0, 191, 0, 0, 192, 193, 0, + 0, 194, 195, 196, 197, 0, 0, 198, 0, 199, + 0, 200, 201, 202, 203, 204, 205, 206, 0, 0, + 207 }; static const yytype_int16 yycheck[] = { - 2, 53, 2, 2, 50, 74, 286, 2, 74, 2, - 325, 214, 2, 2, 256, 2, 252, 253, 2, 2, - 534, 2, 2, 287, 6, 75, 290, 344, 292, 72, - 73, 295, 591, 294, 77, 53, 300, 533, 39, 346, - 312, 71, 72, 73, 101, 110, 158, 77, 59, 184, - 100, 52, 184, 17, 53, 3, 596, 5, 53, 101, - 53, 601, 37, 38, 158, 184, 53, 158, 136, 349, - 28, 17, 140, 184, 206, 33, 211, 3, 184, 5, - 3, 184, 5, 205, 184, 599, 208, 206, 283, 131, - 101, 286, 40, 9, 0, 207, 12, 45, 293, 167, - 211, 296, 598, 340, 205, 211, 209, 302, 303, 210, - 346, 211, 51, 207, 40, 209, 207, 40, 205, 45, - 660, 210, 636, 210, 72, 64, 685, 442, 365, 366, - 69, 205, 97, 34, 337, 631, 210, 340, 39, 454, - 205, 179, 180, 181, 182, 183, 72, 205, 205, 72, - 3, 209, 5, 667, 349, 350, 205, 226, 9, 208, - 226, 364, 365, 366, 436, 661, 205, 3, 3, 208, - 5, 207, 3, 45, 5, 3, 210, 5, 3, 127, - 5, 210, 209, 252, 253, 164, 252, 253, 383, 384, - 385, 386, 387, 388, 389, 3, 209, 5, 70, 209, - 3, 127, 5, 272, 127, 441, 154, 208, 472, 207, - 212, 213, 281, 212, 213, 40, 234, 260, 209, 212, - 213, 209, 207, 95, 209, 212, 213, 186, 154, 211, - 260, 154, 209, 15, 16, 17, 18, 19, 20, 21, - 204, 205, 294, 218, 219, 207, 194, 72, 194, 195, - 196, 301, 494, 517, 304, 209, 306, 307, 204, 205, - 577, 311, 210, 578, 207, 207, 461, 209, 194, 141, - 3, 194, 5, 3, 326, 5, 3, 346, 5, 205, - 346, 153, 205, 547, 210, 209, 3, 210, 5, 3, - 209, 5, 294, 3, 3, 5, 5, 209, 540, 351, - 495, 496, 127, 498, 499, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 101, 516, 583, 630, 9, 209, 641, 211, 207, 154, - 6, 7, 209, 569, 3, 17, 207, 389, 205, 212, - 210, 210, 210, 345, 210, 345, 345, 542, 210, 351, - 210, 210, 345, 660, 596, 407, 210, 209, 345, 601, - 210, 210, 604, 210, 366, 672, 681, 210, 210, 194, - 210, 210, 441, 210, 41, 441, 210, 210, 210, 5, - 210, 210, 209, 690, 210, 210, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 210, 448, 210, 210, 210, - 210, 210, 471, 683, 456, 210, 210, 643, 190, 191, - 192, 193, 194, 195, 196, 40, 210, 84, 660, 210, - 45, 210, 204, 205, 476, 209, 211, 207, 494, 207, - 97, 98, 99, 100, 486, 186, 211, 210, 9, 9, - 107, 9, 706, 445, 9, 445, 445, 72, 450, 448, - 445, 453, 445, 453, 453, 445, 445, 456, 445, 443, - 453, 445, 445, 456, 445, 445, 453, 9, 534, 456, - 9, 666, 9, 9, 669, 9, 205, 211, 210, 186, - 147, 209, 534, 476, 151, 207, 207, 184, 683, 209, - 208, 207, 207, 212, 6, 184, 204, 15, 16, 17, - 569, 9, 127, 569, 91, 211, 211, 211, 711, 712, - 192, 193, 194, 195, 196, 210, 562, 211, 211, 211, - 211, 573, 204, 205, 593, 211, 186, 211, 211, 154, - 596, 583, 534, 599, 211, 601, 40, 211, 211, 211, - 211, 211, 208, 211, 164, 3, 211, 599, 6, 7, - 8, 9, 10, 11, 211, 211, 185, 211, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 72, 194, - 211, 211, 211, 211, 643, 204, 205, 643, 211, 209, - 205, 583, 211, 532, 636, 210, 184, 536, 211, 211, - 15, 16, 17, 209, 660, 20, 21, 599, 209, 3, - 3, 5, 6, 7, 8, 9, 10, 11, 3, 9, - 6, 211, 184, 71, 3, 667, 209, 6, 7, 8, - 9, 10, 11, 127, 205, 208, 211, 209, 5, 33, - 186, 35, 211, 211, 636, 211, 211, 41, 207, 186, - 642, 45, 209, 642, 646, 211, 646, 646, 211, 642, - 154, 211, 211, 646, 186, 642, 209, 61, 338, 646, - 452, 119, 308, 67, 68, 667, 70, 71, 302, 471, - 74, 712, 53, 77, 192, 193, 194, 195, 196, 542, - 84, 630, 71, 450, 633, 226, 204, 205, 685, 298, - 194, 95, 150, 97, 98, 99, 100, 82, 586, 584, - -1, 205, 354, 107, -1, 163, 210, -1, -1, -1, - -1, -1, -1, 3, 663, 119, 6, 7, 8, 9, - 10, 11, -1, 672, -1, -1, -1, -1, -1, -1, - 119, 189, -1, -1, 192, 193, 194, 141, -1, 197, - 198, 690, 146, 147, 148, -1, 150, 151, 206, 153, - -1, -1, 210, 157, -1, -1, -1, -1, -1, 163, - -1, 150, 166, -1, 168, 190, 191, 192, 193, 194, - 195, 196, 176, 177, 163, -1, -1, -1, -1, 204, - 205, 71, -1, -1, -1, 189, -1, -1, 192, 193, - 194, -1, -1, 197, 198, -1, -1, -1, -1, -1, - 189, -1, -1, 192, 193, 194, 210, -1, 197, 198, - -1, -1, -1, -1, -1, -1, -1, 206, -1, -1, - -1, 210, -1, -1, -1, -1, -1, -1, -1, 119, + 2, 53, 2, 2, 74, 50, 74, 214, 287, 2, + 256, 326, 2, 2, 345, 2, 252, 253, 2, 2, + 75, 2, 2, 288, 2, 53, 291, 6, 293, 313, + 46, 296, 295, 40, 347, 541, 301, 103, 601, 3, + 112, 5, 37, 38, 161, 100, 53, 17, 3, 17, + 5, 3, 9, 5, 53, 12, 72, 42, 138, 542, + 53, 208, 142, 53, 161, 212, 53, 606, 3, 161, + 5, 350, 611, 103, 71, 72, 73, 41, 72, 73, + 77, 97, 46, 77, 187, 284, 41, 60, 287, 41, + 170, 46, 26, 210, 187, 294, 208, 208, 297, 211, + 211, 86, 608, 133, 303, 304, 41, 17, 0, 212, + 74, 347, 213, 210, 99, 100, 101, 102, 210, 74, + 212, 214, 74, 27, 109, 187, 609, 143, 62, 444, + 103, 338, 671, 696, 341, 641, 208, 99, 28, 74, + 156, 456, 208, 33, 341, 187, 187, 209, 52, 187, + 208, 350, 351, 187, 438, 213, 226, 9, 226, 366, + 367, 368, 66, 646, 149, 129, 672, 71, 3, 154, + 367, 368, 214, 214, 129, 187, 214, 129, 213, 3, + 214, 5, 252, 253, 252, 253, 385, 386, 387, 388, + 389, 390, 391, 157, 129, 678, 34, 209, 3, 213, + 5, 39, 157, 273, 211, 157, 234, 443, 6, 7, + 212, 213, 282, 212, 213, 480, 208, 151, 167, 212, + 213, 213, 157, 218, 219, 212, 213, 197, 198, 199, + 15, 16, 17, 197, 210, 214, 208, 207, 208, 207, + 208, 213, 197, 295, 208, 197, 3, 302, 5, 213, + 305, 185, 307, 308, 585, 103, 502, 312, 213, 212, + 525, 213, 197, 260, 463, 212, 260, 208, 41, 212, + 211, 586, 3, 208, 5, 327, 212, 347, 213, 347, + 182, 183, 184, 185, 186, 195, 196, 197, 198, 199, + 555, 210, 212, 295, 3, 210, 5, 207, 208, 212, + 352, 74, 548, 212, 503, 504, 189, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 3, 524, 5, 640, 591, 210, + 41, 212, 210, 210, 212, 46, 651, 212, 3, 391, + 5, 577, 212, 3, 346, 5, 346, 346, 212, 210, + 352, 550, 3, 346, 5, 9, 129, 409, 671, 346, + 606, 212, 3, 74, 5, 611, 368, 3, 614, 5, + 683, 3, 3, 443, 5, 443, 540, 692, 210, 3, + 544, 5, 213, 212, 157, 214, 213, 213, 701, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 450, 213, + 213, 213, 213, 213, 213, 213, 458, 213, 208, 479, + 195, 196, 197, 198, 199, 694, 213, 653, 129, 213, + 213, 213, 207, 208, 197, 671, 213, 213, 5, 213, + 213, 213, 484, 213, 502, 208, 213, 213, 213, 213, + 213, 213, 494, 213, 213, 447, 157, 447, 447, 213, + 452, 450, 717, 455, 447, 455, 455, 447, 447, 458, + 447, 445, 455, 447, 447, 458, 447, 447, 455, 447, + 213, 458, 213, 213, 542, 213, 640, 210, 677, 643, + 212, 680, 212, 212, 210, 189, 197, 215, 213, 213, + 542, 484, 214, 214, 9, 694, 9, 208, 9, 9, + 9, 9, 213, 9, 9, 9, 208, 577, 213, 577, + 674, 212, 210, 210, 189, 722, 723, 212, 210, 683, + 214, 210, 215, 211, 187, 570, 6, 214, 214, 581, + 214, 213, 187, 603, 214, 9, 214, 701, 606, 591, + 542, 609, 214, 611, 214, 214, 214, 214, 214, 93, + 214, 167, 214, 214, 211, 214, 214, 609, 214, 207, + 189, 214, 188, 212, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 214, 214, 214, 214, 187, 214, + 214, 207, 208, 653, 214, 653, 214, 214, 214, 591, + 212, 214, 212, 3, 646, 3, 9, 6, 187, 214, + 212, 208, 212, 671, 5, 211, 214, 609, 3, 214, + 5, 6, 7, 8, 9, 10, 11, 214, 214, 189, + 210, 214, 214, 214, 212, 189, 678, 3, 214, 214, + 6, 7, 8, 9, 10, 11, 189, 212, 454, 34, + 339, 36, 479, 550, 646, 723, 53, 42, 452, 696, + 652, 46, 226, 652, 656, 299, 656, 656, 303, 652, + 82, 594, 309, 656, 596, 652, 356, 592, 63, 656, + -1, -1, -1, -1, 69, 70, 678, 72, 73, -1, + -1, 76, -1, -1, 79, -1, -1, 15, 16, 17, + -1, 86, 20, 21, -1, -1, -1, 73, -1, -1, + -1, -1, 97, -1, 99, 100, 101, 102, -1, -1, + -1, -1, 3, -1, 109, 6, 7, 8, 9, 10, + 11, -1, -1, -1, -1, -1, 121, -1, -1, -1, + -1, -1, -1, -1, 3, -1, -1, 6, 7, 8, + 9, 10, 11, -1, -1, 121, -1, -1, 143, -1, + -1, -1, -1, 148, 149, 150, -1, -1, 153, 154, + -1, 156, -1, -1, -1, 160, -1, -1, -1, -1, + -1, 166, -1, -1, 169, -1, 171, 153, -1, -1, + -1, -1, 73, -1, 179, 180, -1, -1, -1, -1, + 166, -1, -1, -1, -1, -1, -1, 192, -1, -1, + 195, 196, 197, -1, 73, 200, 201, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 192, -1, 213, 195, + 196, 197, -1, -1, 200, 201, -1, -1, -1, -1, + 121, -1, -1, 209, -1, -1, -1, 213, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 121, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 153, -1, -1, 193, 194, 195, 196, 197, + 198, 199, -1, -1, -1, 166, -1, -1, -1, 207, + 208, -1, 4, 5, 153, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 166, -1, -1, + -1, 192, -1, -1, 195, 196, 197, -1, -1, 200, + 201, -1, 34, -1, 36, -1, -1, -1, 209, -1, + 42, 43, 213, 192, 46, -1, 195, 196, 197, 51, + -1, 200, 201, -1, -1, -1, -1, -1, 60, -1, + -1, 63, -1, -1, 213, -1, -1, 69, 70, -1, + 72, -1, -1, -1, 76, -1, -1, 79, -1, -1, + -1, -1, -1, -1, 86, -1, -1, -1, -1, -1, + -1, 93, 94, -1, -1, 97, -1, 99, 100, 101, + 102, 103, -1, -1, -1, -1, -1, 109, -1, -1, + -1, -1, 114, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 4, 5, -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 4, 5, -1, -1, -1, - 150, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 163, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, 35, -1, -1, -1, - -1, -1, 41, 42, -1, -1, 45, -1, -1, 189, - -1, 50, 192, 193, 194, -1, -1, 197, 198, -1, - 59, -1, 61, -1, -1, -1, -1, -1, 67, 68, - 210, 70, -1, -1, -1, 74, -1, -1, 77, -1, - -1, -1, -1, -1, -1, 84, -1, -1, -1, -1, - -1, -1, 91, 92, -1, -1, 95, -1, 97, 98, - 99, 100, 101, -1, -1, -1, -1, -1, 107, -1, - -1, -1, -1, 112, -1, -1, -1, -1, -1, -1, + -1, 143, -1, -1, -1, -1, 148, 149, 150, -1, + -1, -1, 154, 34, 156, 36, -1, -1, 160, -1, + -1, 42, 43, -1, -1, 46, -1, 169, -1, 171, + 51, -1, -1, -1, -1, -1, -1, 179, 180, 60, + -1, -1, 63, -1, -1, -1, -1, -1, 69, 70, + -1, 72, -1, -1, -1, 76, -1, -1, 79, -1, + -1, -1, -1, -1, -1, 86, 208, -1, -1, 211, + -1, -1, 93, 94, -1, -1, 97, -1, 99, 100, + 101, 102, 103, -1, -1, -1, -1, -1, 109, -1, + -1, -1, -1, 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4, 5, -1, -1, -1, -1, - 129, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 141, -1, -1, -1, -1, 146, 147, 148, - -1, -1, 151, 33, 153, 35, -1, -1, 157, -1, - -1, 41, 42, -1, -1, 45, -1, 166, -1, 168, - 50, -1, -1, -1, -1, -1, -1, 176, 177, 59, - -1, 61, -1, -1, -1, -1, -1, 67, 68, -1, - 70, -1, -1, -1, 74, -1, -1, 77, -1, -1, - -1, -1, -1, -1, 84, -1, 205, -1, -1, 208, - -1, 91, 92, -1, -1, 95, -1, 97, 98, 99, - 100, 101, -1, -1, -1, -1, -1, 107, -1, -1, - -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 4, 5, -1, -1, -1, -1, 129, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 141, -1, -1, -1, -1, 146, 147, 148, -1, - -1, 151, 33, 153, 35, -1, -1, 157, -1, -1, - 41, 42, -1, -1, 45, -1, 166, -1, 168, 50, - -1, -1, -1, -1, -1, -1, 176, 177, 59, -1, - 61, -1, -1, -1, -1, -1, 67, 68, -1, 70, - -1, -1, -1, 74, -1, -1, 77, -1, -1, -1, - -1, -1, -1, 84, -1, 205, -1, -1, 208, -1, - 91, -1, -1, -1, 95, -1, 97, 98, 99, 100, - 101, -1, -1, -1, -1, -1, 107, 4, 5, -1, - -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 129, -1, - -1, -1, -1, -1, -1, -1, 33, -1, 35, -1, - 141, -1, -1, -1, 41, 146, 147, 148, 45, -1, - 151, -1, 153, 50, -1, -1, 157, -1, -1, -1, - -1, -1, -1, -1, 61, 166, -1, 168, -1, -1, - 67, 68, -1, 70, -1, 176, 177, 74, -1, -1, - 77, -1, -1, -1, -1, -1, -1, 84, -1, -1, - -1, -1, -1, -1, 91, -1, -1, -1, 95, -1, - 97, 98, 99, 100, 205, -1, -1, 208, -1, -1, - 107, 4, 5, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 129, -1, -1, -1, -1, -1, -1, -1, - 33, -1, 35, -1, 141, -1, -1, -1, 41, 146, - 147, 148, 45, -1, 151, -1, 153, 50, -1, -1, - 157, -1, -1, -1, -1, -1, -1, -1, 61, 166, - -1, 168, -1, -1, 67, 68, -1, 70, -1, 176, - 177, 74, -1, -1, 77, -1, -1, -1, -1, -1, - -1, 84, -1, -1, -1, -1, -1, -1, 91, -1, - -1, -1, 95, -1, 97, 98, 99, 100, 205, -1, - -1, 208, -1, -1, 107, 4, 5, -1, -1, -1, - -1, -1, 15, 16, 17, 18, 19, 20, 21, 22, - 23, -1, -1, -1, -1, -1, 129, -1, -1, -1, - -1, -1, -1, -1, 33, -1, 35, -1, 141, -1, - -1, -1, 41, 146, 147, 148, 45, -1, 151, -1, - 153, 50, -1, -1, 157, -1, -1, -1, -1, -1, - -1, -1, 61, 166, -1, 168, -1, -1, 67, 68, - -1, 70, -1, 176, 177, 74, -1, -1, 77, -1, - -1, 5, -1, -1, -1, 84, -1, -1, -1, -1, - -1, -1, 91, -1, -1, -1, 95, -1, 97, 98, - 99, 100, 205, -1, -1, 208, -1, -1, 107, 33, - -1, 35, -1, -1, -1, -1, -1, 41, -1, -1, - -1, 45, -1, -1, -1, -1, -1, -1, -1, -1, - 129, -1, -1, -1, -1, -1, -1, 61, -1, -1, - -1, -1, 141, 67, 68, -1, 70, 146, 147, 148, - 74, -1, 151, 77, 153, -1, -1, -1, 157, -1, - 84, -1, -1, -1, -1, -1, -1, 166, -1, 168, - -1, 95, -1, 97, 98, 99, 100, 176, 177, -1, - -1, -1, 185, 107, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, -1, -1, -1, -1, -1, -1, - -1, 204, 205, -1, -1, -1, 205, -1, 211, 208, - 4, 5, -1, -1, -1, -1, -1, 141, -1, -1, - 14, -1, 146, 147, 148, -1, -1, 151, -1, 153, - -1, -1, -1, 157, -1, -1, -1, -1, -1, 33, - -1, 35, 166, -1, 168, -1, -1, 41, 42, -1, - -1, 45, 176, 177, -1, -1, 50, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, - -1, -1, -1, 67, 68, -1, 70, -1, -1, -1, - 74, 205, -1, 77, 208, -1, -1, -1, -1, -1, - 84, -1, -1, -1, -1, -1, -1, 91, -1, -1, - -1, 95, -1, 97, 98, 99, 100, 101, -1, -1, - -1, -1, -1, 107, -1, -1, -1, -1, 112, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 129, -1, -1, -1, -1, - 4, 5, -1, -1, -1, -1, -1, 141, -1, 13, - -1, -1, 146, 147, 148, -1, -1, 151, -1, 153, - -1, -1, -1, 157, -1, -1, -1, -1, -1, 33, - 164, 35, 166, -1, 168, -1, -1, 41, 42, -1, - -1, 45, 176, 177, -1, -1, 50, -1, -1, -1, - -1, -1, -1, -1, -1, 59, -1, 61, -1, -1, - -1, -1, -1, 67, 68, -1, 70, -1, -1, -1, - 74, 205, -1, 77, -1, -1, -1, -1, -1, -1, - 84, -1, -1, -1, -1, -1, -1, 91, 92, -1, - -1, 95, -1, 97, 98, 99, 100, 101, 5, -1, - -1, -1, -1, 107, -1, -1, -1, -1, 112, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 129, 33, -1, 35, -1, - -1, -1, -1, 40, 41, -1, -1, 141, 45, -1, - -1, -1, 146, 147, 148, -1, -1, 151, -1, 153, - -1, -1, -1, 157, 61, -1, -1, -1, -1, -1, - 67, 68, 166, 70, 168, 72, -1, 74, -1, -1, - 77, -1, 176, 177, -1, -1, -1, 84, -1, -1, - -1, -1, -1, -1, -1, -1, 5, -1, 95, -1, - 97, 98, 99, 100, -1, -1, -1, -1, -1, -1, - 107, 205, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 33, -1, 35, -1, -1, -1, - 127, 40, 41, -1, -1, -1, 45, -1, -1, -1, - -1, -1, -1, -1, 141, -1, -1, -1, -1, 146, - 147, 148, 61, -1, 151, -1, 153, 154, 67, 68, - 157, 70, -1, 72, -1, 74, -1, -1, 77, 166, - -1, 168, -1, -1, -1, 84, -1, -1, -1, 176, - 177, -1, -1, -1, 5, -1, 95, -1, 97, 98, - 99, 100, -1, -1, -1, -1, -1, 194, 107, -1, - -1, -1, -1, 24, -1, -1, -1, -1, 205, -1, - -1, -1, 33, -1, 35, -1, -1, -1, 127, -1, - 41, -1, -1, -1, 45, -1, -1, -1, -1, -1, - -1, -1, 141, -1, -1, -1, -1, 146, 147, 148, - 61, -1, 151, -1, 153, 154, 67, 68, 157, 70, - -1, -1, -1, 74, -1, -1, 77, 166, -1, 168, - -1, -1, -1, 84, -1, -1, -1, 176, 177, -1, - -1, -1, 5, -1, 95, -1, 97, 98, 99, 100, - -1, -1, -1, -1, -1, 194, 107, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 205, -1, -1, -1, - 33, -1, 35, -1, -1, -1, -1, -1, 41, -1, - -1, -1, 45, -1, -1, -1, -1, -1, -1, -1, - 141, -1, -1, -1, -1, 146, 147, 148, 61, -1, - 151, -1, 153, -1, 67, 68, 157, 70, -1, -1, - -1, 74, -1, -1, 77, 166, -1, 168, -1, -1, - -1, 84, -1, -1, -1, 176, 177, -1, -1, -1, - -1, -1, 95, -1, 97, 98, 99, 100, -1, -1, - -1, -1, -1, -1, 107, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 205, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 15, 16, 17, - 18, 19, 20, 21, 22, 23, -1, -1, 141, -1, - -1, -1, -1, 146, 147, 148, -1, -1, 151, -1, - 153, -1, -1, -1, 157, -1, -1, -1, -1, -1, - -1, -1, -1, 166, -1, 168, -1, -1, -1, -1, - -1, -1, -1, 176, 177, 15, 16, 17, 18, 19, - 20, 21, 22, 23, -1, -1, -1, 185, -1, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, - -1, -1, 205, -1, -1, -1, 204, 205, -1, -1, - -1, -1, -1, 211, 15, 16, 17, 18, 19, 20, - 21, 22, 23, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, - -1, 23, -1, -1, -1, -1, -1, -1, -1, -1, + 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 143, -1, -1, -1, -1, 148, 149, 150, + -1, -1, -1, 154, 34, 156, 36, -1, -1, 160, + -1, -1, 42, 43, -1, -1, 46, -1, 169, -1, + 171, 51, -1, -1, -1, -1, -1, -1, 179, 180, + 60, -1, -1, 63, -1, -1, -1, -1, -1, 69, + 70, -1, 72, -1, -1, -1, 76, -1, -1, 79, + -1, -1, -1, -1, -1, -1, 86, 208, -1, -1, + 211, -1, -1, 93, -1, -1, -1, 97, -1, 99, + 100, 101, 102, 103, -1, -1, -1, -1, -1, 109, + -1, -1, -1, -1, 114, -1, -1, -1, -1, -1, + -1, -1, -1, 4, 5, -1, -1, -1, -1, -1, + -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 143, -1, -1, -1, -1, 148, 149, + 150, -1, -1, 34, 154, 36, 156, -1, -1, -1, + 160, 42, -1, -1, -1, 46, -1, -1, -1, 169, + 51, 171, 15, 16, 17, 18, 19, 20, 21, 179, + 180, -1, 63, -1, -1, -1, -1, -1, 69, 70, + -1, 72, -1, -1, -1, 76, -1, -1, 79, -1, + -1, -1, -1, -1, -1, 86, -1, -1, 208, -1, + -1, 211, 93, -1, -1, -1, 97, -1, 99, 100, + 101, 102, -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, -1, + -1, -1, 4, 5, -1, -1, -1, -1, -1, -1, + 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 143, -1, -1, -1, -1, 148, 149, 150, + -1, -1, 34, 154, 36, 156, -1, -1, -1, 160, + 42, -1, -1, -1, 46, -1, -1, -1, 169, 51, + 171, 15, 16, 17, 18, 19, 20, 21, 179, 180, + -1, 63, -1, -1, -1, -1, -1, 69, 70, -1, + 72, -1, -1, -1, 76, -1, -1, 79, -1, -1, + -1, -1, -1, -1, 86, -1, -1, 208, -1, -1, + 211, 93, -1, -1, -1, 97, -1, 99, 100, 101, + 102, -1, -1, -1, -1, -1, -1, 109, 191, 192, + 193, 194, 195, 196, 197, 198, 199, -1, -1, -1, + -1, 4, 5, -1, 207, 208, -1, -1, -1, 131, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 185, -1, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 15, 16, 17, - 18, 19, 20, 21, 204, 205, 206, 185, -1, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 15, - 16, 17, 18, 19, 20, 21, 204, 205, 206, -1, + -1, 143, -1, -1, -1, -1, 148, 149, 150, -1, + -1, 34, 154, 36, 156, -1, -1, -1, 160, 42, + -1, -1, -1, 46, -1, -1, -1, 169, 51, 171, + 193, 194, 195, 196, 197, 198, 199, 179, 180, -1, + 63, -1, -1, -1, 207, 208, 69, 70, -1, 72, + -1, -1, -1, 76, -1, -1, 79, -1, -1, -1, + -1, -1, -1, 86, -1, -1, 208, -1, -1, 211, + 93, -1, -1, -1, 97, -1, 99, 100, 101, 102, + 5, -1, -1, -1, -1, -1, 109, -1, 192, 193, + 194, 195, 196, 197, 198, 199, -1, -1, -1, -1, + -1, -1, -1, 207, 208, -1, -1, -1, 131, 34, + -1, 36, -1, -1, -1, -1, -1, 42, -1, -1, + 143, 46, -1, -1, -1, 148, 149, 150, -1, -1, + -1, 154, -1, 156, -1, -1, -1, 160, 63, -1, + -1, -1, -1, -1, 69, 70, 169, 72, 171, -1, + -1, 76, -1, -1, 79, -1, 179, 180, -1, -1, + -1, 86, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 97, -1, 99, 100, 101, 102, -1, -1, + -1, -1, -1, -1, 109, 208, -1, -1, 211, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, + 14, -1, -1, -1, -1, -1, -1, -1, 143, -1, + -1, -1, -1, 148, 149, 150, -1, -1, -1, 154, + 34, 156, 36, -1, -1, 160, -1, -1, 42, 43, + -1, -1, 46, -1, 169, -1, 171, 51, -1, -1, + -1, -1, -1, -1, 179, 180, 60, -1, -1, 63, + -1, -1, -1, -1, -1, 69, 70, -1, 72, -1, + -1, -1, 76, -1, -1, 79, -1, -1, -1, -1, + -1, -1, 86, 208, -1, -1, 211, -1, -1, 93, + -1, -1, -1, 97, -1, 99, 100, 101, 102, 103, + -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, + 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 143, + 4, 5, -1, -1, 148, 149, 150, -1, -1, 13, + 154, -1, 156, -1, -1, -1, 160, -1, -1, -1, + -1, -1, -1, 167, -1, 169, -1, 171, -1, -1, + 34, -1, 36, -1, -1, 179, 180, -1, 42, 43, + -1, -1, 46, -1, -1, -1, -1, 51, -1, -1, + -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, + -1, -1, -1, -1, 208, 69, 70, -1, 72, -1, + -1, -1, 76, -1, -1, 79, -1, -1, -1, -1, + -1, -1, 86, -1, -1, -1, -1, -1, -1, 93, + 94, -1, -1, 97, -1, 99, 100, 101, 102, 103, + -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, + 114, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 5, -1, -1, -1, -1, 131, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 143, + -1, -1, -1, -1, 148, 149, 150, -1, -1, -1, + 154, 34, 156, 36, -1, -1, 160, -1, 41, 42, + -1, -1, -1, 46, -1, 169, -1, 171, -1, -1, + -1, -1, -1, -1, -1, 179, 180, -1, -1, -1, + 63, -1, -1, -1, -1, -1, 69, 70, -1, 72, + -1, 74, -1, 76, -1, -1, 79, -1, -1, -1, + -1, -1, -1, 86, 208, -1, -1, -1, -1, -1, + -1, 5, -1, -1, 97, -1, 99, 100, 101, 102, + -1, -1, -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, -1, -1, -1, - -1, -1, -1, -1, 204, 205, -1, -1, -1, -1, + 34, -1, 36, -1, -1, -1, 129, 41, 42, -1, + -1, -1, 46, -1, -1, -1, -1, -1, -1, -1, + 143, -1, -1, -1, -1, 148, 149, 150, -1, 63, + -1, 154, -1, 156, 157, 69, 70, 160, 72, -1, + 74, -1, 76, -1, -1, 79, 169, -1, 171, -1, + -1, -1, 86, -1, -1, -1, 179, 180, -1, -1, + 5, -1, -1, 97, -1, 99, 100, 101, 102, -1, + -1, -1, -1, -1, 197, 109, -1, -1, -1, 24, + -1, -1, -1, -1, -1, 208, -1, -1, -1, 34, + -1, 36, -1, -1, -1, 129, -1, 42, -1, -1, + -1, 46, -1, -1, -1, -1, -1, -1, -1, 143, + -1, -1, -1, -1, 148, 149, 150, -1, 63, -1, + 154, -1, 156, 157, 69, 70, 160, 72, -1, -1, + -1, 76, -1, -1, 79, 169, -1, 171, -1, -1, + -1, 86, -1, -1, -1, 179, 180, -1, -1, 5, + -1, -1, 97, -1, 99, 100, 101, 102, -1, -1, + -1, -1, -1, 197, 109, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 208, -1, -1, -1, 34, -1, + 36, -1, -1, -1, -1, -1, 42, -1, -1, -1, + 46, -1, -1, -1, -1, -1, -1, -1, 143, -1, + -1, -1, -1, 148, 149, 150, -1, 63, -1, 154, + -1, 156, -1, 69, 70, 160, 72, -1, -1, -1, + 76, -1, -1, 79, 169, -1, 171, -1, -1, -1, + 86, -1, -1, -1, 179, 180, -1, -1, -1, -1, + -1, 97, -1, 99, 100, 101, 102, -1, -1, -1, + -1, -1, -1, 109, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 185, -1, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, -1, -1, -1, -1, - -1, -1, -1, 204, 205, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, -1, -1, -1, -1, -1, - -1, -1, 204, 205, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, -1, -1, -1, -1, -1, -1, - -1, 204, 205, -1, -1, -1, -1, -1, -1, -1, + 15, 16, 17, 18, 19, 20, 21, 143, 23, -1, + -1, -1, 148, 149, 150, -1, -1, -1, 154, -1, + 156, -1, -1, -1, 160, -1, -1, -1, -1, -1, + -1, -1, -1, 169, -1, 171, -1, -1, -1, -1, + -1, -1, -1, 179, 180, 15, 16, 17, 18, 19, + 20, 21, 22, 23, -1, -1, -1, -1, 188, -1, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + -1, -1, 208, -1, -1, -1, -1, 207, 208, -1, + -1, -1, -1, -1, 214, 15, 16, 17, 18, 19, + 20, 21, 22, 23, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 15, 16, 17, + 18, 19, 20, 21, 22, 23, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 15, 16, + 17, 18, 19, 20, 21, 22, 23, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 188, -1, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 15, + 16, 17, 18, 19, 20, 21, 207, 208, -1, -1, + -1, -1, -1, 214, -1, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, -1, -1, -1, -1, -1, + -1, -1, 207, 208, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 188, 189, 190, 191, 192, 193, 194, 195, 196, -1, - -1, -1, 5, -1, -1, -1, 204, 205, -1, -1, - -1, -1, -1, 189, 190, 191, 192, 193, 194, 195, - 196, -1, -1, -1, -1, -1, -1, -1, 204, 205, - 33, -1, 35, -1, -1, -1, -1, -1, 41, 42, - -1, -1, 45, -1, -1, -1, -1, 5, -1, -1, - -1, -1, -1, -1, -1, -1, 59, -1, 61, -1, - -1, -1, -1, -1, 67, 68, -1, 70, -1, -1, - -1, 74, -1, -1, 77, 33, -1, 35, -1, -1, - -1, 84, -1, 41, -1, -1, -1, 45, -1, -1, - -1, -1, 95, -1, 97, 98, 99, 100, 101, -1, - -1, 104, -1, 61, 107, -1, -1, -1, 111, 67, - 68, -1, 70, -1, -1, -1, 74, -1, -1, 77, - -1, -1, -1, -1, -1, -1, 84, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 95, 141, 97, - 98, 99, 100, 146, 147, 148, -1, -1, 151, 107, - 153, 5, -1, -1, 157, -1, -1, -1, -1, -1, - -1, -1, -1, 166, -1, 168, -1, -1, -1, -1, - -1, -1, -1, 176, 177, -1, -1, -1, -1, 33, - -1, 35, -1, 141, -1, -1, -1, 41, 146, 147, - 148, -1, -1, 151, -1, 153, -1, -1, -1, 157, - -1, -1, -1, -1, -1, -1, -1, 61, 166, -1, - 168, -1, -1, 67, 68, -1, -1, -1, 176, 177, - 74, -1, -1, 77, -1, -1, -1, -1, -1, -1, - 84, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 97, 98, 99, 100, -1, -1, -1, - -1, -1, -1, 107, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + -1, -1, -1, -1, -1, -1, -1, 207, 208, 209, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + -1, -1, -1, -1, -1, -1, -1, 207, 208, 209, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, -1, -1, -1, -1, -1, -1, -1, 207, + 208, 188, -1, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, -1, -1, -1, 5, -1, -1, -1, + 207, 208, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, -1, 34, -1, 36, -1, -1, + -1, 207, 208, 42, 43, -1, -1, 46, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 60, -1, -1, 63, -1, -1, -1, -1, -1, + 69, 70, -1, 72, -1, -1, -1, 76, -1, -1, + 79, -1, -1, -1, -1, -1, -1, 86, -1, -1, + -1, -1, -1, -1, -1, 5, -1, -1, 97, -1, + 99, 100, 101, 102, 103, -1, -1, 106, -1, -1, + 109, -1, -1, -1, 113, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 34, -1, 36, -1, -1, -1, + -1, -1, 42, -1, -1, -1, 46, -1, -1, -1, + -1, -1, -1, -1, 143, -1, -1, -1, -1, 148, + 149, 150, -1, 63, -1, 154, -1, 156, -1, 69, + 70, 160, 72, -1, -1, -1, 76, -1, -1, 79, + 169, 5, 171, -1, -1, -1, 86, -1, -1, -1, + 179, 180, -1, -1, -1, -1, -1, 97, -1, 99, + 100, 101, 102, -1, -1, -1, -1, -1, -1, 109, + 34, -1, 36, -1, -1, -1, -1, -1, 42, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, + -1, -1, -1, 143, -1, 69, 70, -1, 148, 149, + 150, -1, 76, -1, 154, 79, 156, -1, -1, -1, + 160, -1, 86, -1, -1, -1, -1, -1, -1, 169, + -1, 171, -1, -1, -1, 99, 100, 101, 102, 179, + 180, -1, -1, -1, -1, 109, -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, 146, 147, 148, -1, -1, 151, -1, -1, - -1, -1, -1, 157, -1, -1, -1, -1, -1, -1, - -1, -1, 166, -1, 168, -1, -1, -1, -1, -1, - -1, -1, 176, 177, 25, -1, 27, 28, 29, 30, - 31, 32, -1, 34, -1, -1, 37, -1, 39, -1, - -1, -1, 43, 44, -1, 46, 47, 48, 49, -1, - 51, 52, 53, 54, 55, 56, 57, 58, -1, 60, - -1, 62, 63, 64, 65, 66, -1, -1, 69, -1, - -1, -1, 73, -1, 75, 76, -1, 78, 79, 80, - 81, 82, 83, -1, 85, 86, 87, 88, 89, 90, - -1, -1, 93, -1, -1, 96, -1, -1, -1, -1, - -1, 102, 103, -1, 105, 106, -1, 108, 109, -1, - -1, -1, 113, 114, 115, 116, 117, 118, -1, 120, - 121, 122, 123, 124, 125, 126, -1, 128, -1, 130, - -1, 132, 133, 134, 135, 136, 137, 138, 139, 140, - -1, 142, 143, 144, 145, -1, -1, -1, 149, -1, - -1, 152, -1, -1, 155, 156, -1, -1, 159, 160, - 161, 162, -1, -1, 165, -1, 167, -1, 169, 170, - 171, 172, 173, 174, 175, -1, -1, 178 + -1, -1, -1, -1, 148, 149, 150, -1, -1, -1, + 154, -1, -1, -1, -1, -1, 160, -1, -1, -1, + -1, -1, -1, -1, -1, 169, -1, 171, -1, -1, + -1, -1, -1, -1, 25, 179, 180, 28, 29, 30, + 31, 32, 33, -1, 35, -1, -1, 38, -1, 40, + -1, -1, -1, 44, 45, -1, 47, 48, 49, 50, + -1, 52, 53, 54, 55, 56, 57, 58, 59, -1, + 61, -1, -1, 64, 65, 66, 67, 68, -1, -1, + 71, -1, -1, -1, 75, -1, 77, 78, -1, 80, + 81, 82, 83, 84, 85, -1, 87, 88, 89, 90, + 91, 92, -1, -1, 95, -1, -1, 98, -1, -1, + -1, -1, -1, 104, 105, -1, 107, 108, -1, 110, + 111, -1, -1, -1, 115, 116, 117, 118, 119, 120, + -1, 122, 123, 124, 125, 126, 127, 128, -1, 130, + -1, 132, -1, 134, 135, 136, 137, 138, 139, 140, + 141, 142, -1, 144, 145, 146, 147, -1, -1, -1, + -1, 152, -1, -1, 155, -1, -1, 158, 159, -1, + -1, 162, 163, 164, 165, -1, -1, 168, -1, 170, + -1, 172, 173, 174, 175, 176, 177, 178, -1, -1, + 181 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const yytype_uint16 yystos[] = +static const yytype_int16 yystos[] = { - 0, 214, 216, 0, 4, 5, 14, 33, 35, 41, - 42, 45, 50, 59, 61, 67, 68, 70, 74, 77, - 84, 91, 95, 97, 98, 99, 100, 101, 107, 112, - 129, 141, 146, 147, 148, 151, 153, 157, 166, 168, - 176, 177, 205, 215, 222, 223, 225, 226, 227, 228, - 231, 232, 238, 239, 250, 264, 268, 270, 271, 272, - 273, 274, 277, 278, 281, 283, 284, 285, 286, 288, - 289, 290, 291, 292, 294, 296, 314, 315, 316, 317, - 205, 319, 322, 323, 3, 5, 210, 3, 5, 3, - 5, 266, 97, 269, 9, 3, 5, 269, 3, 210, - 210, 269, 270, 3, 266, 3, 266, 270, 25, 27, - 28, 29, 30, 31, 32, 34, 37, 39, 43, 44, - 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, - 57, 58, 60, 62, 63, 64, 65, 66, 69, 73, - 75, 76, 78, 79, 80, 81, 82, 83, 85, 86, - 87, 88, 89, 90, 93, 96, 102, 103, 105, 106, - 108, 109, 113, 114, 115, 116, 117, 118, 120, 121, - 122, 123, 124, 125, 126, 128, 130, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 142, 143, 144, 145, - 149, 152, 155, 156, 159, 160, 161, 162, 165, 167, - 169, 170, 171, 172, 173, 174, 175, 178, 240, 242, - 313, 209, 218, 218, 164, 67, 104, 111, 157, 166, - 230, 250, 271, 277, 283, 287, 294, 314, 317, 209, - 209, 207, 207, 209, 207, 209, 221, 209, 186, 282, - 207, 295, 296, 295, 295, 3, 5, 40, 72, 127, - 154, 194, 210, 244, 267, 297, 298, 311, 250, 314, - 315, 317, 295, 209, 51, 64, 69, 324, 325, 319, - 101, 9, 207, 209, 3, 315, 207, 158, 207, 210, - 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 184, 206, 13, 92, 222, 229, 232, 271, - 273, 274, 285, 286, 289, 208, 238, 239, 3, 3, - 5, 3, 5, 3, 3, 207, 311, 275, 217, 131, - 279, 283, 3, 5, 207, 220, 293, 297, 297, 212, - 205, 210, 237, 295, 184, 206, 5, 211, 247, 248, - 249, 267, 186, 211, 257, 210, 260, 9, 9, 12, - 243, 267, 3, 6, 7, 8, 9, 10, 11, 71, - 119, 150, 163, 189, 192, 193, 194, 197, 198, 210, - 253, 254, 255, 253, 256, 9, 9, 241, 256, 255, - 9, 9, 255, 9, 255, 253, 236, 239, 294, 255, - 251, 252, 253, 9, 313, 9, 255, 315, 251, 253, - 315, 179, 180, 181, 182, 183, 312, 315, 315, 243, - 6, 7, 318, 9, 315, 242, 205, 210, 209, 207, - 221, 294, 208, 238, 276, 216, 186, 110, 238, 262, - 280, 209, 207, 220, 208, 222, 239, 292, 297, 211, - 256, 194, 206, 253, 233, 234, 235, 236, 325, 207, - 208, 184, 212, 6, 224, 208, 238, 258, 262, 208, - 239, 259, 262, 211, 211, 211, 210, 253, 253, 253, - 253, 253, 253, 253, 294, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 185, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 204, 205, 184, 211, 211, - 211, 184, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 294, 194, 210, 237, 244, 267, 303, 305, - 306, 211, 184, 211, 211, 211, 211, 184, 211, 211, - 211, 211, 211, 211, 211, 211, 204, 211, 211, 211, - 242, 9, 219, 297, 307, 221, 286, 208, 186, 294, - 314, 209, 208, 239, 263, 264, 208, 228, 208, 221, - 206, 206, 211, 184, 164, 320, 321, 249, 255, 6, - 211, 294, 317, 211, 209, 209, 294, 211, 194, 210, - 237, 244, 299, 301, 302, 253, 253, 3, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 3, 253, 255, 9, 305, - 293, 194, 233, 244, 304, 305, 210, 237, 252, 255, - 6, 211, 218, 184, 297, 209, 220, 221, 24, 236, - 323, 208, 320, 303, 309, 310, 209, 265, 267, 301, - 293, 194, 233, 244, 300, 301, 211, 210, 237, 186, - 206, 305, 293, 211, 305, 211, 233, 211, 221, 208, - 297, 208, 5, 186, 308, 184, 209, 207, 211, 301, - 293, 211, 305, 211, 253, 233, 253, 305, 211, 221, - 209, 256, 309, 245, 305, 211, 39, 52, 208, 246, - 255, 186, 186, 209, 261, 262, 261, 209 + 0, 217, 219, 0, 4, 5, 14, 34, 36, 42, + 43, 46, 51, 60, 63, 69, 70, 72, 76, 79, + 86, 93, 97, 99, 100, 101, 102, 103, 109, 114, + 131, 143, 148, 149, 150, 154, 156, 160, 169, 171, + 179, 180, 208, 218, 225, 226, 228, 229, 230, 231, + 234, 235, 241, 242, 253, 267, 271, 273, 274, 275, + 276, 277, 280, 281, 284, 286, 287, 288, 289, 291, + 292, 293, 294, 295, 297, 299, 317, 318, 319, 320, + 208, 322, 325, 326, 3, 5, 213, 3, 5, 3, + 5, 269, 99, 272, 9, 3, 5, 272, 3, 213, + 213, 272, 273, 3, 269, 3, 269, 273, 25, 28, + 29, 30, 31, 32, 33, 35, 38, 40, 44, 45, + 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, + 58, 59, 61, 64, 65, 66, 67, 68, 71, 75, + 77, 78, 80, 81, 82, 83, 84, 85, 87, 88, + 89, 90, 91, 92, 95, 98, 104, 105, 107, 108, + 110, 111, 115, 116, 117, 118, 119, 120, 122, 123, + 124, 125, 126, 127, 128, 130, 132, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, + 152, 155, 158, 159, 162, 163, 164, 165, 168, 170, + 172, 173, 174, 175, 176, 177, 178, 181, 243, 245, + 316, 212, 221, 221, 167, 69, 106, 113, 160, 169, + 233, 253, 274, 280, 286, 290, 297, 317, 320, 212, + 212, 210, 210, 212, 210, 212, 224, 212, 189, 285, + 210, 298, 299, 298, 298, 3, 5, 41, 74, 129, + 157, 197, 213, 247, 270, 300, 301, 314, 253, 317, + 318, 320, 298, 212, 27, 52, 66, 71, 327, 328, + 322, 103, 9, 210, 212, 3, 318, 210, 161, 210, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 187, 209, 13, 94, 225, 232, 235, + 274, 276, 277, 288, 289, 292, 211, 241, 242, 3, + 3, 5, 3, 5, 3, 3, 210, 314, 278, 220, + 133, 282, 286, 3, 5, 210, 223, 296, 300, 300, + 215, 208, 213, 240, 298, 213, 187, 209, 5, 214, + 250, 251, 252, 270, 189, 214, 260, 213, 263, 9, + 9, 12, 246, 270, 3, 6, 7, 8, 9, 10, + 11, 73, 121, 153, 166, 192, 195, 196, 197, 200, + 201, 213, 256, 257, 258, 256, 259, 9, 9, 244, + 259, 258, 9, 9, 258, 9, 258, 256, 239, 242, + 297, 258, 254, 255, 256, 9, 316, 9, 258, 318, + 254, 256, 318, 182, 183, 184, 185, 186, 315, 318, + 318, 246, 6, 7, 321, 9, 318, 245, 208, 213, + 212, 210, 224, 297, 211, 241, 279, 219, 189, 112, + 241, 265, 283, 212, 210, 223, 211, 225, 242, 295, + 300, 214, 259, 197, 209, 256, 236, 237, 238, 239, + 26, 62, 151, 185, 329, 330, 328, 210, 211, 187, + 215, 6, 227, 211, 241, 261, 265, 211, 242, 262, + 265, 214, 214, 214, 213, 256, 256, 256, 256, 256, + 256, 256, 297, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 188, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 207, 208, 187, 214, 214, 214, 187, + 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, + 297, 197, 213, 240, 247, 270, 306, 308, 309, 214, + 187, 214, 214, 214, 214, 187, 214, 214, 214, 214, + 214, 214, 214, 214, 207, 214, 214, 214, 245, 9, + 222, 300, 310, 224, 289, 211, 189, 297, 317, 212, + 211, 242, 266, 267, 211, 231, 211, 224, 209, 209, + 214, 187, 187, 214, 167, 323, 324, 252, 258, 6, + 214, 297, 320, 214, 212, 212, 297, 214, 197, 213, + 240, 247, 302, 304, 305, 256, 256, 3, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 3, 256, 258, 9, 308, + 296, 197, 236, 247, 307, 308, 213, 240, 255, 258, + 6, 214, 221, 187, 300, 212, 223, 224, 24, 239, + 330, 326, 211, 323, 306, 312, 313, 212, 268, 270, + 304, 296, 197, 236, 247, 303, 304, 214, 213, 240, + 189, 209, 308, 296, 214, 308, 214, 236, 214, 224, + 211, 300, 211, 5, 189, 311, 187, 212, 210, 214, + 304, 296, 214, 308, 214, 256, 236, 256, 308, 214, + 224, 212, 259, 312, 248, 308, 214, 40, 53, 211, + 249, 258, 189, 189, 212, 264, 265, 264, 212 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const yytype_uint16 yyr1[] = +static const yytype_int16 yyr1[] = { - 0, 213, 214, 215, 215, 216, 217, 216, 216, 216, - 216, 216, 216, 216, 216, 218, 218, 219, 218, 218, - 218, 218, 218, 218, 218, 218, 220, 220, 221, 221, - 222, 222, 222, 222, 222, 222, 222, 223, 224, 224, - 225, 225, 225, 225, 225, 225, 225, 225, 225, 226, - 227, 228, 229, 230, 230, 231, 232, 233, 233, 234, - 234, 235, 235, 236, 236, 237, 237, 237, 238, 238, - 239, 240, 240, 240, 241, 241, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, - 242, 242, 242, 242, 242, 242, 243, 243, 244, 244, - 244, 244, 245, 245, 246, 246, 247, 247, 247, 248, - 248, 249, 249, 250, 251, 251, 252, 252, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, - 253, 253, 253, 253, 253, 253, 253, 253, 253, 254, - 254, 255, 256, 257, 257, 258, 258, 259, 259, 260, - 260, 261, 261, 262, 262, 263, 264, 264, 265, 265, - 266, 266, 266, 267, 267, 268, 268, 268, 268, 268, - 268, 268, 268, 268, 268, 268, 269, 269, 270, 270, - 270, 270, 270, 270, 270, 270, 270, 271, 271, 272, - 273, 274, 275, 275, 276, 277, 277, 278, 279, 279, - 280, 280, 281, 281, 282, 282, 283, 283, 284, 285, - 285, 285, 286, 286, 287, 287, 288, 289, 290, 290, - 290, 291, 292, 293, 293, 294, 294, 295, 295, 296, - 296, 296, 297, 297, 297, 298, 298, 298, 298, 299, - 299, 299, 300, 300, 301, 301, 302, 302, 302, 302, - 302, 303, 303, 303, 304, 304, 305, 305, 306, 306, - 306, 306, 306, 306, 307, 307, 308, 308, 309, 310, - 310, 311, 311, 312, 312, 312, 312, 312, 313, 313, - 313, 314, 315, 315, 315, 315, 315, 315, 315, 315, - 315, 315, 316, 317, 317, 318, 318, 318, 319, 319, - 320, 320, 321, 322, 323, 323, 324, 324, 325, 325, - 325 + 0, 216, 217, 218, 218, 219, 220, 219, 219, 219, + 219, 219, 219, 219, 219, 221, 221, 222, 221, 221, + 221, 221, 221, 221, 221, 221, 223, 223, 224, 224, + 225, 225, 225, 225, 225, 225, 225, 226, 227, 227, + 228, 228, 228, 228, 228, 228, 228, 228, 228, 229, + 230, 231, 232, 233, 233, 234, 235, 236, 236, 237, + 237, 238, 238, 239, 239, 240, 240, 240, 241, 241, + 242, 243, 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, 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, 245, 245, + 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, + 245, 245, 245, 245, 245, 245, 246, 246, 247, 247, + 247, 247, 248, 248, 249, 249, 250, 250, 250, 251, + 251, 252, 252, 253, 254, 254, 255, 255, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 256, + 256, 256, 256, 256, 256, 256, 256, 256, 256, 257, + 257, 258, 259, 260, 260, 261, 261, 262, 262, 263, + 263, 264, 264, 265, 265, 266, 267, 267, 268, 268, + 269, 269, 269, 270, 270, 271, 271, 271, 271, 271, + 271, 271, 271, 271, 271, 271, 272, 272, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 274, 274, 275, + 276, 277, 278, 278, 279, 280, 280, 281, 282, 282, + 283, 283, 284, 284, 285, 285, 286, 286, 287, 288, + 288, 288, 289, 289, 290, 290, 291, 292, 293, 293, + 293, 294, 295, 296, 296, 297, 297, 298, 298, 299, + 299, 299, 300, 300, 300, 301, 301, 301, 301, 302, + 302, 302, 303, 303, 304, 304, 305, 305, 305, 305, + 305, 306, 306, 306, 307, 307, 308, 308, 309, 309, + 309, 309, 309, 309, 310, 310, 311, 311, 312, 313, + 313, 314, 314, 315, 315, 315, 315, 315, 316, 316, + 316, 317, 318, 318, 318, 318, 318, 318, 318, 318, + 318, 318, 319, 320, 320, 321, 321, 321, 322, 322, + 323, 323, 324, 325, 326, 326, 327, 327, 328, 328, + 328, 328, 329, 329, 330, 330, 330, 330 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ -static const yytype_uint8 yyr2[] = +static const yytype_int8 yyr2[] = { 0, 2, 2, 0, 2, 0, 0, 6, 2, 2, 3, 2, 2, 2, 2, 0, 2, 0, 6, 2, @@ -1920,8 +2050,8 @@ static const yytype_uint8 yyr2[] = 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, 0, 2, - 0, 2, 4, 6, 0, 3, 1, 3, 1, 1, - 1 + 0, 2, 4, 6, 0, 3, 1, 3, 4, 1, + 1, 1, 1, 3, 1, 1, 1, 1 }; @@ -1937,22 +2067,22 @@ static const yytype_uint8 yyr2[] = #define YYRECOVERING() (!!yyerrstatus) -#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 (0) +#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 (0) /* Error token number */ #define YYTERROR 1 @@ -1992,37 +2122,39 @@ do { \ } while (0) -/*----------------------------------------. -| Print this symbol's value on YYOUTPUT. | -`----------------------------------------*/ +/*-----------------------------------. +| Print this symbol's value on YYO. | +`-----------------------------------*/ static void -yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) { - FILE *yyo = yyoutput; - YYUSE (yyo); + FILE *yyoutput = yyo; + YYUSE (yyoutput); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) - YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); + YYPRINT (yyo, yytoknum[yytype], *yyvaluep); # endif + YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YYUSE (yytype); + YY_IGNORE_MAYBE_UNINITIALIZED_END } -/*--------------------------------. -| Print this symbol on YYOUTPUT. | -`--------------------------------*/ +/*---------------------------. +| Print this symbol on YYO. | +`---------------------------*/ static void -yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) +yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep) { - YYFPRINTF (yyoutput, "%s %s (", + YYFPRINTF (yyo, "%s %s (", yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); - yy_symbol_value_print (yyoutput, yytype, yyvaluep); - YYFPRINTF (yyoutput, ")"); + yy_symbol_value_print (yyo, yytype, yyvaluep); + YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. @@ -2031,7 +2163,7 @@ yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep) `------------------------------------------------------------------*/ static void -yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) +yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) @@ -2054,20 +2186,20 @@ do { \ `------------------------------------------------*/ static void -yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule) +yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, int yyrule) { - unsigned long int yylno = yyrline[yyrule]; + int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; - YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", + YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, - yystos[yyssp[yyi + 1 - yynrhs]], - &(yyvsp[(yyi + 1) - (yynrhs)]) + yystos[+yyssp[yyi + 1 - yynrhs]], + &yyvsp[(yyi + 1) - (yynrhs)] ); YYFPRINTF (stderr, "\n"); } @@ -2111,13 +2243,13 @@ int yydebug; # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H -# define yystrlen strlen +# define yystrlen(S) (YY_CAST (YYPTRDIFF_T, strlen (S))) # else /* Return the length of YYSTR. */ -static YYSIZE_T +static YYPTRDIFF_T yystrlen (const char *yystr) { - YYSIZE_T yylen; + YYPTRDIFF_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; @@ -2153,12 +2285,12 @@ yystpcpy (char *yydest, const char *yysrc) backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ -static YYSIZE_T +static YYPTRDIFF_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { - YYSIZE_T yyn = 0; + YYPTRDIFF_T yyn = 0; char const *yyp = yystr; for (;;) @@ -2171,7 +2303,10 @@ yytnamerr (char *yyres, const char *yystr) case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; - /* Fall through. */ + else + goto append; + + append: default: if (yyres) yyres[yyn] = *yyp; @@ -2186,10 +2321,10 @@ yytnamerr (char *yyres, const char *yystr) do_not_strip_quotes: ; } - if (! yyres) + if (yyres) + return yystpcpy (yyres, yystr) - yyres; + else return yystrlen (yystr); - - return yystpcpy (yyres, yystr) - yyres; } # endif @@ -2202,19 +2337,19 @@ yytnamerr (char *yyres, const char *yystr) *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) +yysyntax_error (YYPTRDIFF_T *yymsg_alloc, char **yymsg, + yy_state_t *yyssp, int yytoken) { - 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. */ + const char *yyformat = YY_NULLPTR; + /* Arguments of yyformat: reported tokens (one for the "unexpected", + one per "expected"). */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - /* Number of reported tokens (one for the "unexpected", one per - "expected"). */ + /* Actual size of YYARG. */ int yycount = 0; + /* Cumulated lengths of YYARG. */ + YYPTRDIFF_T yysize = 0; /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then @@ -2241,7 +2376,9 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, */ if (yytoken != YYEMPTY) { - int yyn = yypact[*yyssp]; + int yyn = yypact[+*yyssp]; + YYPTRDIFF_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); + yysize = yysize0; yyarg[yycount++] = yytname[yytoken]; if (!yypact_value_is_default (yyn)) { @@ -2266,11 +2403,12 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } yyarg[yycount++] = yytname[yyx]; { - YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]); - if (! (yysize <= yysize1 - && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + YYPTRDIFF_T yysize1 + = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else return 2; - yysize = yysize1; } } } @@ -2282,6 +2420,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, case N: \ yyformat = S; \ break + default: /* Avoid compiler warnings. */ YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); @@ -2292,10 +2431,13 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } { - YYSIZE_T yysize1 = yysize + yystrlen (yyformat); - if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + /* Don't count the "%s"s in the final size, but reserve room for + the terminator. */ + YYPTRDIFF_T yysize1 = yysize + (yystrlen (yyformat) - 2 * yycount) + 1; + if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM) + yysize = yysize1; + else return 2; - yysize = yysize1; } if (*yymsg_alloc < yysize) @@ -2321,8 +2463,8 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, } else { - yyp++; - yyformat++; + ++yyp; + ++yyformat; } } return 0; @@ -2365,7 +2507,7 @@ int yynerrs; int yyparse (void) { - int yystate; + yy_state_fast_t yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; @@ -2377,16 +2519,16 @@ yyparse (void) to reallocate them elsewhere. */ /* The state stack. */ - yytype_int16 yyssa[YYINITDEPTH]; - yytype_int16 *yyss; - yytype_int16 *yyssp; + yy_state_t yyssa[YYINITDEPTH]; + yy_state_t *yyss; + yy_state_t *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs; YYSTYPE *yyvsp; - YYSIZE_T yystacksize; + YYPTRDIFF_T yystacksize; int yyn; int yyresult; @@ -2400,7 +2542,7 @@ yyparse (void) /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; - YYSIZE_T yymsg_alloc = sizeof yymsgbuf; + YYPTRDIFF_T yymsg_alloc = sizeof yymsgbuf; #endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) @@ -2421,46 +2563,54 @@ yyparse (void) yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; + /*------------------------------------------------------------. -| yynewstate -- Push a new state, which is found in yystate. | +| yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ - yynewstate: +yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; - yysetstate: - *yyssp = yystate; + +/*--------------------------------------------------------------------. +| yysetstate -- set current state (the top of the stack) to yystate. | +`--------------------------------------------------------------------*/ +yysetstate: + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); + YY_ASSERT (0 <= yystate && yystate < YYNSTATES); + YY_IGNORE_USELESS_CAST_BEGIN + *yyssp = YY_CAST (yy_state_t, yystate); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) +#if !defined yyoverflow && !defined YYSTACK_RELOCATE + goto yyexhaustedlab; +#else { /* Get the current used size of the three stacks, in elements. */ - YYSIZE_T yysize = yyssp - yyss + 1; + YYPTRDIFF_T yysize = yyssp - yyss + 1; -#ifdef yyoverflow +# if defined yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ + yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; - yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), - &yyss1, yysize * sizeof (*yyssp), - &yyvs1, yysize * sizeof (*yyvsp), + &yyss1, yysize * YYSIZEOF (*yyssp), + &yyvs1, yysize * YYSIZEOF (*yyvsp), &yystacksize); - yyss = yyss1; yyvs = yyvs1; } -#else /* no yyoverflow */ -# ifndef YYSTACK_RELOCATE - goto yyexhaustedlab; -# else +# else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; @@ -2469,42 +2619,43 @@ yyparse (void) yystacksize = YYMAXDEPTH; { - yytype_int16 *yyss1 = yyss; + yy_state_t *yyss1 = yyss; union yyalloc *yyptr = - (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + YY_CAST (union yyalloc *, + YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); -# undef YYSTACK_RELOCATE +# undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif -#endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; - YYDPRINTF ((stderr, "Stack size increased to %lu\n", - (unsigned long int) yystacksize)); + YY_IGNORE_USELESS_CAST_BEGIN + YYDPRINTF ((stderr, "Stack size increased to %ld\n", + YY_CAST (long, yystacksize))); + YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } - - YYDPRINTF ((stderr, "Entering state %d\n", yystate)); +#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ if (yystate == YYFINAL) YYACCEPT; goto yybackup; + /*-----------. | yybackup. | `-----------*/ yybackup: - /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ @@ -2554,15 +2705,13 @@ yybackup: /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); - - /* Discard the shifted token. */ - yychar = YYEMPTY; - yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END + /* Discard the shifted token. */ + yychar = YYEMPTY; goto yynewstate; @@ -2577,7 +2726,7 @@ yydefault: /*-----------------------------. -| yyreduce -- Do a reduction. | +| yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ @@ -2597,9 +2746,9 @@ yyreduce: YY_REDUCE_PRINT (yyn); switch (yyn) { - case 2: -#line 327 "parser.y" /* yacc.c:1646 */ - { fix_incomplete(); + case 2: +#line 328 "parser.y" + { fix_incomplete(); check_statements((yyvsp[-1].stmt_list), FALSE); check_all_user_types((yyvsp[-1].stmt_list)); write_header((yyvsp[-1].stmt_list)); @@ -2614,1115 +2763,1115 @@ yyreduce: write_dlldata((yyvsp[-1].stmt_list)); write_local_stubs((yyvsp[-1].stmt_list)); } -#line 2618 "parser.tab.c" /* yacc.c:1646 */ +#line 2767 "parser.tab.c" break; case 5: -#line 346 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = NULL; } -#line 2624 "parser.tab.c" /* yacc.c:1646 */ +#line 347 "parser.y" + { (yyval.stmt_list) = NULL; } +#line 2773 "parser.tab.c" break; case 6: -#line 347 "parser.y" /* yacc.c:1646 */ - { push_namespace((yyvsp[-1].str)); } -#line 2630 "parser.tab.c" /* yacc.c:1646 */ +#line 348 "parser.y" + { push_namespace((yyvsp[-1].str)); } +#line 2779 "parser.tab.c" break; case 7: -#line 348 "parser.y" /* yacc.c:1646 */ - { pop_namespace((yyvsp[-4].str)); (yyval.stmt_list) = append_statements((yyvsp[-5].stmt_list), (yyvsp[-1].stmt_list)); } -#line 2636 "parser.tab.c" /* yacc.c:1646 */ +#line 349 "parser.y" + { pop_namespace((yyvsp[-4].str)); (yyval.stmt_list) = append_statements((yyvsp[-5].stmt_list), (yyvsp[-1].stmt_list)); } +#line 2785 "parser.tab.c" break; case 8: -#line 349 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_reference((yyvsp[0].type))); } -#line 2642 "parser.tab.c" /* yacc.c:1646 */ +#line 350 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_reference((yyvsp[0].type))); } +#line 2791 "parser.tab.c" break; case 9: -#line 350 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); } -#line 2648 "parser.tab.c" /* yacc.c:1646 */ +#line 351 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); } +#line 2797 "parser.tab.c" break; case 10: -#line 351 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = (yyvsp[-2].stmt_list); +#line 352 "parser.y" + { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 2656 "parser.tab.c" /* yacc.c:1646 */ +#line 2805 "parser.tab.c" break; case 11: -#line 354 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); +#line 355 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); reg_type((yyvsp[0].type), (yyvsp[0].type)->name, current_namespace, 0); } -#line 2664 "parser.tab.c" /* yacc.c:1646 */ +#line 2813 "parser.tab.c" break; case 12: -#line 357 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_module((yyvsp[0].type))); } -#line 2670 "parser.tab.c" /* yacc.c:1646 */ +#line 358 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_module((yyvsp[0].type))); } +#line 2819 "parser.tab.c" break; case 13: -#line 358 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_library((yyvsp[0].typelib))); } -#line 2676 "parser.tab.c" /* yacc.c:1646 */ +#line 359 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_library((yyvsp[0].typelib))); } +#line 2825 "parser.tab.c" break; case 14: -#line 359 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); } -#line 2682 "parser.tab.c" /* yacc.c:1646 */ +#line 360 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); } +#line 2831 "parser.tab.c" break; case 15: -#line 362 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = NULL; } -#line 2688 "parser.tab.c" /* yacc.c:1646 */ +#line 363 "parser.y" + { (yyval.stmt_list) = NULL; } +#line 2837 "parser.tab.c" break; case 16: -#line 363 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_reference((yyvsp[0].type))); } -#line 2694 "parser.tab.c" /* yacc.c:1646 */ +#line 364 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_reference((yyvsp[0].type))); } +#line 2843 "parser.tab.c" break; case 17: -#line 364 "parser.y" /* yacc.c:1646 */ - { push_namespace((yyvsp[-1].str)); } -#line 2700 "parser.tab.c" /* yacc.c:1646 */ +#line 365 "parser.y" + { push_namespace((yyvsp[-1].str)); } +#line 2849 "parser.tab.c" break; case 18: -#line 365 "parser.y" /* yacc.c:1646 */ - { pop_namespace((yyvsp[-4].str)); (yyval.stmt_list) = append_statements((yyvsp[-5].stmt_list), (yyvsp[-1].stmt_list)); } -#line 2706 "parser.tab.c" /* yacc.c:1646 */ +#line 366 "parser.y" + { pop_namespace((yyvsp[-4].str)); (yyval.stmt_list) = append_statements((yyvsp[-5].stmt_list), (yyvsp[-1].stmt_list)); } +#line 2855 "parser.tab.c" break; case 19: -#line 366 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); } -#line 2712 "parser.tab.c" /* yacc.c:1646 */ +#line 367 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); } +#line 2861 "parser.tab.c" break; case 20: -#line 367 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 2718 "parser.tab.c" /* yacc.c:1646 */ +#line 368 "parser.y" + { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } +#line 2867 "parser.tab.c" break; case 21: -#line 368 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); +#line 369 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); reg_type((yyvsp[0].type), (yyvsp[0].type)->name, current_namespace, 0); } -#line 2726 "parser.tab.c" /* yacc.c:1646 */ +#line 2875 "parser.tab.c" break; case 22: -#line 371 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_module((yyvsp[0].type))); } -#line 2732 "parser.tab.c" /* yacc.c:1646 */ +#line 372 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_module((yyvsp[0].type))); } +#line 2881 "parser.tab.c" break; case 23: -#line 372 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); } -#line 2738 "parser.tab.c" /* yacc.c:1646 */ +#line 373 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); } +#line 2887 "parser.tab.c" break; case 24: -#line 373 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_importlib((yyvsp[0].str))); } -#line 2744 "parser.tab.c" /* yacc.c:1646 */ +#line 374 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_importlib((yyvsp[0].str))); } +#line 2893 "parser.tab.c" break; case 25: -#line 374 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_library((yyvsp[0].typelib))); } -#line 2750 "parser.tab.c" /* yacc.c:1646 */ +#line 375 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_library((yyvsp[0].typelib))); } +#line 2899 "parser.tab.c" break; case 26: -#line 377 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = NULL; } -#line 2756 "parser.tab.c" /* yacc.c:1646 */ +#line 378 "parser.y" + { (yyval.stmt_list) = NULL; } +#line 2905 "parser.tab.c" break; case 27: -#line 378 "parser.y" /* yacc.c:1646 */ - { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); } -#line 2762 "parser.tab.c" /* yacc.c:1646 */ +#line 379 "parser.y" + { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); } +#line 2911 "parser.tab.c" break; case 30: -#line 386 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = make_statement_cppquote((yyvsp[0].str)); } -#line 2768 "parser.tab.c" /* yacc.c:1646 */ +#line 387 "parser.y" + { (yyval.statement) = make_statement_cppquote((yyvsp[0].str)); } +#line 2917 "parser.tab.c" break; case 31: -#line 387 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = make_statement_type_decl((yyvsp[-1].type)); } -#line 2774 "parser.tab.c" /* yacc.c:1646 */ +#line 388 "parser.y" + { (yyval.statement) = make_statement_type_decl((yyvsp[-1].type)); } +#line 2923 "parser.tab.c" break; case 32: -#line 388 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = make_statement_declaration((yyvsp[-1].var)); } -#line 2780 "parser.tab.c" /* yacc.c:1646 */ +#line 389 "parser.y" + { (yyval.statement) = make_statement_declaration((yyvsp[-1].var)); } +#line 2929 "parser.tab.c" break; case 33: -#line 389 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = make_statement_import((yyvsp[0].str)); } -#line 2786 "parser.tab.c" /* yacc.c:1646 */ +#line 390 "parser.y" + { (yyval.statement) = make_statement_import((yyvsp[0].str)); } +#line 2935 "parser.tab.c" break; case 34: -#line 390 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = (yyvsp[-1].statement); } -#line 2792 "parser.tab.c" /* yacc.c:1646 */ +#line 391 "parser.y" + { (yyval.statement) = (yyvsp[-1].statement); } +#line 2941 "parser.tab.c" break; case 35: -#line 391 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = make_statement_pragma((yyvsp[0].str)); } -#line 2798 "parser.tab.c" /* yacc.c:1646 */ +#line 392 "parser.y" + { (yyval.statement) = make_statement_pragma((yyvsp[0].str)); } +#line 2947 "parser.tab.c" break; case 36: -#line 392 "parser.y" /* yacc.c:1646 */ - { (yyval.statement) = NULL; } -#line 2804 "parser.tab.c" /* yacc.c:1646 */ +#line 393 "parser.y" + { (yyval.statement) = NULL; } +#line 2953 "parser.tab.c" break; case 37: -#line 396 "parser.y" /* yacc.c:1646 */ - { +#line 397 "parser.y" + { int result; (yyval.statement) = NULL; result = do_warning((yyvsp[-3].str), (yyvsp[-1].warning_list)); if(!result) error_loc("expected \"disable\" or \"enable\"\n"); } -#line 2816 "parser.tab.c" /* yacc.c:1646 */ +#line 2965 "parser.tab.c" break; case 38: -#line 406 "parser.y" /* yacc.c:1646 */ - { (yyval.warning_list) = append_warning(NULL, (yyvsp[0].num)); } -#line 2822 "parser.tab.c" /* yacc.c:1646 */ +#line 407 "parser.y" + { (yyval.warning_list) = append_warning(NULL, (yyvsp[0].num)); } +#line 2971 "parser.tab.c" break; case 39: -#line 407 "parser.y" /* yacc.c:1646 */ - { (yyval.warning_list) = append_warning((yyvsp[-1].warning_list), (yyvsp[0].num)); } -#line 2828 "parser.tab.c" /* yacc.c:1646 */ +#line 408 "parser.y" + { (yyval.warning_list) = append_warning((yyvsp[-1].warning_list), (yyvsp[0].num)); } +#line 2977 "parser.tab.c" break; case 41: -#line 412 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_enum((yyvsp[0].str), current_namespace, FALSE, NULL); } -#line 2834 "parser.tab.c" /* yacc.c:1646 */ +#line 413 "parser.y" + { (yyval.type) = type_new_enum((yyvsp[0].str), current_namespace, FALSE, NULL); } +#line 2983 "parser.tab.c" break; case 43: -#line 414 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_struct((yyvsp[0].str), current_namespace, FALSE, NULL); } -#line 2840 "parser.tab.c" /* yacc.c:1646 */ +#line 415 "parser.y" + { (yyval.type) = type_new_struct((yyvsp[0].str), current_namespace, FALSE, NULL); } +#line 2989 "parser.tab.c" break; case 45: -#line 416 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[0].str), FALSE, NULL); } -#line 2846 "parser.tab.c" /* yacc.c:1646 */ +#line 417 "parser.y" + { (yyval.type) = type_new_nonencapsulated_union((yyvsp[0].str), FALSE, NULL); } +#line 2995 "parser.tab.c" break; case 46: -#line 417 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_enum_attrs((yyvsp[-1].attr_list)); } -#line 2852 "parser.tab.c" /* yacc.c:1646 */ +#line 418 "parser.y" + { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_enum_attrs((yyvsp[-1].attr_list)); } +#line 3001 "parser.tab.c" break; case 47: -#line 418 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_struct_attrs((yyvsp[-1].attr_list)); } -#line 2858 "parser.tab.c" /* yacc.c:1646 */ +#line 419 "parser.y" + { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_struct_attrs((yyvsp[-1].attr_list)); } +#line 3007 "parser.tab.c" break; case 48: -#line 419 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_union_attrs((yyvsp[-1].attr_list)); } -#line 2864 "parser.tab.c" /* yacc.c:1646 */ +#line 420 "parser.y" + { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_union_attrs((yyvsp[-1].attr_list)); } +#line 3013 "parser.tab.c" break; case 49: -#line 422 "parser.y" /* yacc.c:1646 */ - { (yyval.str) = (yyvsp[-1].str); } -#line 2870 "parser.tab.c" /* yacc.c:1646 */ +#line 423 "parser.y" + { (yyval.str) = (yyvsp[-1].str); } +#line 3019 "parser.tab.c" break; case 50: -#line 424 "parser.y" /* yacc.c:1646 */ - { assert(yychar == YYEMPTY); +#line 425 "parser.y" + { assert(yychar == YYEMPTY); (yyval.import) = xmalloc(sizeof(struct _import_t)); (yyval.import)->name = (yyvsp[-1].str); (yyval.import)->import_performed = do_import((yyvsp[-1].str)); if (!(yyval.import)->import_performed) yychar = aEOF; } -#line 2881 "parser.tab.c" /* yacc.c:1646 */ +#line 3030 "parser.tab.c" break; case 51: -#line 432 "parser.y" /* yacc.c:1646 */ - { (yyval.str) = (yyvsp[-2].import)->name; +#line 433 "parser.y" + { (yyval.str) = (yyvsp[-2].import)->name; if ((yyvsp[-2].import)->import_performed) pop_import(); free((yyvsp[-2].import)); } -#line 2890 "parser.tab.c" /* yacc.c:1646 */ +#line 3039 "parser.tab.c" break; case 52: -#line 440 "parser.y" /* yacc.c:1646 */ - { (yyval.str) = (yyvsp[-2].str); if(!parse_only) add_importlib((yyvsp[-2].str)); } -#line 2896 "parser.tab.c" /* yacc.c:1646 */ +#line 441 "parser.y" + { (yyval.str) = (yyvsp[-2].str); if(!parse_only) add_importlib((yyvsp[-2].str)); } +#line 3045 "parser.tab.c" break; case 53: -#line 446 "parser.y" /* yacc.c:1646 */ - { (yyval.str) = (yyvsp[0].str); } -#line 2902 "parser.tab.c" /* yacc.c:1646 */ +#line 447 "parser.y" + { (yyval.str) = (yyvsp[0].str); } +#line 3051 "parser.tab.c" break; case 54: -#line 447 "parser.y" /* yacc.c:1646 */ - { (yyval.str) = (yyvsp[0].str); } -#line 2908 "parser.tab.c" /* yacc.c:1646 */ +#line 448 "parser.y" + { (yyval.str) = (yyvsp[0].str); } +#line 3057 "parser.tab.c" break; case 55: -#line 449 "parser.y" /* yacc.c:1646 */ - { (yyval.typelib) = make_library((yyvsp[-1].str), check_library_attrs((yyvsp[-1].str), (yyvsp[-2].attr_list))); +#line 450 "parser.y" + { (yyval.typelib) = make_library((yyvsp[-1].str), check_library_attrs((yyvsp[-1].str), (yyvsp[-2].attr_list))); /* ifdef __REACTOS__ */ if (!parse_only) start_typelib((yyval.typelib)); /* else if (!parse_only && do_typelib) current_typelib = $$; */ } -#line 2920 "parser.tab.c" /* yacc.c:1646 */ +#line 3069 "parser.tab.c" break; case 56: -#line 459 "parser.y" /* yacc.c:1646 */ - { (yyval.typelib) = (yyvsp[-3].typelib); +#line 460 "parser.y" + { (yyval.typelib) = (yyvsp[-3].typelib); (yyval.typelib)->stmts = (yyvsp[-2].stmt_list); if (!parse_only) end_typelib(); } -#line 2929 "parser.tab.c" /* yacc.c:1646 */ +#line 3078 "parser.tab.c" break; case 57: -#line 468 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = NULL; } -#line 2935 "parser.tab.c" /* yacc.c:1646 */ +#line 469 "parser.y" + { (yyval.var_list) = NULL; } +#line 3084 "parser.tab.c" break; case 59: -#line 472 "parser.y" /* yacc.c:1646 */ - { check_arg_attrs((yyvsp[0].var)); (yyval.var_list) = append_var( NULL, (yyvsp[0].var) ); } -#line 2941 "parser.tab.c" /* yacc.c:1646 */ +#line 473 "parser.y" + { check_arg_attrs((yyvsp[0].var)); (yyval.var_list) = append_var( NULL, (yyvsp[0].var) ); } +#line 3090 "parser.tab.c" break; case 60: -#line 473 "parser.y" /* yacc.c:1646 */ - { check_arg_attrs((yyvsp[0].var)); (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[0].var) ); } -#line 2947 "parser.tab.c" /* yacc.c:1646 */ +#line 474 "parser.y" + { check_arg_attrs((yyvsp[0].var)); (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[0].var) ); } +#line 3096 "parser.tab.c" break; case 62: -#line 477 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = append_var( (yyvsp[-2].var_list), make_var(strdup("...")) ); } -#line 2953 "parser.tab.c" /* yacc.c:1646 */ +#line 478 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[-2].var_list), make_var(strdup("...")) ); } +#line 3102 "parser.tab.c" break; case 63: -#line 481 "parser.y" /* yacc.c:1646 */ - { if ((yyvsp[-1].declspec)->stgclass != STG_NONE && (yyvsp[-1].declspec)->stgclass != STG_REGISTER) +#line 482 "parser.y" + { if ((yyvsp[-1].declspec)->stgclass != STG_NONE && (yyvsp[-1].declspec)->stgclass != STG_REGISTER) error_loc("invalid storage class for function parameter\n"); (yyval.var) = declare_var((yyvsp[-2].attr_list), (yyvsp[-1].declspec), (yyvsp[0].declarator), TRUE); free((yyvsp[-1].declspec)); free((yyvsp[0].declarator)); } -#line 2963 "parser.tab.c" /* yacc.c:1646 */ +#line 3112 "parser.tab.c" break; case 64: -#line 486 "parser.y" /* yacc.c:1646 */ - { if ((yyvsp[-1].declspec)->stgclass != STG_NONE && (yyvsp[-1].declspec)->stgclass != STG_REGISTER) +#line 487 "parser.y" + { if ((yyvsp[-1].declspec)->stgclass != STG_NONE && (yyvsp[-1].declspec)->stgclass != STG_REGISTER) error_loc("invalid storage class for function parameter\n"); (yyval.var) = declare_var(NULL, (yyvsp[-1].declspec), (yyvsp[0].declarator), TRUE); free((yyvsp[-1].declspec)); free((yyvsp[0].declarator)); } -#line 2973 "parser.tab.c" /* yacc.c:1646 */ +#line 3122 "parser.tab.c" break; case 65: -#line 493 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[-1].expr); +#line 494 "parser.y" + { (yyval.expr) = (yyvsp[-1].expr); if (!(yyval.expr)->is_const || (yyval.expr)->cval <= 0) error_loc("array dimension is not a positive integer constant\n"); } -#line 2982 "parser.tab.c" /* yacc.c:1646 */ +#line 3131 "parser.tab.c" break; case 66: -#line 497 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr(EXPR_VOID); } -#line 2988 "parser.tab.c" /* yacc.c:1646 */ +#line 498 "parser.y" + { (yyval.expr) = make_expr(EXPR_VOID); } +#line 3137 "parser.tab.c" break; case 67: -#line 498 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr(EXPR_VOID); } -#line 2994 "parser.tab.c" /* yacc.c:1646 */ +#line 499 "parser.y" + { (yyval.expr) = make_expr(EXPR_VOID); } +#line 3143 "parser.tab.c" break; case 68: -#line 501 "parser.y" /* yacc.c:1646 */ - { (yyval.attr_list) = NULL; } -#line 3000 "parser.tab.c" /* yacc.c:1646 */ +#line 502 "parser.y" + { (yyval.attr_list) = NULL; } +#line 3149 "parser.tab.c" break; case 70: -#line 506 "parser.y" /* yacc.c:1646 */ - { (yyval.attr_list) = (yyvsp[-1].attr_list); } -#line 3006 "parser.tab.c" /* yacc.c:1646 */ +#line 507 "parser.y" + { (yyval.attr_list) = (yyvsp[-1].attr_list); } +#line 3155 "parser.tab.c" break; case 71: -#line 509 "parser.y" /* yacc.c:1646 */ - { (yyval.attr_list) = append_attr( NULL, (yyvsp[0].attr) ); } -#line 3012 "parser.tab.c" /* yacc.c:1646 */ +#line 510 "parser.y" + { (yyval.attr_list) = append_attr( NULL, (yyvsp[0].attr) ); } +#line 3161 "parser.tab.c" break; case 72: -#line 510 "parser.y" /* yacc.c:1646 */ - { (yyval.attr_list) = append_attr( (yyvsp[-2].attr_list), (yyvsp[0].attr) ); } -#line 3018 "parser.tab.c" /* yacc.c:1646 */ +#line 511 "parser.y" + { (yyval.attr_list) = append_attr( (yyvsp[-2].attr_list), (yyvsp[0].attr) ); } +#line 3167 "parser.tab.c" break; case 73: -#line 511 "parser.y" /* yacc.c:1646 */ - { (yyval.attr_list) = append_attr( (yyvsp[-3].attr_list), (yyvsp[0].attr) ); } -#line 3024 "parser.tab.c" /* yacc.c:1646 */ +#line 512 "parser.y" + { (yyval.attr_list) = append_attr( (yyvsp[-3].attr_list), (yyvsp[0].attr) ); } +#line 3173 "parser.tab.c" break; case 74: -#line 514 "parser.y" /* yacc.c:1646 */ - { (yyval.str_list) = append_str( NULL, (yyvsp[0].str) ); } -#line 3030 "parser.tab.c" /* yacc.c:1646 */ +#line 515 "parser.y" + { (yyval.str_list) = append_str( NULL, (yyvsp[0].str) ); } +#line 3179 "parser.tab.c" break; case 75: -#line 515 "parser.y" /* yacc.c:1646 */ - { (yyval.str_list) = append_str( (yyvsp[-2].str_list), (yyvsp[0].str) ); } -#line 3036 "parser.tab.c" /* yacc.c:1646 */ +#line 516 "parser.y" + { (yyval.str_list) = append_str( (yyvsp[-2].str_list), (yyvsp[0].str) ); } +#line 3185 "parser.tab.c" break; case 76: -#line 518 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = NULL; } -#line 3042 "parser.tab.c" /* yacc.c:1646 */ +#line 519 "parser.y" + { (yyval.attr) = NULL; } +#line 3191 "parser.tab.c" break; case 77: -#line 519 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_AGGREGATABLE); } -#line 3048 "parser.tab.c" /* yacc.c:1646 */ +#line 520 "parser.y" + { (yyval.attr) = make_attr(ATTR_AGGREGATABLE); } +#line 3197 "parser.tab.c" break; case 78: -#line 520 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_ANNOTATION, (yyvsp[-1].str)); } -#line 3054 "parser.tab.c" /* yacc.c:1646 */ +#line 521 "parser.y" + { (yyval.attr) = make_attrp(ATTR_ANNOTATION, (yyvsp[-1].str)); } +#line 3203 "parser.tab.c" break; case 79: -#line 521 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_APPOBJECT); } -#line 3060 "parser.tab.c" /* yacc.c:1646 */ +#line 522 "parser.y" + { (yyval.attr) = make_attr(ATTR_APPOBJECT); } +#line 3209 "parser.tab.c" break; case 80: -#line 522 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_ASYNC); } -#line 3066 "parser.tab.c" /* yacc.c:1646 */ +#line 523 "parser.y" + { (yyval.attr) = make_attr(ATTR_ASYNC); } +#line 3215 "parser.tab.c" break; case 81: -#line 523 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_AUTO_HANDLE); } -#line 3072 "parser.tab.c" /* yacc.c:1646 */ +#line 524 "parser.y" + { (yyval.attr) = make_attr(ATTR_AUTO_HANDLE); } +#line 3221 "parser.tab.c" break; case 82: -#line 524 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_BINDABLE); } -#line 3078 "parser.tab.c" /* yacc.c:1646 */ +#line 525 "parser.y" + { (yyval.attr) = make_attr(ATTR_BINDABLE); } +#line 3227 "parser.tab.c" break; case 83: -#line 525 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_BROADCAST); } -#line 3084 "parser.tab.c" /* yacc.c:1646 */ +#line 526 "parser.y" + { (yyval.attr) = make_attr(ATTR_BROADCAST); } +#line 3233 "parser.tab.c" break; case 84: -#line 526 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_CALLAS, (yyvsp[-1].var)); } -#line 3090 "parser.tab.c" /* yacc.c:1646 */ +#line 527 "parser.y" + { (yyval.attr) = make_attrp(ATTR_CALLAS, (yyvsp[-1].var)); } +#line 3239 "parser.tab.c" break; case 85: -#line 527 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_CASE, (yyvsp[-1].expr_list)); } -#line 3096 "parser.tab.c" /* yacc.c:1646 */ +#line 528 "parser.y" + { (yyval.attr) = make_attrp(ATTR_CASE, (yyvsp[-1].expr_list)); } +#line 3245 "parser.tab.c" break; case 86: -#line 528 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_CODE); } -#line 3102 "parser.tab.c" /* yacc.c:1646 */ +#line 529 "parser.y" + { (yyval.attr) = make_attr(ATTR_CODE); } +#line 3251 "parser.tab.c" break; case 87: -#line 529 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_COMMSTATUS); } -#line 3108 "parser.tab.c" /* yacc.c:1646 */ +#line 530 "parser.y" + { (yyval.attr) = make_attr(ATTR_COMMSTATUS); } +#line 3257 "parser.tab.c" break; case 88: -#line 530 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); } -#line 3114 "parser.tab.c" /* yacc.c:1646 */ +#line 531 "parser.y" + { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); } +#line 3263 "parser.tab.c" break; case 89: -#line 531 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ } -#line 3120 "parser.tab.c" /* yacc.c:1646 */ +#line 532 "parser.y" + { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ } +#line 3269 "parser.tab.c" break; case 90: -#line 532 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ } -#line 3126 "parser.tab.c" /* yacc.c:1646 */ +#line 533 "parser.y" + { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ } +#line 3275 "parser.tab.c" break; case 91: -#line 533 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_CONTROL); } -#line 3132 "parser.tab.c" /* yacc.c:1646 */ +#line 534 "parser.y" + { (yyval.attr) = make_attr(ATTR_CONTROL); } +#line 3281 "parser.tab.c" break; case 92: -#line 534 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_DECODE); } -#line 3138 "parser.tab.c" /* yacc.c:1646 */ +#line 535 "parser.y" + { (yyval.attr) = make_attr(ATTR_DECODE); } +#line 3287 "parser.tab.c" break; case 93: -#line 535 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_DEFAULT); } -#line 3144 "parser.tab.c" /* yacc.c:1646 */ +#line 536 "parser.y" + { (yyval.attr) = make_attr(ATTR_DEFAULT); } +#line 3293 "parser.tab.c" break; case 94: -#line 536 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_DEFAULTBIND); } -#line 3150 "parser.tab.c" /* yacc.c:1646 */ +#line 537 "parser.y" + { (yyval.attr) = make_attr(ATTR_DEFAULTBIND); } +#line 3299 "parser.tab.c" break; case 95: -#line 537 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_DEFAULTCOLLELEM); } -#line 3156 "parser.tab.c" /* yacc.c:1646 */ +#line 538 "parser.y" + { (yyval.attr) = make_attr(ATTR_DEFAULTCOLLELEM); } +#line 3305 "parser.tab.c" break; case 96: -#line 538 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_DEFAULTVALUE, (yyvsp[-1].expr)); } -#line 3162 "parser.tab.c" /* yacc.c:1646 */ +#line 539 "parser.y" + { (yyval.attr) = make_attrp(ATTR_DEFAULTVALUE, (yyvsp[-1].expr)); } +#line 3311 "parser.tab.c" break; case 97: -#line 539 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_DEFAULTVTABLE); } -#line 3168 "parser.tab.c" /* yacc.c:1646 */ +#line 540 "parser.y" + { (yyval.attr) = make_attr(ATTR_DEFAULTVTABLE); } +#line 3317 "parser.tab.c" break; case 98: -#line 540 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_DISABLECONSISTENCYCHECK); } -#line 3174 "parser.tab.c" /* yacc.c:1646 */ +#line 541 "parser.y" + { (yyval.attr) = make_attr(ATTR_DISABLECONSISTENCYCHECK); } +#line 3323 "parser.tab.c" break; case 99: -#line 541 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_DISPLAYBIND); } -#line 3180 "parser.tab.c" /* yacc.c:1646 */ +#line 542 "parser.y" + { (yyval.attr) = make_attr(ATTR_DISPLAYBIND); } +#line 3329 "parser.tab.c" break; case 100: -#line 542 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_DLLNAME, (yyvsp[-1].str)); } -#line 3186 "parser.tab.c" /* yacc.c:1646 */ +#line 543 "parser.y" + { (yyval.attr) = make_attrp(ATTR_DLLNAME, (yyvsp[-1].str)); } +#line 3335 "parser.tab.c" break; case 101: -#line 543 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_DUAL); } -#line 3192 "parser.tab.c" /* yacc.c:1646 */ +#line 544 "parser.y" + { (yyval.attr) = make_attr(ATTR_DUAL); } +#line 3341 "parser.tab.c" break; case 102: -#line 544 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_ENABLEALLOCATE); } -#line 3198 "parser.tab.c" /* yacc.c:1646 */ +#line 545 "parser.y" + { (yyval.attr) = make_attr(ATTR_ENABLEALLOCATE); } +#line 3347 "parser.tab.c" break; case 103: -#line 545 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_ENCODE); } -#line 3204 "parser.tab.c" /* yacc.c:1646 */ +#line 546 "parser.y" + { (yyval.attr) = make_attr(ATTR_ENCODE); } +#line 3353 "parser.tab.c" break; case 104: -#line 546 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_ENDPOINT, (yyvsp[-1].str_list)); } -#line 3210 "parser.tab.c" /* yacc.c:1646 */ +#line 547 "parser.y" + { (yyval.attr) = make_attrp(ATTR_ENDPOINT, (yyvsp[-1].str_list)); } +#line 3359 "parser.tab.c" break; case 105: -#line 547 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_ENTRY, (yyvsp[-1].expr)); } -#line 3216 "parser.tab.c" /* yacc.c:1646 */ +#line 548 "parser.y" + { (yyval.attr) = make_attrp(ATTR_ENTRY, (yyvsp[-1].expr)); } +#line 3365 "parser.tab.c" break; case 106: -#line 548 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_EXPLICIT_HANDLE); } -#line 3222 "parser.tab.c" /* yacc.c:1646 */ +#line 549 "parser.y" + { (yyval.attr) = make_attr(ATTR_EXPLICIT_HANDLE); } +#line 3371 "parser.tab.c" break; case 107: -#line 549 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_FAULTSTATUS); } -#line 3228 "parser.tab.c" /* yacc.c:1646 */ +#line 550 "parser.y" + { (yyval.attr) = make_attr(ATTR_FAULTSTATUS); } +#line 3377 "parser.tab.c" break; case 108: -#line 550 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_FORCEALLOCATE); } -#line 3234 "parser.tab.c" /* yacc.c:1646 */ +#line 551 "parser.y" + { (yyval.attr) = make_attr(ATTR_FORCEALLOCATE); } +#line 3383 "parser.tab.c" break; case 109: -#line 551 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_HANDLE); } -#line 3240 "parser.tab.c" /* yacc.c:1646 */ +#line 552 "parser.y" + { (yyval.attr) = make_attr(ATTR_HANDLE); } +#line 3389 "parser.tab.c" break; case 110: -#line 552 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_HELPCONTEXT, (yyvsp[-1].expr)); } -#line 3246 "parser.tab.c" /* yacc.c:1646 */ +#line 553 "parser.y" + { (yyval.attr) = make_attrp(ATTR_HELPCONTEXT, (yyvsp[-1].expr)); } +#line 3395 "parser.tab.c" break; case 111: -#line 553 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_HELPFILE, (yyvsp[-1].str)); } -#line 3252 "parser.tab.c" /* yacc.c:1646 */ +#line 554 "parser.y" + { (yyval.attr) = make_attrp(ATTR_HELPFILE, (yyvsp[-1].str)); } +#line 3401 "parser.tab.c" break; case 112: -#line 554 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_HELPSTRING, (yyvsp[-1].str)); } -#line 3258 "parser.tab.c" /* yacc.c:1646 */ +#line 555 "parser.y" + { (yyval.attr) = make_attrp(ATTR_HELPSTRING, (yyvsp[-1].str)); } +#line 3407 "parser.tab.c" break; case 113: -#line 555 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_HELPSTRINGCONTEXT, (yyvsp[-1].expr)); } -#line 3264 "parser.tab.c" /* yacc.c:1646 */ +#line 556 "parser.y" + { (yyval.attr) = make_attrp(ATTR_HELPSTRINGCONTEXT, (yyvsp[-1].expr)); } +#line 3413 "parser.tab.c" break; case 114: -#line 556 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_HELPSTRINGDLL, (yyvsp[-1].str)); } -#line 3270 "parser.tab.c" /* yacc.c:1646 */ +#line 557 "parser.y" + { (yyval.attr) = make_attrp(ATTR_HELPSTRINGDLL, (yyvsp[-1].str)); } +#line 3419 "parser.tab.c" break; case 115: -#line 557 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_HIDDEN); } -#line 3276 "parser.tab.c" /* yacc.c:1646 */ +#line 558 "parser.y" + { (yyval.attr) = make_attr(ATTR_HIDDEN); } +#line 3425 "parser.tab.c" break; case 116: -#line 558 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_ID, (yyvsp[-1].expr)); } -#line 3282 "parser.tab.c" /* yacc.c:1646 */ +#line 559 "parser.y" + { (yyval.attr) = make_attrp(ATTR_ID, (yyvsp[-1].expr)); } +#line 3431 "parser.tab.c" break; case 117: -#line 559 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_IDEMPOTENT); } -#line 3288 "parser.tab.c" /* yacc.c:1646 */ +#line 560 "parser.y" + { (yyval.attr) = make_attr(ATTR_IDEMPOTENT); } +#line 3437 "parser.tab.c" break; case 118: -#line 560 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_IGNORE); } -#line 3294 "parser.tab.c" /* yacc.c:1646 */ +#line 561 "parser.y" + { (yyval.attr) = make_attr(ATTR_IGNORE); } +#line 3443 "parser.tab.c" break; case 119: -#line 561 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_IIDIS, (yyvsp[-1].expr)); } -#line 3300 "parser.tab.c" /* yacc.c:1646 */ +#line 562 "parser.y" + { (yyval.attr) = make_attrp(ATTR_IIDIS, (yyvsp[-1].expr)); } +#line 3449 "parser.tab.c" break; case 120: -#line 562 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_IMMEDIATEBIND); } -#line 3306 "parser.tab.c" /* yacc.c:1646 */ +#line 563 "parser.y" + { (yyval.attr) = make_attr(ATTR_IMMEDIATEBIND); } +#line 3455 "parser.tab.c" break; case 121: -#line 563 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_IMPLICIT_HANDLE, (yyvsp[-1].var)); } -#line 3312 "parser.tab.c" /* yacc.c:1646 */ +#line 564 "parser.y" + { (yyval.attr) = make_attrp(ATTR_IMPLICIT_HANDLE, (yyvsp[-1].var)); } +#line 3461 "parser.tab.c" break; case 122: -#line 564 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_IN); } -#line 3318 "parser.tab.c" /* yacc.c:1646 */ +#line 565 "parser.y" + { (yyval.attr) = make_attr(ATTR_IN); } +#line 3467 "parser.tab.c" break; case 123: -#line 565 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_INPUTSYNC); } -#line 3324 "parser.tab.c" /* yacc.c:1646 */ +#line 566 "parser.y" + { (yyval.attr) = make_attr(ATTR_INPUTSYNC); } +#line 3473 "parser.tab.c" break; case 124: -#line 566 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_LENGTHIS, (yyvsp[-1].expr_list)); } -#line 3330 "parser.tab.c" /* yacc.c:1646 */ +#line 567 "parser.y" + { (yyval.attr) = make_attrp(ATTR_LENGTHIS, (yyvsp[-1].expr_list)); } +#line 3479 "parser.tab.c" break; case 125: -#line 567 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_LIBLCID, (yyvsp[-1].expr)); } -#line 3336 "parser.tab.c" /* yacc.c:1646 */ +#line 568 "parser.y" + { (yyval.attr) = make_attrp(ATTR_LIBLCID, (yyvsp[-1].expr)); } +#line 3485 "parser.tab.c" break; case 126: -#line 568 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_PARAMLCID); } -#line 3342 "parser.tab.c" /* yacc.c:1646 */ +#line 569 "parser.y" + { (yyval.attr) = make_attr(ATTR_PARAMLCID); } +#line 3491 "parser.tab.c" break; case 127: -#line 569 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_LICENSED); } -#line 3348 "parser.tab.c" /* yacc.c:1646 */ +#line 570 "parser.y" + { (yyval.attr) = make_attr(ATTR_LICENSED); } +#line 3497 "parser.tab.c" break; case 128: -#line 570 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_LOCAL); } -#line 3354 "parser.tab.c" /* yacc.c:1646 */ +#line 571 "parser.y" + { (yyval.attr) = make_attr(ATTR_LOCAL); } +#line 3503 "parser.tab.c" break; case 129: -#line 571 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_MAYBE); } -#line 3360 "parser.tab.c" /* yacc.c:1646 */ +#line 572 "parser.y" + { (yyval.attr) = make_attr(ATTR_MAYBE); } +#line 3509 "parser.tab.c" break; case 130: -#line 572 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_MESSAGE); } -#line 3366 "parser.tab.c" /* yacc.c:1646 */ +#line 573 "parser.y" + { (yyval.attr) = make_attr(ATTR_MESSAGE); } +#line 3515 "parser.tab.c" break; case 131: -#line 573 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_NOCODE); } -#line 3372 "parser.tab.c" /* yacc.c:1646 */ +#line 574 "parser.y" + { (yyval.attr) = make_attr(ATTR_NOCODE); } +#line 3521 "parser.tab.c" break; case 132: -#line 574 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_NONBROWSABLE); } -#line 3378 "parser.tab.c" /* yacc.c:1646 */ +#line 575 "parser.y" + { (yyval.attr) = make_attr(ATTR_NONBROWSABLE); } +#line 3527 "parser.tab.c" break; case 133: -#line 575 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_NONCREATABLE); } -#line 3384 "parser.tab.c" /* yacc.c:1646 */ +#line 576 "parser.y" + { (yyval.attr) = make_attr(ATTR_NONCREATABLE); } +#line 3533 "parser.tab.c" break; case 134: -#line 576 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_NONEXTENSIBLE); } -#line 3390 "parser.tab.c" /* yacc.c:1646 */ +#line 577 "parser.y" + { (yyval.attr) = make_attr(ATTR_NONEXTENSIBLE); } +#line 3539 "parser.tab.c" break; case 135: -#line 577 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_NOTIFY); } -#line 3396 "parser.tab.c" /* yacc.c:1646 */ +#line 578 "parser.y" + { (yyval.attr) = make_attr(ATTR_NOTIFY); } +#line 3545 "parser.tab.c" break; case 136: -#line 578 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_NOTIFYFLAG); } -#line 3402 "parser.tab.c" /* yacc.c:1646 */ +#line 579 "parser.y" + { (yyval.attr) = make_attr(ATTR_NOTIFYFLAG); } +#line 3551 "parser.tab.c" break; case 137: -#line 579 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_OBJECT); } -#line 3408 "parser.tab.c" /* yacc.c:1646 */ +#line 580 "parser.y" + { (yyval.attr) = make_attr(ATTR_OBJECT); } +#line 3557 "parser.tab.c" break; case 138: -#line 580 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_ODL); } -#line 3414 "parser.tab.c" /* yacc.c:1646 */ +#line 581 "parser.y" + { (yyval.attr) = make_attr(ATTR_ODL); } +#line 3563 "parser.tab.c" break; case 139: -#line 581 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_OLEAUTOMATION); } -#line 3420 "parser.tab.c" /* yacc.c:1646 */ +#line 582 "parser.y" + { (yyval.attr) = make_attr(ATTR_OLEAUTOMATION); } +#line 3569 "parser.tab.c" break; case 140: -#line 582 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_OPTIMIZE, (yyvsp[-1].str)); } -#line 3426 "parser.tab.c" /* yacc.c:1646 */ +#line 583 "parser.y" + { (yyval.attr) = make_attrp(ATTR_OPTIMIZE, (yyvsp[-1].str)); } +#line 3575 "parser.tab.c" break; case 141: -#line 583 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_OPTIONAL); } -#line 3432 "parser.tab.c" /* yacc.c:1646 */ +#line 584 "parser.y" + { (yyval.attr) = make_attr(ATTR_OPTIONAL); } +#line 3581 "parser.tab.c" break; case 142: -#line 584 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_OUT); } -#line 3438 "parser.tab.c" /* yacc.c:1646 */ +#line 585 "parser.y" + { (yyval.attr) = make_attr(ATTR_OUT); } +#line 3587 "parser.tab.c" break; case 143: -#line 585 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_PARTIALIGNORE); } -#line 3444 "parser.tab.c" /* yacc.c:1646 */ +#line 586 "parser.y" + { (yyval.attr) = make_attr(ATTR_PARTIALIGNORE); } +#line 3593 "parser.tab.c" break; case 144: -#line 586 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrv(ATTR_POINTERDEFAULT, (yyvsp[-1].num)); } -#line 3450 "parser.tab.c" /* yacc.c:1646 */ +#line 587 "parser.y" + { (yyval.attr) = make_attrv(ATTR_POINTERDEFAULT, (yyvsp[-1].num)); } +#line 3599 "parser.tab.c" break; case 145: -#line 587 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_PROGID, (yyvsp[-1].str)); } -#line 3456 "parser.tab.c" /* yacc.c:1646 */ +#line 588 "parser.y" + { (yyval.attr) = make_attrp(ATTR_PROGID, (yyvsp[-1].str)); } +#line 3605 "parser.tab.c" break; case 146: -#line 588 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_PROPGET); } -#line 3462 "parser.tab.c" /* yacc.c:1646 */ +#line 589 "parser.y" + { (yyval.attr) = make_attr(ATTR_PROPGET); } +#line 3611 "parser.tab.c" break; case 147: -#line 589 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_PROPPUT); } -#line 3468 "parser.tab.c" /* yacc.c:1646 */ +#line 590 "parser.y" + { (yyval.attr) = make_attr(ATTR_PROPPUT); } +#line 3617 "parser.tab.c" break; case 148: -#line 590 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_PROPPUTREF); } -#line 3474 "parser.tab.c" /* yacc.c:1646 */ +#line 591 "parser.y" + { (yyval.attr) = make_attr(ATTR_PROPPUTREF); } +#line 3623 "parser.tab.c" break; case 149: -#line 591 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_PROXY); } -#line 3480 "parser.tab.c" /* yacc.c:1646 */ +#line 592 "parser.y" + { (yyval.attr) = make_attr(ATTR_PROXY); } +#line 3629 "parser.tab.c" break; case 150: -#line 592 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_PUBLIC); } -#line 3486 "parser.tab.c" /* yacc.c:1646 */ +#line 593 "parser.y" + { (yyval.attr) = make_attr(ATTR_PUBLIC); } +#line 3635 "parser.tab.c" break; case 151: -#line 594 "parser.y" /* yacc.c:1646 */ - { expr_list_t *list = append_expr( NULL, (yyvsp[-3].expr) ); +#line 595 "parser.y" + { expr_list_t *list = append_expr( NULL, (yyvsp[-3].expr) ); list = append_expr( list, (yyvsp[-1].expr) ); (yyval.attr) = make_attrp(ATTR_RANGE, list); } -#line 3494 "parser.tab.c" /* yacc.c:1646 */ +#line 3643 "parser.tab.c" break; case 152: -#line 597 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_READONLY); } -#line 3500 "parser.tab.c" /* yacc.c:1646 */ +#line 598 "parser.y" + { (yyval.attr) = make_attr(ATTR_READONLY); } +#line 3649 "parser.tab.c" break; case 153: -#line 598 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_REPRESENTAS, (yyvsp[-1].type)); } -#line 3506 "parser.tab.c" /* yacc.c:1646 */ +#line 599 "parser.y" + { (yyval.attr) = make_attrp(ATTR_REPRESENTAS, (yyvsp[-1].type)); } +#line 3655 "parser.tab.c" break; case 154: -#line 599 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_REQUESTEDIT); } -#line 3512 "parser.tab.c" /* yacc.c:1646 */ +#line 600 "parser.y" + { (yyval.attr) = make_attr(ATTR_REQUESTEDIT); } +#line 3661 "parser.tab.c" break; case 155: -#line 600 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_RESTRICTED); } -#line 3518 "parser.tab.c" /* yacc.c:1646 */ +#line 601 "parser.y" + { (yyval.attr) = make_attr(ATTR_RESTRICTED); } +#line 3667 "parser.tab.c" break; case 156: -#line 601 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_RETVAL); } -#line 3524 "parser.tab.c" /* yacc.c:1646 */ +#line 602 "parser.y" + { (yyval.attr) = make_attr(ATTR_RETVAL); } +#line 3673 "parser.tab.c" break; case 157: -#line 602 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_SIZEIS, (yyvsp[-1].expr_list)); } -#line 3530 "parser.tab.c" /* yacc.c:1646 */ +#line 603 "parser.y" + { (yyval.attr) = make_attrp(ATTR_SIZEIS, (yyvsp[-1].expr_list)); } +#line 3679 "parser.tab.c" break; case 158: -#line 603 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_SOURCE); } -#line 3536 "parser.tab.c" /* yacc.c:1646 */ +#line 604 "parser.y" + { (yyval.attr) = make_attr(ATTR_SOURCE); } +#line 3685 "parser.tab.c" break; case 159: -#line 604 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_STRICTCONTEXTHANDLE); } -#line 3542 "parser.tab.c" /* yacc.c:1646 */ +#line 605 "parser.y" + { (yyval.attr) = make_attr(ATTR_STRICTCONTEXTHANDLE); } +#line 3691 "parser.tab.c" break; case 160: -#line 605 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_STRING); } -#line 3548 "parser.tab.c" /* yacc.c:1646 */ +#line 606 "parser.y" + { (yyval.attr) = make_attr(ATTR_STRING); } +#line 3697 "parser.tab.c" break; case 161: -#line 606 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_SWITCHIS, (yyvsp[-1].expr)); } -#line 3554 "parser.tab.c" /* yacc.c:1646 */ +#line 607 "parser.y" + { (yyval.attr) = make_attrp(ATTR_SWITCHIS, (yyvsp[-1].expr)); } +#line 3703 "parser.tab.c" break; case 162: -#line 607 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_SWITCHTYPE, (yyvsp[-1].type)); } -#line 3560 "parser.tab.c" /* yacc.c:1646 */ +#line 608 "parser.y" + { (yyval.attr) = make_attrp(ATTR_SWITCHTYPE, (yyvsp[-1].type)); } +#line 3709 "parser.tab.c" break; case 163: -#line 608 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_TRANSMITAS, (yyvsp[-1].type)); } -#line 3566 "parser.tab.c" /* yacc.c:1646 */ +#line 609 "parser.y" + { (yyval.attr) = make_attrp(ATTR_TRANSMITAS, (yyvsp[-1].type)); } +#line 3715 "parser.tab.c" break; case 164: -#line 609 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrv(ATTR_THREADING, (yyvsp[-1].num)); } -#line 3572 "parser.tab.c" /* yacc.c:1646 */ +#line 610 "parser.y" + { (yyval.attr) = make_attrv(ATTR_THREADING, (yyvsp[-1].num)); } +#line 3721 "parser.tab.c" break; case 165: -#line 610 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_UIDEFAULT); } -#line 3578 "parser.tab.c" /* yacc.c:1646 */ +#line 611 "parser.y" + { (yyval.attr) = make_attr(ATTR_UIDEFAULT); } +#line 3727 "parser.tab.c" break; case 166: -#line 611 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_USESGETLASTERROR); } -#line 3584 "parser.tab.c" /* yacc.c:1646 */ +#line 612 "parser.y" + { (yyval.attr) = make_attr(ATTR_USESGETLASTERROR); } +#line 3733 "parser.tab.c" break; case 167: -#line 612 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_USERMARSHAL, (yyvsp[-1].type)); } -#line 3590 "parser.tab.c" /* yacc.c:1646 */ +#line 613 "parser.y" + { (yyval.attr) = make_attrp(ATTR_USERMARSHAL, (yyvsp[-1].type)); } +#line 3739 "parser.tab.c" break; case 168: -#line 613 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_UUID, (yyvsp[-1].uuid)); } -#line 3596 "parser.tab.c" /* yacc.c:1646 */ +#line 614 "parser.y" + { (yyval.attr) = make_attrp(ATTR_UUID, (yyvsp[-1].uuid)); } +#line 3745 "parser.tab.c" break; case 169: -#line 614 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_ASYNCUUID, (yyvsp[-1].uuid)); } -#line 3602 "parser.tab.c" /* yacc.c:1646 */ +#line 615 "parser.y" + { (yyval.attr) = make_attrp(ATTR_ASYNCUUID, (yyvsp[-1].uuid)); } +#line 3751 "parser.tab.c" break; case 170: -#line 615 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_V1ENUM); } -#line 3608 "parser.tab.c" /* yacc.c:1646 */ +#line 616 "parser.y" + { (yyval.attr) = make_attr(ATTR_V1ENUM); } +#line 3757 "parser.tab.c" break; case 171: -#line 616 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_VARARG); } -#line 3614 "parser.tab.c" /* yacc.c:1646 */ +#line 617 "parser.y" + { (yyval.attr) = make_attr(ATTR_VARARG); } +#line 3763 "parser.tab.c" break; case 172: -#line 617 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrv(ATTR_VERSION, (yyvsp[-1].num)); } -#line 3620 "parser.tab.c" /* yacc.c:1646 */ +#line 618 "parser.y" + { (yyval.attr) = make_attrv(ATTR_VERSION, (yyvsp[-1].num)); } +#line 3769 "parser.tab.c" break; case 173: -#line 618 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_VIPROGID, (yyvsp[-1].str)); } -#line 3626 "parser.tab.c" /* yacc.c:1646 */ +#line 619 "parser.y" + { (yyval.attr) = make_attrp(ATTR_VIPROGID, (yyvsp[-1].str)); } +#line 3775 "parser.tab.c" break; case 174: -#line 619 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrp(ATTR_WIREMARSHAL, (yyvsp[-1].type)); } -#line 3632 "parser.tab.c" /* yacc.c:1646 */ +#line 620 "parser.y" + { (yyval.attr) = make_attrp(ATTR_WIREMARSHAL, (yyvsp[-1].type)); } +#line 3781 "parser.tab.c" break; case 175: -#line 620 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attrv(ATTR_POINTERTYPE, (yyvsp[0].num)); } -#line 3638 "parser.tab.c" /* yacc.c:1646 */ +#line 621 "parser.y" + { (yyval.attr) = make_attrv(ATTR_POINTERTYPE, (yyvsp[0].num)); } +#line 3787 "parser.tab.c" break; case 177: -#line 625 "parser.y" /* yacc.c:1646 */ - { if (!is_valid_uuid((yyvsp[0].str))) +#line 626 "parser.y" + { if (!is_valid_uuid((yyvsp[0].str))) error_loc("invalid UUID: %s\n", (yyvsp[0].str)); (yyval.uuid) = parse_uuid((yyvsp[0].str)); } -#line 3646 "parser.tab.c" /* yacc.c:1646 */ +#line 3795 "parser.tab.c" break; case 178: -#line 630 "parser.y" /* yacc.c:1646 */ - { (yyval.str) = xstrdup("__cdecl"); } -#line 3652 "parser.tab.c" /* yacc.c:1646 */ +#line 631 "parser.y" + { (yyval.str) = xstrdup("__cdecl"); } +#line 3801 "parser.tab.c" break; case 179: -#line 631 "parser.y" /* yacc.c:1646 */ - { (yyval.str) = xstrdup("__fastcall"); } -#line 3658 "parser.tab.c" /* yacc.c:1646 */ +#line 632 "parser.y" + { (yyval.str) = xstrdup("__fastcall"); } +#line 3807 "parser.tab.c" break; case 180: -#line 632 "parser.y" /* yacc.c:1646 */ - { (yyval.str) = xstrdup("__pascal"); } -#line 3664 "parser.tab.c" /* yacc.c:1646 */ +#line 633 "parser.y" + { (yyval.str) = xstrdup("__pascal"); } +#line 3813 "parser.tab.c" break; case 181: -#line 633 "parser.y" /* yacc.c:1646 */ - { (yyval.str) = xstrdup("__stdcall"); } -#line 3670 "parser.tab.c" /* yacc.c:1646 */ +#line 634 "parser.y" + { (yyval.str) = xstrdup("__stdcall"); } +#line 3819 "parser.tab.c" break; case 182: -#line 636 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = NULL; } -#line 3676 "parser.tab.c" /* yacc.c:1646 */ +#line 637 "parser.y" + { (yyval.var_list) = NULL; } +#line 3825 "parser.tab.c" break; case 183: -#line 637 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = append_var( (yyvsp[-1].var_list), (yyvsp[0].var) ); } -#line 3682 "parser.tab.c" /* yacc.c:1646 */ +#line 638 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[-1].var_list), (yyvsp[0].var) ); } +#line 3831 "parser.tab.c" break; case 184: -#line 640 "parser.y" /* yacc.c:1646 */ - { attr_t *a = make_attrp(ATTR_CASE, append_expr( NULL, (yyvsp[-2].expr) )); +#line 641 "parser.y" + { attr_t *a = make_attrp(ATTR_CASE, append_expr( NULL, (yyvsp[-2].expr) )); (yyval.var) = (yyvsp[0].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); (yyval.var)->attrs = append_attr( (yyval.var)->attrs, a ); } -#line 3691 "parser.tab.c" /* yacc.c:1646 */ +#line 3840 "parser.tab.c" break; case 185: -#line 644 "parser.y" /* yacc.c:1646 */ - { attr_t *a = make_attr(ATTR_DEFAULT); +#line 645 "parser.y" + { attr_t *a = make_attr(ATTR_DEFAULT); (yyval.var) = (yyvsp[0].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); (yyval.var)->attrs = append_attr( (yyval.var)->attrs, a ); } -#line 3700 "parser.tab.c" /* yacc.c:1646 */ +#line 3849 "parser.tab.c" break; case 186: -#line 650 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = NULL; } -#line 3706 "parser.tab.c" /* yacc.c:1646 */ +#line 651 "parser.y" + { (yyval.var_list) = NULL; } +#line 3855 "parser.tab.c" break; case 187: -#line 651 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = (yyvsp[-1].var_list); } -#line 3712 "parser.tab.c" /* yacc.c:1646 */ +#line 652 "parser.y" + { (yyval.var_list) = (yyvsp[-1].var_list); } +#line 3861 "parser.tab.c" break; case 189: -#line 655 "parser.y" /* yacc.c:1646 */ - { if (!(yyvsp[0].var)->eval) +#line 656 "parser.y" + { if (!(yyvsp[0].var)->eval) (yyvsp[0].var)->eval = make_exprl(EXPR_NUM, 0 /* default for first enum entry */); (yyval.var_list) = append_var( NULL, (yyvsp[0].var) ); } -#line 3721 "parser.tab.c" /* yacc.c:1646 */ +#line 3870 "parser.tab.c" break; case 190: -#line 659 "parser.y" /* yacc.c:1646 */ - { if (!(yyvsp[0].var)->eval) +#line 660 "parser.y" + { if (!(yyvsp[0].var)->eval) { var_t *last = LIST_ENTRY( list_tail((yyval.var_list)), var_t, entry ); enum expr_type type = EXPR_NUM; @@ -3732,733 +3881,733 @@ yyreduce: } (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[0].var) ); } -#line 3736 "parser.tab.c" /* yacc.c:1646 */ +#line 3885 "parser.tab.c" break; case 191: -#line 671 "parser.y" /* yacc.c:1646 */ - { (yyval.var) = reg_const((yyvsp[-2].var)); +#line 672 "parser.y" + { (yyval.var) = reg_const((yyvsp[-2].var)); (yyval.var)->eval = (yyvsp[0].expr); (yyval.var)->type = type_new_int(TYPE_BASIC_INT, 0); } -#line 3745 "parser.tab.c" /* yacc.c:1646 */ +#line 3894 "parser.tab.c" break; case 192: -#line 675 "parser.y" /* yacc.c:1646 */ - { (yyval.var) = reg_const((yyvsp[0].var)); +#line 676 "parser.y" + { (yyval.var) = reg_const((yyvsp[0].var)); (yyval.var)->type = type_new_int(TYPE_BASIC_INT, 0); } -#line 3753 "parser.tab.c" /* yacc.c:1646 */ +#line 3902 "parser.tab.c" break; case 193: -#line 680 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_enum((yyvsp[-3].str), current_namespace, TRUE, (yyvsp[-1].var_list)); } -#line 3759 "parser.tab.c" /* yacc.c:1646 */ +#line 681 "parser.y" + { (yyval.type) = type_new_enum((yyvsp[-3].str), current_namespace, TRUE, (yyvsp[-1].var_list)); } +#line 3908 "parser.tab.c" break; case 194: -#line 683 "parser.y" /* yacc.c:1646 */ - { (yyval.expr_list) = append_expr( NULL, (yyvsp[0].expr) ); } -#line 3765 "parser.tab.c" /* yacc.c:1646 */ +#line 684 "parser.y" + { (yyval.expr_list) = append_expr( NULL, (yyvsp[0].expr) ); } +#line 3914 "parser.tab.c" break; case 195: -#line 684 "parser.y" /* yacc.c:1646 */ - { (yyval.expr_list) = append_expr( (yyvsp[-2].expr_list), (yyvsp[0].expr) ); } -#line 3771 "parser.tab.c" /* yacc.c:1646 */ +#line 685 "parser.y" + { (yyval.expr_list) = append_expr( (yyvsp[-2].expr_list), (yyvsp[0].expr) ); } +#line 3920 "parser.tab.c" break; case 196: -#line 687 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr(EXPR_VOID); } -#line 3777 "parser.tab.c" /* yacc.c:1646 */ +#line 688 "parser.y" + { (yyval.expr) = make_expr(EXPR_VOID); } +#line 3926 "parser.tab.c" break; case 198: -#line 691 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[0].num)); } -#line 3783 "parser.tab.c" /* yacc.c:1646 */ +#line 692 "parser.y" + { (yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[0].num)); } +#line 3932 "parser.tab.c" break; case 199: -#line 692 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_exprl(EXPR_HEXNUM, (yyvsp[0].num)); } -#line 3789 "parser.tab.c" /* yacc.c:1646 */ +#line 693 "parser.y" + { (yyval.expr) = make_exprl(EXPR_HEXNUM, (yyvsp[0].num)); } +#line 3938 "parser.tab.c" break; case 200: -#line 693 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_exprd(EXPR_DOUBLE, (yyvsp[0].dbl)); } -#line 3795 "parser.tab.c" /* yacc.c:1646 */ +#line 694 "parser.y" + { (yyval.expr) = make_exprd(EXPR_DOUBLE, (yyvsp[0].dbl)); } +#line 3944 "parser.tab.c" break; case 201: -#line 694 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 0); } -#line 3801 "parser.tab.c" /* yacc.c:1646 */ +#line 695 "parser.y" + { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 0); } +#line 3950 "parser.tab.c" break; case 202: -#line 695 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_exprl(EXPR_NUM, 0); } -#line 3807 "parser.tab.c" /* yacc.c:1646 */ +#line 696 "parser.y" + { (yyval.expr) = make_exprl(EXPR_NUM, 0); } +#line 3956 "parser.tab.c" break; case 203: -#line 696 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 1); } -#line 3813 "parser.tab.c" /* yacc.c:1646 */ +#line 697 "parser.y" + { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 1); } +#line 3962 "parser.tab.c" break; case 204: -#line 697 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_exprs(EXPR_STRLIT, (yyvsp[0].str)); } -#line 3819 "parser.tab.c" /* yacc.c:1646 */ +#line 698 "parser.y" + { (yyval.expr) = make_exprs(EXPR_STRLIT, (yyvsp[0].str)); } +#line 3968 "parser.tab.c" break; case 205: -#line 698 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_exprs(EXPR_WSTRLIT, (yyvsp[0].str)); } -#line 3825 "parser.tab.c" /* yacc.c:1646 */ +#line 699 "parser.y" + { (yyval.expr) = make_exprs(EXPR_WSTRLIT, (yyvsp[0].str)); } +#line 3974 "parser.tab.c" break; case 206: -#line 699 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_exprs(EXPR_CHARCONST, (yyvsp[0].str)); } -#line 3831 "parser.tab.c" /* yacc.c:1646 */ +#line 700 "parser.y" + { (yyval.expr) = make_exprs(EXPR_CHARCONST, (yyvsp[0].str)); } +#line 3980 "parser.tab.c" break; case 207: -#line 700 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str)); } -#line 3837 "parser.tab.c" /* yacc.c:1646 */ +#line 701 "parser.y" + { (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str)); } +#line 3986 "parser.tab.c" break; case 208: -#line 701 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3843 "parser.tab.c" /* yacc.c:1646 */ +#line 702 "parser.y" + { (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 3992 "parser.tab.c" break; case 209: -#line 702 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_LOGOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3849 "parser.tab.c" /* yacc.c:1646 */ +#line 703 "parser.y" + { (yyval.expr) = make_expr2(EXPR_LOGOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 3998 "parser.tab.c" break; case 210: -#line 703 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_LOGAND, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3855 "parser.tab.c" /* yacc.c:1646 */ +#line 704 "parser.y" + { (yyval.expr) = make_expr2(EXPR_LOGAND, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4004 "parser.tab.c" break; case 211: -#line 704 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3861 "parser.tab.c" /* yacc.c:1646 */ +#line 705 "parser.y" + { (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4010 "parser.tab.c" break; case 212: -#line 705 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_XOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3867 "parser.tab.c" /* yacc.c:1646 */ +#line 706 "parser.y" + { (yyval.expr) = make_expr2(EXPR_XOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4016 "parser.tab.c" break; case 213: -#line 706 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3873 "parser.tab.c" /* yacc.c:1646 */ +#line 707 "parser.y" + { (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4022 "parser.tab.c" break; case 214: -#line 707 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_EQUALITY, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3879 "parser.tab.c" /* yacc.c:1646 */ +#line 708 "parser.y" + { (yyval.expr) = make_expr2(EXPR_EQUALITY, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4028 "parser.tab.c" break; case 215: -#line 708 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_INEQUALITY, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3885 "parser.tab.c" /* yacc.c:1646 */ +#line 709 "parser.y" + { (yyval.expr) = make_expr2(EXPR_INEQUALITY, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4034 "parser.tab.c" break; case 216: -#line 709 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_GTR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3891 "parser.tab.c" /* yacc.c:1646 */ +#line 710 "parser.y" + { (yyval.expr) = make_expr2(EXPR_GTR, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4040 "parser.tab.c" break; case 217: -#line 710 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_LESS, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3897 "parser.tab.c" /* yacc.c:1646 */ +#line 711 "parser.y" + { (yyval.expr) = make_expr2(EXPR_LESS, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4046 "parser.tab.c" break; case 218: -#line 711 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_GTREQL, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3903 "parser.tab.c" /* yacc.c:1646 */ +#line 712 "parser.y" + { (yyval.expr) = make_expr2(EXPR_GTREQL, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4052 "parser.tab.c" break; case 219: -#line 712 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_LESSEQL, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3909 "parser.tab.c" /* yacc.c:1646 */ +#line 713 "parser.y" + { (yyval.expr) = make_expr2(EXPR_LESSEQL, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4058 "parser.tab.c" break; case 220: -#line 713 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3915 "parser.tab.c" /* yacc.c:1646 */ +#line 714 "parser.y" + { (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4064 "parser.tab.c" break; case 221: -#line 714 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3921 "parser.tab.c" /* yacc.c:1646 */ +#line 715 "parser.y" + { (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4070 "parser.tab.c" break; case 222: -#line 715 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3927 "parser.tab.c" /* yacc.c:1646 */ +#line 716 "parser.y" + { (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4076 "parser.tab.c" break; case 223: -#line 716 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3933 "parser.tab.c" /* yacc.c:1646 */ +#line 717 "parser.y" + { (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4082 "parser.tab.c" break; case 224: -#line 717 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_MOD, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3939 "parser.tab.c" /* yacc.c:1646 */ +#line 718 "parser.y" + { (yyval.expr) = make_expr2(EXPR_MOD, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4088 "parser.tab.c" break; case 225: -#line 718 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3945 "parser.tab.c" /* yacc.c:1646 */ +#line 719 "parser.y" + { (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4094 "parser.tab.c" break; case 226: -#line 719 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 3951 "parser.tab.c" /* yacc.c:1646 */ +#line 720 "parser.y" + { (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[-2].expr), (yyvsp[0].expr)); } +#line 4100 "parser.tab.c" break; case 227: -#line 720 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr1(EXPR_LOGNOT, (yyvsp[0].expr)); } -#line 3957 "parser.tab.c" /* yacc.c:1646 */ +#line 721 "parser.y" + { (yyval.expr) = make_expr1(EXPR_LOGNOT, (yyvsp[0].expr)); } +#line 4106 "parser.tab.c" break; case 228: -#line 721 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[0].expr)); } -#line 3963 "parser.tab.c" /* yacc.c:1646 */ +#line 722 "parser.y" + { (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[0].expr)); } +#line 4112 "parser.tab.c" break; case 229: -#line 722 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr1(EXPR_POS, (yyvsp[0].expr)); } -#line 3969 "parser.tab.c" /* yacc.c:1646 */ +#line 723 "parser.y" + { (yyval.expr) = make_expr1(EXPR_POS, (yyvsp[0].expr)); } +#line 4118 "parser.tab.c" break; case 230: -#line 723 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[0].expr)); } -#line 3975 "parser.tab.c" /* yacc.c:1646 */ +#line 724 "parser.y" + { (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[0].expr)); } +#line 4124 "parser.tab.c" break; case 231: -#line 724 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[0].expr)); } -#line 3981 "parser.tab.c" /* yacc.c:1646 */ +#line 725 "parser.y" + { (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[0].expr)); } +#line 4130 "parser.tab.c" break; case 232: -#line 725 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[0].expr)); } -#line 3987 "parser.tab.c" /* yacc.c:1646 */ +#line 726 "parser.y" + { (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[0].expr)); } +#line 4136 "parser.tab.c" break; case 233: -#line 726 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_MEMBER, make_expr1(EXPR_PPTR, (yyvsp[-2].expr)), make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str))); } -#line 3993 "parser.tab.c" /* yacc.c:1646 */ +#line 727 "parser.y" + { (yyval.expr) = make_expr2(EXPR_MEMBER, make_expr1(EXPR_PPTR, (yyvsp[-2].expr)), make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str))); } +#line 4142 "parser.tab.c" break; case 234: -#line 727 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_MEMBER, (yyvsp[-2].expr), make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str))); } -#line 3999 "parser.tab.c" /* yacc.c:1646 */ +#line 728 "parser.y" + { (yyval.expr) = make_expr2(EXPR_MEMBER, (yyvsp[-2].expr), make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str))); } +#line 4148 "parser.tab.c" break; case 235: -#line 729 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_exprt(EXPR_CAST, declare_var(NULL, (yyvsp[-3].declspec), (yyvsp[-2].declarator), 0), (yyvsp[0].expr)); free((yyvsp[-3].declspec)); free((yyvsp[-2].declarator)); } -#line 4005 "parser.tab.c" /* yacc.c:1646 */ +#line 730 "parser.y" + { (yyval.expr) = make_exprt(EXPR_CAST, declare_var(NULL, (yyvsp[-3].declspec), (yyvsp[-2].declarator), 0), (yyvsp[0].expr)); free((yyvsp[-3].declspec)); free((yyvsp[-2].declarator)); } +#line 4154 "parser.tab.c" break; case 236: -#line 731 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_exprt(EXPR_SIZEOF, declare_var(NULL, (yyvsp[-2].declspec), (yyvsp[-1].declarator), 0), NULL); free((yyvsp[-2].declspec)); free((yyvsp[-1].declarator)); } -#line 4011 "parser.tab.c" /* yacc.c:1646 */ +#line 732 "parser.y" + { (yyval.expr) = make_exprt(EXPR_SIZEOF, declare_var(NULL, (yyvsp[-2].declspec), (yyvsp[-1].declarator), 0), NULL); free((yyvsp[-2].declspec)); free((yyvsp[-1].declarator)); } +#line 4160 "parser.tab.c" break; case 237: -#line 732 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = make_expr2(EXPR_ARRAY, (yyvsp[-3].expr), (yyvsp[-1].expr)); } -#line 4017 "parser.tab.c" /* yacc.c:1646 */ +#line 733 "parser.y" + { (yyval.expr) = make_expr2(EXPR_ARRAY, (yyvsp[-3].expr), (yyvsp[-1].expr)); } +#line 4166 "parser.tab.c" break; case 238: -#line 733 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[-1].expr); } -#line 4023 "parser.tab.c" /* yacc.c:1646 */ +#line 734 "parser.y" + { (yyval.expr) = (yyvsp[-1].expr); } +#line 4172 "parser.tab.c" break; case 239: -#line 736 "parser.y" /* yacc.c:1646 */ - { (yyval.expr_list) = append_expr( NULL, (yyvsp[0].expr) ); } -#line 4029 "parser.tab.c" /* yacc.c:1646 */ +#line 737 "parser.y" + { (yyval.expr_list) = append_expr( NULL, (yyvsp[0].expr) ); } +#line 4178 "parser.tab.c" break; case 240: -#line 737 "parser.y" /* yacc.c:1646 */ - { (yyval.expr_list) = append_expr( (yyvsp[-2].expr_list), (yyvsp[0].expr) ); } -#line 4035 "parser.tab.c" /* yacc.c:1646 */ +#line 738 "parser.y" + { (yyval.expr_list) = append_expr( (yyvsp[-2].expr_list), (yyvsp[0].expr) ); } +#line 4184 "parser.tab.c" break; case 241: -#line 740 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); +#line 741 "parser.y" + { (yyval.expr) = (yyvsp[0].expr); if (!(yyval.expr)->is_const) error_loc("expression is not an integer constant\n"); } -#line 4044 "parser.tab.c" /* yacc.c:1646 */ +#line 4193 "parser.tab.c" break; case 242: -#line 746 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); +#line 747 "parser.y" + { (yyval.expr) = (yyvsp[0].expr); if (!(yyval.expr)->is_const && (yyval.expr)->type != EXPR_STRLIT && (yyval.expr)->type != EXPR_WSTRLIT) error_loc("expression is not constant\n"); } -#line 4053 "parser.tab.c" /* yacc.c:1646 */ +#line 4202 "parser.tab.c" break; case 243: -#line 752 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = NULL; } -#line 4059 "parser.tab.c" /* yacc.c:1646 */ +#line 753 "parser.y" + { (yyval.var_list) = NULL; } +#line 4208 "parser.tab.c" break; case 244: -#line 753 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = append_var_list((yyvsp[-1].var_list), (yyvsp[0].var_list)); } -#line 4065 "parser.tab.c" /* yacc.c:1646 */ +#line 754 "parser.y" + { (yyval.var_list) = append_var_list((yyvsp[-1].var_list), (yyvsp[0].var_list)); } +#line 4214 "parser.tab.c" break; case 245: -#line 757 "parser.y" /* yacc.c:1646 */ - { const char *first = LIST_ENTRY(list_head((yyvsp[-1].declarator_list)), declarator_t, entry)->var->name; +#line 758 "parser.y" + { const char *first = LIST_ENTRY(list_head((yyvsp[-1].declarator_list)), declarator_t, entry)->var->name; check_field_attrs(first, (yyvsp[-3].attr_list)); (yyval.var_list) = set_var_types((yyvsp[-3].attr_list), (yyvsp[-2].declspec), (yyvsp[-1].declarator_list)); } -#line 4074 "parser.tab.c" /* yacc.c:1646 */ +#line 4223 "parser.tab.c" break; case 246: -#line 761 "parser.y" /* yacc.c:1646 */ - { var_t *v = make_var(NULL); +#line 762 "parser.y" + { var_t *v = make_var(NULL); v->type = (yyvsp[-1].type); v->attrs = (yyvsp[-2].attr_list); (yyval.var_list) = append_var(NULL, v); } -#line 4083 "parser.tab.c" /* yacc.c:1646 */ +#line 4232 "parser.tab.c" break; case 247: -#line 768 "parser.y" /* yacc.c:1646 */ - { (yyval.var) = (yyvsp[-1].var); } -#line 4089 "parser.tab.c" /* yacc.c:1646 */ +#line 769 "parser.y" + { (yyval.var) = (yyvsp[-1].var); } +#line 4238 "parser.tab.c" break; case 248: -#line 769 "parser.y" /* yacc.c:1646 */ - { (yyval.var) = make_var(NULL); (yyval.var)->attrs = (yyvsp[-1].attr_list); } -#line 4095 "parser.tab.c" /* yacc.c:1646 */ +#line 770 "parser.y" + { (yyval.var) = make_var(NULL); (yyval.var)->attrs = (yyvsp[-1].attr_list); } +#line 4244 "parser.tab.c" break; case 249: -#line 772 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = NULL; } -#line 4101 "parser.tab.c" /* yacc.c:1646 */ +#line 773 "parser.y" + { (yyval.var_list) = NULL; } +#line 4250 "parser.tab.c" break; case 250: -#line 773 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = append_var( (yyvsp[-1].var_list), (yyvsp[0].var) ); } -#line 4107 "parser.tab.c" /* yacc.c:1646 */ +#line 774 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[-1].var_list), (yyvsp[0].var) ); } +#line 4256 "parser.tab.c" break; case 251: -#line 777 "parser.y" /* yacc.c:1646 */ - { (yyval.var) = (yyvsp[-1].var); } -#line 4113 "parser.tab.c" /* yacc.c:1646 */ +#line 778 "parser.y" + { (yyval.var) = (yyvsp[-1].var); } +#line 4262 "parser.tab.c" break; case 252: -#line 778 "parser.y" /* yacc.c:1646 */ - { (yyval.var) = NULL; } -#line 4119 "parser.tab.c" /* yacc.c:1646 */ +#line 779 "parser.y" + { (yyval.var) = NULL; } +#line 4268 "parser.tab.c" break; case 253: -#line 781 "parser.y" /* yacc.c:1646 */ - { (yyval.var) = declare_var(check_field_attrs((yyvsp[0].declarator)->var->name, (yyvsp[-2].attr_list)), +#line 782 "parser.y" + { (yyval.var) = declare_var(check_field_attrs((yyvsp[0].declarator)->var->name, (yyvsp[-2].attr_list)), (yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE); free((yyvsp[0].declarator)); } -#line 4128 "parser.tab.c" /* yacc.c:1646 */ +#line 4277 "parser.tab.c" break; case 254: -#line 785 "parser.y" /* yacc.c:1646 */ - { var_t *v = make_var(NULL); +#line 786 "parser.y" + { var_t *v = make_var(NULL); v->type = (yyvsp[0].type); v->attrs = (yyvsp[-1].attr_list); (yyval.var) = v; } -#line 4137 "parser.tab.c" /* yacc.c:1646 */ +#line 4286 "parser.tab.c" break; case 255: -#line 791 "parser.y" /* yacc.c:1646 */ - { (yyval.var) = (yyvsp[0].var); +#line 792 "parser.y" + { (yyval.var) = (yyvsp[0].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); } -#line 4147 "parser.tab.c" /* yacc.c:1646 */ +#line 4296 "parser.tab.c" break; case 256: -#line 800 "parser.y" /* yacc.c:1646 */ - { (yyval.var) = declare_var((yyvsp[-2].attr_list), (yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE); +#line 801 "parser.y" + { (yyval.var) = declare_var((yyvsp[-2].attr_list), (yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE); free((yyvsp[0].declarator)); } -#line 4155 "parser.tab.c" /* yacc.c:1646 */ +#line 4304 "parser.tab.c" break; case 257: -#line 803 "parser.y" /* yacc.c:1646 */ - { (yyval.var) = declare_var(NULL, (yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE); +#line 804 "parser.y" + { (yyval.var) = declare_var(NULL, (yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE); free((yyvsp[0].declarator)); } -#line 4163 "parser.tab.c" /* yacc.c:1646 */ +#line 4312 "parser.tab.c" break; case 258: -#line 808 "parser.y" /* yacc.c:1646 */ - { (yyval.var) = NULL; } -#line 4169 "parser.tab.c" /* yacc.c:1646 */ +#line 809 "parser.y" + { (yyval.var) = NULL; } +#line 4318 "parser.tab.c" break; case 260: -#line 812 "parser.y" /* yacc.c:1646 */ - { (yyval.str) = NULL; } -#line 4175 "parser.tab.c" /* yacc.c:1646 */ +#line 813 "parser.y" + { (yyval.str) = NULL; } +#line 4324 "parser.tab.c" break; case 261: -#line 813 "parser.y" /* yacc.c:1646 */ - { (yyval.str) = (yyvsp[0].str); } -#line 4181 "parser.tab.c" /* yacc.c:1646 */ +#line 814 "parser.y" + { (yyval.str) = (yyvsp[0].str); } +#line 4330 "parser.tab.c" break; case 262: -#line 814 "parser.y" /* yacc.c:1646 */ - { (yyval.str) = (yyvsp[0].str); } -#line 4187 "parser.tab.c" /* yacc.c:1646 */ +#line 815 "parser.y" + { (yyval.str) = (yyvsp[0].str); } +#line 4336 "parser.tab.c" break; case 263: -#line 817 "parser.y" /* yacc.c:1646 */ - { (yyval.var) = make_var((yyvsp[0].str)); } -#line 4193 "parser.tab.c" /* yacc.c:1646 */ +#line 818 "parser.y" + { (yyval.var) = make_var((yyvsp[0].str)); } +#line 4342 "parser.tab.c" break; case 264: -#line 819 "parser.y" /* yacc.c:1646 */ - { (yyval.var) = make_var((yyvsp[0].str)); } -#line 4199 "parser.tab.c" /* yacc.c:1646 */ +#line 820 "parser.y" + { (yyval.var) = make_var((yyvsp[0].str)); } +#line 4348 "parser.tab.c" break; case 265: -#line 822 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } -#line 4205 "parser.tab.c" /* yacc.c:1646 */ +#line 823 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } +#line 4354 "parser.tab.c" break; case 266: -#line 823 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } -#line 4211 "parser.tab.c" /* yacc.c:1646 */ +#line 824 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } +#line 4360 "parser.tab.c" break; case 268: -#line 825 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[0].type)), -1); } -#line 4217 "parser.tab.c" /* yacc.c:1646 */ +#line 826 "parser.y" + { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[0].type)), -1); } +#line 4366 "parser.tab.c" break; case 269: -#line 826 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[0].type)), 1); } -#line 4223 "parser.tab.c" /* yacc.c:1646 */ +#line 827 "parser.y" + { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[0].type)), 1); } +#line 4372 "parser.tab.c" break; case 270: -#line 827 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); } -#line 4229 "parser.tab.c" /* yacc.c:1646 */ +#line 828 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); } +#line 4378 "parser.tab.c" break; case 271: -#line 828 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } -#line 4235 "parser.tab.c" /* yacc.c:1646 */ +#line 829 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } +#line 4384 "parser.tab.c" break; case 272: -#line 829 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } -#line 4241 "parser.tab.c" /* yacc.c:1646 */ +#line 830 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } +#line 4390 "parser.tab.c" break; case 273: -#line 830 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } -#line 4247 "parser.tab.c" /* yacc.c:1646 */ +#line 831 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } +#line 4396 "parser.tab.c" break; case 274: -#line 831 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } -#line 4253 "parser.tab.c" /* yacc.c:1646 */ +#line 832 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } +#line 4402 "parser.tab.c" break; case 275: -#line 832 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } -#line 4259 "parser.tab.c" /* yacc.c:1646 */ +#line 833 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } +#line 4408 "parser.tab.c" break; case 278: -#line 839 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); } -#line 4265 "parser.tab.c" /* yacc.c:1646 */ +#line 840 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); } +#line 4414 "parser.tab.c" break; case 279: -#line 840 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); } -#line 4271 "parser.tab.c" /* yacc.c:1646 */ +#line 841 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); } +#line 4420 "parser.tab.c" break; case 280: -#line 841 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); } -#line 4277 "parser.tab.c" /* yacc.c:1646 */ +#line 842 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); } +#line 4426 "parser.tab.c" break; case 281: -#line 842 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_int(TYPE_BASIC_LONG, 0); } -#line 4283 "parser.tab.c" /* yacc.c:1646 */ +#line 843 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_LONG, 0); } +#line 4432 "parser.tab.c" break; case 282: -#line 843 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); } -#line 4289 "parser.tab.c" /* yacc.c:1646 */ +#line 844 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); } +#line 4438 "parser.tab.c" break; case 283: -#line 844 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); } -#line 4295 "parser.tab.c" /* yacc.c:1646 */ +#line 845 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); } +#line 4444 "parser.tab.c" break; case 284: -#line 845 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); } -#line 4301 "parser.tab.c" /* yacc.c:1646 */ +#line 846 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); } +#line 4450 "parser.tab.c" break; case 285: -#line 846 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); } -#line 4307 "parser.tab.c" /* yacc.c:1646 */ +#line 847 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); } +#line 4456 "parser.tab.c" break; case 286: -#line 847 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_int(TYPE_BASIC_INT3264, 0); } -#line 4313 "parser.tab.c" /* yacc.c:1646 */ +#line 848 "parser.y" + { (yyval.type) = type_new_int(TYPE_BASIC_INT3264, 0); } +#line 4462 "parser.tab.c" break; case 287: -#line 850 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_coclass((yyvsp[0].str)); } -#line 4319 "parser.tab.c" /* yacc.c:1646 */ +#line 851 "parser.y" + { (yyval.type) = type_new_coclass((yyvsp[0].str)); } +#line 4468 "parser.tab.c" break; case 288: -#line 851 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = find_type((yyvsp[0].str), NULL, 0); +#line 852 "parser.y" + { (yyval.type) = find_type((yyvsp[0].str), NULL, 0); if (type_get_type_detect_alias((yyval.type)) != TYPE_COCLASS) error_loc("%s was not declared a coclass at %s:%d\n", (yyvsp[0].str), (yyval.type)->loc_info.input_name, (yyval.type)->loc_info.line_number); } -#line 4330 "parser.tab.c" /* yacc.c:1646 */ +#line 4479 "parser.tab.c" break; case 289: -#line 859 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[0].type); +#line 860 "parser.y" + { (yyval.type) = (yyvsp[0].type); check_def((yyval.type)); (yyval.type)->attrs = check_coclass_attrs((yyvsp[0].type)->name, (yyvsp[-1].attr_list)); } -#line 4339 "parser.tab.c" /* yacc.c:1646 */ +#line 4488 "parser.tab.c" break; case 290: -#line 866 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_coclass_define((yyvsp[-4].type), (yyvsp[-2].ifref_list)); } -#line 4345 "parser.tab.c" /* yacc.c:1646 */ +#line 867 "parser.y" + { (yyval.type) = type_coclass_define((yyvsp[-4].type), (yyvsp[-2].ifref_list)); } +#line 4494 "parser.tab.c" break; case 291: -#line 869 "parser.y" /* yacc.c:1646 */ - { (yyval.str) = (yyvsp[0].str); } -#line 4351 "parser.tab.c" /* yacc.c:1646 */ +#line 870 "parser.y" + { (yyval.str) = (yyvsp[0].str); } +#line 4500 "parser.tab.c" break; case 292: -#line 872 "parser.y" /* yacc.c:1646 */ - { (yyval.ifref_list) = NULL; } -#line 4357 "parser.tab.c" /* yacc.c:1646 */ +#line 873 "parser.y" + { (yyval.ifref_list) = NULL; } +#line 4506 "parser.tab.c" break; case 293: -#line 873 "parser.y" /* yacc.c:1646 */ - { (yyval.ifref_list) = append_ifref( (yyvsp[-1].ifref_list), (yyvsp[0].ifref) ); } -#line 4363 "parser.tab.c" /* yacc.c:1646 */ +#line 874 "parser.y" + { (yyval.ifref_list) = append_ifref( (yyvsp[-1].ifref_list), (yyvsp[0].ifref) ); } +#line 4512 "parser.tab.c" break; case 294: -#line 877 "parser.y" /* yacc.c:1646 */ - { (yyval.ifref) = make_ifref((yyvsp[0].type)); (yyval.ifref)->attrs = (yyvsp[-1].attr_list); } -#line 4369 "parser.tab.c" /* yacc.c:1646 */ +#line 878 "parser.y" + { (yyval.ifref) = make_ifref((yyvsp[0].type)); (yyval.ifref)->attrs = (yyvsp[-1].attr_list); } +#line 4518 "parser.tab.c" break; case 295: -#line 880 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); } -#line 4375 "parser.tab.c" /* yacc.c:1646 */ +#line 881 "parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); } +#line 4524 "parser.tab.c" break; case 296: -#line 881 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); } -#line 4381 "parser.tab.c" /* yacc.c:1646 */ +#line 882 "parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); } +#line 4530 "parser.tab.c" break; case 297: -#line 884 "parser.y" /* yacc.c:1646 */ - { attr_t *attrs; +#line 885 "parser.y" + { attr_t *attrs; (yyval.type) = (yyvsp[0].type); check_def((yyval.type)); attrs = make_attr(ATTR_DISPINTERFACE); (yyval.type)->attrs = append_attr( check_dispiface_attrs((yyvsp[0].type)->name, (yyvsp[-1].attr_list)), attrs ); (yyval.type)->defined = TRUE; } -#line 4393 "parser.tab.c" /* yacc.c:1646 */ +#line 4542 "parser.tab.c" break; case 298: -#line 893 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = NULL; } -#line 4399 "parser.tab.c" /* yacc.c:1646 */ +#line 894 "parser.y" + { (yyval.var_list) = NULL; } +#line 4548 "parser.tab.c" break; case 299: -#line 894 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[-1].var) ); } -#line 4405 "parser.tab.c" /* yacc.c:1646 */ +#line 895 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[-1].var) ); } +#line 4554 "parser.tab.c" break; case 300: -#line 897 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = NULL; } -#line 4411 "parser.tab.c" /* yacc.c:1646 */ +#line 898 "parser.y" + { (yyval.var_list) = NULL; } +#line 4560 "parser.tab.c" break; case 301: -#line 898 "parser.y" /* yacc.c:1646 */ - { (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[-1].var) ); } -#line 4417 "parser.tab.c" /* yacc.c:1646 */ +#line 899 "parser.y" + { (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[-1].var) ); } +#line 4566 "parser.tab.c" break; case 302: -#line 904 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[-4].type); +#line 905 "parser.y" + { (yyval.type) = (yyvsp[-4].type); type_dispinterface_define((yyval.type), (yyvsp[-2].var_list), (yyvsp[-1].var_list)); } -#line 4425 "parser.tab.c" /* yacc.c:1646 */ +#line 4574 "parser.tab.c" break; case 303: -#line 908 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[-4].type); +#line 909 "parser.y" + { (yyval.type) = (yyvsp[-4].type); type_dispinterface_define_from_iface((yyval.type), (yyvsp[-2].type)); } -#line 4433 "parser.tab.c" /* yacc.c:1646 */ +#line 4582 "parser.tab.c" break; case 304: -#line 913 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = NULL; } -#line 4439 "parser.tab.c" /* yacc.c:1646 */ +#line 914 "parser.y" + { (yyval.type) = NULL; } +#line 4588 "parser.tab.c" break; case 305: -#line 914 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = find_type_or_error2((yyvsp[0].str), 0); } -#line 4445 "parser.tab.c" /* yacc.c:1646 */ +#line 915 "parser.y" + { (yyval.type) = find_type_or_error2((yyvsp[0].str), 0); } +#line 4594 "parser.tab.c" break; case 306: -#line 917 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); } -#line 4451 "parser.tab.c" /* yacc.c:1646 */ +#line 918 "parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); } +#line 4600 "parser.tab.c" break; case 307: -#line 918 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); } -#line 4457 "parser.tab.c" /* yacc.c:1646 */ +#line 919 "parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); } +#line 4606 "parser.tab.c" break; case 308: -#line 921 "parser.y" /* yacc.c:1646 */ - { (yyval.ifinfo).interface = (yyvsp[0].type); +#line 922 "parser.y" + { (yyval.ifinfo).interface = (yyvsp[0].type); (yyval.ifinfo).old_pointer_default = pointer_default; if (is_attr((yyvsp[-1].attr_list), ATTR_POINTERDEFAULT)) pointer_default = get_attrv((yyvsp[-1].attr_list), ATTR_POINTERDEFAULT); @@ -4466,606 +4615,649 @@ yyreduce: (yyvsp[0].type)->attrs = check_iface_attrs((yyvsp[0].type)->name, (yyvsp[-1].attr_list)); (yyvsp[0].type)->defined = TRUE; } -#line 4470 "parser.tab.c" /* yacc.c:1646 */ +#line 4619 "parser.tab.c" break; case 309: -#line 932 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[-5].ifinfo).interface; +#line 933 "parser.y" + { (yyval.type) = (yyvsp[-5].ifinfo).interface; if((yyval.type) == (yyvsp[-4].type)) error_loc("Interface can't inherit from itself\n"); type_interface_define((yyval.type), (yyvsp[-4].type), (yyvsp[-2].stmt_list)); check_async_uuid((yyval.type)); pointer_default = (yyvsp[-5].ifinfo).old_pointer_default; } -#line 4482 "parser.tab.c" /* yacc.c:1646 */ +#line 4631 "parser.tab.c" break; case 310: -#line 943 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[-7].ifinfo).interface; +#line 944 "parser.y" + { (yyval.type) = (yyvsp[-7].ifinfo).interface; type_interface_define((yyval.type), find_type_or_error2((yyvsp[-5].str), 0), (yyvsp[-2].stmt_list)); pointer_default = (yyvsp[-7].ifinfo).old_pointer_default; } -#line 4491 "parser.tab.c" /* yacc.c:1646 */ +#line 4640 "parser.tab.c" break; case 311: -#line 947 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[-1].type); } -#line 4497 "parser.tab.c" /* yacc.c:1646 */ +#line 948 "parser.y" + { (yyval.type) = (yyvsp[-1].type); } +#line 4646 "parser.tab.c" break; case 312: -#line 951 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[-1].type); } -#line 4503 "parser.tab.c" /* yacc.c:1646 */ +#line 952 "parser.y" + { (yyval.type) = (yyvsp[-1].type); } +#line 4652 "parser.tab.c" break; case 313: -#line 952 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[-1].type); } -#line 4509 "parser.tab.c" /* yacc.c:1646 */ +#line 953 "parser.y" + { (yyval.type) = (yyvsp[-1].type); } +#line 4658 "parser.tab.c" break; case 314: -#line 955 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_module((yyvsp[0].str)); } -#line 4515 "parser.tab.c" /* yacc.c:1646 */ +#line 956 "parser.y" + { (yyval.type) = type_new_module((yyvsp[0].str)); } +#line 4664 "parser.tab.c" break; case 315: -#line 956 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_module((yyvsp[0].str)); } -#line 4521 "parser.tab.c" /* yacc.c:1646 */ +#line 957 "parser.y" + { (yyval.type) = type_new_module((yyvsp[0].str)); } +#line 4670 "parser.tab.c" break; case 316: -#line 959 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[0].type); +#line 960 "parser.y" + { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_module_attrs((yyvsp[0].type)->name, (yyvsp[-1].attr_list)); } -#line 4529 "parser.tab.c" /* yacc.c:1646 */ +#line 4678 "parser.tab.c" break; case 317: -#line 965 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[-4].type); +#line 966 "parser.y" + { (yyval.type) = (yyvsp[-4].type); type_module_define((yyval.type), (yyvsp[-2].stmt_list)); } -#line 4537 "parser.tab.c" /* yacc.c:1646 */ +#line 4686 "parser.tab.c" break; case 318: -#line 971 "parser.y" /* yacc.c:1646 */ - { (yyval.stgclass) = STG_EXTERN; } -#line 4543 "parser.tab.c" /* yacc.c:1646 */ +#line 972 "parser.y" + { (yyval.stgclass) = STG_EXTERN; } +#line 4692 "parser.tab.c" break; case 319: -#line 972 "parser.y" /* yacc.c:1646 */ - { (yyval.stgclass) = STG_STATIC; } -#line 4549 "parser.tab.c" /* yacc.c:1646 */ +#line 973 "parser.y" + { (yyval.stgclass) = STG_STATIC; } +#line 4698 "parser.tab.c" break; case 320: -#line 973 "parser.y" /* yacc.c:1646 */ - { (yyval.stgclass) = STG_REGISTER; } -#line 4555 "parser.tab.c" /* yacc.c:1646 */ +#line 974 "parser.y" + { (yyval.stgclass) = STG_REGISTER; } +#line 4704 "parser.tab.c" break; case 321: -#line 977 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_INLINE); } -#line 4561 "parser.tab.c" /* yacc.c:1646 */ +#line 978 "parser.y" + { (yyval.attr) = make_attr(ATTR_INLINE); } +#line 4710 "parser.tab.c" break; case 322: -#line 981 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_CONST); } -#line 4567 "parser.tab.c" /* yacc.c:1646 */ +#line 982 "parser.y" + { (yyval.attr) = make_attr(ATTR_CONST); } +#line 4716 "parser.tab.c" break; case 323: -#line 984 "parser.y" /* yacc.c:1646 */ - { (yyval.attr_list) = NULL; } -#line 4573 "parser.tab.c" /* yacc.c:1646 */ +#line 985 "parser.y" + { (yyval.attr_list) = NULL; } +#line 4722 "parser.tab.c" break; case 324: -#line 985 "parser.y" /* yacc.c:1646 */ - { (yyval.attr_list) = append_attr((yyvsp[-1].attr_list), (yyvsp[0].attr)); } -#line 4579 "parser.tab.c" /* yacc.c:1646 */ +#line 986 "parser.y" + { (yyval.attr_list) = append_attr((yyvsp[-1].attr_list), (yyvsp[0].attr)); } +#line 4728 "parser.tab.c" break; case 325: -#line 988 "parser.y" /* yacc.c:1646 */ - { (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[0].declspec), NULL, NULL, STG_NONE); } -#line 4585 "parser.tab.c" /* yacc.c:1646 */ +#line 989 "parser.y" + { (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[0].declspec), NULL, NULL, STG_NONE); } +#line 4734 "parser.tab.c" break; case 326: -#line 990 "parser.y" /* yacc.c:1646 */ - { (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[-2].declspec), (yyvsp[0].declspec), NULL, STG_NONE); } -#line 4591 "parser.tab.c" /* yacc.c:1646 */ +#line 991 "parser.y" + { (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[-2].declspec), (yyvsp[0].declspec), NULL, STG_NONE); } +#line 4740 "parser.tab.c" break; case 327: -#line 993 "parser.y" /* yacc.c:1646 */ - { (yyval.declspec) = NULL; } -#line 4597 "parser.tab.c" /* yacc.c:1646 */ +#line 994 "parser.y" + { (yyval.declspec) = NULL; } +#line 4746 "parser.tab.c" break; case 329: -#line 998 "parser.y" /* yacc.c:1646 */ - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, (yyvsp[-1].attr), STG_NONE); } -#line 4603 "parser.tab.c" /* yacc.c:1646 */ +#line 999 "parser.y" + { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, (yyvsp[-1].attr), STG_NONE); } +#line 4752 "parser.tab.c" break; case 330: -#line 999 "parser.y" /* yacc.c:1646 */ - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, (yyvsp[-1].attr), STG_NONE); } -#line 4609 "parser.tab.c" /* yacc.c:1646 */ +#line 1000 "parser.y" + { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, (yyvsp[-1].attr), STG_NONE); } +#line 4758 "parser.tab.c" break; case 331: -#line 1000 "parser.y" /* yacc.c:1646 */ - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, NULL, (yyvsp[-1].stgclass)); } -#line 4615 "parser.tab.c" /* yacc.c:1646 */ +#line 1001 "parser.y" + { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, NULL, (yyvsp[-1].stgclass)); } +#line 4764 "parser.tab.c" break; case 332: -#line 1005 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type = append_chain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[-1].attr_list))); } -#line 4621 "parser.tab.c" /* yacc.c:1646 */ +#line 1006 "parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type = append_chain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[-1].attr_list))); } +#line 4770 "parser.tab.c" break; case 333: -#line 1006 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[0].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[-1].str))); +#line 1007 "parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[-1].str))); else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[-1].str))); } -#line 4628 "parser.tab.c" /* yacc.c:1646 */ +#line 4777 "parser.tab.c" break; case 335: -#line 1012 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = make_declarator((yyvsp[0].var)); } -#line 4634 "parser.tab.c" /* yacc.c:1646 */ +#line 1013 "parser.y" + { (yyval.declarator) = make_declarator((yyvsp[0].var)); } +#line 4783 "parser.tab.c" break; case 336: -#line 1013 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[-1].declarator); } -#line 4640 "parser.tab.c" /* yacc.c:1646 */ +#line 1014 "parser.y" + { (yyval.declarator) = (yyvsp[-1].declarator); } +#line 4789 "parser.tab.c" break; case 337: -#line 1014 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[-1].declarator); (yyval.declarator)->type = append_array((yyval.declarator)->type, (yyvsp[0].expr)); } -#line 4646 "parser.tab.c" /* yacc.c:1646 */ +#line 1015 "parser.y" + { (yyval.declarator) = (yyvsp[-1].declarator); (yyval.declarator)->type = append_array((yyval.declarator)->type, (yyvsp[0].expr)); } +#line 4795 "parser.tab.c" break; case 338: -#line 1015 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[-3].declarator); +#line 1016 "parser.y" + { (yyval.declarator) = (yyvsp[-3].declarator); (yyval.declarator)->func_type = append_chain_type((yyval.declarator)->type, type_new_function((yyvsp[-1].var_list))); (yyval.declarator)->type = NULL; } -#line 4655 "parser.tab.c" /* yacc.c:1646 */ +#line 4804 "parser.tab.c" break; case 339: -#line 1024 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type = append_chain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[-1].attr_list))); } -#line 4661 "parser.tab.c" /* yacc.c:1646 */ +#line 1025 "parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type = append_chain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[-1].attr_list))); } +#line 4810 "parser.tab.c" break; case 340: -#line 1025 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[0].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[-1].str))); +#line 1026 "parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[-1].str))); else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[-1].str))); } -#line 4668 "parser.tab.c" /* yacc.c:1646 */ +#line 4817 "parser.tab.c" break; case 342: -#line 1033 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type = append_chain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[-1].attr_list))); } -#line 4674 "parser.tab.c" /* yacc.c:1646 */ +#line 1034 "parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type = append_chain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[-1].attr_list))); } +#line 4823 "parser.tab.c" break; case 343: -#line 1034 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[0].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[-1].str))); +#line 1035 "parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); if ((yyval.declarator)->func_type) (yyval.declarator)->func_type->attrs = append_attr((yyval.declarator)->func_type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[-1].str))); else if ((yyval.declarator)->type) (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[-1].str))); } -#line 4681 "parser.tab.c" /* yacc.c:1646 */ +#line 4830 "parser.tab.c" break; case 344: -#line 1039 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = make_declarator(NULL); } -#line 4687 "parser.tab.c" /* yacc.c:1646 */ +#line 1040 "parser.y" + { (yyval.declarator) = make_declarator(NULL); } +#line 4836 "parser.tab.c" break; case 346: -#line 1045 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[-1].declarator); } -#line 4693 "parser.tab.c" /* yacc.c:1646 */ +#line 1046 "parser.y" + { (yyval.declarator) = (yyvsp[-1].declarator); } +#line 4842 "parser.tab.c" break; case 347: -#line 1046 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[-1].declarator); (yyval.declarator)->type = append_array((yyval.declarator)->type, (yyvsp[0].expr)); } -#line 4699 "parser.tab.c" /* yacc.c:1646 */ +#line 1047 "parser.y" + { (yyval.declarator) = (yyvsp[-1].declarator); (yyval.declarator)->type = append_array((yyval.declarator)->type, (yyvsp[0].expr)); } +#line 4848 "parser.tab.c" break; case 348: -#line 1047 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->type = append_array((yyval.declarator)->type, (yyvsp[0].expr)); } -#line 4705 "parser.tab.c" /* yacc.c:1646 */ +#line 1048 "parser.y" + { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->type = append_array((yyval.declarator)->type, (yyvsp[0].expr)); } +#line 4854 "parser.tab.c" break; case 349: -#line 1049 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = make_declarator(NULL); +#line 1050 "parser.y" + { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->func_type = append_chain_type((yyval.declarator)->type, type_new_function((yyvsp[-1].var_list))); (yyval.declarator)->type = NULL; } -#line 4714 "parser.tab.c" /* yacc.c:1646 */ +#line 4863 "parser.tab.c" break; case 350: -#line 1054 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[-3].declarator); +#line 1055 "parser.y" + { (yyval.declarator) = (yyvsp[-3].declarator); (yyval.declarator)->func_type = append_chain_type((yyval.declarator)->type, type_new_function((yyvsp[-1].var_list))); (yyval.declarator)->type = NULL; } -#line 4723 "parser.tab.c" /* yacc.c:1646 */ +#line 4872 "parser.tab.c" break; case 351: -#line 1063 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type = append_chain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[-1].attr_list))); } -#line 4729 "parser.tab.c" /* yacc.c:1646 */ +#line 1064 "parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type = append_chain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[-1].attr_list))); } +#line 4878 "parser.tab.c" break; case 352: -#line 1064 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[-1].str))); } -#line 4735 "parser.tab.c" /* yacc.c:1646 */ +#line 1065 "parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[-1].str))); } +#line 4884 "parser.tab.c" break; case 354: -#line 1071 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type = append_chain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[-1].attr_list))); } -#line 4741 "parser.tab.c" /* yacc.c:1646 */ +#line 1072 "parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type = append_chain_type((yyval.declarator)->type, type_new_pointer(pointer_default, NULL, (yyvsp[-1].attr_list))); } +#line 4890 "parser.tab.c" break; case 355: -#line 1072 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[-1].str))); } -#line 4747 "parser.tab.c" /* yacc.c:1646 */ +#line 1073 "parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); (yyval.declarator)->type->attrs = append_attr((yyval.declarator)->type->attrs, make_attrp(ATTR_CALLCONV, (yyvsp[-1].str))); } +#line 4896 "parser.tab.c" break; case 356: -#line 1076 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = make_declarator(NULL); } -#line 4753 "parser.tab.c" /* yacc.c:1646 */ +#line 1077 "parser.y" + { (yyval.declarator) = make_declarator(NULL); } +#line 4902 "parser.tab.c" break; case 358: -#line 1084 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = make_declarator((yyvsp[0].var)); } -#line 4759 "parser.tab.c" /* yacc.c:1646 */ +#line 1085 "parser.y" + { (yyval.declarator) = make_declarator((yyvsp[0].var)); } +#line 4908 "parser.tab.c" break; case 359: -#line 1085 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[-1].declarator); } -#line 4765 "parser.tab.c" /* yacc.c:1646 */ +#line 1086 "parser.y" + { (yyval.declarator) = (yyvsp[-1].declarator); } +#line 4914 "parser.tab.c" break; case 360: -#line 1086 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[-1].declarator); (yyval.declarator)->type = append_array((yyval.declarator)->type, (yyvsp[0].expr)); } -#line 4771 "parser.tab.c" /* yacc.c:1646 */ +#line 1087 "parser.y" + { (yyval.declarator) = (yyvsp[-1].declarator); (yyval.declarator)->type = append_array((yyval.declarator)->type, (yyvsp[0].expr)); } +#line 4920 "parser.tab.c" break; case 361: -#line 1087 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->type = append_array((yyval.declarator)->type, (yyvsp[0].expr)); } -#line 4777 "parser.tab.c" /* yacc.c:1646 */ +#line 1088 "parser.y" + { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->type = append_array((yyval.declarator)->type, (yyvsp[0].expr)); } +#line 4926 "parser.tab.c" break; case 362: -#line 1089 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = make_declarator(NULL); +#line 1090 "parser.y" + { (yyval.declarator) = make_declarator(NULL); (yyval.declarator)->func_type = append_chain_type((yyval.declarator)->type, type_new_function((yyvsp[-1].var_list))); (yyval.declarator)->type = NULL; } -#line 4786 "parser.tab.c" /* yacc.c:1646 */ +#line 4935 "parser.tab.c" break; case 363: -#line 1094 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[-3].declarator); +#line 1095 "parser.y" + { (yyval.declarator) = (yyvsp[-3].declarator); (yyval.declarator)->func_type = append_chain_type((yyval.declarator)->type, type_new_function((yyvsp[-1].var_list))); (yyval.declarator)->type = NULL; } -#line 4795 "parser.tab.c" /* yacc.c:1646 */ +#line 4944 "parser.tab.c" break; case 364: -#line 1101 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[0].declarator) ); } -#line 4801 "parser.tab.c" /* yacc.c:1646 */ +#line 1102 "parser.y" + { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[0].declarator) ); } +#line 4950 "parser.tab.c" break; case 365: -#line 1102 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator_list) = append_declarator( (yyvsp[-2].declarator_list), (yyvsp[0].declarator) ); } -#line 4807 "parser.tab.c" /* yacc.c:1646 */ +#line 1103 "parser.y" + { (yyval.declarator_list) = append_declarator( (yyvsp[-2].declarator_list), (yyvsp[0].declarator) ); } +#line 4956 "parser.tab.c" break; case 366: -#line 1105 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = NULL; } -#line 4813 "parser.tab.c" /* yacc.c:1646 */ +#line 1106 "parser.y" + { (yyval.expr) = NULL; } +#line 4962 "parser.tab.c" break; case 367: -#line 1106 "parser.y" /* yacc.c:1646 */ - { (yyval.expr) = (yyvsp[0].expr); } -#line 4819 "parser.tab.c" /* yacc.c:1646 */ +#line 1107 "parser.y" + { (yyval.expr) = (yyvsp[0].expr); } +#line 4968 "parser.tab.c" break; case 368: -#line 1109 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[-1].declarator); (yyval.declarator)->bits = (yyvsp[0].expr); +#line 1110 "parser.y" + { (yyval.declarator) = (yyvsp[-1].declarator); (yyval.declarator)->bits = (yyvsp[0].expr); if (!(yyval.declarator)->bits && !(yyval.declarator)->var->name) error_loc("unnamed fields are not allowed\n"); } -#line 4828 "parser.tab.c" /* yacc.c:1646 */ +#line 4977 "parser.tab.c" break; case 369: -#line 1116 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[0].declarator) ); } -#line 4834 "parser.tab.c" /* yacc.c:1646 */ +#line 1117 "parser.y" + { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[0].declarator) ); } +#line 4983 "parser.tab.c" break; case 370: -#line 1118 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator_list) = append_declarator( (yyvsp[-2].declarator_list), (yyvsp[0].declarator) ); } -#line 4840 "parser.tab.c" /* yacc.c:1646 */ +#line 1119 "parser.y" + { (yyval.declarator_list) = append_declarator( (yyvsp[-2].declarator_list), (yyvsp[0].declarator) ); } +#line 4989 "parser.tab.c" break; case 371: -#line 1122 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[0].declarator); } -#line 4846 "parser.tab.c" /* yacc.c:1646 */ +#line 1123 "parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); } +#line 4995 "parser.tab.c" break; case 372: -#line 1123 "parser.y" /* yacc.c:1646 */ - { (yyval.declarator) = (yyvsp[-2].declarator); (yyvsp[-2].declarator)->var->eval = (yyvsp[0].expr); } -#line 4852 "parser.tab.c" /* yacc.c:1646 */ +#line 1124 "parser.y" + { (yyval.declarator) = (yyvsp[-2].declarator); (yyvsp[-2].declarator)->var->eval = (yyvsp[0].expr); } +#line 5001 "parser.tab.c" break; case 373: -#line 1127 "parser.y" /* yacc.c:1646 */ - { (yyval.num) = THREADING_APARTMENT; } -#line 4858 "parser.tab.c" /* yacc.c:1646 */ +#line 1128 "parser.y" + { (yyval.num) = THREADING_APARTMENT; } +#line 5007 "parser.tab.c" break; case 374: -#line 1128 "parser.y" /* yacc.c:1646 */ - { (yyval.num) = THREADING_NEUTRAL; } -#line 4864 "parser.tab.c" /* yacc.c:1646 */ +#line 1129 "parser.y" + { (yyval.num) = THREADING_NEUTRAL; } +#line 5013 "parser.tab.c" break; case 375: -#line 1129 "parser.y" /* yacc.c:1646 */ - { (yyval.num) = THREADING_SINGLE; } -#line 4870 "parser.tab.c" /* yacc.c:1646 */ +#line 1130 "parser.y" + { (yyval.num) = THREADING_SINGLE; } +#line 5019 "parser.tab.c" break; case 376: -#line 1130 "parser.y" /* yacc.c:1646 */ - { (yyval.num) = THREADING_FREE; } -#line 4876 "parser.tab.c" /* yacc.c:1646 */ +#line 1131 "parser.y" + { (yyval.num) = THREADING_FREE; } +#line 5025 "parser.tab.c" break; case 377: -#line 1131 "parser.y" /* yacc.c:1646 */ - { (yyval.num) = THREADING_BOTH; } -#line 4882 "parser.tab.c" /* yacc.c:1646 */ +#line 1132 "parser.y" + { (yyval.num) = THREADING_BOTH; } +#line 5031 "parser.tab.c" break; case 378: -#line 1135 "parser.y" /* yacc.c:1646 */ - { (yyval.num) = FC_RP; } -#line 4888 "parser.tab.c" /* yacc.c:1646 */ +#line 1136 "parser.y" + { (yyval.num) = FC_RP; } +#line 5037 "parser.tab.c" break; case 379: -#line 1136 "parser.y" /* yacc.c:1646 */ - { (yyval.num) = FC_UP; } -#line 4894 "parser.tab.c" /* yacc.c:1646 */ +#line 1137 "parser.y" + { (yyval.num) = FC_UP; } +#line 5043 "parser.tab.c" break; case 380: -#line 1137 "parser.y" /* yacc.c:1646 */ - { (yyval.num) = FC_FP; } -#line 4900 "parser.tab.c" /* yacc.c:1646 */ +#line 1138 "parser.y" + { (yyval.num) = FC_FP; } +#line 5049 "parser.tab.c" break; case 381: -#line 1140 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_struct((yyvsp[-3].str), current_namespace, TRUE, (yyvsp[-1].var_list)); } -#line 4906 "parser.tab.c" /* yacc.c:1646 */ +#line 1141 "parser.y" + { (yyval.type) = type_new_struct((yyvsp[-3].str), current_namespace, TRUE, (yyvsp[-1].var_list)); } +#line 5055 "parser.tab.c" break; case 382: -#line 1143 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_void(); } -#line 4912 "parser.tab.c" /* yacc.c:1646 */ +#line 1144 "parser.y" + { (yyval.type) = type_new_void(); } +#line 5061 "parser.tab.c" break; case 383: -#line 1144 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } -#line 4918 "parser.tab.c" /* yacc.c:1646 */ +#line 1145 "parser.y" + { (yyval.type) = find_type_or_error((yyvsp[0].str), 0); } +#line 5067 "parser.tab.c" break; case 384: -#line 1145 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[0].type); } -#line 4924 "parser.tab.c" /* yacc.c:1646 */ +#line 1146 "parser.y" + { (yyval.type) = (yyvsp[0].type); } +#line 5073 "parser.tab.c" break; case 385: -#line 1146 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[0].type); } -#line 4930 "parser.tab.c" /* yacc.c:1646 */ +#line 1147 "parser.y" + { (yyval.type) = (yyvsp[0].type); } +#line 5079 "parser.tab.c" break; case 386: -#line 1147 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_enum((yyvsp[0].str), current_namespace, FALSE, NULL); } -#line 4936 "parser.tab.c" /* yacc.c:1646 */ +#line 1148 "parser.y" + { (yyval.type) = type_new_enum((yyvsp[0].str), current_namespace, FALSE, NULL); } +#line 5085 "parser.tab.c" break; case 387: -#line 1148 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[0].type); } -#line 4942 "parser.tab.c" /* yacc.c:1646 */ +#line 1149 "parser.y" + { (yyval.type) = (yyvsp[0].type); } +#line 5091 "parser.tab.c" break; case 388: -#line 1149 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_struct((yyvsp[0].str), current_namespace, FALSE, NULL); } -#line 4948 "parser.tab.c" /* yacc.c:1646 */ +#line 1150 "parser.y" + { (yyval.type) = type_new_struct((yyvsp[0].str), current_namespace, FALSE, NULL); } +#line 5097 "parser.tab.c" break; case 389: -#line 1150 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = (yyvsp[0].type); } -#line 4954 "parser.tab.c" /* yacc.c:1646 */ +#line 1151 "parser.y" + { (yyval.type) = (yyvsp[0].type); } +#line 5103 "parser.tab.c" break; case 390: -#line 1151 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[0].str), FALSE, NULL); } -#line 4960 "parser.tab.c" /* yacc.c:1646 */ +#line 1152 "parser.y" + { (yyval.type) = type_new_nonencapsulated_union((yyvsp[0].str), FALSE, NULL); } +#line 5109 "parser.tab.c" break; case 391: -#line 1152 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = make_safearray((yyvsp[-1].type)); } -#line 4966 "parser.tab.c" /* yacc.c:1646 */ +#line 1153 "parser.y" + { (yyval.type) = make_safearray((yyvsp[-1].type)); } +#line 5115 "parser.tab.c" break; case 392: -#line 1156 "parser.y" /* yacc.c:1646 */ - { (yyvsp[-4].attr_list) = append_attribs((yyvsp[-4].attr_list), (yyvsp[-2].attr_list)); +#line 1157 "parser.y" + { (yyvsp[-4].attr_list) = append_attribs((yyvsp[-4].attr_list), (yyvsp[-2].attr_list)); reg_typedefs((yyvsp[-1].declspec), (yyvsp[0].declarator_list), check_typedef_attrs((yyvsp[-4].attr_list))); (yyval.statement) = make_statement_typedef((yyvsp[0].declarator_list)); } -#line 4975 "parser.tab.c" /* yacc.c:1646 */ +#line 5124 "parser.tab.c" break; case 393: -#line 1163 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[-3].str), TRUE, (yyvsp[-1].var_list)); } -#line 4981 "parser.tab.c" /* yacc.c:1646 */ +#line 1164 "parser.y" + { (yyval.type) = type_new_nonencapsulated_union((yyvsp[-3].str), TRUE, (yyvsp[-1].var_list)); } +#line 5130 "parser.tab.c" break; case 394: -#line 1166 "parser.y" /* yacc.c:1646 */ - { (yyval.type) = type_new_encapsulated_union((yyvsp[-8].str), (yyvsp[-5].var), (yyvsp[-3].var), (yyvsp[-1].var_list)); } -#line 4987 "parser.tab.c" /* yacc.c:1646 */ +#line 1167 "parser.y" + { (yyval.type) = type_new_encapsulated_union((yyvsp[-8].str), (yyvsp[-5].var), (yyvsp[-3].var), (yyvsp[-1].var_list)); } +#line 5136 "parser.tab.c" break; case 395: -#line 1170 "parser.y" /* yacc.c:1646 */ - { (yyval.num) = MAKEVERSION((yyvsp[0].num), 0); } -#line 4993 "parser.tab.c" /* yacc.c:1646 */ +#line 1171 "parser.y" + { (yyval.num) = MAKEVERSION((yyvsp[0].num), 0); } +#line 5142 "parser.tab.c" break; case 396: -#line 1171 "parser.y" /* yacc.c:1646 */ - { (yyval.num) = MAKEVERSION((yyvsp[-2].num), (yyvsp[0].num)); } -#line 4999 "parser.tab.c" /* yacc.c:1646 */ +#line 1172 "parser.y" + { (yyval.num) = MAKEVERSION((yyvsp[-2].num), (yyvsp[0].num)); } +#line 5148 "parser.tab.c" break; case 397: -#line 1172 "parser.y" /* yacc.c:1646 */ - { (yyval.num) = (yyvsp[0].num); } -#line 5005 "parser.tab.c" /* yacc.c:1646 */ +#line 1173 "parser.y" + { (yyval.num) = (yyvsp[0].num); } +#line 5154 "parser.tab.c" break; case 402: -#line 1185 "parser.y" /* yacc.c:1646 */ - { type_t *type = find_type_or_error((yyvsp[-1].str), 0); +#line 1188 "parser.y" + { type_t *type = find_type_or_error((yyvsp[-1].str), 0); type->attrs = append_attr_list(type->attrs, (yyvsp[-2].attr_list)); } -#line 5013 "parser.tab.c" /* yacc.c:1646 */ +#line 5162 "parser.tab.c" break; case 403: -#line 1190 "parser.y" /* yacc.c:1646 */ - { type_t *iface = find_type_or_error2((yyvsp[-3].str), 0); +#line 1195 "parser.y" + { type_t *iface = find_type_or_error2((yyvsp[-3].str), 0); if (type_get_type(iface) != TYPE_INTERFACE) error_loc("%s is not an interface\n", iface->name); iface->attrs = append_attr_list(iface->attrs, (yyvsp[-5].attr_list)); } -#line 5023 "parser.tab.c" /* yacc.c:1646 */ +#line 5172 "parser.tab.c" break; case 404: -#line 1197 "parser.y" /* yacc.c:1646 */ - { (yyval.attr_list) = NULL; } -#line 5029 "parser.tab.c" /* yacc.c:1646 */ +#line 1203 "parser.y" + { (yyval.attr_list) = NULL; } +#line 5178 "parser.tab.c" break; case 405: -#line 1198 "parser.y" /* yacc.c:1646 */ - { (yyval.attr_list) = (yyvsp[-1].attr_list); } -#line 5035 "parser.tab.c" /* yacc.c:1646 */ +#line 1204 "parser.y" + { (yyval.attr_list) = (yyvsp[-1].attr_list); } +#line 5184 "parser.tab.c" break; case 406: -#line 1201 "parser.y" /* yacc.c:1646 */ - { (yyval.attr_list) = append_attr(NULL, (yyvsp[0].attr)); } -#line 5041 "parser.tab.c" /* yacc.c:1646 */ +#line 1208 "parser.y" + { (yyval.attr_list) = append_attr(NULL, (yyvsp[0].attr)); } +#line 5190 "parser.tab.c" break; case 407: -#line 1202 "parser.y" /* yacc.c:1646 */ - { (yyval.attr_list) = append_attr((yyvsp[-2].attr_list), (yyvsp[0].attr)); } -#line 5047 "parser.tab.c" /* yacc.c:1646 */ +#line 1209 "parser.y" + { (yyval.attr_list) = append_attr((yyvsp[-2].attr_list), (yyvsp[0].attr)); } +#line 5196 "parser.tab.c" break; case 408: -#line 1205 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_ENCODE); } -#line 5053 "parser.tab.c" /* yacc.c:1646 */ +#line 1214 "parser.y" + { (yyval.attr) = make_attrv(ATTR_ALLOCATE, (yyvsp[-1].num)); } +#line 5202 "parser.tab.c" break; case 409: -#line 1206 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_DECODE); } -#line 5059 "parser.tab.c" /* yacc.c:1646 */ +#line 1215 "parser.y" + { (yyval.attr) = make_attr(ATTR_ENCODE); } +#line 5208 "parser.tab.c" break; case 410: -#line 1207 "parser.y" /* yacc.c:1646 */ - { (yyval.attr) = make_attr(ATTR_EXPLICIT_HANDLE); } -#line 5065 "parser.tab.c" /* yacc.c:1646 */ +#line 1216 "parser.y" + { (yyval.attr) = make_attr(ATTR_DECODE); } +#line 5214 "parser.tab.c" + break; + + case 411: +#line 1217 "parser.y" + { (yyval.attr) = make_attr(ATTR_EXPLICIT_HANDLE); } +#line 5220 "parser.tab.c" + break; + + case 412: +#line 1221 "parser.y" + { (yyval.num) = (yyvsp[0].num); } +#line 5226 "parser.tab.c" + break; + + case 413: +#line 1223 "parser.y" + { (yyval.num) = (yyvsp[-2].num) | (yyvsp[0].num); } +#line 5232 "parser.tab.c" + break; + + case 414: +#line 1227 "parser.y" + { (yyval.num) = FC_DONT_FREE; } +#line 5238 "parser.tab.c" + break; + + case 415: +#line 1228 "parser.y" + { (yyval.num) = 0; } +#line 5244 "parser.tab.c" + break; + + case 416: +#line 1229 "parser.y" + { (yyval.num) = FC_ALLOCATE_ALL_NODES; } +#line 5250 "parser.tab.c" + break; + + case 417: +#line 1230 "parser.y" + { (yyval.num) = 0; } +#line 5256 "parser.tab.c" break; -#line 5069 "parser.tab.c" /* yacc.c:1646 */ +#line 5260 "parser.tab.c" + default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -5090,14 +5282,13 @@ yyreduce: /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; - if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTOKENS]; + { + const int yylhs = yyr1[yyn] - YYNTOKENS; + const int yyi = yypgoto[yylhs] + *yyssp; + yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp + ? yytable[yyi] + : yydefgoto[yylhs]); + } goto yynewstate; @@ -5129,7 +5320,7 @@ yyerrlab: { if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + yymsg = YY_CAST (char *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, yymsg_alloc))); if (!yymsg) { yymsg = yymsgbuf; @@ -5180,12 +5371,10 @@ yyerrlab: | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: - - /* Pacify compilers like GCC when the user code never invokes - YYERROR and the label yyerrorlab therefore never appears in user - code. */ - if (/*CONSTCOND*/ 0) - goto yyerrorlab; + /* Pacify compilers when the user code never invokes YYERROR and the + label yyerrorlab therefore never appears in user code. */ + if (0) + YYERROR; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ @@ -5247,6 +5436,7 @@ yyacceptlab: yyresult = 0; goto yyreturn; + /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ @@ -5254,6 +5444,7 @@ yyabortlab: yyresult = 1; goto yyreturn; + #if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | @@ -5264,6 +5455,10 @@ yyexhaustedlab: /* Fall through. */ #endif + +/*-----------------------------------------------------. +| yyreturn -- parsing is finished, return the result. | +`-----------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -5280,7 +5475,7 @@ yyreturn: while (yyssp != yyss) { yydestruct ("Cleanup: popping", - yystos[*yyssp], yyvsp); + yystos[+*yyssp], yyvsp); YYPOPSTACK (1); } #ifndef yyoverflow @@ -5293,7 +5488,7 @@ yyreturn: #endif return yyresult; } -#line 1209 "parser.y" /* yacc.c:1906 */ +#line 1232 "parser.y" static void decl_builtin_basic(const char *name, enum type_basic_type type) @@ -6281,6 +6476,7 @@ struct allowed_attr allowed_attr[] = { /* attr { D ACF I Fn ARG T En St Un Fi L DI M C } */ /* ATTR_AGGREGATABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "aggregatable" }, + /* ATTR_ALLOCATE */ { 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "allocate" }, /* 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" }, diff --git a/sdk/tools/widl/parser.tab.h b/sdk/tools/widl/parser.tab.h index 39cd683b177..eebf1e566a4 100644 --- a/sdk/tools/widl/parser.tab.h +++ b/sdk/tools/widl/parser.tab.h @@ -1,8 +1,9 @@ -/* A Bison parser, made by GNU Bison 3.0. */ +/* A Bison parser, made by GNU Bison 3.5.4. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2013 Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 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 @@ -30,8 +31,11 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ -#ifndef YY_PARSER_E_REACTOSSYNC_MSVC_HOST_TOOLS_SDK_TOOLS_WIDL_PARSER_TAB_H_INCLUDED -# define YY_PARSER_E_REACTOSSYNC_MSVC_HOST_TOOLS_SDK_TOOLS_WIDL_PARSER_TAB_H_INCLUDED +/* Undocumented macros, especially those whose name start with YY_, + are private implementation details. Do not rely on them. */ + +#ifndef YY_PARSER_PARSER_TAB_H_INCLUDED +# define YY_PARSER_PARSER_TAB_H_INCLUDED /* Debug traces. */ #ifndef YYDEBUG # define YYDEBUG 0 @@ -68,178 +72,180 @@ extern int parser_debug; LOGICALAND = 278, ELLIPSIS = 279, tAGGREGATABLE = 280, - tALLOCATE = 281, - tANNOTATION = 282, - tAPPOBJECT = 283, - tASYNC = 284, - tASYNCUUID = 285, - tAUTOHANDLE = 286, - tBINDABLE = 287, - tBOOLEAN = 288, - tBROADCAST = 289, - tBYTE = 290, - tBYTECOUNT = 291, - tCALLAS = 292, - tCALLBACK = 293, - tCASE = 294, - tCDECL = 295, - tCHAR = 296, - tCOCLASS = 297, - tCODE = 298, - tCOMMSTATUS = 299, - tCONST = 300, - tCONTEXTHANDLE = 301, - tCONTEXTHANDLENOSERIALIZE = 302, - tCONTEXTHANDLESERIALIZE = 303, - tCONTROL = 304, - tCPPQUOTE = 305, - tDECODE = 306, - tDEFAULT = 307, - tDEFAULTBIND = 308, - tDEFAULTCOLLELEM = 309, - tDEFAULTVALUE = 310, - tDEFAULTVTABLE = 311, - tDISABLECONSISTENCYCHECK = 312, - tDISPLAYBIND = 313, - tDISPINTERFACE = 314, - tDLLNAME = 315, - tDOUBLE = 316, - tDUAL = 317, - tENABLEALLOCATE = 318, - tENCODE = 319, - tENDPOINT = 320, - tENTRY = 321, - tENUM = 322, - tERRORSTATUST = 323, - tEXPLICITHANDLE = 324, - tEXTERN = 325, - tFALSE = 326, - tFASTCALL = 327, - tFAULTSTATUS = 328, - tFLOAT = 329, - tFORCEALLOCATE = 330, - tHANDLE = 331, - tHANDLET = 332, - tHELPCONTEXT = 333, - tHELPFILE = 334, - tHELPSTRING = 335, - tHELPSTRINGCONTEXT = 336, - tHELPSTRINGDLL = 337, - tHIDDEN = 338, - tHYPER = 339, - tID = 340, - tIDEMPOTENT = 341, - tIGNORE = 342, - tIIDIS = 343, - tIMMEDIATEBIND = 344, - tIMPLICITHANDLE = 345, - tIMPORT = 346, - tIMPORTLIB = 347, - tIN = 348, - tIN_LINE = 349, - tINLINE = 350, - tINPUTSYNC = 351, - tINT = 352, - tINT32 = 353, - tINT3264 = 354, - tINT64 = 355, - tINTERFACE = 356, - tLCID = 357, - tLENGTHIS = 358, - tLIBRARY = 359, - tLICENSED = 360, - tLOCAL = 361, - tLONG = 362, - tMAYBE = 363, - tMESSAGE = 364, - tMETHODS = 365, - tMODULE = 366, - tNAMESPACE = 367, - tNOCODE = 368, - tNONBROWSABLE = 369, - tNONCREATABLE = 370, - tNONEXTENSIBLE = 371, - tNOTIFY = 372, - tNOTIFYFLAG = 373, - tNULL = 374, - tOBJECT = 375, - tODL = 376, - tOLEAUTOMATION = 377, - tOPTIMIZE = 378, - tOPTIONAL = 379, - tOUT = 380, - tPARTIALIGNORE = 381, - tPASCAL = 382, - tPOINTERDEFAULT = 383, - tPRAGMA_WARNING = 384, - tPROGID = 385, - tPROPERTIES = 386, - tPROPGET = 387, - tPROPPUT = 388, - tPROPPUTREF = 389, - tPROXY = 390, - tPTR = 391, - tPUBLIC = 392, - tRANGE = 393, - tREADONLY = 394, - tREF = 395, - tREGISTER = 396, - tREPRESENTAS = 397, - tREQUESTEDIT = 398, - tRESTRICTED = 399, - tRETVAL = 400, - tSAFEARRAY = 401, - tSHORT = 402, - tSIGNED = 403, - tSIZEIS = 404, - tSIZEOF = 405, - tSMALL = 406, - tSOURCE = 407, - tSTATIC = 408, - tSTDCALL = 409, - tSTRICTCONTEXTHANDLE = 410, - tSTRING = 411, - tSTRUCT = 412, - tSWITCH = 413, - tSWITCHIS = 414, - tSWITCHTYPE = 415, - tTHREADING = 416, - tTRANSMITAS = 417, - tTRUE = 418, - tTYPEDEF = 419, - tUIDEFAULT = 420, - tUNION = 421, - tUNIQUE = 422, - tUNSIGNED = 423, - tUSESGETLASTERROR = 424, - tUSERMARSHAL = 425, - tUUID = 426, - tV1ENUM = 427, - tVARARG = 428, - tVERSION = 429, - tVIPROGID = 430, - tVOID = 431, - tWCHAR = 432, - tWIREMARSHAL = 433, - tAPARTMENT = 434, - tNEUTRAL = 435, - tSINGLE = 436, - tFREE = 437, - tBOTH = 438, - CAST = 439, - PPTR = 440, - POS = 441, - NEG = 442, - ADDRESSOF = 443 + tALLNODES = 281, + tALLOCATE = 282, + tANNOTATION = 283, + tAPPOBJECT = 284, + tASYNC = 285, + tASYNCUUID = 286, + tAUTOHANDLE = 287, + tBINDABLE = 288, + tBOOLEAN = 289, + tBROADCAST = 290, + tBYTE = 291, + tBYTECOUNT = 292, + tCALLAS = 293, + tCALLBACK = 294, + tCASE = 295, + tCDECL = 296, + tCHAR = 297, + tCOCLASS = 298, + tCODE = 299, + tCOMMSTATUS = 300, + tCONST = 301, + tCONTEXTHANDLE = 302, + tCONTEXTHANDLENOSERIALIZE = 303, + tCONTEXTHANDLESERIALIZE = 304, + tCONTROL = 305, + tCPPQUOTE = 306, + tDECODE = 307, + tDEFAULT = 308, + tDEFAULTBIND = 309, + tDEFAULTCOLLELEM = 310, + tDEFAULTVALUE = 311, + tDEFAULTVTABLE = 312, + tDISABLECONSISTENCYCHECK = 313, + tDISPLAYBIND = 314, + tDISPINTERFACE = 315, + tDLLNAME = 316, + tDONTFREE = 317, + tDOUBLE = 318, + tDUAL = 319, + tENABLEALLOCATE = 320, + tENCODE = 321, + tENDPOINT = 322, + tENTRY = 323, + tENUM = 324, + tERRORSTATUST = 325, + tEXPLICITHANDLE = 326, + tEXTERN = 327, + tFALSE = 328, + tFASTCALL = 329, + tFAULTSTATUS = 330, + tFLOAT = 331, + tFORCEALLOCATE = 332, + tHANDLE = 333, + tHANDLET = 334, + tHELPCONTEXT = 335, + tHELPFILE = 336, + tHELPSTRING = 337, + tHELPSTRINGCONTEXT = 338, + tHELPSTRINGDLL = 339, + tHIDDEN = 340, + tHYPER = 341, + tID = 342, + tIDEMPOTENT = 343, + tIGNORE = 344, + tIIDIS = 345, + tIMMEDIATEBIND = 346, + tIMPLICITHANDLE = 347, + tIMPORT = 348, + tIMPORTLIB = 349, + tIN = 350, + tIN_LINE = 351, + tINLINE = 352, + tINPUTSYNC = 353, + tINT = 354, + tINT32 = 355, + tINT3264 = 356, + tINT64 = 357, + tINTERFACE = 358, + tLCID = 359, + tLENGTHIS = 360, + tLIBRARY = 361, + tLICENSED = 362, + tLOCAL = 363, + tLONG = 364, + tMAYBE = 365, + tMESSAGE = 366, + tMETHODS = 367, + tMODULE = 368, + tNAMESPACE = 369, + tNOCODE = 370, + tNONBROWSABLE = 371, + tNONCREATABLE = 372, + tNONEXTENSIBLE = 373, + tNOTIFY = 374, + tNOTIFYFLAG = 375, + tNULL = 376, + tOBJECT = 377, + tODL = 378, + tOLEAUTOMATION = 379, + tOPTIMIZE = 380, + tOPTIONAL = 381, + tOUT = 382, + tPARTIALIGNORE = 383, + tPASCAL = 384, + tPOINTERDEFAULT = 385, + tPRAGMA_WARNING = 386, + tPROGID = 387, + tPROPERTIES = 388, + tPROPGET = 389, + tPROPPUT = 390, + tPROPPUTREF = 391, + tPROXY = 392, + tPTR = 393, + tPUBLIC = 394, + tRANGE = 395, + tREADONLY = 396, + tREF = 397, + tREGISTER = 398, + tREPRESENTAS = 399, + tREQUESTEDIT = 400, + tRESTRICTED = 401, + tRETVAL = 402, + tSAFEARRAY = 403, + tSHORT = 404, + tSIGNED = 405, + tSINGLENODE = 406, + tSIZEIS = 407, + tSIZEOF = 408, + tSMALL = 409, + tSOURCE = 410, + tSTATIC = 411, + tSTDCALL = 412, + tSTRICTCONTEXTHANDLE = 413, + tSTRING = 414, + tSTRUCT = 415, + tSWITCH = 416, + tSWITCHIS = 417, + tSWITCHTYPE = 418, + tTHREADING = 419, + tTRANSMITAS = 420, + tTRUE = 421, + tTYPEDEF = 422, + tUIDEFAULT = 423, + tUNION = 424, + tUNIQUE = 425, + tUNSIGNED = 426, + tUSESGETLASTERROR = 427, + tUSERMARSHAL = 428, + tUUID = 429, + tV1ENUM = 430, + tVARARG = 431, + tVERSION = 432, + tVIPROGID = 433, + tVOID = 434, + tWCHAR = 435, + tWIREMARSHAL = 436, + tAPARTMENT = 437, + tNEUTRAL = 438, + tSINGLE = 439, + tFREE = 440, + tBOTH = 441, + CAST = 442, + PPTR = 443, + POS = 444, + NEG = 445, + ADDRESSOF = 446 }; #endif /* Value type. */ #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -typedef union YYSTYPE YYSTYPE; union YYSTYPE { -#line 144 "parser.y" /* yacc.c:1909 */ +#line 144 "parser.y" attr_t *attr; attr_list_t *attr_list; @@ -267,8 +273,10 @@ union YYSTYPE struct _decl_spec_t *declspec; enum storage_class stgclass; -#line 271 "parser.tab.h" /* yacc.c:1909 */ +#line 277 "parser.tab.h" + }; +typedef union YYSTYPE YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define YYSTYPE_IS_DECLARED 1 #endif @@ -278,4 +286,4 @@ extern YYSTYPE parser_lval; int parser_parse (void); -#endif /* !YY_PARSER_E_REACTOSSYNC_MSVC_HOST_TOOLS_SDK_TOOLS_WIDL_PARSER_TAB_H_INCLUDED */ +#endif /* !YY_PARSER_PARSER_TAB_H_INCLUDED */ diff --git a/sdk/tools/widl/parser.y b/sdk/tools/widl/parser.y index 7b06aa6892d..622e742da19 100644 --- a/sdk/tools/widl/parser.y +++ b/sdk/tools/widl/parser.y @@ -182,7 +182,7 @@ static typelib_t *current_typelib; %token GREATEREQUAL LESSEQUAL %token LOGICALOR LOGICALAND %token ELLIPSIS -%token tAGGREGATABLE tALLOCATE tANNOTATION tAPPOBJECT tASYNC tASYNCUUID +%token tAGGREGATABLE tALLNODES tALLOCATE tANNOTATION tAPPOBJECT tASYNC tASYNCUUID %token tAUTOHANDLE tBINDABLE tBOOLEAN tBROADCAST tBYTE tBYTECOUNT %token tCALLAS tCALLBACK tCASE tCDECL tCHAR tCOCLASS tCODE tCOMMSTATUS %token tCONST tCONTEXTHANDLE tCONTEXTHANDLENOSERIALIZE @@ -193,7 +193,7 @@ static typelib_t *current_typelib; %token tDEFAULTVTABLE %token tDISABLECONSISTENCYCHECK tDISPLAYBIND %token tDISPINTERFACE -%token tDLLNAME tDOUBLE tDUAL +%token tDLLNAME tDONTFREE tDOUBLE tDUAL %token tENABLEALLOCATE tENCODE tENDPOINT %token tENTRY tENUM tERRORSTATUST %token tEXPLICITHANDLE tEXTERN @@ -245,7 +245,7 @@ static typelib_t *current_typelib; %token tRETVAL %token tSAFEARRAY %token tSHORT -%token tSIGNED +%token tSIGNED tSINGLENODE %token tSIZEIS tSIZEOF %token tSMALL %token tSOURCE @@ -304,6 +304,7 @@ static typelib_t *current_typelib; %type statement typedef pragma_warning %type gbl_statements imp_statements int_statements %type warnings +%type allocate_option_list allocate_option %left ',' %right '?' ':' @@ -1175,16 +1176,20 @@ version: acf_statements : /* empty */ | acf_interface acf_statements + ; acf_int_statements : /* empty */ | acf_int_statement acf_int_statements + ; acf_int_statement : tTYPEDEF acf_attributes aKNOWNTYPE ';' { type_t *type = find_type_or_error($3, 0); type->attrs = append_attr_list(type->attrs, $2); } + ; + acf_interface : acf_attributes tINTERFACE aKNOWNTYPE '{' acf_int_statements '}' { type_t *iface = find_type_or_error2($3, 0); @@ -1192,20 +1197,38 @@ acf_interface error_loc("%s is not an interface\n", iface->name); iface->attrs = append_attr_list(iface->attrs, $1); } + ; acf_attributes : /* empty */ { $$ = NULL; }; | '[' acf_attribute_list ']' { $$ = $2; }; + ; acf_attribute_list : acf_attribute { $$ = append_attr(NULL, $1); } | acf_attribute_list ',' acf_attribute { $$ = append_attr($1, $3); } + ; acf_attribute - : tENCODE { $$ = make_attr(ATTR_ENCODE); } + : tALLOCATE '(' allocate_option_list ')' + { $$ = make_attrv(ATTR_ALLOCATE, $3); } + | tENCODE { $$ = make_attr(ATTR_ENCODE); } | tDECODE { $$ = make_attr(ATTR_DECODE); } | tEXPLICITHANDLE { $$ = make_attr(ATTR_EXPLICIT_HANDLE); } + ; +allocate_option_list + : allocate_option { $$ = $1; } + | allocate_option_list ',' allocate_option + { $$ = $1 | $3; } + ; + +allocate_option + : tDONTFREE { $$ = FC_DONT_FREE; } + | tFREE { $$ = 0; } + | tALLNODES { $$ = FC_ALLOCATE_ALL_NODES; } + | tSINGLENODE { $$ = 0; } + ; %% static void decl_builtin_basic(const char *name, enum type_basic_type type) @@ -2193,6 +2216,7 @@ struct allowed_attr allowed_attr[] = { /* attr { D ACF I Fn ARG T En St Un Fi L DI M C } */ /* ATTR_AGGREGATABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "aggregatable" }, + /* ATTR_ALLOCATE */ { 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, "allocate" }, /* 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" }, diff --git a/sdk/tools/widl/parser.yy.c b/sdk/tools/widl/parser.yy.c index 4ddd9df5b64..0937358237e 100644 --- a/sdk/tools/widl/parser.yy.c +++ b/sdk/tools/widl/parser.yy.c @@ -8,11 +8,17 @@ #define yy_create_buffer parser__create_buffer #define yy_delete_buffer parser__delete_buffer -#define yy_flex_debug parser__flex_debug +#define yy_scan_buffer parser__scan_buffer +#define yy_scan_string parser__scan_string +#define yy_scan_bytes parser__scan_bytes #define yy_init_buffer parser__init_buffer #define yy_flush_buffer parser__flush_buffer #define yy_load_buffer_state parser__load_buffer_state #define yy_switch_to_buffer parser__switch_to_buffer +#define yypush_buffer_state parser_push_buffer_state +#define yypop_buffer_state parser_pop_buffer_state +#define yyensure_buffer_stack parser_ensure_buffer_stack +#define yy_flex_debug parser__flex_debug #define yyin parser_in #define yyleng parser_leng #define yylex parser_lex @@ -27,15 +33,250 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 37 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif +#ifdef yy_create_buffer +#define parser__create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer parser__create_buffer +#endif + +#ifdef yy_delete_buffer +#define parser__delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer parser__delete_buffer +#endif + +#ifdef yy_scan_buffer +#define parser__scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer parser__scan_buffer +#endif + +#ifdef yy_scan_string +#define parser__scan_string_ALREADY_DEFINED +#else +#define yy_scan_string parser__scan_string +#endif + +#ifdef yy_scan_bytes +#define parser__scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes parser__scan_bytes +#endif + +#ifdef yy_init_buffer +#define parser__init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer parser__init_buffer +#endif + +#ifdef yy_flush_buffer +#define parser__flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer parser__flush_buffer +#endif + +#ifdef yy_load_buffer_state +#define parser__load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state parser__load_buffer_state +#endif + +#ifdef yy_switch_to_buffer +#define parser__switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer parser__switch_to_buffer +#endif + +#ifdef yypush_buffer_state +#define parser_push_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state parser_push_buffer_state +#endif + +#ifdef yypop_buffer_state +#define parser_pop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state parser_pop_buffer_state +#endif + +#ifdef yyensure_buffer_stack +#define parser_ensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack parser_ensure_buffer_stack +#endif + +#ifdef yylex +#define parser_lex_ALREADY_DEFINED +#else +#define yylex parser_lex +#endif + +#ifdef yyrestart +#define parser_restart_ALREADY_DEFINED +#else +#define yyrestart parser_restart +#endif + +#ifdef yylex_init +#define parser_lex_init_ALREADY_DEFINED +#else +#define yylex_init parser_lex_init +#endif + +#ifdef yylex_init_extra +#define parser_lex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra parser_lex_init_extra +#endif + +#ifdef yylex_destroy +#define parser_lex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy parser_lex_destroy +#endif + +#ifdef yyget_debug +#define parser_get_debug_ALREADY_DEFINED +#else +#define yyget_debug parser_get_debug +#endif + +#ifdef yyset_debug +#define parser_set_debug_ALREADY_DEFINED +#else +#define yyset_debug parser_set_debug +#endif + +#ifdef yyget_extra +#define parser_get_extra_ALREADY_DEFINED +#else +#define yyget_extra parser_get_extra +#endif + +#ifdef yyset_extra +#define parser_set_extra_ALREADY_DEFINED +#else +#define yyset_extra parser_set_extra +#endif + +#ifdef yyget_in +#define parser_get_in_ALREADY_DEFINED +#else +#define yyget_in parser_get_in +#endif + +#ifdef yyset_in +#define parser_set_in_ALREADY_DEFINED +#else +#define yyset_in parser_set_in +#endif + +#ifdef yyget_out +#define parser_get_out_ALREADY_DEFINED +#else +#define yyget_out parser_get_out +#endif + +#ifdef yyset_out +#define parser_set_out_ALREADY_DEFINED +#else +#define yyset_out parser_set_out +#endif + +#ifdef yyget_leng +#define parser_get_leng_ALREADY_DEFINED +#else +#define yyget_leng parser_get_leng +#endif + +#ifdef yyget_text +#define parser_get_text_ALREADY_DEFINED +#else +#define yyget_text parser_get_text +#endif + +#ifdef yyget_lineno +#define parser_get_lineno_ALREADY_DEFINED +#else +#define yyget_lineno parser_get_lineno +#endif + +#ifdef yyset_lineno +#define parser_set_lineno_ALREADY_DEFINED +#else +#define yyset_lineno parser_set_lineno +#endif + +#ifdef yywrap +#define parser_wrap_ALREADY_DEFINED +#else +#define yywrap parser_wrap +#endif + +#ifdef yyalloc +#define parser_alloc_ALREADY_DEFINED +#else +#define yyalloc parser_alloc +#endif + +#ifdef yyrealloc +#define parser_realloc_ALREADY_DEFINED +#else +#define yyrealloc parser_realloc +#endif + +#ifdef yyfree +#define parser_free_ALREADY_DEFINED +#else +#define yyfree parser_free +#endif + +#ifdef yytext +#define parser_text_ALREADY_DEFINED +#else +#define yytext parser_text +#endif + +#ifdef yyleng +#define parser_leng_ALREADY_DEFINED +#else +#define yyleng parser_leng +#endif + +#ifdef yyin +#define parser_in_ALREADY_DEFINED +#else +#define yyin parser_in +#endif + +#ifdef yyout +#define parser_out_ALREADY_DEFINED +#else +#define yyout parser_out +#endif + +#ifdef yy_flex_debug +#define parser__flex_debug_ALREADY_DEFINED +#else +#define yy_flex_debug parser__flex_debug +#endif + +#ifdef yylineno +#define parser_lineno_ALREADY_DEFINED +#else +#define yylineno parser_lineno +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ + #include #include #include @@ -43,125 +284,104 @@ /* end standard C headers. */ +/* begin standard C++ headers. */ + /* flex integer type definitions */ -#ifndef FLEXINT_H -#define FLEXINT_H +#ifndef YYFLEX_INTTYPES_DEFINED +#define YYFLEX_INTTYPES_DEFINED -/* C99 systems have . Non-C99 systems may or may not. */ - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, - * if you want the limit (max/min) macros for int types. +/* Prefer C99 integer types if available. */ +# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +/* Include and not because Solaris 2.6 has the former + * and not the latter. */ -#ifndef __STDC_LIMIT_MACROS -#define __STDC_LIMIT_MACROS 1 -#endif - #include +# define YYFLEX_USE_STDINT +# else +# if defined(_MSC_VER) && _MSC_VER >= 1600 +/* Visual C++ 2010 does not define __STDC_VERSION__ and has but not + * . + */ +#include +# define YYFLEX_USE_STDINT +# endif +# endif +# ifdef YYFLEX_USE_STDINT typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; -#else -typedef signed char flex_int8_t; +# else +typedef unsigned char flex_uint8_t; typedef short int flex_int16_t; -typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; +# ifdef __STDC__ +typedef signed char flex_int8_t; +/* ISO C only requires at least 16 bits for int. */ +#include +# if UINT_MAX >= 4294967295 +# define YYFLEX_INT32_DEFINED +typedef int flex_int32_t; typedef unsigned int flex_uint32_t; +# endif +# else +typedef char flex_int8_t; +# endif +# ifndef YYFLEX_INT32_DEFINED +typedef long int flex_int32_t; +typedef unsigned long int flex_uint32_t; +# endif +# endif +#endif /* YYFLEX_INTTYPES_DEFINED */ -/* Limits of integral types. */ -#ifndef INT8_MIN -#define INT8_MIN (-128) -#endif -#ifndef INT16_MIN -#define INT16_MIN (-32767-1) -#endif -#ifndef INT32_MIN -#define INT32_MIN (-2147483647-1) -#endif -#ifndef INT8_MAX -#define INT8_MAX (127) -#endif -#ifndef INT16_MAX -#define INT16_MAX (32767) -#endif -#ifndef INT32_MAX -#define INT32_MAX (2147483647) -#endif -#ifndef UINT8_MAX -#define UINT8_MAX (255U) -#endif -#ifndef UINT16_MAX -#define UINT16_MAX (65535U) -#endif -#ifndef UINT32_MAX -#define UINT32_MAX (4294967295U) -#endif - -#endif /* ! C99 */ - -#endif /* ! FLEXINT_H */ - -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Returned upon end-of-file. */ #define YY_NULL 0 -/* Promotes a possibly negative, possibly signed char to an unsigned - * integer for use as an array index. If the signed char is negative, - * we want to instead treat it as an 8-bit unsigned char, hence the - * double cast. +/* Promotes a possibly negative, possibly signed char to an + * integer in range [0..255] for use as an array index. */ -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c) +#define YY_SC_TO_UI(c) ((YY_CHAR) (c)) /* Enter a start condition. This macro really ought to take a parameter, * but we do it the disgusting crufty way forced on us by the ()-less * definition of BEGIN. */ #define BEGIN (yy_start) = 1 + 2 * - /* Translate the current start state into a value that can be later handed * to BEGIN to return to the state. The YYSTATE alias is for lex * compatibility. */ #define YY_START (((yy_start) - 1) / 2) #define YYSTATE YY_START - /* Action number for EOF rule of a given start state. */ #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1) - /* Special action meaning "start processing a new file". */ -#define YY_NEW_FILE parser_restart(parser_in ) - +#define YY_NEW_FILE yyrestart( yyin ) #define YY_END_OF_BUFFER_CHAR 0 /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -178,30 +398,30 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; typedef size_t yy_size_t; #endif -extern yy_size_t parser_leng; +extern int yyleng; -extern FILE *parser_in, *parser_out; +extern FILE *yyin, *yyout; #define EOB_ACT_CONTINUE_SCAN 0 #define EOB_ACT_END_OF_FILE 1 #define EOB_ACT_LAST_MATCH 2 - + #define YY_LESS_LINENO(n) + #define YY_LINENO_REWIND_TO(ptr) /* Return all but the first "n" matched characters back to the input stream. */ #define yyless(n) \ do \ { \ - /* Undo effects of setting up parser_text. */ \ + /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ *yy_cp = (yy_hold_char); \ YY_RESTORE_YY_MORE_OFFSET \ (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \ - YY_DO_BEFORE_ACTION; /* set up parser_text again */ \ + YY_DO_BEFORE_ACTION; /* set up yytext again */ \ } \ while ( 0 ) - #define unput(c) yyunput( c, (yytext_ptr) ) #ifndef YY_STRUCT_YY_BUFFER_STATE @@ -216,12 +436,12 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - yy_size_t yy_n_chars; + int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -244,7 +464,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -261,8 +481,8 @@ struct yy_buffer_state * possible backing-up. * * When we actually see the EOF, we change the status to "new" - * (via parser_restart()), so that the user can continue scanning by - * just pointing parser_in at a new input file. + * (via yyrestart()), so that the user can continue scanning by + * just pointing yyin at a new input file. */ #define YY_BUFFER_EOF_PENDING 2 @@ -272,7 +492,7 @@ struct yy_buffer_state /* Stack of input buffers. */ static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */ static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */ -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ +static YY_BUFFER_STATE * yy_buffer_stack = NULL; /**< Stack as an array. */ /* We provide macros for accessing buffer states in case in the * future we want to put the buffer states in a more general @@ -283,103 +503,98 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */ #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \ ? (yy_buffer_stack)[(yy_buffer_stack_top)] \ : NULL) - /* Same as previous macro, but useful when we know that the buffer stack is not * NULL or when we need an lvalue. For internal use only. */ #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)] -/* yy_hold_char holds the character lost when parser_text is formed. */ +/* yy_hold_char holds the character lost when yytext is formed. */ static char yy_hold_char; -static yy_size_t yy_n_chars; /* number of characters read into yy_ch_buf */ -yy_size_t parser_leng; +static int yy_n_chars; /* number of characters read into yy_ch_buf */ +int yyleng; /* Points to current character in buffer. */ -static char *yy_c_buf_p = (char *) 0; +static char *yy_c_buf_p = NULL; static int yy_init = 0; /* whether we need to initialize */ static int yy_start = 0; /* start state number */ -/* Flag which is used to allow parser_wrap()'s to do buffer switches - * instead of setting up a fresh parser_in. A bit of a hack ... +/* Flag which is used to allow yywrap()'s to do buffer switches + * instead of setting up a fresh yyin. A bit of a hack ... */ static int yy_did_buffer_switch_on_eof; -void parser_restart (FILE *input_file ); -void parser__switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE parser__create_buffer (FILE *file,int size ); -void parser__delete_buffer (YY_BUFFER_STATE b ); -void parser__flush_buffer (YY_BUFFER_STATE b ); -void parser_push_buffer_state (YY_BUFFER_STATE new_buffer ); -void parser_pop_buffer_state (void ); +void yyrestart ( FILE *input_file ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); +void yy_delete_buffer ( YY_BUFFER_STATE b ); +void yy_flush_buffer ( YY_BUFFER_STATE b ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state ( void ); -static void parser_ensure_buffer_stack (void ); -static void parser__load_buffer_state (void ); -static void parser__init_buffer (YY_BUFFER_STATE b,FILE *file ); +static void yyensure_buffer_stack ( void ); +static void yy_load_buffer_state ( void ); +static void yy_init_buffer ( YY_BUFFER_STATE b, FILE *file ); +#define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER ) -#define YY_FLUSH_BUFFER parser__flush_buffer(YY_CURRENT_BUFFER ) +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); -YY_BUFFER_STATE parser__scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE parser__scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE parser__scan_bytes (yyconst char *bytes,yy_size_t len ); - -void *parser_alloc (yy_size_t ); -void *parser_realloc (void *,yy_size_t ); -void parser_free (void * ); - -#define yy_new_buffer parser__create_buffer +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); +#define yy_new_buffer yy_create_buffer #define yy_set_interactive(is_interactive) \ { \ if ( ! YY_CURRENT_BUFFER ){ \ - parser_ensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - parser__create_buffer(parser_in,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \ } - #define yy_set_bol(at_bol) \ { \ if ( ! YY_CURRENT_BUFFER ){\ - parser_ensure_buffer_stack (); \ + yyensure_buffer_stack (); \ YY_CURRENT_BUFFER_LVALUE = \ - parser__create_buffer(parser_in,YY_BUF_SIZE ); \ + yy_create_buffer( yyin, YY_BUF_SIZE ); \ } \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \ } - #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol) /* Begin user sect3 */ +typedef flex_uint8_t YY_CHAR; -typedef unsigned char YY_CHAR; - -FILE *parser_in = (FILE *) 0, *parser_out = (FILE *) 0; +FILE *yyin = NULL, *yyout = NULL; typedef int yy_state_type; -extern int parser_lineno; +extern int yylineno; +int yylineno = 1; -int parser_lineno = 1; +extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif +#define yytext_ptr yytext -extern char *parser_text; -#define yytext_ptr parser_text - -static yy_state_type yy_get_previous_state (void ); -static yy_state_type yy_try_NUL_trans (yy_state_type current_state ); -static int yy_get_next_buffer (void ); -static void yy_fatal_error (yyconst char msg[] ); +static yy_state_type yy_get_previous_state ( void ); +static yy_state_type yy_try_NUL_trans ( yy_state_type current_state ); +static int yy_get_next_buffer ( void ); +static void yynoreturn yy_fatal_error ( const char* msg ); /* Done after the current pattern has been matched and before the - * corresponding action - sets up parser_text. + * corresponding action - sets up yytext. */ #define YY_DO_BEFORE_ACTION \ (yytext_ptr) = yy_bp; \ - parser_leng = (size_t) (yy_cp - yy_bp); \ + yyleng = (int) (yy_cp - yy_bp); \ (yy_hold_char) = *yy_cp; \ *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; - #define YY_NUM_RULES 41 #define YY_END_OF_BUFFER 42 /* This struct is not used in this scanner, @@ -389,7 +604,7 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[210] = +static const flex_int16_t yy_accept[210] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 6, 6, 0, 0, 42, 40, 29, 28, 40, 8, @@ -416,7 +631,7 @@ static yyconst flex_int16_t yy_accept[210] = 0, 0, 0, 0, 0, 0, 0, 22, 0 } ; -static yyconst flex_int32_t yy_ec[256] = +static const YY_CHAR yy_ec[256] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, @@ -448,7 +663,7 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[51] = +static const YY_CHAR yy_meta[51] = { 0, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 3, 3, 3, @@ -457,7 +672,7 @@ static yyconst flex_int32_t yy_meta[51] = 4, 4, 4, 4, 4, 4, 4, 4, 4, 1 } ; -static yyconst flex_int16_t yy_base[251] = +static const flex_int16_t yy_base[251] = { 0, 0, 49, 49, 53, 54, 57, 90, 59, 404, 397, 138, 139, 140, 141, 399, 677, 677, 677, 381, 677, @@ -488,7 +703,7 @@ static yyconst flex_int16_t yy_base[251] = 178, 172, 171, 169, 144, 83, 82, 78, 77, 73 } ; -static yyconst flex_int16_t yy_def[251] = +static const flex_int16_t yy_def[251] = { 0, 209, 1, 210, 210, 210, 210, 209, 7, 211, 211, 212, 212, 210, 210, 209, 209, 209, 209, 209, 209, @@ -519,7 +734,7 @@ static yyconst flex_int16_t yy_def[251] = 209, 209, 209, 209, 209, 209, 209, 209, 209, 209 } ; -static yyconst flex_int16_t yy_nxt[728] = +static const flex_int16_t yy_nxt[728] = { 0, 16, 17, 18, 19, 20, 16, 21, 22, 16, 16, 23, 24, 25, 26, 27, 28, 29, 30, 30, 30, @@ -603,7 +818,7 @@ static yyconst flex_int16_t yy_nxt[728] = 209, 209, 209, 209, 209, 209, 209 } ; -static yyconst flex_int16_t yy_chk[728] = +static const flex_int16_t yy_chk[728] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -690,8 +905,8 @@ static yyconst flex_int16_t yy_chk[728] = static yy_state_type yy_last_accepting_state; static char *yy_last_accepting_cpos; -extern int parser__flex_debug; -int parser__flex_debug = 0; +extern int yy_flex_debug; +int yy_flex_debug = 0; /* The intent behind this definition is that it'll catch * any uses of REJECT which flex missed. @@ -700,7 +915,7 @@ int parser__flex_debug = 0; #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET -char *parser_text; +char *yytext; #line 1 "parser.l" /* -*-C-*- * IDL Compiler @@ -810,12 +1025,13 @@ UUID *parse_uuid(const char *u) return uuid; } +#line 1029 "parser.yy.c" /* ************************************************************************** * The flexer starts here ************************************************************************** */ -#line 819 "parser.yy.c" +#line 1035 "parser.yy.c" #define INITIAL 0 #define QUOTE 1 @@ -832,41 +1048,41 @@ UUID *parse_uuid(const char *u) */ #include #endif - + #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif -static int yy_init_globals (void ); +static int yy_init_globals ( void ); /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int parser_lex_destroy (void ); +int yylex_destroy ( void ); -int parser_get_debug (void ); +int yyget_debug ( void ); -void parser_set_debug (int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE parser_get_extra (void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void parser_set_extra (YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *parser_get_in (void ); +FILE *yyget_in ( void ); -void parser_set_in (FILE * in_str ); +void yyset_in ( FILE * _in_str ); -FILE *parser_get_out (void ); +FILE *yyget_out ( void ); -void parser_set_out (FILE * out_str ); +void yyset_out ( FILE * _out_str ); -yy_size_t parser_get_leng (void ); + int yyget_leng ( void ); -char *parser_get_text (void ); +char *yyget_text ( void ); -int parser_get_lineno (void ); +int yyget_lineno ( void ); -void parser_set_lineno (int line_number ); +void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -874,26 +1090,29 @@ void parser_set_lineno (int line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int parser_wrap (void ); +extern "C" int yywrap ( void ); #else -extern int parser_wrap (void ); +extern int yywrap ( void ); #endif #endif +#ifndef YY_NO_UNPUT + +#endif + #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT - #ifdef __cplusplus -static int yyinput (void ); +static int yyinput ( void ); #else -static int input (void ); +static int input ( void ); #endif #endif @@ -902,13 +1121,18 @@ static int input (void ); static int yy_start_stack_depth = 0; static int *yy_start_stack = NULL; - static void yy_push_state (int new_state ); + static void yy_push_state ( int _new_state ); - static void yy_pop_state (void ); + static void yy_pop_state ( void ); /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -916,7 +1140,7 @@ static int input (void ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO do { if (fwrite( parser_text, parser_leng, 1, parser_out )) {} } while (0) +#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -927,20 +1151,20 @@ static int input (void ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - size_t n; \ + int n; \ for ( n = 0; n < max_size && \ - (c = getc( parser_in )) != EOF && c != '\n'; ++n ) \ + (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ if ( c == '\n' ) \ buf[n++] = (char) c; \ - if ( c == EOF && ferror( parser_in ) ) \ + if ( c == EOF && ferror( yyin ) ) \ YY_FATAL_ERROR( "input in flex scanner failed" ); \ result = n; \ } \ else \ { \ errno=0; \ - while ( (result = fread(buf, 1, max_size, parser_in))==0 && ferror(parser_in)) \ + while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \ { \ if( errno != EINTR) \ { \ @@ -948,7 +1172,7 @@ static int input (void ); break; \ } \ errno=0; \ - clearerr(parser_in); \ + clearerr(yyin); \ } \ }\ \ @@ -981,12 +1205,12 @@ static int input (void ); #ifndef YY_DECL #define YY_DECL_IS_OURS 1 -extern int parser_lex (void); +extern int yylex (void); -#define YY_DECL int parser_lex (void) +#define YY_DECL int yylex (void) #endif /* !YY_DECL */ -/* Code executed at the beginning of each rule, after parser_text and parser_leng +/* Code executed at the beginning of each rule, after yytext and yyleng * have been set up. */ #ifndef YY_USER_ACTION @@ -995,27 +1219,23 @@ extern int parser_lex (void); /* Code executed at the end of each rule. */ #ifndef YY_BREAK -#define YY_BREAK break; +#define YY_BREAK /*LINTED*/break; #endif #define YY_RULE_SETUP \ - if ( parser_leng > 0 ) \ + if ( yyleng > 0 ) \ YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \ - (parser_text[parser_leng - 1] == '\n'); \ + (yytext[yyleng - 1] == '\n'); \ YY_USER_ACTION /** The main scanner function which does all the work. */ YY_DECL { - register yy_state_type yy_current_state; - register char *yy_cp, *yy_bp; - register int yy_act; + yy_state_type yy_current_state; + char *yy_cp, *yy_bp; + int yy_act; -#line 132 "parser.l" - -#line 1018 "parser.yy.c" - if ( !(yy_init) ) { (yy_init) = 1; @@ -1027,26 +1247,31 @@ YY_DECL if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ - if ( ! parser_in ) - parser_in = stdin; + if ( ! yyin ) + yyin = stdin; - if ( ! parser_out ) - parser_out = stdout; + if ( ! yyout ) + yyout = stdout; if ( ! YY_CURRENT_BUFFER ) { - parser_ensure_buffer_stack (); + yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - parser__create_buffer(parser_in,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - parser__load_buffer_state( ); + yy_load_buffer_state( ); } - while ( 1 ) /* loops until end-of-file is reached */ + { +#line 132 "parser.l" + +#line 1269 "parser.yy.c" + + while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { yy_cp = (yy_c_buf_p); - /* Support of parser_text. */ + /* Support of yytext. */ *yy_cp = (yy_hold_char); /* yy_bp points to the position in yy_ch_buf of the start of @@ -1059,7 +1284,7 @@ YY_DECL yy_match: do { - register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; + YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1069,9 +1294,9 @@ yy_match: { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 210 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; ++yy_cp; } while ( yy_current_state != 209 ); @@ -1111,7 +1336,7 @@ YY_RULE_SETUP int lineno; char *cptr, *fname; yy_pop_state(); - lineno = (int)strtol(parser_text, &cptr, 10); + lineno = (int)strtol(yytext, &cptr, 10); if(!lineno) error_loc("Malformed '#...' line-directive; invalid linenumber\n"); fname = strchr(cptr, '"'); @@ -1139,7 +1364,7 @@ YY_RULE_SETUP if(!winrt_mode) error_loc("winrt IDL file imported in non-winrt mode\n"); }else { - const char *ptr = parser_text+5; + const char *ptr = yytext+5; winrt_mode = TRUE; @@ -1154,7 +1379,7 @@ YY_RULE_SETUP case 6: YY_RULE_SETUP #line 170 "parser.l" -parser_lval.str = xstrdup(parser_text); yy_pop_state(); return aPRAGMA; +parser_lval.str = xstrdup(yytext); yy_pop_state(); return aPRAGMA; YY_BREAK case 7: YY_RULE_SETUP @@ -1208,22 +1433,22 @@ case 14: case 15: YY_RULE_SETUP #line 191 "parser.l" -addcchar(parser_text[1]); +addcchar(yytext[1]); YY_BREAK case 16: YY_RULE_SETUP #line 192 "parser.l" -addcchar(parser_text[1]); +addcchar(yytext[1]); YY_BREAK case 17: YY_RULE_SETUP #line 193 "parser.l" -addcchar('\\'); addcchar(parser_text[1]); +addcchar('\\'); addcchar(yytext[1]); YY_BREAK case 18: YY_RULE_SETUP #line 194 "parser.l" -addcchar(parser_text[0]); +addcchar(yytext[0]); YY_BREAK case 19: YY_RULE_SETUP @@ -1238,13 +1463,13 @@ yy_pop_state(); return ']'; case 21: YY_RULE_SETUP #line 197 "parser.l" -return attr_token(parser_text); +return attr_token(yytext); YY_BREAK case 22: YY_RULE_SETUP #line 198 "parser.l" { - parser_lval.uuid = parse_uuid(parser_text); + parser_lval.uuid = parse_uuid(yytext); return aUUID; } YY_BREAK @@ -1252,7 +1477,7 @@ case 23: YY_RULE_SETUP #line 202 "parser.l" { - parser_lval.num = xstrtoul(parser_text, NULL, 0); + parser_lval.num = xstrtoul(yytext, NULL, 0); return aHEXNUM; } YY_BREAK @@ -1260,7 +1485,7 @@ case 24: YY_RULE_SETUP #line 206 "parser.l" { - parser_lval.num = xstrtoul(parser_text, NULL, 0); + parser_lval.num = xstrtoul(yytext, NULL, 0); return aNUM; } YY_BREAK @@ -1268,14 +1493,14 @@ case 25: YY_RULE_SETUP #line 210 "parser.l" { - parser_lval.dbl = strtod(parser_text, NULL); + parser_lval.dbl = strtod(yytext, NULL); return aDOUBLE; } YY_BREAK case 26: -*yy_cp = (yy_hold_char); /* undo effects of setting up parser_text */ +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ (yy_c_buf_p) = yy_cp -= 1; -YY_DO_BEFORE_ACTION; /* set up parser_text again */ +YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP #line 214 "parser.l" return tSAFEARRAY; @@ -1283,7 +1508,7 @@ return tSAFEARRAY; case 27: YY_RULE_SETUP #line 215 "parser.l" -return kw_token(parser_text); +return kw_token(yytext); YY_BREAK case 28: /* rule 28 can match eol */ @@ -1349,7 +1574,7 @@ return ELLIPSIS; case 40: YY_RULE_SETUP #line 228 "parser.l" -return parser_text[0]; +return yytext[0]; YY_BREAK case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(QUOTE): @@ -1375,7 +1600,7 @@ YY_RULE_SETUP #line 239 "parser.l" ECHO; YY_BREAK -#line 1379 "parser.yy.c" +#line 1604 "parser.yy.c" case YY_END_OF_BUFFER: { @@ -1390,15 +1615,15 @@ ECHO; { /* We're scanning a new file or input source. It's * possible that this happened because the user - * just pointed parser_in at a new source and called - * parser_lex(). If so, then we have to assure + * just pointed yyin at a new source and called + * yylex(). If so, then we have to assure * consistency between YY_CURRENT_BUFFER and our * globals. Here is the right place to do so, because * this is the first action (other than possibly a * back-up) that will match for the new input source. */ (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; - YY_CURRENT_BUFFER_LVALUE->yy_input_file = parser_in; + YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin; YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL; } @@ -1452,11 +1677,11 @@ ECHO; { (yy_did_buffer_switch_on_eof) = 0; - if ( parser_wrap( ) ) + if ( yywrap( ) ) { /* Note: because we've taken care in * yy_get_next_buffer() to have set up - * parser_text, we can now set up + * yytext, we can now set up * yy_c_buf_p so that if some total * hoser (like flex itself) wants to * call the scanner after we return the @@ -1505,7 +1730,8 @@ ECHO; "fatal flex scanner internal error--no action found" ); } /* end of action switch */ } /* end of scanning one token */ -} /* end of parser_lex */ + } /* end of user's declarations */ +} /* end of yylex */ /* yy_get_next_buffer - try to read in a new buffer * @@ -1516,9 +1742,9 @@ ECHO; */ static int yy_get_next_buffer (void) { - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; - register char *source = (yytext_ptr); - register int number_to_move, i; + char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf; + char *source = (yytext_ptr); + int number_to_move, i; int ret_val; if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] ) @@ -1547,7 +1773,7 @@ static int yy_get_next_buffer (void) /* Try to read more data. */ /* First move last chars to start of buffer. */ - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1; + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1); for ( i = 0; i < number_to_move; ++i ) *(dest++) = *(source++); @@ -1560,7 +1786,7 @@ static int yy_get_next_buffer (void) else { - yy_size_t num_to_read = + int num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -1574,7 +1800,7 @@ static int yy_get_next_buffer (void) if ( b->yy_is_our_buffer ) { - yy_size_t new_size = b->yy_buf_size * 2; + int new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -1583,11 +1809,12 @@ static int yy_get_next_buffer (void) b->yy_ch_buf = (char *) /* Include room in for 2 EOB chars. */ - parser_realloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 ); + yyrealloc( (void *) b->yy_ch_buf, + (yy_size_t) (b->yy_buf_size + 2) ); } else /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; + b->yy_ch_buf = NULL; if ( ! b->yy_ch_buf ) YY_FATAL_ERROR( @@ -1615,7 +1842,7 @@ static int yy_get_next_buffer (void) if ( number_to_move == YY_MORE_ADJ ) { ret_val = EOB_ACT_END_OF_FILE; - parser_restart(parser_in ); + yyrestart( yyin ); } else @@ -1629,12 +1856,15 @@ static int yy_get_next_buffer (void) else ret_val = EOB_ACT_CONTINUE_SCAN; - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { + if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) { /* Extend the array by 50%, plus the number we really need. */ - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) parser_realloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size ); + int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1); + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc( + (void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size ); if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf ) YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" ); + /* "- 2" to take care of EOB's */ + YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2); } (yy_n_chars) += number_to_move; @@ -1650,15 +1880,15 @@ static int yy_get_next_buffer (void) static yy_state_type yy_get_previous_state (void) { - register yy_state_type yy_current_state; - register char *yy_cp; + yy_state_type yy_current_state; + char *yy_cp; yy_current_state = (yy_start); yy_current_state += YY_AT_BOL(); for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { - register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); + YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1668,9 +1898,9 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 210 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; } return yy_current_state; @@ -1683,10 +1913,10 @@ static int yy_get_next_buffer (void) */ static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { - register int yy_is_jam; - register char *yy_cp = (yy_c_buf_p); + int yy_is_jam; + char *yy_cp = (yy_c_buf_p); - register YY_CHAR yy_c = 1; + YY_CHAR yy_c = 1; if ( yy_accept[yy_current_state] ) { (yy_last_accepting_state) = yy_current_state; @@ -1696,14 +1926,18 @@ static int yy_get_next_buffer (void) { yy_current_state = (int) yy_def[yy_current_state]; if ( yy_current_state >= 210 ) - yy_c = yy_meta[(unsigned int) yy_c]; + yy_c = yy_meta[yy_c]; } - yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; + yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; yy_is_jam = (yy_current_state == 209); return yy_is_jam ? 0 : yy_current_state; } +#ifndef YY_NO_UNPUT + +#endif + #ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput (void) @@ -1728,7 +1962,7 @@ static int yy_get_next_buffer (void) else { /* need more input */ - yy_size_t offset = (yy_c_buf_p) - (yytext_ptr); + int offset = (int) ((yy_c_buf_p) - (yytext_ptr)); ++(yy_c_buf_p); switch ( yy_get_next_buffer( ) ) @@ -1745,14 +1979,14 @@ static int yy_get_next_buffer (void) */ /* Reset buffer status. */ - parser_restart(parser_in ); + yyrestart( yyin ); /*FALLTHROUGH*/ case EOB_ACT_END_OF_FILE: { - if ( parser_wrap( ) ) - return EOF; + if ( yywrap( ) ) + return 0; if ( ! (yy_did_buffer_switch_on_eof) ) YY_NEW_FILE; @@ -1771,7 +2005,7 @@ static int yy_get_next_buffer (void) } c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */ - *(yy_c_buf_p) = '\0'; /* preserve parser_text */ + *(yy_c_buf_p) = '\0'; /* preserve yytext */ (yy_hold_char) = *++(yy_c_buf_p); YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n'); @@ -1785,32 +2019,32 @@ static int yy_get_next_buffer (void) * * @note This function does not reset the start condition to @c INITIAL . */ - void parser_restart (FILE * input_file ) + void yyrestart (FILE * input_file ) { if ( ! YY_CURRENT_BUFFER ){ - parser_ensure_buffer_stack (); + yyensure_buffer_stack (); YY_CURRENT_BUFFER_LVALUE = - parser__create_buffer(parser_in,YY_BUF_SIZE ); + yy_create_buffer( yyin, YY_BUF_SIZE ); } - parser__init_buffer(YY_CURRENT_BUFFER,input_file ); - parser__load_buffer_state( ); + yy_init_buffer( YY_CURRENT_BUFFER, input_file ); + yy_load_buffer_state( ); } /** Switch to a different input buffer. * @param new_buffer The new input buffer. * */ - void parser__switch_to_buffer (YY_BUFFER_STATE new_buffer ) + void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer ) { /* TODO. We should be able to replace this entire function body * with - * parser_pop_buffer_state(); - * parser_push_buffer_state(new_buffer); + * yypop_buffer_state(); + * yypush_buffer_state(new_buffer); */ - parser_ensure_buffer_stack (); + yyensure_buffer_stack (); if ( YY_CURRENT_BUFFER == new_buffer ) return; @@ -1823,21 +2057,21 @@ static int yy_get_next_buffer (void) } YY_CURRENT_BUFFER_LVALUE = new_buffer; - parser__load_buffer_state( ); + yy_load_buffer_state( ); /* We don't actually know whether we did this switch during - * EOF (parser_wrap()) processing, but the only time this flag - * is looked at is after parser_wrap() is called, so it's safe + * EOF (yywrap()) processing, but the only time this flag + * is looked at is after yywrap() is called, so it's safe * to go ahead and always set it. */ (yy_did_buffer_switch_on_eof) = 1; } -static void parser__load_buffer_state (void) +static void yy_load_buffer_state (void) { (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars; (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos; - parser_in = YY_CURRENT_BUFFER_LVALUE->yy_input_file; + yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file; (yy_hold_char) = *(yy_c_buf_p); } @@ -1847,35 +2081,35 @@ static void parser__load_buffer_state (void) * * @return the allocated buffer state. */ - YY_BUFFER_STATE parser__create_buffer (FILE * file, int size ) + YY_BUFFER_STATE yy_create_buffer (FILE * file, int size ) { YY_BUFFER_STATE b; - b = (YY_BUFFER_STATE) parser_alloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in parser__create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_buf_size = size; /* yy_ch_buf has to be 2 characters longer than the size given because * we need to put in 2 end-of-buffer characters. */ - b->yy_ch_buf = (char *) parser_alloc(b->yy_buf_size + 2 ); + b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2) ); if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( "out of dynamic memory in parser__create_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" ); b->yy_is_our_buffer = 1; - parser__init_buffer(b,file ); + yy_init_buffer( b, file ); return b; } /** Destroy the buffer. - * @param b a buffer created with parser__create_buffer() + * @param b a buffer created with yy_create_buffer() * */ - void parser__delete_buffer (YY_BUFFER_STATE b ) + void yy_delete_buffer (YY_BUFFER_STATE b ) { if ( ! b ) @@ -1885,27 +2119,27 @@ static void parser__load_buffer_state (void) YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0; if ( b->yy_is_our_buffer ) - parser_free((void *) b->yy_ch_buf ); + yyfree( (void *) b->yy_ch_buf ); - parser_free((void *) b ); + yyfree( (void *) b ); } /* Initializes or reinitializes a buffer. * This function is sometimes called more than once on the same buffer, - * such as during a parser_restart() or at EOF. + * such as during a yyrestart() or at EOF. */ - static void parser__init_buffer (YY_BUFFER_STATE b, FILE * file ) + static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file ) { int oerrno = errno; - parser__flush_buffer(b ); + yy_flush_buffer( b ); b->yy_input_file = file; b->yy_fill_buffer = 1; - /* If b is the current buffer, then parser__init_buffer was _probably_ - * called from parser_restart() or through yy_get_next_buffer. + /* If b is the current buffer, then yy_init_buffer was _probably_ + * called from yyrestart() or through yy_get_next_buffer. * In that case, we don't want to reset the lineno or column. */ if (b != YY_CURRENT_BUFFER){ @@ -1922,7 +2156,7 @@ static void parser__load_buffer_state (void) * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER. * */ - void parser__flush_buffer (YY_BUFFER_STATE b ) + void yy_flush_buffer (YY_BUFFER_STATE b ) { if ( ! b ) return; @@ -1942,7 +2176,7 @@ static void parser__load_buffer_state (void) b->yy_buffer_status = YY_BUFFER_NEW; if ( b == YY_CURRENT_BUFFER ) - parser__load_buffer_state( ); + yy_load_buffer_state( ); } /** Pushes the new state onto the stack. The new state becomes @@ -1951,14 +2185,14 @@ static void parser__load_buffer_state (void) * @param new_buffer The new state. * */ -void parser_push_buffer_state (YY_BUFFER_STATE new_buffer ) +void yypush_buffer_state (YY_BUFFER_STATE new_buffer ) { if (new_buffer == NULL) return; - parser_ensure_buffer_stack(); + yyensure_buffer_stack(); - /* This block is copied from parser__switch_to_buffer. */ + /* This block is copied from yy_switch_to_buffer. */ if ( YY_CURRENT_BUFFER ) { /* Flush out information for old buffer. */ @@ -1972,8 +2206,8 @@ void parser_push_buffer_state (YY_BUFFER_STATE new_buffer ) (yy_buffer_stack_top)++; YY_CURRENT_BUFFER_LVALUE = new_buffer; - /* copied from parser__switch_to_buffer. */ - parser__load_buffer_state( ); + /* copied from yy_switch_to_buffer. */ + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } @@ -1981,18 +2215,18 @@ void parser_push_buffer_state (YY_BUFFER_STATE new_buffer ) * The next element becomes the new top. * */ -void parser_pop_buffer_state (void) +void yypop_buffer_state (void) { if (!YY_CURRENT_BUFFER) return; - parser__delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer(YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; if ((yy_buffer_stack_top) > 0) --(yy_buffer_stack_top); if (YY_CURRENT_BUFFER) { - parser__load_buffer_state( ); + yy_load_buffer_state( ); (yy_did_buffer_switch_on_eof) = 1; } } @@ -2000,7 +2234,7 @@ void parser_pop_buffer_state (void) /* Allocates the stack if it does not exist. * Guarantees space for at least one push. */ -static void parser_ensure_buffer_stack (void) +static void yyensure_buffer_stack (void) { yy_size_t num_to_alloc; @@ -2010,15 +2244,15 @@ static void parser_ensure_buffer_stack (void) * scanner will even need a stack. We use 2 instead of 1 to avoid an * immediate realloc on the next call. */ - num_to_alloc = 1; - (yy_buffer_stack) = (struct yy_buffer_state**)parser_alloc + num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */ + (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc (num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in parser_ensure_buffer_stack()" ); - + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*)); - + (yy_buffer_stack_max) = num_to_alloc; (yy_buffer_stack_top) = 0; return; @@ -2027,15 +2261,15 @@ static void parser_ensure_buffer_stack (void) if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){ /* Increase the buffer to prepare for a possible push. */ - int grow_size = 8 /* arbitrary grow size */; + yy_size_t grow_size = 8 /* arbitrary grow size */; num_to_alloc = (yy_buffer_stack_max) + grow_size; - (yy_buffer_stack) = (struct yy_buffer_state**)parser_realloc + (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc ((yy_buffer_stack), num_to_alloc * sizeof(struct yy_buffer_state*) ); if ( ! (yy_buffer_stack) ) - YY_FATAL_ERROR( "out of dynamic memory in parser_ensure_buffer_stack()" ); + YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" ); /* zero only the new slots.*/ memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*)); @@ -2047,9 +2281,9 @@ static void parser_ensure_buffer_stack (void) * @param base the character buffer * @param size the size in bytes of the character buffer * - * @return the newly allocated buffer state object. + * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE parser__scan_buffer (char * base, yy_size_t size ) +YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size ) { YY_BUFFER_STATE b; @@ -2057,69 +2291,69 @@ YY_BUFFER_STATE parser__scan_buffer (char * base, yy_size_t size ) base[size-2] != YY_END_OF_BUFFER_CHAR || base[size-1] != YY_END_OF_BUFFER_CHAR ) /* They forgot to leave room for the EOB's. */ - return 0; + return NULL; - b = (YY_BUFFER_STATE) parser_alloc(sizeof( struct yy_buffer_state ) ); + b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state ) ); if ( ! b ) - YY_FATAL_ERROR( "out of dynamic memory in parser__scan_buffer()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" ); - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */ + b->yy_buf_size = (int) (size - 2); /* "- 2" to take care of EOB's */ b->yy_buf_pos = b->yy_ch_buf = base; b->yy_is_our_buffer = 0; - b->yy_input_file = 0; + b->yy_input_file = NULL; b->yy_n_chars = b->yy_buf_size; b->yy_is_interactive = 0; b->yy_at_bol = 1; b->yy_fill_buffer = 0; b->yy_buffer_status = YY_BUFFER_NEW; - parser__switch_to_buffer(b ); + yy_switch_to_buffer( b ); return b; } -/** Setup the input buffer state to scan a string. The next call to parser_lex() will +/** Setup the input buffer state to scan a string. The next call to yylex() will * scan from a @e copy of @a str. * @param yystr a NUL-terminated string to scan * * @return the newly allocated buffer state object. * @note If you want to scan bytes that may contain NUL values, then use - * parser__scan_bytes() instead. + * yy_scan_bytes() instead. */ -YY_BUFFER_STATE parser__scan_string (yyconst char * yystr ) +YY_BUFFER_STATE yy_scan_string (const char * yystr ) { - return parser__scan_bytes(yystr,strlen(yystr) ); + return yy_scan_bytes( yystr, (int) strlen(yystr) ); } -/** Setup the input buffer state to scan the given bytes. The next call to parser_lex() will +/** Setup the input buffer state to scan the given bytes. The next call to yylex() will * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE parser__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len ) +YY_BUFFER_STATE yy_scan_bytes (const char * yybytes, int _yybytes_len ) { YY_BUFFER_STATE b; char *buf; yy_size_t n; - yy_size_t i; + int i; /* Get memory for full buffer, including space for trailing EOB's. */ - n = _yybytes_len + 2; - buf = (char *) parser_alloc(n ); + n = (yy_size_t) (_yybytes_len + 2); + buf = (char *) yyalloc( n ); if ( ! buf ) - YY_FATAL_ERROR( "out of dynamic memory in parser__scan_bytes()" ); + YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" ); for ( i = 0; i < _yybytes_len; ++i ) buf[i] = yybytes[i]; buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR; - b = parser__scan_buffer(buf,n ); + b = yy_scan_buffer( buf, n ); if ( ! b ) - YY_FATAL_ERROR( "bad buffer in parser__scan_bytes()" ); + YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" ); /* It's okay to grow etc. this buffer, and we should throw it * away when we're done. @@ -2129,20 +2363,21 @@ YY_BUFFER_STATE parser__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes return b; } - static void yy_push_state (int new_state ) + static void yy_push_state (int _new_state ) { if ( (yy_start_stack_ptr) >= (yy_start_stack_depth) ) { yy_size_t new_size; (yy_start_stack_depth) += YY_START_STACK_INCR; - new_size = (yy_start_stack_depth) * sizeof( int ); + new_size = (yy_size_t) (yy_start_stack_depth) * sizeof( int ); if ( ! (yy_start_stack) ) - (yy_start_stack) = (int *) parser_alloc(new_size ); + (yy_start_stack) = (int *) yyalloc( new_size ); else - (yy_start_stack) = (int *) parser_realloc((void *) (yy_start_stack),new_size ); + (yy_start_stack) = (int *) yyrealloc( + (void *) (yy_start_stack), new_size ); if ( ! (yy_start_stack) ) YY_FATAL_ERROR( "out of memory expanding start-condition stack" ); @@ -2150,7 +2385,7 @@ YY_BUFFER_STATE parser__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes (yy_start_stack)[(yy_start_stack_ptr)++] = YY_START; - BEGIN(new_state); + BEGIN(_new_state); } static void yy_pop_state (void) @@ -2165,9 +2400,9 @@ YY_BUFFER_STATE parser__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes #define YY_EXIT_FAILURE 2 #endif -static void yy_fatal_error (yyconst char* msg ) +static void yynoreturn yy_fatal_error (const char* msg ) { - (void) fprintf( stderr, "%s\n", msg ); + fprintf( stderr, "%s\n", msg ); exit( YY_EXIT_FAILURE ); } @@ -2177,14 +2412,14 @@ static void yy_fatal_error (yyconst char* msg ) #define yyless(n) \ do \ { \ - /* Undo effects of setting up parser_text. */ \ + /* Undo effects of setting up yytext. */ \ int yyless_macro_arg = (n); \ YY_LESS_LINENO(yyless_macro_arg);\ - parser_text[parser_leng] = (yy_hold_char); \ - (yy_c_buf_p) = parser_text + yyless_macro_arg; \ + yytext[yyleng] = (yy_hold_char); \ + (yy_c_buf_p) = yytext + yyless_macro_arg; \ (yy_hold_char) = *(yy_c_buf_p); \ *(yy_c_buf_p) = '\0'; \ - parser_leng = yyless_macro_arg; \ + yyleng = yyless_macro_arg; \ } \ while ( 0 ) @@ -2193,91 +2428,91 @@ static void yy_fatal_error (yyconst char* msg ) /** Get the current line number. * */ -int parser_get_lineno (void) +int yyget_lineno (void) { - - return parser_lineno; + + return yylineno; } /** Get the input stream. * */ -FILE *parser_get_in (void) +FILE *yyget_in (void) { - return parser_in; + return yyin; } /** Get the output stream. * */ -FILE *parser_get_out (void) +FILE *yyget_out (void) { - return parser_out; + return yyout; } /** Get the length of the current token. * */ -yy_size_t parser_get_leng (void) +int yyget_leng (void) { - return parser_leng; + return yyleng; } /** Get the current token. * */ -char *parser_get_text (void) +char *yyget_text (void) { - return parser_text; + return yytext; } /** Set the current line number. - * @param line_number + * @param _line_number line number * */ -void parser_set_lineno (int line_number ) +void yyset_lineno (int _line_number ) { - parser_lineno = line_number; + yylineno = _line_number; } /** Set the input stream. This does not discard the current * input buffer. - * @param in_str A readable stream. + * @param _in_str A readable stream. * - * @see parser__switch_to_buffer + * @see yy_switch_to_buffer */ -void parser_set_in (FILE * in_str ) +void yyset_in (FILE * _in_str ) { - parser_in = in_str ; + yyin = _in_str ; } -void parser_set_out (FILE * out_str ) +void yyset_out (FILE * _out_str ) { - parser_out = out_str ; + yyout = _out_str ; } -int parser_get_debug (void) +int yyget_debug (void) { - return parser__flex_debug; + return yy_flex_debug; } -void parser_set_debug (int bdebug ) +void yyset_debug (int _bdebug ) { - parser__flex_debug = bdebug ; + yy_flex_debug = _bdebug ; } static int yy_init_globals (void) { /* Initialization is the same as for the non-reentrant scanner. - * This function is called from parser_lex_destroy(), so don't allocate here. + * This function is called from yylex_destroy(), so don't allocate here. */ - (yy_buffer_stack) = 0; + (yy_buffer_stack) = NULL; (yy_buffer_stack_top) = 0; (yy_buffer_stack_max) = 0; - (yy_c_buf_p) = (char *) 0; + (yy_c_buf_p) = NULL; (yy_init) = 0; (yy_start) = 0; @@ -2287,40 +2522,40 @@ static int yy_init_globals (void) /* Defined in main.c */ #ifdef YY_STDINIT - parser_in = stdin; - parser_out = stdout; + yyin = stdin; + yyout = stdout; #else - parser_in = (FILE *) 0; - parser_out = (FILE *) 0; + yyin = NULL; + yyout = NULL; #endif /* For future reference: Set errno on error, since we are called by - * parser_lex_init() + * yylex_init() */ return 0; } -/* parser_lex_destroy is for both reentrant and non-reentrant scanners. */ -int parser_lex_destroy (void) +/* yylex_destroy is for both reentrant and non-reentrant scanners. */ +int yylex_destroy (void) { /* Pop the buffer stack, destroying each element. */ while(YY_CURRENT_BUFFER){ - parser__delete_buffer(YY_CURRENT_BUFFER ); + yy_delete_buffer( YY_CURRENT_BUFFER ); YY_CURRENT_BUFFER_LVALUE = NULL; - parser_pop_buffer_state(); + yypop_buffer_state(); } /* Destroy the stack itself. */ - parser_free((yy_buffer_stack) ); + yyfree((yy_buffer_stack) ); (yy_buffer_stack) = NULL; /* Destroy the start condition stack. */ - parser_free((yy_start_stack) ); + yyfree( (yy_start_stack) ); (yy_start_stack) = NULL; /* Reset the globals. This is important in a non-reentrant scanner so the next time - * parser_lex() is called, initialization will occur. */ + * yylex() is called, initialization will occur. */ yy_init_globals( ); return 0; @@ -2331,18 +2566,19 @@ int parser_lex_destroy (void) */ #ifndef yytext_ptr -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n ) +static void yy_flex_strncpy (char* s1, const char * s2, int n ) { - register int i; + + int i; for ( i = 0; i < n; ++i ) s1[i] = s2[i]; } #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * s ) +static int yy_flex_strlen (const char * s ) { - register int n; + int n; for ( n = 0; s[n]; ++n ) ; @@ -2350,13 +2586,14 @@ static int yy_flex_strlen (yyconst char * s ) } #endif -void *parser_alloc (yy_size_t size ) +void *yyalloc (yy_size_t size ) { - return (void *) malloc( size ); + return malloc(size); } -void *parser_realloc (void * ptr, yy_size_t size ) +void *yyrealloc (void * ptr, yy_size_t size ) { + /* The cast to (char *) in the following accommodates both * implementations that use char* generic pointers, and those * that use void* generic pointers. It works with the latter @@ -2364,18 +2601,15 @@ void *parser_realloc (void * ptr, yy_size_t size ) * any pointer type to void*, and deal with argument conversions * as though doing an assignment. */ - return (void *) realloc( (char *) ptr, size ); + return realloc(ptr, size); } -void parser_free (void * ptr ) +void yyfree (void * ptr ) { - free( (char *) ptr ); /* see parser_realloc() for (char *) cast */ + free( (char *) ptr ); /* see yyrealloc() for (char *) cast */ } -#define YYTABLES_NAME "yytables" - -#line 238 "parser.l" - +#line 239 "parser.l" #ifndef parser_wrap @@ -2458,6 +2692,7 @@ static const struct keyword keywords[] = { static const struct keyword attr_keywords[] = { {"aggregatable", tAGGREGATABLE}, + {"all_nodes", tALLNODES}, {"allocate", tALLOCATE}, {"annotation", tANNOTATION}, {"apartment", tAPARTMENT}, @@ -2485,6 +2720,7 @@ static const struct keyword attr_keywords[] = {"disable_consistency_check", tDISABLECONSISTENCYCHECK}, {"displaybind", tDISPLAYBIND}, {"dllname", tDLLNAME}, + {"dont_free", tDONTFREE}, {"dual", tDUAL}, {"enable_allocate", tENABLEALLOCATE}, {"encode", tENCODE}, @@ -2546,6 +2782,7 @@ static const struct keyword attr_keywords[] = {"restricted", tRESTRICTED}, {"retval", tRETVAL}, {"single", tSINGLE}, + {"single_node", tSINGLENODE}, {"size_is", tSIZEIS}, {"source", tSOURCE}, {"strict_context_handle", tSTRICTCONTEXTHANDLE}, @@ -2629,9 +2866,9 @@ void pop_import(void) { int ptr = import_stack_ptr-1; - fclose(parser_in); - parser__delete_buffer(YY_CURRENT_BUFFER ); - parser__switch_to_buffer(import_stack[ptr].state ); + fclose(yyin); + yy_delete_buffer( YY_CURRENT_BUFFER ); + yy_switch_to_buffer( import_stack[ptr].state ); if (temp_name) { unlink(temp_name); free(temp_name); @@ -2698,7 +2935,7 @@ int do_import(char *fname) error_loc("Unable to open %s\n", temp_name); import_stack[ptr].state = YY_CURRENT_BUFFER; - parser__switch_to_buffer(parser__create_buffer(f,YY_BUF_SIZE)); + yy_switch_to_buffer(yy_create_buffer(f, YY_BUF_SIZE)); return 1; } @@ -2739,7 +2976,7 @@ static void switch_to_acf(void) error_loc("Unable to open %s\n", temp_name); import_stack[ptr].state = YY_CURRENT_BUFFER; - parser__switch_to_buffer(parser__create_buffer(f,YY_BUF_SIZE)); + yy_switch_to_buffer(yy_create_buffer(f, YY_BUF_SIZE)); } static void warning_disable(int warning) diff --git a/sdk/tools/widl/parser.yy.h b/sdk/tools/widl/parser.yy.h index bfff33fc56b..1cc3c578e75 100644 --- a/sdk/tools/widl/parser.yy.h +++ b/sdk/tools/widl/parser.yy.h @@ -12,15 +12,250 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 -#define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 37 +#define YY_FLEX_MINOR_VERSION 6 +#define YY_FLEX_SUBMINOR_VERSION 4 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif +#ifdef yy_create_buffer +#define parser__create_buffer_ALREADY_DEFINED +#else +#define yy_create_buffer parser__create_buffer +#endif + +#ifdef yy_delete_buffer +#define parser__delete_buffer_ALREADY_DEFINED +#else +#define yy_delete_buffer parser__delete_buffer +#endif + +#ifdef yy_scan_buffer +#define parser__scan_buffer_ALREADY_DEFINED +#else +#define yy_scan_buffer parser__scan_buffer +#endif + +#ifdef yy_scan_string +#define parser__scan_string_ALREADY_DEFINED +#else +#define yy_scan_string parser__scan_string +#endif + +#ifdef yy_scan_bytes +#define parser__scan_bytes_ALREADY_DEFINED +#else +#define yy_scan_bytes parser__scan_bytes +#endif + +#ifdef yy_init_buffer +#define parser__init_buffer_ALREADY_DEFINED +#else +#define yy_init_buffer parser__init_buffer +#endif + +#ifdef yy_flush_buffer +#define parser__flush_buffer_ALREADY_DEFINED +#else +#define yy_flush_buffer parser__flush_buffer +#endif + +#ifdef yy_load_buffer_state +#define parser__load_buffer_state_ALREADY_DEFINED +#else +#define yy_load_buffer_state parser__load_buffer_state +#endif + +#ifdef yy_switch_to_buffer +#define parser__switch_to_buffer_ALREADY_DEFINED +#else +#define yy_switch_to_buffer parser__switch_to_buffer +#endif + +#ifdef yypush_buffer_state +#define parser_push_buffer_state_ALREADY_DEFINED +#else +#define yypush_buffer_state parser_push_buffer_state +#endif + +#ifdef yypop_buffer_state +#define parser_pop_buffer_state_ALREADY_DEFINED +#else +#define yypop_buffer_state parser_pop_buffer_state +#endif + +#ifdef yyensure_buffer_stack +#define parser_ensure_buffer_stack_ALREADY_DEFINED +#else +#define yyensure_buffer_stack parser_ensure_buffer_stack +#endif + +#ifdef yylex +#define parser_lex_ALREADY_DEFINED +#else +#define yylex parser_lex +#endif + +#ifdef yyrestart +#define parser_restart_ALREADY_DEFINED +#else +#define yyrestart parser_restart +#endif + +#ifdef yylex_init +#define parser_lex_init_ALREADY_DEFINED +#else +#define yylex_init parser_lex_init +#endif + +#ifdef yylex_init_extra +#define parser_lex_init_extra_ALREADY_DEFINED +#else +#define yylex_init_extra parser_lex_init_extra +#endif + +#ifdef yylex_destroy +#define parser_lex_destroy_ALREADY_DEFINED +#else +#define yylex_destroy parser_lex_destroy +#endif + +#ifdef yyget_debug +#define parser_get_debug_ALREADY_DEFINED +#else +#define yyget_debug parser_get_debug +#endif + +#ifdef yyset_debug +#define parser_set_debug_ALREADY_DEFINED +#else +#define yyset_debug parser_set_debug +#endif + +#ifdef yyget_extra +#define parser_get_extra_ALREADY_DEFINED +#else +#define yyget_extra parser_get_extra +#endif + +#ifdef yyset_extra +#define parser_set_extra_ALREADY_DEFINED +#else +#define yyset_extra parser_set_extra +#endif + +#ifdef yyget_in +#define parser_get_in_ALREADY_DEFINED +#else +#define yyget_in parser_get_in +#endif + +#ifdef yyset_in +#define parser_set_in_ALREADY_DEFINED +#else +#define yyset_in parser_set_in +#endif + +#ifdef yyget_out +#define parser_get_out_ALREADY_DEFINED +#else +#define yyget_out parser_get_out +#endif + +#ifdef yyset_out +#define parser_set_out_ALREADY_DEFINED +#else +#define yyset_out parser_set_out +#endif + +#ifdef yyget_leng +#define parser_get_leng_ALREADY_DEFINED +#else +#define yyget_leng parser_get_leng +#endif + +#ifdef yyget_text +#define parser_get_text_ALREADY_DEFINED +#else +#define yyget_text parser_get_text +#endif + +#ifdef yyget_lineno +#define parser_get_lineno_ALREADY_DEFINED +#else +#define yyget_lineno parser_get_lineno +#endif + +#ifdef yyset_lineno +#define parser_set_lineno_ALREADY_DEFINED +#else +#define yyset_lineno parser_set_lineno +#endif + +#ifdef yywrap +#define parser_wrap_ALREADY_DEFINED +#else +#define yywrap parser_wrap +#endif + +#ifdef yyalloc +#define parser_alloc_ALREADY_DEFINED +#else +#define yyalloc parser_alloc +#endif + +#ifdef yyrealloc +#define parser_realloc_ALREADY_DEFINED +#else +#define yyrealloc parser_realloc +#endif + +#ifdef yyfree +#define parser_free_ALREADY_DEFINED +#else +#define yyfree parser_free +#endif + +#ifdef yytext +#define parser_text_ALREADY_DEFINED +#else +#define yytext parser_text +#endif + +#ifdef yyleng +#define parser_leng_ALREADY_DEFINED +#else +#define yyleng parser_leng +#endif + +#ifdef yyin +#define parser_in_ALREADY_DEFINED +#else +#define yyin parser_in +#endif + +#ifdef yyout +#define parser_out_ALREADY_DEFINED +#else +#define yyout parser_out +#endif + +#ifdef yy_flex_debug +#define parser__flex_debug_ALREADY_DEFINED +#else +#define yy_flex_debug parser__flex_debug +#endif + +#ifdef yylineno +#define parser_lineno_ALREADY_DEFINED +#else +#define yylineno parser_lineno +#endif + /* First, we deal with platform-specific or compiler-specific issues. */ /* begin standard C headers. */ + #include #include #include @@ -28,94 +263,79 @@ /* end standard C headers. */ +/* begin standard C++ headers. */ + /* flex integer type definitions */ -#ifndef FLEXINT_H -#define FLEXINT_H +#ifndef YYFLEX_INTTYPES_DEFINED +#define YYFLEX_INTTYPES_DEFINED -/* C99 systems have . Non-C99 systems may or may not. */ - -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L - -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h, - * if you want the limit (max/min) macros for int types. +/* Prefer C99 integer types if available. */ +# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +/* Include and not because Solaris 2.6 has the former + * and not the latter. */ -#ifndef __STDC_LIMIT_MACROS -#define __STDC_LIMIT_MACROS 1 -#endif - #include +# define YYFLEX_USE_STDINT +# else +# if defined(_MSC_VER) && _MSC_VER >= 1600 +/* Visual C++ 2010 does not define __STDC_VERSION__ and has but not + * . + */ +#include +# define YYFLEX_USE_STDINT +# endif +# endif +# ifdef YYFLEX_USE_STDINT typedef int8_t flex_int8_t; typedef uint8_t flex_uint8_t; typedef int16_t flex_int16_t; typedef uint16_t flex_uint16_t; typedef int32_t flex_int32_t; typedef uint32_t flex_uint32_t; -#else -typedef signed char flex_int8_t; +# else +typedef unsigned char flex_uint8_t; typedef short int flex_int16_t; -typedef int flex_int32_t; -typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; +# ifdef __STDC__ +typedef signed char flex_int8_t; +/* ISO C only requires at least 16 bits for int. */ +#include +# if UINT_MAX >= 4294967295 +# define YYFLEX_INT32_DEFINED +typedef int flex_int32_t; typedef unsigned int flex_uint32_t; +# endif +# else +typedef char flex_int8_t; +# endif +# ifndef YYFLEX_INT32_DEFINED +typedef long int flex_int32_t; +typedef unsigned long int flex_uint32_t; +# endif +# endif +#endif /* YYFLEX_INTTYPES_DEFINED */ -/* Limits of integral types. */ -#ifndef INT8_MIN -#define INT8_MIN (-128) -#endif -#ifndef INT16_MIN -#define INT16_MIN (-32767-1) -#endif -#ifndef INT32_MIN -#define INT32_MIN (-2147483647-1) -#endif -#ifndef INT8_MAX -#define INT8_MAX (127) -#endif -#ifndef INT16_MAX -#define INT16_MAX (32767) -#endif -#ifndef INT32_MAX -#define INT32_MAX (2147483647) -#endif -#ifndef UINT8_MAX -#define UINT8_MAX (255U) -#endif -#ifndef UINT16_MAX -#define UINT16_MAX (65535U) -#endif -#ifndef UINT32_MAX -#define UINT32_MAX (4294967295U) -#endif - -#endif /* ! C99 */ - -#endif /* ! FLEXINT_H */ - -#ifdef __cplusplus - -/* The "const" storage-class-modifier is valid. */ -#define YY_USE_CONST - -#else /* ! __cplusplus */ - -/* C99 requires __STDC__ to be defined as 1. */ -#if defined (__STDC__) - -#define YY_USE_CONST - -#endif /* defined (__STDC__) */ -#endif /* ! __cplusplus */ - -#ifdef YY_USE_CONST +/* TODO: this is always defined, so inline it */ #define yyconst const + +#if defined(__GNUC__) && __GNUC__ >= 3 +#define yynoreturn __attribute__((__noreturn__)) #else -#define yyconst +#define yynoreturn #endif /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif #ifndef YY_TYPEDEF_YY_BUFFER_STATE @@ -128,9 +348,9 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; typedef size_t yy_size_t; #endif -extern yy_size_t parser_leng; +extern int yyleng; -extern FILE *parser_in, *parser_out; +extern FILE *yyin, *yyout; #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE @@ -144,12 +364,12 @@ struct yy_buffer_state /* Size of input buffer in bytes, not including room for EOB * characters. */ - yy_size_t yy_buf_size; + int yy_buf_size; /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - yy_size_t yy_n_chars; + int yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -172,7 +392,7 @@ struct yy_buffer_state int yy_bs_lineno; /**< The line count. */ int yy_bs_column; /**< The column count. */ - + /* Whether to try to fill the input buffer when we reach the * end of it. */ @@ -183,28 +403,31 @@ struct yy_buffer_state }; #endif /* !YY_STRUCT_YY_BUFFER_STATE */ -void parser_restart (FILE *input_file ); -void parser__switch_to_buffer (YY_BUFFER_STATE new_buffer ); -YY_BUFFER_STATE parser__create_buffer (FILE *file,int size ); -void parser__delete_buffer (YY_BUFFER_STATE b ); -void parser__flush_buffer (YY_BUFFER_STATE b ); -void parser_push_buffer_state (YY_BUFFER_STATE new_buffer ); -void parser_pop_buffer_state (void ); +void yyrestart ( FILE *input_file ); +void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer ); +YY_BUFFER_STATE yy_create_buffer ( FILE *file, int size ); +void yy_delete_buffer ( YY_BUFFER_STATE b ); +void yy_flush_buffer ( YY_BUFFER_STATE b ); +void yypush_buffer_state ( YY_BUFFER_STATE new_buffer ); +void yypop_buffer_state ( void ); -YY_BUFFER_STATE parser__scan_buffer (char *base,yy_size_t size ); -YY_BUFFER_STATE parser__scan_string (yyconst char *yy_str ); -YY_BUFFER_STATE parser__scan_bytes (yyconst char *bytes,yy_size_t len ); +YY_BUFFER_STATE yy_scan_buffer ( char *base, yy_size_t size ); +YY_BUFFER_STATE yy_scan_string ( const char *yy_str ); +YY_BUFFER_STATE yy_scan_bytes ( const char *bytes, int len ); -void *parser_alloc (yy_size_t ); -void *parser_realloc (void *,yy_size_t ); -void parser_free (void * ); +void *yyalloc ( yy_size_t ); +void *yyrealloc ( void *, yy_size_t ); +void yyfree ( void * ); /* Begin user sect3 */ -extern int parser_lineno; +extern int yylineno; -extern char *parser_text; -#define yytext_ptr parser_text +extern char *yytext; +#ifdef yytext_ptr +#undef yytext_ptr +#endif +#define yytext_ptr yytext #ifdef YY_HEADER_EXPORT_START_CONDITIONS #define INITIAL 0 @@ -224,7 +447,7 @@ extern char *parser_text; */ #include #endif - + #ifndef YY_EXTRA_TYPE #define YY_EXTRA_TYPE void * #endif @@ -232,31 +455,31 @@ extern char *parser_text; /* Accessor methods to globals. These are made visible to non-reentrant scanners for convenience. */ -int parser_lex_destroy (void ); +int yylex_destroy ( void ); -int parser_get_debug (void ); +int yyget_debug ( void ); -void parser_set_debug (int debug_flag ); +void yyset_debug ( int debug_flag ); -YY_EXTRA_TYPE parser_get_extra (void ); +YY_EXTRA_TYPE yyget_extra ( void ); -void parser_set_extra (YY_EXTRA_TYPE user_defined ); +void yyset_extra ( YY_EXTRA_TYPE user_defined ); -FILE *parser_get_in (void ); +FILE *yyget_in ( void ); -void parser_set_in (FILE * in_str ); +void yyset_in ( FILE * _in_str ); -FILE *parser_get_out (void ); +FILE *yyget_out ( void ); -void parser_set_out (FILE * out_str ); +void yyset_out ( FILE * _out_str ); -yy_size_t parser_get_leng (void ); + int yyget_leng ( void ); -char *parser_get_text (void ); +char *yyget_text ( void ); -int parser_get_lineno (void ); +int yyget_lineno ( void ); -void parser_set_lineno (int line_number ); +void yyset_lineno ( int _line_number ); /* Macros after this point can all be overridden by user definitions in * section 1. @@ -264,18 +487,18 @@ void parser_set_lineno (int line_number ); #ifndef YY_SKIP_YYWRAP #ifdef __cplusplus -extern "C" int parser_wrap (void ); +extern "C" int yywrap ( void ); #else -extern int parser_wrap (void ); +extern int yywrap ( void ); #endif #endif #ifndef yytext_ptr -static void yy_flex_strncpy (char *,yyconst char *,int ); +static void yy_flex_strncpy ( char *, const char *, int ); #endif #ifdef YY_NEED_STRLEN -static int yy_flex_strlen (yyconst char * ); +static int yy_flex_strlen ( const char * ); #endif #ifndef YY_NO_INPUT @@ -284,7 +507,12 @@ static int yy_flex_strlen (yyconst char * ); /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Number of entries by which start-condition stack grows. */ @@ -298,9 +526,9 @@ static int yy_flex_strlen (yyconst char * ); #ifndef YY_DECL #define YY_DECL_IS_OURS 1 -extern int parser_lex (void); +extern int yylex (void); -#define YY_DECL int parser_lex (void) +#define YY_DECL int yylex (void) #endif /* !YY_DECL */ /* yy_get_previous_state - get the state just before the EOB char was reached */ @@ -317,9 +545,154 @@ extern int parser_lex (void); #undef YY_DECL #endif -#line 238 "parser.l" +#ifndef parser__create_buffer_ALREADY_DEFINED +#undef yy_create_buffer +#endif +#ifndef parser__delete_buffer_ALREADY_DEFINED +#undef yy_delete_buffer +#endif +#ifndef parser__scan_buffer_ALREADY_DEFINED +#undef yy_scan_buffer +#endif +#ifndef parser__scan_string_ALREADY_DEFINED +#undef yy_scan_string +#endif +#ifndef parser__scan_bytes_ALREADY_DEFINED +#undef yy_scan_bytes +#endif +#ifndef parser__init_buffer_ALREADY_DEFINED +#undef yy_init_buffer +#endif +#ifndef parser__flush_buffer_ALREADY_DEFINED +#undef yy_flush_buffer +#endif +#ifndef parser__load_buffer_state_ALREADY_DEFINED +#undef yy_load_buffer_state +#endif +#ifndef parser__switch_to_buffer_ALREADY_DEFINED +#undef yy_switch_to_buffer +#endif +#ifndef parser_push_buffer_state_ALREADY_DEFINED +#undef yypush_buffer_state +#endif +#ifndef parser_pop_buffer_state_ALREADY_DEFINED +#undef yypop_buffer_state +#endif +#ifndef parser_ensure_buffer_stack_ALREADY_DEFINED +#undef yyensure_buffer_stack +#endif +#ifndef parser_lex_ALREADY_DEFINED +#undef yylex +#endif +#ifndef parser_restart_ALREADY_DEFINED +#undef yyrestart +#endif +#ifndef parser_lex_init_ALREADY_DEFINED +#undef yylex_init +#endif +#ifndef parser_lex_init_extra_ALREADY_DEFINED +#undef yylex_init_extra +#endif +#ifndef parser_lex_destroy_ALREADY_DEFINED +#undef yylex_destroy +#endif +#ifndef parser_get_debug_ALREADY_DEFINED +#undef yyget_debug +#endif +#ifndef parser_set_debug_ALREADY_DEFINED +#undef yyset_debug +#endif +#ifndef parser_get_extra_ALREADY_DEFINED +#undef yyget_extra +#endif +#ifndef parser_set_extra_ALREADY_DEFINED +#undef yyset_extra +#endif +#ifndef parser_get_in_ALREADY_DEFINED +#undef yyget_in +#endif +#ifndef parser_set_in_ALREADY_DEFINED +#undef yyset_in +#endif +#ifndef parser_get_out_ALREADY_DEFINED +#undef yyget_out +#endif +#ifndef parser_set_out_ALREADY_DEFINED +#undef yyset_out +#endif +#ifndef parser_get_leng_ALREADY_DEFINED +#undef yyget_leng +#endif +#ifndef parser_get_text_ALREADY_DEFINED +#undef yyget_text +#endif +#ifndef parser_get_lineno_ALREADY_DEFINED +#undef yyget_lineno +#endif +#ifndef parser_set_lineno_ALREADY_DEFINED +#undef yyset_lineno +#endif +#ifndef parser_get_column_ALREADY_DEFINED +#undef yyget_column +#endif +#ifndef parser_set_column_ALREADY_DEFINED +#undef yyset_column +#endif +#ifndef parser_wrap_ALREADY_DEFINED +#undef yywrap +#endif +#ifndef parser_get_lval_ALREADY_DEFINED +#undef yyget_lval +#endif +#ifndef parser_set_lval_ALREADY_DEFINED +#undef yyset_lval +#endif +#ifndef parser_get_lloc_ALREADY_DEFINED +#undef yyget_lloc +#endif +#ifndef parser_set_lloc_ALREADY_DEFINED +#undef yyset_lloc +#endif +#ifndef parser_alloc_ALREADY_DEFINED +#undef yyalloc +#endif +#ifndef parser_realloc_ALREADY_DEFINED +#undef yyrealloc +#endif +#ifndef parser_free_ALREADY_DEFINED +#undef yyfree +#endif +#ifndef parser_text_ALREADY_DEFINED +#undef yytext +#endif +#ifndef parser_leng_ALREADY_DEFINED +#undef yyleng +#endif +#ifndef parser_in_ALREADY_DEFINED +#undef yyin +#endif +#ifndef parser_out_ALREADY_DEFINED +#undef yyout +#endif +#ifndef parser__flex_debug_ALREADY_DEFINED +#undef yy_flex_debug +#endif +#ifndef parser_lineno_ALREADY_DEFINED +#undef yylineno +#endif +#ifndef parser_tables_fload_ALREADY_DEFINED +#undef yytables_fload +#endif +#ifndef parser_tables_destroy_ALREADY_DEFINED +#undef yytables_destroy +#endif +#ifndef parser_TABLES_NAME_ALREADY_DEFINED +#undef yyTABLES_NAME +#endif + +#line 239 "parser.l" -#line 324 "parser.yy.h" +#line 697 "parser.yy.h" #undef parser_IN_HEADER #endif /* parser_HEADER_H */ diff --git a/sdk/tools/widl/typegen.c b/sdk/tools/widl/typegen.c index 4a791465821..baa2b189a0e 100644 --- a/sdk/tools/widl/typegen.c +++ b/sdk/tools/widl/typegen.c @@ -2137,6 +2137,9 @@ static unsigned int write_nonsimple_pointer(FILE *file, const attr_list_t *attrs type_t *ref = type_pointer_get_ref(type); if(is_declptr(ref) && !is_user_type(ref)) flags |= FC_POINTER_DEREF; + if (pointer_type != FC_RP) { + flags |= get_attrv(type->attrs, ATTR_ALLOCATE); + } } print_file(file, 2, "0x%x, 0x%x,\t\t/* %s", @@ -2149,6 +2152,10 @@ static unsigned int write_nonsimple_pointer(FILE *file, const attr_list_t *attrs fprintf(file, " [allocated_on_stack]"); if (flags & FC_POINTER_DEREF) fprintf(file, " [pointer_deref]"); + if (flags & FC_DONT_FREE) + fprintf(file, " [dont_free]"); + if (flags & FC_ALLOCATE_ALL_NODES) + fprintf(file, " [all_nodes]"); fprintf(file, " */\n"); } diff --git a/sdk/tools/widl/widltypes.h b/sdk/tools/widl/widltypes.h index 37792b24895..53a24e45f77 100644 --- a/sdk/tools/widl/widltypes.h +++ b/sdk/tools/widl/widltypes.h @@ -68,6 +68,7 @@ typedef struct list warning_list_t; enum attr_type { ATTR_AGGREGATABLE, + ATTR_ALLOCATE, ATTR_ANNOTATION, ATTR_APPOBJECT, ATTR_ASYNC,