[WBEMPROX] Sync with Wine 3.0. CORE-14225

This commit is contained in:
Amine Khaldi 2018-01-20 13:47:34 +01:00
parent b99f0b4922
commit 7e99651d65
4 changed files with 241 additions and 287 deletions

View file

@ -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 );

View file

@ -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_unary( ctx, (yyvsp[-2].expr), OP_ISNULL );
if (!(yyval.expr))
YYABORT;
}
#line 1750 "wql.tab.c" /* yacc.c:1646 */
break;
case 32:
#line 412 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_unary( ctx, (yyvsp[0].expr), OP_ISNULL );
if (!(yyval.expr))
YYABORT;
}
#line 1760 "wql.tab.c" /* yacc.c:1646 */
break;
case 33:
#line 418 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_unary( ctx, (yyvsp[-2].expr), OP_NOTNULL );
if (!(yyval.expr))
YYABORT;
}
#line 1770 "wql.tab.c" /* yacc.c:1646 */
break;
case 34:
#line 424 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_unary( ctx, (yyvsp[0].expr), OP_NOTNULL );
if (!(yyval.expr))
YYABORT;
}
#line 1780 "wql.tab.c" /* yacc.c:1646 */
break;
case 35:
#line 433 "e:/reactosSync3.0/dll/win32/wbemprox/wql.y" /* yacc.c:1646 */
{
(yyval.expr) = expr_sval( ctx, &(yyvsp[0].str) );
if (!(yyval.expr))
YYABORT;
}
#line 1768 "wql.tab.c" /* yacc.c:1646 */
#line 1790 "wql.tab.c" /* yacc.c:1646 */
break;
case 32:
#line 430 "wql.y" /* yacc.c:1646 */
case 36:
#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 1778 "wql.tab.c" /* yacc.c:1646 */
#line 1800 "wql.tab.c" /* yacc.c:1646 */
break;
case 33:
#line 439 "wql.y" /* yacc.c:1646 */
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 1788 "wql.tab.c" /* yacc.c:1646 */
#line 1810 "wql.tab.c" /* yacc.c:1646 */
break;
case 34:
#line 445 "wql.y" /* yacc.c:1646 */
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 1798 "wql.tab.c" /* yacc.c:1646 */
#line 1820 "wql.tab.c" /* yacc.c:1646 */
break;
case 35:
#line 451 "wql.y" /* yacc.c:1646 */
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 1808 "wql.tab.c" /* yacc.c:1646 */
#line 1830 "wql.tab.c" /* yacc.c:1646 */
break;
case 36:
#line 457 "wql.y" /* yacc.c:1646 */
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 )

View file

@ -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:

View file

@ -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