widl: Update to current Wine version.
diff --git a/mingw-w64-tools/widl/VERSION b/mingw-w64-tools/widl/VERSION
index dfac1a7..e99ac93 100644
--- a/mingw-w64-tools/widl/VERSION
+++ b/mingw-w64-tools/widl/VERSION
@@ -1 +1 @@
-WIDL version 8.17
+WIDL version 8.19
diff --git a/mingw-w64-tools/widl/configure b/mingw-w64-tools/widl/configure
index b6d5bcd..d8a0982 100755
--- a/mingw-w64-tools/widl/configure
+++ b/mingw-w64-tools/widl/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for widl 8.17.
+# Generated by GNU Autoconf 2.71 for widl 8.19.
#
# Report bugs to <mingw-w64-public@lists.sourceforge.net>.
#
@@ -610,8 +610,8 @@
# Identity of this package.
PACKAGE_NAME='widl'
PACKAGE_TARNAME='widl'
-PACKAGE_VERSION='8.17'
-PACKAGE_STRING='widl 8.17'
+PACKAGE_VERSION='8.19'
+PACKAGE_STRING='widl 8.19'
PACKAGE_BUGREPORT='mingw-w64-public@lists.sourceforge.net'
PACKAGE_URL=''
@@ -1319,7 +1319,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures widl 8.17 to adapt to many kinds of systems.
+\`configure' configures widl 8.19 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1391,7 +1391,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of widl 8.17:";;
+ short | recursive ) echo "Configuration of widl 8.19:";;
esac
cat <<\_ACEOF
@@ -1493,7 +1493,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-widl configure 8.17
+widl configure 8.19
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1905,7 +1905,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by widl $as_me 8.17, which was
+It was created by widl $as_me 8.19, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
@@ -3295,7 +3295,7 @@
# Define the identity of the package.
PACKAGE='widl'
- VERSION='8.17'
+ VERSION='8.19'
printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -5789,7 +5789,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by widl $as_me 8.17, which was
+This file was extended by widl $as_me 8.19, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5857,7 +5857,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
-widl config.status 8.17
+widl config.status 8.19
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
diff --git a/mingw-w64-tools/widl/include/guiddef.h b/mingw-w64-tools/widl/include/guiddef.h
index 6f7e26d..c5ba963 100644
--- a/mingw-w64-tools/widl/include/guiddef.h
+++ b/mingw-w64-tools/widl/include/guiddef.h
@@ -89,29 +89,19 @@
#undef DEFINE_GUID
-#ifndef DECLSPEC_HIDDEN
-# if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__CYGWIN__)
-# define DECLSPEC_HIDDEN __attribute__((visibility ("hidden")))
-# else
-# define DECLSPEC_HIDDEN
-# endif
-#endif
-
#ifdef INITGUID
#ifdef __cplusplus
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
- EXTERN_C const GUID name DECLSPEC_HIDDEN; \
EXTERN_C const GUID name = \
{ l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }
#else
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
- const GUID name DECLSPEC_HIDDEN; \
const GUID name = \
{ l, w1, w2, { b1, b2, b3, b4, b5, b6, b7, b8 } }
#endif
#else
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \
- EXTERN_C const GUID name DECLSPEC_HIDDEN
+ EXTERN_C const GUID name
#endif
#define DEFINE_OLEGUID(name, l, w1, w2) \
diff --git a/mingw-w64-tools/widl/include/winbase.h b/mingw-w64-tools/widl/include/winbase.h
index 5f005fc..16e449f 100644
--- a/mingw-w64-tools/widl/include/winbase.h
+++ b/mingw-w64-tools/widl/include/winbase.h
@@ -3048,7 +3048,7 @@
#ifdef __WINESRC__
/* shouldn't be here, but is nice for type checking */
-BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved ) DECLSPEC_HIDDEN;
+BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved );
#endif
#ifdef __cplusplus
diff --git a/mingw-w64-tools/widl/include/winnt.h b/mingw-w64-tools/widl/include/winnt.h
index 22721af..d864dd3 100644
--- a/mingw-w64-tools/widl/include/winnt.h
+++ b/mingw-w64-tools/widl/include/winnt.h
@@ -43,7 +43,7 @@
#endif
#if defined(_NTSYSTEM_) || defined(WINE_UNIX_LIB)
-#define NTSYSAPI
+#define NTSYSAPI DECLSPEC_EXPORT
#else
#define NTSYSAPI DECLSPEC_IMPORT
#endif
@@ -2386,9 +2386,9 @@
#ifdef WINE_UNIX_LIB
# ifdef __GNUC__
-struct _TEB * WINAPI NtCurrentTeb(void) __attribute__((pure));
+NTSYSAPI struct _TEB * WINAPI NtCurrentTeb(void) __attribute__((pure));
# else
-struct _TEB * WINAPI NtCurrentTeb(void);
+NTSYSAPI struct _TEB * WINAPI NtCurrentTeb(void);
# endif
#elif defined(__i386__) && defined(__GNUC__)
static FORCEINLINE struct _TEB * WINAPI NtCurrentTeb(void)
diff --git a/mingw-w64-tools/widl/src/client.c b/mingw-w64-tools/widl/src/client.c
index 704be91..d28b605 100644
--- a/mingw-w64-tools/widl/src/client.c
+++ b/mingw-w64-tools/widl/src/client.c
@@ -468,10 +468,10 @@
indent--;
print_client("};\n");
if (old_names)
- print_client("RPC_IF_HANDLE %s_ClientIfHandle DECLSPEC_HIDDEN = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n",
+ print_client("RPC_IF_HANDLE %s_ClientIfHandle = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n",
iface->name, iface->name);
else
- print_client("RPC_IF_HANDLE %s%s_v%d_%d_c_ifspec DECLSPEC_HIDDEN = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n",
+ print_client("RPC_IF_HANDLE %s%s_v%d_%d_c_ifspec = (RPC_IF_HANDLE)& %s___RpcClientInterface;\n",
prefix_client, iface->name, MAJORVERSION(ver), MINORVERSION(ver), iface->name);
fprintf(client, "\n");
}
@@ -500,10 +500,6 @@
print_client( "\n");
print_client("#include \"%s\"\n", header_name);
print_client( "\n");
- print_client( "#ifndef DECLSPEC_HIDDEN\n");
- print_client( "#define DECLSPEC_HIDDEN\n");
- print_client( "#endif\n");
- print_client( "\n");
}
diff --git a/mingw-w64-tools/widl/src/parser.tab.c b/mingw-w64-tools/widl/src/parser.tab.c
index b453f4b..db44ac5 100644
--- a/mingw-w64-tools/widl/src/parser.tab.c
+++ b/mingw-w64-tools/widl/src/parser.tab.c
@@ -205,333 +205,7 @@
# endif
# endif
-
-/* Debug traces. */
-#ifndef PARSER_DEBUG
-# if defined YYDEBUG
-#if YYDEBUG
-# define PARSER_DEBUG 1
-# else
-# define PARSER_DEBUG 0
-# endif
-# else /* ! defined YYDEBUG */
-# define PARSER_DEBUG 0
-# endif /* ! defined YYDEBUG */
-#endif /* ! defined PARSER_DEBUG */
-#if PARSER_DEBUG
-extern int parser_debug;
-#endif
-/* "%code requires" blocks. */
-#line 110 "tools/widl/parser.y"
-
-
-#define PARSER_LTYPE struct location
-
-
-#line 232 "tools/widl/parser.tab.c"
-
-/* Token kinds. */
-#ifndef PARSER_TOKENTYPE
-# define PARSER_TOKENTYPE
- enum parser_tokentype
- {
- PARSER_EMPTY = -2,
- PARSER_EOF = 0, /* "end of file" */
- PARSER_error = 256, /* error */
- PARSER_UNDEF = 257, /* "invalid token" */
- aIDENTIFIER = 258, /* aIDENTIFIER */
- aPRAGMA = 259, /* aPRAGMA */
- aKNOWNTYPE = 260, /* aKNOWNTYPE */
- aNUM = 261, /* aNUM */
- aHEXNUM = 262, /* aHEXNUM */
- aDOUBLE = 263, /* aDOUBLE */
- aSTRING = 264, /* aSTRING */
- aWSTRING = 265, /* aWSTRING */
- aSQSTRING = 266, /* aSQSTRING */
- tCDECL = 267, /* tCDECL */
- tFASTCALL = 268, /* tFASTCALL */
- tPASCAL = 269, /* tPASCAL */
- tSTDCALL = 270, /* tSTDCALL */
- aUUID = 271, /* aUUID */
- aEOF = 272, /* aEOF */
- aACF = 273, /* aACF */
- SHL = 274, /* SHL */
- SHR = 275, /* SHR */
- MEMBERPTR = 276, /* MEMBERPTR */
- EQUALITY = 277, /* EQUALITY */
- INEQUALITY = 278, /* INEQUALITY */
- GREATEREQUAL = 279, /* GREATEREQUAL */
- LESSEQUAL = 280, /* LESSEQUAL */
- LOGICALOR = 281, /* LOGICALOR */
- LOGICALAND = 282, /* LOGICALAND */
- ELLIPSIS = 283, /* ELLIPSIS */
- tACTIVATABLE = 284, /* tACTIVATABLE */
- tAGGREGATABLE = 285, /* tAGGREGATABLE */
- tAGILE = 286, /* tAGILE */
- tALLNODES = 287, /* tALLNODES */
- tALLOCATE = 288, /* tALLOCATE */
- tANNOTATION = 289, /* tANNOTATION */
- tAPICONTRACT = 290, /* tAPICONTRACT */
- tAPPOBJECT = 291, /* tAPPOBJECT */
- tASYNC = 292, /* tASYNC */
- tASYNCUUID = 293, /* tASYNCUUID */
- tAUTOHANDLE = 294, /* tAUTOHANDLE */
- tBINDABLE = 295, /* tBINDABLE */
- tBOOLEAN = 296, /* tBOOLEAN */
- tBROADCAST = 297, /* tBROADCAST */
- tBYTE = 298, /* tBYTE */
- tBYTECOUNT = 299, /* tBYTECOUNT */
- tCALLAS = 300, /* tCALLAS */
- tCALLBACK = 301, /* tCALLBACK */
- tCASE = 302, /* tCASE */
- tCHAR = 303, /* tCHAR */
- tCOCLASS = 304, /* tCOCLASS */
- tCODE = 305, /* tCODE */
- tCOMMSTATUS = 306, /* tCOMMSTATUS */
- tCOMPOSABLE = 307, /* tCOMPOSABLE */
- tCONST = 308, /* tCONST */
- tCONTEXTHANDLE = 309, /* tCONTEXTHANDLE */
- tCONTEXTHANDLENOSERIALIZE = 310, /* tCONTEXTHANDLENOSERIALIZE */
- tCONTEXTHANDLESERIALIZE = 311, /* tCONTEXTHANDLESERIALIZE */
- tCONTRACT = 312, /* tCONTRACT */
- tCONTRACTVERSION = 313, /* tCONTRACTVERSION */
- tCONTROL = 314, /* tCONTROL */
- tCPPQUOTE = 315, /* tCPPQUOTE */
- tCUSTOM = 316, /* tCUSTOM */
- tDECLARE = 317, /* tDECLARE */
- tDECODE = 318, /* tDECODE */
- tDEFAULT = 319, /* tDEFAULT */
- tDEFAULTBIND = 320, /* tDEFAULTBIND */
- tDELEGATE = 321, /* tDELEGATE */
- tDEFAULT_OVERLOAD = 322, /* tDEFAULT_OVERLOAD */
- tDEFAULTCOLLELEM = 323, /* tDEFAULTCOLLELEM */
- tDEFAULTVALUE = 324, /* tDEFAULTVALUE */
- tDEFAULTVTABLE = 325, /* tDEFAULTVTABLE */
- tDEPRECATED = 326, /* tDEPRECATED */
- tDISABLECONSISTENCYCHECK = 327, /* tDISABLECONSISTENCYCHECK */
- tDISPLAYBIND = 328, /* tDISPLAYBIND */
- tDISPINTERFACE = 329, /* tDISPINTERFACE */
- tDLLNAME = 330, /* tDLLNAME */
- tDONTFREE = 331, /* tDONTFREE */
- tDOUBLE = 332, /* tDOUBLE */
- tDUAL = 333, /* tDUAL */
- tENABLEALLOCATE = 334, /* tENABLEALLOCATE */
- tENCODE = 335, /* tENCODE */
- tENDPOINT = 336, /* tENDPOINT */
- tENTRY = 337, /* tENTRY */
- tENUM = 338, /* tENUM */
- tERRORSTATUST = 339, /* tERRORSTATUST */
- tEVENTADD = 340, /* tEVENTADD */
- tEVENTREMOVE = 341, /* tEVENTREMOVE */
- tEXCLUSIVETO = 342, /* tEXCLUSIVETO */
- tEXPLICITHANDLE = 343, /* tEXPLICITHANDLE */
- tEXTERN = 344, /* tEXTERN */
- tFALSE = 345, /* tFALSE */
- tFAULTSTATUS = 346, /* tFAULTSTATUS */
- tFLAGS = 347, /* tFLAGS */
- tFLOAT = 348, /* tFLOAT */
- tFORCEALLOCATE = 349, /* tFORCEALLOCATE */
- tHANDLE = 350, /* tHANDLE */
- tHANDLET = 351, /* tHANDLET */
- tHELPCONTEXT = 352, /* tHELPCONTEXT */
- tHELPFILE = 353, /* tHELPFILE */
- tHELPSTRING = 354, /* tHELPSTRING */
- tHELPSTRINGCONTEXT = 355, /* tHELPSTRINGCONTEXT */
- tHELPSTRINGDLL = 356, /* tHELPSTRINGDLL */
- tHIDDEN = 357, /* tHIDDEN */
- tHYPER = 358, /* tHYPER */
- tID = 359, /* tID */
- tIDEMPOTENT = 360, /* tIDEMPOTENT */
- tIGNORE = 361, /* tIGNORE */
- tIIDIS = 362, /* tIIDIS */
- tIMMEDIATEBIND = 363, /* tIMMEDIATEBIND */
- tIMPLICITHANDLE = 364, /* tIMPLICITHANDLE */
- tIMPORT = 365, /* tIMPORT */
- tIMPORTLIB = 366, /* tIMPORTLIB */
- tIN = 367, /* tIN */
- tIN_LINE = 368, /* tIN_LINE */
- tINLINE = 369, /* tINLINE */
- tINPUTSYNC = 370, /* tINPUTSYNC */
- tINT = 371, /* tINT */
- tINT32 = 372, /* tINT32 */
- tINT3264 = 373, /* tINT3264 */
- tINT64 = 374, /* tINT64 */
- tINTERFACE = 375, /* tINTERFACE */
- tLCID = 376, /* tLCID */
- tLENGTHIS = 377, /* tLENGTHIS */
- tLIBRARY = 378, /* tLIBRARY */
- tLICENSED = 379, /* tLICENSED */
- tLOCAL = 380, /* tLOCAL */
- tLONG = 381, /* tLONG */
- tMARSHALINGBEHAVIOR = 382, /* tMARSHALINGBEHAVIOR */
- tMAYBE = 383, /* tMAYBE */
- tMESSAGE = 384, /* tMESSAGE */
- tMETHODS = 385, /* tMETHODS */
- tMODULE = 386, /* tMODULE */
- tMTA = 387, /* tMTA */
- tNAMESPACE = 388, /* tNAMESPACE */
- tNOCODE = 389, /* tNOCODE */
- tNONBROWSABLE = 390, /* tNONBROWSABLE */
- tNONCREATABLE = 391, /* tNONCREATABLE */
- tNONE = 392, /* tNONE */
- tNONEXTENSIBLE = 393, /* tNONEXTENSIBLE */
- tNOTIFY = 394, /* tNOTIFY */
- tNOTIFYFLAG = 395, /* tNOTIFYFLAG */
- tNULL = 396, /* tNULL */
- tOBJECT = 397, /* tOBJECT */
- tODL = 398, /* tODL */
- tOLEAUTOMATION = 399, /* tOLEAUTOMATION */
- tOPTIMIZE = 400, /* tOPTIMIZE */
- tOPTIONAL = 401, /* tOPTIONAL */
- tOUT = 402, /* tOUT */
- tOVERLOAD = 403, /* tOVERLOAD */
- tPARTIALIGNORE = 404, /* tPARTIALIGNORE */
- tPOINTERDEFAULT = 405, /* tPOINTERDEFAULT */
- tPRAGMA_WARNING = 406, /* tPRAGMA_WARNING */
- tPROGID = 407, /* tPROGID */
- tPROPERTIES = 408, /* tPROPERTIES */
- tPROPGET = 409, /* tPROPGET */
- tPROPPUT = 410, /* tPROPPUT */
- tPROPPUTREF = 411, /* tPROPPUTREF */
- tPROTECTED = 412, /* tPROTECTED */
- tPROXY = 413, /* tPROXY */
- tPTR = 414, /* tPTR */
- tPUBLIC = 415, /* tPUBLIC */
- tRANGE = 416, /* tRANGE */
- tREADONLY = 417, /* tREADONLY */
- tREF = 418, /* tREF */
- tREGISTER = 419, /* tREGISTER */
- tREPRESENTAS = 420, /* tREPRESENTAS */
- tREQUESTEDIT = 421, /* tREQUESTEDIT */
- tREQUIRES = 422, /* tREQUIRES */
- tRESTRICTED = 423, /* tRESTRICTED */
- tRETVAL = 424, /* tRETVAL */
- tRUNTIMECLASS = 425, /* tRUNTIMECLASS */
- tSAFEARRAY = 426, /* tSAFEARRAY */
- tSHORT = 427, /* tSHORT */
- tSIGNED = 428, /* tSIGNED */
- tSINGLENODE = 429, /* tSINGLENODE */
- tSIZEIS = 430, /* tSIZEIS */
- tSIZEOF = 431, /* tSIZEOF */
- tSMALL = 432, /* tSMALL */
- tSOURCE = 433, /* tSOURCE */
- tSTANDARD = 434, /* tSTANDARD */
- tSTATIC = 435, /* tSTATIC */
- tSTRICTCONTEXTHANDLE = 436, /* tSTRICTCONTEXTHANDLE */
- tSTRING = 437, /* tSTRING */
- tSTRUCT = 438, /* tSTRUCT */
- tSWITCH = 439, /* tSWITCH */
- tSWITCHIS = 440, /* tSWITCHIS */
- tSWITCHTYPE = 441, /* tSWITCHTYPE */
- tTHREADING = 442, /* tTHREADING */
- tTRANSMITAS = 443, /* tTRANSMITAS */
- tTRUE = 444, /* tTRUE */
- tTYPEDEF = 445, /* tTYPEDEF */
- tUIDEFAULT = 446, /* tUIDEFAULT */
- tUNION = 447, /* tUNION */
- tUNIQUE = 448, /* tUNIQUE */
- tUNSIGNED = 449, /* tUNSIGNED */
- tUSESGETLASTERROR = 450, /* tUSESGETLASTERROR */
- tUSERMARSHAL = 451, /* tUSERMARSHAL */
- tUUID = 452, /* tUUID */
- tV1ENUM = 453, /* tV1ENUM */
- tVARARG = 454, /* tVARARG */
- tVERSION = 455, /* tVERSION */
- tVIPROGID = 456, /* tVIPROGID */
- tVOID = 457, /* tVOID */
- tWCHAR = 458, /* tWCHAR */
- tWIREMARSHAL = 459, /* tWIREMARSHAL */
- tAPARTMENT = 460, /* tAPARTMENT */
- tNEUTRAL = 461, /* tNEUTRAL */
- tSINGLE = 462, /* tSINGLE */
- tFREE = 463, /* tFREE */
- tBOTH = 464, /* tBOTH */
- CAST = 465, /* CAST */
- PPTR = 466, /* PPTR */
- POS = 467, /* POS */
- NEG = 468, /* NEG */
- ADDRESSOF = 469 /* ADDRESSOF */
- };
- typedef enum parser_tokentype parser_token_kind_t;
-#endif
-
-/* Value type. */
-#if ! defined PARSER_STYPE && ! defined PARSER_STYPE_IS_DECLARED
-union PARSER_STYPE
-{
-#line 134 "tools/widl/parser.y"
-
- attr_t *attr;
- attr_list_t *attr_list;
- str_list_t *str_list;
- expr_t *expr;
- expr_list_t *expr_list;
- type_t *type;
- var_t *var;
- var_list_t *var_list;
- declarator_t *declarator;
- declarator_list_t *declarator_list;
- statement_t *statement;
- statement_list_t *stmt_list;
- warning_t *warning;
- warning_list_t *warning_list;
- typeref_t *typeref;
- typeref_list_t *typeref_list;
- char *str;
- struct uuid *uuid;
- unsigned int num;
- double dbl;
- typelib_t *typelib;
- struct _import_t *import;
- struct _decl_spec_t *declspec;
- enum storage_class stgclass;
- enum type_qualifier type_qualifier;
- enum function_specifier function_specifier;
- struct namespace *namespace;
-
-#line 493 "tools/widl/parser.tab.c"
-
-};
-typedef union PARSER_STYPE PARSER_STYPE;
-# define PARSER_STYPE_IS_TRIVIAL 1
-# define PARSER_STYPE_IS_DECLARED 1
-#endif
-
-/* Location type. */
-#if ! defined PARSER_LTYPE && ! defined PARSER_LTYPE_IS_DECLARED
-typedef struct PARSER_LTYPE PARSER_LTYPE;
-struct PARSER_LTYPE
-{
- int first_line;
- int first_column;
- int last_line;
- int last_column;
-};
-# define PARSER_LTYPE_IS_DECLARED 1
-# define PARSER_LTYPE_IS_TRIVIAL 1
-#endif
-
-
-
-
-int parser_parse (void);
-
-/* "%code provides" blocks. */
-#line 117 "tools/widl/parser.y"
-
-
-int parser_lex( PARSER_STYPE *yylval, PARSER_LTYPE *yylloc );
-void push_import( const char *fname, PARSER_LTYPE *yylloc );
-void pop_import( PARSER_LTYPE *yylloc );
-
-# define YYLLOC_DEFAULT( cur, rhs, n ) \
- do { if (n) init_location( &(cur), &YYRHSLOC( rhs, 1 ), &YYRHSLOC( rhs, n ) ); \
- else init_location( &(cur), &YYRHSLOC( rhs, 0 ), NULL ); } while(0)
-
-
-#line 533 "tools/widl/parser.tab.c"
-
-
+#include "parser.tab.h"
/* Symbol kind. */
enum yysymbol_kind_t
{
@@ -3582,13 +3256,13 @@
write_dlldata((yyvsp[-1].stmt_list));
write_local_stubs((yyvsp[-1].stmt_list));
}
-#line 3586 "tools/widl/parser.tab.c"
+#line 3260 "tools/widl/parser.tab.c"
break;
case 5: /* decl_statements: %empty */
#line 390 "tools/widl/parser.y"
{ (yyval.stmt_list) = NULL; }
-#line 3592 "tools/widl/parser.tab.c"
+#line 3266 "tools/widl/parser.tab.c"
break;
case 6: /* decl_statements: decl_statements tINTERFACE qualified_type '<' parameterized_type_args '>' ';' */
@@ -3596,73 +3270,73 @@
{ parameterized_type_stmts = append_statement(parameterized_type_stmts, make_statement_parameterized_type((yyvsp[-4].type), (yyvsp[-2].typeref_list)));
(yyval.stmt_list) = append_statement((yyvsp[-6].stmt_list), make_statement_reference(type_parameterized_type_specialize_declare((yyvsp[-4].type), (yyvsp[-2].typeref_list))));
}
-#line 3600 "tools/widl/parser.tab.c"
+#line 3274 "tools/widl/parser.tab.c"
break;
case 7: /* decl_block: tDECLARE '{' decl_statements '}' */
#line 397 "tools/widl/parser.y"
{ (yyval.stmt_list) = (yyvsp[-1].stmt_list); }
-#line 3606 "tools/widl/parser.tab.c"
+#line 3280 "tools/widl/parser.tab.c"
break;
case 8: /* imp_decl_statements: %empty */
#line 401 "tools/widl/parser.y"
{ (yyval.stmt_list) = NULL; }
-#line 3612 "tools/widl/parser.tab.c"
+#line 3286 "tools/widl/parser.tab.c"
break;
case 9: /* imp_decl_statements: imp_decl_statements tINTERFACE qualified_type '<' parameterized_type_args '>' ';' */
#line 403 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-6].stmt_list), make_statement_reference(type_parameterized_type_specialize_declare((yyvsp[-4].type), (yyvsp[-2].typeref_list)))); }
-#line 3618 "tools/widl/parser.tab.c"
+#line 3292 "tools/widl/parser.tab.c"
break;
case 10: /* imp_decl_block: tDECLARE '{' imp_decl_statements '}' */
#line 407 "tools/widl/parser.y"
{ (yyval.stmt_list) = (yyvsp[-1].stmt_list); }
-#line 3624 "tools/widl/parser.tab.c"
+#line 3298 "tools/widl/parser.tab.c"
break;
case 11: /* gbl_statements: %empty */
#line 411 "tools/widl/parser.y"
{ (yyval.stmt_list) = NULL; }
-#line 3630 "tools/widl/parser.tab.c"
+#line 3304 "tools/widl/parser.tab.c"
break;
case 12: /* $@1: %empty */
#line 412 "tools/widl/parser.y"
{ push_namespaces((yyvsp[-1].str_list)); }
-#line 3636 "tools/widl/parser.tab.c"
+#line 3310 "tools/widl/parser.tab.c"
break;
case 13: /* gbl_statements: gbl_statements namespacedef '{' $@1 gbl_statements '}' */
#line 413 "tools/widl/parser.y"
{ pop_namespaces((yyvsp[-4].str_list)); (yyval.stmt_list) = append_statements((yyvsp[-5].stmt_list), (yyvsp[-1].stmt_list)); }
-#line 3642 "tools/widl/parser.tab.c"
+#line 3316 "tools/widl/parser.tab.c"
break;
case 14: /* gbl_statements: gbl_statements interface ';' */
#line 414 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-2].stmt_list), make_statement_reference((yyvsp[-1].type))); }
-#line 3648 "tools/widl/parser.tab.c"
+#line 3322 "tools/widl/parser.tab.c"
break;
case 15: /* gbl_statements: gbl_statements dispinterface ';' */
#line 415 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-2].stmt_list), make_statement_reference((yyvsp[-1].type))); }
-#line 3654 "tools/widl/parser.tab.c"
+#line 3328 "tools/widl/parser.tab.c"
break;
case 16: /* gbl_statements: gbl_statements interfacedef */
#line 416 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); }
-#line 3660 "tools/widl/parser.tab.c"
+#line 3334 "tools/widl/parser.tab.c"
break;
case 17: /* gbl_statements: gbl_statements delegatedef */
#line 417 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); }
-#line 3666 "tools/widl/parser.tab.c"
+#line 3340 "tools/widl/parser.tab.c"
break;
case 18: /* gbl_statements: gbl_statements coclass ';' */
@@ -3670,7 +3344,7 @@
{ (yyval.stmt_list) = (yyvsp[-2].stmt_list);
reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0);
}
-#line 3674 "tools/widl/parser.tab.c"
+#line 3348 "tools/widl/parser.tab.c"
break;
case 19: /* gbl_statements: gbl_statements coclassdef */
@@ -3678,105 +3352,105 @@
{ (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 3682 "tools/widl/parser.tab.c"
+#line 3356 "tools/widl/parser.tab.c"
break;
case 20: /* gbl_statements: gbl_statements apicontract ';' */
#line 424 "tools/widl/parser.y"
{ (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); }
-#line 3688 "tools/widl/parser.tab.c"
+#line 3362 "tools/widl/parser.tab.c"
break;
case 21: /* gbl_statements: gbl_statements apicontract_def */
#line 425 "tools/widl/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 3695 "tools/widl/parser.tab.c"
+#line 3369 "tools/widl/parser.tab.c"
break;
case 22: /* gbl_statements: gbl_statements runtimeclass ';' */
#line 427 "tools/widl/parser.y"
{ (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); }
-#line 3701 "tools/widl/parser.tab.c"
+#line 3375 "tools/widl/parser.tab.c"
break;
case 23: /* gbl_statements: gbl_statements runtimeclass_def */
#line 428 "tools/widl/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 3708 "tools/widl/parser.tab.c"
+#line 3382 "tools/widl/parser.tab.c"
break;
case 24: /* gbl_statements: gbl_statements moduledef */
#line 430 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_module((yyvsp[0].type))); }
-#line 3714 "tools/widl/parser.tab.c"
+#line 3388 "tools/widl/parser.tab.c"
break;
case 25: /* gbl_statements: gbl_statements librarydef */
#line 431 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_library((yyvsp[0].typelib))); }
-#line 3720 "tools/widl/parser.tab.c"
+#line 3394 "tools/widl/parser.tab.c"
break;
case 26: /* gbl_statements: gbl_statements statement */
#line 432 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); }
-#line 3726 "tools/widl/parser.tab.c"
+#line 3400 "tools/widl/parser.tab.c"
break;
case 27: /* gbl_statements: gbl_statements decl_block */
#line 433 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statements((yyvsp[-1].stmt_list), (yyvsp[0].stmt_list)); }
-#line 3732 "tools/widl/parser.tab.c"
+#line 3406 "tools/widl/parser.tab.c"
break;
case 28: /* imp_statements: %empty */
#line 437 "tools/widl/parser.y"
{ (yyval.stmt_list) = NULL; }
-#line 3738 "tools/widl/parser.tab.c"
+#line 3412 "tools/widl/parser.tab.c"
break;
case 29: /* imp_statements: imp_statements interface ';' */
#line 438 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-2].stmt_list), make_statement_reference((yyvsp[-1].type))); }
-#line 3744 "tools/widl/parser.tab.c"
+#line 3418 "tools/widl/parser.tab.c"
break;
case 30: /* imp_statements: imp_statements dispinterface ';' */
#line 439 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-2].stmt_list), make_statement_reference((yyvsp[-1].type))); }
-#line 3750 "tools/widl/parser.tab.c"
+#line 3424 "tools/widl/parser.tab.c"
break;
case 31: /* $@2: %empty */
#line 440 "tools/widl/parser.y"
{ push_namespaces((yyvsp[-1].str_list)); }
-#line 3756 "tools/widl/parser.tab.c"
+#line 3430 "tools/widl/parser.tab.c"
break;
case 32: /* imp_statements: imp_statements namespacedef '{' $@2 imp_statements '}' */
#line 441 "tools/widl/parser.y"
{ pop_namespaces((yyvsp[-4].str_list)); (yyval.stmt_list) = append_statements((yyvsp[-5].stmt_list), (yyvsp[-1].stmt_list)); }
-#line 3762 "tools/widl/parser.tab.c"
+#line 3436 "tools/widl/parser.tab.c"
break;
case 33: /* imp_statements: imp_statements interfacedef */
#line 442 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); }
-#line 3768 "tools/widl/parser.tab.c"
+#line 3442 "tools/widl/parser.tab.c"
break;
case 34: /* imp_statements: imp_statements delegatedef */
#line 443 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); }
-#line 3774 "tools/widl/parser.tab.c"
+#line 3448 "tools/widl/parser.tab.c"
break;
case 35: /* imp_statements: imp_statements coclass ';' */
#line 444 "tools/widl/parser.y"
{ (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); }
-#line 3780 "tools/widl/parser.tab.c"
+#line 3454 "tools/widl/parser.tab.c"
break;
case 36: /* imp_statements: imp_statements coclassdef */
@@ -3784,117 +3458,117 @@
{ (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 3788 "tools/widl/parser.tab.c"
+#line 3462 "tools/widl/parser.tab.c"
break;
case 37: /* imp_statements: imp_statements apicontract ';' */
#line 448 "tools/widl/parser.y"
{ (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); }
-#line 3794 "tools/widl/parser.tab.c"
+#line 3468 "tools/widl/parser.tab.c"
break;
case 38: /* imp_statements: imp_statements apicontract_def */
#line 449 "tools/widl/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 3801 "tools/widl/parser.tab.c"
+#line 3475 "tools/widl/parser.tab.c"
break;
case 39: /* imp_statements: imp_statements runtimeclass ';' */
#line 451 "tools/widl/parser.y"
{ (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); }
-#line 3807 "tools/widl/parser.tab.c"
+#line 3481 "tools/widl/parser.tab.c"
break;
case 40: /* imp_statements: imp_statements runtimeclass_def */
#line 452 "tools/widl/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 3814 "tools/widl/parser.tab.c"
+#line 3488 "tools/widl/parser.tab.c"
break;
case 41: /* imp_statements: imp_statements moduledef */
#line 454 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_module((yyvsp[0].type))); }
-#line 3820 "tools/widl/parser.tab.c"
+#line 3494 "tools/widl/parser.tab.c"
break;
case 42: /* imp_statements: imp_statements statement */
#line 455 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); }
-#line 3826 "tools/widl/parser.tab.c"
+#line 3500 "tools/widl/parser.tab.c"
break;
case 43: /* imp_statements: imp_statements importlib */
#line 456 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_importlib((yyvsp[0].str))); }
-#line 3832 "tools/widl/parser.tab.c"
+#line 3506 "tools/widl/parser.tab.c"
break;
case 44: /* imp_statements: imp_statements librarydef */
#line 457 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_library((yyvsp[0].typelib))); }
-#line 3838 "tools/widl/parser.tab.c"
+#line 3512 "tools/widl/parser.tab.c"
break;
case 45: /* imp_statements: imp_statements imp_decl_block */
#line 458 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statements((yyvsp[-1].stmt_list), (yyvsp[0].stmt_list)); }
-#line 3844 "tools/widl/parser.tab.c"
+#line 3518 "tools/widl/parser.tab.c"
break;
case 46: /* int_statements: %empty */
#line 462 "tools/widl/parser.y"
{ (yyval.stmt_list) = NULL; }
-#line 3850 "tools/widl/parser.tab.c"
+#line 3524 "tools/widl/parser.tab.c"
break;
case 47: /* int_statements: int_statements statement */
#line 463 "tools/widl/parser.y"
{ (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); }
-#line 3856 "tools/widl/parser.tab.c"
+#line 3530 "tools/widl/parser.tab.c"
break;
case 50: /* statement: cppquote */
#line 472 "tools/widl/parser.y"
{ (yyval.statement) = make_statement_cppquote((yyvsp[0].str)); }
-#line 3862 "tools/widl/parser.tab.c"
+#line 3536 "tools/widl/parser.tab.c"
break;
case 51: /* statement: typedecl ';' */
#line 473 "tools/widl/parser.y"
{ (yyval.statement) = make_statement_type_decl((yyvsp[-1].type)); }
-#line 3868 "tools/widl/parser.tab.c"
+#line 3542 "tools/widl/parser.tab.c"
break;
case 52: /* statement: declaration ';' */
#line 474 "tools/widl/parser.y"
{ (yyval.statement) = make_statement_declaration((yyvsp[-1].var)); }
-#line 3874 "tools/widl/parser.tab.c"
+#line 3548 "tools/widl/parser.tab.c"
break;
case 53: /* statement: import */
#line 475 "tools/widl/parser.y"
{ (yyval.statement) = make_statement_import((yyvsp[0].str)); }
-#line 3880 "tools/widl/parser.tab.c"
+#line 3554 "tools/widl/parser.tab.c"
break;
case 54: /* statement: typedef ';' */
#line 476 "tools/widl/parser.y"
{ (yyval.statement) = (yyvsp[-1].statement); }
-#line 3886 "tools/widl/parser.tab.c"
+#line 3560 "tools/widl/parser.tab.c"
break;
case 55: /* statement: aPRAGMA */
#line 477 "tools/widl/parser.y"
{ (yyval.statement) = make_statement_pragma((yyvsp[0].str)); }
-#line 3892 "tools/widl/parser.tab.c"
+#line 3566 "tools/widl/parser.tab.c"
break;
case 56: /* statement: pragma_warning */
#line 478 "tools/widl/parser.y"
{ (yyval.statement) = NULL; }
-#line 3898 "tools/widl/parser.tab.c"
+#line 3572 "tools/widl/parser.tab.c"
break;
case 57: /* pragma_warning: tPRAGMA_WARNING '(' aIDENTIFIER ':' warnings ')' */
@@ -3906,7 +3580,7 @@
if(!result)
error_loc("expected \"disable\", \"enable\" or \"default\"\n");
}
-#line 3910 "tools/widl/parser.tab.c"
+#line 3584 "tools/widl/parser.tab.c"
break;
case 58: /* pragma_warning: tPRAGMA_WARNING '(' tDEFAULT ':' warnings ')' */
@@ -3915,85 +3589,85 @@
(yyval.statement) = NULL;
do_warning("default", (yyvsp[-1].warning_list));
}
-#line 3919 "tools/widl/parser.tab.c"
+#line 3593 "tools/widl/parser.tab.c"
break;
case 59: /* warnings: aNUM */
#line 497 "tools/widl/parser.y"
{ (yyval.warning_list) = append_warning(NULL, (yyvsp[0].num)); }
-#line 3925 "tools/widl/parser.tab.c"
+#line 3599 "tools/widl/parser.tab.c"
break;
case 60: /* warnings: warnings aNUM */
#line 498 "tools/widl/parser.y"
{ (yyval.warning_list) = append_warning((yyvsp[-1].warning_list), (yyvsp[0].num)); }
-#line 3931 "tools/widl/parser.tab.c"
+#line 3605 "tools/widl/parser.tab.c"
break;
case 62: /* typedecl: tENUM aIDENTIFIER */
#line 503 "tools/widl/parser.y"
{ (yyval.type) = type_new_enum((yyvsp[0].str), current_namespace, FALSE, NULL); }
-#line 3937 "tools/widl/parser.tab.c"
+#line 3611 "tools/widl/parser.tab.c"
break;
case 64: /* typedecl: tSTRUCT aIDENTIFIER */
#line 505 "tools/widl/parser.y"
{ (yyval.type) = type_new_struct((yyvsp[0].str), current_namespace, FALSE, NULL); }
-#line 3943 "tools/widl/parser.tab.c"
+#line 3617 "tools/widl/parser.tab.c"
break;
case 66: /* typedecl: tUNION aIDENTIFIER */
#line 507 "tools/widl/parser.y"
{ (yyval.type) = type_new_nonencapsulated_union((yyvsp[0].str), current_namespace, FALSE, NULL); }
-#line 3949 "tools/widl/parser.tab.c"
+#line 3623 "tools/widl/parser.tab.c"
break;
case 67: /* typedecl: attributes enumdef */
#line 508 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_enum_attrs((yyvsp[-1].attr_list)); }
-#line 3955 "tools/widl/parser.tab.c"
+#line 3629 "tools/widl/parser.tab.c"
break;
case 68: /* typedecl: attributes structdef */
#line 509 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_struct_attrs((yyvsp[-1].attr_list)); }
-#line 3961 "tools/widl/parser.tab.c"
+#line 3635 "tools/widl/parser.tab.c"
break;
case 69: /* typedecl: attributes uniondef */
#line 510 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_union_attrs((yyvsp[-1].attr_list)); }
-#line 3967 "tools/widl/parser.tab.c"
+#line 3641 "tools/widl/parser.tab.c"
break;
case 70: /* cppquote: tCPPQUOTE '(' aSTRING ')' */
#line 513 "tools/widl/parser.y"
{ (yyval.str) = (yyvsp[-1].str); }
-#line 3973 "tools/widl/parser.tab.c"
+#line 3647 "tools/widl/parser.tab.c"
break;
case 71: /* import_start: tIMPORT aSTRING ';' */
#line 516 "tools/widl/parser.y"
{ (yyval.str) = (yyvsp[-1].str); push_import( (yyvsp[-1].str), &yylloc ); }
-#line 3979 "tools/widl/parser.tab.c"
+#line 3653 "tools/widl/parser.tab.c"
break;
case 72: /* import: import_start imp_statements aEOF */
#line 518 "tools/widl/parser.y"
{ pop_import( &yylloc ); }
-#line 3985 "tools/widl/parser.tab.c"
+#line 3659 "tools/widl/parser.tab.c"
break;
case 73: /* importlib: tIMPORTLIB '(' aSTRING ')' semicolon_opt */
#line 522 "tools/widl/parser.y"
{ (yyval.str) = (yyvsp[-2].str); if(!parse_only) add_importlib((yyvsp[-2].str), current_typelib); }
-#line 3991 "tools/widl/parser.tab.c"
+#line 3665 "tools/widl/parser.tab.c"
break;
case 74: /* libraryhdr: tLIBRARY typename */
#line 525 "tools/widl/parser.y"
{ (yyval.str) = (yyvsp[0].str); }
-#line 3997 "tools/widl/parser.tab.c"
+#line 3671 "tools/widl/parser.tab.c"
break;
case 75: /* library_start: attributes libraryhdr '{' */
@@ -4001,37 +3675,37 @@
{ (yyval.typelib) = make_library((yyvsp[-1].str), check_library_attrs((yyvsp[-1].str), (yyvsp[-2].attr_list)));
if (!parse_only && do_typelib) current_typelib = (yyval.typelib);
}
-#line 4005 "tools/widl/parser.tab.c"
+#line 3679 "tools/widl/parser.tab.c"
break;
case 76: /* librarydef: library_start imp_statements '}' semicolon_opt */
#line 532 "tools/widl/parser.y"
{ (yyval.typelib) = (yyvsp[-3].typelib); (yyval.typelib)->stmts = (yyvsp[-2].stmt_list); }
-#line 4011 "tools/widl/parser.tab.c"
+#line 3685 "tools/widl/parser.tab.c"
break;
case 77: /* m_args: %empty */
#line 536 "tools/widl/parser.y"
{ (yyval.var_list) = NULL; }
-#line 4017 "tools/widl/parser.tab.c"
+#line 3691 "tools/widl/parser.tab.c"
break;
case 79: /* arg_list: arg */
#line 540 "tools/widl/parser.y"
{ check_arg_attrs((yyvsp[0].var)); (yyval.var_list) = append_var( NULL, (yyvsp[0].var) ); }
-#line 4023 "tools/widl/parser.tab.c"
+#line 3697 "tools/widl/parser.tab.c"
break;
case 80: /* arg_list: arg_list ',' arg */
#line 541 "tools/widl/parser.y"
{ check_arg_attrs((yyvsp[0].var)); (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[0].var) ); }
-#line 4029 "tools/widl/parser.tab.c"
+#line 3703 "tools/widl/parser.tab.c"
break;
case 82: /* args: arg_list ',' ELLIPSIS */
#line 545 "tools/widl/parser.y"
{ (yyval.var_list) = append_var( (yyvsp[-2].var_list), make_var(xstrdup("...")) ); }
-#line 4035 "tools/widl/parser.tab.c"
+#line 3709 "tools/widl/parser.tab.c"
break;
case 83: /* arg: attributes decl_spec m_any_declarator */
@@ -4041,7 +3715,7 @@
(yyval.var) = declare_var((yyvsp[-2].attr_list), (yyvsp[-1].declspec), (yyvsp[0].declarator), TRUE);
free((yyvsp[-1].declspec)); free((yyvsp[0].declarator));
}
-#line 4045 "tools/widl/parser.tab.c"
+#line 3719 "tools/widl/parser.tab.c"
break;
case 84: /* arg: decl_spec m_any_declarator */
@@ -4051,7 +3725,7 @@
(yyval.var) = declare_var(NULL, (yyvsp[-1].declspec), (yyvsp[0].declarator), TRUE);
free((yyvsp[-1].declspec)); free((yyvsp[0].declarator));
}
-#line 4055 "tools/widl/parser.tab.c"
+#line 3729 "tools/widl/parser.tab.c"
break;
case 85: /* array: '[' expr ']' */
@@ -4060,91 +3734,91 @@
if (!(yyval.expr)->is_const || (yyval.expr)->cval <= 0)
error_loc("array dimension is not a positive integer constant\n");
}
-#line 4064 "tools/widl/parser.tab.c"
+#line 3738 "tools/widl/parser.tab.c"
break;
case 86: /* array: '[' '*' ']' */
#line 565 "tools/widl/parser.y"
{ (yyval.expr) = make_expr(EXPR_VOID); }
-#line 4070 "tools/widl/parser.tab.c"
+#line 3744 "tools/widl/parser.tab.c"
break;
case 87: /* array: '[' ']' */
#line 566 "tools/widl/parser.y"
{ (yyval.expr) = make_expr(EXPR_VOID); }
-#line 4076 "tools/widl/parser.tab.c"
+#line 3750 "tools/widl/parser.tab.c"
break;
case 88: /* m_attributes: %empty */
#line 570 "tools/widl/parser.y"
{ (yyval.attr_list) = NULL; }
-#line 4082 "tools/widl/parser.tab.c"
+#line 3756 "tools/widl/parser.tab.c"
break;
case 90: /* attributes: '[' attrib_list ']' */
#line 575 "tools/widl/parser.y"
{ (yyval.attr_list) = (yyvsp[-1].attr_list); }
-#line 4088 "tools/widl/parser.tab.c"
+#line 3762 "tools/widl/parser.tab.c"
break;
case 91: /* attrib_list: attribute */
#line 578 "tools/widl/parser.y"
{ (yyval.attr_list) = append_attr( NULL, (yyvsp[0].attr) ); }
-#line 4094 "tools/widl/parser.tab.c"
+#line 3768 "tools/widl/parser.tab.c"
break;
case 92: /* attrib_list: attrib_list ',' attribute */
#line 579 "tools/widl/parser.y"
{ (yyval.attr_list) = append_attr( (yyvsp[-2].attr_list), (yyvsp[0].attr) ); }
-#line 4100 "tools/widl/parser.tab.c"
+#line 3774 "tools/widl/parser.tab.c"
break;
case 93: /* attrib_list: attrib_list ']' '[' attribute */
#line 580 "tools/widl/parser.y"
{ (yyval.attr_list) = append_attr( (yyvsp[-3].attr_list), (yyvsp[0].attr) ); }
-#line 4106 "tools/widl/parser.tab.c"
+#line 3780 "tools/widl/parser.tab.c"
break;
case 94: /* str_list: aSTRING */
#line 583 "tools/widl/parser.y"
{ (yyval.str_list) = append_str( NULL, (yyvsp[0].str) ); }
-#line 4112 "tools/widl/parser.tab.c"
+#line 3786 "tools/widl/parser.tab.c"
break;
case 95: /* str_list: str_list ',' aSTRING */
#line 584 "tools/widl/parser.y"
{ (yyval.str_list) = append_str( (yyvsp[-2].str_list), (yyvsp[0].str) ); }
-#line 4118 "tools/widl/parser.tab.c"
+#line 3792 "tools/widl/parser.tab.c"
break;
case 96: /* marshaling_behavior: tAGILE */
#line 588 "tools/widl/parser.y"
{ (yyval.num) = MARSHALING_AGILE; }
-#line 4124 "tools/widl/parser.tab.c"
+#line 3798 "tools/widl/parser.tab.c"
break;
case 97: /* marshaling_behavior: tNONE */
#line 589 "tools/widl/parser.y"
{ (yyval.num) = MARSHALING_NONE; }
-#line 4130 "tools/widl/parser.tab.c"
+#line 3804 "tools/widl/parser.tab.c"
break;
case 98: /* marshaling_behavior: tSTANDARD */
#line 590 "tools/widl/parser.y"
{ (yyval.num) = MARSHALING_STANDARD; }
-#line 4136 "tools/widl/parser.tab.c"
+#line 3810 "tools/widl/parser.tab.c"
break;
case 99: /* contract_ver: aNUM */
#line 594 "tools/widl/parser.y"
{ (yyval.num) = MAKEVERSION(0, (yyvsp[0].num)); }
-#line 4142 "tools/widl/parser.tab.c"
+#line 3816 "tools/widl/parser.tab.c"
break;
case 100: /* contract_ver: aNUM '.' aNUM */
#line 595 "tools/widl/parser.y"
{ (yyval.num) = MAKEVERSION((yyvsp[0].num), (yyvsp[-2].num)); }
-#line 4148 "tools/widl/parser.tab.c"
+#line 3822 "tools/widl/parser.tab.c"
break;
case 101: /* contract_req: decl_spec ',' contract_ver */
@@ -4154,7 +3828,7 @@
(yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[0].num));
(yyval.expr) = make_exprt(EXPR_GTREQL, declare_var(NULL, (yyvsp[-2].declspec), make_declarator(NULL), 0), (yyval.expr));
}
-#line 4158 "tools/widl/parser.tab.c"
+#line 3832 "tools/widl/parser.tab.c"
break;
case 102: /* static_attr: decl_spec ',' contract_req */
@@ -4163,7 +3837,7 @@
error_loc("type %s is not an interface\n", (yyvsp[-2].declspec)->type->name);
(yyval.expr) = make_exprt(EXPR_MEMBER, declare_var(NULL, (yyvsp[-2].declspec), make_declarator(NULL), 0), (yyvsp[0].expr));
}
-#line 4167 "tools/widl/parser.tab.c"
+#line 3841 "tools/widl/parser.tab.c"
break;
case 103: /* activatable_attr: decl_spec ',' contract_req */
@@ -4172,25 +3846,25 @@
error_loc("type %s is not an interface\n", (yyvsp[-2].declspec)->type->name);
(yyval.expr) = make_exprt(EXPR_MEMBER, declare_var(NULL, (yyvsp[-2].declspec), make_declarator(NULL), 0), (yyvsp[0].expr));
}
-#line 4176 "tools/widl/parser.tab.c"
+#line 3850 "tools/widl/parser.tab.c"
break;
case 104: /* activatable_attr: contract_req */
#line 618 "tools/widl/parser.y"
{ (yyval.expr) = (yyvsp[0].expr); }
-#line 4182 "tools/widl/parser.tab.c"
+#line 3856 "tools/widl/parser.tab.c"
break;
case 105: /* access_attr: tPUBLIC */
#line 622 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_PUBLIC, 0 ); }
-#line 4188 "tools/widl/parser.tab.c"
+#line 3862 "tools/widl/parser.tab.c"
break;
case 106: /* access_attr: tPROTECTED */
#line 623 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_PROTECTED, 0 ); }
-#line 4194 "tools/widl/parser.tab.c"
+#line 3868 "tools/widl/parser.tab.c"
break;
case 107: /* composable_attr: decl_spec ',' access_attr ',' contract_req */
@@ -4199,133 +3873,133 @@
error_loc( "type %s is not an interface\n", (yyvsp[-4].declspec)->type->name );
(yyval.expr) = make_exprt( EXPR_MEMBER, declare_var( append_attr( NULL, (yyvsp[-2].attr) ), (yyvsp[-4].declspec), make_declarator( NULL ), 0 ), (yyvsp[0].expr) );
}
-#line 4203 "tools/widl/parser.tab.c"
+#line 3877 "tools/widl/parser.tab.c"
break;
case 108: /* deprecated_attr: aSTRING ',' aIDENTIFIER ',' contract_req */
#line 636 "tools/widl/parser.y"
{ (yyval.expr) = make_expr3( EXPR_MEMBER, make_exprs( EXPR_STRLIT, (yyvsp[-4].str) ), make_exprs( EXPR_IDENTIFIER, (yyvsp[-2].str) ), (yyvsp[0].expr) ); }
-#line 4209 "tools/widl/parser.tab.c"
+#line 3883 "tools/widl/parser.tab.c"
break;
case 109: /* attribute: %empty */
#line 640 "tools/widl/parser.y"
{ (yyval.attr) = NULL; }
-#line 4215 "tools/widl/parser.tab.c"
+#line 3889 "tools/widl/parser.tab.c"
break;
case 110: /* attribute: tACTIVATABLE '(' activatable_attr ')' */
#line 641 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_ACTIVATABLE, (yyvsp[-1].expr) ); }
-#line 4221 "tools/widl/parser.tab.c"
+#line 3895 "tools/widl/parser.tab.c"
break;
case 111: /* attribute: tAGGREGATABLE */
#line 642 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_AGGREGATABLE, 0 ); }
-#line 4227 "tools/widl/parser.tab.c"
+#line 3901 "tools/widl/parser.tab.c"
break;
case 112: /* attribute: tANNOTATION '(' aSTRING ')' */
#line 643 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_ANNOTATION, (yyvsp[-1].str) ); }
-#line 4233 "tools/widl/parser.tab.c"
+#line 3907 "tools/widl/parser.tab.c"
break;
case 113: /* attribute: tAPPOBJECT */
#line 644 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_APPOBJECT, 0 ); }
-#line 4239 "tools/widl/parser.tab.c"
+#line 3913 "tools/widl/parser.tab.c"
break;
case 114: /* attribute: tASYNC */
#line 645 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_ASYNC, 0 ); }
-#line 4245 "tools/widl/parser.tab.c"
+#line 3919 "tools/widl/parser.tab.c"
break;
case 115: /* attribute: tAUTOHANDLE */
#line 646 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_AUTO_HANDLE, 0 ); }
-#line 4251 "tools/widl/parser.tab.c"
+#line 3925 "tools/widl/parser.tab.c"
break;
case 116: /* attribute: tBINDABLE */
#line 647 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_BINDABLE, 0 ); }
-#line 4257 "tools/widl/parser.tab.c"
+#line 3931 "tools/widl/parser.tab.c"
break;
case 117: /* attribute: tBROADCAST */
#line 648 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_BROADCAST, 0 ); }
-#line 4263 "tools/widl/parser.tab.c"
+#line 3937 "tools/widl/parser.tab.c"
break;
case 118: /* attribute: tCALLAS '(' ident ')' */
#line 649 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_CALLAS, (yyvsp[-1].var) ); }
-#line 4269 "tools/widl/parser.tab.c"
+#line 3943 "tools/widl/parser.tab.c"
break;
case 119: /* attribute: tCASE '(' expr_list_int_const ')' */
#line 650 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_CASE, (yyvsp[-1].expr_list) ); }
-#line 4275 "tools/widl/parser.tab.c"
+#line 3949 "tools/widl/parser.tab.c"
break;
case 120: /* attribute: tCODE */
#line 651 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_CODE, 0 ); }
-#line 4281 "tools/widl/parser.tab.c"
+#line 3955 "tools/widl/parser.tab.c"
break;
case 121: /* attribute: tCOMPOSABLE '(' composable_attr ')' */
#line 652 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_COMPOSABLE, (yyvsp[-1].expr) ); }
-#line 4287 "tools/widl/parser.tab.c"
+#line 3961 "tools/widl/parser.tab.c"
break;
case 122: /* attribute: tCOMMSTATUS */
#line 653 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_COMMSTATUS, 0 ); }
-#line 4293 "tools/widl/parser.tab.c"
+#line 3967 "tools/widl/parser.tab.c"
break;
case 123: /* attribute: tCONTEXTHANDLE */
#line 654 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_CONTEXTHANDLE, 0 ); }
-#line 4299 "tools/widl/parser.tab.c"
+#line 3973 "tools/widl/parser.tab.c"
break;
case 124: /* attribute: tCONTEXTHANDLENOSERIALIZE */
#line 655 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_CONTEXTHANDLE, 0 ); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ }
-#line 4305 "tools/widl/parser.tab.c"
+#line 3979 "tools/widl/parser.tab.c"
break;
case 125: /* attribute: tCONTEXTHANDLESERIALIZE */
#line 656 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_CONTEXTHANDLE, 0 ); /* RPC_CONTEXT_HANDLE_SERIALIZE */ }
-#line 4311 "tools/widl/parser.tab.c"
+#line 3985 "tools/widl/parser.tab.c"
break;
case 126: /* attribute: tCONTRACT '(' contract_req ')' */
#line 657 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_CONTRACT, (yyvsp[-1].expr) ); }
-#line 4317 "tools/widl/parser.tab.c"
+#line 3991 "tools/widl/parser.tab.c"
break;
case 127: /* attribute: tCONTRACTVERSION '(' contract_ver ')' */
#line 658 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_CONTRACTVERSION, (yyvsp[-1].num) ); }
-#line 4323 "tools/widl/parser.tab.c"
+#line 3997 "tools/widl/parser.tab.c"
break;
case 128: /* attribute: tCONTROL */
#line 659 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_CONTROL, 0 ); }
-#line 4329 "tools/widl/parser.tab.c"
+#line 4003 "tools/widl/parser.tab.c"
break;
case 129: /* attribute: tCUSTOM '(' aUUID ',' expr_const ')' */
@@ -4334,115 +4008,115 @@
data->id = *(yyvsp[-3].uuid); data->pval = (yyvsp[-1].expr);
(yyval.attr) = attr_ptr( (yyloc), ATTR_CUSTOM, data );
}
-#line 4338 "tools/widl/parser.tab.c"
+#line 4012 "tools/widl/parser.tab.c"
break;
case 130: /* attribute: tDECODE */
#line 664 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_DECODE, 0 ); }
-#line 4344 "tools/widl/parser.tab.c"
+#line 4018 "tools/widl/parser.tab.c"
break;
case 131: /* attribute: tDEFAULT */
#line 665 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_DEFAULT, 0 ); }
-#line 4350 "tools/widl/parser.tab.c"
+#line 4024 "tools/widl/parser.tab.c"
break;
case 132: /* attribute: tDEFAULT_OVERLOAD */
#line 666 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_DEFAULT_OVERLOAD, 0 ); }
-#line 4356 "tools/widl/parser.tab.c"
+#line 4030 "tools/widl/parser.tab.c"
break;
case 133: /* attribute: tDEFAULTBIND */
#line 667 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_DEFAULTBIND, 0 ); }
-#line 4362 "tools/widl/parser.tab.c"
+#line 4036 "tools/widl/parser.tab.c"
break;
case 134: /* attribute: tDEFAULTCOLLELEM */
#line 668 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_DEFAULTCOLLELEM, 0 ); }
-#line 4368 "tools/widl/parser.tab.c"
+#line 4042 "tools/widl/parser.tab.c"
break;
case 135: /* attribute: tDEFAULTVALUE '(' expr_const ')' */
#line 669 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_DEFAULTVALUE, (yyvsp[-1].expr) ); }
-#line 4374 "tools/widl/parser.tab.c"
+#line 4048 "tools/widl/parser.tab.c"
break;
case 136: /* attribute: tDEFAULTVTABLE */
#line 670 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_DEFAULTVTABLE, 0 ); }
-#line 4380 "tools/widl/parser.tab.c"
+#line 4054 "tools/widl/parser.tab.c"
break;
case 137: /* attribute: tDEPRECATED '(' deprecated_attr ')' */
#line 671 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_DEPRECATED, (yyvsp[-1].expr) ); }
-#line 4386 "tools/widl/parser.tab.c"
+#line 4060 "tools/widl/parser.tab.c"
break;
case 138: /* attribute: tDISABLECONSISTENCYCHECK */
#line 672 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_DISABLECONSISTENCYCHECK, 0 ); }
-#line 4392 "tools/widl/parser.tab.c"
+#line 4066 "tools/widl/parser.tab.c"
break;
case 139: /* attribute: tDISPLAYBIND */
#line 673 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_DISPLAYBIND, 0 ); }
-#line 4398 "tools/widl/parser.tab.c"
+#line 4072 "tools/widl/parser.tab.c"
break;
case 140: /* attribute: tDLLNAME '(' aSTRING ')' */
#line 674 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_DLLNAME, (yyvsp[-1].str) ); }
-#line 4404 "tools/widl/parser.tab.c"
+#line 4078 "tools/widl/parser.tab.c"
break;
case 141: /* attribute: tDUAL */
#line 675 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_DUAL, 0 ); }
-#line 4410 "tools/widl/parser.tab.c"
+#line 4084 "tools/widl/parser.tab.c"
break;
case 142: /* attribute: tENABLEALLOCATE */
#line 676 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_ENABLEALLOCATE, 0 ); }
-#line 4416 "tools/widl/parser.tab.c"
+#line 4090 "tools/widl/parser.tab.c"
break;
case 143: /* attribute: tENCODE */
#line 677 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_ENCODE, 0 ); }
-#line 4422 "tools/widl/parser.tab.c"
+#line 4096 "tools/widl/parser.tab.c"
break;
case 144: /* attribute: tENDPOINT '(' str_list ')' */
#line 678 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_ENDPOINT, (yyvsp[-1].str_list) ); }
-#line 4428 "tools/widl/parser.tab.c"
+#line 4102 "tools/widl/parser.tab.c"
break;
case 145: /* attribute: tENTRY '(' expr_const ')' */
#line 679 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_ENTRY, (yyvsp[-1].expr) ); }
-#line 4434 "tools/widl/parser.tab.c"
+#line 4108 "tools/widl/parser.tab.c"
break;
case 146: /* attribute: tEVENTADD */
#line 680 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_EVENTADD, 0 ); }
-#line 4440 "tools/widl/parser.tab.c"
+#line 4114 "tools/widl/parser.tab.c"
break;
case 147: /* attribute: tEVENTREMOVE */
#line 681 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_EVENTREMOVE, 0 ); }
-#line 4446 "tools/widl/parser.tab.c"
+#line 4120 "tools/widl/parser.tab.c"
break;
case 148: /* attribute: tEXCLUSIVETO '(' decl_spec ')' */
@@ -4451,301 +4125,301 @@
error_loc( "type %s is not a runtimeclass\n", (yyvsp[-1].declspec)->type->name );
(yyval.attr) = attr_ptr( (yyloc), ATTR_EXCLUSIVETO, (yyvsp[-1].declspec)->type );
}
-#line 4455 "tools/widl/parser.tab.c"
+#line 4129 "tools/widl/parser.tab.c"
break;
case 149: /* attribute: tEXPLICITHANDLE */
#line 686 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_EXPLICIT_HANDLE, 0 ); }
-#line 4461 "tools/widl/parser.tab.c"
+#line 4135 "tools/widl/parser.tab.c"
break;
case 150: /* attribute: tFAULTSTATUS */
#line 687 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_FAULTSTATUS, 0 ); }
-#line 4467 "tools/widl/parser.tab.c"
+#line 4141 "tools/widl/parser.tab.c"
break;
case 151: /* attribute: tFLAGS */
#line 688 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_FLAGS, 0 ); }
-#line 4473 "tools/widl/parser.tab.c"
+#line 4147 "tools/widl/parser.tab.c"
break;
case 152: /* attribute: tFORCEALLOCATE */
#line 689 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_FORCEALLOCATE, 0 ); }
-#line 4479 "tools/widl/parser.tab.c"
+#line 4153 "tools/widl/parser.tab.c"
break;
case 153: /* attribute: tHANDLE */
#line 690 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_HANDLE, 0 ); }
-#line 4485 "tools/widl/parser.tab.c"
+#line 4159 "tools/widl/parser.tab.c"
break;
case 154: /* attribute: tHELPCONTEXT '(' expr_int_const ')' */
#line 691 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_HELPCONTEXT, (yyvsp[-1].expr) ); }
-#line 4491 "tools/widl/parser.tab.c"
+#line 4165 "tools/widl/parser.tab.c"
break;
case 155: /* attribute: tHELPFILE '(' aSTRING ')' */
#line 692 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_HELPFILE, (yyvsp[-1].str) ); }
-#line 4497 "tools/widl/parser.tab.c"
+#line 4171 "tools/widl/parser.tab.c"
break;
case 156: /* attribute: tHELPSTRING '(' aSTRING ')' */
#line 693 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_HELPSTRING, (yyvsp[-1].str) ); }
-#line 4503 "tools/widl/parser.tab.c"
+#line 4177 "tools/widl/parser.tab.c"
break;
case 157: /* attribute: tHELPSTRINGCONTEXT '(' expr_int_const ')' */
#line 695 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_HELPSTRINGCONTEXT, (yyvsp[-1].expr) ); }
-#line 4509 "tools/widl/parser.tab.c"
+#line 4183 "tools/widl/parser.tab.c"
break;
case 158: /* attribute: tHELPSTRINGDLL '(' aSTRING ')' */
#line 696 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_HELPSTRINGDLL, (yyvsp[-1].str) ); }
-#line 4515 "tools/widl/parser.tab.c"
+#line 4189 "tools/widl/parser.tab.c"
break;
case 159: /* attribute: tHIDDEN */
#line 697 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_HIDDEN, 0 ); }
-#line 4521 "tools/widl/parser.tab.c"
+#line 4195 "tools/widl/parser.tab.c"
break;
case 160: /* attribute: tID '(' expr_int_const ')' */
#line 698 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_ID, (yyvsp[-1].expr) ); }
-#line 4527 "tools/widl/parser.tab.c"
+#line 4201 "tools/widl/parser.tab.c"
break;
case 161: /* attribute: tIDEMPOTENT */
#line 699 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_IDEMPOTENT, 0 ); }
-#line 4533 "tools/widl/parser.tab.c"
+#line 4207 "tools/widl/parser.tab.c"
break;
case 162: /* attribute: tIGNORE */
#line 700 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_IGNORE, 0 ); }
-#line 4539 "tools/widl/parser.tab.c"
+#line 4213 "tools/widl/parser.tab.c"
break;
case 163: /* attribute: tIIDIS '(' expr ')' */
#line 701 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_IIDIS, (yyvsp[-1].expr) ); }
-#line 4545 "tools/widl/parser.tab.c"
+#line 4219 "tools/widl/parser.tab.c"
break;
case 164: /* attribute: tIMMEDIATEBIND */
#line 702 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_IMMEDIATEBIND, 0 ); }
-#line 4551 "tools/widl/parser.tab.c"
+#line 4225 "tools/widl/parser.tab.c"
break;
case 165: /* attribute: tIMPLICITHANDLE '(' arg ')' */
#line 703 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_IMPLICIT_HANDLE, (yyvsp[-1].var) ); }
-#line 4557 "tools/widl/parser.tab.c"
+#line 4231 "tools/widl/parser.tab.c"
break;
case 166: /* attribute: tIN */
#line 704 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_IN, 0 ); }
-#line 4563 "tools/widl/parser.tab.c"
+#line 4237 "tools/widl/parser.tab.c"
break;
case 167: /* attribute: tINPUTSYNC */
#line 705 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_INPUTSYNC, 0 ); }
-#line 4569 "tools/widl/parser.tab.c"
+#line 4243 "tools/widl/parser.tab.c"
break;
case 168: /* attribute: tLENGTHIS '(' m_exprs ')' */
#line 706 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_LENGTHIS, (yyvsp[-1].expr_list) ); }
-#line 4575 "tools/widl/parser.tab.c"
+#line 4249 "tools/widl/parser.tab.c"
break;
case 169: /* attribute: tLCID '(' expr_int_const ')' */
#line 707 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_LIBLCID, (yyvsp[-1].expr) ); }
-#line 4581 "tools/widl/parser.tab.c"
+#line 4255 "tools/widl/parser.tab.c"
break;
case 170: /* attribute: tLCID */
#line 708 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_PARAMLCID, 0 ); }
-#line 4587 "tools/widl/parser.tab.c"
+#line 4261 "tools/widl/parser.tab.c"
break;
case 171: /* attribute: tLICENSED */
#line 709 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_LICENSED, 0 ); }
-#line 4593 "tools/widl/parser.tab.c"
+#line 4267 "tools/widl/parser.tab.c"
break;
case 172: /* attribute: tLOCAL */
#line 710 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_LOCAL, 0 ); }
-#line 4599 "tools/widl/parser.tab.c"
+#line 4273 "tools/widl/parser.tab.c"
break;
case 173: /* attribute: tMARSHALINGBEHAVIOR '(' marshaling_behavior ')' */
#line 712 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_MARSHALING_BEHAVIOR, (yyvsp[-1].num) ); }
-#line 4605 "tools/widl/parser.tab.c"
+#line 4279 "tools/widl/parser.tab.c"
break;
case 174: /* attribute: tMAYBE */
#line 713 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_MAYBE, 0 ); }
-#line 4611 "tools/widl/parser.tab.c"
+#line 4285 "tools/widl/parser.tab.c"
break;
case 175: /* attribute: tMESSAGE */
#line 714 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_MESSAGE, 0 ); }
-#line 4617 "tools/widl/parser.tab.c"
+#line 4291 "tools/widl/parser.tab.c"
break;
case 176: /* attribute: tNOCODE */
#line 715 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_NOCODE, 0 ); }
-#line 4623 "tools/widl/parser.tab.c"
+#line 4297 "tools/widl/parser.tab.c"
break;
case 177: /* attribute: tNONBROWSABLE */
#line 716 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_NONBROWSABLE, 0 ); }
-#line 4629 "tools/widl/parser.tab.c"
+#line 4303 "tools/widl/parser.tab.c"
break;
case 178: /* attribute: tNONCREATABLE */
#line 717 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_NONCREATABLE, 0 ); }
-#line 4635 "tools/widl/parser.tab.c"
+#line 4309 "tools/widl/parser.tab.c"
break;
case 179: /* attribute: tNONEXTENSIBLE */
#line 718 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_NONEXTENSIBLE, 0 ); }
-#line 4641 "tools/widl/parser.tab.c"
+#line 4315 "tools/widl/parser.tab.c"
break;
case 180: /* attribute: tNOTIFY */
#line 719 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_NOTIFY, 0 ); }
-#line 4647 "tools/widl/parser.tab.c"
+#line 4321 "tools/widl/parser.tab.c"
break;
case 181: /* attribute: tNOTIFYFLAG */
#line 720 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_NOTIFYFLAG, 0 ); }
-#line 4653 "tools/widl/parser.tab.c"
+#line 4327 "tools/widl/parser.tab.c"
break;
case 182: /* attribute: tOBJECT */
#line 721 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_OBJECT, 0 ); }
-#line 4659 "tools/widl/parser.tab.c"
+#line 4333 "tools/widl/parser.tab.c"
break;
case 183: /* attribute: tODL */
#line 722 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_ODL, 0 ); }
-#line 4665 "tools/widl/parser.tab.c"
+#line 4339 "tools/widl/parser.tab.c"
break;
case 184: /* attribute: tOLEAUTOMATION */
#line 723 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_OLEAUTOMATION, 0 ); }
-#line 4671 "tools/widl/parser.tab.c"
+#line 4345 "tools/widl/parser.tab.c"
break;
case 185: /* attribute: tOPTIMIZE '(' aSTRING ')' */
#line 724 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_OPTIMIZE, (yyvsp[-1].str) ); }
-#line 4677 "tools/widl/parser.tab.c"
+#line 4351 "tools/widl/parser.tab.c"
break;
case 186: /* attribute: tOPTIONAL */
#line 725 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_OPTIONAL, 0 ); }
-#line 4683 "tools/widl/parser.tab.c"
+#line 4357 "tools/widl/parser.tab.c"
break;
case 187: /* attribute: tOUT */
#line 726 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_OUT, 0 ); }
-#line 4689 "tools/widl/parser.tab.c"
+#line 4363 "tools/widl/parser.tab.c"
break;
case 188: /* attribute: tOVERLOAD '(' aSTRING ')' */
#line 727 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_OVERLOAD, (yyvsp[-1].str) ); }
-#line 4695 "tools/widl/parser.tab.c"
+#line 4369 "tools/widl/parser.tab.c"
break;
case 189: /* attribute: tPARTIALIGNORE */
#line 728 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_PARTIALIGNORE, 0 ); }
-#line 4701 "tools/widl/parser.tab.c"
+#line 4375 "tools/widl/parser.tab.c"
break;
case 190: /* attribute: tPOINTERDEFAULT '(' pointer_type ')' */
#line 729 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_POINTERDEFAULT, (yyvsp[-1].num) ); }
-#line 4707 "tools/widl/parser.tab.c"
+#line 4381 "tools/widl/parser.tab.c"
break;
case 191: /* attribute: tPROGID '(' aSTRING ')' */
#line 730 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_PROGID, (yyvsp[-1].str) ); }
-#line 4713 "tools/widl/parser.tab.c"
+#line 4387 "tools/widl/parser.tab.c"
break;
case 192: /* attribute: tPROPGET */
#line 731 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_PROPGET, 0 ); }
-#line 4719 "tools/widl/parser.tab.c"
+#line 4393 "tools/widl/parser.tab.c"
break;
case 193: /* attribute: tPROPPUT */
#line 732 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_PROPPUT, 0 ); }
-#line 4725 "tools/widl/parser.tab.c"
+#line 4399 "tools/widl/parser.tab.c"
break;
case 194: /* attribute: tPROPPUTREF */
#line 733 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_PROPPUTREF, 0 ); }
-#line 4731 "tools/widl/parser.tab.c"
+#line 4405 "tools/widl/parser.tab.c"
break;
case 195: /* attribute: tPROTECTED */
#line 734 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_PROTECTED, 0 ); }
-#line 4737 "tools/widl/parser.tab.c"
+#line 4411 "tools/widl/parser.tab.c"
break;
case 196: /* attribute: tPROXY */
#line 735 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_PROXY, 0 ); }
-#line 4743 "tools/widl/parser.tab.c"
+#line 4417 "tools/widl/parser.tab.c"
break;
case 197: /* attribute: tPUBLIC */
#line 736 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_PUBLIC, 0 ); }
-#line 4749 "tools/widl/parser.tab.c"
+#line 4423 "tools/widl/parser.tab.c"
break;
case 198: /* attribute: tRANGE '(' expr_int_const ',' expr_int_const ')' */
@@ -4754,169 +4428,169 @@
list = append_expr( list, (yyvsp[-1].expr) );
(yyval.attr) = attr_ptr( (yyloc), ATTR_RANGE, list );
}
-#line 4758 "tools/widl/parser.tab.c"
+#line 4432 "tools/widl/parser.tab.c"
break;
case 199: /* attribute: tREADONLY */
#line 742 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_READONLY, 0 ); }
-#line 4764 "tools/widl/parser.tab.c"
+#line 4438 "tools/widl/parser.tab.c"
break;
case 200: /* attribute: tREPRESENTAS '(' type ')' */
#line 743 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_REPRESENTAS, (yyvsp[-1].type) ); }
-#line 4770 "tools/widl/parser.tab.c"
+#line 4444 "tools/widl/parser.tab.c"
break;
case 201: /* attribute: tREQUESTEDIT */
#line 744 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_REQUESTEDIT, 0 ); }
-#line 4776 "tools/widl/parser.tab.c"
+#line 4450 "tools/widl/parser.tab.c"
break;
case 202: /* attribute: tRESTRICTED */
#line 745 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_RESTRICTED, 0 ); }
-#line 4782 "tools/widl/parser.tab.c"
+#line 4456 "tools/widl/parser.tab.c"
break;
case 203: /* attribute: tRETVAL */
#line 746 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_RETVAL, 0 ); }
-#line 4788 "tools/widl/parser.tab.c"
+#line 4462 "tools/widl/parser.tab.c"
break;
case 204: /* attribute: tSIZEIS '(' m_exprs ')' */
#line 747 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_SIZEIS, (yyvsp[-1].expr_list) ); }
-#line 4794 "tools/widl/parser.tab.c"
+#line 4468 "tools/widl/parser.tab.c"
break;
case 205: /* attribute: tSOURCE */
#line 748 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_SOURCE, 0 ); }
-#line 4800 "tools/widl/parser.tab.c"
+#line 4474 "tools/widl/parser.tab.c"
break;
case 206: /* attribute: tSTATIC '(' static_attr ')' */
#line 749 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_STATIC, (yyvsp[-1].expr) ); }
-#line 4806 "tools/widl/parser.tab.c"
+#line 4480 "tools/widl/parser.tab.c"
break;
case 207: /* attribute: tSTRICTCONTEXTHANDLE */
#line 750 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_STRICTCONTEXTHANDLE, 0 ); }
-#line 4812 "tools/widl/parser.tab.c"
+#line 4486 "tools/widl/parser.tab.c"
break;
case 208: /* attribute: tSTRING */
#line 751 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_STRING, 0 ); }
-#line 4818 "tools/widl/parser.tab.c"
+#line 4492 "tools/widl/parser.tab.c"
break;
case 209: /* attribute: tSWITCHIS '(' expr ')' */
#line 752 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_SWITCHIS, (yyvsp[-1].expr) ); }
-#line 4824 "tools/widl/parser.tab.c"
+#line 4498 "tools/widl/parser.tab.c"
break;
case 210: /* attribute: tSWITCHTYPE '(' type ')' */
#line 753 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_SWITCHTYPE, (yyvsp[-1].type) ); }
-#line 4830 "tools/widl/parser.tab.c"
+#line 4504 "tools/widl/parser.tab.c"
break;
case 211: /* attribute: tTRANSMITAS '(' type ')' */
#line 754 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_TRANSMITAS, (yyvsp[-1].type) ); }
-#line 4836 "tools/widl/parser.tab.c"
+#line 4510 "tools/widl/parser.tab.c"
break;
case 212: /* attribute: tTHREADING '(' threading_type ')' */
#line 755 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_THREADING, (yyvsp[-1].num) ); }
-#line 4842 "tools/widl/parser.tab.c"
+#line 4516 "tools/widl/parser.tab.c"
break;
case 213: /* attribute: tUIDEFAULT */
#line 756 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_UIDEFAULT, 0 ); }
-#line 4848 "tools/widl/parser.tab.c"
+#line 4522 "tools/widl/parser.tab.c"
break;
case 214: /* attribute: tUSESGETLASTERROR */
#line 757 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_USESGETLASTERROR, 0 ); }
-#line 4854 "tools/widl/parser.tab.c"
+#line 4528 "tools/widl/parser.tab.c"
break;
case 215: /* attribute: tUSERMARSHAL '(' type ')' */
#line 758 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_USERMARSHAL, (yyvsp[-1].type) ); }
-#line 4860 "tools/widl/parser.tab.c"
+#line 4534 "tools/widl/parser.tab.c"
break;
case 216: /* attribute: tUUID '(' aUUID ')' */
#line 759 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_UUID, (yyvsp[-1].uuid) ); }
-#line 4866 "tools/widl/parser.tab.c"
+#line 4540 "tools/widl/parser.tab.c"
break;
case 217: /* attribute: tASYNCUUID '(' aUUID ')' */
#line 760 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_ASYNCUUID, (yyvsp[-1].uuid) ); }
-#line 4872 "tools/widl/parser.tab.c"
+#line 4546 "tools/widl/parser.tab.c"
break;
case 218: /* attribute: tV1ENUM */
#line 761 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_V1ENUM, 0 ); }
-#line 4878 "tools/widl/parser.tab.c"
+#line 4552 "tools/widl/parser.tab.c"
break;
case 219: /* attribute: tVARARG */
#line 762 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_VARARG, 0 ); }
-#line 4884 "tools/widl/parser.tab.c"
+#line 4558 "tools/widl/parser.tab.c"
break;
case 220: /* attribute: tVERSION '(' version ')' */
#line 763 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_VERSION, (yyvsp[-1].num) ); }
-#line 4890 "tools/widl/parser.tab.c"
+#line 4564 "tools/widl/parser.tab.c"
break;
case 221: /* attribute: tVIPROGID '(' aSTRING ')' */
#line 764 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_VIPROGID, (yyvsp[-1].str) ); }
-#line 4896 "tools/widl/parser.tab.c"
+#line 4570 "tools/widl/parser.tab.c"
break;
case 222: /* attribute: tWIREMARSHAL '(' type ')' */
#line 765 "tools/widl/parser.y"
{ (yyval.attr) = attr_ptr( (yyloc), ATTR_WIREMARSHAL, (yyvsp[-1].type) ); }
-#line 4902 "tools/widl/parser.tab.c"
+#line 4576 "tools/widl/parser.tab.c"
break;
case 223: /* attribute: pointer_type */
#line 766 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_POINTERTYPE, (yyvsp[0].num) ); }
-#line 4908 "tools/widl/parser.tab.c"
+#line 4582 "tools/widl/parser.tab.c"
break;
case 228: /* cases: %empty */
#line 776 "tools/widl/parser.y"
{ (yyval.var_list) = NULL; }
-#line 4914 "tools/widl/parser.tab.c"
+#line 4588 "tools/widl/parser.tab.c"
break;
case 229: /* cases: cases case */
#line 777 "tools/widl/parser.y"
{ (yyval.var_list) = append_var( (yyvsp[-1].var_list), (yyvsp[0].var) ); }
-#line 4920 "tools/widl/parser.tab.c"
+#line 4594 "tools/widl/parser.tab.c"
break;
case 230: /* case: tCASE expr_int_const ':' union_field */
@@ -4925,7 +4599,7 @@
(yyval.var) = (yyvsp[0].var); if (!(yyval.var)) (yyval.var) = make_var( NULL );
(yyval.var)->attrs = append_attr( (yyval.var)->attrs, a );
}
-#line 4929 "tools/widl/parser.tab.c"
+#line 4603 "tools/widl/parser.tab.c"
break;
case 231: /* case: tDEFAULT ':' union_field */
@@ -4934,19 +4608,19 @@
(yyval.var) = (yyvsp[0].var); if (!(yyval.var)) (yyval.var) = make_var( NULL );
(yyval.var)->attrs = append_attr( (yyval.var)->attrs, a );
}
-#line 4938 "tools/widl/parser.tab.c"
+#line 4612 "tools/widl/parser.tab.c"
break;
case 232: /* enums: %empty */
#line 791 "tools/widl/parser.y"
{ (yyval.var_list) = NULL; }
-#line 4944 "tools/widl/parser.tab.c"
+#line 4618 "tools/widl/parser.tab.c"
break;
case 233: /* enums: enum_list ',' */
#line 792 "tools/widl/parser.y"
{ (yyval.var_list) = (yyvsp[-1].var_list); }
-#line 4950 "tools/widl/parser.tab.c"
+#line 4624 "tools/widl/parser.tab.c"
break;
case 235: /* enum_list: enum */
@@ -4955,7 +4629,7 @@
(yyvsp[0].var)->eval = make_exprl(EXPR_NUM, 0 /* default for first enum entry */);
(yyval.var_list) = append_var( NULL, (yyvsp[0].var) );
}
-#line 4959 "tools/widl/parser.tab.c"
+#line 4633 "tools/widl/parser.tab.c"
break;
case 236: /* enum_list: enum_list ',' enum */
@@ -4970,7 +4644,7 @@
}
(yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[0].var) );
}
-#line 4974 "tools/widl/parser.tab.c"
+#line 4648 "tools/widl/parser.tab.c"
break;
case 237: /* enum_member: m_attributes ident */
@@ -4978,7 +4652,7 @@
{ (yyval.var) = (yyvsp[0].var);
(yyval.var)->attrs = check_enum_member_attrs((yyvsp[-1].attr_list));
}
-#line 4982 "tools/widl/parser.tab.c"
+#line 4656 "tools/widl/parser.tab.c"
break;
case 238: /* enum: enum_member '=' expr_int_const */
@@ -4987,7 +4661,7 @@
(yyval.var)->eval = (yyvsp[0].expr);
(yyval.var)->declspec.type = type_new_int(TYPE_BASIC_INT, 0);
}
-#line 4991 "tools/widl/parser.tab.c"
+#line 4665 "tools/widl/parser.tab.c"
break;
case 239: /* enum: enum_member */
@@ -4995,289 +4669,289 @@
{ (yyval.var) = reg_const((yyvsp[0].var));
(yyval.var)->declspec.type = type_new_int(TYPE_BASIC_INT, 0);
}
-#line 4999 "tools/widl/parser.tab.c"
+#line 4673 "tools/widl/parser.tab.c"
break;
case 240: /* enumdef: tENUM m_typename '{' enums '}' */
#line 826 "tools/widl/parser.y"
{ (yyval.type) = type_new_enum((yyvsp[-3].str), current_namespace, TRUE, (yyvsp[-1].var_list)); }
-#line 5005 "tools/widl/parser.tab.c"
+#line 4679 "tools/widl/parser.tab.c"
break;
case 241: /* m_exprs: m_expr */
#line 829 "tools/widl/parser.y"
{ (yyval.expr_list) = append_expr( NULL, (yyvsp[0].expr) ); }
-#line 5011 "tools/widl/parser.tab.c"
+#line 4685 "tools/widl/parser.tab.c"
break;
case 242: /* m_exprs: m_exprs ',' m_expr */
#line 830 "tools/widl/parser.y"
{ (yyval.expr_list) = append_expr( (yyvsp[-2].expr_list), (yyvsp[0].expr) ); }
-#line 5017 "tools/widl/parser.tab.c"
+#line 4691 "tools/widl/parser.tab.c"
break;
case 243: /* m_expr: %empty */
#line 834 "tools/widl/parser.y"
{ (yyval.expr) = make_expr(EXPR_VOID); }
-#line 5023 "tools/widl/parser.tab.c"
+#line 4697 "tools/widl/parser.tab.c"
break;
case 245: /* expr: aNUM */
#line 838 "tools/widl/parser.y"
{ (yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[0].num)); }
-#line 5029 "tools/widl/parser.tab.c"
+#line 4703 "tools/widl/parser.tab.c"
break;
case 246: /* expr: aHEXNUM */
#line 839 "tools/widl/parser.y"
{ (yyval.expr) = make_exprl(EXPR_HEXNUM, (yyvsp[0].num)); }
-#line 5035 "tools/widl/parser.tab.c"
+#line 4709 "tools/widl/parser.tab.c"
break;
case 247: /* expr: aDOUBLE */
#line 840 "tools/widl/parser.y"
{ (yyval.expr) = make_exprd(EXPR_DOUBLE, (yyvsp[0].dbl)); }
-#line 5041 "tools/widl/parser.tab.c"
+#line 4715 "tools/widl/parser.tab.c"
break;
case 248: /* expr: tFALSE */
#line 841 "tools/widl/parser.y"
{ (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 0); }
-#line 5047 "tools/widl/parser.tab.c"
+#line 4721 "tools/widl/parser.tab.c"
break;
case 249: /* expr: tNULL */
#line 842 "tools/widl/parser.y"
{ (yyval.expr) = make_exprl(EXPR_NUM, 0); }
-#line 5053 "tools/widl/parser.tab.c"
+#line 4727 "tools/widl/parser.tab.c"
break;
case 250: /* expr: tTRUE */
#line 843 "tools/widl/parser.y"
{ (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 1); }
-#line 5059 "tools/widl/parser.tab.c"
+#line 4733 "tools/widl/parser.tab.c"
break;
case 251: /* expr: aSTRING */
#line 844 "tools/widl/parser.y"
{ (yyval.expr) = make_exprs(EXPR_STRLIT, (yyvsp[0].str)); }
-#line 5065 "tools/widl/parser.tab.c"
+#line 4739 "tools/widl/parser.tab.c"
break;
case 252: /* expr: aWSTRING */
#line 845 "tools/widl/parser.y"
{ (yyval.expr) = make_exprs(EXPR_WSTRLIT, (yyvsp[0].str)); }
-#line 5071 "tools/widl/parser.tab.c"
+#line 4745 "tools/widl/parser.tab.c"
break;
case 253: /* expr: aSQSTRING */
#line 846 "tools/widl/parser.y"
{ (yyval.expr) = make_exprs(EXPR_CHARCONST, (yyvsp[0].str)); }
-#line 5077 "tools/widl/parser.tab.c"
+#line 4751 "tools/widl/parser.tab.c"
break;
case 254: /* expr: aIDENTIFIER */
#line 847 "tools/widl/parser.y"
{ (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str)); }
-#line 5083 "tools/widl/parser.tab.c"
+#line 4757 "tools/widl/parser.tab.c"
break;
case 255: /* expr: expr '?' expr ':' expr */
#line 848 "tools/widl/parser.y"
{ (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5089 "tools/widl/parser.tab.c"
+#line 4763 "tools/widl/parser.tab.c"
break;
case 256: /* expr: expr LOGICALOR expr */
#line 849 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_LOGOR, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5095 "tools/widl/parser.tab.c"
+#line 4769 "tools/widl/parser.tab.c"
break;
case 257: /* expr: expr LOGICALAND expr */
#line 850 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_LOGAND, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5101 "tools/widl/parser.tab.c"
+#line 4775 "tools/widl/parser.tab.c"
break;
case 258: /* expr: expr '|' expr */
#line 851 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5107 "tools/widl/parser.tab.c"
+#line 4781 "tools/widl/parser.tab.c"
break;
case 259: /* expr: expr '^' expr */
#line 852 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_XOR, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5113 "tools/widl/parser.tab.c"
+#line 4787 "tools/widl/parser.tab.c"
break;
case 260: /* expr: expr '&' expr */
#line 853 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5119 "tools/widl/parser.tab.c"
+#line 4793 "tools/widl/parser.tab.c"
break;
case 261: /* expr: expr EQUALITY expr */
#line 854 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_EQUALITY, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5125 "tools/widl/parser.tab.c"
+#line 4799 "tools/widl/parser.tab.c"
break;
case 262: /* expr: expr INEQUALITY expr */
#line 855 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_INEQUALITY, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5131 "tools/widl/parser.tab.c"
+#line 4805 "tools/widl/parser.tab.c"
break;
case 263: /* expr: expr '>' expr */
#line 856 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_GTR, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5137 "tools/widl/parser.tab.c"
+#line 4811 "tools/widl/parser.tab.c"
break;
case 264: /* expr: expr '<' expr */
#line 857 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_LESS, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5143 "tools/widl/parser.tab.c"
+#line 4817 "tools/widl/parser.tab.c"
break;
case 265: /* expr: expr GREATEREQUAL expr */
#line 858 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_GTREQL, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5149 "tools/widl/parser.tab.c"
+#line 4823 "tools/widl/parser.tab.c"
break;
case 266: /* expr: expr LESSEQUAL expr */
#line 859 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_LESSEQL, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5155 "tools/widl/parser.tab.c"
+#line 4829 "tools/widl/parser.tab.c"
break;
case 267: /* expr: expr SHL expr */
#line 860 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5161 "tools/widl/parser.tab.c"
+#line 4835 "tools/widl/parser.tab.c"
break;
case 268: /* expr: expr SHR expr */
#line 861 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5167 "tools/widl/parser.tab.c"
+#line 4841 "tools/widl/parser.tab.c"
break;
case 269: /* expr: expr '+' expr */
#line 862 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5173 "tools/widl/parser.tab.c"
+#line 4847 "tools/widl/parser.tab.c"
break;
case 270: /* expr: expr '-' expr */
#line 863 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5179 "tools/widl/parser.tab.c"
+#line 4853 "tools/widl/parser.tab.c"
break;
case 271: /* expr: expr '%' expr */
#line 864 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_MOD, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5185 "tools/widl/parser.tab.c"
+#line 4859 "tools/widl/parser.tab.c"
break;
case 272: /* expr: expr '*' expr */
#line 865 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5191 "tools/widl/parser.tab.c"
+#line 4865 "tools/widl/parser.tab.c"
break;
case 273: /* expr: expr '/' expr */
#line 866 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[-2].expr), (yyvsp[0].expr)); }
-#line 5197 "tools/widl/parser.tab.c"
+#line 4871 "tools/widl/parser.tab.c"
break;
case 274: /* expr: '!' expr */
#line 867 "tools/widl/parser.y"
{ (yyval.expr) = make_expr1(EXPR_LOGNOT, (yyvsp[0].expr)); }
-#line 5203 "tools/widl/parser.tab.c"
+#line 4877 "tools/widl/parser.tab.c"
break;
case 275: /* expr: '~' expr */
#line 868 "tools/widl/parser.y"
{ (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[0].expr)); }
-#line 5209 "tools/widl/parser.tab.c"
+#line 4883 "tools/widl/parser.tab.c"
break;
case 276: /* expr: '+' expr */
#line 869 "tools/widl/parser.y"
{ (yyval.expr) = make_expr1(EXPR_POS, (yyvsp[0].expr)); }
-#line 5215 "tools/widl/parser.tab.c"
+#line 4889 "tools/widl/parser.tab.c"
break;
case 277: /* expr: '-' expr */
#line 870 "tools/widl/parser.y"
{ (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[0].expr)); }
-#line 5221 "tools/widl/parser.tab.c"
+#line 4895 "tools/widl/parser.tab.c"
break;
case 278: /* expr: '&' expr */
#line 871 "tools/widl/parser.y"
{ (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[0].expr)); }
-#line 5227 "tools/widl/parser.tab.c"
+#line 4901 "tools/widl/parser.tab.c"
break;
case 279: /* expr: '*' expr */
#line 872 "tools/widl/parser.y"
{ (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[0].expr)); }
-#line 5233 "tools/widl/parser.tab.c"
+#line 4907 "tools/widl/parser.tab.c"
break;
case 280: /* expr: expr MEMBERPTR aIDENTIFIER */
#line 873 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_MEMBER, make_expr1(EXPR_PPTR, (yyvsp[-2].expr)), make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str))); }
-#line 5239 "tools/widl/parser.tab.c"
+#line 4913 "tools/widl/parser.tab.c"
break;
case 281: /* expr: expr '.' aIDENTIFIER */
#line 874 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_MEMBER, (yyvsp[-2].expr), make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str))); }
-#line 5245 "tools/widl/parser.tab.c"
+#line 4919 "tools/widl/parser.tab.c"
break;
case 282: /* expr: '(' unqualified_decl_spec m_abstract_declarator ')' expr */
#line 876 "tools/widl/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 5251 "tools/widl/parser.tab.c"
+#line 4925 "tools/widl/parser.tab.c"
break;
case 283: /* expr: tSIZEOF '(' unqualified_decl_spec m_abstract_declarator ')' */
#line 878 "tools/widl/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 5257 "tools/widl/parser.tab.c"
+#line 4931 "tools/widl/parser.tab.c"
break;
case 284: /* expr: expr '[' expr ']' */
#line 879 "tools/widl/parser.y"
{ (yyval.expr) = make_expr2(EXPR_ARRAY, (yyvsp[-3].expr), (yyvsp[-1].expr)); }
-#line 5263 "tools/widl/parser.tab.c"
+#line 4937 "tools/widl/parser.tab.c"
break;
case 285: /* expr: '(' expr ')' */
#line 880 "tools/widl/parser.y"
{ (yyval.expr) = (yyvsp[-1].expr); }
-#line 5269 "tools/widl/parser.tab.c"
+#line 4943 "tools/widl/parser.tab.c"
break;
case 286: /* expr_list_int_const: expr_int_const */
#line 883 "tools/widl/parser.y"
{ (yyval.expr_list) = append_expr( NULL, (yyvsp[0].expr) ); }
-#line 5275 "tools/widl/parser.tab.c"
+#line 4949 "tools/widl/parser.tab.c"
break;
case 287: /* expr_list_int_const: expr_list_int_const ',' expr_int_const */
#line 884 "tools/widl/parser.y"
{ (yyval.expr_list) = append_expr( (yyvsp[-2].expr_list), (yyvsp[0].expr) ); }
-#line 5281 "tools/widl/parser.tab.c"
+#line 4955 "tools/widl/parser.tab.c"
break;
case 288: /* expr_int_const: expr */
@@ -5286,7 +4960,7 @@
if (!(yyval.expr)->is_const)
error_loc("expression is not an integer constant\n");
}
-#line 5290 "tools/widl/parser.tab.c"
+#line 4964 "tools/widl/parser.tab.c"
break;
case 289: /* expr_const: expr */
@@ -5295,19 +4969,19 @@
if (!(yyval.expr)->is_const && (yyval.expr)->type != EXPR_STRLIT && (yyval.expr)->type != EXPR_WSTRLIT)
error_loc("expression is not constant\n");
}
-#line 5299 "tools/widl/parser.tab.c"
+#line 4973 "tools/widl/parser.tab.c"
break;
case 290: /* fields: %empty */
#line 900 "tools/widl/parser.y"
{ (yyval.var_list) = NULL; }
-#line 5305 "tools/widl/parser.tab.c"
+#line 4979 "tools/widl/parser.tab.c"
break;
case 291: /* fields: fields field */
#line 901 "tools/widl/parser.y"
{ (yyval.var_list) = append_var_list((yyvsp[-1].var_list), (yyvsp[0].var_list)); }
-#line 5311 "tools/widl/parser.tab.c"
+#line 4985 "tools/widl/parser.tab.c"
break;
case 292: /* field: m_attributes decl_spec struct_declarator_list ';' */
@@ -5316,7 +4990,7 @@
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 5320 "tools/widl/parser.tab.c"
+#line 4994 "tools/widl/parser.tab.c"
break;
case 293: /* field: m_attributes uniondef ';' */
@@ -5325,43 +4999,43 @@
v->declspec.type = (yyvsp[-1].type); v->attrs = (yyvsp[-2].attr_list);
(yyval.var_list) = append_var(NULL, v);
}
-#line 5329 "tools/widl/parser.tab.c"
+#line 5003 "tools/widl/parser.tab.c"
break;
case 294: /* ne_union_field: s_field ';' */
#line 916 "tools/widl/parser.y"
{ (yyval.var) = (yyvsp[-1].var); }
-#line 5335 "tools/widl/parser.tab.c"
+#line 5009 "tools/widl/parser.tab.c"
break;
case 295: /* ne_union_field: attributes ';' */
#line 917 "tools/widl/parser.y"
{ (yyval.var) = make_var(NULL); (yyval.var)->attrs = (yyvsp[-1].attr_list); }
-#line 5341 "tools/widl/parser.tab.c"
+#line 5015 "tools/widl/parser.tab.c"
break;
case 296: /* ne_union_fields: %empty */
#line 921 "tools/widl/parser.y"
{ (yyval.var_list) = NULL; }
-#line 5347 "tools/widl/parser.tab.c"
+#line 5021 "tools/widl/parser.tab.c"
break;
case 297: /* ne_union_fields: ne_union_fields ne_union_field */
#line 922 "tools/widl/parser.y"
{ (yyval.var_list) = append_var( (yyvsp[-1].var_list), (yyvsp[0].var) ); }
-#line 5353 "tools/widl/parser.tab.c"
+#line 5027 "tools/widl/parser.tab.c"
break;
case 298: /* union_field: s_field ';' */
#line 926 "tools/widl/parser.y"
{ (yyval.var) = (yyvsp[-1].var); }
-#line 5359 "tools/widl/parser.tab.c"
+#line 5033 "tools/widl/parser.tab.c"
break;
case 299: /* union_field: ';' */
#line 927 "tools/widl/parser.y"
{ (yyval.var) = NULL; }
-#line 5365 "tools/widl/parser.tab.c"
+#line 5039 "tools/widl/parser.tab.c"
break;
case 300: /* s_field: m_attributes decl_spec declarator */
@@ -5370,7 +5044,7 @@
(yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE);
free((yyvsp[0].declarator));
}
-#line 5374 "tools/widl/parser.tab.c"
+#line 5048 "tools/widl/parser.tab.c"
break;
case 301: /* s_field: m_attributes structdef */
@@ -5379,7 +5053,7 @@
v->declspec.type = (yyvsp[0].type); v->attrs = (yyvsp[-1].attr_list);
(yyval.var) = v;
}
-#line 5383 "tools/widl/parser.tab.c"
+#line 5057 "tools/widl/parser.tab.c"
break;
case 302: /* funcdef: declaration */
@@ -5389,7 +5063,7 @@
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 5393 "tools/widl/parser.tab.c"
+#line 5067 "tools/widl/parser.tab.c"
break;
case 303: /* declaration: attributes decl_spec init_declarator */
@@ -5397,7 +5071,7 @@
{ (yyval.var) = declare_var((yyvsp[-2].attr_list), (yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE);
free((yyvsp[0].declarator));
}
-#line 5401 "tools/widl/parser.tab.c"
+#line 5075 "tools/widl/parser.tab.c"
break;
case 304: /* declaration: decl_spec init_declarator */
@@ -5405,392 +5079,392 @@
{ (yyval.var) = declare_var(NULL, (yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE);
free((yyvsp[0].declarator));
}
-#line 5409 "tools/widl/parser.tab.c"
+#line 5083 "tools/widl/parser.tab.c"
break;
case 305: /* m_ident: %empty */
#line 958 "tools/widl/parser.y"
{ (yyval.var) = NULL; }
-#line 5415 "tools/widl/parser.tab.c"
+#line 5089 "tools/widl/parser.tab.c"
break;
case 307: /* m_typename: %empty */
#line 963 "tools/widl/parser.y"
{ (yyval.str) = NULL; }
-#line 5421 "tools/widl/parser.tab.c"
+#line 5095 "tools/widl/parser.tab.c"
break;
case 311: /* ident: typename */
#line 971 "tools/widl/parser.y"
{ (yyval.var) = make_var((yyvsp[0].str)); }
-#line 5427 "tools/widl/parser.tab.c"
+#line 5101 "tools/widl/parser.tab.c"
break;
case 312: /* base_type: tBYTE */
#line 974 "tools/widl/parser.y"
{ (yyval.type) = find_type_or_error( NULL, "byte" ); }
-#line 5433 "tools/widl/parser.tab.c"
+#line 5107 "tools/widl/parser.tab.c"
break;
case 313: /* base_type: tWCHAR */
#line 975 "tools/widl/parser.y"
{ (yyval.type) = find_type_or_error( NULL, "wchar_t" ); }
-#line 5439 "tools/widl/parser.tab.c"
+#line 5113 "tools/widl/parser.tab.c"
break;
case 315: /* base_type: tSIGNED int_std */
#line 977 "tools/widl/parser.y"
{ (yyval.type) = type_new_int(type_basic_get_type((yyvsp[0].type)), -1); }
-#line 5445 "tools/widl/parser.tab.c"
+#line 5119 "tools/widl/parser.tab.c"
break;
case 316: /* base_type: tUNSIGNED int_std */
#line 978 "tools/widl/parser.y"
{ (yyval.type) = type_new_int(type_basic_get_type((yyvsp[0].type)), 1); }
-#line 5451 "tools/widl/parser.tab.c"
+#line 5125 "tools/widl/parser.tab.c"
break;
case 317: /* base_type: tUNSIGNED */
#line 979 "tools/widl/parser.y"
{ (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); }
-#line 5457 "tools/widl/parser.tab.c"
+#line 5131 "tools/widl/parser.tab.c"
break;
case 318: /* base_type: tFLOAT */
#line 980 "tools/widl/parser.y"
{ (yyval.type) = find_type_or_error( NULL, "float" ); }
-#line 5463 "tools/widl/parser.tab.c"
+#line 5137 "tools/widl/parser.tab.c"
break;
case 319: /* base_type: tDOUBLE */
#line 981 "tools/widl/parser.y"
{ (yyval.type) = find_type_or_error( NULL, "double" ); }
-#line 5469 "tools/widl/parser.tab.c"
+#line 5143 "tools/widl/parser.tab.c"
break;
case 320: /* base_type: tBOOLEAN */
#line 982 "tools/widl/parser.y"
{ (yyval.type) = find_type_or_error( NULL, "boolean" ); }
-#line 5475 "tools/widl/parser.tab.c"
+#line 5149 "tools/widl/parser.tab.c"
break;
case 321: /* base_type: tERRORSTATUST */
#line 983 "tools/widl/parser.y"
{ (yyval.type) = find_type_or_error( NULL, "error_status_t" ); }
-#line 5481 "tools/widl/parser.tab.c"
+#line 5155 "tools/widl/parser.tab.c"
break;
case 322: /* base_type: tHANDLET */
#line 984 "tools/widl/parser.y"
{ (yyval.type) = find_type_or_error( NULL, "handle_t" ); }
-#line 5487 "tools/widl/parser.tab.c"
+#line 5161 "tools/widl/parser.tab.c"
break;
case 325: /* int_std: tINT */
#line 992 "tools/widl/parser.y"
{ (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); }
-#line 5493 "tools/widl/parser.tab.c"
+#line 5167 "tools/widl/parser.tab.c"
break;
case 326: /* int_std: tSHORT m_int */
#line 993 "tools/widl/parser.y"
{ (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); }
-#line 5499 "tools/widl/parser.tab.c"
+#line 5173 "tools/widl/parser.tab.c"
break;
case 327: /* int_std: tSMALL */
#line 994 "tools/widl/parser.y"
{ (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); }
-#line 5505 "tools/widl/parser.tab.c"
+#line 5179 "tools/widl/parser.tab.c"
break;
case 328: /* int_std: tLONG m_int */
#line 995 "tools/widl/parser.y"
{ (yyval.type) = type_new_int(TYPE_BASIC_LONG, 0); }
-#line 5511 "tools/widl/parser.tab.c"
+#line 5185 "tools/widl/parser.tab.c"
break;
case 329: /* int_std: tHYPER m_int */
#line 996 "tools/widl/parser.y"
{ (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); }
-#line 5517 "tools/widl/parser.tab.c"
+#line 5191 "tools/widl/parser.tab.c"
break;
case 330: /* int_std: tINT64 */
#line 997 "tools/widl/parser.y"
{ (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); }
-#line 5523 "tools/widl/parser.tab.c"
+#line 5197 "tools/widl/parser.tab.c"
break;
case 331: /* int_std: tCHAR */
#line 998 "tools/widl/parser.y"
{ (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); }
-#line 5529 "tools/widl/parser.tab.c"
+#line 5203 "tools/widl/parser.tab.c"
break;
case 332: /* int_std: tINT32 */
#line 999 "tools/widl/parser.y"
{ (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); }
-#line 5535 "tools/widl/parser.tab.c"
+#line 5209 "tools/widl/parser.tab.c"
break;
case 333: /* int_std: tINT3264 */
#line 1000 "tools/widl/parser.y"
{ (yyval.type) = type_new_int(TYPE_BASIC_INT3264, 0); }
-#line 5541 "tools/widl/parser.tab.c"
+#line 5215 "tools/widl/parser.tab.c"
break;
case 334: /* namespace_pfx: aIDENTIFIER '.' */
#line 1004 "tools/widl/parser.y"
{ (yyval.namespace) = find_namespace_or_error(&global_namespace, (yyvsp[-1].str)); }
-#line 5547 "tools/widl/parser.tab.c"
+#line 5221 "tools/widl/parser.tab.c"
break;
case 335: /* namespace_pfx: namespace_pfx aIDENTIFIER '.' */
#line 1005 "tools/widl/parser.y"
{ (yyval.namespace) = find_namespace_or_error((yyvsp[-2].namespace), (yyvsp[-1].str)); }
-#line 5553 "tools/widl/parser.tab.c"
+#line 5227 "tools/widl/parser.tab.c"
break;
case 336: /* qualified_type: typename */
#line 1009 "tools/widl/parser.y"
{ (yyval.type) = find_type_or_error(current_namespace, (yyvsp[0].str)); }
-#line 5559 "tools/widl/parser.tab.c"
+#line 5233 "tools/widl/parser.tab.c"
break;
case 337: /* qualified_type: namespace_pfx typename */
#line 1010 "tools/widl/parser.y"
{ (yyval.type) = find_type_or_error((yyvsp[-1].namespace), (yyvsp[0].str)); }
-#line 5565 "tools/widl/parser.tab.c"
+#line 5239 "tools/widl/parser.tab.c"
break;
case 338: /* parameterized_type: qualified_type '<' parameterized_type_args '>' */
#line 1014 "tools/widl/parser.y"
{ (yyval.type) = find_parameterized_type((yyvsp[-3].type), (yyvsp[-1].typeref_list)); }
-#line 5571 "tools/widl/parser.tab.c"
+#line 5245 "tools/widl/parser.tab.c"
break;
case 339: /* parameterized_type_arg: base_type */
#line 1018 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[0].type); }
-#line 5577 "tools/widl/parser.tab.c"
+#line 5251 "tools/widl/parser.tab.c"
break;
case 340: /* parameterized_type_arg: qualified_type */
#line 1019 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[0].type); }
-#line 5583 "tools/widl/parser.tab.c"
+#line 5257 "tools/widl/parser.tab.c"
break;
case 341: /* parameterized_type_arg: qualified_type '*' */
#line 1020 "tools/widl/parser.y"
{ (yyval.type) = type_new_pointer((yyvsp[-1].type)); }
-#line 5589 "tools/widl/parser.tab.c"
+#line 5263 "tools/widl/parser.tab.c"
break;
case 342: /* parameterized_type_arg: parameterized_type */
#line 1021 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[0].type); }
-#line 5595 "tools/widl/parser.tab.c"
+#line 5269 "tools/widl/parser.tab.c"
break;
case 343: /* parameterized_type_arg: parameterized_type '*' */
#line 1022 "tools/widl/parser.y"
{ (yyval.type) = type_new_pointer((yyvsp[-1].type)); }
-#line 5601 "tools/widl/parser.tab.c"
+#line 5275 "tools/widl/parser.tab.c"
break;
case 344: /* parameterized_type_args: parameterized_type_arg */
#line 1026 "tools/widl/parser.y"
{ (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); }
-#line 5607 "tools/widl/parser.tab.c"
+#line 5281 "tools/widl/parser.tab.c"
break;
case 345: /* parameterized_type_args: parameterized_type_args ',' parameterized_type_arg */
#line 1028 "tools/widl/parser.y"
{ (yyval.typeref_list) = append_typeref((yyvsp[-2].typeref_list), make_typeref((yyvsp[0].type))); }
-#line 5613 "tools/widl/parser.tab.c"
+#line 5287 "tools/widl/parser.tab.c"
break;
case 346: /* coclass: tCOCLASS typename */
#line 1031 "tools/widl/parser.y"
{ (yyval.type) = type_coclass_declare((yyvsp[0].str)); }
-#line 5619 "tools/widl/parser.tab.c"
+#line 5293 "tools/widl/parser.tab.c"
break;
case 347: /* coclassdef: attributes coclass '{' class_interfaces '}' semicolon_opt */
#line 1035 "tools/widl/parser.y"
{ (yyval.type) = type_coclass_define((yyvsp[-4].type), (yyvsp[-5].attr_list), (yyvsp[-2].typeref_list)); }
-#line 5625 "tools/widl/parser.tab.c"
+#line 5299 "tools/widl/parser.tab.c"
break;
case 348: /* runtimeclass: tRUNTIMECLASS typename */
#line 1038 "tools/widl/parser.y"
{ (yyval.type) = type_runtimeclass_declare((yyvsp[0].str), current_namespace); }
-#line 5631 "tools/widl/parser.tab.c"
+#line 5305 "tools/widl/parser.tab.c"
break;
case 349: /* runtimeclass_def: attributes runtimeclass inherit '{' class_interfaces '}' semicolon_opt */
#line 1042 "tools/widl/parser.y"
{ if ((yyvsp[-4].type) && type_get_type((yyvsp[-4].type)) != TYPE_RUNTIMECLASS) error_loc("%s is not a runtimeclass\n", (yyvsp[-4].type)->name);
(yyval.type) = type_runtimeclass_define((yyvsp[-5].type), (yyvsp[-6].attr_list), (yyvsp[-2].typeref_list)); }
-#line 5638 "tools/widl/parser.tab.c"
+#line 5312 "tools/widl/parser.tab.c"
break;
case 350: /* apicontract: tAPICONTRACT typename */
#line 1046 "tools/widl/parser.y"
{ (yyval.type) = type_apicontract_declare((yyvsp[0].str), current_namespace); }
-#line 5644 "tools/widl/parser.tab.c"
+#line 5318 "tools/widl/parser.tab.c"
break;
case 351: /* apicontract_def: attributes apicontract '{' '}' semicolon_opt */
#line 1050 "tools/widl/parser.y"
{ (yyval.type) = type_apicontract_define((yyvsp[-3].type), (yyvsp[-4].attr_list)); }
-#line 5650 "tools/widl/parser.tab.c"
+#line 5324 "tools/widl/parser.tab.c"
break;
case 352: /* namespacedef: tNAMESPACE aIDENTIFIER */
#line 1053 "tools/widl/parser.y"
{ (yyval.str_list) = append_str( NULL, (yyvsp[0].str) ); }
-#line 5656 "tools/widl/parser.tab.c"
+#line 5330 "tools/widl/parser.tab.c"
break;
case 353: /* namespacedef: namespacedef '.' aIDENTIFIER */
#line 1054 "tools/widl/parser.y"
{ (yyval.str_list) = append_str( (yyvsp[-2].str_list), (yyvsp[0].str) ); }
-#line 5662 "tools/widl/parser.tab.c"
+#line 5336 "tools/widl/parser.tab.c"
break;
case 354: /* class_interfaces: %empty */
#line 1058 "tools/widl/parser.y"
{ (yyval.typeref_list) = NULL; }
-#line 5668 "tools/widl/parser.tab.c"
+#line 5342 "tools/widl/parser.tab.c"
break;
case 355: /* class_interfaces: class_interfaces class_interface */
#line 1059 "tools/widl/parser.y"
{ (yyval.typeref_list) = append_typeref( (yyvsp[-1].typeref_list), (yyvsp[0].typeref) ); }
-#line 5674 "tools/widl/parser.tab.c"
+#line 5348 "tools/widl/parser.tab.c"
break;
case 356: /* class_interface: m_attributes interfaceref ';' */
#line 1063 "tools/widl/parser.y"
{ (yyval.typeref) = make_typeref((yyvsp[-1].type)); (yyval.typeref)->attrs = (yyvsp[-2].attr_list); }
-#line 5680 "tools/widl/parser.tab.c"
+#line 5354 "tools/widl/parser.tab.c"
break;
case 357: /* class_interface: m_attributes dispinterfaceref ';' */
#line 1064 "tools/widl/parser.y"
{ (yyval.typeref) = make_typeref((yyvsp[-1].type)); (yyval.typeref)->attrs = (yyvsp[-2].attr_list); }
-#line 5686 "tools/widl/parser.tab.c"
+#line 5360 "tools/widl/parser.tab.c"
break;
case 358: /* dispinterface: tDISPINTERFACE typename */
#line 1067 "tools/widl/parser.y"
{ (yyval.type) = type_dispinterface_declare((yyvsp[0].str)); }
-#line 5692 "tools/widl/parser.tab.c"
+#line 5366 "tools/widl/parser.tab.c"
break;
case 359: /* dispattributes: attributes */
#line 1070 "tools/widl/parser.y"
{ (yyval.attr_list) = append_attr( (yyvsp[0].attr_list), attr_int( (yyloc), ATTR_DISPINTERFACE, 0 ) ); }
-#line 5698 "tools/widl/parser.tab.c"
+#line 5372 "tools/widl/parser.tab.c"
break;
case 360: /* dispint_props: tPROPERTIES ':' */
#line 1073 "tools/widl/parser.y"
{ (yyval.var_list) = NULL; }
-#line 5704 "tools/widl/parser.tab.c"
+#line 5378 "tools/widl/parser.tab.c"
break;
case 361: /* dispint_props: dispint_props s_field ';' */
#line 1074 "tools/widl/parser.y"
{ (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[-1].var) ); }
-#line 5710 "tools/widl/parser.tab.c"
+#line 5384 "tools/widl/parser.tab.c"
break;
case 362: /* dispint_meths: tMETHODS ':' */
#line 1077 "tools/widl/parser.y"
{ (yyval.var_list) = NULL; }
-#line 5716 "tools/widl/parser.tab.c"
+#line 5390 "tools/widl/parser.tab.c"
break;
case 363: /* dispint_meths: dispint_meths funcdef ';' */
#line 1078 "tools/widl/parser.y"
{ (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[-1].var) ); }
-#line 5722 "tools/widl/parser.tab.c"
+#line 5396 "tools/widl/parser.tab.c"
break;
case 364: /* dispinterfacedef: dispattributes dispinterface '{' dispint_props dispint_meths '}' */
#line 1083 "tools/widl/parser.y"
{ (yyval.type) = type_dispinterface_define((yyvsp[-4].type), (yyvsp[-5].attr_list), (yyvsp[-2].var_list), (yyvsp[-1].var_list)); }
-#line 5728 "tools/widl/parser.tab.c"
+#line 5402 "tools/widl/parser.tab.c"
break;
case 365: /* dispinterfacedef: dispattributes dispinterface '{' interface ';' '}' */
#line 1085 "tools/widl/parser.y"
{ (yyval.type) = type_dispinterface_define_from_iface((yyvsp[-4].type), (yyvsp[-5].attr_list), (yyvsp[-2].type)); }
-#line 5734 "tools/widl/parser.tab.c"
+#line 5408 "tools/widl/parser.tab.c"
break;
case 366: /* inherit: %empty */
#line 1089 "tools/widl/parser.y"
{ (yyval.type) = NULL; }
-#line 5740 "tools/widl/parser.tab.c"
+#line 5414 "tools/widl/parser.tab.c"
break;
case 367: /* inherit: ':' qualified_type */
#line 1090 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[0].type); }
-#line 5746 "tools/widl/parser.tab.c"
+#line 5420 "tools/widl/parser.tab.c"
break;
case 368: /* inherit: ':' parameterized_type */
#line 1091 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[0].type); }
-#line 5752 "tools/widl/parser.tab.c"
+#line 5426 "tools/widl/parser.tab.c"
break;
case 369: /* type_parameter: typename */
#line 1094 "tools/widl/parser.y"
{ (yyval.type) = get_type(TYPE_PARAMETER, (yyvsp[0].str), parameters_namespace, 0); }
-#line 5758 "tools/widl/parser.tab.c"
+#line 5432 "tools/widl/parser.tab.c"
break;
case 370: /* type_parameters: type_parameter */
#line 1098 "tools/widl/parser.y"
{ (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); }
-#line 5764 "tools/widl/parser.tab.c"
+#line 5438 "tools/widl/parser.tab.c"
break;
case 371: /* type_parameters: type_parameters ',' type_parameter */
#line 1099 "tools/widl/parser.y"
{ (yyval.typeref_list) = append_typeref((yyvsp[-2].typeref_list), make_typeref((yyvsp[0].type))); }
-#line 5770 "tools/widl/parser.tab.c"
+#line 5444 "tools/widl/parser.tab.c"
break;
case 372: /* interface: tINTERFACE typename */
#line 1103 "tools/widl/parser.y"
{ (yyval.type) = type_interface_declare((yyvsp[0].str), current_namespace); }
-#line 5776 "tools/widl/parser.tab.c"
+#line 5450 "tools/widl/parser.tab.c"
break;
case 373: /* $@3: %empty */
#line 1104 "tools/widl/parser.y"
{ push_parameters_namespace((yyvsp[-1].str)); }
-#line 5782 "tools/widl/parser.tab.c"
+#line 5456 "tools/widl/parser.tab.c"
break;
case 374: /* $@4: %empty */
#line 1104 "tools/widl/parser.y"
{ pop_parameters_namespace((yyvsp[-3].str)); }
-#line 5788 "tools/widl/parser.tab.c"
+#line 5462 "tools/widl/parser.tab.c"
break;
case 375: /* interface: tINTERFACE typename '<' $@3 type_parameters $@4 '>' */
#line 1105 "tools/widl/parser.y"
{ (yyval.type) = type_parameterized_interface_declare((yyvsp[-5].str), current_namespace, (yyvsp[-2].typeref_list)); }
-#line 5794 "tools/widl/parser.tab.c"
+#line 5468 "tools/widl/parser.tab.c"
break;
case 376: /* delegatedef: m_attributes tDELEGATE type ident '(' m_args ')' semicolon_opt */
@@ -5798,19 +5472,19 @@
{ (yyval.type) = type_delegate_declare((yyvsp[-4].var)->name, current_namespace);
(yyval.type) = type_delegate_define((yyval.type), (yyvsp[-7].attr_list), append_statement(NULL, make_statement_delegate((yyvsp[-5].type), (yyvsp[-2].var_list))));
}
-#line 5802 "tools/widl/parser.tab.c"
+#line 5476 "tools/widl/parser.tab.c"
break;
case 377: /* $@5: %empty */
#line 1113 "tools/widl/parser.y"
{ push_parameters_namespace((yyvsp[-1].var)->name); }
-#line 5808 "tools/widl/parser.tab.c"
+#line 5482 "tools/widl/parser.tab.c"
break;
case 378: /* $@6: %empty */
#line 1114 "tools/widl/parser.y"
{ pop_parameters_namespace((yyvsp[-7].var)->name); }
-#line 5814 "tools/widl/parser.tab.c"
+#line 5488 "tools/widl/parser.tab.c"
break;
case 379: /* delegatedef: m_attributes tDELEGATE type ident '<' $@5 type_parameters '>' '(' m_args ')' $@6 semicolon_opt */
@@ -5818,49 +5492,49 @@
{ (yyval.type) = type_parameterized_delegate_declare((yyvsp[-9].var)->name, current_namespace, (yyvsp[-6].typeref_list));
(yyval.type) = type_parameterized_delegate_define((yyval.type), (yyvsp[-12].attr_list), append_statement(NULL, make_statement_delegate((yyvsp[-10].type), (yyvsp[-3].var_list))));
}
-#line 5822 "tools/widl/parser.tab.c"
+#line 5496 "tools/widl/parser.tab.c"
break;
case 380: /* required_types: qualified_type */
#line 1121 "tools/widl/parser.y"
{ (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); }
-#line 5828 "tools/widl/parser.tab.c"
+#line 5502 "tools/widl/parser.tab.c"
break;
case 381: /* required_types: parameterized_type */
#line 1122 "tools/widl/parser.y"
{ (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); }
-#line 5834 "tools/widl/parser.tab.c"
+#line 5508 "tools/widl/parser.tab.c"
break;
case 382: /* required_types: required_types ',' qualified_type */
#line 1123 "tools/widl/parser.y"
{ (yyval.typeref_list) = append_typeref((yyvsp[-2].typeref_list), make_typeref((yyvsp[0].type))); }
-#line 5840 "tools/widl/parser.tab.c"
+#line 5514 "tools/widl/parser.tab.c"
break;
case 383: /* required_types: required_types ',' parameterized_type */
#line 1124 "tools/widl/parser.y"
{ (yyval.typeref_list) = append_typeref((yyvsp[-2].typeref_list), make_typeref((yyvsp[0].type))); }
-#line 5846 "tools/widl/parser.tab.c"
+#line 5520 "tools/widl/parser.tab.c"
break;
case 384: /* requires: %empty */
#line 1128 "tools/widl/parser.y"
{ (yyval.typeref_list) = NULL; }
-#line 5852 "tools/widl/parser.tab.c"
+#line 5526 "tools/widl/parser.tab.c"
break;
case 385: /* requires: tREQUIRES required_types */
#line 1129 "tools/widl/parser.y"
{ (yyval.typeref_list) = (yyvsp[0].typeref_list); }
-#line 5858 "tools/widl/parser.tab.c"
+#line 5532 "tools/widl/parser.tab.c"
break;
case 386: /* $@7: %empty */
#line 1132 "tools/widl/parser.y"
{ if ((yyvsp[0].type)->type_type == TYPE_PARAMETERIZED_TYPE) push_parameters_namespace((yyvsp[0].type)->name); }
-#line 5864 "tools/widl/parser.tab.c"
+#line 5538 "tools/widl/parser.tab.c"
break;
case 387: /* interfacedef: attributes interface $@7 inherit requires '{' int_statements '}' semicolon_opt */
@@ -5876,223 +5550,223 @@
check_async_uuid((yyval.type));
}
}
-#line 5880 "tools/widl/parser.tab.c"
+#line 5554 "tools/widl/parser.tab.c"
break;
case 388: /* interfacedef: dispinterfacedef semicolon_opt */
#line 1145 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[-1].type); }
-#line 5886 "tools/widl/parser.tab.c"
+#line 5560 "tools/widl/parser.tab.c"
break;
case 389: /* interfaceref: tINTERFACE typename */
#line 1149 "tools/widl/parser.y"
{ (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); }
-#line 5892 "tools/widl/parser.tab.c"
+#line 5566 "tools/widl/parser.tab.c"
break;
case 390: /* interfaceref: tINTERFACE namespace_pfx typename */
#line 1150 "tools/widl/parser.y"
{ (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), (yyvsp[-1].namespace), 0); }
-#line 5898 "tools/widl/parser.tab.c"
+#line 5572 "tools/widl/parser.tab.c"
break;
case 391: /* interfaceref: tINTERFACE parameterized_type */
#line 1151 "tools/widl/parser.y"
{ if (type_get_type(((yyval.type) = (yyvsp[0].type))) != TYPE_INTERFACE) error_loc("%s is not an interface\n", (yyval.type)->name); }
-#line 5904 "tools/widl/parser.tab.c"
+#line 5578 "tools/widl/parser.tab.c"
break;
case 392: /* dispinterfaceref: tDISPINTERFACE typename */
#line 1155 "tools/widl/parser.y"
{ (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); }
-#line 5910 "tools/widl/parser.tab.c"
+#line 5584 "tools/widl/parser.tab.c"
break;
case 393: /* module: tMODULE typename */
#line 1158 "tools/widl/parser.y"
{ (yyval.type) = type_module_declare((yyvsp[0].str)); }
-#line 5916 "tools/widl/parser.tab.c"
+#line 5590 "tools/widl/parser.tab.c"
break;
case 394: /* moduledef: m_attributes module '{' int_statements '}' semicolon_opt */
#line 1162 "tools/widl/parser.y"
{ (yyval.type) = type_module_define((yyvsp[-4].type), (yyvsp[-5].attr_list), (yyvsp[-2].stmt_list)); }
-#line 5922 "tools/widl/parser.tab.c"
+#line 5596 "tools/widl/parser.tab.c"
break;
case 395: /* storage_cls_spec: tEXTERN */
#line 1166 "tools/widl/parser.y"
{ (yyval.stgclass) = STG_EXTERN; }
-#line 5928 "tools/widl/parser.tab.c"
+#line 5602 "tools/widl/parser.tab.c"
break;
case 396: /* storage_cls_spec: tSTATIC */
#line 1167 "tools/widl/parser.y"
{ (yyval.stgclass) = STG_STATIC; }
-#line 5934 "tools/widl/parser.tab.c"
+#line 5608 "tools/widl/parser.tab.c"
break;
case 397: /* storage_cls_spec: tREGISTER */
#line 1168 "tools/widl/parser.y"
{ (yyval.stgclass) = STG_REGISTER; }
-#line 5940 "tools/widl/parser.tab.c"
+#line 5614 "tools/widl/parser.tab.c"
break;
case 398: /* function_specifier: tINLINE */
#line 1172 "tools/widl/parser.y"
{ (yyval.function_specifier) = FUNCTION_SPECIFIER_INLINE; }
-#line 5946 "tools/widl/parser.tab.c"
+#line 5620 "tools/widl/parser.tab.c"
break;
case 399: /* type_qualifier: tCONST */
#line 1176 "tools/widl/parser.y"
{ (yyval.type_qualifier) = TYPE_QUALIFIER_CONST; }
-#line 5952 "tools/widl/parser.tab.c"
+#line 5626 "tools/widl/parser.tab.c"
break;
case 400: /* m_type_qual_list: %empty */
#line 1180 "tools/widl/parser.y"
{ (yyval.type_qualifier) = 0; }
-#line 5958 "tools/widl/parser.tab.c"
+#line 5632 "tools/widl/parser.tab.c"
break;
case 401: /* m_type_qual_list: m_type_qual_list type_qualifier */
#line 1181 "tools/widl/parser.y"
{ (yyval.type_qualifier) = (yyvsp[-1].type_qualifier) | (yyvsp[0].type_qualifier); }
-#line 5964 "tools/widl/parser.tab.c"
+#line 5638 "tools/widl/parser.tab.c"
break;
case 402: /* decl_spec: type m_decl_spec_no_type */
#line 1184 "tools/widl/parser.y"
{ (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[0].declspec), NULL, STG_NONE, 0, 0); }
-#line 5970 "tools/widl/parser.tab.c"
+#line 5644 "tools/widl/parser.tab.c"
break;
case 403: /* decl_spec: decl_spec_no_type type m_decl_spec_no_type */
#line 1186 "tools/widl/parser.y"
{ (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[-2].declspec), (yyvsp[0].declspec), STG_NONE, 0, 0); }
-#line 5976 "tools/widl/parser.tab.c"
+#line 5650 "tools/widl/parser.tab.c"
break;
case 404: /* unqualified_decl_spec: unqualified_type m_decl_spec_no_type */
#line 1190 "tools/widl/parser.y"
{ (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[0].declspec), NULL, STG_NONE, 0, 0); }
-#line 5982 "tools/widl/parser.tab.c"
+#line 5656 "tools/widl/parser.tab.c"
break;
case 405: /* unqualified_decl_spec: decl_spec_no_type unqualified_type m_decl_spec_no_type */
#line 1192 "tools/widl/parser.y"
{ (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[-2].declspec), (yyvsp[0].declspec), STG_NONE, 0, 0); }
-#line 5988 "tools/widl/parser.tab.c"
+#line 5662 "tools/widl/parser.tab.c"
break;
case 406: /* m_decl_spec_no_type: %empty */
#line 1196 "tools/widl/parser.y"
{ (yyval.declspec) = NULL; }
-#line 5994 "tools/widl/parser.tab.c"
+#line 5668 "tools/widl/parser.tab.c"
break;
case 408: /* decl_spec_no_type: type_qualifier m_decl_spec_no_type */
#line 1201 "tools/widl/parser.y"
{ (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, STG_NONE, (yyvsp[-1].type_qualifier), 0); }
-#line 6000 "tools/widl/parser.tab.c"
+#line 5674 "tools/widl/parser.tab.c"
break;
case 409: /* decl_spec_no_type: function_specifier m_decl_spec_no_type */
#line 1202 "tools/widl/parser.y"
{ (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, STG_NONE, 0, (yyvsp[-1].function_specifier)); }
-#line 6006 "tools/widl/parser.tab.c"
+#line 5680 "tools/widl/parser.tab.c"
break;
case 410: /* decl_spec_no_type: storage_cls_spec m_decl_spec_no_type */
#line 1203 "tools/widl/parser.y"
{ (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, (yyvsp[-1].stgclass), 0, 0); }
-#line 6012 "tools/widl/parser.tab.c"
+#line 5686 "tools/widl/parser.tab.c"
break;
case 411: /* declarator: '*' m_type_qual_list declarator */
#line 1208 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); }
-#line 6018 "tools/widl/parser.tab.c"
+#line 5692 "tools/widl/parser.tab.c"
break;
case 412: /* declarator: callconv declarator */
#line 1209 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv( (yyloc), (yyval.declarator)->type, (yyvsp[-1].str) ); }
-#line 6024 "tools/widl/parser.tab.c"
+#line 5698 "tools/widl/parser.tab.c"
break;
case 414: /* direct_declarator: ident */
#line 1214 "tools/widl/parser.y"
{ (yyval.declarator) = make_declarator((yyvsp[0].var)); }
-#line 6030 "tools/widl/parser.tab.c"
+#line 5704 "tools/widl/parser.tab.c"
break;
case 415: /* direct_declarator: '(' declarator ')' */
#line 1215 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[-1].declarator); }
-#line 6036 "tools/widl/parser.tab.c"
+#line 5710 "tools/widl/parser.tab.c"
break;
case 416: /* direct_declarator: direct_declarator array */
#line 1216 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[-1].declarator); append_array((yyval.declarator), (yyvsp[0].expr)); }
-#line 6042 "tools/widl/parser.tab.c"
+#line 5716 "tools/widl/parser.tab.c"
break;
case 417: /* direct_declarator: direct_declarator '(' m_args ')' */
#line 1217 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[-3].declarator); append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); }
-#line 6048 "tools/widl/parser.tab.c"
+#line 5722 "tools/widl/parser.tab.c"
break;
case 418: /* abstract_declarator: '*' m_type_qual_list m_abstract_declarator */
#line 1223 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); }
-#line 6054 "tools/widl/parser.tab.c"
+#line 5728 "tools/widl/parser.tab.c"
break;
case 419: /* abstract_declarator: callconv m_abstract_declarator */
#line 1224 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv( (yyloc), (yyval.declarator)->type, (yyvsp[-1].str) ); }
-#line 6060 "tools/widl/parser.tab.c"
+#line 5734 "tools/widl/parser.tab.c"
break;
case 421: /* abstract_declarator_no_direct: '*' m_type_qual_list m_any_declarator */
#line 1231 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); }
-#line 6066 "tools/widl/parser.tab.c"
+#line 5740 "tools/widl/parser.tab.c"
break;
case 422: /* abstract_declarator_no_direct: callconv m_any_declarator */
#line 1232 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv( (yyloc), (yyval.declarator)->type, (yyvsp[-1].str) ); }
-#line 6072 "tools/widl/parser.tab.c"
+#line 5746 "tools/widl/parser.tab.c"
break;
case 423: /* m_abstract_declarator: %empty */
#line 1237 "tools/widl/parser.y"
{ (yyval.declarator) = make_declarator(NULL); }
-#line 6078 "tools/widl/parser.tab.c"
+#line 5752 "tools/widl/parser.tab.c"
break;
case 425: /* abstract_direct_declarator: '(' abstract_declarator_no_direct ')' */
#line 1243 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[-1].declarator); }
-#line 6084 "tools/widl/parser.tab.c"
+#line 5758 "tools/widl/parser.tab.c"
break;
case 426: /* abstract_direct_declarator: abstract_direct_declarator array */
#line 1244 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[-1].declarator); append_array((yyval.declarator), (yyvsp[0].expr)); }
-#line 6090 "tools/widl/parser.tab.c"
+#line 5764 "tools/widl/parser.tab.c"
break;
case 427: /* abstract_direct_declarator: array */
#line 1245 "tools/widl/parser.y"
{ (yyval.declarator) = make_declarator(NULL); append_array((yyval.declarator), (yyvsp[0].expr)); }
-#line 6096 "tools/widl/parser.tab.c"
+#line 5770 "tools/widl/parser.tab.c"
break;
case 428: /* abstract_direct_declarator: '(' m_args ')' */
@@ -6100,7 +5774,7 @@
{ (yyval.declarator) = make_declarator(NULL);
append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0);
}
-#line 6104 "tools/widl/parser.tab.c"
+#line 5778 "tools/widl/parser.tab.c"
break;
case 429: /* abstract_direct_declarator: abstract_direct_declarator '(' m_args ')' */
@@ -6108,61 +5782,61 @@
{ (yyval.declarator) = (yyvsp[-3].declarator);
append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0);
}
-#line 6112 "tools/widl/parser.tab.c"
+#line 5786 "tools/widl/parser.tab.c"
break;
case 430: /* any_declarator: '*' m_type_qual_list m_any_declarator */
#line 1259 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); }
-#line 6118 "tools/widl/parser.tab.c"
+#line 5792 "tools/widl/parser.tab.c"
break;
case 431: /* any_declarator: callconv m_any_declarator */
#line 1260 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv( (yyloc), (yyval.declarator)->type, (yyvsp[-1].str) ); }
-#line 6124 "tools/widl/parser.tab.c"
+#line 5798 "tools/widl/parser.tab.c"
break;
case 433: /* any_declarator_no_direct: '*' m_type_qual_list m_any_declarator */
#line 1267 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); }
-#line 6130 "tools/widl/parser.tab.c"
+#line 5804 "tools/widl/parser.tab.c"
break;
case 434: /* any_declarator_no_direct: callconv m_any_declarator */
#line 1268 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv( (yyloc), (yyval.declarator)->type, (yyvsp[-1].str) ); }
-#line 6136 "tools/widl/parser.tab.c"
+#line 5810 "tools/widl/parser.tab.c"
break;
case 435: /* m_any_declarator: %empty */
#line 1273 "tools/widl/parser.y"
{ (yyval.declarator) = make_declarator(NULL); }
-#line 6142 "tools/widl/parser.tab.c"
+#line 5816 "tools/widl/parser.tab.c"
break;
case 437: /* any_direct_declarator: ident */
#line 1281 "tools/widl/parser.y"
{ (yyval.declarator) = make_declarator((yyvsp[0].var)); }
-#line 6148 "tools/widl/parser.tab.c"
+#line 5822 "tools/widl/parser.tab.c"
break;
case 438: /* any_direct_declarator: '(' any_declarator_no_direct ')' */
#line 1282 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[-1].declarator); }
-#line 6154 "tools/widl/parser.tab.c"
+#line 5828 "tools/widl/parser.tab.c"
break;
case 439: /* any_direct_declarator: any_direct_declarator array */
#line 1283 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[-1].declarator); append_array((yyval.declarator), (yyvsp[0].expr)); }
-#line 6160 "tools/widl/parser.tab.c"
+#line 5834 "tools/widl/parser.tab.c"
break;
case 440: /* any_direct_declarator: array */
#line 1284 "tools/widl/parser.y"
{ (yyval.declarator) = make_declarator(NULL); append_array((yyval.declarator), (yyvsp[0].expr)); }
-#line 6166 "tools/widl/parser.tab.c"
+#line 5840 "tools/widl/parser.tab.c"
break;
case 441: /* any_direct_declarator: '(' m_args ')' */
@@ -6170,7 +5844,7 @@
{ (yyval.declarator) = make_declarator(NULL);
append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0);
}
-#line 6174 "tools/widl/parser.tab.c"
+#line 5848 "tools/widl/parser.tab.c"
break;
case 442: /* any_direct_declarator: any_direct_declarator '(' m_args ')' */
@@ -6178,31 +5852,31 @@
{ (yyval.declarator) = (yyvsp[-3].declarator);
append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0);
}
-#line 6182 "tools/widl/parser.tab.c"
+#line 5856 "tools/widl/parser.tab.c"
break;
case 443: /* declarator_list: declarator */
#line 1296 "tools/widl/parser.y"
{ (yyval.declarator_list) = append_declarator( NULL, (yyvsp[0].declarator) ); }
-#line 6188 "tools/widl/parser.tab.c"
+#line 5862 "tools/widl/parser.tab.c"
break;
case 444: /* declarator_list: declarator_list ',' declarator */
#line 1297 "tools/widl/parser.y"
{ (yyval.declarator_list) = append_declarator( (yyvsp[-2].declarator_list), (yyvsp[0].declarator) ); }
-#line 6194 "tools/widl/parser.tab.c"
+#line 5868 "tools/widl/parser.tab.c"
break;
case 445: /* m_bitfield: %empty */
#line 1301 "tools/widl/parser.y"
{ (yyval.expr) = NULL; }
-#line 6200 "tools/widl/parser.tab.c"
+#line 5874 "tools/widl/parser.tab.c"
break;
case 446: /* m_bitfield: ':' expr_const */
#line 1302 "tools/widl/parser.y"
{ (yyval.expr) = (yyvsp[0].expr); }
-#line 6206 "tools/widl/parser.tab.c"
+#line 5880 "tools/widl/parser.tab.c"
break;
case 447: /* struct_declarator: any_declarator m_bitfield */
@@ -6211,163 +5885,163 @@
if (!(yyval.declarator)->bits && !(yyval.declarator)->var->name)
error_loc("unnamed fields are not allowed\n");
}
-#line 6215 "tools/widl/parser.tab.c"
+#line 5889 "tools/widl/parser.tab.c"
break;
case 448: /* struct_declarator_list: struct_declarator */
#line 1312 "tools/widl/parser.y"
{ (yyval.declarator_list) = append_declarator( NULL, (yyvsp[0].declarator) ); }
-#line 6221 "tools/widl/parser.tab.c"
+#line 5895 "tools/widl/parser.tab.c"
break;
case 449: /* struct_declarator_list: struct_declarator_list ',' struct_declarator */
#line 1314 "tools/widl/parser.y"
{ (yyval.declarator_list) = append_declarator( (yyvsp[-2].declarator_list), (yyvsp[0].declarator) ); }
-#line 6227 "tools/widl/parser.tab.c"
+#line 5901 "tools/widl/parser.tab.c"
break;
case 450: /* init_declarator: declarator */
#line 1318 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[0].declarator); }
-#line 6233 "tools/widl/parser.tab.c"
+#line 5907 "tools/widl/parser.tab.c"
break;
case 451: /* init_declarator: declarator '=' expr_const */
#line 1319 "tools/widl/parser.y"
{ (yyval.declarator) = (yyvsp[-2].declarator); (yyvsp[-2].declarator)->var->eval = (yyvsp[0].expr); }
-#line 6239 "tools/widl/parser.tab.c"
+#line 5913 "tools/widl/parser.tab.c"
break;
case 452: /* threading_type: tAPARTMENT */
#line 1323 "tools/widl/parser.y"
{ (yyval.num) = THREADING_APARTMENT; }
-#line 6245 "tools/widl/parser.tab.c"
+#line 5919 "tools/widl/parser.tab.c"
break;
case 453: /* threading_type: tNEUTRAL */
#line 1324 "tools/widl/parser.y"
{ (yyval.num) = THREADING_NEUTRAL; }
-#line 6251 "tools/widl/parser.tab.c"
+#line 5925 "tools/widl/parser.tab.c"
break;
case 454: /* threading_type: tSINGLE */
#line 1325 "tools/widl/parser.y"
{ (yyval.num) = THREADING_SINGLE; }
-#line 6257 "tools/widl/parser.tab.c"
+#line 5931 "tools/widl/parser.tab.c"
break;
case 455: /* threading_type: tFREE */
#line 1326 "tools/widl/parser.y"
{ (yyval.num) = THREADING_FREE; }
-#line 6263 "tools/widl/parser.tab.c"
+#line 5937 "tools/widl/parser.tab.c"
break;
case 456: /* threading_type: tBOTH */
#line 1327 "tools/widl/parser.y"
{ (yyval.num) = THREADING_BOTH; }
-#line 6269 "tools/widl/parser.tab.c"
+#line 5943 "tools/widl/parser.tab.c"
break;
case 457: /* threading_type: tMTA */
#line 1328 "tools/widl/parser.y"
{ (yyval.num) = THREADING_FREE; }
-#line 6275 "tools/widl/parser.tab.c"
+#line 5949 "tools/widl/parser.tab.c"
break;
case 458: /* pointer_type: tREF */
#line 1332 "tools/widl/parser.y"
{ (yyval.num) = FC_RP; }
-#line 6281 "tools/widl/parser.tab.c"
+#line 5955 "tools/widl/parser.tab.c"
break;
case 459: /* pointer_type: tUNIQUE */
#line 1333 "tools/widl/parser.y"
{ (yyval.num) = FC_UP; }
-#line 6287 "tools/widl/parser.tab.c"
+#line 5961 "tools/widl/parser.tab.c"
break;
case 460: /* pointer_type: tPTR */
#line 1334 "tools/widl/parser.y"
{ (yyval.num) = FC_FP; }
-#line 6293 "tools/widl/parser.tab.c"
+#line 5967 "tools/widl/parser.tab.c"
break;
case 461: /* structdef: tSTRUCT m_typename '{' fields '}' */
#line 1337 "tools/widl/parser.y"
{ (yyval.type) = type_new_struct((yyvsp[-3].str), current_namespace, TRUE, (yyvsp[-1].var_list)); }
-#line 6299 "tools/widl/parser.tab.c"
+#line 5973 "tools/widl/parser.tab.c"
break;
case 462: /* unqualified_type: tVOID */
#line 1341 "tools/widl/parser.y"
{ (yyval.type) = type_new_void(); }
-#line 6305 "tools/widl/parser.tab.c"
+#line 5979 "tools/widl/parser.tab.c"
break;
case 463: /* unqualified_type: base_type */
#line 1342 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[0].type); }
-#line 6311 "tools/widl/parser.tab.c"
+#line 5985 "tools/widl/parser.tab.c"
break;
case 464: /* unqualified_type: enumdef */
#line 1343 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[0].type); }
-#line 6317 "tools/widl/parser.tab.c"
+#line 5991 "tools/widl/parser.tab.c"
break;
case 465: /* unqualified_type: tENUM aIDENTIFIER */
#line 1344 "tools/widl/parser.y"
{ (yyval.type) = type_new_enum((yyvsp[0].str), current_namespace, FALSE, NULL); }
-#line 6323 "tools/widl/parser.tab.c"
+#line 5997 "tools/widl/parser.tab.c"
break;
case 466: /* unqualified_type: structdef */
#line 1345 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[0].type); }
-#line 6329 "tools/widl/parser.tab.c"
+#line 6003 "tools/widl/parser.tab.c"
break;
case 467: /* unqualified_type: tSTRUCT aIDENTIFIER */
#line 1346 "tools/widl/parser.y"
{ (yyval.type) = type_new_struct((yyvsp[0].str), current_namespace, FALSE, NULL); }
-#line 6335 "tools/widl/parser.tab.c"
+#line 6009 "tools/widl/parser.tab.c"
break;
case 468: /* unqualified_type: uniondef */
#line 1347 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[0].type); }
-#line 6341 "tools/widl/parser.tab.c"
+#line 6015 "tools/widl/parser.tab.c"
break;
case 469: /* unqualified_type: tUNION aIDENTIFIER */
#line 1348 "tools/widl/parser.y"
{ (yyval.type) = type_new_nonencapsulated_union((yyvsp[0].str), current_namespace, FALSE, NULL); }
-#line 6347 "tools/widl/parser.tab.c"
+#line 6021 "tools/widl/parser.tab.c"
break;
case 470: /* unqualified_type: tSAFEARRAY '(' type ')' */
#line 1349 "tools/widl/parser.y"
{ (yyval.type) = make_safearray((yyvsp[-1].type)); }
-#line 6353 "tools/widl/parser.tab.c"
+#line 6027 "tools/widl/parser.tab.c"
break;
case 471: /* unqualified_type: aKNOWNTYPE */
#line 1350 "tools/widl/parser.y"
{ (yyval.type) = find_type_or_error(current_namespace, (yyvsp[0].str)); }
-#line 6359 "tools/widl/parser.tab.c"
+#line 6033 "tools/widl/parser.tab.c"
break;
case 473: /* type: namespace_pfx typename */
#line 1355 "tools/widl/parser.y"
{ (yyval.type) = find_type_or_error((yyvsp[-1].namespace), (yyvsp[0].str)); }
-#line 6365 "tools/widl/parser.tab.c"
+#line 6039 "tools/widl/parser.tab.c"
break;
case 474: /* type: parameterized_type */
#line 1356 "tools/widl/parser.y"
{ (yyval.type) = (yyvsp[0].type); }
-#line 6371 "tools/widl/parser.tab.c"
+#line 6045 "tools/widl/parser.tab.c"
break;
case 475: /* typedef: m_attributes tTYPEDEF m_attributes decl_spec declarator_list */
@@ -6376,37 +6050,37 @@
reg_typedefs( (yyloc), (yyvsp[-1].declspec), (yyvsp[0].declarator_list), check_typedef_attrs( (yyvsp[-4].attr_list) ) );
(yyval.statement) = make_statement_typedef((yyvsp[0].declarator_list), !(yyvsp[-1].declspec)->type->defined);
}
-#line 6380 "tools/widl/parser.tab.c"
+#line 6054 "tools/widl/parser.tab.c"
break;
case 476: /* uniondef: tUNION m_typename '{' ne_union_fields '}' */
#line 1367 "tools/widl/parser.y"
{ (yyval.type) = type_new_nonencapsulated_union((yyvsp[-3].str), current_namespace, TRUE, (yyvsp[-1].var_list)); }
-#line 6386 "tools/widl/parser.tab.c"
+#line 6060 "tools/widl/parser.tab.c"
break;
case 477: /* uniondef: tUNION m_typename tSWITCH '(' s_field ')' m_ident '{' cases '}' */
#line 1370 "tools/widl/parser.y"
{ (yyval.type) = type_new_encapsulated_union((yyvsp[-8].str), (yyvsp[-5].var), (yyvsp[-3].var), (yyvsp[-1].var_list)); }
-#line 6392 "tools/widl/parser.tab.c"
+#line 6066 "tools/widl/parser.tab.c"
break;
case 478: /* version: aNUM */
#line 1374 "tools/widl/parser.y"
{ (yyval.num) = MAKEVERSION((yyvsp[0].num), 0); }
-#line 6398 "tools/widl/parser.tab.c"
+#line 6072 "tools/widl/parser.tab.c"
break;
case 479: /* version: aNUM '.' aNUM */
#line 1375 "tools/widl/parser.y"
{ (yyval.num) = MAKEVERSION((yyvsp[-2].num), (yyvsp[0].num)); }
-#line 6404 "tools/widl/parser.tab.c"
+#line 6078 "tools/widl/parser.tab.c"
break;
case 480: /* version: aHEXNUM */
#line 1376 "tools/widl/parser.y"
{ (yyval.num) = (yyvsp[0].num); }
-#line 6410 "tools/widl/parser.tab.c"
+#line 6084 "tools/widl/parser.tab.c"
break;
case 485: /* acf_int_statement: tTYPEDEF acf_attributes aKNOWNTYPE ';' */
@@ -6414,7 +6088,7 @@
{ type_t *type = find_type_or_error(current_namespace, (yyvsp[-1].str));
type->attrs = append_attr_list(type->attrs, (yyvsp[-2].attr_list));
}
-#line 6418 "tools/widl/parser.tab.c"
+#line 6092 "tools/widl/parser.tab.c"
break;
case 486: /* acf_interface: acf_attributes tINTERFACE aKNOWNTYPE '{' acf_int_statements '}' */
@@ -6424,95 +6098,95 @@
error_loc("%s is not an interface\n", iface->name);
iface->attrs = append_attr_list(iface->attrs, (yyvsp[-5].attr_list));
}
-#line 6428 "tools/widl/parser.tab.c"
+#line 6102 "tools/widl/parser.tab.c"
break;
case 487: /* acf_attributes: %empty */
#line 1406 "tools/widl/parser.y"
{ (yyval.attr_list) = NULL; }
-#line 6434 "tools/widl/parser.tab.c"
+#line 6108 "tools/widl/parser.tab.c"
break;
case 488: /* acf_attributes: '[' acf_attribute_list ']' */
#line 1407 "tools/widl/parser.y"
{ (yyval.attr_list) = (yyvsp[-1].attr_list); }
-#line 6440 "tools/widl/parser.tab.c"
+#line 6114 "tools/widl/parser.tab.c"
break;
case 489: /* acf_attribute_list: acf_attribute */
#line 1411 "tools/widl/parser.y"
{ (yyval.attr_list) = append_attr(NULL, (yyvsp[0].attr)); }
-#line 6446 "tools/widl/parser.tab.c"
+#line 6120 "tools/widl/parser.tab.c"
break;
case 490: /* acf_attribute_list: acf_attribute_list ',' acf_attribute */
#line 1412 "tools/widl/parser.y"
{ (yyval.attr_list) = append_attr((yyvsp[-2].attr_list), (yyvsp[0].attr)); }
-#line 6452 "tools/widl/parser.tab.c"
+#line 6126 "tools/widl/parser.tab.c"
break;
case 491: /* acf_attribute: tALLOCATE '(' allocate_option_list ')' */
#line 1417 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_ALLOCATE, (yyvsp[-1].num) ); }
-#line 6458 "tools/widl/parser.tab.c"
+#line 6132 "tools/widl/parser.tab.c"
break;
case 492: /* acf_attribute: tENCODE */
#line 1418 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_ENCODE, 0 ); }
-#line 6464 "tools/widl/parser.tab.c"
+#line 6138 "tools/widl/parser.tab.c"
break;
case 493: /* acf_attribute: tDECODE */
#line 1419 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_DECODE, 0 ); }
-#line 6470 "tools/widl/parser.tab.c"
+#line 6144 "tools/widl/parser.tab.c"
break;
case 494: /* acf_attribute: tEXPLICITHANDLE */
#line 1420 "tools/widl/parser.y"
{ (yyval.attr) = attr_int( (yyloc), ATTR_EXPLICIT_HANDLE, 0 ); }
-#line 6476 "tools/widl/parser.tab.c"
+#line 6150 "tools/widl/parser.tab.c"
break;
case 495: /* allocate_option_list: allocate_option */
#line 1424 "tools/widl/parser.y"
{ (yyval.num) = (yyvsp[0].num); }
-#line 6482 "tools/widl/parser.tab.c"
+#line 6156 "tools/widl/parser.tab.c"
break;
case 496: /* allocate_option_list: allocate_option_list ',' allocate_option */
#line 1426 "tools/widl/parser.y"
{ (yyval.num) = (yyvsp[-2].num) | (yyvsp[0].num); }
-#line 6488 "tools/widl/parser.tab.c"
+#line 6162 "tools/widl/parser.tab.c"
break;
case 497: /* allocate_option: tDONTFREE */
#line 1430 "tools/widl/parser.y"
{ (yyval.num) = FC_DONT_FREE; }
-#line 6494 "tools/widl/parser.tab.c"
+#line 6168 "tools/widl/parser.tab.c"
break;
case 498: /* allocate_option: tFREE */
#line 1431 "tools/widl/parser.y"
{ (yyval.num) = 0; }
-#line 6500 "tools/widl/parser.tab.c"
+#line 6174 "tools/widl/parser.tab.c"
break;
case 499: /* allocate_option: tALLNODES */
#line 1432 "tools/widl/parser.y"
{ (yyval.num) = FC_ALLOCATE_ALL_NODES; }
-#line 6506 "tools/widl/parser.tab.c"
+#line 6180 "tools/widl/parser.tab.c"
break;
case 500: /* allocate_option: tSINGLENODE */
#line 1433 "tools/widl/parser.y"
{ (yyval.num) = 0; }
-#line 6512 "tools/widl/parser.tab.c"
+#line 6186 "tools/widl/parser.tab.c"
break;
-#line 6516 "tools/widl/parser.tab.c"
+#line 6190 "tools/widl/parser.tab.c"
default: break;
}
diff --git a/mingw-w64-tools/widl/src/ppl.yy.c b/mingw-w64-tools/widl/src/ppl.yy.c
index 76e817b..ec3ff83 100644
--- a/mingw-w64-tools/widl/src/ppl.yy.c
+++ b/mingw-w64-tools/widl/src/ppl.yy.c
@@ -277,6 +277,7 @@
/* First, we deal with platform-specific or compiler-specific issues. */
/* begin standard C headers. */
+
#include <stdio.h>
#include <string.h>
#include <errno.h>
@@ -293,8 +294,8 @@
#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.
+/* C++ systems might need __STDC_LIMIT_MACROS defined before including
+ * <stdint.h>, if you want the limit (max/min) macros for int types.
*/
#ifndef __STDC_LIMIT_MACROS
#define __STDC_LIMIT_MACROS 1
@@ -1564,13 +1565,13 @@
result = fread(buf, 1, max_size, pp_status.file); \
}
-#line 1567 "tools/wrc/ppl.yy.c"
+#line 1568 "tools/wrc/ppl.yy.c"
/*
**************************************************************************
* The scanner starts here
**************************************************************************
*/
-#line 1573 "tools/wrc/ppl.yy.c"
+#line 1574 "tools/wrc/ppl.yy.c"
#define INITIAL 0
#define pp_pp 1
@@ -1835,7 +1836,7 @@
/*
* Detect the leading # of a preprocessor directive.
*/
-#line 1838 "tools/wrc/ppl.yy.c"
+#line 1839 "tools/wrc/ppl.yy.c"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
@@ -2925,7 +2926,7 @@
#line 739 "tools/wrc/ppl.l"
ECHO;
YY_BREAK
-#line 2928 "tools/wrc/ppl.yy.c"
+#line 2929 "tools/wrc/ppl.yy.c"
case YY_END_OF_BUFFER:
{
diff --git a/mingw-w64-tools/widl/src/ppy.tab.c b/mingw-w64-tools/widl/src/ppy.tab.c
index 57b4bae..c79a7b0 100644
--- a/mingw-w64-tools/widl/src/ppy.tab.c
+++ b/mingw-w64-tools/widl/src/ppy.tab.c
@@ -195,113 +195,7 @@
# endif
# endif
-
-/* Debug traces. */
-#ifndef PPY_DEBUG
-# if defined YYDEBUG
-#if YYDEBUG
-# define PPY_DEBUG 1
-# else
-# define PPY_DEBUG 0
-# endif
-# else /* ! defined YYDEBUG */
-# define PPY_DEBUG 0
-# endif /* ! defined YYDEBUG */
-#endif /* ! defined PPY_DEBUG */
-#if PPY_DEBUG
-extern int ppy_debug;
-#endif
-
-/* Token kinds. */
-#ifndef PPY_TOKENTYPE
-# define PPY_TOKENTYPE
- enum ppy_tokentype
- {
- PPY_EMPTY = -2,
- PPY_EOF = 0, /* "end of file" */
- PPY_error = 256, /* error */
- PPY_UNDEF = 257, /* "invalid token" */
- tRCINCLUDE = 258, /* tRCINCLUDE */
- tIF = 259, /* tIF */
- tIFDEF = 260, /* tIFDEF */
- tIFNDEF = 261, /* tIFNDEF */
- tELSE = 262, /* tELSE */
- tELIF = 263, /* tELIF */
- tENDIF = 264, /* tENDIF */
- tDEFINED = 265, /* tDEFINED */
- tNL = 266, /* tNL */
- tINCLUDE = 267, /* tINCLUDE */
- tLINE = 268, /* tLINE */
- tGCCLINE = 269, /* tGCCLINE */
- tERROR = 270, /* tERROR */
- tWARNING = 271, /* tWARNING */
- tPRAGMA = 272, /* tPRAGMA */
- tPPIDENT = 273, /* tPPIDENT */
- tUNDEF = 274, /* tUNDEF */
- tMACROEND = 275, /* tMACROEND */
- tCONCAT = 276, /* tCONCAT */
- tELLIPSIS = 277, /* tELLIPSIS */
- tSTRINGIZE = 278, /* tSTRINGIZE */
- tIDENT = 279, /* tIDENT */
- tLITERAL = 280, /* tLITERAL */
- tMACRO = 281, /* tMACRO */
- tDEFINE = 282, /* tDEFINE */
- tDQSTRING = 283, /* tDQSTRING */
- tSQSTRING = 284, /* tSQSTRING */
- tIQSTRING = 285, /* tIQSTRING */
- tUINT = 286, /* tUINT */
- tSINT = 287, /* tSINT */
- tULONG = 288, /* tULONG */
- tSLONG = 289, /* tSLONG */
- tULONGLONG = 290, /* tULONGLONG */
- tSLONGLONG = 291, /* tSLONGLONG */
- tRCINCLUDEPATH = 292, /* tRCINCLUDEPATH */
- tLOGOR = 293, /* tLOGOR */
- tLOGAND = 294, /* tLOGAND */
- tEQ = 295, /* tEQ */
- tNE = 296, /* tNE */
- tLTE = 297, /* tLTE */
- tGTE = 298, /* tGTE */
- tLSHIFT = 299, /* tLSHIFT */
- tRSHIFT = 300 /* tRSHIFT */
- };
- typedef enum ppy_tokentype ppy_token_kind_t;
-#endif
-
-/* Value type. */
-#if ! defined PPY_STYPE && ! defined PPY_STYPE_IS_DECLARED
-union PPY_STYPE
-{
-#line 121 "tools/wrc/ppy.y"
-
- int sint;
- unsigned int uint;
- long slong;
- unsigned long ulong;
- __int64 sll;
- unsigned __int64 ull;
- int *iptr;
- char *cptr;
- cval_t cval;
- char *marg;
- mtext_t *mtext;
-
-#line 290 "tools/wrc/ppy.tab.c"
-
-};
-typedef union PPY_STYPE PPY_STYPE;
-# define PPY_STYPE_IS_TRIVIAL 1
-# define PPY_STYPE_IS_DECLARED 1
-#endif
-
-
-extern PPY_STYPE ppy_lval;
-
-
-int ppy_parse (void);
-
-
-
+#include "ppy.tab.h"
/* Symbol kind. */
enum yysymbol_kind_t
{
@@ -1471,25 +1365,25 @@
case 4: /* preprocessor: tINCLUDE tDQSTRING tNL */
#line 181 "tools/wrc/ppy.y"
{ pp_do_include((yyvsp[-1].cptr), 1); }
-#line 1475 "tools/wrc/ppy.tab.c"
+#line 1369 "tools/wrc/ppy.tab.c"
break;
case 5: /* preprocessor: tINCLUDE tIQSTRING tNL */
#line 182 "tools/wrc/ppy.y"
{ pp_do_include((yyvsp[-1].cptr), 0); }
-#line 1481 "tools/wrc/ppy.tab.c"
+#line 1375 "tools/wrc/ppy.tab.c"
break;
case 6: /* preprocessor: tIF pp_expr tNL */
#line 183 "tools/wrc/ppy.y"
{ pp_next_if_state(boolean(&(yyvsp[-1].cval))); }
-#line 1487 "tools/wrc/ppy.tab.c"
+#line 1381 "tools/wrc/ppy.tab.c"
break;
case 7: /* preprocessor: tIFDEF tIDENT tNL */
#line 184 "tools/wrc/ppy.y"
{ pp_next_if_state(pplookup((yyvsp[-1].cptr)) != NULL); free((yyvsp[-1].cptr)); }
-#line 1493 "tools/wrc/ppy.tab.c"
+#line 1387 "tools/wrc/ppy.tab.c"
break;
case 8: /* preprocessor: tIFNDEF tIDENT tNL */
@@ -1514,7 +1408,7 @@
fprintf(stderr, "tIFNDEF: %s:%d: include_state=%d, include_ppp='%s', include_ifdepth=%d\n",
pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth);
}
-#line 1518 "tools/wrc/ppy.tab.c"
+#line 1412 "tools/wrc/ppy.tab.c"
break;
case 9: /* preprocessor: tELIF pp_expr tNL */
@@ -1541,7 +1435,7 @@
break;
}
}
-#line 1545 "tools/wrc/ppy.tab.c"
+#line 1439 "tools/wrc/ppy.tab.c"
break;
case 10: /* preprocessor: tELSE tNL */
@@ -1570,7 +1464,7 @@
break;
}
}
-#line 1574 "tools/wrc/ppy.tab.c"
+#line 1468 "tools/wrc/ppy.tab.c"
break;
case 11: /* preprocessor: tENDIF tNL */
@@ -1592,19 +1486,19 @@
pp_status.input, pp_status.line_number, pp_incl_state.state, pp_incl_state.ppp, pp_incl_state.ifdepth);
}
}
-#line 1596 "tools/wrc/ppy.tab.c"
+#line 1490 "tools/wrc/ppy.tab.c"
break;
case 12: /* preprocessor: tUNDEF tIDENT tNL */
#line 268 "tools/wrc/ppy.y"
{ pp_del_define((yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
-#line 1602 "tools/wrc/ppy.tab.c"
+#line 1496 "tools/wrc/ppy.tab.c"
break;
case 13: /* preprocessor: tDEFINE opt_text tNL */
#line 269 "tools/wrc/ppy.y"
{ pp_add_define((yyvsp[-2].cptr), (yyvsp[-1].cptr)); free((yyvsp[-2].cptr)); free((yyvsp[-1].cptr)); }
-#line 1608 "tools/wrc/ppy.tab.c"
+#line 1502 "tools/wrc/ppy.tab.c"
break;
case 14: /* preprocessor: tMACRO res_arg allmargs tMACROEND opt_mtexts tNL */
@@ -1612,67 +1506,67 @@
{
pp_add_macro((yyvsp[-5].cptr), macro_args, nmacro_args, macro_variadic, (yyvsp[-1].mtext));
}
-#line 1616 "tools/wrc/ppy.tab.c"
+#line 1510 "tools/wrc/ppy.tab.c"
break;
case 15: /* preprocessor: tLINE tSINT tDQSTRING tNL */
#line 273 "tools/wrc/ppy.y"
{ if((yyvsp[-1].cptr)) fprintf(ppy_out, "# %d %s\n", (yyvsp[-2].sint) , (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
-#line 1622 "tools/wrc/ppy.tab.c"
+#line 1516 "tools/wrc/ppy.tab.c"
break;
case 16: /* preprocessor: tGCCLINE tSINT tDQSTRING tNL */
#line 274 "tools/wrc/ppy.y"
{ if((yyvsp[-1].cptr)) fprintf(ppy_out, "# %d %s\n", (yyvsp[-2].sint) , (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
-#line 1628 "tools/wrc/ppy.tab.c"
+#line 1522 "tools/wrc/ppy.tab.c"
break;
case 17: /* preprocessor: tGCCLINE tSINT tDQSTRING tSINT tNL */
#line 276 "tools/wrc/ppy.y"
{ if((yyvsp[-2].cptr)) fprintf(ppy_out, "# %d %s %d\n", (yyvsp[-3].sint), (yyvsp[-2].cptr), (yyvsp[-1].sint)); free((yyvsp[-2].cptr)); }
-#line 1634 "tools/wrc/ppy.tab.c"
+#line 1528 "tools/wrc/ppy.tab.c"
break;
case 18: /* preprocessor: tGCCLINE tSINT tDQSTRING tSINT tSINT tNL */
#line 278 "tools/wrc/ppy.y"
{ if((yyvsp[-3].cptr)) fprintf(ppy_out, "# %d %s %d %d\n", (yyvsp[-4].sint) ,(yyvsp[-3].cptr), (yyvsp[-2].sint), (yyvsp[-1].sint)); free((yyvsp[-3].cptr)); }
-#line 1640 "tools/wrc/ppy.tab.c"
+#line 1534 "tools/wrc/ppy.tab.c"
break;
case 19: /* preprocessor: tGCCLINE tSINT tDQSTRING tSINT tSINT tSINT tNL */
#line 280 "tools/wrc/ppy.y"
{ if((yyvsp[-4].cptr)) fprintf(ppy_out, "# %d %s %d %d %d\n", (yyvsp[-5].sint) ,(yyvsp[-4].cptr) ,(yyvsp[-3].sint) ,(yyvsp[-2].sint), (yyvsp[-1].sint)); free((yyvsp[-4].cptr)); }
-#line 1646 "tools/wrc/ppy.tab.c"
+#line 1540 "tools/wrc/ppy.tab.c"
break;
case 20: /* preprocessor: tGCCLINE tSINT tDQSTRING tSINT tSINT tSINT tSINT tNL */
#line 282 "tools/wrc/ppy.y"
{ if((yyvsp[-5].cptr)) fprintf(ppy_out, "# %d %s %d %d %d %d\n", (yyvsp[-6].sint) ,(yyvsp[-5].cptr) ,(yyvsp[-4].sint) ,(yyvsp[-3].sint), (yyvsp[-2].sint), (yyvsp[-1].sint)); free((yyvsp[-5].cptr)); }
-#line 1652 "tools/wrc/ppy.tab.c"
+#line 1546 "tools/wrc/ppy.tab.c"
break;
case 22: /* preprocessor: tERROR opt_text tNL */
#line 284 "tools/wrc/ppy.y"
{ ppy_error("#error directive: '%s'", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
-#line 1658 "tools/wrc/ppy.tab.c"
+#line 1552 "tools/wrc/ppy.tab.c"
break;
case 23: /* preprocessor: tWARNING opt_text tNL */
#line 285 "tools/wrc/ppy.y"
{ ppy_warning("#warning directive: '%s'", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
-#line 1664 "tools/wrc/ppy.tab.c"
+#line 1558 "tools/wrc/ppy.tab.c"
break;
case 24: /* preprocessor: tPRAGMA opt_text tNL */
#line 286 "tools/wrc/ppy.y"
{ fprintf(ppy_out, "#pragma %s\n", (yyvsp[-1].cptr) ? (yyvsp[-1].cptr) : ""); free((yyvsp[-1].cptr)); }
-#line 1670 "tools/wrc/ppy.tab.c"
+#line 1564 "tools/wrc/ppy.tab.c"
break;
case 25: /* preprocessor: tPPIDENT opt_text tNL */
#line 287 "tools/wrc/ppy.y"
{ if(pedantic) ppy_warning("#ident ignored (arg: '%s')", (yyvsp[-1].cptr)); free((yyvsp[-1].cptr)); }
-#line 1676 "tools/wrc/ppy.tab.c"
+#line 1570 "tools/wrc/ppy.tab.c"
break;
case 26: /* preprocessor: tRCINCLUDE tRCINCLUDEPATH */
@@ -1680,7 +1574,7 @@
{
pp_do_include(strmake( "\"%s\"", (yyvsp[0].cptr) ),1);
}
-#line 1684 "tools/wrc/ppy.tab.c"
+#line 1578 "tools/wrc/ppy.tab.c"
break;
case 27: /* preprocessor: tRCINCLUDE tDQSTRING */
@@ -1688,109 +1582,109 @@
{
pp_do_include((yyvsp[0].cptr),1);
}
-#line 1692 "tools/wrc/ppy.tab.c"
+#line 1586 "tools/wrc/ppy.tab.c"
break;
case 28: /* opt_text: %empty */
#line 297 "tools/wrc/ppy.y"
{ (yyval.cptr) = NULL; }
-#line 1698 "tools/wrc/ppy.tab.c"
+#line 1592 "tools/wrc/ppy.tab.c"
break;
case 29: /* opt_text: text */
#line 298 "tools/wrc/ppy.y"
{ (yyval.cptr) = (yyvsp[0].cptr); }
-#line 1704 "tools/wrc/ppy.tab.c"
+#line 1598 "tools/wrc/ppy.tab.c"
break;
case 30: /* text: tLITERAL */
#line 301 "tools/wrc/ppy.y"
{ (yyval.cptr) = (yyvsp[0].cptr); }
-#line 1710 "tools/wrc/ppy.tab.c"
+#line 1604 "tools/wrc/ppy.tab.c"
break;
case 31: /* text: tDQSTRING */
#line 302 "tools/wrc/ppy.y"
{ (yyval.cptr) = (yyvsp[0].cptr); }
-#line 1716 "tools/wrc/ppy.tab.c"
+#line 1610 "tools/wrc/ppy.tab.c"
break;
case 32: /* text: tSQSTRING */
#line 303 "tools/wrc/ppy.y"
{ (yyval.cptr) = (yyvsp[0].cptr); }
-#line 1722 "tools/wrc/ppy.tab.c"
+#line 1616 "tools/wrc/ppy.tab.c"
break;
case 33: /* text: text tLITERAL */
#line 304 "tools/wrc/ppy.y"
{ (yyval.cptr) = merge_text((yyvsp[-1].cptr), (yyvsp[0].cptr)); }
-#line 1728 "tools/wrc/ppy.tab.c"
+#line 1622 "tools/wrc/ppy.tab.c"
break;
case 34: /* text: text tDQSTRING */
#line 305 "tools/wrc/ppy.y"
{ (yyval.cptr) = merge_text((yyvsp[-1].cptr), (yyvsp[0].cptr)); }
-#line 1734 "tools/wrc/ppy.tab.c"
+#line 1628 "tools/wrc/ppy.tab.c"
break;
case 35: /* text: text tSQSTRING */
#line 306 "tools/wrc/ppy.y"
{ (yyval.cptr) = merge_text((yyvsp[-1].cptr), (yyvsp[0].cptr)); }
-#line 1740 "tools/wrc/ppy.tab.c"
+#line 1634 "tools/wrc/ppy.tab.c"
break;
case 36: /* res_arg: %empty */
#line 309 "tools/wrc/ppy.y"
{ macro_args = NULL; nmacro_args = 0; macro_variadic = 0; }
-#line 1746 "tools/wrc/ppy.tab.c"
+#line 1640 "tools/wrc/ppy.tab.c"
break;
case 37: /* allmargs: %empty */
#line 312 "tools/wrc/ppy.y"
{ (yyval.sint) = 0; macro_args = NULL; nmacro_args = 0; macro_variadic = 0; }
-#line 1752 "tools/wrc/ppy.tab.c"
+#line 1646 "tools/wrc/ppy.tab.c"
break;
case 38: /* allmargs: emargs */
#line 313 "tools/wrc/ppy.y"
{ (yyval.sint) = nmacro_args; }
-#line 1758 "tools/wrc/ppy.tab.c"
+#line 1652 "tools/wrc/ppy.tab.c"
break;
case 39: /* emargs: margs */
#line 316 "tools/wrc/ppy.y"
{ (yyval.marg) = (yyvsp[0].marg); }
-#line 1764 "tools/wrc/ppy.tab.c"
+#line 1658 "tools/wrc/ppy.tab.c"
break;
case 40: /* emargs: margs ',' tELLIPSIS */
#line 317 "tools/wrc/ppy.y"
{ macro_variadic = 1; }
-#line 1770 "tools/wrc/ppy.tab.c"
+#line 1664 "tools/wrc/ppy.tab.c"
break;
case 41: /* emargs: tELLIPSIS */
#line 318 "tools/wrc/ppy.y"
{ macro_args = NULL; nmacro_args = 0; macro_variadic = 1; }
-#line 1776 "tools/wrc/ppy.tab.c"
+#line 1670 "tools/wrc/ppy.tab.c"
break;
case 42: /* margs: margs ',' tIDENT */
#line 321 "tools/wrc/ppy.y"
{ (yyval.marg) = add_new_marg((yyvsp[0].cptr)); }
-#line 1782 "tools/wrc/ppy.tab.c"
+#line 1676 "tools/wrc/ppy.tab.c"
break;
case 43: /* margs: tIDENT */
#line 322 "tools/wrc/ppy.y"
{ (yyval.marg) = add_new_marg((yyvsp[0].cptr)); }
-#line 1788 "tools/wrc/ppy.tab.c"
+#line 1682 "tools/wrc/ppy.tab.c"
break;
case 44: /* opt_mtexts: %empty */
#line 326 "tools/wrc/ppy.y"
{ (yyval.mtext) = NULL; }
-#line 1794 "tools/wrc/ppy.tab.c"
+#line 1688 "tools/wrc/ppy.tab.c"
break;
case 45: /* opt_mtexts: mtexts */
@@ -1799,43 +1693,43 @@
for((yyval.mtext) = (yyvsp[0].mtext); (yyval.mtext) && (yyval.mtext)->prev; (yyval.mtext) = (yyval.mtext)->prev)
;
}
-#line 1803 "tools/wrc/ppy.tab.c"
+#line 1697 "tools/wrc/ppy.tab.c"
break;
case 46: /* mtexts: mtext */
#line 333 "tools/wrc/ppy.y"
{ (yyval.mtext) = (yyvsp[0].mtext); }
-#line 1809 "tools/wrc/ppy.tab.c"
+#line 1703 "tools/wrc/ppy.tab.c"
break;
case 47: /* mtexts: mtexts mtext */
#line 334 "tools/wrc/ppy.y"
{ (yyval.mtext) = combine_mtext((yyvsp[-1].mtext), (yyvsp[0].mtext)); }
-#line 1815 "tools/wrc/ppy.tab.c"
+#line 1709 "tools/wrc/ppy.tab.c"
break;
case 48: /* mtext: tLITERAL */
#line 337 "tools/wrc/ppy.y"
{ (yyval.mtext) = new_mtext((yyvsp[0].cptr), 0, exp_text); }
-#line 1821 "tools/wrc/ppy.tab.c"
+#line 1715 "tools/wrc/ppy.tab.c"
break;
case 49: /* mtext: tDQSTRING */
#line 338 "tools/wrc/ppy.y"
{ (yyval.mtext) = new_mtext((yyvsp[0].cptr), 0, exp_text); }
-#line 1827 "tools/wrc/ppy.tab.c"
+#line 1721 "tools/wrc/ppy.tab.c"
break;
case 50: /* mtext: tSQSTRING */
#line 339 "tools/wrc/ppy.y"
{ (yyval.mtext) = new_mtext((yyvsp[0].cptr), 0, exp_text); }
-#line 1833 "tools/wrc/ppy.tab.c"
+#line 1727 "tools/wrc/ppy.tab.c"
break;
case 51: /* mtext: tCONCAT */
#line 340 "tools/wrc/ppy.y"
{ (yyval.mtext) = new_mtext(NULL, 0, exp_concat); }
-#line 1839 "tools/wrc/ppy.tab.c"
+#line 1733 "tools/wrc/ppy.tab.c"
break;
case 52: /* mtext: tSTRINGIZE tIDENT */
@@ -1847,7 +1741,7 @@
else
(yyval.mtext) = new_mtext(NULL, mat, exp_stringize);
}
-#line 1851 "tools/wrc/ppy.tab.c"
+#line 1745 "tools/wrc/ppy.tab.c"
break;
case 53: /* mtext: tIDENT */
@@ -1859,203 +1753,203 @@
else if((yyvsp[0].cptr))
(yyval.mtext) = new_mtext((yyvsp[0].cptr), 0, exp_text);
}
-#line 1863 "tools/wrc/ppy.tab.c"
+#line 1757 "tools/wrc/ppy.tab.c"
break;
case 54: /* pp_expr: tSINT */
#line 357 "tools/wrc/ppy.y"
{ (yyval.cval).type = cv_sint; (yyval.cval).val.si = (yyvsp[0].sint); }
-#line 1869 "tools/wrc/ppy.tab.c"
+#line 1763 "tools/wrc/ppy.tab.c"
break;
case 55: /* pp_expr: tUINT */
#line 358 "tools/wrc/ppy.y"
{ (yyval.cval).type = cv_uint; (yyval.cval).val.ui = (yyvsp[0].uint); }
-#line 1875 "tools/wrc/ppy.tab.c"
+#line 1769 "tools/wrc/ppy.tab.c"
break;
case 56: /* pp_expr: tSLONG */
#line 359 "tools/wrc/ppy.y"
{ (yyval.cval).type = cv_slong; (yyval.cval).val.sl = (yyvsp[0].slong); }
-#line 1881 "tools/wrc/ppy.tab.c"
+#line 1775 "tools/wrc/ppy.tab.c"
break;
case 57: /* pp_expr: tULONG */
#line 360 "tools/wrc/ppy.y"
{ (yyval.cval).type = cv_ulong; (yyval.cval).val.ul = (yyvsp[0].ulong); }
-#line 1887 "tools/wrc/ppy.tab.c"
+#line 1781 "tools/wrc/ppy.tab.c"
break;
case 58: /* pp_expr: tSLONGLONG */
#line 361 "tools/wrc/ppy.y"
{ (yyval.cval).type = cv_sll; (yyval.cval).val.sll = (yyvsp[0].sll); }
-#line 1893 "tools/wrc/ppy.tab.c"
+#line 1787 "tools/wrc/ppy.tab.c"
break;
case 59: /* pp_expr: tULONGLONG */
#line 362 "tools/wrc/ppy.y"
{ (yyval.cval).type = cv_ull; (yyval.cval).val.ull = (yyvsp[0].ull); }
-#line 1899 "tools/wrc/ppy.tab.c"
+#line 1793 "tools/wrc/ppy.tab.c"
break;
case 60: /* pp_expr: tDEFINED tIDENT */
#line 363 "tools/wrc/ppy.y"
{ (yyval.cval).type = cv_sint; (yyval.cval).val.si = pplookup((yyvsp[0].cptr)) != NULL; }
-#line 1905 "tools/wrc/ppy.tab.c"
+#line 1799 "tools/wrc/ppy.tab.c"
break;
case 61: /* pp_expr: tDEFINED '(' tIDENT ')' */
#line 364 "tools/wrc/ppy.y"
{ (yyval.cval).type = cv_sint; (yyval.cval).val.si = pplookup((yyvsp[-1].cptr)) != NULL; }
-#line 1911 "tools/wrc/ppy.tab.c"
+#line 1805 "tools/wrc/ppy.tab.c"
break;
case 62: /* pp_expr: tIDENT */
#line 365 "tools/wrc/ppy.y"
{ (yyval.cval).type = cv_sint; (yyval.cval).val.si = 0; }
-#line 1917 "tools/wrc/ppy.tab.c"
+#line 1811 "tools/wrc/ppy.tab.c"
break;
case 63: /* pp_expr: pp_expr tLOGOR pp_expr */
#line 366 "tools/wrc/ppy.y"
{ (yyval.cval).type = cv_sint; (yyval.cval).val.si = boolean(&(yyvsp[-2].cval)) || boolean(&(yyvsp[0].cval)); }
-#line 1923 "tools/wrc/ppy.tab.c"
+#line 1817 "tools/wrc/ppy.tab.c"
break;
case 64: /* pp_expr: pp_expr tLOGAND pp_expr */
#line 367 "tools/wrc/ppy.y"
{ (yyval.cval).type = cv_sint; (yyval.cval).val.si = boolean(&(yyvsp[-2].cval)) && boolean(&(yyvsp[0].cval)); }
-#line 1929 "tools/wrc/ppy.tab.c"
+#line 1823 "tools/wrc/ppy.tab.c"
break;
case 65: /* pp_expr: pp_expr tEQ pp_expr */
#line 368 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), ==); }
-#line 1935 "tools/wrc/ppy.tab.c"
+#line 1829 "tools/wrc/ppy.tab.c"
break;
case 66: /* pp_expr: pp_expr tNE pp_expr */
#line 369 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), !=); }
-#line 1941 "tools/wrc/ppy.tab.c"
+#line 1835 "tools/wrc/ppy.tab.c"
break;
case 67: /* pp_expr: pp_expr '<' pp_expr */
#line 370 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), <); }
-#line 1947 "tools/wrc/ppy.tab.c"
+#line 1841 "tools/wrc/ppy.tab.c"
break;
case 68: /* pp_expr: pp_expr '>' pp_expr */
#line 371 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), >); }
-#line 1953 "tools/wrc/ppy.tab.c"
+#line 1847 "tools/wrc/ppy.tab.c"
break;
case 69: /* pp_expr: pp_expr tLTE pp_expr */
#line 372 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), <=); }
-#line 1959 "tools/wrc/ppy.tab.c"
+#line 1853 "tools/wrc/ppy.tab.c"
break;
case 70: /* pp_expr: pp_expr tGTE pp_expr */
#line 373 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), >=); }
-#line 1965 "tools/wrc/ppy.tab.c"
+#line 1859 "tools/wrc/ppy.tab.c"
break;
case 71: /* pp_expr: pp_expr '+' pp_expr */
#line 374 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), +); }
-#line 1971 "tools/wrc/ppy.tab.c"
+#line 1865 "tools/wrc/ppy.tab.c"
break;
case 72: /* pp_expr: pp_expr '-' pp_expr */
#line 375 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), -); }
-#line 1977 "tools/wrc/ppy.tab.c"
+#line 1871 "tools/wrc/ppy.tab.c"
break;
case 73: /* pp_expr: pp_expr '^' pp_expr */
#line 376 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), ^); }
-#line 1983 "tools/wrc/ppy.tab.c"
+#line 1877 "tools/wrc/ppy.tab.c"
break;
case 74: /* pp_expr: pp_expr '&' pp_expr */
#line 377 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), &); }
-#line 1989 "tools/wrc/ppy.tab.c"
+#line 1883 "tools/wrc/ppy.tab.c"
break;
case 75: /* pp_expr: pp_expr '|' pp_expr */
#line 378 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), |); }
-#line 1995 "tools/wrc/ppy.tab.c"
+#line 1889 "tools/wrc/ppy.tab.c"
break;
case 76: /* pp_expr: pp_expr '*' pp_expr */
#line 379 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), *); }
-#line 2001 "tools/wrc/ppy.tab.c"
+#line 1895 "tools/wrc/ppy.tab.c"
break;
case 77: /* pp_expr: pp_expr '/' pp_expr */
#line 380 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), /); }
-#line 2007 "tools/wrc/ppy.tab.c"
+#line 1901 "tools/wrc/ppy.tab.c"
break;
case 78: /* pp_expr: pp_expr tLSHIFT pp_expr */
#line 381 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), <<); }
-#line 2013 "tools/wrc/ppy.tab.c"
+#line 1907 "tools/wrc/ppy.tab.c"
break;
case 79: /* pp_expr: pp_expr tRSHIFT pp_expr */
#line 382 "tools/wrc/ppy.y"
{ promote_equal_size(&(yyvsp[-2].cval), &(yyvsp[0].cval)); BIN_OP((yyval.cval), (yyvsp[-2].cval), (yyvsp[0].cval), >>); }
-#line 2019 "tools/wrc/ppy.tab.c"
+#line 1913 "tools/wrc/ppy.tab.c"
break;
case 80: /* pp_expr: '+' pp_expr */
#line 383 "tools/wrc/ppy.y"
{ (yyval.cval) = (yyvsp[0].cval); }
-#line 2025 "tools/wrc/ppy.tab.c"
+#line 1919 "tools/wrc/ppy.tab.c"
break;
case 81: /* pp_expr: '-' pp_expr */
#line 384 "tools/wrc/ppy.y"
{ UNARY_OP((yyval.cval), (yyvsp[0].cval), -); }
-#line 2031 "tools/wrc/ppy.tab.c"
+#line 1925 "tools/wrc/ppy.tab.c"
break;
case 82: /* pp_expr: '~' pp_expr */
#line 385 "tools/wrc/ppy.y"
{ UNARY_OP((yyval.cval), (yyvsp[0].cval), ~); }
-#line 2037 "tools/wrc/ppy.tab.c"
+#line 1931 "tools/wrc/ppy.tab.c"
break;
case 83: /* pp_expr: '!' pp_expr */
#line 386 "tools/wrc/ppy.y"
{ (yyval.cval).type = cv_sint; (yyval.cval).val.si = !boolean(&(yyvsp[0].cval)); }
-#line 2043 "tools/wrc/ppy.tab.c"
+#line 1937 "tools/wrc/ppy.tab.c"
break;
case 84: /* pp_expr: '(' pp_expr ')' */
#line 387 "tools/wrc/ppy.y"
{ (yyval.cval) = (yyvsp[-1].cval); }
-#line 2049 "tools/wrc/ppy.tab.c"
+#line 1943 "tools/wrc/ppy.tab.c"
break;
case 85: /* pp_expr: pp_expr '?' pp_expr ':' pp_expr */
#line 388 "tools/wrc/ppy.y"
{ (yyval.cval) = boolean(&(yyvsp[-4].cval)) ? (yyvsp[-2].cval) : (yyvsp[0].cval); }
-#line 2055 "tools/wrc/ppy.tab.c"
+#line 1949 "tools/wrc/ppy.tab.c"
break;
-#line 2059 "tools/wrc/ppy.tab.c"
+#line 1953 "tools/wrc/ppy.tab.c"
default: break;
}
diff --git a/mingw-w64-tools/widl/src/proxy.c b/mingw-w64-tools/widl/src/proxy.c
index 3d55cd7..8fed948 100644
--- a/mingw-w64-tools/widl/src/proxy.c
+++ b/mingw-w64-tools/widl/src/proxy.c
@@ -86,10 +86,6 @@
print_proxy( "#define __midl_proxy\n");
print_proxy( "#include \"objbase.h\"\n");
print_proxy( "\n");
- print_proxy( "#ifndef DECLSPEC_HIDDEN\n");
- print_proxy( "#define DECLSPEC_HIDDEN\n");
- print_proxy( "#endif\n");
- print_proxy( "\n");
}
static void clear_output_vars( const var_list_t *args )
@@ -1026,7 +1022,7 @@
fprintf(proxy, "\n");
}
- fprintf(proxy, "const ExtendedProxyFileInfo %s_ProxyFileInfo DECLSPEC_HIDDEN =\n", file_id);
+ fprintf(proxy, "const ExtendedProxyFileInfo %s_ProxyFileInfo =\n", file_id);
fprintf(proxy, "{\n");
fprintf(proxy, " (const PCInterfaceProxyVtblList*)_%s_ProxyVtblList,\n", file_id);
fprintf(proxy, " (const PCInterfaceStubVtblList*)_%s_StubVtblList,\n", file_id);
diff --git a/mingw-w64-tools/widl/src/server.c b/mingw-w64-tools/widl/src/server.c
index 1d8ab41..c7ecb65 100644
--- a/mingw-w64-tools/widl/src/server.c
+++ b/mingw-w64-tools/widl/src/server.c
@@ -433,10 +433,10 @@
indent--;
print_server("};\n");
if (old_names)
- print_server("RPC_IF_HANDLE %s_ServerIfHandle DECLSPEC_HIDDEN = (RPC_IF_HANDLE)& %s___RpcServerInterface;\n",
+ print_server("RPC_IF_HANDLE %s_ServerIfHandle = (RPC_IF_HANDLE)& %s___RpcServerInterface;\n",
iface->name, iface->name);
else
- print_server("RPC_IF_HANDLE %s%s_v%d_%d_s_ifspec DECLSPEC_HIDDEN = (RPC_IF_HANDLE)& %s___RpcServerInterface;\n",
+ print_server("RPC_IF_HANDLE %s%s_v%d_%d_s_ifspec = (RPC_IF_HANDLE)& %s___RpcServerInterface;\n",
prefix_server, iface->name, MAJORVERSION(ver), MINORVERSION(ver), iface->name);
fprintf(server, "\n");
}
@@ -453,10 +453,6 @@
print_server("#include <string.h>\n");
fprintf(server, "\n");
print_server("#include \"%s\"\n", header_name);
- print_server("\n");
- print_server( "#ifndef DECLSPEC_HIDDEN\n");
- print_server( "#define DECLSPEC_HIDDEN\n");
- print_server( "#endif\n");
print_server( "\n");
}