https://git.reactos.org/?p=reactos.git;a=commitdiff;h=7e99651d65d8c33404119…
commit 7e99651d65d8c33404119d0916d5072813449a8f
Author: Amine Khaldi <amine.khaldi(a)reactos.org>
AuthorDate: Sat Jan 20 13:47:34 2018 +0100
Commit: Amine Khaldi <amine.khaldi(a)reactos.org>
CommitDate: Sat Jan 20 13:47:34 2018 +0100
[WBEMPROX] Sync with Wine 3.0. CORE-14225
---
dll/win32/wbemprox/builtin.c | 134 +++-------------
dll/win32/wbemprox/wql.tab.c | 356 ++++++++++++++++++++++++-------------------
dll/win32/wbemprox/wql.y | 36 +++--
media/doc/README.WINE | 2 +-
4 files changed, 241 insertions(+), 287 deletions(-)
diff --git a/dll/win32/wbemprox/builtin.c b/dll/win32/wbemprox/builtin.c
index bf92d3c35e..d32b72f9fb 100644
--- a/dll/win32/wbemprox/builtin.c
+++ b/dll/win32/wbemprox/builtin.c
@@ -136,10 +136,6 @@ static const WCHAR prop_codesetW[] =
{'C','o','d','e','S','e','t',0};
static const WCHAR prop_commandlineW[] =
{'C','o','m','m','a','n','d','L','i','n','e',0};
-#ifndef __REACTOS__
-static const WCHAR prop_configmanagererrorcodeW[] =
-
{'C','o','n','f','i','g','M','a','n','a','g','e','r','E','r','r','o','r','C','o','d','e',0};
-#endif
static const WCHAR prop_countrycodeW[] =
{'C','o','u','n','t','r','y','C','o','d','e',0};
static const WCHAR prop_cpustatusW[] =
@@ -192,10 +188,6 @@ static const WCHAR prop_domainroleW[] =
{'D','o','m','a','i','n','R','o','l','e',0};
static const WCHAR prop_driveW[] =
{'D','r','i','v','e',0};
-#ifndef __REACTOS__
-static const WCHAR prop_driverdateW[] =
-
{'D','r','i','v','e','r','D','a','t','e',0};
-#endif
static const WCHAR prop_drivernameW[] =
{'D','r','i','v','e','r','N','a','m','e',0};
#ifndef __REACTOS__
@@ -212,8 +204,6 @@ static const WCHAR prop_flavorW[] =
{'F','l','a','v','o','r',0};
static const WCHAR prop_freespaceW[] =
{'F','r','e','e','S','p','a','c','e',0};
-static const WCHAR prop_freephysicalmemoryW[] =
-
{'F','r','e','e','P','h','y','s','i','c','a','l','M','e','m','o','r','y',0};
static const WCHAR prop_handleW[] =
{'H','a','n','d','l','e',0};
static const WCHAR prop_horizontalresolutionW[] =
@@ -228,10 +218,6 @@ static const WCHAR prop_indexW[] =
{'I','n','d','e','x',0};
static const WCHAR prop_installdateW[] =
{'I','n','s','t','a','l','l','D','a','t','e',0};
-#ifndef __REACTOS__
-static const WCHAR prop_installeddisplaydriversW[]=
-
{'I','n','s','t','a','l','l','e','d','D','i','s','p','l','a','y','D','r','i','v','e','r','s',0};
-#endif
static const WCHAR prop_interfaceindexW[] =
{'I','n','t','e','r','f','a','c','e','I','n','d','e','x',0};
static const WCHAR prop_interfacetypeW[] =
@@ -250,8 +236,6 @@ static const WCHAR prop_localdatetimeW[] =
{'L','o','c','a','l','D','a','t','e','T','i','m','e',0};
static const WCHAR prop_localeW[] =
{'L','o','c','a','l','e',0};
-static const WCHAR prop_locationW[] =
-
{'L','o','c','a','t','i','o','n',0};
static const WCHAR prop_lockpresentW[] =
{'L','o','c','k','P','r','e','s','e','n','t',0};
static const WCHAR prop_macaddressW[] =
@@ -298,8 +282,6 @@ static const WCHAR prop_pixelsperxlogicalinchW[] =
{'P','i','x','e','l','s','P','e','r','X','L','o','g','i','c','a','l','I','n','c','h',0};
static const WCHAR prop_pnpdeviceidW[] =
{'P','N','P','D','e','v','i','c','e','I','D',0};
-static const WCHAR prop_portnameW[] =
-
{'P','o','r','t','N','a','m','e',0};
static const WCHAR prop_pprocessidW[] =
{'P','a','r','e','n','t','P','r','o','c','e','s','s','I','D',0};
static const WCHAR prop_primaryW[] =
@@ -344,10 +326,6 @@ static const WCHAR prop_startingoffsetW[] =
{'S','t','a','r','t','i','n','g','O','f','f','s','e','t',0};
static const WCHAR prop_stateW[] =
{'S','t','a','t','e',0};
-#ifndef __REACTOS__
-static const WCHAR prop_statusW[] =
- {'S','t','a','t','u','s',0};
-#endif
static const WCHAR prop_statusinfoW[] =
{'S','t','a','t','u','s','I','n','f','o',0};
static const WCHAR prop_strvalueW[] =
@@ -380,8 +358,6 @@ static const WCHAR prop_varianttypeW[] =
{'V','a','r','i','a','n','t','T','y','p','e',0};
static const WCHAR prop_versionW[] =
{'V','e','r','s','i','o','n',0};
-static const WCHAR prop_vendorW[] =
- {'V','e','n','d','o','r',0};
#ifndef __REACTOS__
static const WCHAR prop_videoarchitectureW[] =
{'V','i','d','e','o','A','r','c','h','i','t','e','c','t','u','r','e',0};
@@ -445,8 +421,7 @@ static const struct column col_compsys[] =
static const struct column col_compsysproduct[] =
{
{ prop_identifyingnumberW, CIM_STRING|COL_FLAG_KEY },
- { prop_uuidW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_vendorW, CIM_STRING },
+ { prop_uuidW, CIM_STRING|COL_FLAG_DYNAMIC }
};
static const struct column col_datafile[] =
{
@@ -554,7 +529,6 @@ static const struct column col_os[] =
{ prop_systemdirectoryW, CIM_STRING|COL_FLAG_DYNAMIC },
{ prop_totalvirtualmemorysizeW, CIM_UINT64 },
{ prop_totalvisiblememorysizeW, CIM_UINT64 },
- { prop_freephysicalmemoryW, CIM_UINT64 },
{ prop_versionW, CIM_STRING|COL_FLAG_DYNAMIC }
};
static const struct column col_param[] =
@@ -584,10 +558,7 @@ static const struct column col_printer[] =
{ prop_horizontalresolutionW, CIM_UINT32 },
{ prop_localW, CIM_BOOLEAN },
{ prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_networkW, CIM_BOOLEAN },
- { prop_deviceidW, CIM_STRING|COL_FLAG_DYNAMIC|COL_FLAG_KEY },
- { prop_portnameW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_locationW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_networkW, CIM_BOOLEAN }
};
static const struct column col_process[] =
{
@@ -689,28 +660,24 @@ static const struct column col_systemsecurity[] =
#ifndef __REACTOS__
static const struct column col_videocontroller[] =
{
- { prop_adapterdactypeW, CIM_STRING },
- { prop_adapterramW, CIM_UINT32, VT_I4 },
- { prop_availabilityW, CIM_UINT16 },
- { prop_captionW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_configmanagererrorcodeW, CIM_UINT32, VT_I4 },
- { prop_currentbitsperpixelW, CIM_UINT32, VT_I4 },
- { prop_currenthorizontalresW, CIM_UINT32, VT_I4 },
- { prop_currentrefreshrateW, CIM_UINT32, VT_I4 },
- { prop_currentscanmodeW, CIM_UINT16, VT_I4 },
- { prop_currentverticalresW, CIM_UINT32, VT_I4 },
- { prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_deviceidW, CIM_STRING|COL_FLAG_KEY },
- { prop_driverdateW, CIM_DATETIME },
- { prop_driverversionW, CIM_STRING },
- { prop_installeddisplaydriversW,CIM_STRING },
- { prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_pnpdeviceidW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_statusW, CIM_STRING },
- { prop_videoarchitectureW, CIM_UINT16, VT_I4 },
- { prop_videomemorytypeW, CIM_UINT16, VT_I4 },
- { prop_videomodedescriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
- { prop_videoprocessorW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_adapterdactypeW, CIM_STRING },
+ { prop_adapterramW, CIM_UINT32, VT_I4 },
+ { prop_availabilityW, CIM_UINT16 },
+ { prop_captionW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_currentbitsperpixelW, CIM_UINT32, VT_I4 },
+ { prop_currenthorizontalresW, CIM_UINT32, VT_I4 },
+ { prop_currentrefreshrateW, CIM_UINT32, VT_I4 },
+ { prop_currentscanmodeW, CIM_UINT16, VT_I4 },
+ { prop_currentverticalresW, CIM_UINT32, VT_I4 },
+ { prop_descriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_deviceidW, CIM_STRING|COL_FLAG_KEY },
+ { prop_driverversionW, CIM_STRING },
+ { prop_nameW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_pnpdeviceidW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_videoarchitectureW, CIM_UINT16, VT_I4 },
+ { prop_videomemorytypeW, CIM_UINT16, VT_I4 },
+ { prop_videomodedescriptionW, CIM_STRING|COL_FLAG_DYNAMIC },
+ { prop_videoprocessorW, CIM_STRING|COL_FLAG_DYNAMIC }
};
#endif
@@ -758,8 +725,6 @@ static const WCHAR compsysproduct_identifyingnumberW[] =
static const WCHAR compsysproduct_uuidW[] =
{'d','e','a','d','d','e','a','d','-','d','e','a','d','-','d','e','a','d','-','d','e','a','d','-',
'd','e','a','d','d','e','a','d','d','e','a','d',0};
-static const WCHAR compsysproduct_vendorW[] =
- {'W','i','n','e',0};
static const WCHAR diskdrive_interfacetypeW[] =
{'I','D','E',0};
static const WCHAR diskdrive_manufacturerW[] =
@@ -801,12 +766,8 @@ static const WCHAR videocontroller_dactypeW[] =
{'I','n','t','e','g','r','a','t','e','d','
','R','A','M','D','A','C',0};
static const WCHAR videocontroller_deviceidW[] =
{'V','i','d','e','o','C','o','n','t','r','o','l','l','e','r','1',0};
-static const WCHAR videocontroller_driverDateW[] =
-
{'2','0','1','7','0','1','0','1','0','0','0','0','0','0','.','0','0','0','0','0','0','+','0','0','0',0};
static const WCHAR videocontroller_driverversionW[] =
{'1','.','0',0};
-static const WCHAR videocontroller_statusW[] =
- {'O','K',0};
#endif
#include "pshpack1.h"
@@ -856,7 +817,6 @@ struct record_computersystemproduct
{
const WCHAR *identifyingnumber;
const WCHAR *uuid;
- const WCHAR *vendor;
};
struct record_datafile
{
@@ -964,7 +924,6 @@ struct record_operatingsystem
const WCHAR *systemdirectory;
UINT64 totalvirtualmemorysize;
UINT64 totalvisiblememorysize;
- UINT64 freephysicalmemory;
const WCHAR *version;
};
struct record_param
@@ -995,9 +954,6 @@ struct record_printer
int local;
const WCHAR *name;
int network;
- const WCHAR *device_id;
- const WCHAR *portname;
- const WCHAR *location;
};
struct record_process
{
@@ -1101,7 +1057,6 @@ struct record_videocontroller
UINT32 adapter_ram;
UINT16 availability;
const WCHAR *caption;
- UINT32 config_errorcode;
UINT32 current_bitsperpixel;
UINT32 current_horizontalres;
UINT32 current_refreshrate;
@@ -1109,12 +1064,9 @@ struct record_videocontroller
UINT32 current_verticalres;
const WCHAR *description;
const WCHAR *device_id;
- const WCHAR *driverdate;
const WCHAR *driverversion;
- const WCHAR *installeddriver;
const WCHAR *name;
const WCHAR *pnpdevice_id;
- const WCHAR *status;
UINT16 videoarchitecture;
UINT16 videomemorytype;
const WCHAR *videomodedescription;
@@ -1338,15 +1290,6 @@ static UINT64 get_total_physical_memory(void)
return status.ullTotalPhys;
}
-static UINT64 get_available_physical_memory(void)
-{
- MEMORYSTATUSEX status;
-
- status.dwLength = sizeof(status);
- if (!GlobalMemoryStatusEx( &status )) return 1024 * 1024 * 1024;
- return status.ullAvailPhys;
-}
-
static WCHAR *get_computername(void)
{
WCHAR *ret;
@@ -1461,7 +1404,6 @@ static enum fill_status fill_compsysproduct( struct table *table,
const struct e
rec = (struct record_computersystemproduct *)table->data;
rec->identifyingnumber = compsysproduct_identifyingnumberW;
rec->uuid = get_compsysproduct_uuid();
- rec->vendor = compsysproduct_vendorW;
if (!match_row( table, row, cond, &status )) free_row_values( table, row );
else row++;
@@ -2114,7 +2056,7 @@ static enum fill_status fill_ip4routetable( struct table *table,
const struct ex
heap_free( forwards );
return FILL_STATUS_FAILED;
}
- if (!resize_table( table, forwards->dwNumEntries, sizeof(*rec) ))
+ if (!resize_table( table, max(forwards->dwNumEntries, 1), sizeof(*rec) ))
{
heap_free( forwards );
return FILL_STATUS_FAILED;
@@ -2474,12 +2416,10 @@ static enum fill_status fill_physicalmemory( struct table *table,
const struct e
static enum fill_status fill_printer( struct table *table, const struct expr *cond )
{
- static const WCHAR fmtW[] =
{'P','r','i','n','t','e','r','%','d',0};
struct record_printer *rec;
enum fill_status status = FILL_STATUS_UNFILTERED;
PRINTER_INFO_2W *info;
DWORD i, offset = 0, count = 0, size = 0, num_rows = 0;
- WCHAR id[20];
EnumPrintersW( PRINTER_ENUM_LOCAL, NULL, 2, NULL, 0, &size, &count );
if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) return FILL_STATUS_FAILED;
@@ -2505,10 +2445,6 @@ static enum fill_status fill_printer( struct table *table, const
struct expr *co
rec->local = -1;
rec->name = heap_strdupW( info[i].pPrinterName );
rec->network = 0;
- sprintfW( id, fmtW, i );
- rec->device_id = heap_strdupW( id );
- rec->portname = heap_strdupW( info[i].pPortName );
- rec->location = heap_strdupW( info[i].pLocation );
if (!match_row( table, i, cond, &status ))
{
free_row_values( table, i );
@@ -2937,7 +2873,6 @@ static enum fill_status fill_os( struct table *table, const struct
expr *cond )
rec->systemdirectory = get_systemdirectory();
rec->totalvirtualmemorysize = get_total_physical_memory() / 1024;
rec->totalvisiblememorysize = rec->totalvirtualmemorysize;
- rec->freephysicalmemory = get_available_physical_memory() / 1024;
rec->version = get_osversion( &ver );
if (!match_row( table, row, cond, &status )) free_row_values( table, row );
else row++;
@@ -3225,29 +3160,6 @@ static WCHAR *get_pnpdeviceid( DXGI_ADAPTER_DESC *desc )
return ret;
}
-#define HW_VENDOR_AMD 0x1002
-#define HW_VENDOR_NVIDIA 0x10de
-#define HW_VENDOR_VMWARE 0x15ad
-#define HW_VENDOR_INTEL 0x8086
-
-static const WCHAR* get_video_driver(UINT vendorid)
-{
- static const WCHAR driver_amdW[] =
{'a','t','i','c','f','x','3','2','.','d','l','l',0};
- static const WCHAR driver_intelW[] =
{'i','g','d','u','m','d','i','m','3','2','.','d','l','l',0};
- static const WCHAR driver_nvidiaW[] =
{'n','v','d','3','d','u','m','.','d','l','l',0};
- static const WCHAR driver_wineW[] =
{'w','i','n','e','.','d','l','l',0};
-
- /* FIXME: wined3d has a better table, but we can not access this information through
dxgi */
-
- if (vendorid == HW_VENDOR_AMD)
- return driver_amdW;
- else if (vendorid == HW_VENDOR_NVIDIA)
- return driver_nvidiaW;
- else if (vendorid == HW_VENDOR_INTEL)
- return driver_intelW;
- return driver_wineW;
-}
-
static enum fill_status fill_videocontroller( struct table *table, const struct expr
*cond )
{
static const WCHAR fmtW[] = {'%','u',' ','x','
','%','u',' ','x','
','%','I','6','4','u','
','c','o','l','o','r','s',0};
@@ -3282,7 +3194,6 @@ done:
rec->adapter_dactype = videocontroller_dactypeW;
rec->adapter_ram = vidmem;
rec->availability = 3; /* Running or Full Power */
- rec->config_errorcode = 0; /* no error */
rec->caption = heap_strdupW( name );
rec->current_bitsperpixel = get_bits_per_pixel( &hres, &vres );
rec->current_horizontalres = hres;
@@ -3291,12 +3202,9 @@ done:
rec->current_verticalres = vres;
rec->description = heap_strdupW( name );
rec->device_id = videocontroller_deviceidW;
- rec->driverdate = videocontroller_driverDateW;
rec->driverversion = videocontroller_driverversionW;
- rec->installeddriver = get_video_driver( desc.VendorId );
rec->name = heap_strdupW( name );
rec->pnpdevice_id = get_pnpdeviceid( &desc );
- rec->status = videocontroller_statusW;
rec->videoarchitecture = 2; /* Unknown */
rec->videomemorytype = 2; /* Unknown */
wsprintfW( mode, fmtW, hres, vres, (UINT64)1 << rec->current_bitsperpixel
);
diff --git a/dll/win32/wbemprox/wql.tab.c b/dll/win32/wbemprox/wql.tab.c
index 91b7ac46bf..4eaadd0818 100644
--- a/dll/win32/wbemprox/wql.tab.c
+++ b/dll/win32/wbemprox/wql.tab.c
@@ -1,4 +1,4 @@
-/* A Bison parser, made by GNU Bison 3.0.2. */
+/* A Bison parser, made by GNU Bison 3.0. */
/* Bison implementation for Yacc-like parsers in C
@@ -44,7 +44,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "3.0.2"
+#define YYBISON_VERSION "3.0"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -243,13 +243,13 @@ static int wql_lex( void *val, struct parser *parser );
result = current_view
-#line 259 "wql.tab.c" /* yacc.c:339 */
+#line 247 "wql.tab.c" /* yacc.c:339 */
-# ifndef YY_NULLPTR
+# ifndef YY_NULL
# if defined __cplusplus && 201103L <= __cplusplus
-# define YY_NULLPTR nullptr
+# define YY_NULL nullptr
# else
-# define YY_NULLPTR 0
+# define YY_NULL 0
# endif
# endif
@@ -261,7 +261,10 @@ static int wql_lex( void *val, struct parser *parser );
# define YYERROR_VERBOSE 1
#endif
-
+/* In a future release of Bison, this section will be replaced
+ by #include "wql.tab.h". */
+#ifndef YY_WQL_E_REACTOSSYNC3_0_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED
+# define YY_WQL_E_REACTOSSYNC3_0_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED
/* Debug traces. */
#ifndef YYDEBUG
# define YYDEBUG 0
@@ -312,7 +315,7 @@ extern int wql_debug;
typedef union YYSTYPE YYSTYPE;
union YYSTYPE
{
-#line 194 "wql.y" /* yacc.c:355 */
+#line 182 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:355 */
struct string str;
WCHAR *string;
@@ -321,7 +324,7 @@ union YYSTYPE
struct expr *expr;
int integer;
-#line 337 "wql.tab.c" /* yacc.c:355 */
+#line 328 "wql.tab.c" /* yacc.c:355 */
};
# define YYSTYPE_IS_TRIVIAL 1
# define YYSTYPE_IS_DECLARED 1
@@ -331,11 +334,11 @@ union YYSTYPE
int wql_parse (struct parser *ctx);
-
+#endif /* !YY_WQL_E_REACTOSSYNC3_0_GCC_DLL_WIN32_WBEMPROX_WQL_TAB_H_INCLUDED */
/* Copy the second part of user declarations. */
-#line 351 "wql.tab.c" /* yacc.c:358 */
+#line 342 "wql.tab.c" /* yacc.c:358 */
#ifdef short
# undef short
@@ -392,30 +395,11 @@ typedef short int yytype_int16;
# endif
#endif
-#ifndef YY_ATTRIBUTE
-# if (defined __GNUC__ \
- && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__)))
\
- || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
-# define YY_ATTRIBUTE(Spec) __attribute__(Spec)
-# else
-# define YY_ATTRIBUTE(Spec) /* empty */
-# endif
-#endif
-
-#ifndef YY_ATTRIBUTE_PURE
-# define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
-#endif
-
-#ifndef YY_ATTRIBUTE_UNUSED
-# define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
-#endif
-
-#if !defined _Noreturn \
- && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
-# if defined _MSC_VER && 1200 <= _MSC_VER
-# define _Noreturn __declspec (noreturn)
-# else
-# define _Noreturn YY_ATTRIBUTE ((__noreturn__))
+#ifndef __attribute__
+/* This feature is available in gcc versions 2.5 and later. */
+# if (! defined __GNUC__ || __GNUC__ < 2 \
+ || (__GNUC__ == 2 && __GNUC_MINOR__ < 5))
+# define __attribute__(Spec) /* empty */
# endif
#endif
@@ -577,16 +561,16 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 9
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 68
+#define YYLAST 85
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 32
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 10
/* YYNRULES -- Number of rules. */
-#define YYNRULES 36
+#define YYNRULES 40
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 67
+#define YYNSTATES 74
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
@@ -635,10 +619,11 @@ static const yytype_uint8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 221, 221, 233, 245, 260, 261, 265, 272, 278,
- 287, 296, 303, 309, 315, 321, 327, 333, 339, 345,
- 351, 357, 363, 369, 375, 381, 387, 393, 399, 405,
- 411, 420, 429, 438, 444, 450, 456
+ 0, 209, 209, 221, 233, 248, 249, 253, 260, 266,
+ 275, 284, 291, 297, 303, 309, 315, 321, 327, 333,
+ 339, 345, 351, 357, 363, 369, 375, 381, 387, 393,
+ 399, 405, 411, 417, 423, 432, 441, 450, 456, 462,
+ 468
};
#endif
@@ -653,7 +638,7 @@ static const char *const yytname[] =
"TK_ILLEGAL", "TK_BY", "TK_STRING", "TK_ID",
"TK_OR", "TK_AND", "TK_NOT",
"TK_EQ", "TK_NE", "TK_LT", "TK_GT",
"TK_LE", "TK_GE", "TK_LIKE",
"$accept", "select", "proplist", "prop",
"id", "number", "expr",
- "string_val", "prop_val", "const_val", YY_NULLPTR
+ "string_val", "prop_val", "const_val", YY_NULL
};
#endif
@@ -669,10 +654,10 @@ static const yytype_uint16 yytoknum[] =
};
# endif
-#define YYPACT_NINF -18
+#define YYPACT_NINF -23
#define yypact_value_is_default(Yystate) \
- (!!((Yystate) == (-18)))
+ (!!((Yystate) == (-23)))
#define YYTABLE_NINF -1
@@ -683,13 +668,14 @@ static const yytype_uint16 yytoknum[] =
STATE-NUM. */
static const yytype_int8 yypact[] =
{
- 7, 3, 12, -5, -18, -18, 24, 29, 35, -18,
- -18, -5, 4, -5, 21, -18, -18, 17, 17, -18,
- -18, -18, -18, 17, -18, -18, 11, -8, 25, 22,
- -18, 17, 17, 16, -9, -9, -9, -9, -9, -9,
- 23, -5, -5, -5, -5, -5, -5, -18, 45, -18,
- -18, 37, -18, -18, -18, -18, -18, -18, -18, -18,
- -18, -18, -18, -18, -18, -18, -18
+ -2, 10, 34, 14, -23, -23, 29, 48, 46, -23,
+ -23, 14, 11, 14, 42, -23, -23, 28, 28, -16,
+ -23, -23, -23, -23, 28, -23, -23, 22, -8, -22,
+ 33, 14, 14, -23, 28, 28, 27, 50, 54, 59,
+ 59, 59, 59, 39, 14, 14, 14, 14, 14, 14,
+ -23, -23, -23, 52, -23, -23, 58, -23, -23, -23,
+ -23, -23, -23, -23, -23, -23, -23, -23, -23, -23,
+ -23, -23, -23, -23
};
/* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -698,24 +684,25 @@ static const yytype_int8 yypact[] =
static const yytype_uint8 yydefact[] =
{
0, 0, 0, 0, 7, 10, 0, 5, 9, 1,
- 2, 0, 0, 0, 3, 6, 8, 0, 0, 36,
- 35, 11, 34, 0, 32, 33, 4, 0, 0, 0,
- 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 12, 14, 13,
- 29, 0, 16, 21, 18, 17, 19, 20, 31, 28,
- 22, 27, 24, 23, 25, 26, 30
+ 2, 0, 0, 0, 3, 6, 8, 0, 0, 0,
+ 40, 39, 11, 38, 0, 36, 37, 4, 0, 0,
+ 0, 0, 0, 15, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 12, 32, 34, 14, 13, 29, 0, 31, 16, 33,
+ 21, 18, 17, 19, 20, 35, 28, 22, 27, 24,
+ 23, 25, 26, 30
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int8 yypgoto[] =
{
- -18, -18, 34, 1, 36, -18, -17, -18, 15, 28
+ -23, -23, 64, 1, 47, -23, 12, -23, -20, 43
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int8 yydefgoto[] =
{
- -1, 2, 6, 24, 8, 25, 26, 59, 27, 28
+ -1, 2, 6, 25, 8, 26, 27, 66, 28, 29
};
/* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -723,24 +710,28 @@ static const yytype_int8 yydefgoto[] =
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_uint8 yytable[] =
{
- 33, 29, 7, 19, 20, 21, 30, 3, 4, 4,
- 1, 22, 9, 7, 48, 49, 5, 34, 35, 36,
- 37, 38, 39, 40, 5, 5, 18, 50, 11, 19,
- 20, 21, 47, 31, 32, 12, 17, 22, 5, 10,
- 51, 23, 13, 58, 31, 32, 15, 14, 66, 16,
- 41, 42, 43, 44, 45, 46, 60, 61, 62, 63,
- 64, 65, 52, 53, 54, 55, 56, 57, 32
+ 36, 1, 7, 44, 45, 46, 47, 48, 49, 31,
+ 32, 51, 52, 7, 3, 4, 4, 37, 38, 39,
+ 40, 41, 42, 43, 67, 68, 69, 70, 71, 72,
+ 30, 5, 5, 11, 9, 5, 33, 18, 55, 19,
+ 20, 21, 22, 50, 34, 35, 53, 54, 23, 5,
+ 10, 56, 24, 13, 12, 34, 35, 17, 14, 65,
+ 16, 57, 20, 21, 22, 59, 20, 21, 22, 73,
+ 23, 20, 21, 22, 23, 35, 15, 0, 0, 23,
+ 58, 60, 61, 62, 63, 64
};
-static const yytype_uint8 yycheck[] =
+static const yytype_int8 yycheck[] =
{
- 8, 18, 1, 12, 13, 14, 23, 4, 5, 5,
- 3, 20, 0, 12, 31, 32, 21, 25, 26, 27,
- 28, 29, 30, 31, 21, 21, 9, 11, 4, 12,
- 13, 14, 10, 22, 23, 6, 15, 20, 21, 3,
- 24, 24, 7, 20, 22, 23, 12, 11, 11, 13,
- 25, 26, 27, 28, 29, 30, 41, 42, 43, 44,
- 45, 46, 34, 35, 36, 37, 38, 39, 23
+ 8, 3, 1, 25, 26, 27, 28, 29, 30, 25,
+ 26, 31, 32, 12, 4, 5, 5, 25, 26, 27,
+ 28, 29, 30, 31, 44, 45, 46, 47, 48, 49,
+ 18, 21, 21, 4, 0, 21, 24, 9, 11, 11,
+ 12, 13, 14, 10, 22, 23, 34, 35, 20, 21,
+ 3, 24, 24, 7, 6, 22, 23, 15, 11, 20,
+ 13, 11, 12, 13, 14, 11, 12, 13, 14, 11,
+ 20, 12, 13, 14, 20, 23, 12, -1, -1, 20,
+ 37, 38, 39, 40, 41, 42
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -748,12 +739,13 @@ static const yytype_uint8 yycheck[] =
static const yytype_uint8 yystos[] =
{
0, 3, 33, 4, 5, 21, 34, 35, 36, 0,
- 36, 4, 6, 7, 36, 34, 36, 15, 9, 12,
- 13, 14, 20, 24, 35, 37, 38, 40, 41, 38,
- 38, 22, 23, 8, 25, 26, 27, 28, 29, 30,
- 31, 25, 26, 27, 28, 29, 30, 10, 38, 38,
- 11, 24, 41, 41, 41, 41, 41, 41, 20, 39,
- 40, 40, 40, 40, 40, 40, 11
+ 36, 4, 6, 7, 36, 34, 36, 15, 9, 11,
+ 12, 13, 14, 20, 24, 35, 37, 38, 40, 41,
+ 38, 25, 26, 38, 22, 23, 8, 25, 26, 27,
+ 28, 29, 30, 31, 25, 26, 27, 28, 29, 30,
+ 10, 40, 40, 38, 38, 11, 24, 11, 41, 11,
+ 41, 41, 41, 41, 41, 20, 39, 40, 40, 40,
+ 40, 40, 40, 11
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
@@ -762,7 +754,8 @@ static const yytype_uint8 yyr1[] =
0, 32, 33, 33, 33, 34, 34, 34, 35, 35,
36, 37, 38, 38, 38, 38, 38, 38, 38, 38,
38, 38, 38, 38, 38, 38, 38, 38, 38, 38,
- 38, 39, 40, 41, 41, 41, 41
+ 38, 38, 38, 38, 38, 39, 40, 41, 41, 41,
+ 41
};
/* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
@@ -771,7 +764,8 @@ static const yytype_uint8 yyr2[] =
0, 2, 3, 4, 6, 1, 3, 1, 3, 1,
1, 1, 3, 3, 3, 2, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 4, 1, 1, 1, 1, 1, 1
+ 4, 3, 3, 3, 3, 1, 1, 1, 1, 1,
+ 1
};
@@ -1056,11 +1050,11 @@ static int
yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
yytype_int16 *yyssp, int yytoken)
{
- YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
+ YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
YYSIZE_T yysize = yysize0;
enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
/* Internationalized format string. */
- const char *yyformat = YY_NULLPTR;
+ const char *yyformat = YY_NULL;
/* Arguments of yyformat. */
char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
/* Number of reported tokens (one for the "unexpected", one per
@@ -1117,7 +1111,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
}
yyarg[yycount++] = yytname[yyx];
{
- YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
+ YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
if (! (yysize <= yysize1
&& yysize1 <= YYSTACK_ALLOC_MAXIMUM))
return 2;
@@ -1454,7 +1448,7 @@ yyreduce:
switch (yyn)
{
case 2:
-#line 222 "wql.y" /* yacc.c:1646 */
+#line 210 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
HRESULT hr;
struct parser *parser = ctx;
@@ -1466,11 +1460,11 @@ yyreduce:
PARSER_BUBBLE_UP_VIEW( parser, (yyval.view), view );
}
-#line 1482 "wql.tab.c" /* yacc.c:1646 */
+#line 1464 "wql.tab.c" /* yacc.c:1646 */
break;
case 3:
-#line 234 "wql.y" /* yacc.c:1646 */
+#line 222 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
HRESULT hr;
struct parser *parser = ctx;
@@ -1482,11 +1476,11 @@ yyreduce:
PARSER_BUBBLE_UP_VIEW( parser, (yyval.view), view );
}
-#line 1498 "wql.tab.c" /* yacc.c:1646 */
+#line 1480 "wql.tab.c" /* yacc.c:1646 */
break;
case 4:
-#line 246 "wql.y" /* yacc.c:1646 */
+#line 234 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
HRESULT hr;
struct parser *parser = ctx;
@@ -1498,315 +1492,355 @@ yyreduce:
PARSER_BUBBLE_UP_VIEW( parser, (yyval.view), view );
}
-#line 1514 "wql.tab.c" /* yacc.c:1646 */
+#line 1496 "wql.tab.c" /* yacc.c:1646 */
break;
case 6:
-#line 262 "wql.y" /* yacc.c:1646 */
+#line 250 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyvsp[-2].proplist)->next = (yyvsp[0].proplist);
}
-#line 1522 "wql.tab.c" /* yacc.c:1646 */
+#line 1504 "wql.tab.c" /* yacc.c:1646 */
break;
case 7:
-#line 266 "wql.y" /* yacc.c:1646 */
+#line 254 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.proplist) = NULL;
}
-#line 1530 "wql.tab.c" /* yacc.c:1646 */
+#line 1512 "wql.tab.c" /* yacc.c:1646 */
break;
case 8:
-#line 273 "wql.y" /* yacc.c:1646 */
+#line 261 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.proplist) = alloc_property( ctx, (yyvsp[-2].string), (yyvsp[0].string)
);
if (!(yyval.proplist))
YYABORT;
}
-#line 1540 "wql.tab.c" /* yacc.c:1646 */
+#line 1522 "wql.tab.c" /* yacc.c:1646 */
break;
case 9:
-#line 279 "wql.y" /* yacc.c:1646 */
+#line 267 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.proplist) = alloc_property( ctx, NULL, (yyvsp[0].string) );
if (!(yyval.proplist))
YYABORT;
}
-#line 1550 "wql.tab.c" /* yacc.c:1646 */
+#line 1532 "wql.tab.c" /* yacc.c:1646 */
break;
case 10:
-#line 288 "wql.y" /* yacc.c:1646 */
+#line 276 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.string) = get_string( ctx, &(yyvsp[0].str) );
if (!(yyval.string))
YYABORT;
}
-#line 1560 "wql.tab.c" /* yacc.c:1646 */
+#line 1542 "wql.tab.c" /* yacc.c:1646 */
break;
case 11:
-#line 297 "wql.y" /* yacc.c:1646 */
+#line 285 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.integer) = get_int( ctx );
}
-#line 1568 "wql.tab.c" /* yacc.c:1646 */
+#line 1550 "wql.tab.c" /* yacc.c:1646 */
break;
case 12:
-#line 304 "wql.y" /* yacc.c:1646 */
+#line 292 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = (yyvsp[-1].expr);
if (!(yyval.expr))
YYABORT;
}
-#line 1578 "wql.tab.c" /* yacc.c:1646 */
+#line 1560 "wql.tab.c" /* yacc.c:1646 */
break;
case 13:
-#line 310 "wql.y" /* yacc.c:1646 */
+#line 298 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_AND, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1588 "wql.tab.c" /* yacc.c:1646 */
+#line 1570 "wql.tab.c" /* yacc.c:1646 */
break;
case 14:
-#line 316 "wql.y" /* yacc.c:1646 */
+#line 304 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_OR, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1598 "wql.tab.c" /* yacc.c:1646 */
+#line 1580 "wql.tab.c" /* yacc.c:1646 */
break;
case 15:
-#line 322 "wql.y" /* yacc.c:1646 */
+#line 310 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_unary( ctx, (yyvsp[0].expr), OP_NOT );
if (!(yyval.expr))
YYABORT;
}
-#line 1608 "wql.tab.c" /* yacc.c:1646 */
+#line 1590 "wql.tab.c" /* yacc.c:1646 */
break;
case 16:
-#line 328 "wql.y" /* yacc.c:1646 */
+#line 316 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_EQ, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1618 "wql.tab.c" /* yacc.c:1646 */
+#line 1600 "wql.tab.c" /* yacc.c:1646 */
break;
case 17:
-#line 334 "wql.y" /* yacc.c:1646 */
+#line 322 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_GT, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1628 "wql.tab.c" /* yacc.c:1646 */
+#line 1610 "wql.tab.c" /* yacc.c:1646 */
break;
case 18:
-#line 340 "wql.y" /* yacc.c:1646 */
+#line 328 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LT, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1638 "wql.tab.c" /* yacc.c:1646 */
+#line 1620 "wql.tab.c" /* yacc.c:1646 */
break;
case 19:
-#line 346 "wql.y" /* yacc.c:1646 */
+#line 334 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LE, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1648 "wql.tab.c" /* yacc.c:1646 */
+#line 1630 "wql.tab.c" /* yacc.c:1646 */
break;
case 20:
-#line 352 "wql.y" /* yacc.c:1646 */
+#line 340 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_GE, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1658 "wql.tab.c" /* yacc.c:1646 */
+#line 1640 "wql.tab.c" /* yacc.c:1646 */
break;
case 21:
-#line 358 "wql.y" /* yacc.c:1646 */
+#line 346 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_NE, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1668 "wql.tab.c" /* yacc.c:1646 */
+#line 1650 "wql.tab.c" /* yacc.c:1646 */
break;
case 22:
-#line 364 "wql.y" /* yacc.c:1646 */
+#line 352 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_EQ, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1678 "wql.tab.c" /* yacc.c:1646 */
+#line 1660 "wql.tab.c" /* yacc.c:1646 */
break;
case 23:
-#line 370 "wql.y" /* yacc.c:1646 */
+#line 358 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_GT, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1688 "wql.tab.c" /* yacc.c:1646 */
+#line 1670 "wql.tab.c" /* yacc.c:1646 */
break;
case 24:
-#line 376 "wql.y" /* yacc.c:1646 */
+#line 364 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LT, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1698 "wql.tab.c" /* yacc.c:1646 */
+#line 1680 "wql.tab.c" /* yacc.c:1646 */
break;
case 25:
-#line 382 "wql.y" /* yacc.c:1646 */
+#line 370 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LE, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1708 "wql.tab.c" /* yacc.c:1646 */
+#line 1690 "wql.tab.c" /* yacc.c:1646 */
break;
case 26:
-#line 388 "wql.y" /* yacc.c:1646 */
+#line 376 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_GE, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1718 "wql.tab.c" /* yacc.c:1646 */
+#line 1700 "wql.tab.c" /* yacc.c:1646 */
break;
case 27:
-#line 394 "wql.y" /* yacc.c:1646 */
+#line 382 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_NE, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1728 "wql.tab.c" /* yacc.c:1646 */
+#line 1710 "wql.tab.c" /* yacc.c:1646 */
break;
case 28:
-#line 400 "wql.y" /* yacc.c:1646 */
+#line 388 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_complex( ctx, (yyvsp[-2].expr), OP_LIKE, (yyvsp[0].expr)
);
if (!(yyval.expr))
YYABORT;
}
-#line 1738 "wql.tab.c" /* yacc.c:1646 */
+#line 1720 "wql.tab.c" /* yacc.c:1646 */
break;
case 29:
-#line 406 "wql.y" /* yacc.c:1646 */
+#line 394 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_unary( ctx, (yyvsp[-2].expr), OP_ISNULL );
if (!(yyval.expr))
YYABORT;
}
-#line 1748 "wql.tab.c" /* yacc.c:1646 */
+#line 1730 "wql.tab.c" /* yacc.c:1646 */
break;
case 30:
-#line 412 "wql.y" /* yacc.c:1646 */
+#line 400 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_unary( ctx, (yyvsp[-3].expr), OP_NOTNULL );
if (!(yyval.expr))
YYABORT;
}
-#line 1758 "wql.tab.c" /* yacc.c:1646 */
+#line 1740 "wql.tab.c" /* yacc.c:1646 */
break;
case 31:
-#line 421 "wql.y" /* yacc.c:1646 */
+#line 406 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
- (yyval.expr) = expr_sval( ctx, &(yyvsp[0].str) );
+ (yyval.expr) = expr_unary( ctx, (yyvsp[-2].expr), OP_ISNULL );
if (!(yyval.expr))
YYABORT;
}
-#line 1768 "wql.tab.c" /* yacc.c:1646 */
+#line 1750 "wql.tab.c" /* yacc.c:1646 */
break;
case 32:
-#line 430 "wql.y" /* yacc.c:1646 */
+#line 412 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
- (yyval.expr) = expr_propval( ctx, (yyvsp[0].proplist) );
+ (yyval.expr) = expr_unary( ctx, (yyvsp[0].expr), OP_ISNULL );
if (!(yyval.expr))
YYABORT;
}
-#line 1778 "wql.tab.c" /* yacc.c:1646 */
+#line 1760 "wql.tab.c" /* yacc.c:1646 */
break;
case 33:
-#line 439 "wql.y" /* yacc.c:1646 */
+#line 418 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
- (yyval.expr) = expr_ival( ctx, (yyvsp[0].integer) );
+ (yyval.expr) = expr_unary( ctx, (yyvsp[-2].expr), OP_NOTNULL );
if (!(yyval.expr))
YYABORT;
}
-#line 1788 "wql.tab.c" /* yacc.c:1646 */
+#line 1770 "wql.tab.c" /* yacc.c:1646 */
break;
case 34:
-#line 445 "wql.y" /* yacc.c:1646 */
+#line 424 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
- (yyval.expr) = expr_sval( ctx, &(yyvsp[0].str) );
+ (yyval.expr) = expr_unary( ctx, (yyvsp[0].expr), OP_NOTNULL );
if (!(yyval.expr))
YYABORT;
}
-#line 1798 "wql.tab.c" /* yacc.c:1646 */
+#line 1780 "wql.tab.c" /* yacc.c:1646 */
break;
case 35:
-#line 451 "wql.y" /* yacc.c:1646 */
+#line 433 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
- (yyval.expr) = expr_bval( ctx, -1 );
+ (yyval.expr) = expr_sval( ctx, &(yyvsp[0].str) );
if (!(yyval.expr))
YYABORT;
}
-#line 1808 "wql.tab.c" /* yacc.c:1646 */
+#line 1790 "wql.tab.c" /* yacc.c:1646 */
break;
case 36:
-#line 457 "wql.y" /* yacc.c:1646 */
+#line 442 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
+ {
+ (yyval.expr) = expr_propval( ctx, (yyvsp[0].proplist) );
+ if (!(yyval.expr))
+ YYABORT;
+ }
+#line 1800 "wql.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 37:
+#line 451 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
+ {
+ (yyval.expr) = expr_ival( ctx, (yyvsp[0].integer) );
+ if (!(yyval.expr))
+ YYABORT;
+ }
+#line 1810 "wql.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 38:
+#line 457 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
+ {
+ (yyval.expr) = expr_sval( ctx, &(yyvsp[0].str) );
+ if (!(yyval.expr))
+ YYABORT;
+ }
+#line 1820 "wql.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 39:
+#line 463 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
+ {
+ (yyval.expr) = expr_bval( ctx, -1 );
+ if (!(yyval.expr))
+ YYABORT;
+ }
+#line 1830 "wql.tab.c" /* yacc.c:1646 */
+ break;
+
+ case 40:
+#line 469 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_bval( ctx, 0 );
if (!(yyval.expr))
YYABORT;
}
-#line 1818 "wql.tab.c" /* yacc.c:1646 */
+#line 1840 "wql.tab.c" /* yacc.c:1646 */
break;
-#line 1822 "wql.tab.c" /* yacc.c:1646 */
+#line 1844 "wql.tab.c" /* yacc.c:1646 */
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -2034,7 +2068,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 464 "wql.y" /* yacc.c:1906 */
+#line 476 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1906 */
HRESULT parse_query( const WCHAR *str, struct view **view, struct list *mem )
diff --git a/dll/win32/wbemprox/wql.y b/dll/win32/wbemprox/wql.y
index 98b0378677..beba2de08a 100644
--- a/dll/win32/wbemprox/wql.y
+++ b/dll/win32/wbemprox/wql.y
@@ -18,20 +18,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
-#include "config.h"
-#include <stdarg.h>
-
-#include "windef.h"
-#include "winbase.h"
-#include "wbemcli.h"
#include "wbemprox_private.h"
-#include "wine/list.h"
-#include "wine/debug.h"
-#include "wine/unicode.h"
-
-WINE_DEFAULT_DEBUG_CHANNEL(wbemprox);
-
struct parser
{
const WCHAR *cmd;
@@ -414,6 +402,30 @@ expr:
if (!$$)
YYABORT;
}
+ | prop_val TK_EQ TK_NULL
+ {
+ $$ = expr_unary( ctx, $1, OP_ISNULL );
+ if (!$$)
+ YYABORT;
+ }
+ | TK_NULL TK_EQ prop_val
+ {
+ $$ = expr_unary( ctx, $3, OP_ISNULL );
+ if (!$$)
+ YYABORT;
+ }
+ | prop_val TK_NE TK_NULL
+ {
+ $$ = expr_unary( ctx, $1, OP_NOTNULL );
+ if (!$$)
+ YYABORT;
+ }
+ | TK_NULL TK_NE prop_val
+ {
+ $$ = expr_unary( ctx, $3, OP_NOTNULL );
+ if (!$$)
+ YYABORT;
+ }
;
string_val:
diff --git a/media/doc/README.WINE b/media/doc/README.WINE
index 84c078affb..b94e76dc58 100644
--- a/media/doc/README.WINE
+++ b/media/doc/README.WINE
@@ -195,7 +195,7 @@ reactos/dll/win32/vbscript # Synced to Wine-3.0
reactos/dll/win32/version # Synced to Wine-3.0
reactos/dll/win32/vssapi # Synced to WineStaging-2.9
reactos/dll/win32/wbemdisp # Synced to Wine-3.0
-reactos/dll/win32/wbemprox # Synced to WineStaging-2.16
+reactos/dll/win32/wbemprox # Synced to Wine-3.0
reactos/dll/win32/windowscodecs # Synced to WineStaging-2.16
reactos/dll/win32/windowscodecsext # Synced to WineStaging-2.9
reactos/dll/win32/winemp3.acm # Synced to WineStaging-2.16