widl: Update to 7.7 Signed-off-by: LIU Hao <lh_mouse@126.com>
diff --git a/mingw-w64-tools/widl/VERSION b/mingw-w64-tools/widl/VERSION index 5c10359..8842174 100644 --- a/mingw-w64-tools/widl/VERSION +++ b/mingw-w64-tools/widl/VERSION
@@ -1 +1 @@ -WIDL version 7.0 +WIDL version 7.7
diff --git a/mingw-w64-tools/widl/configure b/mingw-w64-tools/widl/configure index 60601fd..0904f2a 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 7.0. +# Generated by GNU Autoconf 2.71 for widl 7.7. # # 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='7.0' -PACKAGE_STRING='widl 7.0' +PACKAGE_VERSION='7.7' +PACKAGE_STRING='widl 7.7' 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 7.0 to adapt to many kinds of systems. +\`configure' configures widl 7.7 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 7.0:";; + short | recursive ) echo "Configuration of widl 7.7:";; esac cat <<\_ACEOF @@ -1493,7 +1493,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -widl configure 7.0 +widl configure 7.7 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 7.0, which was +It was created by widl $as_me 7.7, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -3296,7 +3296,7 @@ # Define the identity of the package. PACKAGE='widl' - VERSION='7.0' + VERSION='7.7' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -5784,7 +5784,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 7.0, which was +This file was extended by widl $as_me 7.7, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -5852,7 +5852,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -widl config.status 7.0 +widl config.status 7.7 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\"
diff --git a/mingw-w64-tools/widl/include/basetsd.h b/mingw-w64-tools/widl/include/basetsd.h index a4774a2..6a6a394 100644 --- a/mingw-w64-tools/widl/include/basetsd.h +++ b/mingw-w64-tools/widl/include/basetsd.h
@@ -108,7 +108,6 @@ typedef /* [public] */ signed __int3264 LONG_PTR, *PLONG_PTR; typedef /* [public] */ unsigned __int3264 UINT_PTR, *PUINT_PTR; typedef /* [public] */ unsigned __int3264 ULONG_PTR, *PULONG_PTR; -typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR; #elif defined(_WIN64) @@ -118,17 +117,20 @@ typedef signed __int64 LONG_PTR, *PLONG_PTR; typedef unsigned __int64 UINT_PTR, *PUINT_PTR; typedef unsigned __int64 ULONG_PTR, *PULONG_PTR; -typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR; #else #define __int3264 __int32 +#ifdef WINE_NO_LONG_TYPES typedef long INT_PTR, *PINT_PTR; typedef unsigned long UINT_PTR, *PUINT_PTR; +#else +typedef int INT_PTR, *PINT_PTR; +typedef unsigned int UINT_PTR, *PUINT_PTR; +#endif typedef long LONG_PTR, *PLONG_PTR; typedef unsigned long ULONG_PTR, *PULONG_PTR; -typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR; #endif @@ -151,16 +153,54 @@ #if !defined(__midl) && !defined(__WIDL__) -static inline ULONG32 HandleToULong(const void *h) +#if !defined(__LP64__) && !defined(WINE_NO_LONG_TYPES) + +static inline unsigned long HandleToULong(const void *h) { - return (ULONG32)(ULONG_PTR)h; + return (unsigned long)(ULONG_PTR)h; } -static inline LONG32 HandleToLong(const void *h) +static inline long HandleToLong(const void *h) { - return (LONG32)(LONG_PTR)h; + return (long)(LONG_PTR)h; } +static inline unsigned long PtrToUlong(const void *p) +{ + return (unsigned long)(ULONG_PTR)p; +} + +static inline long PtrToLong(const void *p) +{ + return (long)(LONG_PTR)p; +} + + +#else + +static inline unsigned HandleToULong(const void *h) +{ + return (unsigned)(ULONG_PTR)h; +} + +static inline int HandleToLong(const void *h) +{ + return (int)(LONG_PTR)h; +} + +static inline unsigned PtrToUlong(const void *p) +{ + return (unsigned)(ULONG_PTR)p; +} + +static inline int PtrToLong(const void *p) +{ + return (int)(LONG_PTR)p; +} + + +#endif /* !defined(__LP64__) && !defined(WINE_NO_LONG_TYPES) */ + static inline void *ULongToHandle(ULONG32 ul) { return (void *)(ULONG_PTR)ul; @@ -171,16 +211,6 @@ return (void *)(LONG_PTR)l; } -static inline ULONG32 PtrToUlong(const void *p) -{ - return (ULONG32)(ULONG_PTR)p; -} - -static inline LONG32 PtrToLong(const void *p) -{ - return (LONG32)(LONG_PTR)p; -} - static inline UINT32 PtrToUint(const void *p) { return (UINT32)(UINT_PTR)p; @@ -262,7 +292,7 @@ typedef LONG_PTR SSIZE_T, *PSSIZE_T; typedef ULONG_PTR SIZE_T, *PSIZE_T; - +typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR; typedef ULONG_PTR KAFFINITY, *PKAFFINITY; #define MINLONGLONG ((LONGLONG)~MAXLONGLONG)
diff --git a/mingw-w64-tools/widl/include/guiddef.h b/mingw-w64-tools/widl/include/guiddef.h index d09ea98..912fcea 100644 --- a/mingw-w64-tools/widl/include/guiddef.h +++ b/mingw-w64-tools/widl/include/guiddef.h
@@ -30,7 +30,7 @@ #else typedef struct _GUID { -#ifdef WINE_USE_LONG +#ifndef __LP64__ unsigned long Data1; #else unsigned int Data1;
diff --git a/mingw-w64-tools/widl/include/winbase.h b/mingw-w64-tools/widl/include/winbase.h index 0a0bfde..a0c62d7 100644 --- a/mingw-w64-tools/widl/include/winbase.h +++ b/mingw-w64-tools/widl/include/winbase.h
@@ -1901,6 +1901,7 @@ WINBASEAPI BOOL WINAPI CreateProcessInternalW(HANDLE,LPCWSTR,LPWSTR,LPSECURITY_ATTRIBUTES,LPSECURITY_ATTRIBUTES,BOOL,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION,HANDLE*); #define CreateProcessInternal WINELIB_NAME_AW(CreateProcessInternal) WINADVAPI BOOL WINAPI CreateProcessWithLogonW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPCWSTR,LPWSTR,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION); +WINADVAPI BOOL WINAPI CreateProcessWithTokenW(HANDLE,DWORD,LPCWSTR,LPWSTR,DWORD,void *,LPCWSTR,STARTUPINFOW *,PROCESS_INFORMATION *); WINBASEAPI HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD); WINBASEAPI HANDLE WINAPI CreateRemoteThreadEx(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPPROC_THREAD_ATTRIBUTE_LIST,LPDWORD); WINADVAPI BOOL WINAPI CreateRestrictedToken(HANDLE,DWORD,DWORD,PSID_AND_ATTRIBUTES,DWORD,PLUID_AND_ATTRIBUTES,DWORD,PSID_AND_ATTRIBUTES,PHANDLE); @@ -2405,6 +2406,7 @@ WINBASEAPI PSLIST_ENTRY WINAPI InterlockedFlushSList(PSLIST_HEADER); WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPopEntrySList(PSLIST_HEADER); WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPushEntrySList(PSLIST_HEADER, PSLIST_ENTRY); +WINBASEAPI BOOL WINAPI IsApiSetImplemented(LPCSTR); WINBASEAPI BOOL WINAPI IsBadCodePtr(FARPROC); WINBASEAPI BOOL WINAPI IsBadHugeReadPtr(LPCVOID,UINT_PTR); WINBASEAPI BOOL WINAPI IsBadHugeWritePtr(LPVOID,UINT_PTR);
diff --git a/mingw-w64-tools/widl/include/windef.h b/mingw-w64-tools/widl/include/windef.h index f352706..cb7eb11 100644 --- a/mingw-w64-tools/widl/include/windef.h +++ b/mingw-w64-tools/widl/include/windef.h
@@ -237,7 +237,7 @@ #define BASETYPES typedef unsigned char UCHAR, *PUCHAR; typedef unsigned short USHORT, *PUSHORT; -#ifdef WINE_USE_LONG +#if !defined(__LP64__) && !defined(WINE_NO_LONG_TYPES) typedef unsigned long ULONG, *PULONG; #else typedef unsigned int ULONG, *PULONG; @@ -253,7 +253,7 @@ typedef unsigned int UINT, *PUINT; typedef float FLOAT, *PFLOAT; typedef char *PSZ; -#ifdef WINE_USE_LONG +#if !defined(__LP64__) && !defined(WINE_NO_LONG_TYPES) typedef long *LPLONG; typedef unsigned long DWORD, *PDWORD, *LPDWORD; #else
diff --git a/mingw-w64-tools/widl/include/winerror.h b/mingw-w64-tools/widl/include/winerror.h index f412989..d51d564 100644 --- a/mingw-w64-tools/widl/include/winerror.h +++ b/mingw-w64-tools/widl/include/winerror.h
@@ -89,11 +89,11 @@ #define __HRESULT_FROM_WIN32(x) ((HRESULT)(x) > 0 ? ((HRESULT) (((x) & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000)) : (HRESULT)(x) ) #ifndef _HRESULT_DEFINED #define _HRESULT_DEFINED -# ifdef _MSC_VER -typedef long HRESULT; -# else -typedef int HRESULT; -# endif +#if !defined(__LP64__) && !defined(WINE_NO_LONG_TYPES) +typedef long HRESULT; +#else +typedef int HRESULT; +#endif #endif static inline HRESULT HRESULT_FROM_WIN32(unsigned int x) { @@ -2578,6 +2578,25 @@ #define E_CHANGED_STATE _HRESULT_TYPEDEF_(0x8000000C) #define E_ILLEGAL_STATE_CHANGE _HRESULT_TYPEDEF_(0x8000000D) #define E_ILLEGAL_METHOD_CALL _HRESULT_TYPEDEF_(0x8000000E) +#define RO_E_METADATA_NAME_NOT_FOUND _HRESULT_TYPEDEF_(0x8000000F) +#define RO_E_METADATA_NAME_IS_NAMESPACE _HRESULT_TYPEDEF_(0x80000010) +#define RO_E_METADATA_INVALID_TYPE_FORMAT _HRESULT_TYPEDEF_(0x80000011) +#define RO_E_INVALID_METADATA_FILE _HRESULT_TYPEDEF_(0x80000012) +#define RO_E_CLOSED _HRESULT_TYPEDEF_(0x80000013) +#define RO_E_EXCLUSIVE_WRITE _HRESULT_TYPEDEF_(0x80000014) +#define RO_E_CHANGE_NOTIFICATION_IN_PROGRESS _HRESULT_TYPEDEF_(0x80000015) +#define RO_E_ERROR_STRING_NOT_FOUND _HRESULT_TYPEDEF_(0x80000016) +#define E_STRING_NOT_NULL_TERMINATED _HRESULT_TYPEDEF_(0x80000017) +#define E_ILLEGAL_DELEGATE_ASSIGNMENT _HRESULT_TYPEDEF_(0x80000018) +#define E_ASYNC_OPERATION_NOT_STARTED _HRESULT_TYPEDEF_(0x80000019) +#define E_APPLICATION_EXITING _HRESULT_TYPEDEF_(0x8000001A) +#define E_APPLICATION_VIEW_EXITING _HRESULT_TYPEDEF_(0x8000001B) +#define RO_E_MUST_BE_AGILE _HRESULT_TYPEDEF_(0x8000001C) +#define RO_E_UNSUPPORTED_FROM_MTA _HRESULT_TYPEDEF_(0x8000001D) +#define RO_E_COMMITTED _HRESULT_TYPEDEF_(0x8000001E) +#define RO_E_BLOCKED_CROSS_ASTA_CALL _HRESULT_TYPEDEF_(0x8000001F) +#define RO_E_CANNOT_ACTIVATE_FULL_TRUST_SERVER _HRESULT_TYPEDEF_(0x80000020) +#define RO_E_CANNOT_ACTIVATE_UNIVERSAL_APPLICATION_SERVER _HRESULT_TYPEDEF_(0x80000021) #define E_NOTIMPL _HRESULT_TYPEDEF_(0x80004001) #define E_NOINTERFACE _HRESULT_TYPEDEF_(0x80004002)
diff --git a/mingw-w64-tools/widl/include/winnls.h b/mingw-w64-tools/widl/include/winnls.h index 4b1323c..e095cbc 100644 --- a/mingw-w64-tools/widl/include/winnls.h +++ b/mingw-w64-tools/widl/include/winnls.h
@@ -316,6 +316,9 @@ #define LOCALE_SSHORTTIME 0x0079 #define LOCALE_SOPENTYPELANGUAGETAG 0X007A #define LOCALE_SSORTLOCALE 0x007B +#define LOCALE_SRELATIVELONGDATE 0x007C +#define LOCALE_SSHORTESTAM 0x007E +#define LOCALE_SSHORTESTPM 0x007F #define LOCALE_IDEFAULTEBCDICCODEPAGE 0x1012 #define LOCALE_IPAPERSIZE 0x100A @@ -538,6 +541,9 @@ #define CAL_SSHORTESTDAYNAME7 0x37 #define CAL_SMONTHDAY 0x38 #define CAL_SABBREVERASTRING 0x39 +#define CAL_SRELATIVELONGDATE 0x3a +#define CAL_SENGLISHERANAME 0x3b +#define CAL_SENGLISHABBREVERANAME 0x3c /* Calendar types */ #define CAL_GREGORIAN 1 @@ -902,6 +908,7 @@ WINBASEAPI BOOL WINAPI GetCPInfoExW(UINT,DWORD,LPCPINFOEXW); #define GetCPInfoEx WINELIB_NAME_AW(GetCPInfoEx) WINBASEAPI INT WINAPI GetCalendarInfoA(LCID,DWORD,DWORD,LPSTR,INT,LPDWORD); +WINBASEAPI INT WINAPI GetCalendarInfoEx(const WCHAR*,CALID,const WCHAR*,CALTYPE,WCHAR*,INT,DWORD*); WINBASEAPI INT WINAPI GetCalendarInfoW(LCID,DWORD,DWORD,LPWSTR,INT,LPDWORD); #define GetCalendarInfo WINELIB_NAME_AW(GetCalendarInfo) WINBASEAPI INT WINAPI GetCurrencyFormatA(LCID,DWORD,LPCSTR,const CURRENCYFMTA*,LPSTR,INT);
diff --git a/mingw-w64-tools/widl/include/winnt.h b/mingw-w64-tools/widl/include/winnt.h index 9296a3d..e853ddb 100644 --- a/mingw-w64-tools/widl/include/winnt.h +++ b/mingw-w64-tools/widl/include/winnt.h
@@ -467,7 +467,7 @@ typedef BYTE BOOLEAN, *PBOOLEAN; typedef char CHAR, *PCHAR; typedef short SHORT, *PSHORT; -#ifdef WINE_USE_LONG +#if !defined(__LP64__) && !defined(WINE_NO_LONG_TYPES) typedef long LONG, *PLONG; #else typedef int LONG, *PLONG; @@ -604,7 +604,7 @@ /* Macro to deal with LP64 <=> LLP64 differences in numeric constants with 'l' modifier */ #ifndef __MSABI_LONG -# if defined(_MSC_VER) || defined(__MINGW32__) || defined(__CYGWIN__) +#if !defined(__LP64__) && !defined(WINE_NO_LONG_TYPES) # define __MSABI_LONG(x) x ## l # else # define __MSABI_LONG(x) x @@ -5861,6 +5861,7 @@ #define ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES 9 #define ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS 10 #define ACTIVATION_CONTEXT_SECTION_COMPATIBILITY_INFO 11 +#define ACTIVATION_CONTEXT_SECTION_WINRT_ACTIVATABLE_CLASSES 12 typedef enum _JOBOBJECTINFOCLASS { @@ -6276,6 +6277,7 @@ #define InterlockedDecrement16 _InterlockedDecrement16 #define InterlockedExchange _InterlockedExchange #define InterlockedExchangeAdd _InterlockedExchangeAdd +#define InterlockedExchangeAdd64 _InterlockedExchangeAdd64 #define InterlockedExchangePointer _InterlockedExchangePointer #define InterlockedIncrement _InterlockedIncrement #define InterlockedIncrement16 _InterlockedIncrement16 @@ -6349,8 +6351,10 @@ #elif defined(__x86_64__) +#pragma intrinsic(_InterlockedExchangeAdd64) #pragma intrinsic(__faststorefence) +long long _InterlockedExchangeAdd64(long long volatile *, long long); void __faststorefence(void); static FORCEINLINE void MemoryBarrier(void) @@ -6367,6 +6371,10 @@ #elif defined(__aarch64__) +#pragma intrinsic(_InterlockedExchangeAdd64) + +long long _InterlockedExchangeAdd64(long long volatile *, long long); + static FORCEINLINE void MemoryBarrier(void) { __dmb(_ARM64_BARRIER_SY); @@ -6432,6 +6440,11 @@ return __sync_fetch_and_add( dest, incr ); } +static FORCEINLINE LONGLONG WINAPI InterlockedExchangeAdd64( LONGLONG volatile *dest, LONGLONG incr ) +{ + return __sync_fetch_and_add( dest, incr ); +} + static FORCEINLINE LONG WINAPI InterlockedIncrement( LONG volatile *dest ) { return __sync_add_and_fetch( dest, 1 ); @@ -6492,10 +6505,6 @@ #pragma intrinsic(_InterlockedCompareExchange128) unsigned char _InterlockedCompareExchange128(volatile __int64 *, __int64, __int64, __int64 *); -static FORCEINLINE unsigned char WINAPI InterlockedCompareExchange128( volatile __int64 *dest, __int64 xchg_high, __int64 xchg_low, __int64 *compare ) -{ - return _InterlockedCompareExchange128( dest, xchg_high, xchg_low, compare ); -} #else @@ -6515,7 +6524,14 @@ } #endif -#endif + +#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd64((LONGLONG *)(a), (b)) + +#else /* _WIN64 */ + +#define InterlockedExchangeAddSizeT(a, b) InterlockedExchangeAdd((LONG *)(a), (b)) + +#endif /* _WIN64 */ static FORCEINLINE void YieldProcessor(void) {
diff --git a/mingw-w64-tools/widl/src/hash.c b/mingw-w64-tools/widl/src/hash.c index d65a251..a50c090 100644 --- a/mingw-w64-tools/widl/src/hash.c +++ b/mingw-w64-tools/widl/src/hash.c
@@ -515,59 +515,6 @@ switch (PRIMARYLANGID(LANGIDFROMLCID(lcid))) { default: - fprintf(stderr, "Unknown lcid %x, treating as latin-based, please report\n", lcid); - /* .. Fall Through .. */ - case LANG_AFRIKAANS: case LANG_ALBANIAN: case LANG_ARMENIAN: - case LANG_ASSAMESE: case LANG_AZERI: case LANG_BASQUE: - case LANG_BELARUSIAN: case LANG_BENGALI: case LANG_BULGARIAN: - case LANG_CATALAN: case LANG_DANISH: case LANG_DIVEHI: - case LANG_DUTCH: case LANG_ENGLISH: case LANG_ESTONIAN: - case LANG_FAEROESE: case LANG_FINNISH: case LANG_FRENCH: - case LANG_GALICIAN: case LANG_GEORGIAN: case LANG_GERMAN: - case LANG_GUJARATI: case LANG_HINDI: case LANG_INDONESIAN: - case LANG_ITALIAN: case LANG_KANNADA: case LANG_KASHMIRI: - case LANG_KAZAK: case LANG_KONKANI: case LANG_KYRGYZ: - case LANG_LATVIAN: case LANG_LITHUANIAN: case LANG_MACEDONIAN: - case LANG_MALAY: case LANG_MALAYALAM: case LANG_MANIPURI: - case LANG_MARATHI: case LANG_MONGOLIAN: case LANG_NEPALI: - case LANG_ORIYA: case LANG_PORTUGUESE: case LANG_PUNJABI: - case LANG_ROMANIAN: case LANG_SANSKRIT: case LANG_SERBIAN: - case LANG_SINDHI: case LANG_SLOVENIAN: case LANG_SWAHILI: - case LANG_SWEDISH: case LANG_SYRIAC: case LANG_TAMIL: - case LANG_TATAR: case LANG_TELUGU: case LANG_THAI: - case LANG_UKRAINIAN: case LANG_URDU: case LANG_UZBEK: - case LANG_VIETNAMESE: case LANG_MALTESE: case LANG_IRISH: - case LANG_SAMI: case LANG_UPPER_SORBIAN: case LANG_TSWANA: - case LANG_XHOSA: case LANG_ZULU: case LANG_WELSH: - case LANG_BRETON: case LANG_SCOTTISH_GAELIC: case LANG_NEUTRAL: -/* some languages not in all windows versions or ReactOS */ -#ifdef LANG_MANX_GAELIC - case LANG_MANX_GAELIC: -#endif -#ifdef LANG_TAJIK - case LANG_TAJIK: -#endif -#ifdef LANG_ROMANSH - case LANG_ROMANSH: -#endif -#ifdef LANG_SUTU - case LANG_SUTU: -#endif -#ifdef LANG_TSONGA - case LANG_TSONGA: -#endif -#ifdef LANG_VENDA - case LANG_VENDA: -#endif -#ifdef LANG_ESPERANTO - case LANG_ESPERANTO: -#endif -#ifdef LANG_WALON - case LANG_WALON: -#endif -#ifdef LANG_CORNISH - case LANG_CORNISH: -#endif nOffset = 16; pnLookup = Lookup_16; break;
diff --git a/mingw-w64-tools/widl/src/parser.tab.c b/mingw-w64-tools/widl/src/parser.tab.c index f6e0c50..484fa99 100644 --- a/mingw-w64-tools/widl/src/parser.tab.c +++ b/mingw-w64-tools/widl/src/parser.tab.c
@@ -148,8 +148,8 @@ static var_t *reg_const(var_t *var); -static void push_namespace(const char *name); -static void pop_namespace(const char *name); +static void push_namespaces(str_list_t *names); +static void pop_namespaces(str_list_t *names); static void push_parameters_namespace(const char *name); static void pop_parameters_namespace(const char *name); @@ -1220,16 +1220,16 @@ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 3 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 3873 +#define YYLAST 3920 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 235 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 145 /* YYNRULES -- Number of rules. */ -#define YYNRULES 492 +#define YYNRULES 493 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 901 +#define YYNSTATES 903 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 465 @@ -1333,22 +1333,22 @@ 922, 923, 924, 925, 926, 927, 928, 931, 932, 935, 936, 937, 938, 939, 940, 941, 942, 943, 947, 948, 952, 953, 956, 961, 962, 963, 964, 965, 969, 970, - 974, 977, 981, 984, 988, 991, 995, 998, 999, 1003, - 1004, 1007, 1010, 1013, 1014, 1017, 1018, 1022, 1024, 1028, - 1029, 1030, 1033, 1037, 1038, 1042, 1043, 1043, 1043, 1047, - 1052, 1053, 1051, 1060, 1061, 1062, 1063, 1065, 1066, 1069, - 1069, 1082, 1086, 1087, 1091, 1094, 1097, 1102, 1103, 1104, - 1108, 1112, 1115, 1116, 1119, 1120, 1124, 1126, 1130, 1131, - 1135, 1136, 1137, 1141, 1143, 1144, 1148, 1149, 1150, 1151, - 1156, 1158, 1159, 1164, 1166, 1170, 1171, 1176, 1177, 1178, - 1179, 1183, 1191, 1193, 1194, 1199, 1201, 1205, 1206, 1213, - 1214, 1215, 1216, 1217, 1221, 1228, 1229, 1232, 1233, 1236, - 1243, 1244, 1249, 1250, 1254, 1255, 1256, 1257, 1258, 1259, - 1263, 1264, 1265, 1268, 1272, 1273, 1274, 1275, 1276, 1277, - 1278, 1279, 1280, 1281, 1285, 1286, 1287, 1290, 1297, 1299, - 1305, 1306, 1307, 1311, 1312, 1316, 1317, 1321, 1328, 1337, - 1338, 1342, 1343, 1347, 1349, 1350, 1351, 1355, 1356, 1361, - 1362, 1363, 1364 + 974, 977, 981, 984, 988, 991, 995, 996, 999, 1000, + 1004, 1005, 1008, 1011, 1014, 1015, 1018, 1019, 1023, 1025, + 1029, 1030, 1031, 1034, 1038, 1039, 1043, 1044, 1044, 1044, + 1048, 1053, 1054, 1052, 1061, 1062, 1063, 1064, 1066, 1067, + 1070, 1070, 1083, 1087, 1088, 1092, 1095, 1098, 1103, 1104, + 1105, 1109, 1113, 1116, 1117, 1120, 1121, 1125, 1127, 1131, + 1132, 1136, 1137, 1138, 1142, 1144, 1145, 1149, 1150, 1151, + 1152, 1157, 1159, 1160, 1165, 1167, 1171, 1172, 1177, 1178, + 1179, 1180, 1184, 1192, 1194, 1195, 1200, 1202, 1206, 1207, + 1214, 1215, 1216, 1217, 1218, 1222, 1229, 1230, 1233, 1234, + 1237, 1244, 1245, 1250, 1251, 1255, 1256, 1257, 1258, 1259, + 1260, 1264, 1265, 1266, 1269, 1273, 1274, 1275, 1276, 1277, + 1278, 1279, 1280, 1281, 1282, 1286, 1287, 1288, 1291, 1298, + 1300, 1306, 1307, 1308, 1312, 1313, 1317, 1318, 1322, 1329, + 1338, 1339, 1343, 1344, 1348, 1350, 1351, 1352, 1356, 1357, + 1362, 1363, 1364, 1365 }; #endif @@ -1451,12 +1451,12 @@ } #endif -#define YYPACT_NINF (-646) +#define YYPACT_NINF (-653) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-480) +#define YYTABLE_NINF (-481) #define yytable_value_is_error(Yyn) \ 0 @@ -1465,97 +1465,97 @@ STATE-NUM. */ static const yytype_int16 yypact[] = { - -646, 119, 1924, -646, -93, -646, -51, -33, 307, -646, - -646, -646, 307, -646, -47, -37, 307, -646, 308, -646, - -646, -646, -646, 96, 190, -646, -646, -646, -646, -646, - 307, 96, 210, -12, -646, 307, 18, 96, 385, -646, - -646, 338, 392, 385, -646, -646, 3673, -646, -646, -646, - -646, 33, -646, -646, -646, -646, -646, 0, 3007, 104, - 117, -646, -646, -646, 396, 69, -646, 120, -646, 154, - -646, 165, -646, 93, 169, 206, 178, 202, -646, -646, - -646, 296, 296, 296, 118, 3263, 204, -646, 296, 205, - 207, -646, 65, -646, -33, 244, -646, -646, -646, -646, - 357, -646, -646, 12, 143, -646, -646, -646, 208, 168, - -646, -646, 86, -646, 3263, -646, -646, 193, 189, -88, - -81, -646, 158, -646, 203, -646, -646, 209, -646, -646, - -646, 212, 213, -646, -646, -646, -646, -646, 214, 215, - -646, 220, -646, -646, -646, -646, 224, -646, -646, -646, - 225, -646, -646, -646, 227, 230, -646, -646, 234, -646, - -646, -646, -646, -646, 235, 238, 241, 242, 243, -646, - 245, -646, -646, 246, -646, 247, -646, -646, 249, 252, - -646, -646, 253, -646, -646, -646, -646, -646, -646, -646, - -646, -646, -646, -646, 254, -646, -646, 256, -646, 257, - 258, -646, -646, -646, -646, -646, -646, 259, -646, -646, - 260, -646, -646, -646, 261, -646, 262, -646, -646, 263, - 268, 269, 270, -646, -646, -646, 271, 272, -646, -646, - 273, 275, 276, -63, -646, -646, -646, 2071, 1122, 3263, - 307, 211, 279, 399, 307, 405, 415, 280, 282, 283, - 284, 286, -646, 118, 289, 293, -646, 216, 228, 3366, - -646, -646, -646, -646, -646, 294, -646, -646, -646, -646, - -646, -646, -646, -646, -646, -646, -646, -646, 118, 118, - -646, -646, 278, -16, -646, -646, -646, 296, -646, -646, - -646, 291, -646, -646, -646, -58, -646, -646, 520, 302, - -49, 113, -646, -646, 318, 331, 309, -646, 313, -646, - 3234, 532, 151, 307, 928, 3234, 540, 151, 928, 542, - 546, 928, 3234, 928, 549, 550, 928, 551, 928, 928, - 2577, 928, 928, 44, 555, 557, -45, 558, 928, 3263, - 928, 3234, 928, 3263, 134, 3263, 3263, 151, 223, 560, - 3263, 3673, 345, -646, 344, 353, -646, -646, -646, -646, - 358, -646, 359, -646, 360, -646, 361, 363, 364, -646, - -646, -646, 178, 307, -646, 3234, -646, -646, 365, -646, - 365, -74, -646, -646, -646, 366, 386, -646, -646, -646, - 396, 80, 380, -646, -91, -646, 2, 115, 367, -646, - 928, 807, 2577, -646, -646, 55, 65, -646, 369, -646, - 423, -646, 307, 371, 397, 370, -646, 307, 599, 599, - -646, 129, 211, 130, -646, 373, 401, 375, -646, -646, - 376, 377, -646, -646, -646, -646, -646, -646, -646, -646, - -646, 381, -646, 928, 928, 928, 928, 928, 928, 877, - 2790, -104, -646, 388, 408, 398, 390, 412, 2790, 393, - 394, -646, -99, 400, 402, 407, 410, 411, 413, 417, - 418, 1668, 420, 3234, 88, 422, -95, -646, 2790, -646, - -646, -646, 424, 425, 427, 428, 429, 419, 430, -76, - 432, 426, 2391, 433, -646, -646, -646, -646, -646, -646, - 434, 435, 437, 439, 403, -646, 440, 441, 442, -646, - 3673, -646, 629, -646, -646, -646, -646, -646, -646, -646, - -57, 118, 1551, 131, 144, 178, 423, 486, -646, -646, - -646, 3366, -646, 1414, 469, -50, 449, -646, -646, -646, - -646, 866, -646, 2687, 446, 474, -646, -646, -646, -646, - -646, -646, -66, -646, -646, 495, 470, -646, -646, 161, - 928, -646, -646, 477, -646, 53, 62, -646, 3234, -646, - 3234, 451, -646, 456, -646, 458, -646, 3131, -646, -646, - -646, 3411, 73, 73, 73, 73, 73, 73, -646, 2467, - 233, 3514, 296, 928, 928, 685, 928, 928, 928, 928, - 928, 928, 928, 928, 928, 928, 928, 928, 928, 928, - 928, 928, 928, 686, 928, 928, -646, -646, 540, 688, - -646, 928, -646, -646, 682, -646, -646, -646, -646, -646, - -646, -646, -646, -646, -646, -646, 88, -646, 2203, -646, - 88, -646, -646, -646, 87, -646, 928, -646, -646, -646, - -646, -646, -646, 928, -646, -646, -646, 3234, -646, -646, - -646, -646, -646, -646, 690, -646, -646, -646, -646, -39, - 465, -646, -646, 2577, -646, 497, 178, -646, 518, 3234, - 178, 59, -646, 178, -646, 69, -646, 423, 476, -646, - -646, -646, 502, 483, 1778, 482, -646, -646, -646, 2474, - 55, -646, 487, 484, 495, 3366, -646, -646, 307, 503, - -646, -646, -646, 88, 488, 118, 160, 307, -646, -646, - -646, -646, 233, -646, -646, 2350, -646, 233, -646, 485, - 94, 296, -646, 198, 198, -646, 1186, 1186, 137, 137, - 2117, 2809, 2762, 1117, 2288, 2816, 137, 137, 39, 39, - 73, 73, 73, -646, 2709, -646, -646, 489, -646, -646, - 52, -646, 491, 88, 492, -646, 2577, -646, -646, 493, - -646, -646, 423, -646, 178, 1268, 307, 494, 118, -646, - -646, 307, 423, 490, 499, -646, 69, -646, 514, -646, - -646, -646, -646, 3234, 500, -646, -646, -646, -646, -646, - 716, -646, -646, -35, -646, -646, 522, -646, -94, -646, - -646, 501, -646, 504, 51, -646, 505, 88, 506, -646, - 928, 2577, -646, -646, 928, -646, -646, -646, 52, -646, - -646, -646, 507, -646, 521, -646, -646, -34, 178, -646, - -646, -646, 396, -646, -646, 423, 1675, -646, 523, 524, - 928, -646, 88, -646, -646, -646, -646, 52, -646, -646, - -646, 73, 516, 2790, -646, -646, 3366, 519, -646, -646, - 69, -646, 178, -646, -646, -646, -646, 54, -646, -646, - 4, 2577, -646, 928, 526, -646, -646, 527, 517, 528, - 200, -646, -646, 200, -646, -646, 529, 178, -646, -646, - -646 + -653, 123, 1972, -653, -70, -653, -79, -40, 342, -653, + -653, -653, 342, -653, -38, -53, 342, -653, 375, -653, + -653, -653, -653, 69, 212, -653, -653, -653, -653, -653, + 342, 69, 221, 25, -653, 342, 54, 69, 498, -653, + -653, 376, 404, 498, -653, -653, 3720, -653, -653, -653, + -653, 1, -653, -653, -653, -653, -653, 57, 3054, 63, + 74, -653, -653, -653, 415, 97, -653, 93, -653, 99, + -653, 119, -653, 33, 125, 159, 134, 135, -653, -653, + -653, 17, 17, 17, 214, 3310, 143, -653, 17, 170, + 171, -653, 73, -653, -40, 145, -653, -653, -653, -653, + 325, -653, -653, -19, 156, -653, -653, -653, 174, 194, + -653, -653, 83, -653, 3310, -653, -653, 85, 180, -89, + -100, -653, 179, -653, 182, -653, -653, 185, -653, -653, + -653, 189, 197, -653, -653, -653, -653, -653, 202, 203, + -653, 207, -653, -653, -653, -653, 216, -653, -653, -653, + 220, -653, -653, -653, 224, 225, -653, -653, 228, -653, + -653, -653, -653, -653, 229, 231, 237, 239, 241, -653, + 243, -653, -653, 246, -653, 248, -653, -653, 249, 252, + -653, -653, 253, -653, -653, -653, -653, -653, -653, -653, + -653, -653, -653, -653, 254, -653, -653, 255, -653, 257, + 274, -653, -653, -653, -653, -653, -653, 275, -653, -653, + 276, -653, -653, -653, 279, -653, 281, -653, -653, 283, + 284, 286, 287, -653, -653, -653, 288, 289, -653, -653, + 292, 294, 295, -93, -653, -653, -653, 2119, 1170, 3310, + 342, 227, 244, 419, 342, 423, 435, 267, 301, 302, + 306, 307, -653, 214, 316, 318, -653, 327, 347, 3413, + -653, -653, -653, 551, -653, -653, 331, -653, -653, -653, + -653, -653, -653, -653, -653, -653, -653, -653, -653, 214, + 214, -653, -653, 328, -107, -653, -653, -653, 17, -653, + -653, -653, 334, -653, -653, -653, -49, -653, -653, 563, + 336, -59, 60, -653, -653, 365, 368, 345, -653, 348, + -653, 3281, 573, 105, 342, 967, 3281, 579, 105, 967, + 578, 580, 967, 3281, 967, 581, 582, 967, 584, 967, + 967, 2625, 967, 967, 49, 585, 588, -50, 592, 967, + 3310, 967, 3281, 967, 3310, 298, 3310, 3310, 105, 265, + 597, 3310, 3720, 380, -653, 362, 381, -653, -653, -653, + -653, 386, -653, 388, -653, 389, -653, 95, 391, 393, + -653, -653, -653, 134, 342, -653, 3281, -653, -653, 394, + -653, 394, -88, -653, -653, -653, 395, 417, -653, -653, + -653, 415, 128, 411, -653, -91, -653, -653, -5, 52, + 396, -653, 967, 142, 2625, -653, -653, 51, 73, -653, + 401, -653, 442, -653, 342, 403, 429, 405, -653, 342, + 634, 634, -653, 115, 227, 138, -653, 408, 436, 410, + -653, -653, 412, 413, -653, -653, -653, -653, -653, -653, + -653, -653, -653, 416, -653, 967, 967, 967, 967, 967, + 967, 881, 2838, -97, -653, 421, 444, 426, 424, 450, + 2838, 425, 427, -653, -95, 428, 430, 431, 434, 438, + 441, 443, 446, 1716, 447, 3281, 157, 448, -72, -653, + 2838, -653, -653, -653, 449, 451, 452, 453, 454, 456, + 457, -37, 460, 462, 2439, 463, -653, -653, -653, -653, + -653, -653, 465, 468, 469, 472, 433, -653, 473, 474, + 475, -653, 3720, -653, 660, -653, -653, -653, -653, -653, + -653, -653, -46, 214, 1599, 160, 161, 134, 442, 515, + -653, -653, -653, 3413, -653, 1462, 481, -63, 483, -653, + -653, -653, -653, 901, -653, 2735, 477, 508, -653, -653, + -653, -653, -653, -653, -21, -653, -653, 497, 503, -653, + -653, 167, 967, -653, -653, 511, -653, 42, 44, -653, + 3281, -653, 3281, 485, -653, 490, -653, 491, -653, 3178, + -653, -653, -653, 3458, 43, 43, 43, 43, 43, 43, + -653, 2515, 282, 3561, 17, 967, 967, 718, 967, 967, + 967, 967, 967, 967, 967, 967, 967, 967, 967, 967, + 967, 967, 967, 967, 967, 719, 967, 967, -653, -653, + 579, 717, -653, 967, -653, -653, 715, -653, -653, -653, + -653, -653, -653, -653, -653, -653, -653, -653, 157, -653, + 2251, -653, 157, -653, -653, -653, -73, -653, 967, -653, + -653, -653, -653, -653, -653, 967, -653, -653, -653, 3281, + -653, -653, -653, -653, -653, -653, 720, -653, -653, -653, + -653, -47, 494, -653, -653, 2625, -653, 522, 134, -653, + 543, 3281, 134, 31, -653, 134, -653, 97, -653, 442, + 500, -653, -653, -653, 523, 504, 1826, 501, -653, -653, + -653, 2522, 51, -653, 507, 506, 497, 3413, -653, -653, + 342, 525, -653, -653, -653, 157, 512, 214, 168, 342, + -653, -653, -653, -653, 282, -653, -653, 2398, -653, 282, + -653, 502, -14, 17, -653, 278, 278, -653, 583, 583, + 250, 250, 728, 2164, 2810, 1089, 2336, 2854, 250, 250, + 215, 215, 43, 43, 43, -653, 2757, -653, -653, 519, + -653, -653, 80, -653, 521, 157, 524, -653, 2625, -653, + -653, 527, -653, -653, 442, -653, 134, 1316, 342, 529, + 214, -653, -653, 342, 442, 526, 535, -653, 97, -653, + 534, -653, -653, -653, -653, 3281, 536, -653, -653, -653, + -653, -653, 753, -653, -653, -43, -653, -653, 559, -653, + -101, -653, -653, 538, -653, 537, 144, -653, 540, 157, + 546, -653, 967, 2625, -653, -653, 967, -653, -653, -653, + 80, -653, -653, -653, 547, -653, 557, -653, -653, -31, + 134, -653, -653, -653, 415, -653, -653, 442, 1723, -653, + 542, 552, 967, -653, 157, -653, -653, -653, -653, 80, + -653, -653, -653, 43, 549, 2838, -653, -653, 3413, 544, + -653, -653, 97, -653, 134, -653, -653, -653, -653, 10, + -653, -653, -15, 2625, -653, 967, 575, -653, -653, 556, + 553, 586, 222, -653, -653, 222, -653, -653, 558, 134, + -653, -653, -653 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -1563,18 +1563,18 @@ means the default is an error. */ static const yytype_int16 yydefact[] = { - 11, 0, 88, 1, 303, 55, 463, 473, 0, 314, - 306, 325, 0, 391, 0, 0, 0, 313, 301, 315, - 387, 312, 316, 317, 0, 390, 319, 326, 327, 324, - 0, 317, 0, 0, 389, 0, 0, 317, 0, 321, - 388, 301, 301, 311, 454, 307, 105, 2, 27, 26, - 56, 0, 50, 28, 53, 28, 25, 0, 89, 456, - 0, 330, 455, 308, 0, 0, 466, 0, 19, 0, + 11, 0, 88, 1, 303, 55, 464, 474, 0, 314, + 306, 325, 0, 392, 0, 0, 0, 313, 301, 315, + 388, 312, 316, 317, 0, 391, 319, 326, 327, 324, + 0, 317, 0, 0, 390, 0, 0, 317, 0, 321, + 389, 301, 301, 311, 455, 307, 105, 2, 27, 26, + 56, 0, 50, 28, 53, 28, 25, 0, 89, 457, + 0, 330, 456, 308, 0, 0, 467, 0, 19, 0, 23, 0, 21, 0, 0, 0, 48, 0, 17, 16, - 24, 398, 398, 398, 0, 0, 458, 464, 398, 0, - 460, 328, 0, 4, 473, 0, 303, 304, 344, 340, - 0, 5, 351, 457, 0, 302, 318, 323, 0, 365, - 322, 346, 0, 342, 0, 320, 309, 459, 0, 461, + 24, 399, 399, 399, 0, 0, 459, 465, 399, 0, + 461, 328, 0, 4, 474, 0, 303, 304, 344, 340, + 0, 5, 352, 458, 0, 302, 318, 323, 0, 366, + 322, 346, 0, 342, 0, 320, 309, 460, 0, 462, 0, 310, 0, 107, 0, 109, 110, 0, 111, 112, 113, 0, 0, 116, 117, 118, 119, 120, 0, 0, 123, 0, 125, 126, 127, 128, 0, 130, 131, 132, @@ -1583,117 +1583,117 @@ 0, 154, 155, 0, 157, 0, 159, 160, 163, 0, 164, 165, 0, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 0, 179, 180, 0, 182, 0, - 0, 185, 186, 187, 188, 452, 189, 0, 191, 450, + 0, 185, 186, 187, 188, 453, 189, 0, 191, 451, 0, 193, 194, 195, 0, 197, 0, 199, 200, 0, - 0, 0, 0, 205, 451, 206, 0, 0, 210, 211, + 0, 0, 0, 205, 452, 206, 0, 0, 210, 211, 0, 0, 0, 0, 91, 215, 51, 88, 88, 0, - 0, 88, 0, 301, 0, 301, 301, 0, 456, 0, - 0, 0, 379, 0, 458, 460, 52, 303, 465, 0, - 18, 22, 20, 12, 15, 0, 49, 381, 14, 402, - 399, 401, 400, 218, 219, 220, 221, 392, 0, 0, - 305, 406, 442, 405, 298, 456, 458, 398, 460, 394, - 54, 0, 485, 484, 486, 0, 481, 474, 0, 0, - 0, 88, 71, 366, 0, 0, 0, 284, 0, 290, + 0, 88, 0, 301, 0, 301, 301, 0, 457, 0, + 0, 0, 380, 0, 459, 461, 52, 303, 466, 0, + 18, 22, 20, 0, 12, 15, 0, 49, 382, 14, + 403, 400, 402, 401, 218, 219, 220, 221, 393, 0, + 0, 305, 407, 443, 406, 298, 457, 459, 399, 461, + 395, 54, 0, 486, 485, 487, 0, 482, 475, 0, + 0, 0, 88, 71, 367, 0, 0, 0, 284, 0, + 290, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 237, 0, 0, 0, 0, 0, 0, + 0, 237, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 105, 90, 72, 0, 0, 45, 42, 43, + 44, 0, 36, 0, 40, 0, 38, 0, 0, 0, + 34, 33, 41, 48, 0, 386, 0, 89, 46, 458, + 74, 460, 462, 75, 348, 348, 0, 360, 297, 329, + 333, 0, 334, 336, 338, 0, 347, 11, 0, 0, + 0, 405, 0, 0, 77, 409, 396, 0, 0, 481, + 0, 70, 0, 7, 0, 0, 228, 233, 229, 0, + 0, 0, 463, 88, 88, 88, 104, 0, 0, 0, + 217, 216, 0, 0, 248, 239, 240, 241, 245, 246, + 247, 242, 243, 0, 244, 0, 0, 0, 0, 0, + 0, 0, 282, 0, 280, 0, 0, 99, 0, 0, + 283, 0, 0, 94, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 428, 0, 0, 235, + 238, 96, 97, 98, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 450, 445, 446, 447, + 448, 449, 0, 0, 0, 0, 471, 473, 0, 0, + 0, 92, 105, 8, 0, 35, 39, 37, 31, 30, + 29, 76, 0, 0, 88, 88, 88, 48, 0, 378, + 331, 335, 337, 0, 332, 88, 0, 88, 0, 394, + 404, 408, 444, 0, 87, 0, 0, 81, 78, 79, + 492, 490, 493, 491, 0, 488, 483, 476, 0, 231, + 234, 88, 0, 363, 364, 368, 59, 0, 0, 454, + 0, 285, 0, 0, 469, 89, 291, 0, 106, 0, + 108, 209, 114, 0, 272, 271, 270, 273, 268, 269, + 464, 0, 416, 0, 399, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 237, 0, 0, 0, 0, 0, 0, 0, - 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 105, 90, 72, 0, 0, 45, 42, 43, 44, - 0, 36, 0, 40, 0, 38, 0, 0, 0, 34, - 33, 41, 48, 0, 385, 0, 89, 46, 457, 74, - 459, 461, 75, 347, 347, 0, 359, 297, 329, 333, - 0, 334, 336, 338, 0, 11, 0, 0, 0, 404, - 0, 0, 77, 408, 395, 0, 0, 480, 0, 70, - 0, 7, 0, 0, 228, 233, 229, 0, 0, 0, - 462, 88, 88, 88, 104, 0, 0, 0, 217, 216, - 0, 0, 248, 239, 240, 241, 245, 246, 247, 242, - 243, 0, 244, 0, 0, 0, 0, 0, 0, 0, - 282, 0, 280, 0, 0, 99, 0, 0, 283, 0, - 0, 94, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 427, 0, 0, 235, 238, 96, - 97, 98, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 449, 444, 445, 446, 447, 448, - 0, 0, 0, 0, 470, 472, 0, 0, 0, 92, - 105, 8, 0, 35, 39, 37, 31, 30, 29, 76, - 0, 0, 88, 88, 88, 48, 0, 377, 331, 335, - 337, 0, 332, 88, 0, 88, 0, 393, 403, 407, - 443, 0, 87, 0, 0, 81, 78, 79, 491, 489, - 492, 490, 0, 487, 482, 475, 0, 231, 234, 88, - 0, 362, 363, 367, 59, 0, 0, 453, 0, 285, - 0, 0, 468, 89, 291, 0, 106, 0, 108, 209, - 114, 0, 272, 271, 270, 273, 268, 269, 463, 0, - 415, 0, 398, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 115, 121, 0, 0, - 122, 0, 129, 133, 0, 137, 138, 141, 147, 148, - 149, 150, 151, 153, 156, 158, 427, 392, 77, 432, - 427, 429, 428, 84, 424, 162, 237, 161, 166, 178, - 181, 183, 184, 0, 192, 196, 198, 0, 201, 202, - 204, 203, 207, 208, 0, 212, 213, 214, 93, 0, - 0, 28, 370, 77, 435, 467, 48, 47, 0, 89, - 48, 0, 348, 48, 345, 360, 361, 0, 0, 339, - 13, 353, 0, 0, 0, 0, 86, 85, 409, 0, - 0, 483, 479, 0, 475, 0, 230, 232, 0, 0, - 60, 57, 58, 0, 460, 0, 458, 299, 289, 288, - 101, 103, 415, 279, 392, 77, 419, 415, 416, 0, - 412, 398, 396, 261, 262, 274, 255, 256, 259, 260, - 250, 251, 0, 252, 253, 254, 258, 257, 264, 263, - 266, 267, 265, 275, 0, 281, 100, 0, 95, 83, - 427, 392, 0, 427, 0, 423, 77, 431, 236, 0, - 102, 471, 0, 10, 48, 88, 0, 0, 0, 386, - 341, 0, 0, 0, 0, 343, 373, 374, 378, 46, - 355, 354, 357, 0, 0, 296, 358, 82, 80, 488, - 0, 478, 476, 0, 364, 368, 437, 440, 0, 287, - 294, 0, 300, 0, 415, 392, 0, 427, 0, 411, - 0, 77, 418, 397, 0, 278, 124, 422, 427, 433, - 426, 430, 0, 190, 0, 73, 32, 0, 48, 436, - 384, 382, 0, 349, 350, 0, 88, 356, 0, 0, - 0, 439, 0, 286, 222, 277, 410, 427, 420, 414, - 417, 276, 0, 249, 425, 434, 0, 0, 369, 383, - 375, 376, 48, 477, 6, 438, 441, 0, 413, 421, - 0, 77, 380, 0, 0, 469, 223, 0, 0, 0, - 88, 9, 371, 88, 293, 225, 0, 48, 224, 292, - 372 + 0, 0, 0, 0, 0, 0, 0, 0, 115, 121, + 0, 0, 122, 0, 129, 133, 0, 137, 138, 141, + 147, 148, 149, 150, 151, 153, 156, 158, 428, 393, + 77, 433, 428, 430, 429, 84, 425, 162, 237, 161, + 166, 178, 181, 183, 184, 0, 192, 196, 198, 0, + 201, 202, 204, 203, 207, 208, 0, 212, 213, 214, + 93, 0, 0, 28, 371, 77, 436, 468, 48, 47, + 0, 89, 48, 0, 349, 48, 345, 361, 362, 0, + 0, 339, 13, 354, 0, 0, 0, 0, 86, 85, + 410, 0, 0, 484, 480, 0, 476, 0, 230, 232, + 0, 0, 60, 57, 58, 0, 461, 0, 459, 299, + 289, 288, 101, 103, 416, 279, 393, 77, 420, 416, + 417, 0, 413, 399, 397, 261, 262, 274, 255, 256, + 259, 260, 250, 251, 0, 252, 253, 254, 258, 257, + 264, 263, 266, 267, 265, 275, 0, 281, 100, 0, + 95, 83, 428, 393, 0, 428, 0, 424, 77, 432, + 236, 0, 102, 472, 0, 10, 48, 88, 0, 0, + 0, 387, 341, 0, 0, 0, 0, 343, 374, 375, + 379, 46, 356, 355, 358, 0, 0, 296, 359, 82, + 80, 489, 0, 479, 477, 0, 365, 369, 438, 441, + 0, 287, 294, 0, 300, 0, 416, 393, 0, 428, + 0, 412, 0, 77, 419, 398, 0, 278, 124, 423, + 428, 434, 427, 431, 0, 190, 0, 73, 32, 0, + 48, 437, 385, 383, 0, 350, 351, 0, 88, 357, + 0, 0, 0, 440, 0, 286, 222, 277, 411, 428, + 421, 415, 418, 276, 0, 249, 426, 435, 0, 0, + 370, 384, 376, 377, 48, 478, 6, 439, 442, 0, + 414, 422, 0, 77, 381, 0, 0, 470, 223, 0, + 0, 0, 88, 9, 372, 88, 293, 225, 0, 48, + 224, 292, 373 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -646, -646, -646, -646, -646, -646, -646, 337, -646, -52, - -646, -54, -311, -1, -646, 336, -646, -646, -646, -646, - -646, -646, -646, 37, -575, -646, -646, -296, -258, -234, - -2, -646, -646, -646, 443, -261, -646, -646, -287, -189, - -73, -646, -646, -646, -646, -646, 201, 16, 421, 116, - 299, -646, -285, -316, -646, -646, -646, -646, -130, -337, - -646, 71, -646, 63, -6, -70, -251, 153, 188, -229, - -244, -255, 236, -645, 15, 38, 29, 40, 30, 43, - 45, 382, -646, 35, -646, -646, -646, -646, -646, 60, - -7, 21, -646, -646, 46, -646, -646, -646, -646, 47, - -646, -646, -646, -646, 50, -646, -646, -375, -593, 7, - 196, -55, -62, -228, -646, -646, -646, -619, -646, -633, - -646, -559, -646, -646, -646, -78, -646, 525, -646, 444, - 11, -379, 31, -646, 14, -646, 677, 75, -646, -646, - 79, -646, 378, -646, 83 + -653, -653, -653, -653, -653, -653, -653, 392, -653, -52, + -653, 12, -266, -1, -653, 369, -653, -653, -653, -653, + -653, -653, -653, 21, -559, -653, -653, -286, -241, -220, + -2, -653, -653, -653, 487, -282, -653, -653, -298, -221, + -80, -653, -653, -653, -653, -653, 245, 16, 464, 163, + 420, -653, -280, -271, -653, -653, -653, -653, -103, -331, + -653, 111, -653, 48, -6, -64, -254, 81, 242, -217, + -245, -252, 285, -646, 9, 23, 13, 28, 15, 29, + 30, 432, -653, 20, -653, -653, -653, -653, -653, 98, + 34, 6, -653, -653, 35, -653, -653, -653, -653, 36, + -653, -653, -653, -653, 37, -653, -653, -380, -555, 7, + 232, -42, -55, -192, -653, -653, -653, -626, -653, -652, + -653, -464, -653, -653, -653, -35, -653, 561, -653, 479, + 11, -293, -8, -653, 14, -653, 726, 120, -653, -653, + 121, -653, 422, -653, 126 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - 0, 1, 47, 300, 48, 669, 356, 2, 395, 237, - 671, 522, 267, 357, 50, 565, 51, 52, 53, 54, - 358, 247, 55, 359, 544, 545, 546, 547, 639, 57, - 376, 233, 462, 482, 720, 424, 490, 425, 234, 430, - 640, 877, 886, 413, 414, 415, 416, 285, 476, 477, - 450, 451, 452, 459, 421, 569, 574, 423, 895, 896, - 794, 60, 811, 104, 61, 641, 62, 107, 63, 64, - 65, 66, 393, 394, 360, 361, 362, 363, 364, 365, - 366, 523, 682, 367, 75, 535, 694, 76, 527, 562, - 563, 368, 417, 709, 369, 776, 897, 788, 688, 370, - 386, 783, 784, 242, 371, 81, 82, 83, 397, 474, - 590, 269, 85, 282, 283, 728, 818, 729, 730, 642, - 764, 643, 644, 675, 851, 807, 808, 284, 500, 235, - 286, 87, 88, 89, 288, 506, 93, 703, 704, 94, - 95, 295, 296, 552, 553 + 0, 1, 47, 301, 48, 671, 357, 2, 397, 237, + 673, 524, 268, 358, 50, 567, 51, 52, 53, 54, + 359, 247, 55, 360, 546, 547, 548, 549, 641, 57, + 377, 233, 464, 484, 722, 426, 492, 427, 234, 432, + 642, 879, 888, 415, 416, 417, 418, 286, 478, 479, + 452, 453, 454, 461, 423, 571, 576, 425, 897, 898, + 796, 60, 813, 104, 61, 643, 62, 107, 63, 64, + 65, 66, 394, 395, 361, 362, 363, 364, 365, 366, + 367, 525, 684, 368, 75, 537, 696, 76, 529, 564, + 565, 369, 419, 711, 370, 778, 899, 790, 690, 371, + 387, 785, 786, 242, 372, 81, 82, 83, 399, 476, + 592, 270, 85, 283, 284, 730, 820, 731, 732, 644, + 766, 645, 646, 677, 853, 809, 810, 285, 502, 235, + 287, 87, 88, 89, 289, 508, 93, 705, 706, 94, + 95, 296, 297, 554, 555 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1701,786 +1701,796 @@ number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 58, 49, 98, 238, 392, 463, 99, 375, 389, 84, - 102, 279, 105, 86, 281, 391, 90, 67, 59, 270, - 270, 270, 537, 77, 109, 403, 270, 271, 272, 113, - 390, 69, 71, 289, 472, 105, 105, 74, 465, 56, - 68, 468, 70, 470, 760, 72, 475, 73, 78, 79, - 398, 399, 80, 487, 453, 96, 595, 97, 258, 710, - 803, 519, 239, 762, 509, 253, 410, 412, 710, 254, - 592, 479, 255, 249, 248, 692, 772, 759, 280, 252, - 806, 765, -479, 548, 540, 571, 575, 250, 251, 304, - 595, 96, -303, 97, 291, 273, 273, 883, 777, 308, - 13, 13, 615, 813, 118, 120, -303, 624, 819, 205, - 265, 646, 852, 209, 884, 531, 287, 30, 96, 3, - 97, 96, 532, 97, 292, 549, 240, 781, 457, 616, - 646, 814, 273, 91, 625, 853, 274, 274, 647, 293, - 700, -66, -303, 351, 224, 306, 305, 294, 406, 309, - 816, 534, 593, 594, 595, 672, -303, 655, 503, 273, - 428, -304, 273, 429, 13, 352, 556, 701, 828, 538, - 407, 531, 708, 274, 782, 673, 480, 46, 849, 867, - 279, 390, 411, 281, 110, 100, 241, 568, 570, 570, - 115, 832, 773, 101, 92, 856, 275, 275, 693, 108, - 274, 827, 592, 274, 830, 279, 279, 106, 281, 281, - 531, 401, 731, 111, 684, 595, 402, 887, 481, 806, - 112, 880, 857, 668, 550, 270, 116, 276, 276, 504, - 505, 121, 404, 275, 374, 58, 58, 105, 379, 105, - 105, -62, -303, 431, 84, 84, 862, 280, 86, 86, - 114, 90, 90, 59, 59, 610, 611, 612, 859, 551, - 275, 494, 236, 275, 276, 613, 614, 724, 637, 864, - 373, 686, 280, 280, 16, 707, 392, 273, 401, 401, - 389, 259, 685, 725, 638, 885, 711, 391, 678, 681, - 681, 276, 259, 674, 276, 712, 529, 390, 878, 613, - 614, 570, 390, 520, 637, 757, 888, 280, 118, 120, - 96, 103, 97, 97, 401, 401, 721, 426, 274, 766, - 638, 401, 454, 263, 279, 412, 821, 281, 473, 464, - 755, 277, 726, -61, 277, 495, 496, 497, 498, 499, - 46, 117, 557, 97, -226, 13, 256, 278, 491, 260, - 278, 608, 609, 610, 611, 612, 46, 46, 46, 298, - 567, 572, 680, 613, 614, 779, 299, 280, 769, 780, - 488, 46, 785, 301, 493, 683, 501, 502, 275, 20, - 303, 508, 521, 261, 528, 537, 767, 591, 46, -295, - 310, 280, -227, -295, 262, 119, 770, 97, 264, 257, - 473, 97, 378, 798, 97, 25, 280, 266, 380, 276, - 97, 561, 608, 609, 610, 611, 612, 536, 381, 307, - 97, 573, -64, -303, 613, 614, 4, 46, 97, 894, - 11, 268, 787, -63, 290, 311, -65, 302, 46, 537, - -331, 312, 388, 786, 313, 314, 315, 316, 279, 724, - 392, 281, 317, 537, 389, 34, 318, 319, 390, 320, - 401, 391, 321, 835, 726, 725, 322, 323, 280, 726, - 324, 40, 822, 325, 326, 327, 390, 328, 329, 330, - 636, 331, 537, 23, 332, 333, 334, 810, 335, 336, - 337, 338, 339, 340, 341, 342, 26, 27, 28, 29, - 343, 344, 345, 346, 347, 348, 31, 349, 350, 377, - 382, -67, 400, 383, 384, 280, 385, 727, -68, 591, - 679, 677, -69, 405, 396, 408, 418, 868, 834, 84, - 270, 58, 49, 86, 875, 409, 90, 732, 59, 419, - 84, 427, 420, 390, 86, 422, 455, 90, 67, 59, - 839, 460, 37, 842, 77, 461, 726, 39, 466, 467, - 469, 882, 69, 71, 483, 763, 484, 486, 74, 507, - 56, 68, 510, 70, 511, 713, 72, 715, 73, 78, - 79, 716, 714, 80, 454, 512, 900, 513, 514, 515, - 871, 516, 517, 518, 526, -303, 530, 525, 889, 555, - 539, 870, 558, 559, 560, 564, 576, 577, 578, 579, - 580, 392, 678, 581, 618, 389, 390, 458, 621, 775, - 458, 617, 391, 620, 619, 653, 622, 623, 471, 664, - 280, 478, 657, 626, 280, 627, 473, 390, 670, 478, - 628, 492, 279, 629, 630, 281, 631, 812, 687, 727, - 632, 633, 817, 635, 727, 645, 570, 648, 649, 570, - 650, 651, 652, 654, 454, 656, 659, 660, 661, 270, - 662, 473, 663, 665, 666, 667, 823, 691, 695, 698, - 699, 702, 705, 708, 717, 718, 253, 719, 735, 753, - 254, 758, 793, 255, 756, 248, 771, 473, 774, 458, - 543, 84, 561, 778, 241, 279, 789, 280, 281, 280, - 790, 280, 791, 796, 92, 801, 805, 809, 820, 843, - 845, 848, 826, 473, 829, 831, 833, 838, 844, 847, - 850, 854, 533, 866, 890, 846, 893, 855, 858, 860, - 865, 727, 582, 583, 584, 585, 586, 587, 589, 879, - 892, 881, 873, 874, 280, 566, 891, 280, 899, 456, - 706, 489, 768, 898, 473, 795, 524, 689, 804, 837, - 561, 297, 280, 58, 876, 840, 841, 722, 387, 802, - 485, 800, 84, 799, 554, 0, 86, 0, 0, 90, - 0, 59, 0, 0, 0, 0, 0, 0, 0, 0, - 253, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 432, 280, 0, 433, 434, 435, 436, 437, 438, 473, - 0, 0, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 869, 0, 0, 0, - 585, 0, 0, 0, 679, 677, 280, 0, 0, 0, - 0, 280, 0, 84, 0, 0, 0, 86, 0, 0, - 90, 0, 59, 0, 0, 0, 0, 0, 0, 432, - 0, 0, 433, 434, 435, 436, 437, 438, 0, 473, - 432, 0, 588, 433, 434, 435, 436, 437, 438, 0, - 0, 439, 733, 734, 0, 736, 737, 738, 739, 740, - 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, - 751, 752, 0, 754, 9, 0, 10, 0, 0, 0, - 458, 0, 11, 0, 0, 0, 13, 0, 0, 0, - 0, 432, 0, 0, 433, 434, 435, 436, 437, 438, - 0, 0, 0, 440, 0, 478, 0, 0, 17, 0, - 439, 0, 0, 0, 243, 19, 0, 0, 0, 0, - 20, 439, 0, 0, 0, 21, 0, 0, 22, 0, - 0, 0, 0, 0, 0, 23, 0, 0, 441, 0, - 0, 0, 0, 0, 0, 0, 25, 0, 26, 27, - 28, 29, 442, 0, 0, 0, 0, 0, 31, 0, - 0, 0, 440, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 439, 440, 0, 0, 0, 0, 443, 0, - 0, 444, 445, 541, 0, 0, 447, 448, 0, 0, - 0, 0, 0, 0, 0, 542, 34, 441, 0, 449, - 0, 0, 0, 36, 37, 38, 0, 0, 441, 39, - 0, 442, 40, 0, 0, 0, 245, 0, 0, 0, - 0, 0, 442, 0, 440, 246, 0, 43, 0, 0, - 0, 0, 0, 0, 0, 44, 45, 443, 0, 0, - 444, 445, 446, 0, 0, 447, 448, 0, 443, 0, - 0, 444, 445, 446, 696, 0, 447, 448, 449, 441, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 449, - 0, 0, 0, 442, 0, 0, 0, 0, 0, 861, - 0, 0, 0, 863, 0, 4, 5, 6, 0, 0, - 0, 0, 593, 594, 595, 596, 597, 598, 599, 443, - 0, 0, 444, 445, 446, 0, 0, 447, 448, 458, - 0, 0, 0, 8, 0, 0, 0, 0, 0, 9, - 449, 10, 0, 0, 0, 0, 0, 11, 12, 0, - 0, 13, 0, 0, 0, 0, 0, 0, 14, 0, - 354, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 58, 49, 98, 238, 280, 390, 99, 393, 77, 84, + 102, 67, 105, 86, 392, 69, 90, 71, 59, 539, + 282, 376, 74, 56, 109, 68, 271, 271, 271, 113, + 70, 72, 73, 271, 455, 105, 105, 78, 79, 80, + 272, 273, 391, 405, 467, 474, 290, 470, 712, 472, + 712, 465, 477, 885, 511, 96, 412, 97, 258, 489, + 597, 805, 694, 808, 252, 253, 13, 249, 774, 254, + 886, 250, 255, 251, 248, -480, 481, 288, 281, 550, + 309, 764, 414, 96, 762, 97, 305, 400, 401, 118, + 120, -303, -303, 573, 577, 266, 274, 459, 815, 783, + 20, 13, 292, 821, 205, 854, 307, 521, 209, 617, + 30, 626, 110, 352, 430, 533, 779, 431, 115, 239, + 403, 551, 534, 3, 274, 404, 25, 505, 855, 13, + 310, 542, 293, -304, 648, 353, 618, 275, 627, 224, + -66, -303, -303, 306, 536, 434, 784, 294, 435, 436, + 437, 438, 439, 440, 403, 295, 91, 408, 594, 768, + 96, 649, 97, 533, 46, 275, 674, 558, 818, 648, + 851, 816, 413, 280, 761, 710, 34, 101, 767, 409, + 106, 482, 869, 240, 775, 702, 675, 92, 274, 282, + 858, 533, 40, 13, 100, 391, 657, 276, 889, 280, + 280, 274, 808, 570, 572, 572, 695, 540, 830, 834, + -62, -303, 703, 403, 670, 282, 282, 96, 823, 97, + 552, 108, 882, 483, 111, 276, 441, 16, 277, 275, + 236, 374, 597, 271, 375, 58, 58, 105, 380, 105, + 105, 887, 275, 241, 84, 84, 406, 281, 86, 86, + 433, 90, 90, 59, 59, 553, 277, 112, 274, 263, + 299, 686, 859, 264, 864, 595, 596, 597, 278, 615, + 616, 506, 507, 281, 281, 713, 688, 714, 442, 390, + 116, 393, 709, 687, 279, 121, 114, 46, 392, 276, + 594, -226, -61, 118, 120, 597, 639, 723, 829, 275, + 733, 832, 276, 256, 680, 683, 683, 403, 281, 259, + 522, 391, 640, 443, -64, -303, 391, 572, 428, 280, + 277, 263, 260, 456, 890, 518, 274, 444, 261, 475, + 466, 676, 490, 277, 300, 282, 495, 757, 503, 504, + 259, 414, 46, 510, 531, 96, 569, 97, 262, 493, + 559, 728, 759, 445, 265, 861, 446, 447, 543, 276, + 726, 449, 450, 267, 269, 46, 866, 275, 281, 574, + 544, 403, -63, 639, 451, 771, 727, 772, 103, 117, + 97, 97, 539, 523, 403, 530, 302, 46, 46, 640, + 277, 682, 685, 281, 46, 880, 593, -295, -227, 291, + -65, -295, 475, 303, 538, 769, 304, 119, 281, 97, + 308, 311, 781, 563, 312, 800, 782, 313, 257, 787, + 97, 314, 379, 575, 97, 496, 381, 276, 97, 315, + 278, 612, 613, 614, 316, 317, 539, 789, 382, 318, + 97, 615, 616, 280, 788, 4, 279, 97, 319, 46, + 539, 896, 320, 390, 46, 393, 321, 322, 277, 282, + 323, 324, 392, 325, 610, 611, 612, 613, 614, 326, + 281, 327, 391, 328, 378, 329, 615, 616, 330, 539, + 331, 332, 638, 728, 333, 334, 335, 336, 728, 337, + 391, 824, 610, 611, 612, 613, 614, 383, 726, 497, + 498, 499, 500, 501, 615, 616, 338, 339, 340, 403, + 837, 341, 729, 342, 727, 343, 344, 281, 345, 346, + 347, 348, 681, 679, 349, 812, 350, 351, 593, 836, + -67, 84, 384, 58, 49, 86, 385, 386, 90, 271, + 59, 77, 84, 11, 67, -68, 86, -69, 69, 90, + 71, 59, 734, 389, 396, 74, 56, 391, 68, -331, + 765, 398, 402, 70, 72, 73, 407, 844, 410, 411, + 78, 79, 80, 420, 870, 728, 421, 715, 422, 717, + 424, 877, 429, 718, 716, 457, 456, 462, 841, 463, + 468, 469, 513, 471, 485, 873, 23, 486, 595, 596, + 597, 488, 872, 600, 601, 891, 509, 512, 884, 26, + 27, 28, 29, 514, 390, 515, 393, 516, 517, 31, + 519, 777, 520, 392, -303, 528, 527, 532, 680, 541, + 391, 557, 281, 902, 560, 561, 281, 280, 475, 562, + 566, 578, 579, 580, 729, 581, 582, 819, 583, 729, + 620, 391, 621, 282, 619, 814, 623, 622, 624, 666, + 625, 628, 655, 629, 630, 37, 456, 631, 659, 672, + 39, 632, 572, 475, 633, 572, 634, 689, 271, 635, + 637, 647, 650, 704, 651, 652, 653, 654, 253, 693, + 656, 825, 254, 658, 795, 255, 661, 248, 662, 475, + 280, 663, 664, 84, 563, 665, 667, 668, 669, 281, + 700, 281, 697, 281, 701, 707, 282, 710, 719, 720, + 721, 737, 755, 758, 760, 475, 773, 776, 780, 241, + 791, 792, 798, 793, 92, 822, 729, 803, 807, 460, + 847, 811, 460, 595, 596, 597, 598, 599, 600, 601, + 473, 603, 828, 480, 831, 845, 281, 833, 850, 281, + 835, 480, 840, 494, 846, 849, 475, 852, 856, 868, + 857, 875, 563, 860, 281, 58, 883, 842, 843, 862, + 867, 876, 881, 892, 84, 893, 894, 901, 86, 535, + 568, 90, 900, 59, 895, 608, 609, 610, 611, 612, + 613, 614, 253, 848, 458, 491, 708, 797, 806, 615, + 616, 770, 839, 281, 388, 724, 487, 526, 691, 878, + 298, 475, 460, 545, 281, 802, 804, 0, 801, 0, + 556, 0, 0, 0, 0, 0, 0, 0, 871, 0, + 0, 0, 0, 0, 0, 0, 681, 679, 281, 0, + 0, 0, 0, 281, 0, 84, 0, 0, 0, 86, + 0, 0, 90, 0, 59, 584, 585, 586, 587, 588, + 589, 591, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 475, 0, 0, 434, 0, 590, 435, 436, 437, + 438, 439, 440, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 434, 0, 0, 435, 436, 437, + 438, 439, 440, 0, 0, 0, 0, 0, 9, 0, + 10, 0, 0, 0, 0, 0, 11, 0, 0, 0, + 13, 0, 0, 0, 0, 0, 0, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 0, 0, 0, + 0, 0, 17, 0, 615, 616, 0, 0, 243, 19, + 0, 0, 0, 587, 20, 441, 0, 0, 0, 21, + 434, 0, 22, 435, 436, 437, 438, 439, 440, 23, + 0, 0, 0, 0, 0, 441, 0, 0, 0, 0, + 25, 0, 26, 27, 28, 29, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 735, 736, 442, 738, 739, + 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, + 750, 751, 752, 753, 754, 0, 756, 442, 0, 0, + 34, 0, 0, 460, 0, 0, 0, 36, 37, 38, + 0, 441, 443, 39, 0, 0, 40, 0, 0, 0, + 245, 0, 0, 0, 0, 0, 444, 0, 480, 246, + 0, 43, 443, 0, 0, 0, 0, 0, 0, 44, + 45, 0, 0, 0, 0, 0, 444, 0, 0, 0, + 0, 0, 445, 0, 0, 446, 447, 448, 0, 0, + 449, 450, 0, 442, 595, 596, 597, 598, 599, 600, + 601, 0, 445, 451, 0, 446, 447, 448, 0, 0, + 449, 450, 0, 0, 0, 0, 0, 0, 0, 698, + 0, 0, 0, 451, 0, 0, 0, 0, 443, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 444, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 5, 6, 0, 0, 445, 0, + 0, 446, 447, 448, 0, 0, 449, 450, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 451, + 0, 8, 0, 0, 0, 0, 0, 9, 0, 10, + 0, 0, 0, 0, 0, 11, 12, 0, 0, 13, + 0, 0, 0, 0, 0, 0, 14, 0, 355, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, + 0, 17, 863, 0, 0, 0, 865, 18, 19, 0, + 0, 0, 0, 20, 0, 0, 0, 0, 21, 0, + 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, + 0, 0, 460, 0, 0, 24, 356, 0, 0, 25, + 0, 26, 27, 28, 29, 30, 0, 0, 0, 0, + 0, 31, 0, 0, 0, 0, 0, 0, 32, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 0, 0, + 0, 0, 0, 0, 0, 615, 616, 33, 0, 4, + 5, 6, 0, 0, 0, 0, 0, 0, 0, 34, + 0, 0, 0, 0, 0, 35, 36, 37, 38, 0, + 0, 0, 39, 0, 0, 40, 0, 8, 0, 41, + 0, 0, 0, 9, 0, 10, 0, 0, 42, 0, + 43, 11, 12, 0, 0, 13, 0, 0, 44, 45, + 0, 0, 14, 0, 355, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 16, 0, 0, 17, 0, 0, + 0, 0, 0, 18, 19, 0, 0, 46, 0, 20, + 0, 373, 0, 0, 21, 0, 0, 22, 0, 0, + 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, + 0, 24, 356, 0, 0, 25, 0, 26, 27, 28, + 29, 30, 0, 0, 0, 0, 0, 31, 0, 0, + 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 33, 0, 4, 5, 6, 0, 0, + 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, + 0, 35, 36, 37, 38, 0, 0, 0, 39, 0, + 0, 40, 0, 8, 0, 41, 0, 0, 0, 9, + 0, 10, 0, 0, 42, 0, 43, 11, 12, 0, + 0, 13, 0, 0, 44, 45, 0, 0, 14, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 17, 0, 0, 0, 0, 0, 18, - 19, 593, 594, 595, 0, 20, 598, 599, 0, 0, + 19, 0, 0, 46, 0, 20, 0, 838, 0, 0, 21, 0, 0, 22, 0, 0, 0, 0, 0, 0, - 23, 0, 0, 0, 0, 0, 0, 24, 355, 0, + 23, 0, 0, 0, 0, 0, 0, 24, 0, 0, + 0, 25, 0, 26, 27, 28, 29, 30, 0, 0, + 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, + 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 4, 5, 6, 0, 0, 0, 0, 33, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 34, 0, 0, 0, 0, 0, 35, 36, 37, + 38, 0, 0, 0, 39, 0, 9, 40, 10, 0, + 0, 41, 0, 0, 11, 0, 0, 0, 13, 0, + 42, 0, 43, 0, 0, 14, 0, 0, 0, 0, + 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, + 17, 0, 0, 0, 0, 0, 18, 19, 0, 0, + 0, 0, 20, 0, 0, 0, 0, 21, 0, 46, + 22, 0, 0, 692, 0, 0, 0, 23, 0, 0, + 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, + 26, 27, 28, 29, 0, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 0, 0, 4, 5, 6, 0, + 0, 595, 596, 597, 598, 599, 600, 601, 602, 603, + 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 9, 0, 10, 0, 0, 36, 37, 38, 11, 0, + 0, 39, 13, 0, 40, 0, 0, 0, 41, 14, + 0, 0, 0, 0, 0, 0, 0, 42, 0, 43, + 0, 0, 0, 0, 17, 0, 0, 44, 45, 0, + 18, 19, 0, 0, 0, 0, 20, 0, 0, 0, + 0, 21, 0, 0, 22, 0, 0, 0, 0, 0, + 0, 23, 0, 0, 0, 0, 46, 0, 24, 4, + 678, 6, 25, 0, 26, 27, 28, 29, 0, 0, + 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 9, 0, 10, 0, 0, 0, 0, + 33, 11, 0, 0, 0, 13, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 36, + 37, 38, 0, 0, 0, 39, 0, 17, 40, 0, + 0, 0, 41, 243, 19, 0, 0, 0, 0, 20, + 0, 42, 0, 43, 21, 0, 0, 22, 0, 0, + 0, 44, 45, 604, 23, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, 25, 0, 26, 27, 28, + 29, 0, 615, 616, 0, 0, 0, 31, 0, 636, + 46, 0, 0, 0, 874, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -3, 0, 0, 4, 5, 6, 0, 0, + 0, 0, 0, 0, 0, 34, 7, 0, 0, 0, + 0, 0, 36, 37, 38, 0, 0, 0, 39, 0, + 0, 40, 0, 8, 0, 245, 0, 0, 0, 9, + 0, 10, 0, 0, 246, 0, 43, 11, 12, 0, + 0, 13, 0, 0, 44, 45, 0, 0, 14, 0, + 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 16, 0, 0, 17, 0, 0, 0, 0, 0, 18, + 19, 0, 0, 46, 0, 20, 0, 794, 0, 0, + 21, 0, 0, 22, 0, 0, 0, 0, 0, 0, + 23, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 25, 0, 26, 27, 28, 29, 30, 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, - 0, 4, 5, 6, 0, 0, 0, 0, 0, 0, - 0, 34, 0, 0, 0, 0, 0, 35, 36, 37, - 38, 0, 0, 0, 39, 0, 0, 40, 0, 8, - 0, 41, 0, 0, 0, 9, 0, 10, 0, 0, - 42, 0, 43, 11, 12, 0, 0, 13, 0, 0, - 44, 45, 0, 0, 14, 0, 354, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 16, 0, 0, 17, - 0, 0, 0, 613, 614, 18, 19, 0, 0, 46, - 0, 20, 0, 372, 0, 0, 21, 0, 0, 22, - 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, - 0, 0, 0, 24, 355, 0, 0, 25, 0, 26, - 27, 28, 29, 30, 0, 0, 0, 0, 0, 31, - 0, 0, 0, 0, 0, 0, 32, 0, 606, 607, - 608, 609, 610, 611, 612, 0, 0, 0, 0, 0, - 0, 0, 613, 614, 0, 33, 0, 4, 5, 6, - 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, - 0, 0, 0, 35, 36, 37, 38, 0, 0, 0, - 39, 0, 0, 40, 0, 8, 0, 41, 0, 0, - 0, 9, 0, 10, 0, 0, 42, 0, 43, 11, - 12, 0, 0, 13, 0, 0, 44, 45, 0, 0, - 14, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 17, 0, 0, 0, 0, - 0, 18, 19, 0, 0, 46, 0, 20, 0, 836, - 0, 0, 21, 0, 0, 22, 0, 0, 0, 0, - 0, 0, 23, 0, 0, 0, 0, 0, 0, 24, - 0, 0, 0, 25, 0, 26, 27, 28, 29, 30, - 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, - 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 4, 5, 6, 0, 0, 0, - 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 35, - 36, 37, 38, 0, 0, 0, 39, 0, 9, 40, - 10, 0, 0, 41, 0, 0, 11, 0, 0, 0, - 13, 0, 42, 0, 43, 0, 0, 14, 0, 0, - 0, 0, 44, 45, 0, 0, 0, 0, 0, 0, - 0, 0, 17, 0, 0, 0, 0, 0, 18, 19, - 0, 0, 0, 0, 20, 0, 0, 0, 0, 21, - 0, 46, 22, 0, 0, 690, 0, 0, 0, 23, - 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, + 0, 0, 4, 5, 6, 0, 0, 0, 0, 0, + 0, 34, 354, 0, 0, 0, 0, 35, 36, 37, + 38, 0, 0, 0, 39, 0, 0, 40, 0, 0, + 8, 41, 0, 0, 0, 0, 9, 0, 10, 0, + 42, 0, 43, 0, 11, 12, 0, 0, 13, 0, + 44, 45, 0, 0, 0, 14, 0, 355, 0, 595, + 596, 597, 598, 599, 600, 601, 0, 16, 0, 0, + 17, 0, 0, 0, 0, 0, 18, 19, 0, 46, + 0, 0, 20, 0, 0, 0, 0, 21, 0, 0, + 22, 0, 0, 0, 0, 0, 0, 23, 0, 0, + 0, 0, 0, 0, 24, 356, 0, 0, 25, 0, + 26, 27, 28, 29, 30, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 0, 0, 0, 32, 0, 0, + 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, + 0, 0, 0, 0, 35, 36, 37, 38, 9, 0, + 10, 39, 0, 0, 40, 274, 11, 0, 41, 0, + 13, 0, 0, 0, 0, 0, 0, 42, 0, 43, + 0, 0, 0, 0, 0, 0, 0, 44, 45, 0, + 0, 0, 17, 0, 0, 0, 0, 0, 243, 19, + 0, 0, 0, 0, 20, 0, 275, 0, 0, 21, + 0, 0, 22, 0, 0, 0, 46, 0, 0, 23, + 0, 595, 596, 597, 598, 599, 600, 601, 0, 0, 25, 0, 26, 27, 28, 29, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 0, 0, 0, 4, 5, - 6, 0, 0, 593, 594, 595, 596, 597, 598, 599, - 600, 601, 0, 0, 0, 0, 0, 0, 33, 0, + 0, 0, 31, 605, 606, 607, 608, 609, 610, 611, + 612, 613, 614, 0, 0, 0, 0, 0, 0, 0, + 615, 616, 0, 0, 0, 0, 276, 0, 0, 0, + 0, 4, 0, 6, 0, 0, 0, 0, 0, 0, + 34, 0, 0, 0, 0, 0, 0, 36, 37, 38, + 0, 0, 0, 39, 0, 0, 40, 277, 0, 0, + 245, 0, 0, 0, 0, 9, 0, 10, 0, 246, + 0, 43, 274, 11, 0, 0, 0, 13, 0, 44, + 45, 0, 0, 0, 595, 596, 597, 598, 599, 600, + 601, 602, 603, 0, 0, 0, 0, 763, 0, 17, + 0, 0, 0, 0, 0, 243, 19, 0, 46, 0, + 0, 20, 0, 275, 0, 0, 21, 0, 0, 22, + 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 25, 0, 26, + 27, 28, 29, 0, 0, 0, 0, 0, 0, 31, + 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 0, + 0, 0, 0, 276, 0, 0, 799, 607, 608, 609, + 610, 611, 612, 613, 614, 0, 0, 34, 0, 9, + 0, 10, 615, 616, 36, 37, 38, 11, 0, 0, + 39, 13, 0, 40, 277, 0, 0, 245, 0, 0, + 0, 0, 0, 0, 0, 0, 246, 0, 43, 0, + 0, 0, 0, 17, 0, 0, 44, 45, 0, 243, + 19, 0, 0, 0, 0, 20, 0, 0, 0, 0, + 21, 0, 0, 22, 817, 0, 0, 0, 0, 0, + 23, 0, 0, 0, 0, 46, 0, 0, 4, 0, + 6, 25, 0, 26, 27, 28, 29, 0, 0, 0, + 0, 0, 0, 31, 0, 0, 604, 0, 605, 606, + 607, 608, 609, 610, 611, 612, 613, 614, 0, 0, + 0, 0, 9, 0, 10, 615, 616, 0, 0, 0, + 11, 0, 660, 0, 13, 0, 0, 0, 0, 0, + 0, 34, 0, 0, 0, 0, 0, 0, 36, 37, + 38, 0, 0, 0, 39, 0, 17, 40, 0, 0, + 0, 245, 243, 19, 0, 0, 0, 0, 20, 0, + 246, 0, 43, 21, 0, 0, 22, 0, 0, 0, + 44, 45, 604, 23, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 25, 0, 26, 27, 28, 29, + 0, 615, 616, 0, 0, 0, 31, 0, 725, 46, + 595, 596, 597, 598, 599, 600, 601, 602, 603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 0, 9, 0, 10, 0, 0, 36, 37, 38, - 11, 0, 0, 39, 13, 0, 40, 0, 0, 0, - 41, 14, 0, 0, 0, 0, 0, 0, 0, 42, - 0, 43, 0, 0, 0, 0, 17, 0, 0, 44, - 45, 0, 18, 19, 0, 0, 0, 0, 20, 0, - 0, 0, 0, 21, 0, 0, 22, 0, 0, 0, - 0, 0, 0, 23, 0, 0, 0, 0, 46, 0, - 24, 4, 676, 6, 25, 0, 26, 27, 28, 29, - 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, + 0, 0, 595, 596, 597, 598, 599, 600, 601, 602, + 603, 0, 0, 0, 34, 0, 0, 0, 0, 0, + 0, 36, 37, 38, 0, 0, 0, 39, 0, 0, + 40, 0, 0, 0, 245, 0, 0, 0, 0, 0, + 0, 0, 0, 246, 0, 43, 0, 0, 0, 0, + 0, 0, 0, 44, 45, 595, 596, 597, 598, 599, + 600, 601, 602, 603, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 9, 0, 10, 0, 0, - 0, 0, 33, 11, 0, 0, 0, 13, 0, 0, - 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, - 0, 36, 37, 38, 0, 0, 0, 39, 0, 17, - 40, 0, 0, 0, 41, 243, 19, 0, 0, 0, - 0, 20, 0, 42, 0, 43, 21, 0, 0, 22, - 0, 0, 0, 44, 45, 602, 23, 603, 604, 605, - 606, 607, 608, 609, 610, 611, 612, 25, 0, 26, - 27, 28, 29, 0, 613, 614, 0, 0, 0, 31, - 0, 634, 46, 0, 0, 0, 872, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -3, 0, 0, 4, 5, 6, - 0, 0, 0, 0, 0, 0, 0, 34, 7, 0, - 0, 0, 0, 0, 36, 37, 38, 0, 0, 0, - 39, 0, 0, 40, 0, 8, 0, 245, 0, 0, - 0, 9, 0, 10, 0, 0, 246, 0, 43, 11, - 12, 0, 0, 13, 0, 0, 44, 45, 0, 0, - 14, 0, 15, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 16, 0, 0, 17, 0, 0, 0, 0, - 0, 18, 19, 0, 0, 46, 0, 20, 0, 792, - 0, 0, 21, 0, 0, 22, 0, 0, 0, 0, - 0, 0, 23, 0, 0, 0, 0, 0, 0, 24, - 0, 0, 0, 25, 0, 26, 27, 28, 29, 30, - 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, - 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 33, 0, 0, 4, 5, 6, 0, 0, 0, - 0, 0, 0, 34, 353, 0, 0, 0, 0, 35, - 36, 37, 38, 0, 0, 0, 39, 0, 0, 40, - 0, 0, 8, 41, 0, 0, 0, 0, 9, 0, - 10, 0, 42, 0, 43, 0, 11, 12, 0, 0, - 13, 0, 44, 45, 0, 0, 0, 14, 0, 354, - 0, 0, 593, 594, 595, 596, 597, 598, 599, 16, - 601, 0, 17, 0, 0, 0, 0, 0, 18, 19, - 0, 46, 0, 0, 20, 0, 0, 0, 0, 21, - 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, - 0, 0, 0, 0, 0, 0, 24, 355, 0, 0, - 25, 0, 26, 27, 28, 29, 30, 0, 0, 0, - 0, 0, 31, 0, 0, 0, 0, 0, 0, 32, - 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 34, 0, 0, 0, 0, 0, 35, 36, 37, 38, - 9, 0, 10, 39, 0, 0, 40, 273, 11, 0, - 41, 0, 13, 0, 0, 0, 0, 0, 0, 42, - 0, 43, 0, 0, 0, 0, 0, 0, 0, 44, - 45, 0, 0, 0, 17, 0, 0, 0, 0, 0, - 243, 19, 0, 0, 0, 0, 20, 0, 274, 0, - 0, 21, 0, 0, 22, 0, 0, 0, 46, 0, - 0, 23, 0, 593, 594, 595, 596, 597, 598, 599, - 0, 0, 25, 0, 26, 27, 28, 29, 0, 0, - 0, 0, 0, 0, 31, 0, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 0, 0, 0, 0, - 0, 0, 0, 613, 614, 0, 0, 0, 275, 0, - 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 36, - 37, 38, 0, 0, 0, 39, 0, 0, 40, 276, - 0, 0, 245, 0, 0, 0, 0, 9, 0, 10, - 0, 246, 0, 43, 273, 11, 0, 0, 0, 13, - 0, 44, 45, 0, 0, 0, 593, 594, 595, 596, - 597, 598, 599, 600, 601, 0, 0, 0, 0, 761, - 0, 17, 0, 0, 0, 0, 0, 243, 19, 0, - 46, 0, 0, 20, 0, 274, 0, 0, 21, 0, - 0, 22, 0, 0, 0, 0, 0, 0, 23, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, - 0, 26, 27, 28, 29, 0, 0, 0, 0, 0, - 0, 31, 0, 0, 0, 0, 0, 4, 0, 6, - 0, 0, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 0, 0, 0, 0, 275, 0, 0, 797, 605, - 606, 607, 608, 609, 610, 611, 612, 0, 0, 34, - 0, 9, 0, 10, 613, 614, 36, 37, 38, 11, - 0, 0, 39, 13, 0, 40, 276, 0, 0, 245, - 0, 0, 0, 0, 0, 0, 0, 0, 246, 0, - 43, 0, 0, 0, 0, 17, 0, 0, 44, 45, - 0, 243, 19, 0, 0, 0, 0, 20, 0, 0, - 0, 0, 21, 0, 0, 22, 815, 0, 0, 0, - 0, 0, 23, 0, 0, 0, 0, 46, 0, 0, - 4, 0, 6, 25, 0, 26, 27, 28, 29, 0, - 0, 0, 0, 0, 0, 31, 0, 0, 602, 0, - 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, - 0, 0, 0, 0, 9, 0, 10, 613, 614, 0, - 0, 0, 11, 0, 658, 0, 13, 0, 0, 0, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, - 36, 37, 38, 0, 0, 0, 39, 0, 17, 40, - 0, 0, 0, 245, 243, 19, 0, 0, 0, 0, - 20, 0, 246, 0, 43, 21, 0, 0, 22, 0, - 0, 0, 44, 45, 602, 23, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 25, 0, 26, 27, - 28, 29, 0, 613, 614, 0, 0, 0, 31, 0, - 723, 46, 593, 594, 595, 596, 597, 598, 599, 600, - 601, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 593, 594, 595, 596, 597, 598, - 599, 600, 601, 0, 0, 0, 34, 0, 0, 0, - 0, 0, 0, 36, 37, 38, 0, 0, 0, 39, - 0, 0, 40, 0, 0, 0, 245, 0, 0, 0, - 0, 0, 0, 0, 0, 246, 0, 43, 0, 0, - 0, 0, 0, 0, 0, 44, 45, 593, 594, 595, + 0, 0, 46, 595, 596, 597, 598, 599, 600, 601, + 602, 603, 0, 0, 0, 0, 0, 0, 0, 595, 596, 597, 598, 599, 600, 601, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 46, 593, 594, 595, 596, 597, - 598, 599, 600, 601, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 593, 594, 595, 596, 597, 598, - 599, 593, 594, 595, 596, 597, 598, 599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 602, 0, 603, 604, 605, 606, - 607, 608, 609, 610, 611, 612, 0, 0, 0, 0, - 0, 0, 0, 613, 614, 697, 602, 0, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 0, 0, - 0, 0, 0, 0, 0, 613, 614, 825, 0, 0, + 0, 0, 604, 0, 605, 606, 607, 608, 609, 610, + 611, 612, 613, 614, 0, 0, 0, 0, 0, 0, + 0, 615, 616, 699, 604, 0, 605, 606, 607, 608, + 609, 610, 611, 612, 613, 614, 0, 0, 0, 0, + 0, 0, 0, 615, 616, 827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 602, - 824, 603, 604, 605, 606, 607, 608, 609, 610, 611, - 612, 0, 0, 0, 0, 0, 0, 0, 613, 614, - 0, 0, 0, 0, 0, 0, 0, 602, 0, 603, - 604, 605, 606, 607, 608, 609, 610, 611, 612, 0, - 4, 0, 6, 0, 0, 0, 613, 614, 603, 604, - 605, 606, 607, 608, 609, 610, 611, 612, 606, 607, - 608, 609, 610, 611, 612, 613, 614, 0, 8, 0, - 0, 0, 613, 614, 9, 0, 10, 0, 0, 0, - 0, 0, 11, 12, 0, 0, 13, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -352, 0, 0, 17, 0, - 0, 0, 0, 0, 243, 19, 0, 0, 0, 0, - 20, 0, 0, 0, 0, 21, 0, 0, 22, 0, - 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 25, 0, 26, 27, - 28, 29, 30, 0, 0, 244, 0, 0, 31, 0, - 0, 0, 0, 0, 4, 0, 6, 455, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 0, 9, 0, - 10, 0, 35, 36, 37, 38, 11, 0, 0, 39, - 13, 0, 40, 0, 0, 0, 245, 0, 0, 0, - 0, 0, 0, 0, 0, 246, 0, 43, 0, 0, - 0, 0, 17, 0, 0, 44, 45, 0, 243, 19, - 0, 0, 0, 0, 20, 0, 0, 0, 0, 21, - 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, - 0, 0, 0, 0, 0, 0, 0, 4, 0, 6, - 25, 0, 26, 27, 28, 29, 0, 0, 0, 0, - 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 0, 6, 0, + 0, 0, 0, 0, 0, 0, 0, 604, 826, 605, + 606, 607, 608, 609, 610, 611, 612, 613, 614, 0, + 0, 0, 0, 0, 0, 0, 615, 616, 0, 0, + 0, 0, 0, 0, 0, 604, 0, 605, 606, 607, + 608, 609, 610, 611, 612, 613, 614, 4, 0, 6, + 0, 0, 0, 0, 615, 616, 608, 609, 610, 611, + 612, 613, 614, 0, 0, 0, 0, 0, 0, 0, + 615, 616, 0, 0, 0, 8, 0, 0, 0, 0, 0, 9, 0, 10, 0, 0, 0, 0, 0, 11, - 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, + 12, 0, 0, 13, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -353, 0, 0, 17, 0, 0, 0, 0, + 0, 243, 19, 0, 0, 0, 0, 20, 0, 0, + 0, 0, 21, 0, 0, 22, 0, 0, 0, 0, + 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 25, 0, 26, 27, 28, 29, 30, + 0, 0, 244, 0, 0, 31, 0, 0, 0, 0, + 0, 4, 0, 6, 457, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 34, 0, 9, 0, 10, 0, 35, + 36, 37, 38, 11, 0, 0, 39, 13, 0, 40, + 0, 0, 0, 245, 0, 0, 0, 0, 0, 0, + 0, 0, 246, 0, 43, 0, 0, 0, 0, 17, + 0, 0, 44, 45, 0, 243, 19, 0, 0, 0, + 0, 20, 0, 0, 0, 0, 21, 0, 0, 22, + 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 4, 0, 6, 25, 0, 26, + 27, 28, 29, 0, 0, 0, 0, 0, 0, 31, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 4, 0, 6, 0, 0, 9, 0, + 10, 0, 0, 0, 0, 0, 11, 0, 0, 0, + 13, 0, 0, 0, 0, 0, 0, 34, 0, 0, + 0, 0, 0, 0, 36, 37, 38, 9, 0, 10, + 39, 0, 17, 40, 0, 11, 0, 245, 243, 19, + 0, 0, 0, 0, 20, 0, 246, 0, 43, 21, + 0, 0, 22, 0, 0, 0, 44, 45, 0, 23, + 0, 17, 0, 0, 0, 0, 0, 243, 19, 0, + 25, 0, 26, 27, 28, 29, 0, 0, 21, 0, + 0, 22, 31, 0, 0, 0, 0, 0, 23, 0, + 0, 0, 0, 0, 0, 0, 4, 0, 97, 0, + 0, 26, 27, 28, 29, 0, 0, 0, 0, 0, + 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 36, 37, 38, - 9, 0, 10, 39, 0, 17, 40, 0, 11, 0, - 245, 243, 19, 0, 0, 0, 0, 20, 0, 246, - 0, 43, 21, 0, 0, 22, 0, 0, 0, 44, - 45, 0, 23, 0, 17, 0, 0, 0, 0, 0, - 243, 19, 0, 25, 0, 26, 27, 28, 29, 0, - 0, 21, 0, 0, 22, 31, 0, 0, 0, 0, - 0, 23, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 97, 0, 0, 26, 27, 28, 29, 0, 0, - 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, - 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, - 36, 37, 38, 9, 0, 10, 39, 0, 0, 40, - 0, 11, 0, 245, 0, 0, 588, 0, 0, 0, - 0, 0, 246, 0, 43, 0, 0, 0, 0, 36, - 37, 38, 44, 45, 0, 39, 0, 17, 0, 0, - 0, 0, 245, 0, 19, 0, 0, 0, 9, 0, - 10, 246, 0, 43, 21, 0, 11, 22, 0, 0, - 13, 44, 45, 0, 23, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 26, 27, 28, - 29, 0, 17, 0, 0, 0, 0, 31, 243, 19, - 0, 0, 0, 0, 20, 0, 0, 0, 0, 21, - 0, 0, 22, 0, 0, 0, 0, 0, 0, 23, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 588, - 25, 0, 26, 27, 28, 29, 0, 0, 0, 0, - 0, 0, 31, 37, 38, 0, 0, 0, 39, 0, + 9, 0, 10, 39, 0, 0, 40, 0, 11, 0, + 245, 0, 0, 590, 0, 0, 0, 0, 0, 246, + 0, 43, 0, 0, 0, 0, 36, 37, 38, 44, + 45, 0, 39, 0, 17, 0, 0, 0, 0, 245, + 0, 19, 0, 0, 0, 9, 0, 10, 246, 0, + 43, 21, 0, 11, 22, 0, 0, 13, 44, 45, + 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 26, 27, 28, 29, 0, 17, + 0, 0, 0, 0, 31, 243, 19, 0, 0, 0, + 0, 20, 0, 0, 0, 0, 21, 0, 0, 22, + 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 590, 25, 0, 26, + 27, 28, 29, 0, 0, 0, 0, 0, 0, 31, + 37, 38, 0, 0, 0, 39, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, + 10, 0, 0, 43, 0, 0, 11, 0, 0, 0, + 0, 0, 45, 0, 0, 0, 0, 34, 0, 0, + 0, 0, 0, 0, 36, 37, 38, 0, 0, 0, + 39, 0, 17, 40, 0, 0, 0, 245, 243, 19, + 0, 0, 0, 0, 0, 0, 246, 0, 43, 21, + 0, 0, 22, 0, 0, 0, 44, 45, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 9, 0, 10, 0, 0, 43, 0, 0, 11, - 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, - 34, 0, 0, 0, 0, 0, 0, 36, 37, 38, - 0, 0, 0, 39, 0, 17, 40, 0, 0, 0, - 245, 243, 19, 0, 0, 0, 0, 0, 0, 246, - 0, 43, 21, 0, 0, 22, 0, 0, 0, 44, - 45, 0, 23, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 27, 28, 29, 0, - 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, + 0, 0, 26, 27, 28, 29, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 36, 37, 38, 0, 0, 0, 39, 0, 0, 0, - 0, 0, 0, 245, 0, 0, 0, 0, 122, 123, - 0, 0, 246, 124, 43, 125, 126, 127, 128, 129, - 0, 130, 44, 45, 131, 0, 132, 0, 0, 0, - 133, 134, 0, 135, 136, 137, 138, 139, 140, 0, - 141, 0, 142, 143, 144, 0, 145, 146, 147, 148, - 149, 0, 150, 0, 0, 151, 152, 153, 154, 155, - 0, 0, 156, 157, 158, 159, 0, 0, 0, 160, - 161, 0, 162, 163, 0, 164, 165, 166, 167, 168, - 169, 0, 170, 171, 172, 173, 174, 175, 0, 0, - 176, 0, 0, 177, 0, 0, 0, 0, 0, 178, - 179, 0, 180, 181, 0, 182, 183, 184, 0, 0, - 0, 0, 185, 186, 187, 0, 188, 189, 190, 0, - 191, 192, 193, 194, 195, 196, 197, 198, 0, 199, - 0, 200, 0, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 0, 210, 211, 0, 212, 213, 0, 0, - 0, 0, 0, 214, 0, 0, 215, 0, 216, 0, - 217, 218, 0, 0, 219, 220, 221, 222, 0, 0, - 223, 0, 224, 0, 225, 226, 227, 228, 229, 230, - 231, 0, 0, 232 + 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, + 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, + 245, 0, 0, 0, 0, 122, 123, 0, 0, 246, + 124, 43, 125, 126, 127, 128, 129, 0, 130, 44, + 45, 131, 0, 132, 0, 0, 0, 133, 134, 0, + 135, 136, 137, 138, 139, 140, 0, 141, 0, 142, + 143, 144, 0, 145, 146, 147, 148, 149, 0, 150, + 0, 0, 151, 152, 153, 154, 155, 0, 0, 156, + 157, 158, 159, 0, 0, 0, 160, 161, 0, 162, + 163, 0, 164, 165, 166, 167, 168, 169, 0, 170, + 171, 172, 173, 174, 175, 0, 0, 176, 0, 0, + 177, 0, 0, 0, 0, 0, 178, 179, 0, 180, + 181, 0, 182, 183, 184, 0, 0, 0, 0, 185, + 186, 187, 0, 188, 189, 190, 0, 191, 192, 193, + 194, 195, 196, 197, 198, 0, 199, 0, 200, 0, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 0, + 210, 211, 0, 212, 213, 0, 0, 0, 0, 0, + 214, 0, 0, 215, 0, 216, 0, 217, 218, 0, + 0, 219, 220, 221, 222, 0, 0, 223, 0, 224, + 0, 225, 226, 227, 228, 229, 230, 231, 0, 0, + 232 }; static const yytype_int16 yycheck[] = { - 2, 2, 8, 55, 259, 321, 12, 241, 259, 2, - 16, 84, 18, 2, 84, 259, 2, 2, 2, 81, - 82, 83, 397, 2, 30, 283, 88, 82, 83, 35, - 259, 2, 2, 88, 330, 41, 42, 2, 323, 2, - 2, 326, 2, 328, 637, 2, 331, 2, 2, 2, - 278, 279, 2, 338, 315, 3, 17, 5, 64, 6, - 705, 372, 62, 638, 351, 58, 115, 301, 6, 58, - 449, 27, 58, 58, 58, 125, 115, 636, 84, 58, - 713, 640, 115, 28, 400, 422, 423, 58, 58, 3, - 17, 3, 180, 5, 29, 44, 44, 43, 673, 180, - 49, 49, 206, 722, 41, 42, 180, 206, 727, 154, - 75, 206, 206, 158, 60, 206, 85, 115, 3, 0, - 5, 3, 213, 5, 59, 70, 126, 68, 317, 233, - 206, 724, 44, 226, 233, 229, 85, 85, 233, 74, - 206, 229, 230, 206, 189, 114, 60, 82, 206, 230, - 725, 149, 15, 16, 17, 212, 230, 233, 347, 44, - 9, 212, 44, 12, 49, 228, 410, 233, 761, 397, - 228, 206, 206, 85, 115, 232, 132, 227, 213, 213, - 253, 410, 231, 253, 31, 232, 186, 421, 422, 423, - 37, 766, 231, 230, 227, 814, 145, 145, 535, 9, - 85, 760, 581, 85, 763, 278, 279, 111, 278, 279, - 206, 227, 591, 3, 525, 17, 232, 213, 174, 852, - 232, 866, 815, 510, 169, 287, 38, 176, 176, 6, - 7, 43, 287, 145, 240, 237, 238, 243, 244, 245, - 246, 229, 230, 313, 237, 238, 821, 253, 237, 238, - 232, 237, 238, 237, 238, 216, 217, 218, 817, 204, - 145, 127, 229, 145, 176, 226, 227, 216, 216, 828, - 239, 526, 278, 279, 68, 560, 531, 44, 227, 227, - 531, 212, 526, 232, 232, 231, 233, 531, 522, 523, - 524, 176, 212, 521, 176, 233, 216, 526, 857, 226, - 227, 535, 531, 373, 216, 621, 881, 313, 245, 246, - 3, 3, 5, 5, 227, 227, 577, 310, 85, 232, - 232, 227, 315, 230, 397, 559, 232, 397, 330, 322, - 615, 216, 590, 229, 216, 201, 202, 203, 204, 205, - 227, 3, 412, 5, 231, 49, 229, 232, 341, 229, - 232, 214, 215, 216, 217, 218, 227, 227, 227, 115, - 231, 231, 231, 226, 227, 676, 9, 373, 653, 680, - 339, 227, 683, 230, 343, 231, 345, 346, 145, 83, - 212, 350, 375, 229, 390, 760, 644, 449, 227, 229, - 232, 397, 231, 233, 229, 3, 657, 5, 229, 3, - 402, 5, 3, 699, 5, 109, 412, 229, 3, 176, - 5, 417, 214, 215, 216, 217, 218, 396, 3, 230, - 5, 423, 229, 230, 226, 227, 3, 227, 5, 229, - 45, 229, 687, 229, 229, 232, 229, 229, 227, 814, - 212, 232, 226, 687, 232, 232, 232, 232, 521, 216, - 705, 521, 232, 828, 705, 159, 232, 232, 687, 232, - 227, 705, 232, 774, 722, 232, 232, 232, 474, 727, - 232, 175, 730, 232, 232, 232, 705, 232, 232, 232, - 473, 232, 857, 98, 232, 232, 232, 715, 232, 232, - 232, 232, 232, 232, 232, 232, 111, 112, 113, 114, - 232, 232, 232, 232, 232, 232, 121, 232, 232, 230, - 230, 229, 234, 230, 230, 521, 230, 590, 229, 581, - 522, 522, 229, 232, 230, 5, 208, 838, 772, 522, - 592, 533, 533, 522, 850, 233, 522, 592, 522, 208, - 533, 9, 233, 772, 533, 232, 6, 533, 533, 533, - 778, 9, 167, 782, 533, 9, 814, 172, 9, 9, - 9, 872, 533, 533, 9, 638, 9, 9, 533, 9, - 533, 533, 227, 533, 230, 568, 533, 570, 533, 533, - 533, 570, 568, 533, 577, 232, 897, 229, 229, 229, - 845, 230, 229, 229, 208, 230, 216, 231, 883, 230, - 233, 845, 231, 206, 234, 6, 233, 206, 233, 233, - 233, 866, 846, 232, 206, 866, 845, 318, 206, 671, - 321, 233, 866, 233, 226, 206, 233, 233, 329, 226, - 636, 332, 206, 233, 640, 233, 638, 866, 9, 340, - 233, 342, 715, 233, 233, 715, 233, 717, 162, 722, - 233, 233, 725, 233, 727, 233, 890, 233, 233, 893, - 233, 233, 233, 233, 657, 233, 233, 233, 233, 731, - 233, 673, 233, 233, 233, 233, 731, 208, 229, 233, - 206, 186, 212, 206, 233, 229, 679, 229, 3, 3, - 679, 9, 694, 679, 6, 679, 6, 699, 233, 400, - 401, 694, 708, 206, 186, 778, 230, 713, 778, 715, - 208, 717, 229, 231, 227, 231, 213, 229, 233, 229, - 206, 5, 233, 725, 233, 233, 233, 233, 229, 229, - 208, 230, 395, 212, 208, 789, 208, 233, 233, 233, - 233, 814, 443, 444, 445, 446, 447, 448, 449, 233, - 233, 232, 229, 229, 760, 419, 229, 763, 229, 316, - 559, 340, 646, 893, 766, 694, 384, 531, 708, 776, - 776, 94, 778, 775, 852, 781, 782, 581, 253, 704, - 336, 702, 775, 700, 406, -1, 775, -1, -1, 775, - -1, 775, -1, -1, -1, -1, -1, -1, -1, -1, - 793, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 3, 817, -1, 6, 7, 8, 9, 10, 11, 821, - -1, -1, 828, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 842, -1, -1, -1, - 541, -1, -1, -1, 846, 846, 852, -1, -1, -1, - -1, 857, -1, 846, -1, -1, -1, 846, -1, -1, - 846, -1, 846, -1, -1, -1, -1, -1, -1, 3, - -1, -1, 6, 7, 8, 9, 10, 11, -1, 881, - 3, -1, 5, 6, 7, 8, 9, 10, 11, -1, - -1, 84, 593, 594, -1, 596, 597, 598, 599, 600, - 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, - 611, 612, -1, 614, 37, -1, 39, -1, -1, -1, - 621, -1, 45, -1, -1, -1, 49, -1, -1, -1, - -1, 3, -1, -1, 6, 7, 8, 9, 10, 11, - -1, -1, -1, 136, -1, 646, -1, -1, 71, -1, - 84, -1, -1, -1, 77, 78, -1, -1, -1, -1, - 83, 84, -1, -1, -1, 88, -1, -1, 91, -1, - -1, -1, -1, -1, -1, 98, -1, -1, 171, -1, - -1, -1, -1, -1, -1, -1, 109, -1, 111, 112, - 113, 114, 185, -1, -1, -1, -1, -1, 121, -1, - -1, -1, 136, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 84, 136, -1, -1, -1, -1, 211, -1, + 2, 2, 8, 55, 84, 259, 12, 259, 2, 2, + 16, 2, 18, 2, 259, 2, 2, 2, 2, 399, + 84, 241, 2, 2, 30, 2, 81, 82, 83, 35, + 2, 2, 2, 88, 316, 41, 42, 2, 2, 2, + 82, 83, 259, 284, 324, 331, 88, 327, 6, 329, + 6, 322, 332, 43, 352, 3, 115, 5, 64, 339, + 17, 707, 125, 715, 58, 58, 49, 58, 115, 58, + 60, 58, 58, 58, 58, 115, 27, 85, 84, 28, + 180, 640, 302, 3, 639, 5, 3, 279, 280, 41, + 42, 180, 180, 424, 425, 75, 44, 318, 724, 68, + 83, 49, 29, 729, 154, 206, 114, 373, 158, 206, + 115, 206, 31, 206, 9, 206, 675, 12, 37, 62, + 227, 70, 213, 0, 44, 232, 109, 348, 229, 49, + 230, 402, 59, 212, 206, 228, 233, 85, 233, 189, + 229, 230, 230, 60, 149, 3, 115, 74, 6, 7, + 8, 9, 10, 11, 227, 82, 226, 206, 451, 232, + 3, 233, 5, 206, 227, 85, 212, 412, 727, 206, + 213, 726, 231, 253, 638, 206, 159, 230, 642, 228, + 111, 132, 213, 126, 231, 206, 232, 227, 44, 253, + 816, 206, 175, 49, 232, 412, 233, 145, 213, 279, + 280, 44, 854, 423, 424, 425, 537, 399, 763, 768, + 229, 230, 233, 227, 512, 279, 280, 3, 232, 5, + 169, 9, 868, 174, 3, 145, 84, 68, 176, 85, + 229, 239, 17, 288, 240, 237, 238, 243, 244, 245, + 246, 231, 85, 186, 237, 238, 288, 253, 237, 238, + 314, 237, 238, 237, 238, 204, 176, 232, 44, 226, + 115, 527, 817, 230, 823, 15, 16, 17, 216, 226, + 227, 6, 7, 279, 280, 233, 528, 233, 136, 533, + 38, 533, 562, 528, 232, 43, 232, 227, 533, 145, + 583, 231, 229, 245, 246, 17, 216, 579, 762, 85, + 593, 765, 145, 229, 524, 525, 526, 227, 314, 212, + 374, 528, 232, 171, 229, 230, 533, 537, 311, 399, + 176, 226, 229, 316, 883, 230, 44, 185, 229, 331, + 323, 523, 340, 176, 9, 399, 344, 617, 346, 347, + 212, 561, 227, 351, 216, 3, 231, 5, 229, 342, + 414, 592, 623, 211, 229, 819, 214, 215, 216, 145, + 216, 219, 220, 229, 229, 227, 830, 85, 374, 231, + 228, 227, 229, 216, 232, 655, 232, 659, 3, 3, + 5, 5, 762, 376, 227, 391, 230, 227, 227, 232, + 176, 231, 231, 399, 227, 859, 451, 229, 231, 229, + 229, 233, 404, 229, 398, 646, 212, 3, 414, 5, + 230, 232, 678, 419, 232, 701, 682, 232, 3, 685, + 5, 232, 3, 425, 5, 127, 3, 145, 5, 232, + 216, 216, 217, 218, 232, 232, 816, 689, 3, 232, + 5, 226, 227, 523, 689, 3, 232, 5, 232, 227, + 830, 229, 232, 707, 227, 707, 232, 232, 176, 523, + 232, 232, 707, 232, 214, 215, 216, 217, 218, 232, + 476, 232, 689, 232, 230, 232, 226, 227, 232, 859, + 232, 232, 475, 724, 232, 232, 232, 232, 729, 232, + 707, 732, 214, 215, 216, 217, 218, 230, 216, 201, + 202, 203, 204, 205, 226, 227, 232, 232, 232, 227, + 776, 232, 592, 232, 232, 232, 232, 523, 232, 232, + 232, 232, 524, 524, 232, 717, 232, 232, 583, 774, + 229, 524, 230, 535, 535, 524, 230, 230, 524, 594, + 524, 535, 535, 45, 535, 229, 535, 229, 535, 535, + 535, 535, 594, 226, 3, 535, 535, 774, 535, 212, + 640, 230, 234, 535, 535, 535, 232, 784, 5, 233, + 535, 535, 535, 208, 840, 816, 208, 570, 233, 572, + 232, 852, 9, 572, 570, 6, 579, 9, 780, 9, + 9, 9, 230, 9, 9, 847, 98, 9, 15, 16, + 17, 9, 847, 20, 21, 885, 9, 227, 874, 111, + 112, 113, 114, 232, 868, 229, 868, 229, 229, 121, + 229, 673, 229, 868, 230, 208, 231, 216, 848, 233, + 847, 230, 638, 899, 231, 206, 642, 717, 640, 234, + 6, 233, 206, 233, 724, 233, 233, 727, 232, 729, + 206, 868, 226, 717, 233, 719, 206, 233, 233, 226, + 233, 233, 206, 233, 233, 167, 659, 233, 206, 9, + 172, 233, 892, 675, 233, 895, 233, 162, 733, 233, + 233, 233, 233, 186, 233, 233, 233, 233, 681, 208, + 233, 733, 681, 233, 696, 681, 233, 681, 233, 701, + 780, 233, 233, 696, 710, 233, 233, 233, 233, 715, + 233, 717, 229, 719, 206, 212, 780, 206, 233, 229, + 229, 3, 3, 6, 9, 727, 6, 233, 206, 186, + 230, 208, 231, 229, 227, 233, 816, 231, 213, 319, + 206, 229, 322, 15, 16, 17, 18, 19, 20, 21, + 330, 23, 233, 333, 233, 229, 762, 233, 5, 765, + 233, 341, 233, 343, 229, 229, 768, 208, 230, 212, + 233, 229, 778, 233, 780, 777, 232, 783, 784, 233, + 233, 229, 233, 208, 777, 229, 233, 229, 777, 397, + 421, 777, 895, 777, 208, 212, 213, 214, 215, 216, + 217, 218, 795, 791, 317, 341, 561, 696, 710, 226, + 227, 648, 778, 819, 253, 583, 337, 385, 533, 854, + 94, 823, 402, 403, 830, 704, 706, -1, 702, -1, + 408, -1, -1, -1, -1, -1, -1, -1, 844, -1, + -1, -1, -1, -1, -1, -1, 848, 848, 854, -1, + -1, -1, -1, 859, -1, 848, -1, -1, -1, 848, + -1, -1, 848, -1, 848, 445, 446, 447, 448, 449, + 450, 451, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 883, -1, -1, 3, -1, 5, 6, 7, 8, + 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 3, -1, -1, 6, 7, 8, + 9, 10, 11, -1, -1, -1, -1, -1, 37, -1, + 39, -1, -1, -1, -1, -1, 45, -1, -1, -1, + 49, -1, -1, -1, -1, -1, -1, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, -1, -1, -1, + -1, -1, 71, -1, 226, 227, -1, -1, 77, 78, + -1, -1, -1, 543, 83, 84, -1, -1, -1, 88, + 3, -1, 91, 6, 7, 8, 9, 10, 11, 98, + -1, -1, -1, -1, -1, 84, -1, -1, -1, -1, + 109, -1, 111, 112, 113, 114, -1, -1, -1, -1, + -1, -1, 121, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 595, 596, 136, 598, 599, + 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, + 610, 611, 612, 613, 614, -1, 616, 136, -1, -1, + 159, -1, -1, 623, -1, -1, -1, 166, 167, 168, + -1, 84, 171, 172, -1, -1, 175, -1, -1, -1, + 179, -1, -1, -1, -1, -1, 185, -1, 648, 188, + -1, 190, 171, -1, -1, -1, -1, -1, -1, 198, + 199, -1, -1, -1, -1, -1, 185, -1, -1, -1, + -1, -1, 211, -1, -1, 214, 215, 216, -1, -1, + 219, 220, -1, 136, 15, 16, 17, 18, 19, 20, + 21, -1, 211, 232, -1, 214, 215, 216, -1, -1, + 219, 220, -1, -1, -1, -1, -1, -1, -1, 228, + -1, -1, -1, 232, -1, -1, -1, -1, 171, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 185, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3, 4, 5, -1, -1, 211, -1, -1, 214, 215, 216, -1, -1, 219, 220, -1, -1, - -1, -1, -1, -1, -1, 228, 159, 171, -1, 232, - -1, -1, -1, 166, 167, 168, -1, -1, 171, 172, - -1, 185, 175, -1, -1, -1, 179, -1, -1, -1, - -1, -1, 185, -1, 136, 188, -1, 190, -1, -1, - -1, -1, -1, -1, -1, 198, 199, 211, -1, -1, - 214, 215, 216, -1, -1, 219, 220, -1, 211, -1, - -1, 214, 215, 216, 228, -1, 219, 220, 232, 171, -1, -1, -1, -1, -1, -1, -1, -1, -1, 232, - -1, -1, -1, 185, -1, -1, -1, -1, -1, 820, - -1, -1, -1, 824, -1, 3, 4, 5, -1, -1, - -1, -1, 15, 16, 17, 18, 19, 20, 21, 211, - -1, -1, 214, 215, 216, -1, -1, 219, 220, 850, - -1, -1, -1, 31, -1, -1, -1, -1, -1, 37, - 232, 39, -1, -1, -1, -1, -1, 45, 46, -1, - -1, 49, -1, -1, -1, -1, -1, -1, 56, -1, + -1, 31, -1, -1, -1, -1, -1, 37, -1, 39, + -1, -1, -1, -1, -1, 45, 46, -1, -1, 49, + -1, -1, -1, -1, -1, -1, 56, -1, 58, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, + -1, 71, 822, -1, -1, -1, 826, 77, 78, -1, + -1, -1, -1, 83, -1, -1, -1, -1, 88, -1, + -1, 91, -1, -1, -1, -1, -1, -1, 98, -1, + -1, -1, 852, -1, -1, 105, 106, -1, -1, 109, + -1, 111, 112, 113, 114, 115, -1, -1, -1, -1, + -1, 121, -1, -1, -1, -1, -1, -1, 128, 210, + 211, 212, 213, 214, 215, 216, 217, 218, -1, -1, + -1, -1, -1, -1, -1, 226, 227, 147, -1, 3, + 4, 5, -1, -1, -1, -1, -1, -1, -1, 159, + -1, -1, -1, -1, -1, 165, 166, 167, 168, -1, + -1, -1, 172, -1, -1, 175, -1, 31, -1, 179, + -1, -1, -1, 37, -1, 39, -1, -1, 188, -1, + 190, 45, 46, -1, -1, 49, -1, -1, 198, 199, + -1, -1, 56, -1, 58, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, + -1, -1, -1, 77, 78, -1, -1, 227, -1, 83, + -1, 231, -1, -1, 88, -1, -1, 91, -1, -1, + -1, -1, -1, -1, 98, -1, -1, -1, -1, -1, + -1, 105, 106, -1, -1, 109, -1, 111, 112, 113, + 114, 115, -1, -1, -1, -1, -1, 121, -1, -1, + -1, -1, -1, -1, 128, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 147, -1, 3, 4, 5, -1, -1, + -1, -1, -1, -1, -1, 159, -1, -1, -1, -1, + -1, 165, 166, 167, 168, -1, -1, -1, 172, -1, + -1, 175, -1, 31, -1, 179, -1, -1, -1, 37, + -1, 39, -1, -1, 188, -1, 190, 45, 46, -1, + -1, 49, -1, -1, 198, 199, -1, -1, 56, -1, 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, -1, 77, - 78, 15, 16, 17, -1, 83, 20, 21, -1, -1, + 78, -1, -1, 227, -1, 83, -1, 231, -1, -1, 88, -1, -1, 91, -1, -1, -1, -1, -1, -1, - 98, -1, -1, -1, -1, -1, -1, 105, 106, -1, + 98, -1, -1, -1, -1, -1, -1, 105, -1, -1, + -1, 109, -1, 111, 112, 113, 114, 115, -1, -1, + -1, -1, -1, 121, -1, -1, -1, -1, -1, -1, + 128, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 3, 4, 5, -1, -1, -1, -1, 147, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 159, -1, -1, -1, -1, -1, 165, 166, 167, + 168, -1, -1, -1, 172, -1, 37, 175, 39, -1, + -1, 179, -1, -1, 45, -1, -1, -1, 49, -1, + 188, -1, 190, -1, -1, 56, -1, -1, -1, -1, + 198, 199, -1, -1, -1, -1, -1, -1, -1, -1, + 71, -1, -1, -1, -1, -1, 77, 78, -1, -1, + -1, -1, 83, -1, -1, -1, -1, 88, -1, 227, + 91, -1, -1, 231, -1, -1, -1, 98, -1, -1, + -1, -1, -1, -1, 105, -1, -1, -1, 109, -1, + 111, 112, 113, 114, -1, -1, -1, -1, -1, -1, + 121, -1, -1, -1, -1, -1, 3, 4, 5, -1, + -1, 15, 16, 17, 18, 19, 20, 21, 22, 23, + -1, -1, -1, -1, -1, -1, 147, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 159, -1, + 37, -1, 39, -1, -1, 166, 167, 168, 45, -1, + -1, 172, 49, -1, 175, -1, -1, -1, 179, 56, + -1, -1, -1, -1, -1, -1, -1, 188, -1, 190, + -1, -1, -1, -1, 71, -1, -1, 198, 199, -1, + 77, 78, -1, -1, -1, -1, 83, -1, -1, -1, + -1, 88, -1, -1, 91, -1, -1, -1, -1, -1, + -1, 98, -1, -1, -1, -1, 227, -1, 105, 3, + 231, 5, 109, -1, 111, 112, 113, 114, -1, -1, + -1, -1, -1, -1, 121, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 37, -1, 39, -1, -1, -1, -1, + 147, 45, -1, -1, -1, 49, -1, -1, -1, -1, + -1, -1, 159, -1, -1, -1, -1, -1, -1, 166, + 167, 168, -1, -1, -1, 172, -1, 71, 175, -1, + -1, -1, 179, 77, 78, -1, -1, -1, -1, 83, + -1, 188, -1, 190, 88, -1, -1, 91, -1, -1, + -1, 198, 199, 207, 98, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 109, -1, 111, 112, 113, + 114, -1, 226, 227, -1, -1, -1, 121, -1, 233, + 227, -1, -1, -1, 231, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, 3, 4, 5, -1, -1, + -1, -1, -1, -1, -1, 159, 14, -1, -1, -1, + -1, -1, 166, 167, 168, -1, -1, -1, 172, -1, + -1, 175, -1, 31, -1, 179, -1, -1, -1, 37, + -1, 39, -1, -1, 188, -1, 190, 45, 46, -1, + -1, 49, -1, -1, 198, 199, -1, -1, 56, -1, + 58, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 68, -1, -1, 71, -1, -1, -1, -1, -1, 77, + 78, -1, -1, 227, -1, 83, -1, 231, -1, -1, + 88, -1, -1, 91, -1, -1, -1, -1, -1, -1, + 98, -1, -1, -1, -1, -1, -1, 105, -1, -1, -1, 109, -1, 111, 112, 113, 114, 115, -1, -1, -1, -1, -1, 121, -1, -1, -1, -1, -1, -1, 128, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 147, - -1, 3, 4, 5, -1, -1, -1, -1, -1, -1, - -1, 159, -1, -1, -1, -1, -1, 165, 166, 167, - 168, -1, -1, -1, 172, -1, -1, 175, -1, 31, - -1, 179, -1, -1, -1, 37, -1, 39, -1, -1, - 188, -1, 190, 45, 46, -1, -1, 49, -1, -1, - 198, 199, -1, -1, 56, -1, 58, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 68, -1, -1, 71, - -1, -1, -1, 226, 227, 77, 78, -1, -1, 227, - -1, 83, -1, 231, -1, -1, 88, -1, -1, 91, - -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, - -1, -1, -1, 105, 106, -1, -1, 109, -1, 111, - 112, 113, 114, 115, -1, -1, -1, -1, -1, 121, - -1, -1, -1, -1, -1, -1, 128, -1, 212, 213, - 214, 215, 216, 217, 218, -1, -1, -1, -1, -1, - -1, -1, 226, 227, -1, 147, -1, 3, 4, 5, - -1, -1, -1, -1, -1, -1, -1, 159, -1, -1, - -1, -1, -1, 165, 166, 167, 168, -1, -1, -1, - 172, -1, -1, 175, -1, 31, -1, 179, -1, -1, - -1, 37, -1, 39, -1, -1, 188, -1, 190, 45, - 46, -1, -1, 49, -1, -1, 198, 199, -1, -1, - 56, -1, 58, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, - -1, 77, 78, -1, -1, 227, -1, 83, -1, 231, - -1, -1, 88, -1, -1, 91, -1, -1, -1, -1, - -1, -1, 98, -1, -1, -1, -1, -1, -1, 105, - -1, -1, -1, 109, -1, 111, 112, 113, 114, 115, - -1, -1, -1, -1, -1, 121, -1, -1, -1, -1, - -1, -1, 128, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3, 4, 5, -1, -1, -1, - -1, 147, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 159, -1, -1, -1, -1, -1, 165, - 166, 167, 168, -1, -1, -1, 172, -1, 37, 175, - 39, -1, -1, 179, -1, -1, 45, -1, -1, -1, - 49, -1, 188, -1, 190, -1, -1, 56, -1, -1, - -1, -1, 198, 199, -1, -1, -1, -1, -1, -1, + -1, -1, 3, 4, 5, -1, -1, -1, -1, -1, + -1, 159, 13, -1, -1, -1, -1, 165, 166, 167, + 168, -1, -1, -1, 172, -1, -1, 175, -1, -1, + 31, 179, -1, -1, -1, -1, 37, -1, 39, -1, + 188, -1, 190, -1, 45, 46, -1, -1, 49, -1, + 198, 199, -1, -1, -1, 56, -1, 58, -1, 15, + 16, 17, 18, 19, 20, 21, -1, 68, -1, -1, + 71, -1, -1, -1, -1, -1, 77, 78, -1, 227, + -1, -1, 83, -1, -1, -1, -1, 88, -1, -1, + 91, -1, -1, -1, -1, -1, -1, 98, -1, -1, + -1, -1, -1, -1, 105, 106, -1, -1, 109, -1, + 111, 112, 113, 114, 115, -1, -1, -1, -1, -1, + 121, -1, -1, -1, -1, -1, -1, 128, -1, -1, + -1, -1, -1, -1, 3, -1, 5, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 147, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 159, -1, + -1, -1, -1, -1, 165, 166, 167, 168, 37, -1, + 39, 172, -1, -1, 175, 44, 45, -1, 179, -1, + 49, -1, -1, -1, -1, -1, -1, 188, -1, 190, + -1, -1, -1, -1, -1, -1, -1, 198, 199, -1, -1, -1, 71, -1, -1, -1, -1, -1, 77, 78, - -1, -1, -1, -1, 83, -1, -1, -1, -1, 88, - -1, 227, 91, -1, -1, 231, -1, -1, -1, 98, - -1, -1, -1, -1, -1, -1, 105, -1, -1, -1, + -1, -1, -1, -1, 83, -1, 85, -1, -1, 88, + -1, -1, 91, -1, -1, -1, 227, -1, -1, 98, + -1, 15, 16, 17, 18, 19, 20, 21, -1, -1, 109, -1, 111, 112, 113, 114, -1, -1, -1, -1, - -1, -1, 121, -1, -1, -1, -1, -1, 3, 4, - 5, -1, -1, 15, 16, 17, 18, 19, 20, 21, - 22, 23, -1, -1, -1, -1, -1, -1, 147, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 159, -1, 37, -1, 39, -1, -1, 166, 167, 168, - 45, -1, -1, 172, 49, -1, 175, -1, -1, -1, - 179, 56, -1, -1, -1, -1, -1, -1, -1, 188, - -1, 190, -1, -1, -1, -1, 71, -1, -1, 198, - 199, -1, 77, 78, -1, -1, -1, -1, 83, -1, - -1, -1, -1, 88, -1, -1, 91, -1, -1, -1, - -1, -1, -1, 98, -1, -1, -1, -1, 227, -1, - 105, 3, 231, 5, 109, -1, 111, 112, 113, 114, - -1, -1, -1, -1, -1, -1, 121, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 37, -1, 39, -1, -1, - -1, -1, 147, 45, -1, -1, -1, 49, -1, -1, - -1, -1, -1, -1, 159, -1, -1, -1, -1, -1, - -1, 166, 167, 168, -1, -1, -1, 172, -1, 71, - 175, -1, -1, -1, 179, 77, 78, -1, -1, -1, - -1, 83, -1, 188, -1, 190, 88, -1, -1, 91, - -1, -1, -1, 198, 199, 207, 98, 209, 210, 211, - 212, 213, 214, 215, 216, 217, 218, 109, -1, 111, - 112, 113, 114, -1, 226, 227, -1, -1, -1, 121, - -1, 233, 227, -1, -1, -1, 231, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 0, -1, -1, 3, 4, 5, - -1, -1, -1, -1, -1, -1, -1, 159, 14, -1, - -1, -1, -1, -1, 166, 167, 168, -1, -1, -1, - 172, -1, -1, 175, -1, 31, -1, 179, -1, -1, - -1, 37, -1, 39, -1, -1, 188, -1, 190, 45, - 46, -1, -1, 49, -1, -1, 198, 199, -1, -1, - 56, -1, 58, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, - -1, 77, 78, -1, -1, 227, -1, 83, -1, 231, - -1, -1, 88, -1, -1, 91, -1, -1, -1, -1, - -1, -1, 98, -1, -1, -1, -1, -1, -1, 105, - -1, -1, -1, 109, -1, 111, 112, 113, 114, 115, - -1, -1, -1, -1, -1, 121, -1, -1, -1, -1, - -1, -1, 128, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 147, -1, -1, 3, 4, 5, -1, -1, -1, - -1, -1, -1, 159, 13, -1, -1, -1, -1, 165, - 166, 167, 168, -1, -1, -1, 172, -1, -1, 175, - -1, -1, 31, 179, -1, -1, -1, -1, 37, -1, - 39, -1, 188, -1, 190, -1, 45, 46, -1, -1, - 49, -1, 198, 199, -1, -1, -1, 56, -1, 58, - -1, -1, 15, 16, 17, 18, 19, 20, 21, 68, - 23, -1, 71, -1, -1, -1, -1, -1, 77, 78, - -1, 227, -1, -1, 83, -1, -1, -1, -1, 88, - -1, -1, 91, -1, -1, -1, -1, -1, -1, 98, - -1, -1, -1, -1, -1, -1, 105, 106, -1, -1, - 109, -1, 111, 112, 113, 114, 115, -1, -1, -1, - -1, -1, 121, -1, -1, -1, -1, -1, -1, 128, - -1, -1, -1, -1, -1, -1, 3, -1, 5, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 147, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 159, -1, -1, -1, -1, -1, 165, 166, 167, 168, - 37, -1, 39, 172, -1, -1, 175, 44, 45, -1, - 179, -1, 49, -1, -1, -1, -1, -1, -1, 188, - -1, 190, -1, -1, -1, -1, -1, -1, -1, 198, - 199, -1, -1, -1, 71, -1, -1, -1, -1, -1, - 77, 78, -1, -1, -1, -1, 83, -1, 85, -1, - -1, 88, -1, -1, 91, -1, -1, -1, 227, -1, - -1, 98, -1, 15, 16, 17, 18, 19, 20, 21, - -1, -1, 109, -1, 111, 112, 113, 114, -1, -1, - -1, -1, -1, -1, 121, -1, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, -1, -1, -1, -1, - -1, -1, -1, 226, 227, -1, -1, -1, 145, -1, - -1, -1, -1, 3, -1, 5, -1, -1, -1, -1, - -1, -1, 159, -1, -1, -1, -1, -1, -1, 166, - 167, 168, -1, -1, -1, 172, -1, -1, 175, 176, - -1, -1, 179, -1, -1, -1, -1, 37, -1, 39, - -1, 188, -1, 190, 44, 45, -1, -1, -1, 49, - -1, 198, 199, -1, -1, -1, 15, 16, 17, 18, - 19, 20, 21, 22, 23, -1, -1, -1, -1, 216, - -1, 71, -1, -1, -1, -1, -1, 77, 78, -1, - 227, -1, -1, 83, -1, 85, -1, -1, 88, -1, - -1, 91, -1, -1, -1, -1, -1, -1, 98, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 109, - -1, 111, 112, 113, 114, -1, -1, -1, -1, -1, - -1, 121, -1, -1, -1, -1, -1, 3, -1, 5, - -1, -1, 15, 16, 17, 18, 19, 20, 21, 22, - 23, -1, -1, -1, -1, 145, -1, -1, 24, 211, - 212, 213, 214, 215, 216, 217, 218, -1, -1, 159, - -1, 37, -1, 39, 226, 227, 166, 167, 168, 45, - -1, -1, 172, 49, -1, 175, 176, -1, -1, 179, - -1, -1, -1, -1, -1, -1, -1, -1, 188, -1, - 190, -1, -1, -1, -1, 71, -1, -1, 198, 199, - -1, 77, 78, -1, -1, -1, -1, 83, -1, -1, - -1, -1, 88, -1, -1, 91, 216, -1, -1, -1, - -1, -1, 98, -1, -1, -1, -1, 227, -1, -1, - 3, -1, 5, 109, -1, 111, 112, 113, 114, -1, - -1, -1, -1, -1, -1, 121, -1, -1, 207, -1, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - -1, -1, -1, -1, 37, -1, 39, 226, 227, -1, - -1, -1, 45, -1, 233, -1, 49, -1, -1, -1, - -1, -1, -1, 159, -1, -1, -1, -1, -1, -1, - 166, 167, 168, -1, -1, -1, 172, -1, 71, 175, - -1, -1, -1, 179, 77, 78, -1, -1, -1, -1, - 83, -1, 188, -1, 190, 88, -1, -1, 91, -1, - -1, -1, 198, 199, 207, 98, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 109, -1, 111, 112, - 113, 114, -1, 226, 227, -1, -1, -1, 121, -1, - 233, 227, 15, 16, 17, 18, 19, 20, 21, 22, - 23, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 15, 16, 17, 18, 19, 20, - 21, 22, 23, -1, -1, -1, 159, -1, -1, -1, - -1, -1, -1, 166, 167, 168, -1, -1, -1, 172, - -1, -1, 175, -1, -1, -1, 179, -1, -1, -1, - -1, -1, -1, -1, -1, 188, -1, 190, -1, -1, - -1, -1, -1, -1, -1, 198, 199, 15, 16, 17, - 18, 19, 20, 21, 22, 23, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 227, 15, 16, 17, 18, 19, - 20, 21, 22, 23, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 15, 16, 17, 18, 19, 20, - 21, 15, 16, 17, 18, 19, 20, 21, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 207, -1, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, -1, -1, -1, -1, - -1, -1, -1, 226, 227, 228, 207, -1, 209, 210, + -1, -1, 121, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, -1, -1, -1, -1, -1, -1, -1, + 226, 227, -1, -1, -1, -1, 145, -1, -1, -1, + -1, 3, -1, 5, -1, -1, -1, -1, -1, -1, + 159, -1, -1, -1, -1, -1, -1, 166, 167, 168, + -1, -1, -1, 172, -1, -1, 175, 176, -1, -1, + 179, -1, -1, -1, -1, 37, -1, 39, -1, 188, + -1, 190, 44, 45, -1, -1, -1, 49, -1, 198, + 199, -1, -1, -1, 15, 16, 17, 18, 19, 20, + 21, 22, 23, -1, -1, -1, -1, 216, -1, 71, + -1, -1, -1, -1, -1, 77, 78, -1, 227, -1, + -1, 83, -1, 85, -1, -1, 88, -1, -1, 91, + -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 109, -1, 111, + 112, 113, 114, -1, -1, -1, -1, -1, -1, 121, + -1, -1, -1, -1, -1, 3, -1, 5, -1, -1, + 15, 16, 17, 18, 19, 20, 21, 22, 23, -1, + -1, -1, -1, 145, -1, -1, 24, 211, 212, 213, + 214, 215, 216, 217, 218, -1, -1, 159, -1, 37, + -1, 39, 226, 227, 166, 167, 168, 45, -1, -1, + 172, 49, -1, 175, 176, -1, -1, 179, -1, -1, + -1, -1, -1, -1, -1, -1, 188, -1, 190, -1, + -1, -1, -1, 71, -1, -1, 198, 199, -1, 77, + 78, -1, -1, -1, -1, 83, -1, -1, -1, -1, + 88, -1, -1, 91, 216, -1, -1, -1, -1, -1, + 98, -1, -1, -1, -1, 227, -1, -1, 3, -1, + 5, 109, -1, 111, 112, 113, 114, -1, -1, -1, + -1, -1, -1, 121, -1, -1, 207, -1, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, -1, - -1, -1, -1, -1, -1, 226, 227, 228, -1, -1, + -1, -1, 37, -1, 39, 226, 227, -1, -1, -1, + 45, -1, 233, -1, 49, -1, -1, -1, -1, -1, + -1, 159, -1, -1, -1, -1, -1, -1, 166, 167, + 168, -1, -1, -1, 172, -1, 71, 175, -1, -1, + -1, 179, 77, 78, -1, -1, -1, -1, 83, -1, + 188, -1, 190, 88, -1, -1, 91, -1, -1, -1, + 198, 199, 207, 98, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 109, -1, 111, 112, 113, 114, + -1, 226, 227, -1, -1, -1, 121, -1, 233, 227, + 15, 16, 17, 18, 19, 20, 21, 22, 23, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 15, 16, 17, 18, 19, 20, 21, 22, + 23, -1, -1, -1, 159, -1, -1, -1, -1, -1, + -1, 166, 167, 168, -1, -1, -1, 172, -1, -1, + 175, -1, -1, -1, 179, -1, -1, -1, -1, -1, + -1, -1, -1, 188, -1, 190, -1, -1, -1, -1, + -1, -1, -1, 198, 199, 15, 16, 17, 18, 19, + 20, 21, 22, 23, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 227, 15, 16, 17, 18, 19, 20, 21, + 22, 23, -1, -1, -1, -1, -1, -1, -1, 15, + 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 207, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - 218, -1, -1, -1, -1, -1, -1, -1, 226, 227, - -1, -1, -1, -1, -1, -1, -1, 207, -1, 209, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 207, -1, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, -1, -1, -1, -1, -1, -1, + -1, 226, 227, 228, 207, -1, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, -1, -1, -1, -1, + -1, -1, -1, 226, 227, 228, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, -1, - 3, -1, 5, -1, -1, -1, 226, 227, 209, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 212, 213, - 214, 215, 216, 217, 218, 226, 227, -1, 31, -1, - -1, -1, 226, 227, 37, -1, 39, -1, -1, -1, - -1, -1, 45, 46, -1, -1, 49, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 68, -1, -1, 71, -1, - -1, -1, -1, -1, 77, 78, -1, -1, -1, -1, - 83, -1, -1, -1, -1, 88, -1, -1, 91, -1, - -1, -1, -1, -1, -1, 98, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 109, -1, 111, 112, - 113, 114, 115, -1, -1, 118, -1, -1, 121, -1, - -1, -1, -1, -1, 3, -1, 5, 6, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 159, -1, 37, -1, - 39, -1, 165, 166, 167, 168, 45, -1, -1, 172, - 49, -1, 175, -1, -1, -1, 179, -1, -1, -1, - -1, -1, -1, -1, -1, 188, -1, 190, -1, -1, - -1, -1, 71, -1, -1, 198, 199, -1, 77, 78, - -1, -1, -1, -1, 83, -1, -1, -1, -1, 88, - -1, -1, 91, -1, -1, -1, -1, -1, -1, 98, - -1, -1, -1, -1, -1, -1, -1, 3, -1, 5, - 109, -1, 111, 112, 113, 114, -1, -1, -1, -1, - -1, -1, 121, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3, -1, 5, -1, + -1, -1, -1, -1, -1, -1, 226, 227, -1, -1, + -1, -1, -1, -1, -1, 207, -1, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 3, -1, 5, + -1, -1, -1, -1, 226, 227, 212, 213, 214, 215, + 216, 217, 218, -1, -1, -1, -1, -1, -1, -1, + 226, 227, -1, -1, -1, 31, -1, -1, -1, -1, -1, 37, -1, 39, -1, -1, -1, -1, -1, 45, - -1, -1, -1, 49, -1, -1, -1, -1, -1, -1, + 46, -1, -1, 49, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 68, -1, -1, 71, -1, -1, -1, -1, + -1, 77, 78, -1, -1, -1, -1, 83, -1, -1, + -1, -1, 88, -1, -1, 91, -1, -1, -1, -1, + -1, -1, 98, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 109, -1, 111, 112, 113, 114, 115, + -1, -1, 118, -1, -1, 121, -1, -1, -1, -1, + -1, 3, -1, 5, 6, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 159, -1, 37, -1, 39, -1, 165, + 166, 167, 168, 45, -1, -1, 172, 49, -1, 175, + -1, -1, -1, 179, -1, -1, -1, -1, -1, -1, + -1, -1, 188, -1, 190, -1, -1, -1, -1, 71, + -1, -1, 198, 199, -1, 77, 78, -1, -1, -1, + -1, 83, -1, -1, -1, -1, 88, -1, -1, 91, + -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, + -1, -1, -1, -1, 3, -1, 5, 109, -1, 111, + 112, 113, 114, -1, -1, -1, -1, -1, -1, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3, -1, 5, -1, -1, 37, -1, + 39, -1, -1, -1, -1, -1, 45, -1, -1, -1, + 49, -1, -1, -1, -1, -1, -1, 159, -1, -1, + -1, -1, -1, -1, 166, 167, 168, 37, -1, 39, + 172, -1, 71, 175, -1, 45, -1, 179, 77, 78, + -1, -1, -1, -1, 83, -1, 188, -1, 190, 88, + -1, -1, 91, -1, -1, -1, 198, 199, -1, 98, + -1, 71, -1, -1, -1, -1, -1, 77, 78, -1, + 109, -1, 111, 112, 113, 114, -1, -1, 88, -1, + -1, 91, 121, -1, -1, -1, -1, -1, 98, -1, + -1, -1, -1, -1, -1, -1, 3, -1, 5, -1, + -1, 111, 112, 113, 114, -1, -1, -1, -1, -1, + -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, 159, -1, -1, -1, -1, -1, -1, 166, 167, 168, - 37, -1, 39, 172, -1, 71, 175, -1, 45, -1, - 179, 77, 78, -1, -1, -1, -1, 83, -1, 188, - -1, 190, 88, -1, -1, 91, -1, -1, -1, 198, - 199, -1, 98, -1, 71, -1, -1, -1, -1, -1, - 77, 78, -1, 109, -1, 111, 112, 113, 114, -1, - -1, 88, -1, -1, 91, 121, -1, -1, -1, -1, - -1, 98, -1, -1, -1, -1, -1, -1, -1, 3, - -1, 5, -1, -1, 111, 112, 113, 114, -1, -1, - -1, -1, -1, -1, 121, -1, -1, -1, -1, -1, - -1, -1, -1, 159, -1, -1, -1, -1, -1, -1, - 166, 167, 168, 37, -1, 39, 172, -1, -1, 175, - -1, 45, -1, 179, -1, -1, 5, -1, -1, -1, - -1, -1, 188, -1, 190, -1, -1, -1, -1, 166, - 167, 168, 198, 199, -1, 172, -1, 71, -1, -1, - -1, -1, 179, -1, 78, -1, -1, -1, 37, -1, - 39, 188, -1, 190, 88, -1, 45, 91, -1, -1, - 49, 198, 199, -1, 98, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 111, 112, 113, - 114, -1, 71, -1, -1, -1, -1, 121, 77, 78, - -1, -1, -1, -1, 83, -1, -1, -1, -1, 88, - -1, -1, 91, -1, -1, -1, -1, -1, -1, 98, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, - 109, -1, 111, 112, 113, 114, -1, -1, -1, -1, - -1, -1, 121, 167, 168, -1, -1, -1, 172, -1, + 37, -1, 39, 172, -1, -1, 175, -1, 45, -1, + 179, -1, -1, 5, -1, -1, -1, -1, -1, 188, + -1, 190, -1, -1, -1, -1, 166, 167, 168, 198, + 199, -1, 172, -1, 71, -1, -1, -1, -1, 179, + -1, 78, -1, -1, -1, 37, -1, 39, 188, -1, + 190, 88, -1, 45, 91, -1, -1, 49, 198, 199, + -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 111, 112, 113, 114, -1, 71, + -1, -1, -1, -1, 121, 77, 78, -1, -1, -1, + -1, 83, -1, -1, -1, -1, 88, -1, -1, 91, + -1, -1, -1, -1, -1, -1, 98, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 5, 109, -1, 111, + 112, 113, 114, -1, -1, -1, -1, -1, -1, 121, + 167, 168, -1, -1, -1, 172, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 37, -1, + 39, -1, -1, 190, -1, -1, 45, -1, -1, -1, + -1, -1, 199, -1, -1, -1, -1, 159, -1, -1, + -1, -1, -1, -1, 166, 167, 168, -1, -1, -1, + 172, -1, 71, 175, -1, -1, -1, 179, 77, 78, + -1, -1, -1, -1, -1, -1, 188, -1, 190, 88, + -1, -1, 91, -1, -1, -1, 198, 199, -1, 98, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 37, -1, 39, -1, -1, 190, -1, -1, 45, - -1, -1, -1, -1, -1, 199, -1, -1, -1, -1, - 159, -1, -1, -1, -1, -1, -1, 166, 167, 168, - -1, -1, -1, 172, -1, 71, 175, -1, -1, -1, - 179, 77, 78, -1, -1, -1, -1, -1, -1, 188, - -1, 190, 88, -1, -1, 91, -1, -1, -1, 198, - 199, -1, 98, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 111, 112, 113, 114, -1, - -1, -1, -1, -1, -1, 121, -1, -1, -1, -1, + -1, -1, 111, 112, 113, 114, -1, -1, -1, -1, + -1, -1, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 166, 167, 168, -1, -1, -1, 172, -1, -1, -1, - -1, -1, -1, 179, -1, -1, -1, -1, 25, 26, - -1, -1, 188, 30, 190, 32, 33, 34, 35, 36, - -1, 38, 198, 199, 41, -1, 43, -1, -1, -1, - 47, 48, -1, 50, 51, 52, 53, 54, 55, -1, - 57, -1, 59, 60, 61, -1, 63, 64, 65, 66, - 67, -1, 69, -1, -1, 72, 73, 74, 75, 76, - -1, -1, 79, 80, 81, 82, -1, -1, -1, 86, - 87, -1, 89, 90, -1, 92, 93, 94, 95, 96, - 97, -1, 99, 100, 101, 102, 103, 104, -1, -1, - 107, -1, -1, 110, -1, -1, -1, -1, -1, 116, - 117, -1, 119, 120, -1, 122, 123, 124, -1, -1, - -1, -1, 129, 130, 131, -1, 133, 134, 135, -1, - 137, 138, 139, 140, 141, 142, 143, 144, -1, 146, - -1, 148, -1, 150, 151, 152, 153, 154, 155, 156, - 157, 158, -1, 160, 161, -1, 163, 164, -1, -1, - -1, -1, -1, 170, -1, -1, 173, -1, 175, -1, - 177, 178, -1, -1, 181, 182, 183, 184, -1, -1, - 187, -1, 189, -1, 191, 192, 193, 194, 195, 196, - 197, -1, -1, 200 + -1, -1, -1, -1, -1, -1, -1, 166, 167, 168, + -1, -1, -1, 172, -1, -1, -1, -1, -1, -1, + 179, -1, -1, -1, -1, 25, 26, -1, -1, 188, + 30, 190, 32, 33, 34, 35, 36, -1, 38, 198, + 199, 41, -1, 43, -1, -1, -1, 47, 48, -1, + 50, 51, 52, 53, 54, 55, -1, 57, -1, 59, + 60, 61, -1, 63, 64, 65, 66, 67, -1, 69, + -1, -1, 72, 73, 74, 75, 76, -1, -1, 79, + 80, 81, 82, -1, -1, -1, 86, 87, -1, 89, + 90, -1, 92, 93, 94, 95, 96, 97, -1, 99, + 100, 101, 102, 103, 104, -1, -1, 107, -1, -1, + 110, -1, -1, -1, -1, -1, 116, 117, -1, 119, + 120, -1, 122, 123, 124, -1, -1, -1, -1, 129, + 130, 131, -1, 133, 134, 135, -1, 137, 138, 139, + 140, 141, 142, 143, 144, -1, 146, -1, 148, -1, + 150, 151, 152, 153, 154, 155, 156, 157, 158, -1, + 160, 161, -1, 163, 164, -1, -1, -1, -1, -1, + 170, -1, -1, 173, -1, 175, -1, 177, 178, -1, + -1, 181, 182, 183, 184, -1, -1, 187, -1, 189, + -1, 191, 192, 193, 194, 195, 196, 197, -1, -1, + 200 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of @@ -2513,71 +2523,71 @@ 196, 197, 200, 266, 273, 364, 229, 244, 244, 62, 126, 186, 338, 77, 118, 179, 188, 256, 282, 309, 311, 313, 326, 344, 365, 369, 229, 3, 299, 212, - 229, 229, 229, 230, 229, 318, 229, 247, 229, 346, - 347, 346, 346, 44, 85, 145, 176, 216, 232, 275, - 299, 300, 348, 349, 362, 282, 365, 367, 369, 346, - 229, 29, 59, 74, 82, 376, 377, 371, 115, 9, - 238, 230, 229, 212, 3, 60, 367, 230, 180, 230, + 229, 229, 229, 226, 230, 229, 318, 229, 247, 229, + 346, 347, 346, 346, 44, 85, 145, 176, 216, 232, + 275, 299, 300, 348, 349, 362, 282, 365, 367, 369, + 346, 229, 29, 59, 74, 82, 376, 377, 371, 115, + 9, 238, 230, 229, 212, 3, 60, 367, 230, 180, + 230, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, - 232, 206, 228, 13, 58, 106, 241, 248, 255, 258, - 309, 310, 311, 312, 313, 314, 315, 318, 326, 329, - 334, 339, 231, 367, 299, 264, 265, 230, 3, 299, - 3, 3, 230, 230, 230, 230, 335, 362, 226, 301, - 304, 305, 306, 307, 308, 243, 230, 343, 348, 348, - 234, 227, 232, 263, 346, 232, 206, 228, 5, 233, - 115, 231, 264, 278, 279, 280, 281, 327, 208, 208, - 233, 289, 232, 292, 270, 272, 344, 9, 9, 12, - 274, 300, 3, 6, 7, 8, 9, 10, 11, 84, - 136, 171, 185, 211, 214, 215, 216, 219, 220, 232, - 285, 286, 287, 270, 344, 6, 269, 274, 285, 288, - 9, 9, 267, 288, 344, 287, 9, 9, 287, 9, - 287, 285, 262, 265, 344, 287, 283, 284, 285, 27, - 132, 174, 268, 9, 9, 364, 9, 287, 367, 283, - 271, 344, 285, 367, 127, 201, 202, 203, 204, 205, - 363, 367, 367, 274, 6, 7, 370, 9, 367, 273, - 227, 230, 232, 229, 229, 229, 230, 229, 229, 247, - 300, 344, 246, 316, 316, 231, 208, 323, 299, 216, - 216, 206, 213, 242, 149, 320, 326, 342, 348, 233, - 288, 216, 228, 285, 259, 260, 261, 262, 28, 70, - 169, 204, 378, 379, 377, 230, 305, 300, 231, 206, - 234, 299, 324, 325, 6, 250, 250, 231, 264, 290, - 264, 294, 231, 265, 291, 294, 233, 206, 233, 233, - 233, 232, 285, 285, 285, 285, 285, 285, 5, 285, - 345, 347, 366, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 207, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 226, 227, 206, 233, 233, 206, 226, - 233, 206, 233, 233, 206, 233, 233, 233, 233, 233, - 233, 233, 233, 233, 233, 233, 344, 216, 232, 263, - 275, 300, 354, 356, 357, 233, 206, 233, 233, 233, - 233, 233, 233, 206, 233, 233, 233, 206, 233, 233, - 233, 233, 233, 233, 226, 233, 233, 233, 273, 240, - 9, 245, 212, 232, 348, 358, 231, 248, 264, 265, - 231, 264, 317, 231, 247, 305, 306, 162, 333, 307, - 231, 208, 125, 294, 321, 229, 228, 228, 233, 206, - 206, 233, 186, 372, 373, 212, 281, 287, 206, 328, - 6, 233, 233, 344, 369, 344, 365, 233, 229, 229, - 269, 270, 345, 233, 216, 232, 263, 275, 350, 352, - 353, 366, 346, 285, 285, 3, 285, 285, 285, 285, + 232, 232, 206, 228, 13, 58, 106, 241, 248, 255, + 258, 309, 310, 311, 312, 313, 314, 315, 318, 326, + 329, 334, 339, 231, 367, 299, 264, 265, 230, 3, + 299, 3, 3, 230, 230, 230, 230, 335, 362, 226, + 301, 304, 305, 306, 307, 308, 3, 243, 230, 343, + 348, 348, 234, 227, 232, 263, 346, 232, 206, 228, + 5, 233, 115, 231, 264, 278, 279, 280, 281, 327, + 208, 208, 233, 289, 232, 292, 270, 272, 344, 9, + 9, 12, 274, 300, 3, 6, 7, 8, 9, 10, + 11, 84, 136, 171, 185, 211, 214, 215, 216, 219, + 220, 232, 285, 286, 287, 270, 344, 6, 269, 274, + 285, 288, 9, 9, 267, 288, 344, 287, 9, 9, + 287, 9, 287, 285, 262, 265, 344, 287, 283, 284, + 285, 27, 132, 174, 268, 9, 9, 364, 9, 287, + 367, 283, 271, 344, 285, 367, 127, 201, 202, 203, + 204, 205, 363, 367, 367, 274, 6, 7, 370, 9, + 367, 273, 227, 230, 232, 229, 229, 229, 230, 229, + 229, 247, 300, 344, 246, 316, 316, 231, 208, 323, + 299, 216, 216, 206, 213, 242, 149, 320, 326, 342, + 348, 233, 288, 216, 228, 285, 259, 260, 261, 262, + 28, 70, 169, 204, 378, 379, 377, 230, 305, 300, + 231, 206, 234, 299, 324, 325, 6, 250, 250, 231, + 264, 290, 264, 294, 231, 265, 291, 294, 233, 206, + 233, 233, 233, 232, 285, 285, 285, 285, 285, 285, + 5, 285, 345, 347, 366, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 207, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 226, 227, 206, 233, 233, + 206, 226, 233, 206, 233, 233, 206, 233, 233, 233, + 233, 233, 233, 233, 233, 233, 233, 233, 344, 216, + 232, 263, 275, 300, 354, 356, 357, 233, 206, 233, + 233, 233, 233, 233, 233, 206, 233, 233, 233, 206, + 233, 233, 233, 233, 233, 233, 226, 233, 233, 233, + 273, 240, 9, 245, 212, 232, 348, 358, 231, 248, + 264, 265, 231, 264, 317, 231, 247, 305, 306, 162, + 333, 307, 231, 208, 125, 294, 321, 229, 228, 228, + 233, 206, 206, 233, 186, 372, 373, 212, 281, 287, + 206, 328, 6, 233, 233, 344, 369, 344, 365, 233, + 229, 229, 269, 270, 345, 233, 216, 232, 263, 275, + 350, 352, 353, 366, 346, 285, 285, 3, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, - 285, 285, 285, 3, 285, 287, 6, 288, 9, 356, - 343, 216, 259, 275, 355, 356, 232, 263, 284, 287, - 270, 6, 115, 231, 233, 244, 330, 259, 206, 247, - 247, 68, 115, 336, 337, 247, 305, 306, 332, 230, - 208, 229, 231, 265, 295, 296, 231, 24, 262, 379, - 375, 231, 372, 308, 324, 213, 354, 360, 361, 229, - 348, 297, 300, 352, 343, 216, 259, 275, 351, 352, - 233, 232, 263, 346, 208, 228, 233, 356, 343, 233, - 356, 233, 259, 233, 305, 247, 231, 325, 233, 348, - 299, 299, 304, 229, 229, 206, 246, 229, 5, 213, - 208, 359, 206, 229, 230, 233, 352, 343, 233, 356, - 233, 285, 259, 285, 356, 233, 212, 213, 247, 299, - 305, 306, 231, 229, 229, 288, 360, 276, 356, 233, - 308, 232, 247, 43, 60, 231, 277, 213, 259, 287, - 208, 229, 233, 208, 229, 293, 294, 331, 293, 229, - 247 + 285, 285, 285, 285, 285, 3, 285, 287, 6, 288, + 9, 356, 343, 216, 259, 275, 355, 356, 232, 263, + 284, 287, 270, 6, 115, 231, 233, 244, 330, 259, + 206, 247, 247, 68, 115, 336, 337, 247, 305, 306, + 332, 230, 208, 229, 231, 265, 295, 296, 231, 24, + 262, 379, 375, 231, 372, 308, 324, 213, 354, 360, + 361, 229, 348, 297, 300, 352, 343, 216, 259, 275, + 351, 352, 233, 232, 263, 346, 208, 228, 233, 356, + 343, 233, 356, 233, 259, 233, 305, 247, 231, 325, + 233, 348, 299, 299, 304, 229, 229, 206, 246, 229, + 5, 213, 208, 359, 206, 229, 230, 233, 352, 343, + 233, 356, 233, 285, 259, 285, 356, 233, 212, 213, + 247, 299, 305, 306, 231, 229, 229, 288, 360, 276, + 356, 233, 308, 232, 247, 43, 60, 231, 277, 213, + 259, 287, 208, 229, 233, 208, 229, 293, 294, 331, + 293, 229, 247 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ @@ -2617,22 +2627,22 @@ 301, 301, 301, 301, 301, 301, 301, 302, 302, 303, 303, 303, 303, 303, 303, 303, 303, 303, 304, 304, 305, 305, 306, 307, 307, 307, 307, 307, 308, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 316, 317, - 317, 318, 319, 320, 320, 321, 321, 322, 322, 323, - 323, 323, 324, 325, 325, 326, 327, 328, 326, 329, - 330, 331, 329, 332, 332, 332, 332, 333, 333, 335, - 334, 334, 336, 336, 337, 338, 339, 340, 340, 340, - 341, 342, 343, 343, 344, 344, 345, 345, 346, 346, - 347, 347, 347, 348, 348, 348, 349, 349, 349, 349, - 350, 350, 350, 351, 351, 352, 352, 353, 353, 353, - 353, 353, 354, 354, 354, 355, 355, 356, 356, 357, - 357, 357, 357, 357, 357, 358, 358, 359, 359, 360, - 361, 361, 362, 362, 363, 363, 363, 363, 363, 363, - 364, 364, 364, 365, 366, 366, 366, 366, 366, 366, - 366, 366, 366, 366, 367, 367, 367, 368, 369, 369, - 370, 370, 370, 371, 371, 372, 372, 373, 374, 375, - 375, 376, 376, 377, 377, 377, 377, 378, 378, 379, - 379, 379, 379 + 309, 310, 311, 312, 313, 314, 315, 315, 316, 316, + 317, 317, 318, 319, 320, 320, 321, 321, 322, 322, + 323, 323, 323, 324, 325, 325, 326, 327, 328, 326, + 329, 330, 331, 329, 332, 332, 332, 332, 333, 333, + 335, 334, 334, 336, 336, 337, 338, 339, 340, 340, + 340, 341, 342, 343, 343, 344, 344, 345, 345, 346, + 346, 347, 347, 347, 348, 348, 348, 349, 349, 349, + 349, 350, 350, 350, 351, 351, 352, 352, 353, 353, + 353, 353, 353, 354, 354, 354, 355, 355, 356, 356, + 357, 357, 357, 357, 357, 357, 358, 358, 359, 359, + 360, 361, 361, 362, 362, 363, 363, 363, 363, 363, + 363, 364, 364, 364, 365, 366, 366, 366, 366, 366, + 366, 366, 366, 366, 366, 367, 367, 367, 368, 369, + 369, 370, 370, 370, 371, 371, 372, 372, 373, 374, + 375, 375, 376, 376, 377, 377, 377, 377, 378, 378, + 379, 379, 379, 379 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ @@ -2672,22 +2682,22 @@ 2, 1, 1, 1, 1, 1, 1, 0, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 2, 3, 1, 2, 4, 1, 1, 2, 1, 2, 1, 3, - 2, 6, 2, 6, 2, 5, 2, 0, 2, 3, - 3, 2, 1, 2, 3, 2, 3, 6, 6, 0, - 2, 2, 1, 1, 3, 2, 0, 0, 7, 8, - 0, 0, 13, 1, 1, 3, 3, 0, 2, 0, - 9, 2, 2, 3, 2, 2, 6, 1, 1, 1, - 1, 1, 0, 2, 2, 3, 2, 3, 0, 1, - 2, 2, 2, 3, 2, 1, 1, 3, 2, 4, - 3, 2, 1, 3, 2, 0, 1, 3, 2, 1, - 3, 4, 3, 2, 1, 3, 2, 0, 1, 1, - 3, 2, 1, 3, 4, 1, 3, 0, 2, 2, - 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 5, 1, 1, 1, 2, 1, 2, - 1, 2, 4, 1, 1, 2, 1, 5, 5, 10, - 1, 3, 1, 0, 2, 0, 2, 4, 6, 0, - 3, 1, 3, 4, 1, 1, 1, 1, 3, 1, - 1, 1, 1 + 2, 6, 2, 6, 2, 5, 2, 3, 0, 2, + 3, 3, 2, 1, 2, 3, 2, 3, 6, 6, + 0, 2, 2, 1, 1, 3, 2, 0, 0, 7, + 8, 0, 0, 13, 1, 1, 3, 3, 0, 2, + 0, 9, 2, 2, 3, 2, 2, 6, 1, 1, + 1, 1, 1, 0, 2, 2, 3, 2, 3, 0, + 1, 2, 2, 2, 3, 2, 1, 1, 3, 2, + 4, 3, 2, 1, 3, 2, 0, 1, 3, 2, + 1, 3, 4, 3, 2, 1, 3, 2, 0, 1, + 1, 3, 2, 1, 3, 4, 1, 3, 0, 2, + 2, 1, 3, 1, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 5, 1, 1, 1, 2, 1, + 2, 1, 2, 4, 1, 1, 2, 1, 5, 5, + 10, 1, 3, 1, 0, 2, 0, 2, 4, 6, + 0, 3, 1, 3, 4, 1, 1, 1, 1, 3, + 1, 1, 1, 1 }; @@ -3435,13 +3445,13 @@ write_dlldata((yyvsp[-1].stmt_list)); write_local_stubs((yyvsp[-1].stmt_list)); } -#line 3439 "tools/widl/parser.tab.c" +#line 3449 "tools/widl/parser.tab.c" break; case 5: /* decl_statements: %empty */ #line 371 "tools/widl/parser.y" { (yyval.stmt_list) = NULL; } -#line 3445 "tools/widl/parser.tab.c" +#line 3455 "tools/widl/parser.tab.c" break; case 6: /* decl_statements: decl_statements tINTERFACE qualified_type '<' parameterized_type_args '>' ';' */ @@ -3449,73 +3459,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 3453 "tools/widl/parser.tab.c" +#line 3463 "tools/widl/parser.tab.c" break; case 7: /* decl_block: tDECLARE '{' decl_statements '}' */ #line 378 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-1].stmt_list); } -#line 3459 "tools/widl/parser.tab.c" +#line 3469 "tools/widl/parser.tab.c" break; case 8: /* imp_decl_statements: %empty */ #line 380 "tools/widl/parser.y" { (yyval.stmt_list) = NULL; } -#line 3465 "tools/widl/parser.tab.c" +#line 3475 "tools/widl/parser.tab.c" break; case 9: /* imp_decl_statements: imp_decl_statements tINTERFACE qualified_type '<' parameterized_type_args '>' ';' */ #line 382 "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 3471 "tools/widl/parser.tab.c" +#line 3481 "tools/widl/parser.tab.c" break; case 10: /* imp_decl_block: tDECLARE '{' imp_decl_statements '}' */ #line 385 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-1].stmt_list); } -#line 3477 "tools/widl/parser.tab.c" +#line 3487 "tools/widl/parser.tab.c" break; case 11: /* gbl_statements: %empty */ #line 387 "tools/widl/parser.y" { (yyval.stmt_list) = NULL; } -#line 3483 "tools/widl/parser.tab.c" +#line 3493 "tools/widl/parser.tab.c" break; case 12: /* $@1: %empty */ #line 388 "tools/widl/parser.y" - { push_namespace((yyvsp[-1].str)); } -#line 3489 "tools/widl/parser.tab.c" + { push_namespaces((yyvsp[-1].str_list)); } +#line 3499 "tools/widl/parser.tab.c" break; case 13: /* gbl_statements: gbl_statements namespacedef '{' $@1 gbl_statements '}' */ #line 389 "tools/widl/parser.y" - { pop_namespace((yyvsp[-4].str)); (yyval.stmt_list) = append_statements((yyvsp[-5].stmt_list), (yyvsp[-1].stmt_list)); } -#line 3495 "tools/widl/parser.tab.c" + { pop_namespaces((yyvsp[-4].str_list)); (yyval.stmt_list) = append_statements((yyvsp[-5].stmt_list), (yyvsp[-1].stmt_list)); } +#line 3505 "tools/widl/parser.tab.c" break; case 14: /* gbl_statements: gbl_statements interface ';' */ #line 390 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-2].stmt_list), make_statement_reference((yyvsp[-1].type))); } -#line 3501 "tools/widl/parser.tab.c" +#line 3511 "tools/widl/parser.tab.c" break; case 15: /* gbl_statements: gbl_statements dispinterface ';' */ #line 391 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-2].stmt_list), make_statement_reference((yyvsp[-1].type))); } -#line 3507 "tools/widl/parser.tab.c" +#line 3517 "tools/widl/parser.tab.c" break; case 16: /* gbl_statements: gbl_statements interfacedef */ #line 392 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); } -#line 3513 "tools/widl/parser.tab.c" +#line 3523 "tools/widl/parser.tab.c" break; case 17: /* gbl_statements: gbl_statements delegatedef */ #line 393 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); } -#line 3519 "tools/widl/parser.tab.c" +#line 3529 "tools/widl/parser.tab.c" break; case 18: /* gbl_statements: gbl_statements coclass ';' */ @@ -3523,7 +3533,7 @@ { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 3527 "tools/widl/parser.tab.c" +#line 3537 "tools/widl/parser.tab.c" break; case 19: /* gbl_statements: gbl_statements coclassdef */ @@ -3531,105 +3541,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 3535 "tools/widl/parser.tab.c" +#line 3545 "tools/widl/parser.tab.c" break; case 20: /* gbl_statements: gbl_statements apicontract ';' */ #line 400 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 3541 "tools/widl/parser.tab.c" +#line 3551 "tools/widl/parser.tab.c" break; case 21: /* gbl_statements: gbl_statements apicontract_def */ #line 401 "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 3548 "tools/widl/parser.tab.c" +#line 3558 "tools/widl/parser.tab.c" break; case 22: /* gbl_statements: gbl_statements runtimeclass ';' */ #line 403 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 3554 "tools/widl/parser.tab.c" +#line 3564 "tools/widl/parser.tab.c" break; case 23: /* gbl_statements: gbl_statements runtimeclass_def */ #line 404 "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 3561 "tools/widl/parser.tab.c" +#line 3571 "tools/widl/parser.tab.c" break; case 24: /* gbl_statements: gbl_statements moduledef */ #line 406 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_module((yyvsp[0].type))); } -#line 3567 "tools/widl/parser.tab.c" +#line 3577 "tools/widl/parser.tab.c" break; case 25: /* gbl_statements: gbl_statements librarydef */ #line 407 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_library((yyvsp[0].typelib))); } -#line 3573 "tools/widl/parser.tab.c" +#line 3583 "tools/widl/parser.tab.c" break; case 26: /* gbl_statements: gbl_statements statement */ #line 408 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); } -#line 3579 "tools/widl/parser.tab.c" +#line 3589 "tools/widl/parser.tab.c" break; case 27: /* gbl_statements: gbl_statements decl_block */ #line 409 "tools/widl/parser.y" { (yyval.stmt_list) = append_statements((yyvsp[-1].stmt_list), (yyvsp[0].stmt_list)); } -#line 3585 "tools/widl/parser.tab.c" +#line 3595 "tools/widl/parser.tab.c" break; case 28: /* imp_statements: %empty */ #line 412 "tools/widl/parser.y" { (yyval.stmt_list) = NULL; } -#line 3591 "tools/widl/parser.tab.c" +#line 3601 "tools/widl/parser.tab.c" break; case 29: /* imp_statements: imp_statements interface ';' */ #line 413 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-2].stmt_list), make_statement_reference((yyvsp[-1].type))); } -#line 3597 "tools/widl/parser.tab.c" +#line 3607 "tools/widl/parser.tab.c" break; case 30: /* imp_statements: imp_statements dispinterface ';' */ #line 414 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-2].stmt_list), make_statement_reference((yyvsp[-1].type))); } -#line 3603 "tools/widl/parser.tab.c" +#line 3613 "tools/widl/parser.tab.c" break; case 31: /* $@2: %empty */ #line 415 "tools/widl/parser.y" - { push_namespace((yyvsp[-1].str)); } -#line 3609 "tools/widl/parser.tab.c" + { push_namespaces((yyvsp[-1].str_list)); } +#line 3619 "tools/widl/parser.tab.c" break; case 32: /* imp_statements: imp_statements namespacedef '{' $@2 imp_statements '}' */ #line 416 "tools/widl/parser.y" - { pop_namespace((yyvsp[-4].str)); (yyval.stmt_list) = append_statements((yyvsp[-5].stmt_list), (yyvsp[-1].stmt_list)); } -#line 3615 "tools/widl/parser.tab.c" + { pop_namespaces((yyvsp[-4].str_list)); (yyval.stmt_list) = append_statements((yyvsp[-5].stmt_list), (yyvsp[-1].stmt_list)); } +#line 3625 "tools/widl/parser.tab.c" break; case 33: /* imp_statements: imp_statements interfacedef */ #line 417 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); } -#line 3621 "tools/widl/parser.tab.c" +#line 3631 "tools/widl/parser.tab.c" break; case 34: /* imp_statements: imp_statements delegatedef */ #line 418 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_type_decl((yyvsp[0].type))); } -#line 3627 "tools/widl/parser.tab.c" +#line 3637 "tools/widl/parser.tab.c" break; case 35: /* imp_statements: imp_statements coclass ';' */ #line 419 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 3633 "tools/widl/parser.tab.c" +#line 3643 "tools/widl/parser.tab.c" break; case 36: /* imp_statements: imp_statements coclassdef */ @@ -3637,117 +3647,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 3641 "tools/widl/parser.tab.c" +#line 3651 "tools/widl/parser.tab.c" break; case 37: /* imp_statements: imp_statements apicontract ';' */ #line 423 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 3647 "tools/widl/parser.tab.c" +#line 3657 "tools/widl/parser.tab.c" break; case 38: /* imp_statements: imp_statements apicontract_def */ #line 424 "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 3654 "tools/widl/parser.tab.c" +#line 3664 "tools/widl/parser.tab.c" break; case 39: /* imp_statements: imp_statements runtimeclass ';' */ #line 426 "tools/widl/parser.y" { (yyval.stmt_list) = (yyvsp[-2].stmt_list); reg_type((yyvsp[-1].type), (yyvsp[-1].type)->name, current_namespace, 0); } -#line 3660 "tools/widl/parser.tab.c" +#line 3670 "tools/widl/parser.tab.c" break; case 40: /* imp_statements: imp_statements runtimeclass_def */ #line 427 "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 3667 "tools/widl/parser.tab.c" +#line 3677 "tools/widl/parser.tab.c" break; case 41: /* imp_statements: imp_statements moduledef */ #line 429 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_module((yyvsp[0].type))); } -#line 3673 "tools/widl/parser.tab.c" +#line 3683 "tools/widl/parser.tab.c" break; case 42: /* imp_statements: imp_statements statement */ #line 430 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); } -#line 3679 "tools/widl/parser.tab.c" +#line 3689 "tools/widl/parser.tab.c" break; case 43: /* imp_statements: imp_statements importlib */ #line 431 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_importlib((yyvsp[0].str))); } -#line 3685 "tools/widl/parser.tab.c" +#line 3695 "tools/widl/parser.tab.c" break; case 44: /* imp_statements: imp_statements librarydef */ #line 432 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), make_statement_library((yyvsp[0].typelib))); } -#line 3691 "tools/widl/parser.tab.c" +#line 3701 "tools/widl/parser.tab.c" break; case 45: /* imp_statements: imp_statements imp_decl_block */ #line 433 "tools/widl/parser.y" { (yyval.stmt_list) = append_statements((yyvsp[-1].stmt_list), (yyvsp[0].stmt_list)); } -#line 3697 "tools/widl/parser.tab.c" +#line 3707 "tools/widl/parser.tab.c" break; case 46: /* int_statements: %empty */ #line 436 "tools/widl/parser.y" { (yyval.stmt_list) = NULL; } -#line 3703 "tools/widl/parser.tab.c" +#line 3713 "tools/widl/parser.tab.c" break; case 47: /* int_statements: int_statements statement */ #line 437 "tools/widl/parser.y" { (yyval.stmt_list) = append_statement((yyvsp[-1].stmt_list), (yyvsp[0].statement)); } -#line 3709 "tools/widl/parser.tab.c" +#line 3719 "tools/widl/parser.tab.c" break; case 50: /* statement: cppquote */ #line 445 "tools/widl/parser.y" { (yyval.statement) = make_statement_cppquote((yyvsp[0].str)); } -#line 3715 "tools/widl/parser.tab.c" +#line 3725 "tools/widl/parser.tab.c" break; case 51: /* statement: typedecl ';' */ #line 446 "tools/widl/parser.y" { (yyval.statement) = make_statement_type_decl((yyvsp[-1].type)); } -#line 3721 "tools/widl/parser.tab.c" +#line 3731 "tools/widl/parser.tab.c" break; case 52: /* statement: declaration ';' */ #line 447 "tools/widl/parser.y" { (yyval.statement) = make_statement_declaration((yyvsp[-1].var)); } -#line 3727 "tools/widl/parser.tab.c" +#line 3737 "tools/widl/parser.tab.c" break; case 53: /* statement: import */ #line 448 "tools/widl/parser.y" { (yyval.statement) = make_statement_import((yyvsp[0].str)); } -#line 3733 "tools/widl/parser.tab.c" +#line 3743 "tools/widl/parser.tab.c" break; case 54: /* statement: typedef ';' */ #line 449 "tools/widl/parser.y" { (yyval.statement) = (yyvsp[-1].statement); } -#line 3739 "tools/widl/parser.tab.c" +#line 3749 "tools/widl/parser.tab.c" break; case 55: /* statement: aPRAGMA */ #line 450 "tools/widl/parser.y" { (yyval.statement) = make_statement_pragma((yyvsp[0].str)); } -#line 3745 "tools/widl/parser.tab.c" +#line 3755 "tools/widl/parser.tab.c" break; case 56: /* statement: pragma_warning */ #line 451 "tools/widl/parser.y" { (yyval.statement) = NULL; } -#line 3751 "tools/widl/parser.tab.c" +#line 3761 "tools/widl/parser.tab.c" break; case 57: /* pragma_warning: tPRAGMA_WARNING '(' aIDENTIFIER ':' warnings ')' */ @@ -3759,7 +3769,7 @@ if(!result) error_loc("expected \"disable\", \"enable\" or \"default\"\n"); } -#line 3763 "tools/widl/parser.tab.c" +#line 3773 "tools/widl/parser.tab.c" break; case 58: /* pragma_warning: tPRAGMA_WARNING '(' tDEFAULT ':' warnings ')' */ @@ -3768,61 +3778,61 @@ (yyval.statement) = NULL; do_warning("default", (yyvsp[-1].warning_list)); } -#line 3772 "tools/widl/parser.tab.c" +#line 3782 "tools/widl/parser.tab.c" break; case 59: /* warnings: aNUM */ #line 470 "tools/widl/parser.y" { (yyval.warning_list) = append_warning(NULL, (yyvsp[0].num)); } -#line 3778 "tools/widl/parser.tab.c" +#line 3788 "tools/widl/parser.tab.c" break; case 60: /* warnings: warnings aNUM */ #line 471 "tools/widl/parser.y" { (yyval.warning_list) = append_warning((yyvsp[-1].warning_list), (yyvsp[0].num)); } -#line 3784 "tools/widl/parser.tab.c" +#line 3794 "tools/widl/parser.tab.c" break; case 62: /* typedecl: tENUM aIDENTIFIER */ #line 476 "tools/widl/parser.y" { (yyval.type) = type_new_enum((yyvsp[0].str), current_namespace, FALSE, NULL); } -#line 3790 "tools/widl/parser.tab.c" +#line 3800 "tools/widl/parser.tab.c" break; case 64: /* typedecl: tSTRUCT aIDENTIFIER */ #line 478 "tools/widl/parser.y" { (yyval.type) = type_new_struct((yyvsp[0].str), current_namespace, FALSE, NULL); } -#line 3796 "tools/widl/parser.tab.c" +#line 3806 "tools/widl/parser.tab.c" break; case 66: /* typedecl: tUNION aIDENTIFIER */ #line 480 "tools/widl/parser.y" { (yyval.type) = type_new_nonencapsulated_union((yyvsp[0].str), FALSE, NULL); } -#line 3802 "tools/widl/parser.tab.c" +#line 3812 "tools/widl/parser.tab.c" break; case 67: /* typedecl: attributes enumdef */ #line 481 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_enum_attrs((yyvsp[-1].attr_list)); } -#line 3808 "tools/widl/parser.tab.c" +#line 3818 "tools/widl/parser.tab.c" break; case 68: /* typedecl: attributes structdef */ #line 482 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_struct_attrs((yyvsp[-1].attr_list)); } -#line 3814 "tools/widl/parser.tab.c" +#line 3824 "tools/widl/parser.tab.c" break; case 69: /* typedecl: attributes uniondef */ #line 483 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); (yyval.type)->attrs = check_union_attrs((yyvsp[-1].attr_list)); } -#line 3820 "tools/widl/parser.tab.c" +#line 3830 "tools/widl/parser.tab.c" break; case 70: /* cppquote: tCPPQUOTE '(' aSTRING ')' */ #line 486 "tools/widl/parser.y" { (yyval.str) = (yyvsp[-1].str); } -#line 3826 "tools/widl/parser.tab.c" +#line 3836 "tools/widl/parser.tab.c" break; case 71: /* import_start: tIMPORT aSTRING ';' */ @@ -3832,7 +3842,7 @@ (yyval.import)->import_performed = do_import((yyvsp[-1].str)); if (!(yyval.import)->import_performed) yychar = aEOF; } -#line 3836 "tools/widl/parser.tab.c" +#line 3846 "tools/widl/parser.tab.c" break; case 72: /* import: import_start imp_statements aEOF */ @@ -3841,19 +3851,19 @@ if ((yyvsp[-2].import)->import_performed) pop_import(); free((yyvsp[-2].import)); } -#line 3845 "tools/widl/parser.tab.c" +#line 3855 "tools/widl/parser.tab.c" break; case 73: /* importlib: tIMPORTLIB '(' aSTRING ')' semicolon_opt */ #line 502 "tools/widl/parser.y" { (yyval.str) = (yyvsp[-2].str); if(!parse_only) add_importlib((yyvsp[-2].str), current_typelib); } -#line 3851 "tools/widl/parser.tab.c" +#line 3861 "tools/widl/parser.tab.c" break; case 74: /* libraryhdr: tLIBRARY typename */ #line 505 "tools/widl/parser.y" { (yyval.str) = (yyvsp[0].str); } -#line 3857 "tools/widl/parser.tab.c" +#line 3867 "tools/widl/parser.tab.c" break; case 75: /* library_start: attributes libraryhdr '{' */ @@ -3861,37 +3871,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 3865 "tools/widl/parser.tab.c" +#line 3875 "tools/widl/parser.tab.c" break; case 76: /* librarydef: library_start imp_statements '}' semicolon_opt */ #line 512 "tools/widl/parser.y" { (yyval.typelib) = (yyvsp[-3].typelib); (yyval.typelib)->stmts = (yyvsp[-2].stmt_list); } -#line 3871 "tools/widl/parser.tab.c" +#line 3881 "tools/widl/parser.tab.c" break; case 77: /* m_args: %empty */ #line 515 "tools/widl/parser.y" { (yyval.var_list) = NULL; } -#line 3877 "tools/widl/parser.tab.c" +#line 3887 "tools/widl/parser.tab.c" break; case 79: /* arg_list: arg */ #line 519 "tools/widl/parser.y" { check_arg_attrs((yyvsp[0].var)); (yyval.var_list) = append_var( NULL, (yyvsp[0].var) ); } -#line 3883 "tools/widl/parser.tab.c" +#line 3893 "tools/widl/parser.tab.c" break; case 80: /* arg_list: arg_list ',' arg */ #line 520 "tools/widl/parser.y" { check_arg_attrs((yyvsp[0].var)); (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[0].var) ); } -#line 3889 "tools/widl/parser.tab.c" +#line 3899 "tools/widl/parser.tab.c" break; case 82: /* args: arg_list ',' ELLIPSIS */ #line 524 "tools/widl/parser.y" - { (yyval.var_list) = append_var( (yyvsp[-2].var_list), make_var(strdup("...")) ); } -#line 3895 "tools/widl/parser.tab.c" + { (yyval.var_list) = append_var( (yyvsp[-2].var_list), make_var(xstrdup("...")) ); } +#line 3905 "tools/widl/parser.tab.c" break; case 83: /* arg: attributes decl_spec m_any_declarator */ @@ -3901,7 +3911,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 3905 "tools/widl/parser.tab.c" +#line 3915 "tools/widl/parser.tab.c" break; case 84: /* arg: decl_spec m_any_declarator */ @@ -3911,7 +3921,7 @@ (yyval.var) = declare_var(NULL, (yyvsp[-1].declspec), (yyvsp[0].declarator), TRUE); free((yyvsp[-1].declspec)); free((yyvsp[0].declarator)); } -#line 3915 "tools/widl/parser.tab.c" +#line 3925 "tools/widl/parser.tab.c" break; case 85: /* array: '[' expr ']' */ @@ -3920,91 +3930,91 @@ if (!(yyval.expr)->is_const || (yyval.expr)->cval <= 0) error_loc("array dimension is not a positive integer constant\n"); } -#line 3924 "tools/widl/parser.tab.c" +#line 3934 "tools/widl/parser.tab.c" break; case 86: /* array: '[' '*' ']' */ #line 544 "tools/widl/parser.y" { (yyval.expr) = make_expr(EXPR_VOID); } -#line 3930 "tools/widl/parser.tab.c" +#line 3940 "tools/widl/parser.tab.c" break; case 87: /* array: '[' ']' */ #line 545 "tools/widl/parser.y" { (yyval.expr) = make_expr(EXPR_VOID); } -#line 3936 "tools/widl/parser.tab.c" +#line 3946 "tools/widl/parser.tab.c" break; case 88: /* m_attributes: %empty */ #line 548 "tools/widl/parser.y" { (yyval.attr_list) = NULL; } -#line 3942 "tools/widl/parser.tab.c" +#line 3952 "tools/widl/parser.tab.c" break; case 90: /* attributes: '[' attrib_list ']' */ #line 553 "tools/widl/parser.y" { (yyval.attr_list) = (yyvsp[-1].attr_list); } -#line 3948 "tools/widl/parser.tab.c" +#line 3958 "tools/widl/parser.tab.c" break; case 91: /* attrib_list: attribute */ #line 556 "tools/widl/parser.y" { (yyval.attr_list) = append_attr( NULL, (yyvsp[0].attr) ); } -#line 3954 "tools/widl/parser.tab.c" +#line 3964 "tools/widl/parser.tab.c" break; case 92: /* attrib_list: attrib_list ',' attribute */ #line 557 "tools/widl/parser.y" { (yyval.attr_list) = append_attr( (yyvsp[-2].attr_list), (yyvsp[0].attr) ); } -#line 3960 "tools/widl/parser.tab.c" +#line 3970 "tools/widl/parser.tab.c" break; case 93: /* attrib_list: attrib_list ']' '[' attribute */ #line 558 "tools/widl/parser.y" { (yyval.attr_list) = append_attr( (yyvsp[-3].attr_list), (yyvsp[0].attr) ); } -#line 3966 "tools/widl/parser.tab.c" +#line 3976 "tools/widl/parser.tab.c" break; case 94: /* str_list: aSTRING */ #line 561 "tools/widl/parser.y" { (yyval.str_list) = append_str( NULL, (yyvsp[0].str) ); } -#line 3972 "tools/widl/parser.tab.c" +#line 3982 "tools/widl/parser.tab.c" break; case 95: /* str_list: str_list ',' aSTRING */ #line 562 "tools/widl/parser.y" { (yyval.str_list) = append_str( (yyvsp[-2].str_list), (yyvsp[0].str) ); } -#line 3978 "tools/widl/parser.tab.c" +#line 3988 "tools/widl/parser.tab.c" break; case 96: /* marshaling_behavior: tAGILE */ #line 566 "tools/widl/parser.y" { (yyval.num) = MARSHALING_AGILE; } -#line 3984 "tools/widl/parser.tab.c" +#line 3994 "tools/widl/parser.tab.c" break; case 97: /* marshaling_behavior: tNONE */ #line 567 "tools/widl/parser.y" { (yyval.num) = MARSHALING_NONE; } -#line 3990 "tools/widl/parser.tab.c" +#line 4000 "tools/widl/parser.tab.c" break; case 98: /* marshaling_behavior: tSTANDARD */ #line 568 "tools/widl/parser.y" { (yyval.num) = MARSHALING_STANDARD; } -#line 3996 "tools/widl/parser.tab.c" +#line 4006 "tools/widl/parser.tab.c" break; case 99: /* contract_ver: aNUM */ #line 572 "tools/widl/parser.y" { (yyval.num) = MAKEVERSION(0, (yyvsp[0].num)); } -#line 4002 "tools/widl/parser.tab.c" +#line 4012 "tools/widl/parser.tab.c" break; case 100: /* contract_ver: aNUM '.' aNUM */ #line 573 "tools/widl/parser.y" { (yyval.num) = MAKEVERSION((yyvsp[0].num), (yyvsp[-2].num)); } -#line 4008 "tools/widl/parser.tab.c" +#line 4018 "tools/widl/parser.tab.c" break; case 101: /* contract_req: decl_spec ',' contract_ver */ @@ -4014,7 +4024,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 4018 "tools/widl/parser.tab.c" +#line 4028 "tools/widl/parser.tab.c" break; case 102: /* static_attr: decl_spec ',' contract_req */ @@ -4023,7 +4033,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 4027 "tools/widl/parser.tab.c" +#line 4037 "tools/widl/parser.tab.c" break; case 103: /* activatable_attr: decl_spec ',' contract_req */ @@ -4032,229 +4042,229 @@ 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 4036 "tools/widl/parser.tab.c" +#line 4046 "tools/widl/parser.tab.c" break; case 104: /* activatable_attr: contract_req */ #line 592 "tools/widl/parser.y" { (yyval.expr) = (yyvsp[0].expr); } -#line 4042 "tools/widl/parser.tab.c" +#line 4052 "tools/widl/parser.tab.c" break; case 105: /* attribute: %empty */ #line 594 "tools/widl/parser.y" { (yyval.attr) = NULL; } -#line 4048 "tools/widl/parser.tab.c" +#line 4058 "tools/widl/parser.tab.c" break; case 106: /* attribute: tACTIVATABLE '(' activatable_attr ')' */ #line 595 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_ACTIVATABLE, (yyvsp[-1].expr)); } -#line 4054 "tools/widl/parser.tab.c" +#line 4064 "tools/widl/parser.tab.c" break; case 107: /* attribute: tAGGREGATABLE */ #line 596 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_AGGREGATABLE); } -#line 4060 "tools/widl/parser.tab.c" +#line 4070 "tools/widl/parser.tab.c" break; case 108: /* attribute: tANNOTATION '(' aSTRING ')' */ #line 597 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_ANNOTATION, (yyvsp[-1].str)); } -#line 4066 "tools/widl/parser.tab.c" +#line 4076 "tools/widl/parser.tab.c" break; case 109: /* attribute: tAPPOBJECT */ #line 598 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_APPOBJECT); } -#line 4072 "tools/widl/parser.tab.c" +#line 4082 "tools/widl/parser.tab.c" break; case 110: /* attribute: tASYNC */ #line 599 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_ASYNC); } -#line 4078 "tools/widl/parser.tab.c" +#line 4088 "tools/widl/parser.tab.c" break; case 111: /* attribute: tAUTOHANDLE */ #line 600 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_AUTO_HANDLE); } -#line 4084 "tools/widl/parser.tab.c" +#line 4094 "tools/widl/parser.tab.c" break; case 112: /* attribute: tBINDABLE */ #line 601 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_BINDABLE); } -#line 4090 "tools/widl/parser.tab.c" +#line 4100 "tools/widl/parser.tab.c" break; case 113: /* attribute: tBROADCAST */ #line 602 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_BROADCAST); } -#line 4096 "tools/widl/parser.tab.c" +#line 4106 "tools/widl/parser.tab.c" break; case 114: /* attribute: tCALLAS '(' ident ')' */ #line 603 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_CALLAS, (yyvsp[-1].var)); } -#line 4102 "tools/widl/parser.tab.c" +#line 4112 "tools/widl/parser.tab.c" break; case 115: /* attribute: tCASE '(' expr_list_int_const ')' */ #line 604 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_CASE, (yyvsp[-1].expr_list)); } -#line 4108 "tools/widl/parser.tab.c" +#line 4118 "tools/widl/parser.tab.c" break; case 116: /* attribute: tCODE */ #line 605 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_CODE); } -#line 4114 "tools/widl/parser.tab.c" +#line 4124 "tools/widl/parser.tab.c" break; case 117: /* attribute: tCOMMSTATUS */ #line 606 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_COMMSTATUS); } -#line 4120 "tools/widl/parser.tab.c" +#line 4130 "tools/widl/parser.tab.c" break; case 118: /* attribute: tCONTEXTHANDLE */ #line 607 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); } -#line 4126 "tools/widl/parser.tab.c" +#line 4136 "tools/widl/parser.tab.c" break; case 119: /* attribute: tCONTEXTHANDLENOSERIALIZE */ #line 608 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ } -#line 4132 "tools/widl/parser.tab.c" +#line 4142 "tools/widl/parser.tab.c" break; case 120: /* attribute: tCONTEXTHANDLESERIALIZE */ #line 609 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ } -#line 4138 "tools/widl/parser.tab.c" +#line 4148 "tools/widl/parser.tab.c" break; case 121: /* attribute: tCONTRACT '(' contract_req ')' */ #line 610 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_CONTRACT, (yyvsp[-1].expr)); } -#line 4144 "tools/widl/parser.tab.c" +#line 4154 "tools/widl/parser.tab.c" break; case 122: /* attribute: tCONTRACTVERSION '(' contract_ver ')' */ #line 611 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_CONTRACTVERSION, (yyvsp[-1].num)); } -#line 4150 "tools/widl/parser.tab.c" +#line 4160 "tools/widl/parser.tab.c" break; case 123: /* attribute: tCONTROL */ #line 612 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_CONTROL); } -#line 4156 "tools/widl/parser.tab.c" +#line 4166 "tools/widl/parser.tab.c" break; case 124: /* attribute: tCUSTOM '(' uuid_string ',' expr_const ')' */ #line 613 "tools/widl/parser.y" { (yyval.attr) = make_custom_attr((yyvsp[-3].uuid), (yyvsp[-1].expr)); } -#line 4162 "tools/widl/parser.tab.c" +#line 4172 "tools/widl/parser.tab.c" break; case 125: /* attribute: tDECODE */ #line 614 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DECODE); } -#line 4168 "tools/widl/parser.tab.c" +#line 4178 "tools/widl/parser.tab.c" break; case 126: /* attribute: tDEFAULT */ #line 615 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DEFAULT); } -#line 4174 "tools/widl/parser.tab.c" +#line 4184 "tools/widl/parser.tab.c" break; case 127: /* attribute: tDEFAULTBIND */ #line 616 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DEFAULTBIND); } -#line 4180 "tools/widl/parser.tab.c" +#line 4190 "tools/widl/parser.tab.c" break; case 128: /* attribute: tDEFAULTCOLLELEM */ #line 617 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DEFAULTCOLLELEM); } -#line 4186 "tools/widl/parser.tab.c" +#line 4196 "tools/widl/parser.tab.c" break; case 129: /* attribute: tDEFAULTVALUE '(' expr_const ')' */ #line 618 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_DEFAULTVALUE, (yyvsp[-1].expr)); } -#line 4192 "tools/widl/parser.tab.c" +#line 4202 "tools/widl/parser.tab.c" break; case 130: /* attribute: tDEFAULTVTABLE */ #line 619 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DEFAULTVTABLE); } -#line 4198 "tools/widl/parser.tab.c" +#line 4208 "tools/widl/parser.tab.c" break; case 131: /* attribute: tDISABLECONSISTENCYCHECK */ #line 620 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DISABLECONSISTENCYCHECK); } -#line 4204 "tools/widl/parser.tab.c" +#line 4214 "tools/widl/parser.tab.c" break; case 132: /* attribute: tDISPLAYBIND */ #line 621 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DISPLAYBIND); } -#line 4210 "tools/widl/parser.tab.c" +#line 4220 "tools/widl/parser.tab.c" break; case 133: /* attribute: tDLLNAME '(' aSTRING ')' */ #line 622 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_DLLNAME, (yyvsp[-1].str)); } -#line 4216 "tools/widl/parser.tab.c" +#line 4226 "tools/widl/parser.tab.c" break; case 134: /* attribute: tDUAL */ #line 623 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_DUAL); } -#line 4222 "tools/widl/parser.tab.c" +#line 4232 "tools/widl/parser.tab.c" break; case 135: /* attribute: tENABLEALLOCATE */ #line 624 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_ENABLEALLOCATE); } -#line 4228 "tools/widl/parser.tab.c" +#line 4238 "tools/widl/parser.tab.c" break; case 136: /* attribute: tENCODE */ #line 625 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_ENCODE); } -#line 4234 "tools/widl/parser.tab.c" +#line 4244 "tools/widl/parser.tab.c" break; case 137: /* attribute: tENDPOINT '(' str_list ')' */ #line 626 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_ENDPOINT, (yyvsp[-1].str_list)); } -#line 4240 "tools/widl/parser.tab.c" +#line 4250 "tools/widl/parser.tab.c" break; case 138: /* attribute: tENTRY '(' expr_const ')' */ #line 627 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_ENTRY, (yyvsp[-1].expr)); } -#line 4246 "tools/widl/parser.tab.c" +#line 4256 "tools/widl/parser.tab.c" break; case 139: /* attribute: tEVENTADD */ #line 628 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_EVENTADD); } -#line 4252 "tools/widl/parser.tab.c" +#line 4262 "tools/widl/parser.tab.c" break; case 140: /* attribute: tEVENTREMOVE */ #line 629 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_EVENTREMOVE); } -#line 4258 "tools/widl/parser.tab.c" +#line 4268 "tools/widl/parser.tab.c" break; case 141: /* attribute: tEXCLUSIVETO '(' decl_spec ')' */ @@ -4262,295 +4272,295 @@ { if ((yyvsp[-1].declspec)->type->type_type != TYPE_RUNTIMECLASS) error_loc("type %s is not a runtimeclass\n", (yyvsp[-1].declspec)->type->name); (yyval.attr) = make_attrp(ATTR_EXCLUSIVETO, (yyvsp[-1].declspec)->type); } -#line 4266 "tools/widl/parser.tab.c" +#line 4276 "tools/widl/parser.tab.c" break; case 142: /* attribute: tEXPLICITHANDLE */ #line 633 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_EXPLICIT_HANDLE); } -#line 4272 "tools/widl/parser.tab.c" +#line 4282 "tools/widl/parser.tab.c" break; case 143: /* attribute: tFAULTSTATUS */ #line 634 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_FAULTSTATUS); } -#line 4278 "tools/widl/parser.tab.c" +#line 4288 "tools/widl/parser.tab.c" break; case 144: /* attribute: tFLAGS */ #line 635 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_FLAGS); } -#line 4284 "tools/widl/parser.tab.c" +#line 4294 "tools/widl/parser.tab.c" break; case 145: /* attribute: tFORCEALLOCATE */ #line 636 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_FORCEALLOCATE); } -#line 4290 "tools/widl/parser.tab.c" +#line 4300 "tools/widl/parser.tab.c" break; case 146: /* attribute: tHANDLE */ #line 637 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_HANDLE); } -#line 4296 "tools/widl/parser.tab.c" +#line 4306 "tools/widl/parser.tab.c" break; case 147: /* attribute: tHELPCONTEXT '(' expr_int_const ')' */ #line 638 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_HELPCONTEXT, (yyvsp[-1].expr)); } -#line 4302 "tools/widl/parser.tab.c" +#line 4312 "tools/widl/parser.tab.c" break; case 148: /* attribute: tHELPFILE '(' aSTRING ')' */ #line 639 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_HELPFILE, (yyvsp[-1].str)); } -#line 4308 "tools/widl/parser.tab.c" +#line 4318 "tools/widl/parser.tab.c" break; case 149: /* attribute: tHELPSTRING '(' aSTRING ')' */ #line 640 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_HELPSTRING, (yyvsp[-1].str)); } -#line 4314 "tools/widl/parser.tab.c" +#line 4324 "tools/widl/parser.tab.c" break; case 150: /* attribute: tHELPSTRINGCONTEXT '(' expr_int_const ')' */ #line 641 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_HELPSTRINGCONTEXT, (yyvsp[-1].expr)); } -#line 4320 "tools/widl/parser.tab.c" +#line 4330 "tools/widl/parser.tab.c" break; case 151: /* attribute: tHELPSTRINGDLL '(' aSTRING ')' */ #line 642 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_HELPSTRINGDLL, (yyvsp[-1].str)); } -#line 4326 "tools/widl/parser.tab.c" +#line 4336 "tools/widl/parser.tab.c" break; case 152: /* attribute: tHIDDEN */ #line 643 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_HIDDEN); } -#line 4332 "tools/widl/parser.tab.c" +#line 4342 "tools/widl/parser.tab.c" break; case 153: /* attribute: tID '(' expr_int_const ')' */ #line 644 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_ID, (yyvsp[-1].expr)); } -#line 4338 "tools/widl/parser.tab.c" +#line 4348 "tools/widl/parser.tab.c" break; case 154: /* attribute: tIDEMPOTENT */ #line 645 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_IDEMPOTENT); } -#line 4344 "tools/widl/parser.tab.c" +#line 4354 "tools/widl/parser.tab.c" break; case 155: /* attribute: tIGNORE */ #line 646 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_IGNORE); } -#line 4350 "tools/widl/parser.tab.c" +#line 4360 "tools/widl/parser.tab.c" break; case 156: /* attribute: tIIDIS '(' expr ')' */ #line 647 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_IIDIS, (yyvsp[-1].expr)); } -#line 4356 "tools/widl/parser.tab.c" +#line 4366 "tools/widl/parser.tab.c" break; case 157: /* attribute: tIMMEDIATEBIND */ #line 648 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_IMMEDIATEBIND); } -#line 4362 "tools/widl/parser.tab.c" +#line 4372 "tools/widl/parser.tab.c" break; case 158: /* attribute: tIMPLICITHANDLE '(' arg ')' */ #line 649 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_IMPLICIT_HANDLE, (yyvsp[-1].var)); } -#line 4368 "tools/widl/parser.tab.c" +#line 4378 "tools/widl/parser.tab.c" break; case 159: /* attribute: tIN */ #line 650 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_IN); } -#line 4374 "tools/widl/parser.tab.c" +#line 4384 "tools/widl/parser.tab.c" break; case 160: /* attribute: tINPUTSYNC */ #line 651 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_INPUTSYNC); } -#line 4380 "tools/widl/parser.tab.c" +#line 4390 "tools/widl/parser.tab.c" break; case 161: /* attribute: tLENGTHIS '(' m_exprs ')' */ #line 652 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_LENGTHIS, (yyvsp[-1].expr_list)); } -#line 4386 "tools/widl/parser.tab.c" +#line 4396 "tools/widl/parser.tab.c" break; case 162: /* attribute: tLCID '(' expr_int_const ')' */ #line 653 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_LIBLCID, (yyvsp[-1].expr)); } -#line 4392 "tools/widl/parser.tab.c" +#line 4402 "tools/widl/parser.tab.c" break; case 163: /* attribute: tLCID */ #line 654 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PARAMLCID); } -#line 4398 "tools/widl/parser.tab.c" +#line 4408 "tools/widl/parser.tab.c" break; case 164: /* attribute: tLICENSED */ #line 655 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_LICENSED); } -#line 4404 "tools/widl/parser.tab.c" +#line 4414 "tools/widl/parser.tab.c" break; case 165: /* attribute: tLOCAL */ #line 656 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_LOCAL); } -#line 4410 "tools/widl/parser.tab.c" +#line 4420 "tools/widl/parser.tab.c" break; case 166: /* attribute: tMARSHALINGBEHAVIOR '(' marshaling_behavior ')' */ #line 658 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_MARSHALING_BEHAVIOR, (yyvsp[-1].num)); } -#line 4416 "tools/widl/parser.tab.c" +#line 4426 "tools/widl/parser.tab.c" break; case 167: /* attribute: tMAYBE */ #line 659 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_MAYBE); } -#line 4422 "tools/widl/parser.tab.c" +#line 4432 "tools/widl/parser.tab.c" break; case 168: /* attribute: tMESSAGE */ #line 660 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_MESSAGE); } -#line 4428 "tools/widl/parser.tab.c" +#line 4438 "tools/widl/parser.tab.c" break; case 169: /* attribute: tNOCODE */ #line 661 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_NOCODE); } -#line 4434 "tools/widl/parser.tab.c" +#line 4444 "tools/widl/parser.tab.c" break; case 170: /* attribute: tNONBROWSABLE */ #line 662 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_NONBROWSABLE); } -#line 4440 "tools/widl/parser.tab.c" +#line 4450 "tools/widl/parser.tab.c" break; case 171: /* attribute: tNONCREATABLE */ #line 663 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_NONCREATABLE); } -#line 4446 "tools/widl/parser.tab.c" +#line 4456 "tools/widl/parser.tab.c" break; case 172: /* attribute: tNONEXTENSIBLE */ #line 664 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_NONEXTENSIBLE); } -#line 4452 "tools/widl/parser.tab.c" +#line 4462 "tools/widl/parser.tab.c" break; case 173: /* attribute: tNOTIFY */ #line 665 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_NOTIFY); } -#line 4458 "tools/widl/parser.tab.c" +#line 4468 "tools/widl/parser.tab.c" break; case 174: /* attribute: tNOTIFYFLAG */ #line 666 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_NOTIFYFLAG); } -#line 4464 "tools/widl/parser.tab.c" +#line 4474 "tools/widl/parser.tab.c" break; case 175: /* attribute: tOBJECT */ #line 667 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_OBJECT); } -#line 4470 "tools/widl/parser.tab.c" +#line 4480 "tools/widl/parser.tab.c" break; case 176: /* attribute: tODL */ #line 668 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_ODL); } -#line 4476 "tools/widl/parser.tab.c" +#line 4486 "tools/widl/parser.tab.c" break; case 177: /* attribute: tOLEAUTOMATION */ #line 669 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_OLEAUTOMATION); } -#line 4482 "tools/widl/parser.tab.c" +#line 4492 "tools/widl/parser.tab.c" break; case 178: /* attribute: tOPTIMIZE '(' aSTRING ')' */ #line 670 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_OPTIMIZE, (yyvsp[-1].str)); } -#line 4488 "tools/widl/parser.tab.c" +#line 4498 "tools/widl/parser.tab.c" break; case 179: /* attribute: tOPTIONAL */ #line 671 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_OPTIONAL); } -#line 4494 "tools/widl/parser.tab.c" +#line 4504 "tools/widl/parser.tab.c" break; case 180: /* attribute: tOUT */ #line 672 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_OUT); } -#line 4500 "tools/widl/parser.tab.c" +#line 4510 "tools/widl/parser.tab.c" break; case 181: /* attribute: tOVERLOAD '(' aSTRING ')' */ #line 673 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_OVERLOAD, (yyvsp[-1].str)); } -#line 4506 "tools/widl/parser.tab.c" +#line 4516 "tools/widl/parser.tab.c" break; case 182: /* attribute: tPARTIALIGNORE */ #line 674 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PARTIALIGNORE); } -#line 4512 "tools/widl/parser.tab.c" +#line 4522 "tools/widl/parser.tab.c" break; case 183: /* attribute: tPOINTERDEFAULT '(' pointer_type ')' */ #line 675 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_POINTERDEFAULT, (yyvsp[-1].num)); } -#line 4518 "tools/widl/parser.tab.c" +#line 4528 "tools/widl/parser.tab.c" break; case 184: /* attribute: tPROGID '(' aSTRING ')' */ #line 676 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_PROGID, (yyvsp[-1].str)); } -#line 4524 "tools/widl/parser.tab.c" +#line 4534 "tools/widl/parser.tab.c" break; case 185: /* attribute: tPROPGET */ #line 677 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PROPGET); } -#line 4530 "tools/widl/parser.tab.c" +#line 4540 "tools/widl/parser.tab.c" break; case 186: /* attribute: tPROPPUT */ #line 678 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PROPPUT); } -#line 4536 "tools/widl/parser.tab.c" +#line 4546 "tools/widl/parser.tab.c" break; case 187: /* attribute: tPROPPUTREF */ #line 679 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PROPPUTREF); } -#line 4542 "tools/widl/parser.tab.c" +#line 4552 "tools/widl/parser.tab.c" break; case 188: /* attribute: tPROXY */ #line 680 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PROXY); } -#line 4548 "tools/widl/parser.tab.c" +#line 4558 "tools/widl/parser.tab.c" break; case 189: /* attribute: tPUBLIC */ #line 681 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_PUBLIC); } -#line 4554 "tools/widl/parser.tab.c" +#line 4564 "tools/widl/parser.tab.c" break; case 190: /* attribute: tRANGE '(' expr_int_const ',' expr_int_const ')' */ @@ -4558,157 +4568,157 @@ { expr_list_t *list = append_expr( NULL, (yyvsp[-3].expr) ); list = append_expr( list, (yyvsp[-1].expr) ); (yyval.attr) = make_attrp(ATTR_RANGE, list); } -#line 4562 "tools/widl/parser.tab.c" +#line 4572 "tools/widl/parser.tab.c" break; case 191: /* attribute: tREADONLY */ #line 686 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_READONLY); } -#line 4568 "tools/widl/parser.tab.c" +#line 4578 "tools/widl/parser.tab.c" break; case 192: /* attribute: tREPRESENTAS '(' type ')' */ #line 687 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_REPRESENTAS, (yyvsp[-1].type)); } -#line 4574 "tools/widl/parser.tab.c" +#line 4584 "tools/widl/parser.tab.c" break; case 193: /* attribute: tREQUESTEDIT */ #line 688 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_REQUESTEDIT); } -#line 4580 "tools/widl/parser.tab.c" +#line 4590 "tools/widl/parser.tab.c" break; case 194: /* attribute: tRESTRICTED */ #line 689 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_RESTRICTED); } -#line 4586 "tools/widl/parser.tab.c" +#line 4596 "tools/widl/parser.tab.c" break; case 195: /* attribute: tRETVAL */ #line 690 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_RETVAL); } -#line 4592 "tools/widl/parser.tab.c" +#line 4602 "tools/widl/parser.tab.c" break; case 196: /* attribute: tSIZEIS '(' m_exprs ')' */ #line 691 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_SIZEIS, (yyvsp[-1].expr_list)); } -#line 4598 "tools/widl/parser.tab.c" +#line 4608 "tools/widl/parser.tab.c" break; case 197: /* attribute: tSOURCE */ #line 692 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_SOURCE); } -#line 4604 "tools/widl/parser.tab.c" +#line 4614 "tools/widl/parser.tab.c" break; case 198: /* attribute: tSTATIC '(' static_attr ')' */ #line 693 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_STATIC, (yyvsp[-1].expr)); } -#line 4610 "tools/widl/parser.tab.c" +#line 4620 "tools/widl/parser.tab.c" break; case 199: /* attribute: tSTRICTCONTEXTHANDLE */ #line 694 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_STRICTCONTEXTHANDLE); } -#line 4616 "tools/widl/parser.tab.c" +#line 4626 "tools/widl/parser.tab.c" break; case 200: /* attribute: tSTRING */ #line 695 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_STRING); } -#line 4622 "tools/widl/parser.tab.c" +#line 4632 "tools/widl/parser.tab.c" break; case 201: /* attribute: tSWITCHIS '(' expr ')' */ #line 696 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_SWITCHIS, (yyvsp[-1].expr)); } -#line 4628 "tools/widl/parser.tab.c" +#line 4638 "tools/widl/parser.tab.c" break; case 202: /* attribute: tSWITCHTYPE '(' type ')' */ #line 697 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_SWITCHTYPE, (yyvsp[-1].type)); } -#line 4634 "tools/widl/parser.tab.c" +#line 4644 "tools/widl/parser.tab.c" break; case 203: /* attribute: tTRANSMITAS '(' type ')' */ #line 698 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_TRANSMITAS, (yyvsp[-1].type)); } -#line 4640 "tools/widl/parser.tab.c" +#line 4650 "tools/widl/parser.tab.c" break; case 204: /* attribute: tTHREADING '(' threading_type ')' */ #line 699 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_THREADING, (yyvsp[-1].num)); } -#line 4646 "tools/widl/parser.tab.c" +#line 4656 "tools/widl/parser.tab.c" break; case 205: /* attribute: tUIDEFAULT */ #line 700 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_UIDEFAULT); } -#line 4652 "tools/widl/parser.tab.c" +#line 4662 "tools/widl/parser.tab.c" break; case 206: /* attribute: tUSESGETLASTERROR */ #line 701 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_USESGETLASTERROR); } -#line 4658 "tools/widl/parser.tab.c" +#line 4668 "tools/widl/parser.tab.c" break; case 207: /* attribute: tUSERMARSHAL '(' type ')' */ #line 702 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_USERMARSHAL, (yyvsp[-1].type)); } -#line 4664 "tools/widl/parser.tab.c" +#line 4674 "tools/widl/parser.tab.c" break; case 208: /* attribute: tUUID '(' uuid_string ')' */ #line 703 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_UUID, (yyvsp[-1].uuid)); } -#line 4670 "tools/widl/parser.tab.c" +#line 4680 "tools/widl/parser.tab.c" break; case 209: /* attribute: tASYNCUUID '(' uuid_string ')' */ #line 704 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_ASYNCUUID, (yyvsp[-1].uuid)); } -#line 4676 "tools/widl/parser.tab.c" +#line 4686 "tools/widl/parser.tab.c" break; case 210: /* attribute: tV1ENUM */ #line 705 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_V1ENUM); } -#line 4682 "tools/widl/parser.tab.c" +#line 4692 "tools/widl/parser.tab.c" break; case 211: /* attribute: tVARARG */ #line 706 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_VARARG); } -#line 4688 "tools/widl/parser.tab.c" +#line 4698 "tools/widl/parser.tab.c" break; case 212: /* attribute: tVERSION '(' version ')' */ #line 707 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_VERSION, (yyvsp[-1].num)); } -#line 4694 "tools/widl/parser.tab.c" +#line 4704 "tools/widl/parser.tab.c" break; case 213: /* attribute: tVIPROGID '(' aSTRING ')' */ #line 708 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_VIPROGID, (yyvsp[-1].str)); } -#line 4700 "tools/widl/parser.tab.c" +#line 4710 "tools/widl/parser.tab.c" break; case 214: /* attribute: tWIREMARSHAL '(' type ')' */ #line 709 "tools/widl/parser.y" { (yyval.attr) = make_attrp(ATTR_WIREMARSHAL, (yyvsp[-1].type)); } -#line 4706 "tools/widl/parser.tab.c" +#line 4716 "tools/widl/parser.tab.c" break; case 215: /* attribute: pointer_type */ #line 710 "tools/widl/parser.y" { (yyval.attr) = make_attrv(ATTR_POINTERTYPE, (yyvsp[0].num)); } -#line 4712 "tools/widl/parser.tab.c" +#line 4722 "tools/widl/parser.tab.c" break; case 217: /* uuid_string: aSTRING */ @@ -4716,43 +4726,43 @@ { if (!is_valid_uuid((yyvsp[0].str))) error_loc("invalid UUID: %s\n", (yyvsp[0].str)); (yyval.uuid) = parse_uuid((yyvsp[0].str)); } -#line 4720 "tools/widl/parser.tab.c" +#line 4730 "tools/widl/parser.tab.c" break; case 218: /* callconv: tCDECL */ #line 720 "tools/widl/parser.y" { (yyval.str) = xstrdup("__cdecl"); } -#line 4726 "tools/widl/parser.tab.c" +#line 4736 "tools/widl/parser.tab.c" break; case 219: /* callconv: tFASTCALL */ #line 721 "tools/widl/parser.y" { (yyval.str) = xstrdup("__fastcall"); } -#line 4732 "tools/widl/parser.tab.c" +#line 4742 "tools/widl/parser.tab.c" break; case 220: /* callconv: tPASCAL */ #line 722 "tools/widl/parser.y" { (yyval.str) = xstrdup("__pascal"); } -#line 4738 "tools/widl/parser.tab.c" +#line 4748 "tools/widl/parser.tab.c" break; case 221: /* callconv: tSTDCALL */ #line 723 "tools/widl/parser.y" { (yyval.str) = xstrdup("__stdcall"); } -#line 4744 "tools/widl/parser.tab.c" +#line 4754 "tools/widl/parser.tab.c" break; case 222: /* cases: %empty */ #line 726 "tools/widl/parser.y" { (yyval.var_list) = NULL; } -#line 4750 "tools/widl/parser.tab.c" +#line 4760 "tools/widl/parser.tab.c" break; case 223: /* cases: cases case */ #line 727 "tools/widl/parser.y" { (yyval.var_list) = append_var( (yyvsp[-1].var_list), (yyvsp[0].var) ); } -#line 4756 "tools/widl/parser.tab.c" +#line 4766 "tools/widl/parser.tab.c" break; case 224: /* case: tCASE expr_int_const ':' union_field */ @@ -4761,7 +4771,7 @@ (yyval.var) = (yyvsp[0].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); (yyval.var)->attrs = append_attr( (yyval.var)->attrs, a ); } -#line 4765 "tools/widl/parser.tab.c" +#line 4775 "tools/widl/parser.tab.c" break; case 225: /* case: tDEFAULT ':' union_field */ @@ -4770,19 +4780,19 @@ (yyval.var) = (yyvsp[0].var); if (!(yyval.var)) (yyval.var) = make_var(NULL); (yyval.var)->attrs = append_attr( (yyval.var)->attrs, a ); } -#line 4774 "tools/widl/parser.tab.c" +#line 4784 "tools/widl/parser.tab.c" break; case 226: /* enums: %empty */ #line 740 "tools/widl/parser.y" { (yyval.var_list) = NULL; } -#line 4780 "tools/widl/parser.tab.c" +#line 4790 "tools/widl/parser.tab.c" break; case 227: /* enums: enum_list ',' */ #line 741 "tools/widl/parser.y" { (yyval.var_list) = (yyvsp[-1].var_list); } -#line 4786 "tools/widl/parser.tab.c" +#line 4796 "tools/widl/parser.tab.c" break; case 229: /* enum_list: enum */ @@ -4791,7 +4801,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 4795 "tools/widl/parser.tab.c" +#line 4805 "tools/widl/parser.tab.c" break; case 230: /* enum_list: enum_list ',' enum */ @@ -4806,7 +4816,7 @@ } (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[0].var) ); } -#line 4810 "tools/widl/parser.tab.c" +#line 4820 "tools/widl/parser.tab.c" break; case 231: /* enum_member: m_attributes ident */ @@ -4814,7 +4824,7 @@ { (yyval.var) = (yyvsp[0].var); (yyval.var)->attrs = check_enum_member_attrs((yyvsp[-1].attr_list)); } -#line 4818 "tools/widl/parser.tab.c" +#line 4828 "tools/widl/parser.tab.c" break; case 232: /* enum: enum_member '=' expr_int_const */ @@ -4823,7 +4833,7 @@ (yyval.var)->eval = (yyvsp[0].expr); (yyval.var)->declspec.type = type_new_int(TYPE_BASIC_INT, 0); } -#line 4827 "tools/widl/parser.tab.c" +#line 4837 "tools/widl/parser.tab.c" break; case 233: /* enum: enum_member */ @@ -4831,289 +4841,289 @@ { (yyval.var) = reg_const((yyvsp[0].var)); (yyval.var)->declspec.type = type_new_int(TYPE_BASIC_INT, 0); } -#line 4835 "tools/widl/parser.tab.c" +#line 4845 "tools/widl/parser.tab.c" break; case 234: /* enumdef: tENUM m_typename '{' enums '}' */ #line 775 "tools/widl/parser.y" { (yyval.type) = type_new_enum((yyvsp[-3].str), current_namespace, TRUE, (yyvsp[-1].var_list)); } -#line 4841 "tools/widl/parser.tab.c" +#line 4851 "tools/widl/parser.tab.c" break; case 235: /* m_exprs: m_expr */ #line 778 "tools/widl/parser.y" { (yyval.expr_list) = append_expr( NULL, (yyvsp[0].expr) ); } -#line 4847 "tools/widl/parser.tab.c" +#line 4857 "tools/widl/parser.tab.c" break; case 236: /* m_exprs: m_exprs ',' m_expr */ #line 779 "tools/widl/parser.y" { (yyval.expr_list) = append_expr( (yyvsp[-2].expr_list), (yyvsp[0].expr) ); } -#line 4853 "tools/widl/parser.tab.c" +#line 4863 "tools/widl/parser.tab.c" break; case 237: /* m_expr: %empty */ #line 782 "tools/widl/parser.y" { (yyval.expr) = make_expr(EXPR_VOID); } -#line 4859 "tools/widl/parser.tab.c" +#line 4869 "tools/widl/parser.tab.c" break; case 239: /* expr: aNUM */ #line 786 "tools/widl/parser.y" { (yyval.expr) = make_exprl(EXPR_NUM, (yyvsp[0].num)); } -#line 4865 "tools/widl/parser.tab.c" +#line 4875 "tools/widl/parser.tab.c" break; case 240: /* expr: aHEXNUM */ #line 787 "tools/widl/parser.y" { (yyval.expr) = make_exprl(EXPR_HEXNUM, (yyvsp[0].num)); } -#line 4871 "tools/widl/parser.tab.c" +#line 4881 "tools/widl/parser.tab.c" break; case 241: /* expr: aDOUBLE */ #line 788 "tools/widl/parser.y" { (yyval.expr) = make_exprd(EXPR_DOUBLE, (yyvsp[0].dbl)); } -#line 4877 "tools/widl/parser.tab.c" +#line 4887 "tools/widl/parser.tab.c" break; case 242: /* expr: tFALSE */ #line 789 "tools/widl/parser.y" { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 0); } -#line 4883 "tools/widl/parser.tab.c" +#line 4893 "tools/widl/parser.tab.c" break; case 243: /* expr: tNULL */ #line 790 "tools/widl/parser.y" { (yyval.expr) = make_exprl(EXPR_NUM, 0); } -#line 4889 "tools/widl/parser.tab.c" +#line 4899 "tools/widl/parser.tab.c" break; case 244: /* expr: tTRUE */ #line 791 "tools/widl/parser.y" { (yyval.expr) = make_exprl(EXPR_TRUEFALSE, 1); } -#line 4895 "tools/widl/parser.tab.c" +#line 4905 "tools/widl/parser.tab.c" break; case 245: /* expr: aSTRING */ #line 792 "tools/widl/parser.y" { (yyval.expr) = make_exprs(EXPR_STRLIT, (yyvsp[0].str)); } -#line 4901 "tools/widl/parser.tab.c" +#line 4911 "tools/widl/parser.tab.c" break; case 246: /* expr: aWSTRING */ #line 793 "tools/widl/parser.y" { (yyval.expr) = make_exprs(EXPR_WSTRLIT, (yyvsp[0].str)); } -#line 4907 "tools/widl/parser.tab.c" +#line 4917 "tools/widl/parser.tab.c" break; case 247: /* expr: aSQSTRING */ #line 794 "tools/widl/parser.y" { (yyval.expr) = make_exprs(EXPR_CHARCONST, (yyvsp[0].str)); } -#line 4913 "tools/widl/parser.tab.c" +#line 4923 "tools/widl/parser.tab.c" break; case 248: /* expr: aIDENTIFIER */ #line 795 "tools/widl/parser.y" { (yyval.expr) = make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str)); } -#line 4919 "tools/widl/parser.tab.c" +#line 4929 "tools/widl/parser.tab.c" break; case 249: /* expr: expr '?' expr ':' expr */ #line 796 "tools/widl/parser.y" { (yyval.expr) = make_expr3(EXPR_COND, (yyvsp[-4].expr), (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4925 "tools/widl/parser.tab.c" +#line 4935 "tools/widl/parser.tab.c" break; case 250: /* expr: expr LOGICALOR expr */ #line 797 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_LOGOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4931 "tools/widl/parser.tab.c" +#line 4941 "tools/widl/parser.tab.c" break; case 251: /* expr: expr LOGICALAND expr */ #line 798 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_LOGAND, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4937 "tools/widl/parser.tab.c" +#line 4947 "tools/widl/parser.tab.c" break; case 252: /* expr: expr '|' expr */ #line 799 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_OR , (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4943 "tools/widl/parser.tab.c" +#line 4953 "tools/widl/parser.tab.c" break; case 253: /* expr: expr '^' expr */ #line 800 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_XOR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4949 "tools/widl/parser.tab.c" +#line 4959 "tools/widl/parser.tab.c" break; case 254: /* expr: expr '&' expr */ #line 801 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_AND, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4955 "tools/widl/parser.tab.c" +#line 4965 "tools/widl/parser.tab.c" break; case 255: /* expr: expr EQUALITY expr */ #line 802 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_EQUALITY, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4961 "tools/widl/parser.tab.c" +#line 4971 "tools/widl/parser.tab.c" break; case 256: /* expr: expr INEQUALITY expr */ #line 803 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_INEQUALITY, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4967 "tools/widl/parser.tab.c" +#line 4977 "tools/widl/parser.tab.c" break; case 257: /* expr: expr '>' expr */ #line 804 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_GTR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4973 "tools/widl/parser.tab.c" +#line 4983 "tools/widl/parser.tab.c" break; case 258: /* expr: expr '<' expr */ #line 805 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_LESS, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4979 "tools/widl/parser.tab.c" +#line 4989 "tools/widl/parser.tab.c" break; case 259: /* expr: expr GREATEREQUAL expr */ #line 806 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_GTREQL, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4985 "tools/widl/parser.tab.c" +#line 4995 "tools/widl/parser.tab.c" break; case 260: /* expr: expr LESSEQUAL expr */ #line 807 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_LESSEQL, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4991 "tools/widl/parser.tab.c" +#line 5001 "tools/widl/parser.tab.c" break; case 261: /* expr: expr SHL expr */ #line 808 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_SHL, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 4997 "tools/widl/parser.tab.c" +#line 5007 "tools/widl/parser.tab.c" break; case 262: /* expr: expr SHR expr */ #line 809 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_SHR, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 5003 "tools/widl/parser.tab.c" +#line 5013 "tools/widl/parser.tab.c" break; case 263: /* expr: expr '+' expr */ #line 810 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_ADD, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 5009 "tools/widl/parser.tab.c" +#line 5019 "tools/widl/parser.tab.c" break; case 264: /* expr: expr '-' expr */ #line 811 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_SUB, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 5015 "tools/widl/parser.tab.c" +#line 5025 "tools/widl/parser.tab.c" break; case 265: /* expr: expr '%' expr */ #line 812 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_MOD, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 5021 "tools/widl/parser.tab.c" +#line 5031 "tools/widl/parser.tab.c" break; case 266: /* expr: expr '*' expr */ #line 813 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_MUL, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 5027 "tools/widl/parser.tab.c" +#line 5037 "tools/widl/parser.tab.c" break; case 267: /* expr: expr '/' expr */ #line 814 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_DIV, (yyvsp[-2].expr), (yyvsp[0].expr)); } -#line 5033 "tools/widl/parser.tab.c" +#line 5043 "tools/widl/parser.tab.c" break; case 268: /* expr: '!' expr */ #line 815 "tools/widl/parser.y" { (yyval.expr) = make_expr1(EXPR_LOGNOT, (yyvsp[0].expr)); } -#line 5039 "tools/widl/parser.tab.c" +#line 5049 "tools/widl/parser.tab.c" break; case 269: /* expr: '~' expr */ #line 816 "tools/widl/parser.y" { (yyval.expr) = make_expr1(EXPR_NOT, (yyvsp[0].expr)); } -#line 5045 "tools/widl/parser.tab.c" +#line 5055 "tools/widl/parser.tab.c" break; case 270: /* expr: '+' expr */ #line 817 "tools/widl/parser.y" { (yyval.expr) = make_expr1(EXPR_POS, (yyvsp[0].expr)); } -#line 5051 "tools/widl/parser.tab.c" +#line 5061 "tools/widl/parser.tab.c" break; case 271: /* expr: '-' expr */ #line 818 "tools/widl/parser.y" { (yyval.expr) = make_expr1(EXPR_NEG, (yyvsp[0].expr)); } -#line 5057 "tools/widl/parser.tab.c" +#line 5067 "tools/widl/parser.tab.c" break; case 272: /* expr: '&' expr */ #line 819 "tools/widl/parser.y" { (yyval.expr) = make_expr1(EXPR_ADDRESSOF, (yyvsp[0].expr)); } -#line 5063 "tools/widl/parser.tab.c" +#line 5073 "tools/widl/parser.tab.c" break; case 273: /* expr: '*' expr */ #line 820 "tools/widl/parser.y" { (yyval.expr) = make_expr1(EXPR_PPTR, (yyvsp[0].expr)); } -#line 5069 "tools/widl/parser.tab.c" +#line 5079 "tools/widl/parser.tab.c" break; case 274: /* expr: expr MEMBERPTR aIDENTIFIER */ #line 821 "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 5075 "tools/widl/parser.tab.c" +#line 5085 "tools/widl/parser.tab.c" break; case 275: /* expr: expr '.' aIDENTIFIER */ #line 822 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_MEMBER, (yyvsp[-2].expr), make_exprs(EXPR_IDENTIFIER, (yyvsp[0].str))); } -#line 5081 "tools/widl/parser.tab.c" +#line 5091 "tools/widl/parser.tab.c" break; case 276: /* expr: '(' unqualified_decl_spec m_abstract_declarator ')' expr */ #line 824 "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 5087 "tools/widl/parser.tab.c" +#line 5097 "tools/widl/parser.tab.c" break; case 277: /* expr: tSIZEOF '(' unqualified_decl_spec m_abstract_declarator ')' */ #line 826 "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 5093 "tools/widl/parser.tab.c" +#line 5103 "tools/widl/parser.tab.c" break; case 278: /* expr: expr '[' expr ']' */ #line 827 "tools/widl/parser.y" { (yyval.expr) = make_expr2(EXPR_ARRAY, (yyvsp[-3].expr), (yyvsp[-1].expr)); } -#line 5099 "tools/widl/parser.tab.c" +#line 5109 "tools/widl/parser.tab.c" break; case 279: /* expr: '(' expr ')' */ #line 828 "tools/widl/parser.y" { (yyval.expr) = (yyvsp[-1].expr); } -#line 5105 "tools/widl/parser.tab.c" +#line 5115 "tools/widl/parser.tab.c" break; case 280: /* expr_list_int_const: expr_int_const */ #line 831 "tools/widl/parser.y" { (yyval.expr_list) = append_expr( NULL, (yyvsp[0].expr) ); } -#line 5111 "tools/widl/parser.tab.c" +#line 5121 "tools/widl/parser.tab.c" break; case 281: /* expr_list_int_const: expr_list_int_const ',' expr_int_const */ #line 832 "tools/widl/parser.y" { (yyval.expr_list) = append_expr( (yyvsp[-2].expr_list), (yyvsp[0].expr) ); } -#line 5117 "tools/widl/parser.tab.c" +#line 5127 "tools/widl/parser.tab.c" break; case 282: /* expr_int_const: expr */ @@ -5122,7 +5132,7 @@ if (!(yyval.expr)->is_const) error_loc("expression is not an integer constant\n"); } -#line 5126 "tools/widl/parser.tab.c" +#line 5136 "tools/widl/parser.tab.c" break; case 283: /* expr_const: expr */ @@ -5131,19 +5141,19 @@ if (!(yyval.expr)->is_const && (yyval.expr)->type != EXPR_STRLIT && (yyval.expr)->type != EXPR_WSTRLIT) error_loc("expression is not constant\n"); } -#line 5135 "tools/widl/parser.tab.c" +#line 5145 "tools/widl/parser.tab.c" break; case 284: /* fields: %empty */ #line 847 "tools/widl/parser.y" { (yyval.var_list) = NULL; } -#line 5141 "tools/widl/parser.tab.c" +#line 5151 "tools/widl/parser.tab.c" break; case 285: /* fields: fields field */ #line 848 "tools/widl/parser.y" { (yyval.var_list) = append_var_list((yyvsp[-1].var_list), (yyvsp[0].var_list)); } -#line 5147 "tools/widl/parser.tab.c" +#line 5157 "tools/widl/parser.tab.c" break; case 286: /* field: m_attributes decl_spec struct_declarator_list ';' */ @@ -5152,7 +5162,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 5156 "tools/widl/parser.tab.c" +#line 5166 "tools/widl/parser.tab.c" break; case 287: /* field: m_attributes uniondef ';' */ @@ -5161,43 +5171,43 @@ v->declspec.type = (yyvsp[-1].type); v->attrs = (yyvsp[-2].attr_list); (yyval.var_list) = append_var(NULL, v); } -#line 5165 "tools/widl/parser.tab.c" +#line 5175 "tools/widl/parser.tab.c" break; case 288: /* ne_union_field: s_field ';' */ #line 863 "tools/widl/parser.y" { (yyval.var) = (yyvsp[-1].var); } -#line 5171 "tools/widl/parser.tab.c" +#line 5181 "tools/widl/parser.tab.c" break; case 289: /* ne_union_field: attributes ';' */ #line 864 "tools/widl/parser.y" { (yyval.var) = make_var(NULL); (yyval.var)->attrs = (yyvsp[-1].attr_list); } -#line 5177 "tools/widl/parser.tab.c" +#line 5187 "tools/widl/parser.tab.c" break; case 290: /* ne_union_fields: %empty */ #line 867 "tools/widl/parser.y" { (yyval.var_list) = NULL; } -#line 5183 "tools/widl/parser.tab.c" +#line 5193 "tools/widl/parser.tab.c" break; case 291: /* ne_union_fields: ne_union_fields ne_union_field */ #line 868 "tools/widl/parser.y" { (yyval.var_list) = append_var( (yyvsp[-1].var_list), (yyvsp[0].var) ); } -#line 5189 "tools/widl/parser.tab.c" +#line 5199 "tools/widl/parser.tab.c" break; case 292: /* union_field: s_field ';' */ #line 872 "tools/widl/parser.y" { (yyval.var) = (yyvsp[-1].var); } -#line 5195 "tools/widl/parser.tab.c" +#line 5205 "tools/widl/parser.tab.c" break; case 293: /* union_field: ';' */ #line 873 "tools/widl/parser.y" { (yyval.var) = NULL; } -#line 5201 "tools/widl/parser.tab.c" +#line 5211 "tools/widl/parser.tab.c" break; case 294: /* s_field: m_attributes decl_spec declarator */ @@ -5206,7 +5216,7 @@ (yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE); free((yyvsp[0].declarator)); } -#line 5210 "tools/widl/parser.tab.c" +#line 5220 "tools/widl/parser.tab.c" break; case 295: /* s_field: m_attributes structdef */ @@ -5215,7 +5225,7 @@ v->declspec.type = (yyvsp[0].type); v->attrs = (yyvsp[-1].attr_list); (yyval.var) = v; } -#line 5219 "tools/widl/parser.tab.c" +#line 5229 "tools/widl/parser.tab.c" break; case 296: /* funcdef: declaration */ @@ -5225,7 +5235,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 5229 "tools/widl/parser.tab.c" +#line 5239 "tools/widl/parser.tab.c" break; case 297: /* declaration: attributes decl_spec init_declarator */ @@ -5233,7 +5243,7 @@ { (yyval.var) = declare_var((yyvsp[-2].attr_list), (yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE); free((yyvsp[0].declarator)); } -#line 5237 "tools/widl/parser.tab.c" +#line 5247 "tools/widl/parser.tab.c" break; case 298: /* declaration: decl_spec init_declarator */ @@ -5241,459 +5251,465 @@ { (yyval.var) = declare_var(NULL, (yyvsp[-1].declspec), (yyvsp[0].declarator), FALSE); free((yyvsp[0].declarator)); } -#line 5245 "tools/widl/parser.tab.c" +#line 5255 "tools/widl/parser.tab.c" break; case 299: /* m_ident: %empty */ #line 903 "tools/widl/parser.y" { (yyval.var) = NULL; } -#line 5251 "tools/widl/parser.tab.c" +#line 5261 "tools/widl/parser.tab.c" break; case 301: /* m_typename: %empty */ #line 907 "tools/widl/parser.y" { (yyval.str) = NULL; } -#line 5257 "tools/widl/parser.tab.c" +#line 5267 "tools/widl/parser.tab.c" break; case 305: /* ident: typename */ #line 915 "tools/widl/parser.y" { (yyval.var) = make_var((yyvsp[0].str)); } -#line 5263 "tools/widl/parser.tab.c" +#line 5273 "tools/widl/parser.tab.c" break; case 306: /* base_type: tBYTE */ #line 918 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5269 "tools/widl/parser.tab.c" +#line 5279 "tools/widl/parser.tab.c" break; case 307: /* base_type: tWCHAR */ #line 919 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5275 "tools/widl/parser.tab.c" +#line 5285 "tools/widl/parser.tab.c" break; case 309: /* base_type: tSIGNED int_std */ #line 921 "tools/widl/parser.y" { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[0].type)), -1); } -#line 5281 "tools/widl/parser.tab.c" +#line 5291 "tools/widl/parser.tab.c" break; case 310: /* base_type: tUNSIGNED int_std */ #line 922 "tools/widl/parser.y" { (yyval.type) = type_new_int(type_basic_get_type((yyvsp[0].type)), 1); } -#line 5287 "tools/widl/parser.tab.c" +#line 5297 "tools/widl/parser.tab.c" break; case 311: /* base_type: tUNSIGNED */ #line 923 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT, 1); } -#line 5293 "tools/widl/parser.tab.c" +#line 5303 "tools/widl/parser.tab.c" break; case 312: /* base_type: tFLOAT */ #line 924 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5299 "tools/widl/parser.tab.c" +#line 5309 "tools/widl/parser.tab.c" break; case 313: /* base_type: tDOUBLE */ #line 925 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5305 "tools/widl/parser.tab.c" +#line 5315 "tools/widl/parser.tab.c" break; case 314: /* base_type: tBOOLEAN */ #line 926 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5311 "tools/widl/parser.tab.c" +#line 5321 "tools/widl/parser.tab.c" break; case 315: /* base_type: tERRORSTATUST */ #line 927 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5317 "tools/widl/parser.tab.c" +#line 5327 "tools/widl/parser.tab.c" break; case 316: /* base_type: tHANDLET */ #line 928 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(NULL, (yyvsp[0].str)); } -#line 5323 "tools/widl/parser.tab.c" +#line 5333 "tools/widl/parser.tab.c" break; case 319: /* int_std: tINT */ #line 935 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT, 0); } -#line 5329 "tools/widl/parser.tab.c" +#line 5339 "tools/widl/parser.tab.c" break; case 320: /* int_std: tSHORT m_int */ #line 936 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT16, 0); } -#line 5335 "tools/widl/parser.tab.c" +#line 5345 "tools/widl/parser.tab.c" break; case 321: /* int_std: tSMALL */ #line 937 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT8, 0); } -#line 5341 "tools/widl/parser.tab.c" +#line 5351 "tools/widl/parser.tab.c" break; case 322: /* int_std: tLONG m_int */ #line 938 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_LONG, 0); } -#line 5347 "tools/widl/parser.tab.c" +#line 5357 "tools/widl/parser.tab.c" break; case 323: /* int_std: tHYPER m_int */ #line 939 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_HYPER, 0); } -#line 5353 "tools/widl/parser.tab.c" +#line 5363 "tools/widl/parser.tab.c" break; case 324: /* int_std: tINT64 */ #line 940 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT64, 0); } -#line 5359 "tools/widl/parser.tab.c" +#line 5369 "tools/widl/parser.tab.c" break; case 325: /* int_std: tCHAR */ #line 941 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_CHAR, 0); } -#line 5365 "tools/widl/parser.tab.c" +#line 5375 "tools/widl/parser.tab.c" break; case 326: /* int_std: tINT32 */ #line 942 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT32, 0); } -#line 5371 "tools/widl/parser.tab.c" +#line 5381 "tools/widl/parser.tab.c" break; case 327: /* int_std: tINT3264 */ #line 943 "tools/widl/parser.y" { (yyval.type) = type_new_int(TYPE_BASIC_INT3264, 0); } -#line 5377 "tools/widl/parser.tab.c" +#line 5387 "tools/widl/parser.tab.c" break; case 328: /* namespace_pfx: aIDENTIFIER '.' */ #line 947 "tools/widl/parser.y" { (yyval.namespace) = find_namespace_or_error(&global_namespace, (yyvsp[-1].str)); } -#line 5383 "tools/widl/parser.tab.c" +#line 5393 "tools/widl/parser.tab.c" break; case 329: /* namespace_pfx: namespace_pfx aIDENTIFIER '.' */ #line 948 "tools/widl/parser.y" { (yyval.namespace) = find_namespace_or_error((yyvsp[-2].namespace), (yyvsp[-1].str)); } -#line 5389 "tools/widl/parser.tab.c" +#line 5399 "tools/widl/parser.tab.c" break; case 330: /* qualified_type: typename */ #line 952 "tools/widl/parser.y" { (yyval.type) = find_type_or_error(current_namespace, (yyvsp[0].str)); } -#line 5395 "tools/widl/parser.tab.c" +#line 5405 "tools/widl/parser.tab.c" break; case 331: /* qualified_type: namespace_pfx typename */ #line 953 "tools/widl/parser.y" { (yyval.type) = find_type_or_error((yyvsp[-1].namespace), (yyvsp[0].str)); } -#line 5401 "tools/widl/parser.tab.c" +#line 5411 "tools/widl/parser.tab.c" break; case 332: /* parameterized_type: qualified_type '<' parameterized_type_args '>' */ #line 957 "tools/widl/parser.y" { (yyval.type) = find_parameterized_type((yyvsp[-3].type), (yyvsp[-1].typeref_list)); } -#line 5407 "tools/widl/parser.tab.c" +#line 5417 "tools/widl/parser.tab.c" break; case 333: /* parameterized_type_arg: base_type */ #line 961 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 5413 "tools/widl/parser.tab.c" +#line 5423 "tools/widl/parser.tab.c" break; case 334: /* parameterized_type_arg: qualified_type */ #line 962 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 5419 "tools/widl/parser.tab.c" +#line 5429 "tools/widl/parser.tab.c" break; case 335: /* parameterized_type_arg: qualified_type '*' */ #line 963 "tools/widl/parser.y" { (yyval.type) = type_new_pointer((yyvsp[-1].type)); } -#line 5425 "tools/widl/parser.tab.c" +#line 5435 "tools/widl/parser.tab.c" break; case 336: /* parameterized_type_arg: parameterized_type */ #line 964 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 5431 "tools/widl/parser.tab.c" +#line 5441 "tools/widl/parser.tab.c" break; case 337: /* parameterized_type_arg: parameterized_type '*' */ #line 965 "tools/widl/parser.y" { (yyval.type) = type_new_pointer((yyvsp[-1].type)); } -#line 5437 "tools/widl/parser.tab.c" +#line 5447 "tools/widl/parser.tab.c" break; case 338: /* parameterized_type_args: parameterized_type_arg */ #line 969 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); } -#line 5443 "tools/widl/parser.tab.c" +#line 5453 "tools/widl/parser.tab.c" break; case 339: /* parameterized_type_args: parameterized_type_args ',' parameterized_type_arg */ #line 971 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref((yyvsp[-2].typeref_list), make_typeref((yyvsp[0].type))); } -#line 5449 "tools/widl/parser.tab.c" +#line 5459 "tools/widl/parser.tab.c" break; case 340: /* coclass: tCOCLASS typename */ #line 974 "tools/widl/parser.y" { (yyval.type) = type_coclass_declare((yyvsp[0].str)); } -#line 5455 "tools/widl/parser.tab.c" +#line 5465 "tools/widl/parser.tab.c" break; case 341: /* coclassdef: attributes coclass '{' class_interfaces '}' semicolon_opt */ #line 978 "tools/widl/parser.y" { (yyval.type) = type_coclass_define((yyvsp[-4].type), (yyvsp[-5].attr_list), (yyvsp[-2].typeref_list)); } -#line 5461 "tools/widl/parser.tab.c" +#line 5471 "tools/widl/parser.tab.c" break; case 342: /* runtimeclass: tRUNTIMECLASS typename */ #line 981 "tools/widl/parser.y" { (yyval.type) = type_runtimeclass_declare((yyvsp[0].str), current_namespace); } -#line 5467 "tools/widl/parser.tab.c" +#line 5477 "tools/widl/parser.tab.c" break; case 343: /* runtimeclass_def: attributes runtimeclass '{' class_interfaces '}' semicolon_opt */ #line 985 "tools/widl/parser.y" { (yyval.type) = type_runtimeclass_define((yyvsp[-4].type), (yyvsp[-5].attr_list), (yyvsp[-2].typeref_list)); } -#line 5473 "tools/widl/parser.tab.c" +#line 5483 "tools/widl/parser.tab.c" break; case 344: /* apicontract: tAPICONTRACT typename */ #line 988 "tools/widl/parser.y" { (yyval.type) = type_apicontract_declare((yyvsp[0].str), current_namespace); } -#line 5479 "tools/widl/parser.tab.c" +#line 5489 "tools/widl/parser.tab.c" break; case 345: /* apicontract_def: attributes apicontract '{' '}' semicolon_opt */ #line 992 "tools/widl/parser.y" { (yyval.type) = type_apicontract_define((yyvsp[-3].type), (yyvsp[-4].attr_list)); } -#line 5485 "tools/widl/parser.tab.c" +#line 5495 "tools/widl/parser.tab.c" break; case 346: /* namespacedef: tNAMESPACE aIDENTIFIER */ #line 995 "tools/widl/parser.y" - { (yyval.str) = (yyvsp[0].str); } -#line 5491 "tools/widl/parser.tab.c" + { (yyval.str_list) = append_str( NULL, (yyvsp[0].str) ); } +#line 5501 "tools/widl/parser.tab.c" break; - case 347: /* class_interfaces: %empty */ -#line 998 "tools/widl/parser.y" - { (yyval.typeref_list) = NULL; } -#line 5497 "tools/widl/parser.tab.c" + case 347: /* namespacedef: namespacedef '.' aIDENTIFIER */ +#line 996 "tools/widl/parser.y" + { (yyval.str_list) = append_str( (yyvsp[-2].str_list), (yyvsp[0].str) ); } +#line 5507 "tools/widl/parser.tab.c" break; - case 348: /* class_interfaces: class_interfaces class_interface */ + case 348: /* class_interfaces: %empty */ #line 999 "tools/widl/parser.y" + { (yyval.typeref_list) = NULL; } +#line 5513 "tools/widl/parser.tab.c" + break; + + case 349: /* class_interfaces: class_interfaces class_interface */ +#line 1000 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref( (yyvsp[-1].typeref_list), (yyvsp[0].typeref) ); } -#line 5503 "tools/widl/parser.tab.c" +#line 5519 "tools/widl/parser.tab.c" break; - case 349: /* class_interface: m_attributes interfaceref ';' */ -#line 1003 "tools/widl/parser.y" - { (yyval.typeref) = make_typeref((yyvsp[-1].type)); (yyval.typeref)->attrs = (yyvsp[-2].attr_list); } -#line 5509 "tools/widl/parser.tab.c" - break; - - case 350: /* class_interface: m_attributes dispinterfaceref ';' */ + case 350: /* class_interface: m_attributes interfaceref ';' */ #line 1004 "tools/widl/parser.y" { (yyval.typeref) = make_typeref((yyvsp[-1].type)); (yyval.typeref)->attrs = (yyvsp[-2].attr_list); } -#line 5515 "tools/widl/parser.tab.c" +#line 5525 "tools/widl/parser.tab.c" break; - case 351: /* dispinterface: tDISPINTERFACE typename */ -#line 1007 "tools/widl/parser.y" + case 351: /* class_interface: m_attributes dispinterfaceref ';' */ +#line 1005 "tools/widl/parser.y" + { (yyval.typeref) = make_typeref((yyvsp[-1].type)); (yyval.typeref)->attrs = (yyvsp[-2].attr_list); } +#line 5531 "tools/widl/parser.tab.c" + break; + + case 352: /* dispinterface: tDISPINTERFACE typename */ +#line 1008 "tools/widl/parser.y" { (yyval.type) = type_dispinterface_declare((yyvsp[0].str)); } -#line 5521 "tools/widl/parser.tab.c" +#line 5537 "tools/widl/parser.tab.c" break; - case 352: /* dispattributes: attributes */ -#line 1010 "tools/widl/parser.y" + case 353: /* dispattributes: attributes */ +#line 1011 "tools/widl/parser.y" { (yyval.attr_list) = append_attr((yyvsp[0].attr_list), make_attr(ATTR_DISPINTERFACE)); } -#line 5527 "tools/widl/parser.tab.c" +#line 5543 "tools/widl/parser.tab.c" break; - case 353: /* dispint_props: tPROPERTIES ':' */ -#line 1013 "tools/widl/parser.y" - { (yyval.var_list) = NULL; } -#line 5533 "tools/widl/parser.tab.c" - break; - - case 354: /* dispint_props: dispint_props s_field ';' */ + case 354: /* dispint_props: tPROPERTIES ':' */ #line 1014 "tools/widl/parser.y" - { (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[-1].var) ); } -#line 5539 "tools/widl/parser.tab.c" - break; - - case 355: /* dispint_meths: tMETHODS ':' */ -#line 1017 "tools/widl/parser.y" { (yyval.var_list) = NULL; } -#line 5545 "tools/widl/parser.tab.c" +#line 5549 "tools/widl/parser.tab.c" break; - case 356: /* dispint_meths: dispint_meths funcdef ';' */ -#line 1018 "tools/widl/parser.y" + case 355: /* dispint_props: dispint_props s_field ';' */ +#line 1015 "tools/widl/parser.y" { (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[-1].var) ); } -#line 5551 "tools/widl/parser.tab.c" +#line 5555 "tools/widl/parser.tab.c" break; - case 357: /* dispinterfacedef: dispattributes dispinterface '{' dispint_props dispint_meths '}' */ -#line 1023 "tools/widl/parser.y" + case 356: /* dispint_meths: tMETHODS ':' */ +#line 1018 "tools/widl/parser.y" + { (yyval.var_list) = NULL; } +#line 5561 "tools/widl/parser.tab.c" + break; + + case 357: /* dispint_meths: dispint_meths funcdef ';' */ +#line 1019 "tools/widl/parser.y" + { (yyval.var_list) = append_var( (yyvsp[-2].var_list), (yyvsp[-1].var) ); } +#line 5567 "tools/widl/parser.tab.c" + break; + + case 358: /* dispinterfacedef: dispattributes dispinterface '{' dispint_props dispint_meths '}' */ +#line 1024 "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 5557 "tools/widl/parser.tab.c" +#line 5573 "tools/widl/parser.tab.c" break; - case 358: /* dispinterfacedef: dispattributes dispinterface '{' interface ';' '}' */ -#line 1025 "tools/widl/parser.y" + case 359: /* dispinterfacedef: dispattributes dispinterface '{' interface ';' '}' */ +#line 1026 "tools/widl/parser.y" { (yyval.type) = type_dispinterface_define_from_iface((yyvsp[-4].type), (yyvsp[-5].attr_list), (yyvsp[-2].type)); } -#line 5563 "tools/widl/parser.tab.c" +#line 5579 "tools/widl/parser.tab.c" break; - case 359: /* inherit: %empty */ -#line 1028 "tools/widl/parser.y" - { (yyval.type) = NULL; } -#line 5569 "tools/widl/parser.tab.c" - break; - - case 360: /* inherit: ':' qualified_type */ + case 360: /* inherit: %empty */ #line 1029 "tools/widl/parser.y" - { (yyval.type) = (yyvsp[0].type); } -#line 5575 "tools/widl/parser.tab.c" + { (yyval.type) = NULL; } +#line 5585 "tools/widl/parser.tab.c" break; - case 361: /* inherit: ':' parameterized_type */ + case 361: /* inherit: ':' qualified_type */ #line 1030 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 5581 "tools/widl/parser.tab.c" +#line 5591 "tools/widl/parser.tab.c" break; - case 362: /* type_parameter: typename */ -#line 1033 "tools/widl/parser.y" + case 362: /* inherit: ':' parameterized_type */ +#line 1031 "tools/widl/parser.y" + { (yyval.type) = (yyvsp[0].type); } +#line 5597 "tools/widl/parser.tab.c" + break; + + case 363: /* type_parameter: typename */ +#line 1034 "tools/widl/parser.y" { (yyval.type) = get_type(TYPE_PARAMETER, (yyvsp[0].str), parameters_namespace, 0); } -#line 5587 "tools/widl/parser.tab.c" +#line 5603 "tools/widl/parser.tab.c" break; - case 363: /* type_parameters: type_parameter */ -#line 1037 "tools/widl/parser.y" - { (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); } -#line 5593 "tools/widl/parser.tab.c" - break; - - case 364: /* type_parameters: type_parameters ',' type_parameter */ + case 364: /* type_parameters: type_parameter */ #line 1038 "tools/widl/parser.y" + { (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); } +#line 5609 "tools/widl/parser.tab.c" + break; + + case 365: /* type_parameters: type_parameters ',' type_parameter */ +#line 1039 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref((yyvsp[-2].typeref_list), make_typeref((yyvsp[0].type))); } -#line 5599 "tools/widl/parser.tab.c" +#line 5615 "tools/widl/parser.tab.c" break; - case 365: /* interface: tINTERFACE typename */ -#line 1042 "tools/widl/parser.y" + case 366: /* interface: tINTERFACE typename */ +#line 1043 "tools/widl/parser.y" { (yyval.type) = type_interface_declare((yyvsp[0].str), current_namespace); } -#line 5605 "tools/widl/parser.tab.c" +#line 5621 "tools/widl/parser.tab.c" break; - case 366: /* $@3: %empty */ -#line 1043 "tools/widl/parser.y" - { push_parameters_namespace((yyvsp[-1].str)); } -#line 5611 "tools/widl/parser.tab.c" - break; - - case 367: /* $@4: %empty */ -#line 1043 "tools/widl/parser.y" - { pop_parameters_namespace((yyvsp[-3].str)); } -#line 5617 "tools/widl/parser.tab.c" - break; - - case 368: /* interface: tINTERFACE typename '<' $@3 type_parameters $@4 '>' */ + case 367: /* $@3: %empty */ #line 1044 "tools/widl/parser.y" - { (yyval.type) = type_parameterized_interface_declare((yyvsp[-5].str), current_namespace, (yyvsp[-2].typeref_list)); } -#line 5623 "tools/widl/parser.tab.c" + { push_parameters_namespace((yyvsp[-1].str)); } +#line 5627 "tools/widl/parser.tab.c" break; - case 369: /* delegatedef: m_attributes tDELEGATE type ident '(' m_args ')' semicolon_opt */ -#line 1048 "tools/widl/parser.y" + case 368: /* $@4: %empty */ +#line 1044 "tools/widl/parser.y" + { pop_parameters_namespace((yyvsp[-3].str)); } +#line 5633 "tools/widl/parser.tab.c" + break; + + case 369: /* interface: tINTERFACE typename '<' $@3 type_parameters $@4 '>' */ +#line 1045 "tools/widl/parser.y" + { (yyval.type) = type_parameterized_interface_declare((yyvsp[-5].str), current_namespace, (yyvsp[-2].typeref_list)); } +#line 5639 "tools/widl/parser.tab.c" + break; + + case 370: /* delegatedef: m_attributes tDELEGATE type ident '(' m_args ')' semicolon_opt */ +#line 1049 "tools/widl/parser.y" { (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 5631 "tools/widl/parser.tab.c" +#line 5647 "tools/widl/parser.tab.c" break; - case 370: /* $@5: %empty */ -#line 1052 "tools/widl/parser.y" - { push_parameters_namespace((yyvsp[-1].var)->name); } -#line 5637 "tools/widl/parser.tab.c" - break; - - case 371: /* $@6: %empty */ + case 371: /* $@5: %empty */ #line 1053 "tools/widl/parser.y" - { pop_parameters_namespace((yyvsp[-7].var)->name); } -#line 5643 "tools/widl/parser.tab.c" + { push_parameters_namespace((yyvsp[-1].var)->name); } +#line 5653 "tools/widl/parser.tab.c" break; - case 372: /* delegatedef: m_attributes tDELEGATE type ident '<' $@5 type_parameters '>' '(' m_args ')' $@6 semicolon_opt */ + case 372: /* $@6: %empty */ #line 1054 "tools/widl/parser.y" + { pop_parameters_namespace((yyvsp[-7].var)->name); } +#line 5659 "tools/widl/parser.tab.c" + break; + + case 373: /* delegatedef: m_attributes tDELEGATE type ident '<' $@5 type_parameters '>' '(' m_args ')' $@6 semicolon_opt */ +#line 1055 "tools/widl/parser.y" { (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 5651 "tools/widl/parser.tab.c" +#line 5667 "tools/widl/parser.tab.c" break; - case 373: /* required_types: qualified_type */ -#line 1060 "tools/widl/parser.y" - { (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); } -#line 5657 "tools/widl/parser.tab.c" - break; - - case 374: /* required_types: parameterized_type */ + case 374: /* required_types: qualified_type */ #line 1061 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); } -#line 5663 "tools/widl/parser.tab.c" +#line 5673 "tools/widl/parser.tab.c" break; - case 375: /* required_types: required_types ',' qualified_type */ + case 375: /* required_types: parameterized_type */ #line 1062 "tools/widl/parser.y" - { (yyval.typeref_list) = append_typeref((yyvsp[-2].typeref_list), make_typeref((yyvsp[0].type))); } -#line 5669 "tools/widl/parser.tab.c" + { (yyval.typeref_list) = append_typeref(NULL, make_typeref((yyvsp[0].type))); } +#line 5679 "tools/widl/parser.tab.c" break; - case 376: /* required_types: required_types ',' parameterized_type */ + case 376: /* required_types: required_types ',' qualified_type */ #line 1063 "tools/widl/parser.y" { (yyval.typeref_list) = append_typeref((yyvsp[-2].typeref_list), make_typeref((yyvsp[0].type))); } -#line 5675 "tools/widl/parser.tab.c" +#line 5685 "tools/widl/parser.tab.c" break; - case 377: /* requires: %empty */ -#line 1065 "tools/widl/parser.y" - { (yyval.typeref_list) = NULL; } -#line 5681 "tools/widl/parser.tab.c" + case 377: /* required_types: required_types ',' parameterized_type */ +#line 1064 "tools/widl/parser.y" + { (yyval.typeref_list) = append_typeref((yyvsp[-2].typeref_list), make_typeref((yyvsp[0].type))); } +#line 5691 "tools/widl/parser.tab.c" break; - case 378: /* requires: tREQUIRES required_types */ + case 378: /* requires: %empty */ #line 1066 "tools/widl/parser.y" + { (yyval.typeref_list) = NULL; } +#line 5697 "tools/widl/parser.tab.c" + break; + + case 379: /* requires: tREQUIRES required_types */ +#line 1067 "tools/widl/parser.y" { (yyval.typeref_list) = (yyvsp[0].typeref_list); } -#line 5687 "tools/widl/parser.tab.c" +#line 5703 "tools/widl/parser.tab.c" break; - case 379: /* $@7: %empty */ -#line 1069 "tools/widl/parser.y" + case 380: /* $@7: %empty */ +#line 1070 "tools/widl/parser.y" { if ((yyvsp[0].type)->type_type == TYPE_PARAMETERIZED_TYPE) push_parameters_namespace((yyvsp[0].type)->name); } -#line 5693 "tools/widl/parser.tab.c" +#line 5709 "tools/widl/parser.tab.c" break; - case 380: /* interfacedef: attributes interface $@7 inherit requires '{' int_statements '}' semicolon_opt */ -#line 1071 "tools/widl/parser.y" + case 381: /* interfacedef: attributes interface $@7 inherit requires '{' int_statements '}' semicolon_opt */ +#line 1072 "tools/widl/parser.y" { if ((yyvsp[-7].type)->type_type == TYPE_PARAMETERIZED_TYPE) { (yyval.type) = type_parameterized_interface_define((yyvsp[-7].type), (yyvsp[-8].attr_list), (yyvsp[-5].type), (yyvsp[-2].stmt_list), (yyvsp[-4].typeref_list)); @@ -5705,637 +5721,637 @@ check_async_uuid((yyval.type)); } } -#line 5709 "tools/widl/parser.tab.c" +#line 5725 "tools/widl/parser.tab.c" break; - case 381: /* interfacedef: dispinterfacedef semicolon_opt */ -#line 1082 "tools/widl/parser.y" + case 382: /* interfacedef: dispinterfacedef semicolon_opt */ +#line 1083 "tools/widl/parser.y" { (yyval.type) = (yyvsp[-1].type); } -#line 5715 "tools/widl/parser.tab.c" +#line 5731 "tools/widl/parser.tab.c" break; - case 382: /* interfaceref: tINTERFACE typename */ -#line 1086 "tools/widl/parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); } -#line 5721 "tools/widl/parser.tab.c" - break; - - case 383: /* interfaceref: tINTERFACE namespace_pfx typename */ + case 383: /* interfaceref: tINTERFACE typename */ #line 1087 "tools/widl/parser.y" - { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), (yyvsp[-1].namespace), 0); } -#line 5727 "tools/widl/parser.tab.c" - break; - - case 384: /* dispinterfaceref: tDISPINTERFACE typename */ -#line 1091 "tools/widl/parser.y" { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); } -#line 5733 "tools/widl/parser.tab.c" +#line 5737 "tools/widl/parser.tab.c" break; - case 385: /* module: tMODULE typename */ -#line 1094 "tools/widl/parser.y" + case 384: /* interfaceref: tINTERFACE namespace_pfx typename */ +#line 1088 "tools/widl/parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), (yyvsp[-1].namespace), 0); } +#line 5743 "tools/widl/parser.tab.c" + break; + + case 385: /* dispinterfaceref: tDISPINTERFACE typename */ +#line 1092 "tools/widl/parser.y" + { (yyval.type) = get_type(TYPE_INTERFACE, (yyvsp[0].str), current_namespace, 0); } +#line 5749 "tools/widl/parser.tab.c" + break; + + case 386: /* module: tMODULE typename */ +#line 1095 "tools/widl/parser.y" { (yyval.type) = type_module_declare((yyvsp[0].str)); } -#line 5739 "tools/widl/parser.tab.c" +#line 5755 "tools/widl/parser.tab.c" break; - case 386: /* moduledef: m_attributes module '{' int_statements '}' semicolon_opt */ -#line 1098 "tools/widl/parser.y" + case 387: /* moduledef: m_attributes module '{' int_statements '}' semicolon_opt */ +#line 1099 "tools/widl/parser.y" { (yyval.type) = type_module_define((yyvsp[-4].type), (yyvsp[-5].attr_list), (yyvsp[-2].stmt_list)); } -#line 5745 "tools/widl/parser.tab.c" +#line 5761 "tools/widl/parser.tab.c" break; - case 387: /* storage_cls_spec: tEXTERN */ -#line 1102 "tools/widl/parser.y" - { (yyval.stgclass) = STG_EXTERN; } -#line 5751 "tools/widl/parser.tab.c" - break; - - case 388: /* storage_cls_spec: tSTATIC */ + case 388: /* storage_cls_spec: tEXTERN */ #line 1103 "tools/widl/parser.y" - { (yyval.stgclass) = STG_STATIC; } -#line 5757 "tools/widl/parser.tab.c" + { (yyval.stgclass) = STG_EXTERN; } +#line 5767 "tools/widl/parser.tab.c" break; - case 389: /* storage_cls_spec: tREGISTER */ + case 389: /* storage_cls_spec: tSTATIC */ #line 1104 "tools/widl/parser.y" + { (yyval.stgclass) = STG_STATIC; } +#line 5773 "tools/widl/parser.tab.c" + break; + + case 390: /* storage_cls_spec: tREGISTER */ +#line 1105 "tools/widl/parser.y" { (yyval.stgclass) = STG_REGISTER; } -#line 5763 "tools/widl/parser.tab.c" +#line 5779 "tools/widl/parser.tab.c" break; - case 390: /* function_specifier: tINLINE */ -#line 1108 "tools/widl/parser.y" + case 391: /* function_specifier: tINLINE */ +#line 1109 "tools/widl/parser.y" { (yyval.function_specifier) = FUNCTION_SPECIFIER_INLINE; } -#line 5769 "tools/widl/parser.tab.c" +#line 5785 "tools/widl/parser.tab.c" break; - case 391: /* type_qualifier: tCONST */ -#line 1112 "tools/widl/parser.y" + case 392: /* type_qualifier: tCONST */ +#line 1113 "tools/widl/parser.y" { (yyval.type_qualifier) = TYPE_QUALIFIER_CONST; } -#line 5775 "tools/widl/parser.tab.c" +#line 5791 "tools/widl/parser.tab.c" break; - case 392: /* m_type_qual_list: %empty */ -#line 1115 "tools/widl/parser.y" - { (yyval.type_qualifier) = 0; } -#line 5781 "tools/widl/parser.tab.c" - break; - - case 393: /* m_type_qual_list: m_type_qual_list type_qualifier */ + case 393: /* m_type_qual_list: %empty */ #line 1116 "tools/widl/parser.y" + { (yyval.type_qualifier) = 0; } +#line 5797 "tools/widl/parser.tab.c" + break; + + case 394: /* m_type_qual_list: m_type_qual_list type_qualifier */ +#line 1117 "tools/widl/parser.y" { (yyval.type_qualifier) = (yyvsp[-1].type_qualifier) | (yyvsp[0].type_qualifier); } -#line 5787 "tools/widl/parser.tab.c" +#line 5803 "tools/widl/parser.tab.c" break; - case 394: /* decl_spec: type m_decl_spec_no_type */ -#line 1119 "tools/widl/parser.y" + case 395: /* decl_spec: type m_decl_spec_no_type */ +#line 1120 "tools/widl/parser.y" { (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[0].declspec), NULL, STG_NONE, 0, 0); } -#line 5793 "tools/widl/parser.tab.c" +#line 5809 "tools/widl/parser.tab.c" break; - case 395: /* decl_spec: decl_spec_no_type type m_decl_spec_no_type */ -#line 1121 "tools/widl/parser.y" + case 396: /* decl_spec: decl_spec_no_type type m_decl_spec_no_type */ +#line 1122 "tools/widl/parser.y" { (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[-2].declspec), (yyvsp[0].declspec), STG_NONE, 0, 0); } -#line 5799 "tools/widl/parser.tab.c" +#line 5815 "tools/widl/parser.tab.c" break; - case 396: /* unqualified_decl_spec: unqualified_type m_decl_spec_no_type */ -#line 1125 "tools/widl/parser.y" + case 397: /* unqualified_decl_spec: unqualified_type m_decl_spec_no_type */ +#line 1126 "tools/widl/parser.y" { (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[0].declspec), NULL, STG_NONE, 0, 0); } -#line 5805 "tools/widl/parser.tab.c" +#line 5821 "tools/widl/parser.tab.c" break; - case 397: /* unqualified_decl_spec: decl_spec_no_type unqualified_type m_decl_spec_no_type */ -#line 1127 "tools/widl/parser.y" + case 398: /* unqualified_decl_spec: decl_spec_no_type unqualified_type m_decl_spec_no_type */ +#line 1128 "tools/widl/parser.y" { (yyval.declspec) = make_decl_spec((yyvsp[-1].type), (yyvsp[-2].declspec), (yyvsp[0].declspec), STG_NONE, 0, 0); } -#line 5811 "tools/widl/parser.tab.c" +#line 5827 "tools/widl/parser.tab.c" break; - case 398: /* m_decl_spec_no_type: %empty */ -#line 1130 "tools/widl/parser.y" + case 399: /* m_decl_spec_no_type: %empty */ +#line 1131 "tools/widl/parser.y" { (yyval.declspec) = NULL; } -#line 5817 "tools/widl/parser.tab.c" +#line 5833 "tools/widl/parser.tab.c" break; - case 400: /* decl_spec_no_type: type_qualifier m_decl_spec_no_type */ -#line 1135 "tools/widl/parser.y" - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, STG_NONE, (yyvsp[-1].type_qualifier), 0); } -#line 5823 "tools/widl/parser.tab.c" - break; - - case 401: /* decl_spec_no_type: function_specifier m_decl_spec_no_type */ + case 401: /* decl_spec_no_type: type_qualifier m_decl_spec_no_type */ #line 1136 "tools/widl/parser.y" - { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, STG_NONE, 0, (yyvsp[-1].function_specifier)); } -#line 5829 "tools/widl/parser.tab.c" + { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, STG_NONE, (yyvsp[-1].type_qualifier), 0); } +#line 5839 "tools/widl/parser.tab.c" break; - case 402: /* decl_spec_no_type: storage_cls_spec m_decl_spec_no_type */ + case 402: /* decl_spec_no_type: function_specifier m_decl_spec_no_type */ #line 1137 "tools/widl/parser.y" + { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, STG_NONE, 0, (yyvsp[-1].function_specifier)); } +#line 5845 "tools/widl/parser.tab.c" + break; + + case 403: /* decl_spec_no_type: storage_cls_spec m_decl_spec_no_type */ +#line 1138 "tools/widl/parser.y" { (yyval.declspec) = make_decl_spec(NULL, (yyvsp[0].declspec), NULL, (yyvsp[-1].stgclass), 0, 0); } -#line 5835 "tools/widl/parser.tab.c" +#line 5851 "tools/widl/parser.tab.c" break; - case 403: /* declarator: '*' m_type_qual_list declarator */ -#line 1142 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } -#line 5841 "tools/widl/parser.tab.c" - break; - - case 404: /* declarator: callconv declarator */ + case 404: /* declarator: '*' m_type_qual_list declarator */ #line 1143 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } +#line 5857 "tools/widl/parser.tab.c" + break; + + case 405: /* declarator: callconv declarator */ +#line 1144 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } -#line 5847 "tools/widl/parser.tab.c" +#line 5863 "tools/widl/parser.tab.c" break; - case 406: /* direct_declarator: ident */ -#line 1148 "tools/widl/parser.y" - { (yyval.declarator) = make_declarator((yyvsp[0].var)); } -#line 5853 "tools/widl/parser.tab.c" - break; - - case 407: /* direct_declarator: '(' declarator ')' */ + case 407: /* direct_declarator: ident */ #line 1149 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[-1].declarator); } -#line 5859 "tools/widl/parser.tab.c" + { (yyval.declarator) = make_declarator((yyvsp[0].var)); } +#line 5869 "tools/widl/parser.tab.c" break; - case 408: /* direct_declarator: direct_declarator array */ + case 408: /* direct_declarator: '(' declarator ')' */ #line 1150 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[-1].declarator); append_array((yyval.declarator), (yyvsp[0].expr)); } -#line 5865 "tools/widl/parser.tab.c" - break; - - case 409: /* direct_declarator: direct_declarator '(' m_args ')' */ -#line 1151 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[-3].declarator); append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); } -#line 5871 "tools/widl/parser.tab.c" - break; - - case 410: /* abstract_declarator: '*' m_type_qual_list m_abstract_declarator */ -#line 1157 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } -#line 5877 "tools/widl/parser.tab.c" - break; - - case 411: /* abstract_declarator: callconv m_abstract_declarator */ -#line 1158 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } -#line 5883 "tools/widl/parser.tab.c" - break; - - case 413: /* abstract_declarator_no_direct: '*' m_type_qual_list m_any_declarator */ -#line 1165 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } -#line 5889 "tools/widl/parser.tab.c" - break; - - case 414: /* abstract_declarator_no_direct: callconv m_any_declarator */ -#line 1166 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } -#line 5895 "tools/widl/parser.tab.c" - break; - - case 415: /* m_abstract_declarator: %empty */ -#line 1170 "tools/widl/parser.y" - { (yyval.declarator) = make_declarator(NULL); } -#line 5901 "tools/widl/parser.tab.c" - break; - - case 417: /* abstract_direct_declarator: '(' abstract_declarator_no_direct ')' */ -#line 1176 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[-1].declarator); } -#line 5907 "tools/widl/parser.tab.c" +#line 5875 "tools/widl/parser.tab.c" break; - case 418: /* abstract_direct_declarator: abstract_direct_declarator array */ -#line 1177 "tools/widl/parser.y" + case 409: /* direct_declarator: direct_declarator array */ +#line 1151 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[-1].declarator); append_array((yyval.declarator), (yyvsp[0].expr)); } -#line 5913 "tools/widl/parser.tab.c" +#line 5881 "tools/widl/parser.tab.c" break; - case 419: /* abstract_direct_declarator: array */ + case 410: /* direct_declarator: direct_declarator '(' m_args ')' */ +#line 1152 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[-3].declarator); append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); } +#line 5887 "tools/widl/parser.tab.c" + break; + + case 411: /* abstract_declarator: '*' m_type_qual_list m_abstract_declarator */ +#line 1158 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } +#line 5893 "tools/widl/parser.tab.c" + break; + + case 412: /* abstract_declarator: callconv m_abstract_declarator */ +#line 1159 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } +#line 5899 "tools/widl/parser.tab.c" + break; + + case 414: /* abstract_declarator_no_direct: '*' m_type_qual_list m_any_declarator */ +#line 1166 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } +#line 5905 "tools/widl/parser.tab.c" + break; + + case 415: /* abstract_declarator_no_direct: callconv m_any_declarator */ +#line 1167 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } +#line 5911 "tools/widl/parser.tab.c" + break; + + case 416: /* m_abstract_declarator: %empty */ +#line 1171 "tools/widl/parser.y" + { (yyval.declarator) = make_declarator(NULL); } +#line 5917 "tools/widl/parser.tab.c" + break; + + case 418: /* abstract_direct_declarator: '(' abstract_declarator_no_direct ')' */ +#line 1177 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[-1].declarator); } +#line 5923 "tools/widl/parser.tab.c" + break; + + case 419: /* abstract_direct_declarator: abstract_direct_declarator array */ #line 1178 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[-1].declarator); append_array((yyval.declarator), (yyvsp[0].expr)); } +#line 5929 "tools/widl/parser.tab.c" + break; + + case 420: /* abstract_direct_declarator: array */ +#line 1179 "tools/widl/parser.y" { (yyval.declarator) = make_declarator(NULL); append_array((yyval.declarator), (yyvsp[0].expr)); } -#line 5919 "tools/widl/parser.tab.c" - break; - - case 420: /* abstract_direct_declarator: '(' m_args ')' */ -#line 1180 "tools/widl/parser.y" - { (yyval.declarator) = make_declarator(NULL); - append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); - } -#line 5927 "tools/widl/parser.tab.c" - break; - - case 421: /* abstract_direct_declarator: abstract_direct_declarator '(' m_args ')' */ -#line 1184 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[-3].declarator); - append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); - } #line 5935 "tools/widl/parser.tab.c" break; - case 422: /* any_declarator: '*' m_type_qual_list m_any_declarator */ -#line 1192 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } -#line 5941 "tools/widl/parser.tab.c" - break; - - case 423: /* any_declarator: callconv m_any_declarator */ -#line 1193 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } -#line 5947 "tools/widl/parser.tab.c" - break; - - case 425: /* any_declarator_no_direct: '*' m_type_qual_list m_any_declarator */ -#line 1200 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } -#line 5953 "tools/widl/parser.tab.c" - break; - - case 426: /* any_declarator_no_direct: callconv m_any_declarator */ -#line 1201 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } -#line 5959 "tools/widl/parser.tab.c" - break; - - case 427: /* m_any_declarator: %empty */ -#line 1205 "tools/widl/parser.y" - { (yyval.declarator) = make_declarator(NULL); } -#line 5965 "tools/widl/parser.tab.c" - break; - - case 429: /* any_direct_declarator: ident */ -#line 1213 "tools/widl/parser.y" - { (yyval.declarator) = make_declarator((yyvsp[0].var)); } -#line 5971 "tools/widl/parser.tab.c" - break; - - case 430: /* any_direct_declarator: '(' any_declarator_no_direct ')' */ -#line 1214 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[-1].declarator); } -#line 5977 "tools/widl/parser.tab.c" - break; - - case 431: /* any_direct_declarator: any_direct_declarator array */ -#line 1215 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[-1].declarator); append_array((yyval.declarator), (yyvsp[0].expr)); } -#line 5983 "tools/widl/parser.tab.c" - break; - - case 432: /* any_direct_declarator: array */ -#line 1216 "tools/widl/parser.y" - { (yyval.declarator) = make_declarator(NULL); append_array((yyval.declarator), (yyvsp[0].expr)); } -#line 5989 "tools/widl/parser.tab.c" - break; - - case 433: /* any_direct_declarator: '(' m_args ')' */ -#line 1218 "tools/widl/parser.y" + case 421: /* abstract_direct_declarator: '(' m_args ')' */ +#line 1181 "tools/widl/parser.y" { (yyval.declarator) = make_declarator(NULL); append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); } -#line 5997 "tools/widl/parser.tab.c" +#line 5943 "tools/widl/parser.tab.c" break; - case 434: /* any_direct_declarator: any_direct_declarator '(' m_args ')' */ -#line 1222 "tools/widl/parser.y" + case 422: /* abstract_direct_declarator: abstract_direct_declarator '(' m_args ')' */ +#line 1185 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[-3].declarator); append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); } +#line 5951 "tools/widl/parser.tab.c" + break; + + case 423: /* any_declarator: '*' m_type_qual_list m_any_declarator */ +#line 1193 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } +#line 5957 "tools/widl/parser.tab.c" + break; + + case 424: /* any_declarator: callconv m_any_declarator */ +#line 1194 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } +#line 5963 "tools/widl/parser.tab.c" + break; + + case 426: /* any_declarator_no_direct: '*' m_type_qual_list m_any_declarator */ +#line 1201 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); append_chain_type((yyval.declarator), type_new_pointer(NULL), (yyvsp[-1].type_qualifier)); } +#line 5969 "tools/widl/parser.tab.c" + break; + + case 427: /* any_declarator_no_direct: callconv m_any_declarator */ +#line 1202 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); append_chain_callconv((yyval.declarator)->type, (yyvsp[-1].str)); } +#line 5975 "tools/widl/parser.tab.c" + break; + + case 428: /* m_any_declarator: %empty */ +#line 1206 "tools/widl/parser.y" + { (yyval.declarator) = make_declarator(NULL); } +#line 5981 "tools/widl/parser.tab.c" + break; + + case 430: /* any_direct_declarator: ident */ +#line 1214 "tools/widl/parser.y" + { (yyval.declarator) = make_declarator((yyvsp[0].var)); } +#line 5987 "tools/widl/parser.tab.c" + break; + + case 431: /* any_direct_declarator: '(' any_declarator_no_direct ')' */ +#line 1215 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[-1].declarator); } +#line 5993 "tools/widl/parser.tab.c" + break; + + case 432: /* any_direct_declarator: any_direct_declarator array */ +#line 1216 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[-1].declarator); append_array((yyval.declarator), (yyvsp[0].expr)); } +#line 5999 "tools/widl/parser.tab.c" + break; + + case 433: /* any_direct_declarator: array */ +#line 1217 "tools/widl/parser.y" + { (yyval.declarator) = make_declarator(NULL); append_array((yyval.declarator), (yyvsp[0].expr)); } #line 6005 "tools/widl/parser.tab.c" break; - case 435: /* declarator_list: declarator */ -#line 1228 "tools/widl/parser.y" - { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[0].declarator) ); } -#line 6011 "tools/widl/parser.tab.c" + case 434: /* any_direct_declarator: '(' m_args ')' */ +#line 1219 "tools/widl/parser.y" + { (yyval.declarator) = make_declarator(NULL); + append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); + } +#line 6013 "tools/widl/parser.tab.c" break; - case 436: /* declarator_list: declarator_list ',' declarator */ + case 435: /* any_direct_declarator: any_direct_declarator '(' m_args ')' */ +#line 1223 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[-3].declarator); + append_chain_type((yyval.declarator), type_new_function((yyvsp[-1].var_list)), 0); + } +#line 6021 "tools/widl/parser.tab.c" + break; + + case 436: /* declarator_list: declarator */ #line 1229 "tools/widl/parser.y" + { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[0].declarator) ); } +#line 6027 "tools/widl/parser.tab.c" + break; + + case 437: /* declarator_list: declarator_list ',' declarator */ +#line 1230 "tools/widl/parser.y" { (yyval.declarator_list) = append_declarator( (yyvsp[-2].declarator_list), (yyvsp[0].declarator) ); } -#line 6017 "tools/widl/parser.tab.c" +#line 6033 "tools/widl/parser.tab.c" break; - case 437: /* m_bitfield: %empty */ -#line 1232 "tools/widl/parser.y" - { (yyval.expr) = NULL; } -#line 6023 "tools/widl/parser.tab.c" - break; - - case 438: /* m_bitfield: ':' expr_const */ + case 438: /* m_bitfield: %empty */ #line 1233 "tools/widl/parser.y" - { (yyval.expr) = (yyvsp[0].expr); } -#line 6029 "tools/widl/parser.tab.c" + { (yyval.expr) = NULL; } +#line 6039 "tools/widl/parser.tab.c" break; - case 439: /* struct_declarator: any_declarator m_bitfield */ -#line 1236 "tools/widl/parser.y" + case 439: /* m_bitfield: ':' expr_const */ +#line 1234 "tools/widl/parser.y" + { (yyval.expr) = (yyvsp[0].expr); } +#line 6045 "tools/widl/parser.tab.c" + break; + + case 440: /* struct_declarator: any_declarator m_bitfield */ +#line 1237 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[-1].declarator); (yyval.declarator)->bits = (yyvsp[0].expr); if (!(yyval.declarator)->bits && !(yyval.declarator)->var->name) error_loc("unnamed fields are not allowed\n"); } -#line 6038 "tools/widl/parser.tab.c" +#line 6054 "tools/widl/parser.tab.c" break; - case 440: /* struct_declarator_list: struct_declarator */ -#line 1243 "tools/widl/parser.y" + case 441: /* struct_declarator_list: struct_declarator */ +#line 1244 "tools/widl/parser.y" { (yyval.declarator_list) = append_declarator( NULL, (yyvsp[0].declarator) ); } -#line 6044 "tools/widl/parser.tab.c" +#line 6060 "tools/widl/parser.tab.c" break; - case 441: /* struct_declarator_list: struct_declarator_list ',' struct_declarator */ -#line 1245 "tools/widl/parser.y" + case 442: /* struct_declarator_list: struct_declarator_list ',' struct_declarator */ +#line 1246 "tools/widl/parser.y" { (yyval.declarator_list) = append_declarator( (yyvsp[-2].declarator_list), (yyvsp[0].declarator) ); } -#line 6050 "tools/widl/parser.tab.c" +#line 6066 "tools/widl/parser.tab.c" break; - case 442: /* init_declarator: declarator */ -#line 1249 "tools/widl/parser.y" - { (yyval.declarator) = (yyvsp[0].declarator); } -#line 6056 "tools/widl/parser.tab.c" - break; - - case 443: /* init_declarator: declarator '=' expr_const */ + case 443: /* init_declarator: declarator */ #line 1250 "tools/widl/parser.y" + { (yyval.declarator) = (yyvsp[0].declarator); } +#line 6072 "tools/widl/parser.tab.c" + break; + + case 444: /* init_declarator: declarator '=' expr_const */ +#line 1251 "tools/widl/parser.y" { (yyval.declarator) = (yyvsp[-2].declarator); (yyvsp[-2].declarator)->var->eval = (yyvsp[0].expr); } -#line 6062 "tools/widl/parser.tab.c" +#line 6078 "tools/widl/parser.tab.c" break; - case 444: /* threading_type: tAPARTMENT */ -#line 1254 "tools/widl/parser.y" - { (yyval.num) = THREADING_APARTMENT; } -#line 6068 "tools/widl/parser.tab.c" - break; - - case 445: /* threading_type: tNEUTRAL */ + case 445: /* threading_type: tAPARTMENT */ #line 1255 "tools/widl/parser.y" - { (yyval.num) = THREADING_NEUTRAL; } -#line 6074 "tools/widl/parser.tab.c" + { (yyval.num) = THREADING_APARTMENT; } +#line 6084 "tools/widl/parser.tab.c" break; - case 446: /* threading_type: tSINGLE */ + case 446: /* threading_type: tNEUTRAL */ #line 1256 "tools/widl/parser.y" - { (yyval.num) = THREADING_SINGLE; } -#line 6080 "tools/widl/parser.tab.c" + { (yyval.num) = THREADING_NEUTRAL; } +#line 6090 "tools/widl/parser.tab.c" break; - case 447: /* threading_type: tFREE */ + case 447: /* threading_type: tSINGLE */ #line 1257 "tools/widl/parser.y" - { (yyval.num) = THREADING_FREE; } -#line 6086 "tools/widl/parser.tab.c" + { (yyval.num) = THREADING_SINGLE; } +#line 6096 "tools/widl/parser.tab.c" break; - case 448: /* threading_type: tBOTH */ + case 448: /* threading_type: tFREE */ #line 1258 "tools/widl/parser.y" - { (yyval.num) = THREADING_BOTH; } -#line 6092 "tools/widl/parser.tab.c" - break; - - case 449: /* threading_type: tMTA */ -#line 1259 "tools/widl/parser.y" { (yyval.num) = THREADING_FREE; } -#line 6098 "tools/widl/parser.tab.c" +#line 6102 "tools/widl/parser.tab.c" break; - case 450: /* pointer_type: tREF */ -#line 1263 "tools/widl/parser.y" - { (yyval.num) = FC_RP; } -#line 6104 "tools/widl/parser.tab.c" + case 449: /* threading_type: tBOTH */ +#line 1259 "tools/widl/parser.y" + { (yyval.num) = THREADING_BOTH; } +#line 6108 "tools/widl/parser.tab.c" break; - case 451: /* pointer_type: tUNIQUE */ + case 450: /* threading_type: tMTA */ +#line 1260 "tools/widl/parser.y" + { (yyval.num) = THREADING_FREE; } +#line 6114 "tools/widl/parser.tab.c" + break; + + case 451: /* pointer_type: tREF */ #line 1264 "tools/widl/parser.y" - { (yyval.num) = FC_UP; } -#line 6110 "tools/widl/parser.tab.c" + { (yyval.num) = FC_RP; } +#line 6120 "tools/widl/parser.tab.c" break; - case 452: /* pointer_type: tPTR */ + case 452: /* pointer_type: tUNIQUE */ #line 1265 "tools/widl/parser.y" + { (yyval.num) = FC_UP; } +#line 6126 "tools/widl/parser.tab.c" + break; + + case 453: /* pointer_type: tPTR */ +#line 1266 "tools/widl/parser.y" { (yyval.num) = FC_FP; } -#line 6116 "tools/widl/parser.tab.c" +#line 6132 "tools/widl/parser.tab.c" break; - case 453: /* structdef: tSTRUCT m_typename '{' fields '}' */ -#line 1268 "tools/widl/parser.y" + case 454: /* structdef: tSTRUCT m_typename '{' fields '}' */ +#line 1269 "tools/widl/parser.y" { (yyval.type) = type_new_struct((yyvsp[-3].str), current_namespace, TRUE, (yyvsp[-1].var_list)); } -#line 6122 "tools/widl/parser.tab.c" +#line 6138 "tools/widl/parser.tab.c" break; - case 454: /* unqualified_type: tVOID */ -#line 1272 "tools/widl/parser.y" - { (yyval.type) = type_new_void(); } -#line 6128 "tools/widl/parser.tab.c" - break; - - case 455: /* unqualified_type: base_type */ + case 455: /* unqualified_type: tVOID */ #line 1273 "tools/widl/parser.y" - { (yyval.type) = (yyvsp[0].type); } -#line 6134 "tools/widl/parser.tab.c" + { (yyval.type) = type_new_void(); } +#line 6144 "tools/widl/parser.tab.c" break; - case 456: /* unqualified_type: enumdef */ + case 456: /* unqualified_type: base_type */ #line 1274 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 6140 "tools/widl/parser.tab.c" +#line 6150 "tools/widl/parser.tab.c" break; - case 457: /* unqualified_type: tENUM aIDENTIFIER */ + case 457: /* unqualified_type: enumdef */ #line 1275 "tools/widl/parser.y" - { (yyval.type) = type_new_enum((yyvsp[0].str), current_namespace, FALSE, NULL); } -#line 6146 "tools/widl/parser.tab.c" + { (yyval.type) = (yyvsp[0].type); } +#line 6156 "tools/widl/parser.tab.c" break; - case 458: /* unqualified_type: structdef */ + case 458: /* unqualified_type: tENUM aIDENTIFIER */ #line 1276 "tools/widl/parser.y" - { (yyval.type) = (yyvsp[0].type); } -#line 6152 "tools/widl/parser.tab.c" + { (yyval.type) = type_new_enum((yyvsp[0].str), current_namespace, FALSE, NULL); } +#line 6162 "tools/widl/parser.tab.c" break; - case 459: /* unqualified_type: tSTRUCT aIDENTIFIER */ + case 459: /* unqualified_type: structdef */ #line 1277 "tools/widl/parser.y" - { (yyval.type) = type_new_struct((yyvsp[0].str), current_namespace, FALSE, NULL); } -#line 6158 "tools/widl/parser.tab.c" + { (yyval.type) = (yyvsp[0].type); } +#line 6168 "tools/widl/parser.tab.c" break; - case 460: /* unqualified_type: uniondef */ + case 460: /* unqualified_type: tSTRUCT aIDENTIFIER */ #line 1278 "tools/widl/parser.y" - { (yyval.type) = (yyvsp[0].type); } -#line 6164 "tools/widl/parser.tab.c" + { (yyval.type) = type_new_struct((yyvsp[0].str), current_namespace, FALSE, NULL); } +#line 6174 "tools/widl/parser.tab.c" break; - case 461: /* unqualified_type: tUNION aIDENTIFIER */ + case 461: /* unqualified_type: uniondef */ #line 1279 "tools/widl/parser.y" - { (yyval.type) = type_new_nonencapsulated_union((yyvsp[0].str), FALSE, NULL); } -#line 6170 "tools/widl/parser.tab.c" - break; - - case 462: /* unqualified_type: tSAFEARRAY '(' type ')' */ -#line 1280 "tools/widl/parser.y" - { (yyval.type) = make_safearray((yyvsp[-1].type)); } -#line 6176 "tools/widl/parser.tab.c" - break; - - case 463: /* unqualified_type: aKNOWNTYPE */ -#line 1281 "tools/widl/parser.y" - { (yyval.type) = find_type_or_error(current_namespace, (yyvsp[0].str)); } -#line 6182 "tools/widl/parser.tab.c" - break; - - case 465: /* type: namespace_pfx typename */ -#line 1286 "tools/widl/parser.y" - { (yyval.type) = find_type_or_error((yyvsp[-1].namespace), (yyvsp[0].str)); } -#line 6188 "tools/widl/parser.tab.c" - break; - - case 466: /* type: parameterized_type */ -#line 1287 "tools/widl/parser.y" { (yyval.type) = (yyvsp[0].type); } -#line 6194 "tools/widl/parser.tab.c" +#line 6180 "tools/widl/parser.tab.c" break; - case 467: /* typedef: m_attributes tTYPEDEF m_attributes decl_spec declarator_list */ -#line 1291 "tools/widl/parser.y" + case 462: /* unqualified_type: tUNION aIDENTIFIER */ +#line 1280 "tools/widl/parser.y" + { (yyval.type) = type_new_nonencapsulated_union((yyvsp[0].str), FALSE, NULL); } +#line 6186 "tools/widl/parser.tab.c" + break; + + case 463: /* unqualified_type: tSAFEARRAY '(' type ')' */ +#line 1281 "tools/widl/parser.y" + { (yyval.type) = make_safearray((yyvsp[-1].type)); } +#line 6192 "tools/widl/parser.tab.c" + break; + + case 464: /* unqualified_type: aKNOWNTYPE */ +#line 1282 "tools/widl/parser.y" + { (yyval.type) = find_type_or_error(current_namespace, (yyvsp[0].str)); } +#line 6198 "tools/widl/parser.tab.c" + break; + + case 466: /* type: namespace_pfx typename */ +#line 1287 "tools/widl/parser.y" + { (yyval.type) = find_type_or_error((yyvsp[-1].namespace), (yyvsp[0].str)); } +#line 6204 "tools/widl/parser.tab.c" + break; + + case 467: /* type: parameterized_type */ +#line 1288 "tools/widl/parser.y" + { (yyval.type) = (yyvsp[0].type); } +#line 6210 "tools/widl/parser.tab.c" + break; + + case 468: /* typedef: m_attributes tTYPEDEF m_attributes decl_spec declarator_list */ +#line 1292 "tools/widl/parser.y" { (yyvsp[-4].attr_list) = append_attribs((yyvsp[-4].attr_list), (yyvsp[-2].attr_list)); reg_typedefs((yyvsp[-1].declspec), (yyvsp[0].declarator_list), check_typedef_attrs((yyvsp[-4].attr_list))); (yyval.statement) = make_statement_typedef((yyvsp[0].declarator_list), !(yyvsp[-1].declspec)->type->defined); } -#line 6203 "tools/widl/parser.tab.c" +#line 6219 "tools/widl/parser.tab.c" break; - case 468: /* uniondef: tUNION m_typename '{' ne_union_fields '}' */ -#line 1298 "tools/widl/parser.y" + case 469: /* uniondef: tUNION m_typename '{' ne_union_fields '}' */ +#line 1299 "tools/widl/parser.y" { (yyval.type) = type_new_nonencapsulated_union((yyvsp[-3].str), TRUE, (yyvsp[-1].var_list)); } -#line 6209 "tools/widl/parser.tab.c" +#line 6225 "tools/widl/parser.tab.c" break; - case 469: /* uniondef: tUNION m_typename tSWITCH '(' s_field ')' m_ident '{' cases '}' */ -#line 1301 "tools/widl/parser.y" + case 470: /* uniondef: tUNION m_typename tSWITCH '(' s_field ')' m_ident '{' cases '}' */ +#line 1302 "tools/widl/parser.y" { (yyval.type) = type_new_encapsulated_union((yyvsp[-8].str), (yyvsp[-5].var), (yyvsp[-3].var), (yyvsp[-1].var_list)); } -#line 6215 "tools/widl/parser.tab.c" +#line 6231 "tools/widl/parser.tab.c" break; - case 470: /* version: aNUM */ -#line 1305 "tools/widl/parser.y" - { (yyval.num) = MAKEVERSION((yyvsp[0].num), 0); } -#line 6221 "tools/widl/parser.tab.c" - break; - - case 471: /* version: aNUM '.' aNUM */ + case 471: /* version: aNUM */ #line 1306 "tools/widl/parser.y" - { (yyval.num) = MAKEVERSION((yyvsp[-2].num), (yyvsp[0].num)); } -#line 6227 "tools/widl/parser.tab.c" + { (yyval.num) = MAKEVERSION((yyvsp[0].num), 0); } +#line 6237 "tools/widl/parser.tab.c" break; - case 472: /* version: aHEXNUM */ + case 472: /* version: aNUM '.' aNUM */ #line 1307 "tools/widl/parser.y" - { (yyval.num) = (yyvsp[0].num); } -#line 6233 "tools/widl/parser.tab.c" + { (yyval.num) = MAKEVERSION((yyvsp[-2].num), (yyvsp[0].num)); } +#line 6243 "tools/widl/parser.tab.c" break; - case 477: /* acf_int_statement: tTYPEDEF acf_attributes aKNOWNTYPE ';' */ -#line 1322 "tools/widl/parser.y" + case 473: /* version: aHEXNUM */ +#line 1308 "tools/widl/parser.y" + { (yyval.num) = (yyvsp[0].num); } +#line 6249 "tools/widl/parser.tab.c" + break; + + case 478: /* acf_int_statement: tTYPEDEF acf_attributes aKNOWNTYPE ';' */ +#line 1323 "tools/widl/parser.y" { type_t *type = find_type_or_error(current_namespace, (yyvsp[-1].str)); type->attrs = append_attr_list(type->attrs, (yyvsp[-2].attr_list)); } -#line 6241 "tools/widl/parser.tab.c" +#line 6257 "tools/widl/parser.tab.c" break; - case 478: /* acf_interface: acf_attributes tINTERFACE aKNOWNTYPE '{' acf_int_statements '}' */ -#line 1329 "tools/widl/parser.y" + case 479: /* acf_interface: acf_attributes tINTERFACE aKNOWNTYPE '{' acf_int_statements '}' */ +#line 1330 "tools/widl/parser.y" { type_t *iface = find_type_or_error(current_namespace, (yyvsp[-3].str)); if (type_get_type(iface) != TYPE_INTERFACE) error_loc("%s is not an interface\n", iface->name); iface->attrs = append_attr_list(iface->attrs, (yyvsp[-5].attr_list)); } -#line 6251 "tools/widl/parser.tab.c" +#line 6267 "tools/widl/parser.tab.c" break; - case 479: /* acf_attributes: %empty */ -#line 1337 "tools/widl/parser.y" - { (yyval.attr_list) = NULL; } -#line 6257 "tools/widl/parser.tab.c" - break; - - case 480: /* acf_attributes: '[' acf_attribute_list ']' */ + case 480: /* acf_attributes: %empty */ #line 1338 "tools/widl/parser.y" + { (yyval.attr_list) = NULL; } +#line 6273 "tools/widl/parser.tab.c" + break; + + case 481: /* acf_attributes: '[' acf_attribute_list ']' */ +#line 1339 "tools/widl/parser.y" { (yyval.attr_list) = (yyvsp[-1].attr_list); } -#line 6263 "tools/widl/parser.tab.c" +#line 6279 "tools/widl/parser.tab.c" break; - case 481: /* acf_attribute_list: acf_attribute */ -#line 1342 "tools/widl/parser.y" - { (yyval.attr_list) = append_attr(NULL, (yyvsp[0].attr)); } -#line 6269 "tools/widl/parser.tab.c" - break; - - case 482: /* acf_attribute_list: acf_attribute_list ',' acf_attribute */ + case 482: /* acf_attribute_list: acf_attribute */ #line 1343 "tools/widl/parser.y" + { (yyval.attr_list) = append_attr(NULL, (yyvsp[0].attr)); } +#line 6285 "tools/widl/parser.tab.c" + break; + + case 483: /* acf_attribute_list: acf_attribute_list ',' acf_attribute */ +#line 1344 "tools/widl/parser.y" { (yyval.attr_list) = append_attr((yyvsp[-2].attr_list), (yyvsp[0].attr)); } -#line 6275 "tools/widl/parser.tab.c" +#line 6291 "tools/widl/parser.tab.c" break; - case 483: /* acf_attribute: tALLOCATE '(' allocate_option_list ')' */ -#line 1348 "tools/widl/parser.y" - { (yyval.attr) = make_attrv(ATTR_ALLOCATE, (yyvsp[-1].num)); } -#line 6281 "tools/widl/parser.tab.c" - break; - - case 484: /* acf_attribute: tENCODE */ + case 484: /* acf_attribute: tALLOCATE '(' allocate_option_list ')' */ #line 1349 "tools/widl/parser.y" - { (yyval.attr) = make_attr(ATTR_ENCODE); } -#line 6287 "tools/widl/parser.tab.c" + { (yyval.attr) = make_attrv(ATTR_ALLOCATE, (yyvsp[-1].num)); } +#line 6297 "tools/widl/parser.tab.c" break; - case 485: /* acf_attribute: tDECODE */ + case 485: /* acf_attribute: tENCODE */ #line 1350 "tools/widl/parser.y" - { (yyval.attr) = make_attr(ATTR_DECODE); } -#line 6293 "tools/widl/parser.tab.c" + { (yyval.attr) = make_attr(ATTR_ENCODE); } +#line 6303 "tools/widl/parser.tab.c" break; - case 486: /* acf_attribute: tEXPLICITHANDLE */ + case 486: /* acf_attribute: tDECODE */ #line 1351 "tools/widl/parser.y" + { (yyval.attr) = make_attr(ATTR_DECODE); } +#line 6309 "tools/widl/parser.tab.c" + break; + + case 487: /* acf_attribute: tEXPLICITHANDLE */ +#line 1352 "tools/widl/parser.y" { (yyval.attr) = make_attr(ATTR_EXPLICIT_HANDLE); } -#line 6299 "tools/widl/parser.tab.c" +#line 6315 "tools/widl/parser.tab.c" break; - case 487: /* allocate_option_list: allocate_option */ -#line 1355 "tools/widl/parser.y" + case 488: /* allocate_option_list: allocate_option */ +#line 1356 "tools/widl/parser.y" { (yyval.num) = (yyvsp[0].num); } -#line 6305 "tools/widl/parser.tab.c" +#line 6321 "tools/widl/parser.tab.c" break; - case 488: /* allocate_option_list: allocate_option_list ',' allocate_option */ -#line 1357 "tools/widl/parser.y" + case 489: /* allocate_option_list: allocate_option_list ',' allocate_option */ +#line 1358 "tools/widl/parser.y" { (yyval.num) = (yyvsp[-2].num) | (yyvsp[0].num); } -#line 6311 "tools/widl/parser.tab.c" +#line 6327 "tools/widl/parser.tab.c" break; - case 489: /* allocate_option: tDONTFREE */ -#line 1361 "tools/widl/parser.y" - { (yyval.num) = FC_DONT_FREE; } -#line 6317 "tools/widl/parser.tab.c" - break; - - case 490: /* allocate_option: tFREE */ + case 490: /* allocate_option: tDONTFREE */ #line 1362 "tools/widl/parser.y" - { (yyval.num) = 0; } -#line 6323 "tools/widl/parser.tab.c" + { (yyval.num) = FC_DONT_FREE; } +#line 6333 "tools/widl/parser.tab.c" break; - case 491: /* allocate_option: tALLNODES */ + case 491: /* allocate_option: tFREE */ #line 1363 "tools/widl/parser.y" - { (yyval.num) = FC_ALLOCATE_ALL_NODES; } -#line 6329 "tools/widl/parser.tab.c" - break; - - case 492: /* allocate_option: tSINGLENODE */ -#line 1364 "tools/widl/parser.y" { (yyval.num) = 0; } -#line 6335 "tools/widl/parser.tab.c" +#line 6339 "tools/widl/parser.tab.c" + break; + + case 492: /* allocate_option: tALLNODES */ +#line 1364 "tools/widl/parser.y" + { (yyval.num) = FC_ALLOCATE_ALL_NODES; } +#line 6345 "tools/widl/parser.tab.c" + break; + + case 493: /* allocate_option: tSINGLENODE */ +#line 1365 "tools/widl/parser.y" + { (yyval.num) = 0; } +#line 6351 "tools/widl/parser.tab.c" break; -#line 6339 "tools/widl/parser.tab.c" +#line 6355 "tools/widl/parser.tab.c" default: break; } @@ -6559,7 +6575,7 @@ return yyresult; } -#line 1367 "tools/widl/parser.y" +#line 1368 "tools/widl/parser.y" static void decl_builtin_basic(const char *name, enum type_basic_type type) @@ -7237,6 +7253,20 @@ current_namespace = current_namespace->parent; } +static void push_namespaces(str_list_t *names) +{ + const struct str_list_entry_t *name; + LIST_FOR_EACH_ENTRY(name, names, const struct str_list_entry_t, entry) + push_namespace(name->str); +} + +static void pop_namespaces(str_list_t *names) +{ + const struct str_list_entry_t *name; + LIST_FOR_EACH_ENTRY_REV(name, names, const struct str_list_entry_t, entry) + pop_namespace(name->str); +} + static void push_parameters_namespace(const char *name) { struct namespace *namespace; @@ -7507,7 +7537,7 @@ struct allowed_attr allowed_attr[] = { /* attr { D ACF M I Fn ARG T En Enm St Un Fi L DI M C AC R <display name> } */ - /* ATTR_ACTIVATABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "activatable" }, + /* ATTR_ACTIVATABLE */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "activatable" }, /* ATTR_AGGREGATABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, "aggregatable" }, /* ATTR_ALLOCATE */ { 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "allocate" }, /* ATTR_ANNOTATION */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "annotation" }, @@ -8303,9 +8333,9 @@ if (args) LIST_FOR_EACH_ENTRY(arg, args, var_t, entry) { if (is_attr(arg->attrs, ATTR_IN) || !is_attr(arg->attrs, ATTR_OUT)) - begin_args = append_var(begin_args, copy_var(arg, strdup(arg->name), arg_in_attrs)); + begin_args = append_var(begin_args, copy_var(arg, xstrdup(arg->name), arg_in_attrs)); if (is_attr(arg->attrs, ATTR_OUT)) - finish_args = append_var(finish_args, copy_var(arg, strdup(arg->name), arg_out_attrs)); + finish_args = append_var(finish_args, copy_var(arg, xstrdup(arg->name), arg_out_attrs)); } begin_func = copy_var(func, strmake("Begin_%s", func->name), NULL);
diff --git a/mingw-w64-tools/widl/src/parser.y b/mingw-w64-tools/widl/src/parser.y index d6ac73c..02db99a 100644 --- a/mingw-w64-tools/widl/src/parser.y +++ b/mingw-w64-tools/widl/src/parser.y
@@ -70,8 +70,8 @@ static var_t *reg_const(var_t *var); -static void push_namespace(const char *name); -static void pop_namespace(const char *name); +static void push_namespaces(str_list_t *names); +static void pop_namespaces(str_list_t *names); static void push_parameters_namespace(const char *name); static void pop_parameters_namespace(const char *name); @@ -293,7 +293,7 @@ %type <type> dispinterfaceref %type <type> dispinterface dispinterfacedef %type <type> module moduledef -%type <str> namespacedef +%type <str_list> namespacedef %type <type> base_type int_std %type <type> enumdef structdef uniondef typedecl %type <type> type unqualified_type qualified_type @@ -385,8 +385,8 @@ imp_decl_block: tDECLARE '{' imp_decl_statements '}' { $$ = $3; } gbl_statements: { $$ = NULL; } - | gbl_statements namespacedef '{' { push_namespace($2); } gbl_statements '}' - { pop_namespace($2); $$ = append_statements($1, $5); } + | gbl_statements namespacedef '{' { push_namespaces($2); } gbl_statements '}' + { pop_namespaces($2); $$ = append_statements($1, $5); } | gbl_statements interface ';' { $$ = append_statement($1, make_statement_reference($2)); } | gbl_statements dispinterface ';' { $$ = append_statement($1, make_statement_reference($2)); } | gbl_statements interfacedef { $$ = append_statement($1, make_statement_type_decl($2)); } @@ -412,8 +412,8 @@ imp_statements: { $$ = NULL; } | imp_statements interface ';' { $$ = append_statement($1, make_statement_reference($2)); } | imp_statements dispinterface ';' { $$ = append_statement($1, make_statement_reference($2)); } - | imp_statements namespacedef '{' { push_namespace($2); } imp_statements '}' - { pop_namespace($2); $$ = append_statements($1, $5); } + | imp_statements namespacedef '{' { push_namespaces($2); } imp_statements '}' + { pop_namespaces($2); $$ = append_statements($1, $5); } | imp_statements interfacedef { $$ = append_statement($1, make_statement_type_decl($2)); } | imp_statements delegatedef { $$ = append_statement($1, make_statement_type_decl($2)); } | imp_statements coclass ';' { $$ = $1; reg_type($2, $2->name, current_namespace, 0); } @@ -521,7 +521,7 @@ ; args: arg_list - | arg_list ',' ELLIPSIS { $$ = append_var( $1, make_var(strdup("...")) ); } + | arg_list ',' ELLIPSIS { $$ = append_var( $1, make_var(xstrdup("...")) ); } ; /* split into two rules to get bison to resolve a tVOID conflict */ @@ -992,7 +992,8 @@ { $$ = type_apicontract_define($2, $1); } ; -namespacedef: tNAMESPACE aIDENTIFIER { $$ = $2; } +namespacedef: tNAMESPACE aIDENTIFIER { $$ = append_str( NULL, $2 ); } + | namespacedef '.' aIDENTIFIER { $$ = append_str( $1, $3 ); } ; class_interfaces: { $$ = NULL; } @@ -2041,6 +2042,20 @@ current_namespace = current_namespace->parent; } +static void push_namespaces(str_list_t *names) +{ + const struct str_list_entry_t *name; + LIST_FOR_EACH_ENTRY(name, names, const struct str_list_entry_t, entry) + push_namespace(name->str); +} + +static void pop_namespaces(str_list_t *names) +{ + const struct str_list_entry_t *name; + LIST_FOR_EACH_ENTRY_REV(name, names, const struct str_list_entry_t, entry) + pop_namespace(name->str); +} + static void push_parameters_namespace(const char *name) { struct namespace *namespace; @@ -2311,7 +2326,7 @@ struct allowed_attr allowed_attr[] = { /* attr { D ACF M I Fn ARG T En Enm St Un Fi L DI M C AC R <display name> } */ - /* ATTR_ACTIVATABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "activatable" }, + /* ATTR_ACTIVATABLE */ { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, "activatable" }, /* ATTR_AGGREGATABLE */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, "aggregatable" }, /* ATTR_ALLOCATE */ { 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "allocate" }, /* ATTR_ANNOTATION */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "annotation" }, @@ -3107,9 +3122,9 @@ if (args) LIST_FOR_EACH_ENTRY(arg, args, var_t, entry) { if (is_attr(arg->attrs, ATTR_IN) || !is_attr(arg->attrs, ATTR_OUT)) - begin_args = append_var(begin_args, copy_var(arg, strdup(arg->name), arg_in_attrs)); + begin_args = append_var(begin_args, copy_var(arg, xstrdup(arg->name), arg_in_attrs)); if (is_attr(arg->attrs, ATTR_OUT)) - finish_args = append_var(finish_args, copy_var(arg, strdup(arg->name), arg_out_attrs)); + finish_args = append_var(finish_args, copy_var(arg, xstrdup(arg->name), arg_out_attrs)); } begin_func = copy_var(func, strmake("Begin_%s", func->name), NULL);
diff --git a/mingw-w64-tools/widl/src/typetree.c b/mingw-w64-tools/widl/src/typetree.c index dc4db35..800ddf7 100644 --- a/mingw-w64-tools/widl/src/typetree.c +++ b/mingw-w64-tools/widl/src/typetree.c
@@ -226,12 +226,14 @@ case TYPE_BASIC_DOUBLE: n += strappend(buf, len, pos + n, "f8"); return n; + case TYPE_BASIC_BYTE: + n += strappend(buf, len, pos + n, "u1"); + return n; case TYPE_BASIC_INT16: case TYPE_BASIC_INT3264: case TYPE_BASIC_LONG: case TYPE_BASIC_CHAR: case TYPE_BASIC_HYPER: - case TYPE_BASIC_BYTE: case TYPE_BASIC_WCHAR: case TYPE_BASIC_ERROR_STATUS_T: case TYPE_BASIC_HANDLE:
diff --git a/mingw-w64-tools/widl/src/widl.c b/mingw-w64-tools/widl/src/widl.c index 4ae380b..995e957 100644 --- a/mingw-w64-tools/widl/src/widl.c +++ b/mingw-w64-tools/widl/src/widl.c
@@ -490,8 +490,8 @@ #elif defined (__FreeBSD__) || defined(__DragonFly__) static int pathname[] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 }; size_t path_size = PATH_MAX; - char *path = malloc( path_size ); - if (path && !sysctl( pathname, sizeof(pathname)/sizeof(pathname[0]), path, &path_size, NULL, 0 )) + char *path = xmalloc( path_size ); + if (!sysctl( pathname, sizeof(pathname)/sizeof(pathname[0]), path, &path_size, NULL, 0 )) dir = realpath( path, NULL ); free( path ); #else @@ -710,7 +710,7 @@ TRYOPEN( strmake( "%s%s/%s", default_dirs[i], pe_dir, name )); } } - return -1; + error( "cannot find %s\n", name ); #undef TRYOPEN }