ReactOS  0.4.14-dev-614-gbfd8a84
cond.tab.c File Reference
#include "config.h"
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
#include "msi.h"
#include "msiquery.h"
#include "objbase.h"
#include "oleauto.h"
#include "msipriv.h"
#include "msiserver.h"
#include "wine/debug.h"
#include "wine/unicode.h"
#include "wine/list.h"
#include <stddef.h>
Include dependency graph for cond.tab.c:

Go to the source code of this file.

Classes

struct  tag_yyinput
 
struct  cond_str
 
union  value
 
union  YYSTYPE
 
union  yyalloc
 

Macros

#define YYBISON   1
 
#define YYBISON_VERSION   "3.1"
 
#define YYSKELETON_NAME   "yacc.c"
 
#define YYPURE   1
 
#define YYPUSH   0
 
#define YYPULL   1
 
#define yyparse   cond_parse
 
#define yylex   cond_lex
 
#define yyerror   cond_error
 
#define yydebug   cond_debug
 
#define yynerrs   cond_nerrs
 
#define COBJMACROS
 
#define YY_NULLPTR   0
 
#define YYERROR_VERBOSE   0
 
#define YYDEBUG   0
 
#define YYTOKENTYPE
 
#define YYSTYPE_IS_TRIVIAL   1
 
#define YYSTYPE_IS_DECLARED   1
 
#define YYSIZE_T   size_t
 
#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)
 
#define YY_(Msgid)   Msgid
 
#define YY_ATTRIBUTE(Spec)   /* empty */
 
#define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))
 
#define YY_ATTRIBUTE_UNUSED   YY_ATTRIBUTE ((__unused__))
 
#define _Noreturn   YY_ATTRIBUTE ((__noreturn__))
 
#define YYUSE(E)   ((void) (E))
 
#define YY_INITIAL_VALUE(Value)   Value
 
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
 
#define YYSTACK_ALLOC   YYMALLOC
 
#define YYSTACK_FREE   YYFREE
 
#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM
 
#define YYMALLOC   malloc
 
#define YYFREE   free
 
#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)
 
#define YYSTACK_BYTES(N)
 
#define YYCOPY_NEEDED   1
 
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
 
#define YYCOPY(Dst, Src, Count)
 
#define YYFINAL   24
 
#define YYLAST   67
 
#define YYNTOKENS   41
 
#define YYNNTS   8
 
#define YYNRULES   41
 
#define YYNSTATES   56
 
#define YYUNDEFTOK   2
 
#define YYMAXUTOK   295
 
#define YYTRANSLATE(YYX)   ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
#define YYPACT_NINF   -45
 
#define yypact_value_is_default(Yystate)   (!!((Yystate) == (-45)))
 
#define YYTABLE_NINF   -1
 
#define yytable_value_is_error(Yytable_value)   0
 
#define yyerrok   (yyerrstatus = 0)
 
#define yyclearin   (yychar = YYEMPTY)
 
#define YYEMPTY   (-2)
 
#define YYEOF   0
 
#define YYACCEPT   goto yyacceptlab
 
#define YYABORT   goto yyabortlab
 
#define YYERROR   goto yyerrorlab
 
#define YYRECOVERING()   (!!yyerrstatus)
 
#define YYBACKUP(Token, Value)
 
#define YYTERROR   1
 
#define YYERRCODE   256
 
#define YYDPRINTF(Args)
 
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 
#define YY_STACK_PRINT(Bottom, Top)
 
#define YY_REDUCE_PRINT(Rule)
 
#define YYINITDEPTH   200
 
#define YYMAXDEPTH   10000
 
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 

Typedefs

typedef struct tag_yyinput COND_input
 
typedef union YYSTYPE YYSTYPE
 
typedef unsigned char yytype_uint8
 
typedef signed char yytype_int8
 
typedef unsigned short yytype_uint16
 
typedef short yytype_int16
 

Enumerations

enum  yytokentype {
  INSTR_ADD = 258, INSTR_NOP = 259, INSTR_MOV = 260, INSTR_SUB = 261,
  INSTR_MAD = 262, INSTR_MUL = 263, INSTR_RCP = 264, INSTR_RSQ = 265,
  INSTR_DP3 = 266, INSTR_DP4 = 267, INSTR_MIN = 268, INSTR_MAX = 269,
  INSTR_SLT = 270, INSTR_SGE = 271, INSTR_ABS = 272, INSTR_EXP = 273,
  INSTR_LOG = 274, INSTR_EXPP = 275, INSTR_LOGP = 276, INSTR_DST = 277,
  INSTR_LRP = 278, INSTR_FRC = 279, INSTR_POW = 280, INSTR_CRS = 281,
  INSTR_SGN = 282, INSTR_NRM = 283, INSTR_SINCOS = 284, INSTR_M4x4 = 285,
  INSTR_M4x3 = 286, INSTR_M3x4 = 287, INSTR_M3x3 = 288, INSTR_M3x2 = 289,
  INSTR_DCL = 290, INSTR_DEF = 291, INSTR_DEFB = 292, INSTR_DEFI = 293,
  INSTR_REP = 294, INSTR_ENDREP = 295, INSTR_IF = 296, INSTR_ELSE = 297,
  INSTR_ENDIF = 298, INSTR_BREAK = 299, INSTR_BREAKP = 300, INSTR_CALL = 301,
  INSTR_CALLNZ = 302, INSTR_LOOP = 303, INSTR_RET = 304, INSTR_ENDLOOP = 305,
  INSTR_LABEL = 306, INSTR_SETP = 307, INSTR_TEXLDL = 308, INSTR_LIT = 309,
  INSTR_MOVA = 310, INSTR_CND = 311, INSTR_CMP = 312, INSTR_DP2ADD = 313,
  INSTR_TEXCOORD = 314, INSTR_TEXCRD = 315, INSTR_TEXKILL = 316, INSTR_TEX = 317,
  INSTR_TEXLD = 318, INSTR_TEXBEM = 319, INSTR_TEXBEML = 320, INSTR_TEXREG2AR = 321,
  INSTR_TEXREG2GB = 322, INSTR_TEXREG2RGB = 323, INSTR_TEXM3x2PAD = 324, INSTR_TEXM3x2TEX = 325,
  INSTR_TEXM3x3PAD = 326, INSTR_TEXM3x3SPEC = 327, INSTR_TEXM3x3VSPEC = 328, INSTR_TEXM3x3TEX = 329,
  INSTR_TEXDP3TEX = 330, INSTR_TEXM3x2DEPTH = 331, INSTR_TEXDP3 = 332, INSTR_TEXM3x3 = 333,
  INSTR_TEXDEPTH = 334, INSTR_BEM = 335, INSTR_DSX = 336, INSTR_DSY = 337,
  INSTR_TEXLDP = 338, INSTR_TEXLDB = 339, INSTR_TEXLDD = 340, INSTR_PHASE = 341,
  REG_TEMP = 342, REG_OUTPUT = 343, REG_INPUT = 344, REG_CONSTFLOAT = 345,
  REG_CONSTINT = 346, REG_CONSTBOOL = 347, REG_TEXTURE = 348, REG_SAMPLER = 349,
  REG_TEXCRDOUT = 350, REG_OPOS = 351, REG_OFOG = 352, REG_OPTS = 353,
  REG_VERTEXCOLOR = 354, REG_FRAGCOLOR = 355, REG_FRAGDEPTH = 356, REG_VPOS = 357,
  REG_VFACE = 358, REG_ADDRESS = 359, REG_LOOP = 360, REG_PREDICATE = 361,
  REG_LABEL = 362, VER_VS10 = 363, VER_VS11 = 364, VER_VS20 = 365,
  VER_VS2X = 366, VER_VS30 = 367, VER_PS10 = 368, VER_PS11 = 369,
  VER_PS12 = 370, VER_PS13 = 371, VER_PS14 = 372, VER_PS20 = 373,
  VER_PS2X = 374, VER_PS30 = 375, SHIFT_X2 = 376, SHIFT_X4 = 377,
  SHIFT_X8 = 378, SHIFT_D2 = 379, SHIFT_D4 = 380, SHIFT_D8 = 381,
  MOD_SAT = 382, MOD_PP = 383, MOD_CENTROID = 384, COMP_GT = 385,
  COMP_LT = 386, COMP_GE = 387, COMP_LE = 388, COMP_EQ = 389,
  COMP_NE = 390, SMOD_BIAS = 391, SMOD_SCALEBIAS = 392, SMOD_DZ = 393,
  SMOD_DW = 394, SMOD_ABS = 395, SMOD_NOT = 396, SAMPTYPE_1D = 397,
  SAMPTYPE_2D = 398, SAMPTYPE_CUBE = 399, SAMPTYPE_VOLUME = 400, USAGE_POSITION = 401,
  USAGE_BLENDWEIGHT = 402, USAGE_BLENDINDICES = 403, USAGE_NORMAL = 404, USAGE_PSIZE = 405,
  USAGE_TEXCOORD = 406, USAGE_TANGENT = 407, USAGE_BINORMAL = 408, USAGE_TESSFACTOR = 409,
  USAGE_POSITIONT = 410, USAGE_COLOR = 411, USAGE_FOG = 412, USAGE_DEPTH = 413,
  USAGE_SAMPLE = 414, COMPONENT = 415, IMMVAL = 416, IMMBOOL = 417,
  INSTR_ADD = 258, INSTR_NOP = 259, INSTR_MOV = 260, INSTR_SUB = 261,
  INSTR_MAD = 262, INSTR_MUL = 263, INSTR_RCP = 264, INSTR_RSQ = 265,
  INSTR_DP3 = 266, INSTR_DP4 = 267, INSTR_MIN = 268, INSTR_MAX = 269,
  INSTR_SLT = 270, INSTR_SGE = 271, INSTR_ABS = 272, INSTR_EXP = 273,
  INSTR_LOG = 274, INSTR_EXPP = 275, INSTR_LOGP = 276, INSTR_DST = 277,
  INSTR_LRP = 278, INSTR_FRC = 279, INSTR_POW = 280, INSTR_CRS = 281,
  INSTR_SGN = 282, INSTR_NRM = 283, INSTR_SINCOS = 284, INSTR_M4x4 = 285,
  INSTR_M4x3 = 286, INSTR_M3x4 = 287, INSTR_M3x3 = 288, INSTR_M3x2 = 289,
  INSTR_DCL = 290, INSTR_DEF = 291, INSTR_DEFB = 292, INSTR_DEFI = 293,
  INSTR_REP = 294, INSTR_ENDREP = 295, INSTR_IF = 296, INSTR_ELSE = 297,
  INSTR_ENDIF = 298, INSTR_BREAK = 299, INSTR_BREAKP = 300, INSTR_CALL = 301,
  INSTR_CALLNZ = 302, INSTR_LOOP = 303, INSTR_RET = 304, INSTR_ENDLOOP = 305,
  INSTR_LABEL = 306, INSTR_SETP = 307, INSTR_TEXLDL = 308, INSTR_LIT = 309,
  INSTR_MOVA = 310, INSTR_CND = 311, INSTR_CMP = 312, INSTR_DP2ADD = 313,
  INSTR_TEXCOORD = 314, INSTR_TEXCRD = 315, INSTR_TEXKILL = 316, INSTR_TEX = 317,
  INSTR_TEXLD = 318, INSTR_TEXBEM = 319, INSTR_TEXBEML = 320, INSTR_TEXREG2AR = 321,
  INSTR_TEXREG2GB = 322, INSTR_TEXREG2RGB = 323, INSTR_TEXM3x2PAD = 324, INSTR_TEXM3x2TEX = 325,
  INSTR_TEXM3x3PAD = 326, INSTR_TEXM3x3SPEC = 327, INSTR_TEXM3x3VSPEC = 328, INSTR_TEXM3x3TEX = 329,
  INSTR_TEXDP3TEX = 330, INSTR_TEXM3x2DEPTH = 331, INSTR_TEXDP3 = 332, INSTR_TEXM3x3 = 333,
  INSTR_TEXDEPTH = 334, INSTR_BEM = 335, INSTR_DSX = 336, INSTR_DSY = 337,
  INSTR_TEXLDP = 338, INSTR_TEXLDB = 339, INSTR_TEXLDD = 340, INSTR_PHASE = 341,
  REG_TEMP = 342, REG_OUTPUT = 343, REG_INPUT = 344, REG_CONSTFLOAT = 345,
  REG_CONSTINT = 346, REG_CONSTBOOL = 347, REG_TEXTURE = 348, REG_SAMPLER = 349,
  REG_TEXCRDOUT = 350, REG_OPOS = 351, REG_OFOG = 352, REG_OPTS = 353,
  REG_VERTEXCOLOR = 354, REG_FRAGCOLOR = 355, REG_FRAGDEPTH = 356, REG_VPOS = 357,
  REG_VFACE = 358, REG_ADDRESS = 359, REG_LOOP = 360, REG_PREDICATE = 361,
  REG_LABEL = 362, VER_VS10 = 363, VER_VS11 = 364, VER_VS20 = 365,
  VER_VS2X = 366, VER_VS30 = 367, VER_PS10 = 368, VER_PS11 = 369,
  VER_PS12 = 370, VER_PS13 = 371, VER_PS14 = 372, VER_PS20 = 373,
  VER_PS2X = 374, VER_PS30 = 375, SHIFT_X2 = 376, SHIFT_X4 = 377,
  SHIFT_X8 = 378, SHIFT_D2 = 379, SHIFT_D4 = 380, SHIFT_D8 = 381,
  MOD_SAT = 382, MOD_PP = 383, MOD_CENTROID = 384, COMP_GT = 385,
  COMP_LT = 386, COMP_GE = 387, COMP_LE = 388, COMP_EQ = 389,
  COMP_NE = 390, SMOD_BIAS = 391, SMOD_SCALEBIAS = 392, SMOD_DZ = 393,
  SMOD_DW = 394, SMOD_ABS = 395, SMOD_NOT = 396, SAMPTYPE_1D = 397,
  SAMPTYPE_2D = 398, SAMPTYPE_CUBE = 399, SAMPTYPE_VOLUME = 400, USAGE_POSITION = 401,
  USAGE_BLENDWEIGHT = 402, USAGE_BLENDINDICES = 403, USAGE_NORMAL = 404, USAGE_PSIZE = 405,
  USAGE_TEXCOORD = 406, USAGE_TANGENT = 407, USAGE_BINORMAL = 408, USAGE_TESSFACTOR = 409,
  USAGE_POSITIONT = 410, USAGE_COLOR = 411, USAGE_FOG = 412, USAGE_DEPTH = 413,
  USAGE_SAMPLE = 414, COMPONENT = 415, IMMVAL = 416, IMMBOOL = 417,
  KW_BLENDSTATE = 258, KW_BREAK = 259, KW_BUFFER = 260, KW_CBUFFER = 261,
  KW_COLUMN_MAJOR = 262, KW_COMPILE = 263, KW_CONST = 264, KW_CONTINUE = 265,
  KW_DEPTHSTENCILSTATE = 266, KW_DEPTHSTENCILVIEW = 267, KW_DISCARD = 268, KW_DO = 269,
  KW_DOUBLE = 270, KW_ELSE = 271, KW_EXTERN = 272, KW_FALSE = 273,
  KW_FOR = 274, KW_GEOMETRYSHADER = 275, KW_GROUPSHARED = 276, KW_IF = 277,
  KW_IN = 278, KW_INLINE = 279, KW_INOUT = 280, KW_MATRIX = 281,
  KW_NAMESPACE = 282, KW_NOINTERPOLATION = 283, KW_OUT = 284, KW_PASS = 285,
  KW_PIXELSHADER = 286, KW_PRECISE = 287, KW_RASTERIZERSTATE = 288, KW_RENDERTARGETVIEW = 289,
  KW_RETURN = 290, KW_REGISTER = 291, KW_ROW_MAJOR = 292, KW_SAMPLER = 293,
  KW_SAMPLER1D = 294, KW_SAMPLER2D = 295, KW_SAMPLER3D = 296, KW_SAMPLERCUBE = 297,
  KW_SAMPLER_STATE = 298, KW_SAMPLERCOMPARISONSTATE = 299, KW_SHARED = 300, KW_STATEBLOCK = 301,
  KW_STATEBLOCK_STATE = 302, KW_STATIC = 303, KW_STRING = 304, KW_STRUCT = 305,
  KW_SWITCH = 306, KW_TBUFFER = 307, KW_TECHNIQUE = 308, KW_TECHNIQUE10 = 309,
  KW_TEXTURE = 310, KW_TEXTURE1D = 311, KW_TEXTURE1DARRAY = 312, KW_TEXTURE2D = 313,
  KW_TEXTURE2DARRAY = 314, KW_TEXTURE2DMS = 315, KW_TEXTURE2DMSARRAY = 316, KW_TEXTURE3D = 317,
  KW_TEXTURE3DARRAY = 318, KW_TEXTURECUBE = 319, KW_TRUE = 320, KW_TYPEDEF = 321,
  KW_UNIFORM = 322, KW_VECTOR = 323, KW_VERTEXSHADER = 324, KW_VOID = 325,
  KW_VOLATILE = 326, KW_WHILE = 327, OP_INC = 328, OP_DEC = 329,
  OP_AND = 330, OP_OR = 331, OP_EQ = 332, OP_LEFTSHIFT = 333,
  OP_LEFTSHIFTASSIGN = 334, OP_RIGHTSHIFT = 335, OP_RIGHTSHIFTASSIGN = 336, OP_ELLIPSIS = 337,
  OP_LE = 338, OP_GE = 339, OP_NE = 340, OP_ADDASSIGN = 341,
  OP_SUBASSIGN = 342, OP_MULASSIGN = 343, OP_DIVASSIGN = 344, OP_MODASSIGN = 345,
  OP_ANDASSIGN = 346, OP_ORASSIGN = 347, OP_XORASSIGN = 348, OP_UNKNOWN1 = 349,
  OP_UNKNOWN2 = 350, OP_UNKNOWN3 = 351, OP_UNKNOWN4 = 352, PRE_LINE = 353,
  VAR_IDENTIFIER = 354, TYPE_IDENTIFIER = 355, NEW_IDENTIFIER = 356, STRING = 357,
  C_FLOAT = 358, C_INTEGER = 359, KW_BLENDSTATE = 258, KW_BREAK = 259,
  KW_BUFFER = 260, KW_CBUFFER = 261, KW_COLUMN_MAJOR = 262, KW_COMPILE = 263,
  KW_CONST = 264, KW_CONTINUE = 265, KW_DEPTHSTENCILSTATE = 266, KW_DEPTHSTENCILVIEW = 267,
  KW_DISCARD = 268, KW_DO = 269, KW_DOUBLE = 270, KW_ELSE = 271,
  KW_EXTERN = 272, KW_FALSE = 273, KW_FOR = 274, KW_GEOMETRYSHADER = 275,
  KW_GROUPSHARED = 276, KW_IF = 277, KW_IN = 278, KW_INLINE = 279,
  KW_INOUT = 280, KW_MATRIX = 281, KW_NAMESPACE = 282, KW_NOINTERPOLATION = 283,
  KW_OUT = 284, KW_PASS = 285, KW_PIXELSHADER = 286, KW_PRECISE = 287,
  KW_RASTERIZERSTATE = 288, KW_RENDERTARGETVIEW = 289, KW_RETURN = 290, KW_REGISTER = 291,
  KW_ROW_MAJOR = 292, KW_SAMPLER = 293, KW_SAMPLER1D = 294, KW_SAMPLER2D = 295,
  KW_SAMPLER3D = 296, KW_SAMPLERCUBE = 297, KW_SAMPLER_STATE = 298, KW_SAMPLERCOMPARISONSTATE = 299,
  KW_SHARED = 300, KW_STATEBLOCK = 301, KW_STATEBLOCK_STATE = 302, KW_STATIC = 303,
  KW_STRING = 304, KW_STRUCT = 305, KW_SWITCH = 306, KW_TBUFFER = 307,
  KW_TECHNIQUE = 308, KW_TECHNIQUE10 = 309, KW_TEXTURE = 310, KW_TEXTURE1D = 311,
  KW_TEXTURE1DARRAY = 312, KW_TEXTURE2D = 313, KW_TEXTURE2DARRAY = 314, KW_TEXTURE2DMS = 315,
  KW_TEXTURE2DMSARRAY = 316, KW_TEXTURE3D = 317, KW_TEXTURE3DARRAY = 318, KW_TEXTURECUBE = 319,
  KW_TRUE = 320, KW_TYPEDEF = 321, KW_UNIFORM = 322, KW_VECTOR = 323,
  KW_VERTEXSHADER = 324, KW_VOID = 325, KW_VOLATILE = 326, KW_WHILE = 327,
  OP_INC = 328, OP_DEC = 329, OP_AND = 330, OP_OR = 331,
  OP_EQ = 332, OP_LEFTSHIFT = 333, OP_LEFTSHIFTASSIGN = 334, OP_RIGHTSHIFT = 335,
  OP_RIGHTSHIFTASSIGN = 336, OP_ELLIPSIS = 337, OP_LE = 338, OP_GE = 339,
  OP_NE = 340, OP_ADDASSIGN = 341, OP_SUBASSIGN = 342, OP_MULASSIGN = 343,
  OP_DIVASSIGN = 344, OP_MODASSIGN = 345, OP_ANDASSIGN = 346, OP_ORASSIGN = 347,
  OP_XORASSIGN = 348, OP_UNKNOWN1 = 349, OP_UNKNOWN2 = 350, OP_UNKNOWN3 = 351,
  OP_UNKNOWN4 = 352, PRE_LINE = 353, VAR_IDENTIFIER = 354, TYPE_IDENTIFIER = 355,
  NEW_IDENTIFIER = 356, STRING = 357, C_FLOAT = 358, C_INTEGER = 359,
  tRCINCLUDE = 258, tIF = 259, tIFDEF = 260, tIFNDEF = 261,
  tELSE = 262, tELIF = 263, tENDIF = 264, tDEFINED = 265,
  tNL = 266, tINCLUDE = 267, tLINE = 268, tGCCLINE = 269,
  tERROR = 270, tWARNING = 271, tPRAGMA = 272, tPPIDENT = 273,
  tUNDEF = 274, tMACROEND = 275, tCONCAT = 276, tELIPSIS = 277,
  tSTRINGIZE = 278, tIDENT = 279, tLITERAL = 280, tMACRO = 281,
  tDEFINE = 282, tDQSTRING = 283, tSQSTRING = 284, tIQSTRING = 285,
  tUINT = 286, tSINT = 287, tULONG = 288, tSLONG = 289,
  tULONGLONG = 290, tSLONGLONG = 291, tRCINCLUDEPATH = 292, tLOGOR = 293,
  tLOGAND = 294, tEQ = 295, tNE = 296, tLTE = 297,
  tGTE = 298, tLSHIFT = 299, tRSHIFT = 300, tRCINCLUDE = 258,
  tIF = 259, tIFDEF = 260, tIFNDEF = 261, tELSE = 262,
  tELIF = 263, tENDIF = 264, tDEFINED = 265, tNL = 266,
  tINCLUDE = 267, tLINE = 268, tGCCLINE = 269, tERROR = 270,
  tWARNING = 271, tPRAGMA = 272, tPPIDENT = 273, tUNDEF = 274,
  tMACROEND = 275, tCONCAT = 276, tELIPSIS = 277, tSTRINGIZE = 278,
  tIDENT = 279, tLITERAL = 280, tMACRO = 281, tDEFINE = 282,
  tDQSTRING = 283, tSQSTRING = 284, tIQSTRING = 285, tUINT = 286,
  tSINT = 287, tULONG = 288, tSLONG = 289, tULONGLONG = 290,
  tSLONGLONG = 291, tRCINCLUDEPATH = 292, tLOGOR = 293, tLOGAND = 294,
  tEQ = 295, tNE = 296, tLTE = 297, tGTE = 298,
  tLSHIFT = 299, tRSHIFT = 300, tEQ = 258, tEQEQ = 259,
  tNEQ = 260, tNEQEQ = 261, tLSHIFT = 262, tRSHIFT = 263,
  tRRSHIFT = 264, tOR = 265, tAND = 266, tLEQ = 267,
  tGEQ = 268, tCCValue = 269, tEQ = 258, tEQEQ = 259,
  tNEQ = 260, tNEQEQ = 261, tLSHIFT = 262, tRSHIFT = 263,
  tRRSHIFT = 264, tOR = 265, tAND = 266, tLEQ = 267,
  tGEQ = 268, tCCValue = 269, kBREAK = 258, kCASE = 259,
  kCATCH = 260, kCONTINUE = 261, kDEFAULT = 262, kDELETE = 263,
  kDO = 264, kELSE = 265, kFUNCTION = 266, kIF = 267,
  kFINALLY = 268, kFOR = 269, kGET = 270, kIN = 271,
  kSET = 272, kINSTANCEOF = 273, kNEW = 274, kNULL = 275,
  kRETURN = 276, kSWITCH = 277, kTHIS = 278, kTHROW = 279,
  kTRUE = 280, kFALSE = 281, kTRY = 282, kTYPEOF = 283,
  kVAR = 284, kVOID = 285, kWHILE = 286, kWITH = 287,
  tANDAND = 288, tOROR = 289, tINC = 290, tDEC = 291,
  tHTMLCOMMENT = 292, kDIVEQ = 293, kDCOL = 294, tIdentifier = 295,
  tAssignOper = 296, tEqOper = 297, tShiftOper = 298, tRelOper = 299,
  tNumericLiteral = 300, tBooleanLiteral = 301, tStringLiteral = 302, tEOF = 303,
  LOWER_THAN_ELSE = 304, kBREAK = 258, kCASE = 259, kCATCH = 260,
  kCONTINUE = 261, kDEFAULT = 262, kDELETE = 263, kDO = 264,
  kELSE = 265, kFUNCTION = 266, kIF = 267, kFINALLY = 268,
  kFOR = 269, kGET = 270, kIN = 271, kSET = 272,
  kINSTANCEOF = 273, kNEW = 274, kNULL = 275, kRETURN = 276,
  kSWITCH = 277, kTHIS = 278, kTHROW = 279, kTRUE = 280,
  kFALSE = 281, kTRY = 282, kTYPEOF = 283, kVAR = 284,
  kVOID = 285, kWHILE = 286, kWITH = 287, tANDAND = 288,
  tOROR = 289, tINC = 290, tDEC = 291, tHTMLCOMMENT = 292,
  kDIVEQ = 293, kDCOL = 294, tIdentifier = 295, tAssignOper = 296,
  tEqOper = 297, tShiftOper = 298, tRelOper = 299, tNumericLiteral = 300,
  tBooleanLiteral = 301, tStringLiteral = 302, tEOF = 303, LOWER_THAN_ELSE = 304,
  COND_SPACE = 258, COND_EOF = 259, COND_OR = 260, COND_AND = 261,
  COND_NOT = 262, COND_XOR = 263, COND_IMP = 264, COND_EQV = 265,
  COND_LT = 266, COND_GT = 267, COND_EQ = 268, COND_NE = 269,
  COND_GE = 270, COND_LE = 271, COND_ILT = 272, COND_IGT = 273,
  COND_IEQ = 274, COND_INE = 275, COND_IGE = 276, COND_ILE = 277,
  COND_LPAR = 278, COND_RPAR = 279, COND_TILDA = 280, COND_SS = 281,
  COND_ISS = 282, COND_ILHS = 283, COND_IRHS = 284, COND_LHS = 285,
  COND_RHS = 286, COND_PERCENT = 287, COND_DOLLARS = 288, COND_QUESTION = 289,
  COND_AMPER = 290, COND_EXCLAM = 291, COND_IDENT = 292, COND_NUMBER = 293,
  COND_LITER = 294, COND_ERROR = 295, TK_ALTER = 258, TK_AND = 259,
  TK_BY = 260, TK_CHAR = 261, TK_COMMA = 262, TK_CREATE = 263,
  TK_DELETE = 264, TK_DROP = 265, TK_DISTINCT = 266, TK_DOT = 267,
  TK_EQ = 268, TK_FREE = 269, TK_FROM = 270, TK_GE = 271,
  TK_GT = 272, TK_HOLD = 273, TK_ADD = 274, TK_ID = 275,
  TK_ILLEGAL = 276, TK_INSERT = 277, TK_INT = 278, TK_INTEGER = 279,
  TK_INTO = 280, TK_IS = 281, TK_KEY = 282, TK_LE = 283,
  TK_LONG = 284, TK_LONGCHAR = 285, TK_LP = 286, TK_LT = 287,
  TK_LOCALIZABLE = 288, TK_MINUS = 289, TK_NE = 290, TK_NOT = 291,
  TK_NULL = 292, TK_OBJECT = 293, TK_OR = 294, TK_ORDER = 295,
  TK_PRIMARY = 296, TK_RP = 297, TK_SELECT = 298, TK_SET = 299,
  TK_SHORT = 300, TK_SPACE = 301, TK_STAR = 302, TK_STRING = 303,
  TK_TABLE = 304, TK_TEMPORARY = 305, TK_UPDATE = 306, TK_VALUES = 307,
  TK_WHERE = 308, TK_WILDCARD = 309, END_OF_FILE = 310, ILLEGAL = 311,
  SPACE = 312, UNCLOSED_STRING = 313, COMMENT = 314, FUNCTION = 315,
  COLUMN = 316, TK_LIKE = 318, TK_NEGATION = 319, TK_ALTER = 258,
  TK_AND = 259, TK_BY = 260, TK_CHAR = 261, TK_COMMA = 262,
  TK_CREATE = 263, TK_DELETE = 264, TK_DROP = 265, TK_DISTINCT = 266,
  TK_DOT = 267, TK_EQ = 268, TK_FREE = 269, TK_FROM = 270,
  TK_GE = 271, TK_GT = 272, TK_HOLD = 273, TK_ADD = 274,
  TK_ID = 275, TK_ILLEGAL = 276, TK_INSERT = 277, TK_INT = 278,
  TK_INTEGER = 279, TK_INTO = 280, TK_IS = 281, TK_KEY = 282,
  TK_LE = 283, TK_LONG = 284, TK_LONGCHAR = 285, TK_LP = 286,
  TK_LT = 287, TK_LOCALIZABLE = 288, TK_MINUS = 289, TK_NE = 290,
  TK_NOT = 291, TK_NULL = 292, TK_OBJECT = 293, TK_OR = 294,
  TK_ORDER = 295, TK_PRIMARY = 296, TK_RP = 297, TK_SELECT = 298,
  TK_SET = 299, TK_SHORT = 300, TK_SPACE = 301, TK_STAR = 302,
  TK_STRING = 303, TK_TABLE = 304, TK_TEMPORARY = 305, TK_UPDATE = 306,
  TK_VALUES = 307, TK_WHERE = 308, TK_WILDCARD = 309, END_OF_FILE = 310,
  ILLEGAL = 311, SPACE = 312, UNCLOSED_STRING = 313, COMMENT = 314,
  FUNCTION = 315, COLUMN = 316, TK_LIKE = 318, TK_NEGATION = 319,
  TOK_Parent = 258, TOK_Self = 259, TOK_DblFSlash = 260, TOK_FSlash = 261,
  TOK_Axis = 262, TOK_Colon = 263, TOK_OpAnd = 264, TOK_OpOr = 265,
  TOK_OpNot = 266, TOK_OpEq = 267, TOK_OpIEq = 268, TOK_OpNEq = 269,
  TOK_OpINEq = 270, TOK_OpLt = 271, TOK_OpILt = 272, TOK_OpGt = 273,
  TOK_OpIGt = 274, TOK_OpLEq = 275, TOK_OpILEq = 276, TOK_OpGEq = 277,
  TOK_OpIGEq = 278, TOK_OpAll = 279, TOK_OpAny = 280, TOK_NCName = 281,
  TOK_Literal = 282, TOK_Number = 283, tEXPRESSION = 258, tEOF = 259,
  tNL = 260, tEMPTYBRACKETS = 261, tLTEQ = 262, tGTEQ = 263,
  tNEQ = 264, tSTOP = 265, tME = 266, tREM = 267,
  tTRUE = 268, tFALSE = 269, tNOT = 270, tAND = 271,
  tOR = 272, tXOR = 273, tEQV = 274, tIMP = 275,
  tIS = 276, tMOD = 277, tCALL = 278, tDIM = 279,
  tSUB = 280, tFUNCTION = 281, tGET = 282, tLET = 283,
  tCONST = 284, tIF = 285, tELSE = 286, tELSEIF = 287,
  tEND = 288, tTHEN = 289, tEXIT = 290, tWHILE = 291,
  tWEND = 292, tDO = 293, tLOOP = 294, tUNTIL = 295,
  tFOR = 296, tTO = 297, tEACH = 298, tIN = 299,
  tSELECT = 300, tCASE = 301, tBYREF = 302, tBYVAL = 303,
  tOPTION = 304, tNOTHING = 305, tEMPTY = 306, tNULL = 307,
  tCLASS = 308, tSET = 309, tNEW = 310, tPUBLIC = 311,
  tPRIVATE = 312, tNEXT = 313, tON = 314, tRESUME = 315,
  tGOTO = 316, tIdentifier = 317, tString = 318, tDEFAULT = 319,
  tERROR = 320, tEXPLICIT = 321, tPROPERTY = 322, tSTEP = 323,
  tInt = 324, tDouble = 325, tEXPRESSION = 258, tEOF = 259,
  tNL = 260, tEMPTYBRACKETS = 261, tLTEQ = 262, tGTEQ = 263,
  tNEQ = 264, tSTOP = 265, tME = 266, tREM = 267,
  tTRUE = 268, tFALSE = 269, tNOT = 270, tAND = 271,
  tOR = 272, tXOR = 273, tEQV = 274, tIMP = 275,
  tIS = 276, tMOD = 277, tCALL = 278, tDIM = 279,
  tSUB = 280, tFUNCTION = 281, tGET = 282, tLET = 283,
  tCONST = 284, tIF = 285, tELSE = 286, tELSEIF = 287,
  tEND = 288, tTHEN = 289, tEXIT = 290, tWHILE = 291,
  tWEND = 292, tDO = 293, tLOOP = 294, tUNTIL = 295,
  tFOR = 296, tTO = 297, tEACH = 298, tIN = 299,
  tSELECT = 300, tCASE = 301, tBYREF = 302, tBYVAL = 303,
  tOPTION = 304, tNOTHING = 305, tEMPTY = 306, tNULL = 307,
  tCLASS = 308, tSET = 309, tNEW = 310, tPUBLIC = 311,
  tPRIVATE = 312, tNEXT = 313, tON = 314, tRESUME = 315,
  tGOTO = 316, tIdentifier = 317, tString = 318, tDEFAULT = 319,
  tERROR = 320, tEXPLICIT = 321, tPROPERTY = 322, tSTEP = 323,
  tInt = 324, tDouble = 325, TK_SELECT = 258, TK_FROM = 259,
  TK_STAR = 260, TK_COMMA = 261, TK_DOT = 262, TK_IS = 263,
  TK_LP = 264, TK_RP = 265, TK_NULL = 266, TK_FALSE = 267,
  TK_TRUE = 268, TK_INTEGER = 269, TK_WHERE = 270, TK_SPACE = 271,
  TK_MINUS = 272, TK_ILLEGAL = 273, TK_BY = 274, TK_ASSOCIATORS = 275,
  TK_OF = 276, TK_STRING = 277, TK_ID = 278, TK_PATH = 279,
  TK_OR = 280, TK_AND = 281, TK_NOT = 282, TK_EQ = 283,
  TK_NE = 284, TK_LT = 285, TK_GT = 286, TK_LE = 287,
  TK_GE = 288, TK_LIKE = 289, TK_SELECT = 258, TK_FROM = 259,
  TK_STAR = 260, TK_COMMA = 261, TK_DOT = 262, TK_IS = 263,
  TK_LP = 264, TK_RP = 265, TK_NULL = 266, TK_FALSE = 267,
  TK_TRUE = 268, TK_INTEGER = 269, TK_WHERE = 270, TK_SPACE = 271,
  TK_MINUS = 272, TK_ILLEGAL = 273, TK_BY = 274, TK_ASSOCIATORS = 275,
  TK_OF = 276, TK_STRING = 277, TK_ID = 278, TK_PATH = 279,
  TK_OR = 280, TK_AND = 281, TK_NOT = 282, TK_EQ = 283,
  TK_NE = 284, TK_LT = 285, TK_GT = 286, TK_LE = 287,
  TK_GE = 288, TK_LIKE = 289, aIDENTIFIER = 258, aPRAGMA = 259,
  aKNOWNTYPE = 260, aNUM = 261, aHEXNUM = 262, aDOUBLE = 263,
  aSTRING = 264, aWSTRING = 265, aSQSTRING = 266, aUUID = 267,
  aEOF = 268, aACF = 269, SHL = 270, SHR = 271,
  MEMBERPTR = 272, EQUALITY = 273, INEQUALITY = 274, GREATEREQUAL = 275,
  LESSEQUAL = 276, LOGICALOR = 277, LOGICALAND = 278, ELLIPSIS = 279,
  tAGGREGATABLE = 280, tALLOCATE = 281, tANNOTATION = 282, tAPPOBJECT = 283,
  tASYNC = 284, tASYNCUUID = 285, tAUTOHANDLE = 286, tBINDABLE = 287,
  tBOOLEAN = 288, tBROADCAST = 289, tBYTE = 290, tBYTECOUNT = 291,
  tCALLAS = 292, tCALLBACK = 293, tCASE = 294, tCDECL = 295,
  tCHAR = 296, tCOCLASS = 297, tCODE = 298, tCOMMSTATUS = 299,
  tCONST = 300, tCONTEXTHANDLE = 301, tCONTEXTHANDLENOSERIALIZE = 302, tCONTEXTHANDLESERIALIZE = 303,
  tCONTROL = 304, tCPPQUOTE = 305, tDECODE = 306, tDEFAULT = 307,
  tDEFAULTBIND = 308, tDEFAULTCOLLELEM = 309, tDEFAULTVALUE = 310, tDEFAULTVTABLE = 311,
  tDISABLECONSISTENCYCHECK = 312, tDISPLAYBIND = 313, tDISPINTERFACE = 314, tDLLNAME = 315,
  tDOUBLE = 316, tDUAL = 317, tENABLEALLOCATE = 318, tENCODE = 319,
  tENDPOINT = 320, tENTRY = 321, tENUM = 322, tERRORSTATUST = 323,
  tEXPLICITHANDLE = 324, tEXTERN = 325, tFALSE = 326, tFASTCALL = 327,
  tFAULTSTATUS = 328, tFLOAT = 329, tFORCEALLOCATE = 330, tHANDLE = 331,
  tHANDLET = 332, tHELPCONTEXT = 333, tHELPFILE = 334, tHELPSTRING = 335,
  tHELPSTRINGCONTEXT = 336, tHELPSTRINGDLL = 337, tHIDDEN = 338, tHYPER = 339,
  tID = 340, tIDEMPOTENT = 341, tIGNORE = 342, tIIDIS = 343,
  tIMMEDIATEBIND = 344, tIMPLICITHANDLE = 345, tIMPORT = 346, tIMPORTLIB = 347,
  tIN = 348, tIN_LINE = 349, tINLINE = 350, tINPUTSYNC = 351,
  tINT = 352, tINT32 = 353, tINT3264 = 354, tINT64 = 355,
  tINTERFACE = 356, tLCID = 357, tLENGTHIS = 358, tLIBRARY = 359,
  tLICENSED = 360, tLOCAL = 361, tLONG = 362, tMAYBE = 363,
  tMESSAGE = 364, tMETHODS = 365, tMODULE = 366, tNAMESPACE = 367,
  tNOCODE = 368, tNONBROWSABLE = 369, tNONCREATABLE = 370, tNONEXTENSIBLE = 371,
  tNOTIFY = 372, tNOTIFYFLAG = 373, tNULL = 374, tOBJECT = 375,
  tODL = 376, tOLEAUTOMATION = 377, tOPTIMIZE = 378, tOPTIONAL = 379,
  tOUT = 380, tPARTIALIGNORE = 381, tPASCAL = 382, tPOINTERDEFAULT = 383,
  tPRAGMA_WARNING = 384, tPROGID = 385, tPROPERTIES = 386, tPROPGET = 387,
  tPROPPUT = 388, tPROPPUTREF = 389, tPROXY = 390, tPTR = 391,
  tPUBLIC = 392, tRANGE = 393, tREADONLY = 394, tREF = 395,
  tREGISTER = 396, tREPRESENTAS = 397, tREQUESTEDIT = 398, tRESTRICTED = 399,
  tRETVAL = 400, tSAFEARRAY = 401, tSHORT = 402, tSIGNED = 403,
  tSIZEIS = 404, tSIZEOF = 405, tSMALL = 406, tSOURCE = 407,
  tSTATIC = 408, tSTDCALL = 409, tSTRICTCONTEXTHANDLE = 410, tSTRING = 411,
  tSTRUCT = 412, tSWITCH = 413, tSWITCHIS = 414, tSWITCHTYPE = 415,
  tTHREADING = 416, tTRANSMITAS = 417, tTRUE = 418, tTYPEDEF = 419,
  tUIDEFAULT = 420, tUNION = 421, tUNIQUE = 422, tUNSIGNED = 423,
  tUSESGETLASTERROR = 424, tUSERMARSHAL = 425, tUUID = 426, tV1ENUM = 427,
  tVARARG = 428, tVERSION = 429, tVIPROGID = 430, tVOID = 431,
  tWCHAR = 432, tWIREMARSHAL = 433, tAPARTMENT = 434, tNEUTRAL = 435,
  tSINGLE = 436, tFREE = 437, tBOTH = 438, CAST = 439,
  PPTR = 440, POS = 441, NEG = 442, ADDRESSOF = 443,
  aIDENTIFIER = 258, aPRAGMA = 259, aKNOWNTYPE = 260, aNUM = 261,
  aHEXNUM = 262, aDOUBLE = 263, aSTRING = 264, aWSTRING = 265,
  aSQSTRING = 266, aUUID = 267, aEOF = 268, aACF = 269,
  SHL = 270, SHR = 271, MEMBERPTR = 272, EQUALITY = 273,
  INEQUALITY = 274, GREATEREQUAL = 275, LESSEQUAL = 276, LOGICALOR = 277,
  LOGICALAND = 278, ELLIPSIS = 279, tAGGREGATABLE = 280, tALLOCATE = 281,
  tANNOTATION = 282, tAPPOBJECT = 283, tASYNC = 284, tASYNCUUID = 285,
  tAUTOHANDLE = 286, tBINDABLE = 287, tBOOLEAN = 288, tBROADCAST = 289,
  tBYTE = 290, tBYTECOUNT = 291, tCALLAS = 292, tCALLBACK = 293,
  tCASE = 294, tCDECL = 295, tCHAR = 296, tCOCLASS = 297,
  tCODE = 298, tCOMMSTATUS = 299, tCONST = 300, tCONTEXTHANDLE = 301,
  tCONTEXTHANDLENOSERIALIZE = 302, tCONTEXTHANDLESERIALIZE = 303, tCONTROL = 304, tCPPQUOTE = 305,
  tDECODE = 306, tDEFAULT = 307, tDEFAULTBIND = 308, tDEFAULTCOLLELEM = 309,
  tDEFAULTVALUE = 310, tDEFAULTVTABLE = 311, tDISABLECONSISTENCYCHECK = 312, tDISPLAYBIND = 313,
  tDISPINTERFACE = 314, tDLLNAME = 315, tDOUBLE = 316, tDUAL = 317,
  tENABLEALLOCATE = 318, tENCODE = 319, tENDPOINT = 320, tENTRY = 321,
  tENUM = 322, tERRORSTATUST = 323, tEXPLICITHANDLE = 324, tEXTERN = 325,
  tFALSE = 326, tFASTCALL = 327, tFAULTSTATUS = 328, tFLOAT = 329,
  tFORCEALLOCATE = 330, tHANDLE = 331, tHANDLET = 332, tHELPCONTEXT = 333,
  tHELPFILE = 334, tHELPSTRING = 335, tHELPSTRINGCONTEXT = 336, tHELPSTRINGDLL = 337,
  tHIDDEN = 338, tHYPER = 339, tID = 340, tIDEMPOTENT = 341,
  tIGNORE = 342, tIIDIS = 343, tIMMEDIATEBIND = 344, tIMPLICITHANDLE = 345,
  tIMPORT = 346, tIMPORTLIB = 347, tIN = 348, tIN_LINE = 349,
  tINLINE = 350, tINPUTSYNC = 351, tINT = 352, tINT32 = 353,
  tINT3264 = 354, tINT64 = 355, tINTERFACE = 356, tLCID = 357,
  tLENGTHIS = 358, tLIBRARY = 359, tLICENSED = 360, tLOCAL = 361,
  tLONG = 362, tMAYBE = 363, tMESSAGE = 364, tMETHODS = 365,
  tMODULE = 366, tNAMESPACE = 367, tNOCODE = 368, tNONBROWSABLE = 369,
  tNONCREATABLE = 370, tNONEXTENSIBLE = 371, tNOTIFY = 372, tNOTIFYFLAG = 373,
  tNULL = 374, tOBJECT = 375, tODL = 376, tOLEAUTOMATION = 377,
  tOPTIMIZE = 378, tOPTIONAL = 379, tOUT = 380, tPARTIALIGNORE = 381,
  tPASCAL = 382, tPOINTERDEFAULT = 383, tPRAGMA_WARNING = 384, tPROGID = 385,
  tPROPERTIES = 386, tPROPGET = 387, tPROPPUT = 388, tPROPPUTREF = 389,
  tPROXY = 390, tPTR = 391, tPUBLIC = 392, tRANGE = 393,
  tREADONLY = 394, tREF = 395, tREGISTER = 396, tREPRESENTAS = 397,
  tREQUESTEDIT = 398, tRESTRICTED = 399, tRETVAL = 400, tSAFEARRAY = 401,
  tSHORT = 402, tSIGNED = 403, tSIZEIS = 404, tSIZEOF = 405,
  tSMALL = 406, tSOURCE = 407, tSTATIC = 408, tSTDCALL = 409,
  tSTRICTCONTEXTHANDLE = 410, tSTRING = 411, tSTRUCT = 412, tSWITCH = 413,
  tSWITCHIS = 414, tSWITCHTYPE = 415, tTHREADING = 416, tTRANSMITAS = 417,
  tTRUE = 418, tTYPEDEF = 419, tUIDEFAULT = 420, tUNION = 421,
  tUNIQUE = 422, tUNSIGNED = 423, tUSESGETLASTERROR = 424, tUSERMARSHAL = 425,
  tUUID = 426, tV1ENUM = 427, tVARARG = 428, tVERSION = 429,
  tVIPROGID = 430, tVOID = 431, tWCHAR = 432, tWIREMARSHAL = 433,
  tAPARTMENT = 434, tNEUTRAL = 435, tSINGLE = 436, tFREE = 437,
  tBOTH = 438, CAST = 439, PPTR = 440, POS = 441,
  NEG = 442, ADDRESSOF = 443, tRCINCLUDE = 258, tIF = 259,
  tIFDEF = 260, tIFNDEF = 261, tELSE = 262, tELIF = 263,
  tENDIF = 264, tDEFINED = 265, tNL = 266, tINCLUDE = 267,
  tLINE = 268, tGCCLINE = 269, tERROR = 270, tWARNING = 271,
  tPRAGMA = 272, tPPIDENT = 273, tUNDEF = 274, tMACROEND = 275,
  tCONCAT = 276, tELIPSIS = 277, tSTRINGIZE = 278, tIDENT = 279,
  tLITERAL = 280, tMACRO = 281, tDEFINE = 282, tDQSTRING = 283,
  tSQSTRING = 284, tIQSTRING = 285, tUINT = 286, tSINT = 287,
  tULONG = 288, tSLONG = 289, tULONGLONG = 290, tSLONGLONG = 291,
  tRCINCLUDEPATH = 292, tLOGOR = 293, tLOGAND = 294, tEQ = 295,
  tNE = 296, tLTE = 297, tGTE = 298, tLSHIFT = 299,
  tRSHIFT = 300, tRCINCLUDE = 258, tIF = 259, tIFDEF = 260,
  tIFNDEF = 261, tELSE = 262, tELIF = 263, tENDIF = 264,
  tDEFINED = 265, tNL = 266, tINCLUDE = 267, tLINE = 268,
  tGCCLINE = 269, tERROR = 270, tWARNING = 271, tPRAGMA = 272,
  tPPIDENT = 273, tUNDEF = 274, tMACROEND = 275, tCONCAT = 276,
  tELIPSIS = 277, tSTRINGIZE = 278, tIDENT = 279, tLITERAL = 280,
  tMACRO = 281, tDEFINE = 282, tDQSTRING = 283, tSQSTRING = 284,
  tIQSTRING = 285, tUINT = 286, tSINT = 287, tULONG = 288,
  tSLONG = 289, tULONGLONG = 290, tSLONGLONG = 291, tRCINCLUDEPATH = 292,
  tLOGOR = 293, tLOGAND = 294, tEQ = 295, tNE = 296,
  tLTE = 297, tGTE = 298, tLSHIFT = 299, tRSHIFT = 300
}
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (msi)
 
static LPWSTR COND_GetString (COND_input *info, const struct cond_str *str)
 
static LPWSTR COND_GetLiteral (COND_input *info, const struct cond_str *str)
 
static int cond_lex (void *COND_lval, COND_input *info)
 
static int cond_error (COND_input *info, const char *str)
 
static voidcond_alloc (COND_input *cond, unsigned int sz)
 
static voidcond_track_mem (COND_input *cond, void *ptr, unsigned int sz)
 
static void cond_free (void *ptr)
 
static INT compare_int (INT a, INT operator, INT b)
 
static INT compare_string (LPCWSTR a, INT operator, LPCWSTR b, BOOL convert)
 
static BOOL num_from_prop (LPCWSTR p, INT *val)
 
static void value_free (struct value val)
 
int cond_parse (COND_input *info)
 
voidmalloc (YYSIZE_T)
 
void free (void *)
 
static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, COND_input *info)
 
int yyparse (COND_input *info)
 
static int COND_IsAlpha (WCHAR x)
 
static int COND_IsNumber (WCHAR x)
 
static WCHARstrstriW (const WCHAR *str, const WCHAR *sub)
 
static BOOL str_is_number (LPCWSTR str)
 
static INT compare_substring (LPCWSTR a, INT operator, LPCWSTR b)
 
static int COND_IsIdent (WCHAR x)
 
static int COND_GetOperator (COND_input *cond)
 
static int COND_GetOne (struct cond_str *str, COND_input *cond)
 
MSICONDITION MSI_EvaluateConditionW (MSIPACKAGE *package, LPCWSTR szCondition)
 
MSICONDITION WINAPI MsiEvaluateConditionW (MSIHANDLE hInstall, LPCWSTR szCondition)
 
MSICONDITION WINAPI MsiEvaluateConditionA (MSIHANDLE hInstall, LPCSTR szCondition)
 

Variables

static const yytype_uint8 yytranslate []
 
static const yytype_int8 yypact []
 
static const yytype_uint8 yydefact []
 
static const yytype_int8 yypgoto []
 
static const yytype_int8 yydefgoto []
 
static const yytype_uint8 yytable []
 
static const yytype_int8 yycheck []
 
static const yytype_uint8 yystos []
 
static const yytype_uint8 yyr1 []
 
static const yytype_uint8 yyr2 []
 

Macro Definition Documentation

◆ _Noreturn

#define _Noreturn   YY_ATTRIBUTE ((__noreturn__))

Definition at line 369 of file cond.tab.c.

◆ COBJMACROS

#define COBJMACROS

Definition at line 94 of file cond.tab.c.

◆ YY_

#define YY_ (   Msgid)    Msgid

Definition at line 342 of file cond.tab.c.

◆ YY_ATTRIBUTE

#define YY_ATTRIBUTE (   Spec)    /* empty */

Definition at line 352 of file cond.tab.c.

◆ YY_ATTRIBUTE_PURE

#define YY_ATTRIBUTE_PURE   YY_ATTRIBUTE ((__pure__))

Definition at line 357 of file cond.tab.c.

◆ YY_ATTRIBUTE_UNUSED

#define YY_ATTRIBUTE_UNUSED   YY_ATTRIBUTE ((__unused__))

Definition at line 361 of file cond.tab.c.

◆ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

Definition at line 392 of file cond.tab.c.

◆ YY_IGNORE_MAYBE_UNINITIALIZED_END

#define YY_IGNORE_MAYBE_UNINITIALIZED_END

Definition at line 393 of file cond.tab.c.

◆ YY_INITIAL_VALUE

#define YY_INITIAL_VALUE (   Value)    Value

Definition at line 389 of file cond.tab.c.

◆ YY_NULLPTR

#define YY_NULLPTR   0

Definition at line 193 of file cond.tab.c.

◆ YY_REDUCE_PRINT

#define YY_REDUCE_PRINT (   Rule)

Definition at line 896 of file cond.tab.c.

◆ YY_STACK_PRINT

#define YY_STACK_PRINT (   Bottom,
  Top 
)

Definition at line 895 of file cond.tab.c.

◆ YY_SYMBOL_PRINT

#define YY_SYMBOL_PRINT (   Title,
  Type,
  Value,
  Location 
)

Definition at line 894 of file cond.tab.c.

◆ YYABORT

#define YYABORT   goto yyabortlab

Definition at line 740 of file cond.tab.c.

◆ YYACCEPT

#define YYACCEPT   goto yyacceptlab

Definition at line 739 of file cond.tab.c.

◆ YYBACKUP

#define YYBACKUP (   Token,
  Value 
)
Value:
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
{ \
yyerror (info, YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2343
#define yychar
Definition: asmshader.tab.c:74
_IRQL_requires_same_ _In_ PLSA_STRING _In_ SECURITY_LOGON_TYPE _In_ ULONG _In_ ULONG _In_opt_ PTOKEN_GROUPS _In_ PTOKEN_SOURCE _Out_ PVOID _Out_ PULONG _Inout_ PLUID _Out_ PHANDLE Token
if(!(yy_init))
Definition: macro.lex.yy.c:714
#define YYEMPTY
Definition: cond.tab.c:736
#define YY_(Msgid)
Definition: cond.tab.c:342

Definition at line 746 of file cond.tab.c.

◆ YYBISON

#define YYBISON   1

Definition at line 44 of file cond.tab.c.

◆ YYBISON_VERSION

#define YYBISON_VERSION   "3.1"

Definition at line 47 of file cond.tab.c.

◆ yyclearin

#define yyclearin   (yychar = YYEMPTY)

Definition at line 735 of file cond.tab.c.

◆ YYCOPY

#define YYCOPY (   Dst,
  Src,
  Count 
)
Value:
do \
{ \
YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(Dst)[yyi] = (Src)[yyi]; \
} \
while (0)
_Inout_ __drv_aliasesMem PSLIST_ENTRY _Inout_ PSLIST_ENTRY _In_ ULONG Count
Definition: exfuncs.h:1015
#define Dst
Definition: mesh.h:153

Definition at line 516 of file cond.tab.c.

◆ YYCOPY_NEEDED

#define YYCOPY_NEEDED   1

Definition at line 488 of file cond.tab.c.

◆ yydebug

#define yydebug   cond_debug

Definition at line 66 of file cond.tab.c.

◆ YYDEBUG

#define YYDEBUG   0

Definition at line 208 of file cond.tab.c.

◆ YYDPRINTF

#define YYDPRINTF (   Args)

Definition at line 893 of file cond.tab.c.

◆ YYEMPTY

#define YYEMPTY   (-2)

Definition at line 736 of file cond.tab.c.

◆ YYEOF

#define YYEOF   0

Definition at line 737 of file cond.tab.c.

◆ YYERRCODE

#define YYERRCODE   256

Definition at line 765 of file cond.tab.c.

◆ yyerrok

#define yyerrok   (yyerrstatus = 0)

Definition at line 734 of file cond.tab.c.

◆ yyerror

#define yyerror   cond_error

Definition at line 65 of file cond.tab.c.

◆ YYERROR

#define YYERROR   goto yyerrorlab

Definition at line 741 of file cond.tab.c.

◆ YYERROR_VERBOSE

#define YYERROR_VERBOSE   0

Definition at line 202 of file cond.tab.c.

◆ YYFINAL

#define YYFINAL   24

Definition at line 529 of file cond.tab.c.

◆ YYFREE

#define YYFREE   free

Definition at line 459 of file cond.tab.c.

◆ YYINITDEPTH

#define YYINITDEPTH   200

Definition at line 902 of file cond.tab.c.

◆ YYLAST

#define YYLAST   67

Definition at line 531 of file cond.tab.c.

◆ yylex

#define yylex   cond_lex

Definition at line 64 of file cond.tab.c.

◆ YYMALLOC

#define YYMALLOC   malloc

Definition at line 453 of file cond.tab.c.

◆ YYMAXDEPTH

#define YYMAXDEPTH   10000

Definition at line 913 of file cond.tab.c.

◆ YYMAXUTOK

#define YYMAXUTOK   295

Definition at line 545 of file cond.tab.c.

◆ yynerrs

#define yynerrs   cond_nerrs

Definition at line 67 of file cond.tab.c.

◆ YYNNTS

#define YYNNTS   8

Definition at line 536 of file cond.tab.c.

◆ YYNRULES

#define YYNRULES   41

Definition at line 538 of file cond.tab.c.

◆ YYNSTATES

#define YYNSTATES   56

Definition at line 540 of file cond.tab.c.

◆ YYNTOKENS

#define YYNTOKENS   41

Definition at line 534 of file cond.tab.c.

◆ YYPACT_NINF

#define YYPACT_NINF   -45

Definition at line 629 of file cond.tab.c.

◆ yypact_value_is_default

#define yypact_value_is_default (   Yystate)    (!!((Yystate) == (-45)))

Definition at line 631 of file cond.tab.c.

◆ yyparse

#define yyparse   cond_parse

Definition at line 63 of file cond.tab.c.

◆ YYPOPSTACK

#define YYPOPSTACK (   N)    (yyvsp -= (N), yyssp -= (N))

◆ YYPULL

#define YYPULL   1

Definition at line 59 of file cond.tab.c.

◆ YYPURE

#define YYPURE   1

Definition at line 53 of file cond.tab.c.

◆ YYPUSH

#define YYPUSH   0

Definition at line 56 of file cond.tab.c.

◆ YYRECOVERING

#define YYRECOVERING ( )    (!!yyerrstatus)

Definition at line 744 of file cond.tab.c.

◆ YYSIZE_MAXIMUM

#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)

Definition at line 332 of file cond.tab.c.

◆ YYSIZE_T

#define YYSIZE_T   size_t

Definition at line 326 of file cond.tab.c.

◆ YYSKELETON_NAME

#define YYSKELETON_NAME   "yacc.c"

Definition at line 50 of file cond.tab.c.

◆ YYSTACK_ALLOC

#define YYSTACK_ALLOC   YYMALLOC

Definition at line 439 of file cond.tab.c.

◆ YYSTACK_ALLOC_MAXIMUM

#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

Definition at line 442 of file cond.tab.c.

◆ YYSTACK_BYTES

#define YYSTACK_BYTES (   N)
Value:
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
union YYSTYPE YYSTYPE
Definition: cond.tab.c:276
short yytype_int16
#define YYSTACK_GAP_MAXIMUM
Definition: cond.tab.c:480

Definition at line 484 of file cond.tab.c.

◆ YYSTACK_FREE

#define YYSTACK_FREE   YYFREE

Definition at line 440 of file cond.tab.c.

◆ YYSTACK_GAP_MAXIMUM

#define YYSTACK_GAP_MAXIMUM   (sizeof (union yyalloc) - 1)

Definition at line 480 of file cond.tab.c.

◆ YYSTACK_RELOCATE

#define YYSTACK_RELOCATE (   Stack_alloc,
  Stack 
)
Value:
do \
{ \
YYSIZE_T yynewbytes; \
YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
Stack = &yyptr->Stack_alloc; \
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
while (0)
#define YYSTACK_GAP_MAXIMUM
Definition: cond.tab.c:480

Definition at line 495 of file cond.tab.c.

◆ YYSTYPE_IS_DECLARED

#define YYSTYPE_IS_DECLARED   1

Definition at line 278 of file cond.tab.c.

◆ YYSTYPE_IS_TRIVIAL

#define YYSTYPE_IS_TRIVIAL   1

Definition at line 277 of file cond.tab.c.

◆ YYTABLE_NINF

#define YYTABLE_NINF   -1

Definition at line 634 of file cond.tab.c.

◆ yytable_value_is_error

#define yytable_value_is_error (   Yytable_value)    0

Definition at line 636 of file cond.tab.c.

◆ YYTERROR

#define YYTERROR   1

Definition at line 764 of file cond.tab.c.

◆ YYTOKENTYPE

#define YYTOKENTYPE

Definition at line 216 of file cond.tab.c.

◆ YYTRANSLATE

#define YYTRANSLATE (   YYX)    ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)

Definition at line 547 of file cond.tab.c.

◆ YYUNDEFTOK

#define YYUNDEFTOK   2

Definition at line 544 of file cond.tab.c.

◆ YYUSE

#define YYUSE (   E)    ((void) (E))

Definition at line 375 of file cond.tab.c.

Typedef Documentation

◆ COND_input

◆ YYSTYPE

typedef union YYSTYPE YYSTYPE

Definition at line 276 of file cond.tab.c.

◆ yytype_int16

Definition at line 316 of file cond.tab.c.

◆ yytype_int8

Definition at line 304 of file cond.tab.c.

◆ yytype_uint16

Definition at line 310 of file cond.tab.c.

◆ yytype_uint8

Definition at line 298 of file cond.tab.c.

Enumeration Type Documentation

◆ yytokentype

Enumerator
INSTR_ADD 
INSTR_NOP 
INSTR_MOV 
INSTR_SUB 
INSTR_MAD 
INSTR_MUL 
INSTR_RCP 
INSTR_RSQ 
INSTR_DP3 
INSTR_DP4 
INSTR_MIN 
INSTR_MAX 
INSTR_SLT 
INSTR_SGE 
INSTR_ABS 
INSTR_EXP 
INSTR_LOG 
INSTR_EXPP 
INSTR_LOGP 
INSTR_DST 
INSTR_LRP 
INSTR_FRC 
INSTR_POW 
INSTR_CRS 
INSTR_SGN 
INSTR_NRM 
INSTR_SINCOS 
INSTR_M4x4 
INSTR_M4x3 
INSTR_M3x4 
INSTR_M3x3 
INSTR_M3x2 
INSTR_DCL 
INSTR_DEF 
INSTR_DEFB 
INSTR_DEFI 
INSTR_REP 
INSTR_ENDREP 
INSTR_IF 
INSTR_ELSE 
INSTR_ENDIF 
INSTR_BREAK 
INSTR_BREAKP 
INSTR_CALL 
INSTR_CALLNZ 
INSTR_LOOP 
INSTR_RET 
INSTR_ENDLOOP 
INSTR_LABEL 
INSTR_SETP 
INSTR_TEXLDL 
INSTR_LIT 
INSTR_MOVA 
INSTR_CND 
INSTR_CMP 
INSTR_DP2ADD 
INSTR_TEXCOORD 
INSTR_TEXCRD 
INSTR_TEXKILL 
INSTR_TEX 
INSTR_TEXLD 
INSTR_TEXBEM 
INSTR_TEXBEML 
INSTR_TEXREG2AR 
INSTR_TEXREG2GB 
INSTR_TEXREG2RGB 
INSTR_TEXM3x2PAD 
INSTR_TEXM3x2TEX 
INSTR_TEXM3x3PAD 
INSTR_TEXM3x3SPEC 
INSTR_TEXM3x3VSPEC 
INSTR_TEXM3x3TEX 
INSTR_TEXDP3TEX 
INSTR_TEXM3x2DEPTH 
INSTR_TEXDP3 
INSTR_TEXM3x3 
INSTR_TEXDEPTH 
INSTR_BEM 
INSTR_DSX 
INSTR_DSY 
INSTR_TEXLDP 
INSTR_TEXLDB 
INSTR_TEXLDD 
INSTR_PHASE 
REG_TEMP 
REG_OUTPUT 
REG_INPUT 
REG_CONSTFLOAT 
REG_CONSTINT 
REG_CONSTBOOL 
REG_TEXTURE 
REG_SAMPLER 
REG_TEXCRDOUT 
REG_OPOS 
REG_OFOG 
REG_OPTS 
REG_VERTEXCOLOR 
REG_FRAGCOLOR 
REG_FRAGDEPTH 
REG_VPOS 
REG_VFACE 
REG_ADDRESS 
REG_LOOP 
REG_PREDICATE 
REG_LABEL 
VER_VS10 
VER_VS11 
VER_VS20 
VER_VS2X 
VER_VS30 
VER_PS10 
VER_PS11 
VER_PS12 
VER_PS13 
VER_PS14 
VER_PS20 
VER_PS2X 
VER_PS30 
SHIFT_X2 
SHIFT_X4 
SHIFT_X8 
SHIFT_D2 
SHIFT_D4 
SHIFT_D8 
MOD_SAT 
MOD_PP 
MOD_CENTROID 
COMP_GT 
COMP_LT 
COMP_GE 
COMP_LE 
COMP_EQ 
COMP_NE 
SMOD_BIAS 
SMOD_SCALEBIAS 
SMOD_DZ 
SMOD_DW 
SMOD_ABS 
SMOD_NOT 
SAMPTYPE_1D 
SAMPTYPE_2D 
SAMPTYPE_CUBE 
SAMPTYPE_VOLUME 
USAGE_POSITION 
USAGE_BLENDWEIGHT 
USAGE_BLENDINDICES 
USAGE_NORMAL 
USAGE_PSIZE 
USAGE_TEXCOORD 
USAGE_TANGENT 
USAGE_BINORMAL 
USAGE_TESSFACTOR 
USAGE_POSITIONT 
USAGE_COLOR 
USAGE_FOG 
USAGE_DEPTH 
USAGE_SAMPLE 
COMPONENT 
IMMVAL 
IMMBOOL 
INSTR_ADD 
INSTR_NOP 
INSTR_MOV 
INSTR_SUB 
INSTR_MAD 
INSTR_MUL 
INSTR_RCP 
INSTR_RSQ 
INSTR_DP3 
INSTR_DP4 
INSTR_MIN 
INSTR_MAX 
INSTR_SLT 
INSTR_SGE 
INSTR_ABS 
INSTR_EXP 
INSTR_LOG 
INSTR_EXPP 
INSTR_LOGP 
INSTR_DST 
INSTR_LRP 
INSTR_FRC 
INSTR_POW 
INSTR_CRS 
INSTR_SGN 
INSTR_NRM 
INSTR_SINCOS 
INSTR_M4x4 
INSTR_M4x3 
INSTR_M3x4 
INSTR_M3x3 
INSTR_M3x2 
INSTR_DCL 
INSTR_DEF 
INSTR_DEFB 
INSTR_DEFI 
INSTR_REP 
INSTR_ENDREP 
INSTR_IF 
INSTR_ELSE 
INSTR_ENDIF 
INSTR_BREAK 
INSTR_BREAKP 
INSTR_CALL 
INSTR_CALLNZ 
INSTR_LOOP 
INSTR_RET 
INSTR_ENDLOOP 
INSTR_LABEL 
INSTR_SETP 
INSTR_TEXLDL 
INSTR_LIT 
INSTR_MOVA 
INSTR_CND 
INSTR_CMP 
INSTR_DP2ADD 
INSTR_TEXCOORD 
INSTR_TEXCRD 
INSTR_TEXKILL 
INSTR_TEX 
INSTR_TEXLD 
INSTR_TEXBEM 
INSTR_TEXBEML 
INSTR_TEXREG2AR 
INSTR_TEXREG2GB 
INSTR_TEXREG2RGB 
INSTR_TEXM3x2PAD 
INSTR_TEXM3x2TEX 
INSTR_TEXM3x3PAD 
INSTR_TEXM3x3SPEC 
INSTR_TEXM3x3VSPEC 
INSTR_TEXM3x3TEX 
INSTR_TEXDP3TEX 
INSTR_TEXM3x2DEPTH 
INSTR_TEXDP3 
INSTR_TEXM3x3 
INSTR_TEXDEPTH 
INSTR_BEM 
INSTR_DSX 
INSTR_DSY 
INSTR_TEXLDP 
INSTR_TEXLDB 
INSTR_TEXLDD 
INSTR_PHASE 
REG_TEMP 
REG_OUTPUT 
REG_INPUT 
REG_CONSTFLOAT 
REG_CONSTINT 
REG_CONSTBOOL 
REG_TEXTURE 
REG_SAMPLER 
REG_TEXCRDOUT 
REG_OPOS 
REG_OFOG 
REG_OPTS 
REG_VERTEXCOLOR 
REG_FRAGCOLOR 
REG_FRAGDEPTH 
REG_VPOS 
REG_VFACE 
REG_ADDRESS 
REG_LOOP 
REG_PREDICATE 
REG_LABEL 
VER_VS10 
VER_VS11 
VER_VS20 
VER_VS2X 
VER_VS30 
VER_PS10 
VER_PS11 
VER_PS12 
VER_PS13 
VER_PS14 
VER_PS20 
VER_PS2X 
VER_PS30 
SHIFT_X2 
SHIFT_X4 
SHIFT_X8 
SHIFT_D2 
SHIFT_D4 
SHIFT_D8 
MOD_SAT 
MOD_PP 
MOD_CENTROID 
COMP_GT 
COMP_LT 
COMP_GE 
COMP_LE 
COMP_EQ 
COMP_NE 
SMOD_BIAS 
SMOD_SCALEBIAS 
SMOD_DZ 
SMOD_DW 
SMOD_ABS 
SMOD_NOT 
SAMPTYPE_1D 
SAMPTYPE_2D 
SAMPTYPE_CUBE 
SAMPTYPE_VOLUME 
USAGE_POSITION 
USAGE_BLENDWEIGHT 
USAGE_BLENDINDICES 
USAGE_NORMAL 
USAGE_PSIZE 
USAGE_TEXCOORD 
USAGE_TANGENT 
USAGE_BINORMAL 
USAGE_TESSFACTOR 
USAGE_POSITIONT 
USAGE_COLOR 
USAGE_FOG 
USAGE_DEPTH 
USAGE_SAMPLE 
COMPONENT 
IMMVAL 
IMMBOOL 
KW_BLENDSTATE 
KW_BREAK 
KW_BUFFER 
KW_CBUFFER 
KW_COLUMN_MAJOR 
KW_COMPILE 
KW_CONST 
KW_CONTINUE 
KW_DEPTHSTENCILSTATE 
KW_DEPTHSTENCILVIEW 
KW_DISCARD 
KW_DO 
KW_DOUBLE 
KW_ELSE 
KW_EXTERN 
KW_FALSE 
KW_FOR 
KW_GEOMETRYSHADER 
KW_GROUPSHARED 
KW_IF 
KW_IN 
KW_INLINE 
KW_INOUT 
KW_MATRIX 
KW_NAMESPACE 
KW_NOINTERPOLATION 
KW_OUT 
KW_PASS 
KW_PIXELSHADER 
KW_PRECISE 
KW_RASTERIZERSTATE 
KW_RENDERTARGETVIEW 
KW_RETURN 
KW_REGISTER 
KW_ROW_MAJOR 
KW_SAMPLER 
KW_SAMPLER1D 
KW_SAMPLER2D 
KW_SAMPLER3D 
KW_SAMPLERCUBE 
KW_SAMPLER_STATE 
KW_SAMPLERCOMPARISONSTATE 
KW_SHARED 
KW_STATEBLOCK 
KW_STATEBLOCK_STATE 
KW_STATIC 
KW_STRING 
KW_STRUCT 
KW_SWITCH 
KW_TBUFFER 
KW_TECHNIQUE 
KW_TECHNIQUE10 
KW_TEXTURE 
KW_TEXTURE1D 
KW_TEXTURE1DARRAY 
KW_TEXTURE2D 
KW_TEXTURE2DARRAY 
KW_TEXTURE2DMS 
KW_TEXTURE2DMSARRAY 
KW_TEXTURE3D 
KW_TEXTURE3DARRAY 
KW_TEXTURECUBE 
KW_TRUE 
KW_TYPEDEF 
KW_UNIFORM 
KW_VECTOR 
KW_VERTEXSHADER 
KW_VOID 
KW_VOLATILE 
KW_WHILE 
OP_INC 
OP_DEC 
OP_AND 
OP_OR 
OP_EQ 
OP_LEFTSHIFT 
OP_LEFTSHIFTASSIGN 
OP_RIGHTSHIFT 
OP_RIGHTSHIFTASSIGN 
OP_ELLIPSIS 
OP_LE 
OP_GE 
OP_NE 
OP_ADDASSIGN 
OP_SUBASSIGN 
OP_MULASSIGN 
OP_DIVASSIGN 
OP_MODASSIGN 
OP_ANDASSIGN 
OP_ORASSIGN 
OP_XORASSIGN 
OP_UNKNOWN1 
OP_UNKNOWN2 
OP_UNKNOWN3 
OP_UNKNOWN4 
PRE_LINE 
VAR_IDENTIFIER 
TYPE_IDENTIFIER 
NEW_IDENTIFIER 
STRING 
C_FLOAT 
C_INTEGER 
KW_BLENDSTATE 
KW_BREAK 
KW_BUFFER 
KW_CBUFFER 
KW_COLUMN_MAJOR 
KW_COMPILE 
KW_CONST 
KW_CONTINUE 
KW_DEPTHSTENCILSTATE 
KW_DEPTHSTENCILVIEW 
KW_DISCARD 
KW_DO 
KW_DOUBLE 
KW_ELSE 
KW_EXTERN 
KW_FALSE 
KW_FOR 
KW_GEOMETRYSHADER 
KW_GROUPSHARED 
KW_IF 
KW_IN 
KW_INLINE 
KW_INOUT 
KW_MATRIX 
KW_NAMESPACE 
KW_NOINTERPOLATION 
KW_OUT 
KW_PASS 
KW_PIXELSHADER 
KW_PRECISE 
KW_RASTERIZERSTATE 
KW_RENDERTARGETVIEW 
KW_RETURN 
KW_REGISTER 
KW_ROW_MAJOR 
KW_SAMPLER 
KW_SAMPLER1D 
KW_SAMPLER2D 
KW_SAMPLER3D 
KW_SAMPLERCUBE 
KW_SAMPLER_STATE 
KW_SAMPLERCOMPARISONSTATE 
KW_SHARED 
KW_STATEBLOCK 
KW_STATEBLOCK_STATE 
KW_STATIC 
KW_STRING 
KW_STRUCT 
KW_SWITCH 
KW_TBUFFER 
KW_TECHNIQUE 
KW_TECHNIQUE10 
KW_TEXTURE 
KW_TEXTURE1D 
KW_TEXTURE1DARRAY 
KW_TEXTURE2D 
KW_TEXTURE2DARRAY 
KW_TEXTURE2DMS 
KW_TEXTURE2DMSARRAY 
KW_TEXTURE3D 
KW_TEXTURE3DARRAY 
KW_TEXTURECUBE 
KW_TRUE 
KW_TYPEDEF 
KW_UNIFORM 
KW_VECTOR 
KW_VERTEXSHADER 
KW_VOID 
KW_VOLATILE 
KW_WHILE 
OP_INC 
OP_DEC 
OP_AND 
OP_OR 
OP_EQ 
OP_LEFTSHIFT 
OP_LEFTSHIFTASSIGN 
OP_RIGHTSHIFT 
OP_RIGHTSHIFTASSIGN 
OP_ELLIPSIS 
OP_LE 
OP_GE 
OP_NE 
OP_ADDASSIGN 
OP_SUBASSIGN 
OP_MULASSIGN 
OP_DIVASSIGN 
OP_MODASSIGN 
OP_ANDASSIGN 
OP_ORASSIGN 
OP_XORASSIGN 
OP_UNKNOWN1 
OP_UNKNOWN2 
OP_UNKNOWN3 
OP_UNKNOWN4 
PRE_LINE 
VAR_IDENTIFIER 
TYPE_IDENTIFIER 
NEW_IDENTIFIER 
STRING 
C_FLOAT 
C_INTEGER 
tRCINCLUDE 
tIF 
tIFDEF 
tIFNDEF 
tELSE 
tELIF 
tENDIF 
tDEFINED 
tNL 
tINCLUDE 
tLINE 
tGCCLINE 
tERROR 
tWARNING 
tPRAGMA 
tPPIDENT 
tUNDEF 
tMACROEND 
tCONCAT 
tELIPSIS 
tSTRINGIZE 
tIDENT 
tLITERAL 
tMACRO 
tDEFINE 
tDQSTRING 
tSQSTRING 
tIQSTRING 
tUINT 
tSINT 
tULONG 
tSLONG 
tULONGLONG 
tSLONGLONG 
tRCINCLUDEPATH 
tLOGOR 
tLOGAND 
tEQ 
tNE 
tLTE 
tGTE 
tLSHIFT 
tRSHIFT 
tRCINCLUDE 
tIF 
tIFDEF 
tIFNDEF 
tELSE 
tELIF 
tENDIF 
tDEFINED 
tNL 
tINCLUDE 
tLINE 
tGCCLINE 
tERROR 
tWARNING 
tPRAGMA 
tPPIDENT 
tUNDEF 
tMACROEND 
tCONCAT 
tELIPSIS 
tSTRINGIZE 
tIDENT 
tLITERAL 
tMACRO 
tDEFINE 
tDQSTRING 
tSQSTRING 
tIQSTRING 
tUINT 
tSINT 
tULONG 
tSLONG 
tULONGLONG 
tSLONGLONG 
tRCINCLUDEPATH 
tLOGOR 
tLOGAND 
tEQ 
tNE 
tLTE 
tGTE 
tLSHIFT 
tRSHIFT 
tEQ 
tEQEQ 
tNEQ 
tNEQEQ 
tLSHIFT 
tRSHIFT 
tRRSHIFT 
tOR 
tAND 
tLEQ 
tGEQ 
tCCValue 
tEQ 
tEQEQ 
tNEQ 
tNEQEQ 
tLSHIFT 
tRSHIFT 
tRRSHIFT 
tOR 
tAND 
tLEQ 
tGEQ 
tCCValue 
kBREAK 
kCASE 
kCATCH 
kCONTINUE 
kDEFAULT 
kDELETE 
kDO 
kELSE 
kFUNCTION 
kIF 
kFINALLY 
kFOR 
kGET 
kIN 
kSET 
kINSTANCEOF 
kNEW 
kNULL 
kRETURN 
kSWITCH 
kTHIS 
kTHROW 
kTRUE 
kFALSE 
kTRY 
kTYPEOF 
kVAR 
kVOID 
kWHILE 
kWITH 
tANDAND 
tOROR 
tINC 
tDEC 
tHTMLCOMMENT 
kDIVEQ 
kDCOL 
tIdentifier 
tAssignOper 
tEqOper 
tShiftOper 
tRelOper 
tNumericLiteral 
tBooleanLiteral 
tStringLiteral 
tEOF 
LOWER_THAN_ELSE 
kBREAK 
kCASE 
kCATCH 
kCONTINUE 
kDEFAULT 
kDELETE 
kDO 
kELSE 
kFUNCTION 
kIF 
kFINALLY 
kFOR 
kGET 
kIN 
kSET 
kINSTANCEOF 
kNEW 
kNULL 
kRETURN 
kSWITCH 
kTHIS 
kTHROW 
kTRUE 
kFALSE 
kTRY 
kTYPEOF 
kVAR 
kVOID 
kWHILE 
kWITH 
tANDAND 
tOROR 
tINC 
tDEC 
tHTMLCOMMENT 
kDIVEQ 
kDCOL 
tIdentifier 
tAssignOper 
tEqOper 
tShiftOper 
tRelOper 
tNumericLiteral 
tBooleanLiteral 
tStringLiteral 
tEOF 
LOWER_THAN_ELSE 
COND_SPACE 
COND_EOF 
COND_OR 
COND_AND 
COND_NOT 
COND_XOR 
COND_IMP 
COND_EQV 
COND_LT 
COND_GT 
COND_EQ 
COND_NE 
COND_GE 
COND_LE 
COND_ILT 
COND_IGT 
COND_IEQ 
COND_INE 
COND_IGE 
COND_ILE 
COND_LPAR 
COND_RPAR 
COND_TILDA 
COND_SS 
COND_ISS 
COND_ILHS 
COND_IRHS 
COND_LHS 
COND_RHS 
COND_PERCENT 
COND_DOLLARS 
COND_QUESTION 
COND_AMPER 
COND_EXCLAM 
COND_IDENT 
COND_NUMBER 
COND_LITER 
COND_ERROR 
TK_ALTER 
TK_AND 
TK_BY 
TK_CHAR 
TK_COMMA 
TK_CREATE 
TK_DELETE 
TK_DROP 
TK_DISTINCT 
TK_DOT 
TK_EQ 
TK_FREE 
TK_FROM 
TK_GE 
TK_GT 
TK_HOLD 
TK_ADD 
TK_ID 
TK_ILLEGAL 
TK_INSERT 
TK_INT 
TK_INTEGER 
TK_INTO 
TK_IS 
TK_KEY 
TK_LE 
TK_LONG 
TK_LONGCHAR 
TK_LP 
TK_LT 
TK_LOCALIZABLE 
TK_MINUS 
TK_NE 
TK_NOT 
TK_NULL 
TK_OBJECT 
TK_OR 
TK_ORDER 
TK_PRIMARY 
TK_RP 
TK_SELECT 
TK_SET 
TK_SHORT 
TK_SPACE 
TK_STAR 
TK_STRING 
TK_TABLE 
TK_TEMPORARY 
TK_UPDATE 
TK_VALUES 
TK_WHERE 
TK_WILDCARD 
END_OF_FILE 
ILLEGAL 
SPACE 
UNCLOSED_STRING 
COMMENT 
FUNCTION 
COLUMN 
TK_LIKE 
TK_NEGATION 
TK_ALTER 
TK_AND 
TK_BY 
TK_CHAR 
TK_COMMA 
TK_CREATE 
TK_DELETE 
TK_DROP 
TK_DISTINCT 
TK_DOT 
TK_EQ 
TK_FREE 
TK_FROM 
TK_GE 
TK_GT 
TK_HOLD 
TK_ADD 
TK_ID 
TK_ILLEGAL 
TK_INSERT 
TK_INT 
TK_INTEGER 
TK_INTO 
TK_IS 
TK_KEY 
TK_LE 
TK_LONG 
TK_LONGCHAR 
TK_LP 
TK_LT 
TK_LOCALIZABLE 
TK_MINUS 
TK_NE 
TK_NOT 
TK_NULL 
TK_OBJECT 
TK_OR 
TK_ORDER 
TK_PRIMARY 
TK_RP 
TK_SELECT 
TK_SET 
TK_SHORT 
TK_SPACE 
TK_STAR 
TK_STRING 
TK_TABLE 
TK_TEMPORARY 
TK_UPDATE 
TK_VALUES 
TK_WHERE 
TK_WILDCARD 
END_OF_FILE 
ILLEGAL 
SPACE 
UNCLOSED_STRING 
COMMENT 
FUNCTION 
COLUMN 
TK_LIKE 
TK_NEGATION 
TOK_Parent 
TOK_Self 
TOK_DblFSlash 
TOK_FSlash 
TOK_Axis 
TOK_Colon 
TOK_OpAnd 
TOK_OpOr 
TOK_OpNot 
TOK_OpEq 
TOK_OpIEq 
TOK_OpNEq 
TOK_OpINEq 
TOK_OpLt 
TOK_OpILt 
TOK_OpGt 
TOK_OpIGt 
TOK_OpLEq 
TOK_OpILEq 
TOK_OpGEq 
TOK_OpIGEq 
TOK_OpAll 
TOK_OpAny 
TOK_NCName 
TOK_Literal 
TOK_Number 
tEXPRESSION 
tEOF 
tNL 
tEMPTYBRACKETS 
tLTEQ 
tGTEQ 
tNEQ 
tSTOP 
tME 
tREM 
tTRUE 
tFALSE 
tNOT 
tAND 
tOR 
tXOR 
tEQV 
tIMP 
tIS 
tMOD 
tCALL 
tDIM 
tSUB 
tFUNCTION 
tGET 
tLET 
tCONST 
tIF 
tELSE 
tELSEIF 
tEND 
tTHEN 
tEXIT 
tWHILE 
tWEND 
tDO 
tLOOP 
tUNTIL 
tFOR 
tTO 
tEACH 
tIN 
tSELECT 
tCASE 
tBYREF 
tBYVAL 
tOPTION 
tNOTHING 
tEMPTY 
tNULL 
tCLASS 
tSET 
tNEW 
tPUBLIC 
tPRIVATE 
tNEXT 
tON 
tRESUME 
tGOTO 
tIdentifier 
tString 
tDEFAULT 
tERROR 
tEXPLICIT 
tPROPERTY 
tSTEP 
tInt 
tDouble 
tEXPRESSION 
tEOF 
tNL 
tEMPTYBRACKETS 
tLTEQ 
tGTEQ 
tNEQ 
tSTOP 
tME 
tREM 
tTRUE 
tFALSE 
tNOT 
tAND 
tOR 
tXOR 
tEQV 
tIMP 
tIS 
tMOD 
tCALL 
tDIM 
tSUB 
tFUNCTION 
tGET 
tLET 
tCONST 
tIF 
tELSE 
tELSEIF 
tEND 
tTHEN 
tEXIT 
tWHILE 
tWEND 
tDO 
tLOOP 
tUNTIL 
tFOR 
tTO 
tEACH 
tIN 
tSELECT 
tCASE 
tBYREF 
tBYVAL 
tOPTION 
tNOTHING 
tEMPTY 
tNULL 
tCLASS 
tSET 
tNEW 
tPUBLIC 
tPRIVATE 
tNEXT 
tON 
tRESUME 
tGOTO 
tIdentifier 
tString 
tDEFAULT 
tERROR 
tEXPLICIT 
tPROPERTY 
tSTEP 
tInt 
tDouble 
TK_SELECT 
TK_FROM 
TK_STAR 
TK_COMMA 
TK_DOT 
TK_IS 
TK_LP 
TK_RP 
TK_NULL 
TK_FALSE 
TK_TRUE 
TK_INTEGER 
TK_WHERE 
TK_SPACE 
TK_MINUS 
TK_ILLEGAL 
TK_BY 
TK_ASSOCIATORS 
TK_OF 
TK_STRING 
TK_ID 
TK_PATH 
TK_OR 
TK_AND 
TK_NOT 
TK_EQ 
TK_NE 
TK_LT 
TK_GT 
TK_LE 
TK_GE 
TK_LIKE 
TK_SELECT 
TK_FROM 
TK_STAR 
TK_COMMA 
TK_DOT 
TK_IS 
TK_LP 
TK_RP 
TK_NULL 
TK_FALSE 
TK_TRUE 
TK_INTEGER 
TK_WHERE 
TK_SPACE 
TK_MINUS 
TK_ILLEGAL 
TK_BY 
TK_ASSOCIATORS 
TK_OF 
TK_STRING 
TK_ID 
TK_PATH 
TK_OR 
TK_AND 
TK_NOT 
TK_EQ 
TK_NE 
TK_LT 
TK_GT 
TK_LE 
TK_GE 
TK_LIKE 
aIDENTIFIER 
aPRAGMA 
aKNOWNTYPE 
aNUM 
aHEXNUM 
aDOUBLE 
aSTRING 
aWSTRING 
aSQSTRING 
aUUID 
aEOF 
aACF 
SHL 
SHR 
MEMBERPTR 
EQUALITY 
INEQUALITY 
GREATEREQUAL 
LESSEQUAL 
LOGICALOR 
LOGICALAND 
ELLIPSIS 
tAGGREGATABLE 
tALLOCATE 
tANNOTATION 
tAPPOBJECT 
tASYNC 
tASYNCUUID 
tAUTOHANDLE 
tBINDABLE 
tBOOLEAN 
tBROADCAST 
tBYTE 
tBYTECOUNT 
tCALLAS 
tCALLBACK 
tCASE 
tCDECL 
tCHAR 
tCOCLASS 
tCODE 
tCOMMSTATUS 
tCONST 
tCONTEXTHANDLE 
tCONTEXTHANDLENOSERIALIZE 
tCONTEXTHANDLESERIALIZE 
tCONTROL 
tCPPQUOTE 
tDECODE 
tDEFAULT 
tDEFAULTBIND 
tDEFAULTCOLLELEM 
tDEFAULTVALUE 
tDEFAULTVTABLE 
tDISABLECONSISTENCYCHECK 
tDISPLAYBIND 
tDISPINTERFACE 
tDLLNAME 
tDOUBLE 
tDUAL 
tENABLEALLOCATE 
tENCODE 
tENDPOINT 
tENTRY 
tENUM 
tERRORSTATUST 
tEXPLICITHANDLE 
tEXTERN 
tFALSE 
tFASTCALL 
tFAULTSTATUS 
tFLOAT 
tFORCEALLOCATE 
tHANDLE 
tHANDLET 
tHELPCONTEXT 
tHELPFILE 
tHELPSTRING 
tHELPSTRINGCONTEXT 
tHELPSTRINGDLL 
tHIDDEN 
tHYPER 
tID 
tIDEMPOTENT 
tIGNORE 
tIIDIS 
tIMMEDIATEBIND 
tIMPLICITHANDLE 
tIMPORT 
tIMPORTLIB 
tIN 
tIN_LINE 
tINLINE 
tINPUTSYNC 
tINT 
tINT32 
tINT3264 
tINT64 
tINTERFACE 
tLCID 
tLENGTHIS 
tLIBRARY 
tLICENSED 
tLOCAL 
tLONG 
tMAYBE 
tMESSAGE 
tMETHODS 
tMODULE 
tNAMESPACE 
tNOCODE 
tNONBROWSABLE 
tNONCREATABLE 
tNONEXTENSIBLE 
tNOTIFY 
tNOTIFYFLAG 
tNULL 
tOBJECT 
tODL 
tOLEAUTOMATION 
tOPTIMIZE 
tOPTIONAL 
tOUT 
tPARTIALIGNORE 
tPASCAL 
tPOINTERDEFAULT 
tPRAGMA_WARNING 
tPROGID 
tPROPERTIES 
tPROPGET 
tPROPPUT 
tPROPPUTREF 
tPROXY 
tPTR 
tPUBLIC 
tRANGE 
tREADONLY 
tREF 
tREGISTER 
tREPRESENTAS 
tREQUESTEDIT 
tRESTRICTED 
tRETVAL 
tSAFEARRAY 
tSHORT 
tSIGNED 
tSIZEIS 
tSIZEOF 
tSMALL 
tSOURCE 
tSTATIC 
tSTDCALL 
tSTRICTCONTEXTHANDLE 
tSTRING 
tSTRUCT 
tSWITCH 
tSWITCHIS 
tSWITCHTYPE 
tTHREADING 
tTRANSMITAS 
tTRUE 
tTYPEDEF 
tUIDEFAULT 
tUNION 
tUNIQUE 
tUNSIGNED 
tUSESGETLASTERROR 
tUSERMARSHAL 
tUUID 
tV1ENUM 
tVARARG 
tVERSION 
tVIPROGID 
tVOID 
tWCHAR 
tWIREMARSHAL 
tAPARTMENT 
tNEUTRAL 
tSINGLE 
tFREE 
tBOTH 
CAST 
PPTR 
POS 
NEG 
ADDRESSOF 
aIDENTIFIER 
aPRAGMA 
aKNOWNTYPE 
aNUM 
aHEXNUM 
aDOUBLE 
aSTRING 
aWSTRING 
aSQSTRING 
aUUID 
aEOF 
aACF 
SHL 
SHR 
MEMBERPTR 
EQUALITY 
INEQUALITY 
GREATEREQUAL 
LESSEQUAL 
LOGICALOR 
LOGICALAND 
ELLIPSIS 
tAGGREGATABLE 
tALLOCATE 
tANNOTATION 
tAPPOBJECT 
tASYNC 
tASYNCUUID 
tAUTOHANDLE 
tBINDABLE 
tBOOLEAN 
tBROADCAST 
tBYTE 
tBYTECOUNT 
tCALLAS 
tCALLBACK 
tCASE 
tCDECL 
tCHAR 
tCOCLASS 
tCODE 
tCOMMSTATUS 
tCONST 
tCONTEXTHANDLE 
tCONTEXTHANDLENOSERIALIZE 
tCONTEXTHANDLESERIALIZE 
tCONTROL 
tCPPQUOTE 
tDECODE 
tDEFAULT 
tDEFAULTBIND 
tDEFAULTCOLLELEM 
tDEFAULTVALUE 
tDEFAULTVTABLE 
tDISABLECONSISTENCYCHECK 
tDISPLAYBIND 
tDISPINTERFACE 
tDLLNAME 
tDOUBLE 
tDUAL 
tENABLEALLOCATE 
tENCODE 
tENDPOINT 
tENTRY 
tENUM 
tERRORSTATUST 
tEXPLICITHANDLE 
tEXTERN 
tFALSE 
tFASTCALL 
tFAULTSTATUS 
tFLOAT 
tFORCEALLOCATE 
tHANDLE 
tHANDLET 
tHELPCONTEXT 
tHELPFILE 
tHELPSTRING 
tHELPSTRINGCONTEXT 
tHELPSTRINGDLL 
tHIDDEN 
tHYPER 
tID 
tIDEMPOTENT 
tIGNORE 
tIIDIS 
tIMMEDIATEBIND 
tIMPLICITHANDLE 
tIMPORT 
tIMPORTLIB 
tIN 
tIN_LINE 
tINLINE 
tINPUTSYNC 
tINT 
tINT32 
tINT3264 
tINT64 
tINTERFACE 
tLCID 
tLENGTHIS 
tLIBRARY 
tLICENSED 
tLOCAL 
tLONG 
tMAYBE 
tMESSAGE 
tMETHODS 
tMODULE 
tNAMESPACE 
tNOCODE 
tNONBROWSABLE 
tNONCREATABLE 
tNONEXTENSIBLE 
tNOTIFY 
tNOTIFYFLAG 
tNULL 
tOBJECT 
tODL 
tOLEAUTOMATION 
tOPTIMIZE 
tOPTIONAL 
tOUT 
tPARTIALIGNORE 
tPASCAL 
tPOINTERDEFAULT 
tPRAGMA_WARNING 
tPROGID 
tPROPERTIES 
tPROPGET 
tPROPPUT 
tPROPPUTREF 
tPROXY 
tPTR 
tPUBLIC 
tRANGE 
tREADONLY 
tREF 
tREGISTER 
tREPRESENTAS 
tREQUESTEDIT 
tRESTRICTED 
tRETVAL 
tSAFEARRAY 
tSHORT 
tSIGNED 
tSIZEIS 
tSIZEOF 
tSMALL 
tSOURCE 
tSTATIC 
tSTDCALL 
tSTRICTCONTEXTHANDLE 
tSTRING 
tSTRUCT 
tSWITCH 
tSWITCHIS 
tSWITCHTYPE 
tTHREADING 
tTRANSMITAS 
tTRUE 
tTYPEDEF 
tUIDEFAULT 
tUNION 
tUNIQUE 
tUNSIGNED 
tUSESGETLASTERROR 
tUSERMARSHAL 
tUUID 
tV1ENUM 
tVARARG 
tVERSION 
tVIPROGID 
tVOID 
tWCHAR 
tWIREMARSHAL 
tAPARTMENT 
tNEUTRAL 
tSINGLE 
tFREE 
tBOTH 
CAST 
PPTR 
POS 
NEG 
ADDRESSOF 
tRCINCLUDE 
tIF 
tIFDEF 
tIFNDEF 
tELSE 
tELIF 
tENDIF 
tDEFINED 
tNL 
tINCLUDE 
tLINE 
tGCCLINE 
tERROR 
tWARNING 
tPRAGMA 
tPPIDENT 
tUNDEF 
tMACROEND 
tCONCAT 
tELIPSIS 
tSTRINGIZE 
tIDENT 
tLITERAL 
tMACRO 
tDEFINE 
tDQSTRING 
tSQSTRING 
tIQSTRING 
tUINT 
tSINT 
tULONG 
tSLONG 
tULONGLONG 
tSLONGLONG 
tRCINCLUDEPATH 
tLOGOR 
tLOGAND 
tEQ 
tNE 
tLTE 
tGTE 
tLSHIFT 
tRSHIFT 
tRCINCLUDE 
tIF 
tIFDEF 
tIFNDEF 
tELSE 
tELIF 
tENDIF 
tDEFINED 
tNL 
tINCLUDE 
tLINE 
tGCCLINE 
tERROR 
tWARNING 
tPRAGMA 
tPPIDENT 
tUNDEF 
tMACROEND 
tCONCAT 
tELIPSIS 
tSTRINGIZE 
tIDENT 
tLITERAL 
tMACRO 
tDEFINE 
tDQSTRING 
tSQSTRING 
tIQSTRING 
tUINT 
tSINT 
tULONG 
tSLONG 
tULONGLONG 
tSLONGLONG 
tRCINCLUDEPATH 
tLOGOR 
tLOGAND 
tEQ 
tNE 
tLTE 
tGTE 
tLSHIFT 
tRSHIFT 

Definition at line 217 of file cond.tab.c.

218  {
219  COND_SPACE = 258,
220  COND_EOF = 259,
221  COND_OR = 260,
222  COND_AND = 261,
223  COND_NOT = 262,
224  COND_XOR = 263,
225  COND_IMP = 264,
226  COND_EQV = 265,
227  COND_LT = 266,
228  COND_GT = 267,
229  COND_EQ = 268,
230  COND_NE = 269,
231  COND_GE = 270,
232  COND_LE = 271,
233  COND_ILT = 272,
234  COND_IGT = 273,
235  COND_IEQ = 274,
236  COND_INE = 275,
237  COND_IGE = 276,
238  COND_ILE = 277,
239  COND_LPAR = 278,
240  COND_RPAR = 279,
241  COND_TILDA = 280,
242  COND_SS = 281,
243  COND_ISS = 282,
244  COND_ILHS = 283,
245  COND_IRHS = 284,
246  COND_LHS = 285,
247  COND_RHS = 286,
248  COND_PERCENT = 287,
249  COND_DOLLARS = 288,
250  COND_QUESTION = 289,
251  COND_AMPER = 290,
252  COND_EXCLAM = 291,
253  COND_IDENT = 292,
254  COND_NUMBER = 293,
255  COND_LITER = 294,
256  COND_ERROR = 295
257  };

Function Documentation

◆ compare_int()

static INT compare_int ( INT  a,
INT  operator,
INT  b 
)
static

Definition at line 2198 of file cond.tab.c.

2199 {
2200  switch (operator)
2201  {
2202  case COND_LT:
2203  case COND_ILT:
2204  return a < b;
2205  case COND_GT:
2206  case COND_IGT:
2207  return a > b;
2208  case COND_EQ:
2209  case COND_IEQ:
2210  return a == b;
2211  case COND_NE:
2212  case COND_INE:
2213  return a != b;
2214  case COND_GE:
2215  case COND_IGE:
2216  return a >= b;
2217  case COND_LE:
2218  case COND_ILE:
2219  return a <= b;
2220  case COND_SS:
2221  case COND_ISS:
2222  return ( a & b ) ? 1 : 0;
2223  case COND_RHS:
2224  return ( ( a & 0xffff ) == b ) ? 1 : 0;
2225  case COND_LHS:
2226  return ( ( (a>>16) & 0xffff ) == b ) ? 1 : 0;
2227  default:
2228  ERR("invalid integer operator\n");
2229  return 0;
2230  }
2231  return 0;
2232 }
#define b
Definition: ke_i.h:79
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
#define ERR(fmt,...)
Definition: debug.h:109
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204

Referenced by compare_string(), compare_substring(), and yyparse().

◆ compare_string()

static INT compare_string ( LPCWSTR  a,
INT  operator,
LPCWSTR  b,
BOOL  convert 
)
static

Definition at line 2151 of file cond.tab.c.

2152 {
2153  if (operator >= COND_SS && operator <= COND_RHS)
2154  return compare_substring( a, operator, b );
2155 
2156  /* null and empty string are equivalent */
2157  if (!a) a = szEmpty;
2158  if (!b) b = szEmpty;
2159 
2160  if (convert && str_is_number(a) && str_is_number(b))
2161  return compare_int( atoiW(a), operator, atoiW(b) );
2162 
2163  /* a or b may be NULL */
2164  switch (operator)
2165  {
2166  case COND_LT:
2167  return strcmpW( a, b ) < 0;
2168  case COND_GT:
2169  return strcmpW( a, b ) > 0;
2170  case COND_EQ:
2171  return strcmpW( a, b ) == 0;
2172  case COND_NE:
2173  return strcmpW( a, b ) != 0;
2174  case COND_GE:
2175  return strcmpW( a, b ) >= 0;
2176  case COND_LE:
2177  return strcmpW( a, b ) <= 0;
2178  case COND_ILT:
2179  return strcmpiW( a, b ) < 0;
2180  case COND_IGT:
2181  return strcmpiW( a, b ) > 0;
2182  case COND_IEQ:
2183  return strcmpiW( a, b ) == 0;
2184  case COND_INE:
2185  return strcmpiW( a, b ) != 0;
2186  case COND_IGE:
2187  return strcmpiW( a, b ) >= 0;
2188  case COND_ILE:
2189  return strcmpiW( a, b ) <= 0;
2190  default:
2191  ERR("invalid string operator\n");
2192  return 0;
2193  }
2194  return 0;
2195 }
static INT compare_int(INT a, INT operator, INT b)
Definition: cond.tab.c:2198
static BOOL str_is_number(LPCWSTR str)
Definition: cond.tab.c:2078
static const WCHAR szEmpty[]
Definition: provider.c:50
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
int convert
Definition: msacm.c:1374
#define strcmpiW(s1, s2)
Definition: unicode.h:39
#define ERR(fmt,...)
Definition: debug.h:109
WINE_UNICODE_INLINE int strcmpW(const WCHAR *str1, const WCHAR *str2)
Definition: unicode.h:229
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
WINE_UNICODE_INLINE int atoiW(const WCHAR *str)
Definition: unicode.h:315
static INT compare_substring(LPCWSTR a, INT operator, LPCWSTR b)
Definition: cond.tab.c:2092

Referenced by yyparse().

◆ compare_substring()

static INT compare_substring ( LPCWSTR  a,
INT  operator,
LPCWSTR  b 
)
static

Definition at line 2092 of file cond.tab.c.

2093 {
2094  int lhs, rhs;
2095 
2096  /* substring operators return 0 if LHS is missing */
2097  if (!a || !*a)
2098  return 0;
2099 
2100  /* substring operators return 1 if RHS is missing */
2101  if (!b || !*b)
2102  return 1;
2103 
2104  /* if both strings contain only numbers, use integer comparison */
2105  lhs = atoiW(a);
2106  rhs = atoiW(b);
2107  if (str_is_number(a) && str_is_number(b))
2108  return compare_int( lhs, operator, rhs );
2109 
2110  switch (operator)
2111  {
2112  case COND_SS:
2113  return strstrW( a, b ) != 0;
2114  case COND_ISS:
2115  return strstriW( a, b ) != 0;
2116  case COND_LHS:
2117  {
2118  int l = strlenW( a );
2119  int r = strlenW( b );
2120  if (r > l) return 0;
2121  return !strncmpW( a, b, r );
2122  }
2123  case COND_RHS:
2124  {
2125  int l = strlenW( a );
2126  int r = strlenW( b );
2127  if (r > l) return 0;
2128  return !strncmpW( a + (l - r), b, r );
2129  }
2130  case COND_ILHS:
2131  {
2132  int l = strlenW( a );
2133  int r = strlenW( b );
2134  if (r > l) return 0;
2135  return !strncmpiW( a, b, r );
2136  }
2137  case COND_IRHS:
2138  {
2139  int l = strlenW( a );
2140  int r = strlenW( b );
2141  if (r > l) return 0;
2142  return !strncmpiW( a + (l - r), b, r );
2143  }
2144  default:
2145  ERR("invalid substring operator\n");
2146  return 0;
2147  }
2148  return 0;
2149 }
static INT compare_int(INT a, INT operator, INT b)
Definition: cond.tab.c:2198
WINE_UNICODE_INLINE unsigned int strlenW(const WCHAR *str)
Definition: unicode.h:212
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
static BOOL str_is_number(LPCWSTR str)
Definition: cond.tab.c:2078
#define strncmpiW(s1, s2, n)
Definition: unicode.h:40
WINE_UNICODE_INLINE int strncmpW(const WCHAR *str1, const WCHAR *str2, int n)
Definition: unicode.h:235
#define strstrW(d, s)
Definition: unicode.h:32
static WCHAR * strstriW(const WCHAR *str, const WCHAR *sub)
Definition: cond.tab.c:2065
r l[0]
Definition: byte_order.h:167
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
#define ERR(fmt,...)
Definition: debug.h:109
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6204
WINE_UNICODE_INLINE int atoiW(const WCHAR *str)
Definition: unicode.h:315

Referenced by compare_string().

◆ cond_alloc()

static void * cond_alloc ( COND_input cond,
unsigned int  sz 
)
static

Definition at line 2413 of file cond.tab.c.

2414 {
2415  struct list *mem;
2416 
2417  mem = msi_alloc( sizeof (struct list) + sz );
2418  if( !mem )
2419  return NULL;
2420 
2421  list_add_head( &(cond->mem), mem );
2422  return mem + 1;
2423 }
__WINE_SERVER_LIST_INLINE void list_add_head(struct list *list, struct list *elem)
Definition: list.h:96
smooth NULL
Definition: ftsmooth.c:416
struct list mem
Definition: cond.tab.c:124
Definition: _list.h:228
Definition: mem.c:156
static void * msi_alloc(size_t len) __WINE_ALLOC_SIZE(1)
Definition: msipriv.h:1204

Referenced by COND_GetLiteral(), COND_GetString(), cond_track_mem(), and yyparse().

◆ cond_error()

static int cond_error ( COND_input info,
const char str 
)
static

Definition at line 2455 of file cond.tab.c.

2456 {
2457  TRACE("%s\n", str );
2458  return 0;
2459 }
const WCHAR * str
#define TRACE(s)
Definition: solgame.cpp:4

◆ cond_free()

static void cond_free ( void ptr)
static

Definition at line 2444 of file cond.tab.c.

2445 {
2446  struct list *mem = (struct list *)ptr - 1;
2447 
2448  if( ptr )
2449  {
2450  list_remove( mem );
2451  msi_free( mem );
2452  }
2453 }
static PVOID ptr
Definition: dispmode.c:27
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
Definition: list.h:108
Definition: _list.h:228
Definition: mem.c:156
static BOOL msi_free(void *mem)
Definition: msipriv.h:1227

Referenced by MSI_EvaluateConditionW(), value_free(), and yyparse().

◆ COND_GetLiteral()

static LPWSTR COND_GetLiteral ( COND_input info,
const struct cond_str str 
)
static

Definition at line 2399 of file cond.tab.c.

2400 {
2401  LPWSTR ret;
2402 
2403  ret = cond_alloc( cond, (str->len-1) * sizeof (WCHAR) );
2404  if( ret )
2405  {
2406  memcpy( ret, str->data+1, (str->len-2) * sizeof(WCHAR) );
2407  ret[str->len - 2]=0;
2408  }
2409  TRACE("Got literal %s\n",debugstr_w(ret));
2410  return ret;
2411 }
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
static void * cond_alloc(COND_input *cond, unsigned int sz)
Definition: cond.tab.c:2413
#define debugstr_w
Definition: kernel32.h:32
const WCHAR * str
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
int ret
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by yyparse().

◆ COND_GetOne()

static int COND_GetOne ( struct cond_str str,
COND_input cond 
)
static

Definition at line 2280 of file cond.tab.c.

2281 {
2282  int rc, len = 1;
2283  WCHAR ch;
2284 
2285  str->data = &cond->str[cond->n];
2286 
2287  ch = str->data[0];
2288 
2289  switch( ch )
2290  {
2291  case 0: return 0;
2292  case '(': rc = COND_LPAR; break;
2293  case ')': rc = COND_RPAR; break;
2294  case '&': rc = COND_AMPER; break;
2295  case '!': rc = COND_EXCLAM; break;
2296  case '$': rc = COND_DOLLARS; break;
2297  case '?': rc = COND_QUESTION; break;
2298  case '%': rc = COND_PERCENT; break;
2299  case ' ': rc = COND_SPACE; break;
2300  case '=': rc = COND_EQ; break;
2301 
2302  case '~':
2303  case '<':
2304  case '>':
2305  rc = COND_GetOperator( cond );
2306  if (!rc)
2307  rc = COND_ERROR;
2308  return rc;
2309  default:
2310  rc = 0;
2311  }
2312 
2313  if ( rc )
2314  {
2315  cond->n += len;
2316  return rc;
2317  }
2318 
2319  if (ch == '"' )
2320  {
2321  LPCWSTR p = strchrW( str->data + 1, '"' );
2322  if (!p) return COND_ERROR;
2323  len = p - str->data + 1;
2324  rc = COND_LITER;
2325  }
2326  else if( COND_IsAlpha( ch ) )
2327  {
2328  static const WCHAR szNot[] = {'N','O','T',0};
2329  static const WCHAR szAnd[] = {'A','N','D',0};
2330  static const WCHAR szXor[] = {'X','O','R',0};
2331  static const WCHAR szEqv[] = {'E','Q','V',0};
2332  static const WCHAR szImp[] = {'I','M','P',0};
2333  static const WCHAR szOr[] = {'O','R',0};
2334 
2335  while( COND_IsIdent( str->data[len] ) )
2336  len++;
2337  rc = COND_IDENT;
2338 
2339  if ( len == 3 )
2340  {
2341  if ( !strncmpiW( str->data, szNot, len ) )
2342  rc = COND_NOT;
2343  else if( !strncmpiW( str->data, szAnd, len ) )
2344  rc = COND_AND;
2345  else if( !strncmpiW( str->data, szXor, len ) )
2346  rc = COND_XOR;
2347  else if( !strncmpiW( str->data, szEqv, len ) )
2348  rc = COND_EQV;
2349  else if( !strncmpiW( str->data, szImp, len ) )
2350  rc = COND_IMP;
2351  }
2352  else if( (len == 2) && !strncmpiW( str->data, szOr, len ) )
2353  rc = COND_OR;
2354  }
2355  else if( COND_IsNumber( ch ) )
2356  {
2357  while( COND_IsNumber( str->data[len] ) )
2358  len++;
2359  rc = COND_NUMBER;
2360  }
2361  else
2362  {
2363  ERR("Got unknown character %c(%x)\n",ch,ch);
2364  return COND_ERROR;
2365  }
2366 
2367  cond->n += len;
2368  str->len = len;
2369 
2370  return rc;
2371 }
static int COND_IsAlpha(WCHAR x)
Definition: cond.tab.c:2053
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
WINE_UNICODE_INLINE WCHAR * strchrW(const WCHAR *str, WCHAR ch)
Definition: unicode.h:248
#define strncmpiW(s1, s2, n)
Definition: unicode.h:40
static int COND_IsNumber(WCHAR x)
Definition: cond.tab.c:2060
static int COND_IsIdent(WCHAR x)
Definition: cond.tab.c:2235
const WCHAR * str
__wchar_t WCHAR
Definition: xmlstorage.h:180
GLenum GLsizei len
Definition: glext.h:6722
#define ERR(fmt,...)
Definition: debug.h:109
static int COND_GetOperator(COND_input *cond)
Definition: cond.tab.c:2241
LPCWSTR str
Definition: cond.tab.c:121
GLfloat GLfloat p
Definition: glext.h:8902

Referenced by cond_lex().

◆ COND_GetOperator()

static int COND_GetOperator ( COND_input cond)
static

Definition at line 2241 of file cond.tab.c.

2242 {
2243  static const struct {
2244  const WCHAR str[4];
2245  int id;
2246  } table[] = {
2247  { {'~','<','=',0}, COND_ILE },
2248  { {'~','>','<',0}, COND_ISS },
2249  { {'~','>','>',0}, COND_IRHS },
2250  { {'~','<','>',0}, COND_INE },
2251  { {'~','>','=',0}, COND_IGE },
2252  { {'~','<','<',0}, COND_ILHS },
2253  { {'~','=',0}, COND_IEQ },
2254  { {'~','<',0}, COND_ILT },
2255  { {'~','>',0}, COND_IGT },
2256  { {'>','=',0}, COND_GE },
2257  { {'>','<',0}, COND_SS },
2258  { {'<','<',0}, COND_LHS },
2259  { {'<','>',0}, COND_NE },
2260  { {'<','=',0}, COND_LE },
2261  { {'>','>',0}, COND_RHS },
2262  { {'>',0}, COND_GT },
2263  { {'<',0}, COND_LT },
2264  { {0}, 0 }
2265  };
2266  LPCWSTR p = &cond->str[cond->n];
2267  int i = 0, len;
2268 
2269  while ( 1 )
2270  {
2271  len = lstrlenW( table[i].str );
2272  if ( !len || 0 == strncmpW( table[i].str, p, len ) )
2273  break;
2274  i++;
2275  }
2276  cond->n += len;
2277  return table[i].id;
2278 }
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
#define lstrlenW
Definition: compat.h:415
WINE_UNICODE_INLINE int strncmpW(const WCHAR *str1, const WCHAR *str2, int n)
Definition: unicode.h:235
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
const WCHAR * str
__wchar_t WCHAR
Definition: xmlstorage.h:180
GLenum GLsizei len
Definition: glext.h:6722
LPCWSTR str
Definition: cond.tab.c:121
GLenum GLuint id
Definition: glext.h:5579
GLfloat GLfloat p
Definition: glext.h:8902

Referenced by COND_GetOne().

◆ COND_GetString()

static LPWSTR COND_GetString ( COND_input info,
const struct cond_str str 
)
static

Definition at line 2385 of file cond.tab.c.

2386 {
2387  LPWSTR ret;
2388 
2389  ret = cond_alloc( cond, (str->len+1) * sizeof (WCHAR) );
2390  if( ret )
2391  {
2392  memcpy( ret, str->data, str->len * sizeof(WCHAR));
2393  ret[str->len]=0;
2394  }
2395  TRACE("Got identifier %s\n",debugstr_w(ret));
2396  return ret;
2397 }
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList
static void * cond_alloc(COND_input *cond, unsigned int sz)
Definition: cond.tab.c:2413
#define debugstr_w
Definition: kernel32.h:32
const WCHAR * str
#define TRACE(s)
Definition: solgame.cpp:4
__wchar_t WCHAR
Definition: xmlstorage.h:180
int ret
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by yyparse().

◆ COND_IsAlpha()

static int COND_IsAlpha ( WCHAR  x)
static

Definition at line 2053 of file cond.tab.c.

2054 {
2055  return( ( ( x >= 'A' ) && ( x <= 'Z' ) ) ||
2056  ( ( x >= 'a' ) && ( x <= 'z' ) ) ||
2057  ( ( x == '_' ) ) );
2058 }
GLint GLint GLint GLint GLint x
Definition: gl.h:1548

Referenced by COND_GetOne(), and COND_IsIdent().

◆ COND_IsIdent()

static int COND_IsIdent ( WCHAR  x)
static

Definition at line 2235 of file cond.tab.c.

2236 {
2237  return( COND_IsAlpha( x ) || COND_IsNumber( x ) || ( x == '_' )
2238  || ( x == '#' ) || (x == '.') );
2239 }
static int COND_IsAlpha(WCHAR x)
Definition: cond.tab.c:2053
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
static int COND_IsNumber(WCHAR x)
Definition: cond.tab.c:2060

Referenced by COND_GetOne().

◆ COND_IsNumber()

static int COND_IsNumber ( WCHAR  x)
static

Definition at line 2060 of file cond.tab.c.

2061 {
2062  return( (( x >= '0' ) && ( x <= '9' )) || (x =='-') || (x =='.') );
2063 }
GLint GLint GLint GLint GLint x
Definition: gl.h:1548

Referenced by COND_GetOne(), and COND_IsIdent().

◆ cond_lex()

static int cond_lex ( void COND_lval,
COND_input info 
)
static

Definition at line 2373 of file cond.tab.c.

2374 {
2375  int rc;
2376  struct cond_str *str = COND_lval;
2377 
2378  do {
2379  rc = COND_GetOne( str, cond );
2380  } while (rc == COND_SPACE);
2381 
2382  return rc;
2383 }
static int COND_GetOne(struct cond_str *str, COND_input *cond)
Definition: cond.tab.c:2280
const WCHAR * str

◆ cond_parse()

int cond_parse ( COND_input info)

Referenced by MSI_EvaluateConditionW().

◆ cond_track_mem()

static void * cond_track_mem ( COND_input cond,
void ptr,
unsigned int  sz 
)
static

Definition at line 2425 of file cond.tab.c.

2426 {
2427  void *new_ptr;
2428 
2429  if( !ptr )
2430  return ptr;
2431 
2432  new_ptr = cond_alloc( cond, sz );
2433  if( !new_ptr )
2434  {
2435  msi_free( ptr );
2436  return NULL;
2437  }
2438 
2439  memcpy( new_ptr, ptr, sz );
2440  msi_free( ptr );
2441  return new_ptr;
2442 }
static void * cond_alloc(COND_input *cond, unsigned int sz)
Definition: cond.tab.c:2413
static PVOID ptr
Definition: dispmode.c:27
smooth NULL
Definition: ftsmooth.c:416
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
static BOOL msi_free(void *mem)
Definition: msipriv.h:1227

Referenced by yyparse().

◆ free()

void free ( void )

Definition at line 147 of file cabinet.c.

148 {
150 }
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
Definition: heap.c:606
static PVOID ptr
Definition: dispmode.c:27
HANDLE ProcessHeap
Definition: servman.c:15

◆ malloc()

void* malloc ( YYSIZE_T  )

◆ MSI_EvaluateConditionW()

MSICONDITION MSI_EvaluateConditionW ( MSIPACKAGE package,
LPCWSTR  szCondition 
)

Definition at line 2461 of file cond.tab.c.

2462 {
2463  COND_input cond;
2464  MSICONDITION r;
2465  struct list *mem, *safety;
2466 
2467  TRACE("%s\n", debugstr_w( szCondition ) );
2468 
2469  if (szCondition == NULL) return MSICONDITION_NONE;
2470 
2471  cond.package = package;
2472  cond.str = szCondition;
2473  cond.n = 0;
2474  cond.result = MSICONDITION_ERROR;
2475 
2476  list_init( &cond.mem );
2477 
2478  if ( !cond_parse( &cond ) )
2479  r = cond.result;
2480  else
2482 
2483  LIST_FOR_EACH_SAFE( mem, safety, &cond.mem )
2484  {
2485  /* The tracked memory lives directly after the list struct */
2486  void *ptr = mem + 1;
2487  if ( r != MSICONDITION_ERROR )
2488  WARN( "condition parser failed to free up some memory: %p\n", ptr );
2489  cond_free( ptr );
2490  }
2491 
2492  TRACE("%i <- %s\n", r, debugstr_w(szCondition));
2493  return r;
2494 }
#define LIST_FOR_EACH_SAFE(cursor, cursor2, list)
Definition: list.h:192
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
#define WARN(fmt,...)
Definition: debug.h:111
int cond_parse(COND_input *info)
#define debugstr_w
Definition: kernel32.h:32
static PVOID ptr
Definition: dispmode.c:27
smooth NULL
Definition: ftsmooth.c:416
MSICONDITION result
Definition: cond.tab.c:123
#define TRACE(s)
Definition: solgame.cpp:4
struct list mem
Definition: cond.tab.c:124
MSIPACKAGE * package
Definition: cond.tab.c:120
int MSICONDITION
Definition: msiserver.idl:33
Definition: _list.h:228
static void cond_free(void *ptr)
Definition: cond.tab.c:2444
LPCWSTR str
Definition: cond.tab.c:121
Definition: mem.c:156
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149

Referenced by ACTION_CostFinalize(), ACTION_PerformActionSequence(), ITERATE_Actions(), ITERATE_CostFinalizeConditions(), ITERATE_LaunchConditions(), msi_dialog_control_event(), msi_dialog_set_control_condition(), and MsiEvaluateConditionW().

◆ MsiEvaluateConditionA()

MSICONDITION WINAPI MsiEvaluateConditionA ( MSIHANDLE  hInstall,
LPCSTR  szCondition 
)

Definition at line 2540 of file cond.tab.c.

2541 {
2542  LPWSTR szwCond = NULL;
2543  MSICONDITION r;
2544 
2545  szwCond = strdupAtoW( szCondition );
2546  if( szCondition && !szwCond )
2547  return MSICONDITION_ERROR;
2548 
2549  r = MsiEvaluateConditionW( hInstall, szwCond );
2550  msi_free( szwCond );
2551  return r;
2552 }
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
MSICONDITION WINAPI MsiEvaluateConditionW(MSIHANDLE hInstall, LPCWSTR szCondition)
Definition: cond.tab.c:2496
smooth NULL
Definition: ftsmooth.c:416
int MSICONDITION
Definition: msiserver.idl:33
static BOOL msi_free(void *mem)
Definition: msipriv.h:1227
WCHAR * LPWSTR
Definition: xmlstorage.h:184
static WCHAR * strdupAtoW(const char *str)
Definition: main.c:65

Referenced by test_condition().

◆ MsiEvaluateConditionW()

MSICONDITION WINAPI MsiEvaluateConditionW ( MSIHANDLE  hInstall,
LPCWSTR  szCondition 
)

Definition at line 2496 of file cond.tab.c.

2497 {
2498  MSIPACKAGE *package;
2499  UINT ret;
2500 
2501  package = msihandle2msiinfo( hInstall, MSIHANDLETYPE_PACKAGE);
2502  if( !package )
2503  {
2504  HRESULT hr;
2505  BSTR condition;
2506  IWineMsiRemotePackage *remote_package;
2507 
2508  remote_package = (IWineMsiRemotePackage *)msi_get_remote( hInstall );
2509  if (!remote_package)
2510  return MSICONDITION_ERROR;
2511 
2512  condition = SysAllocString( szCondition );
2513  if (!condition)
2514  {
2515  IWineMsiRemotePackage_Release( remote_package );
2516  return ERROR_OUTOFMEMORY;
2517  }
2518 
2519  hr = IWineMsiRemotePackage_EvaluateCondition( remote_package, condition );
2520 
2522  IWineMsiRemotePackage_Release( remote_package );
2523 
2524  if (FAILED(hr))
2525  {
2527  return HRESULT_CODE(hr);
2528 
2529  return ERROR_FUNCTION_FAILED;
2530  }
2531 
2532  return ERROR_SUCCESS;
2533  }
2534 
2535  ret = MSI_EvaluateConditionW( package, szCondition );
2536  msiobj_release( &package->hdr );
2537  return ret;
2538 }
#define ERROR_SUCCESS
Definition: deptool.c:10
HRESULT hr
Definition: shlfolder.c:183
MSIOBJECTHDR hdr
Definition: msipriv.h:385
OLECHAR * BSTR
Definition: compat.h:1942
#define ERROR_FUNCTION_FAILED
Definition: winerror.h:985
#define HRESULT_FACILITY(hr)
Definition: winerror.h:79
GLenum condition
Definition: glext.h:9255
BSTR WINAPI SysAllocString(LPCOLESTR str)
Definition: oleaut.c:238
LONG HRESULT
Definition: typedefs.h:77
int msiobj_release(MSIOBJECTHDR *info)
Definition: handle.c:242
int ret
#define FACILITY_WIN32
Definition: winerror.h:27
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
Definition: oleaut.c:271
unsigned int UINT
Definition: ndis.h:50
#define HRESULT_CODE(hr)
Definition: winerror.h:76
MSICONDITION MSI_EvaluateConditionW(MSIPACKAGE *package, LPCWSTR szCondition)
Definition: cond.tab.c:2461
IUnknown * msi_get_remote(MSIHANDLE handle)
Definition: handle.c:182
#define ERROR_OUTOFMEMORY
Definition: deptool.c:13

Referenced by mrp_EvaluateCondition(), MsiEvaluateConditionA(), session_invoke(), and test_condition().

◆ num_from_prop()

static BOOL num_from_prop ( LPCWSTR  p,
INT val 
)
static

Definition at line 156 of file cond.tab.c.

157 {
158  INT ret = 0, sign = 1;
159 
160  if (!p)
161  return FALSE;
162  if (*p == '-')
163  {
164  sign = -1;
165  p++;
166  }
167  if (!*p)
168  return FALSE;
169  while (*p)
170  {
171  if( *p < '0' || *p > '9' )
172  return FALSE;
173  ret = ret*10 + (*p - '0');
174  p++;
175  }
176  *val = ret*sign;
177  return TRUE;
178 }
static size_t double int int int * sign
Definition: printf.c:69
#define TRUE
Definition: types.h:120
int32_t INT
Definition: typedefs.h:56
GLuint GLfloat * val
Definition: glext.h:7180
int ret
GLfloat GLfloat p
Definition: glext.h:8902

Referenced by yyparse().

◆ str_is_number()

static BOOL str_is_number ( LPCWSTR  str)
static

Definition at line 2078 of file cond.tab.c.

2079 {
2080  int i;
2081 
2082  if (!*str)
2083  return FALSE;
2084 
2085  for (i = 0; i < lstrlenW( str ); i++)
2086  if (!isdigitW(str[i]))
2087  return FALSE;
2088 
2089  return TRUE;
2090 }
#define TRUE
Definition: types.h:120
#define lstrlenW
Definition: compat.h:415
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
const WCHAR * str
WINE_UNICODE_INLINE int isdigitW(WCHAR wc)
Definition: unicode.h:170

Referenced by compare_string(), and compare_substring().

◆ strstriW()

static WCHAR* strstriW ( const WCHAR str,
const WCHAR sub 
)
static

Definition at line 2065 of file cond.tab.c.

2066 {
2067  LPWSTR strlower, sublower, r;
2068  strlower = CharLowerW( strdupW( str ) );
2069  sublower = CharLowerW( strdupW( sub ) );
2070  r = strstrW( strlower, sublower );
2071  if (r)
2072  r = (LPWSTR)str + (r - strlower);
2073  msi_free( strlower );
2074  msi_free( sublower );
2075  return r;
2076 }
static WCHAR * strdupW(const WCHAR *src)
Definition: main.c:92
GLdouble GLdouble GLdouble r
Definition: gl.h:2055
LPWSTR WINAPI CharLowerW(_Inout_ LPWSTR)
const WCHAR * str
#define strstrW(d, s)
Definition: unicode.h:32
static BOOL msi_free(void *mem)
Definition: msipriv.h:1227
WCHAR * LPWSTR
Definition: xmlstorage.h:184

Referenced by compare_substring().

◆ value_free()

static void value_free ( struct value  val)
static

Definition at line 180 of file cond.tab.c.

181 {
182  if (val.type != VALUE_INTEGER)
183  cond_free( val.u.string );
184 }
GLuint GLfloat * val
Definition: glext.h:7180
static void cond_free(void *ptr)
Definition: cond.tab.c:2444

Referenced by yyparse().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( msi  )

◆ yydestruct()

static void yydestruct ( const char yymsg,
int  yytype,
YYSTYPE yyvaluep,
COND_input info 
)
static

Definition at line 1145 of file cond.tab.c.

1146 {
1147  YYUSE (yyvaluep);
1148  YYUSE (info);
1149  if (!yymsg)
1150  yymsg = "Deleting";
1151  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
1152 
1154  YYUSE (yytype);
1156 }
#define YYUSE(E)
Definition: cond.tab.c:375
#define YY_IGNORE_MAYBE_UNINITIALIZED_END
Definition: cond.tab.c:393
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
Definition: cond.tab.c:894
#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
Definition: cond.tab.c:392

Referenced by yyparse().

◆ yyparse()

int yyparse ( COND_input info)

Definition at line 1166 of file cond.tab.c.

1167 {
1168 /* The lookahead symbol. */
1169 int yychar;
1170 
1171 
1172 /* The semantic value of the lookahead symbol. */
1173 /* Default value used for initialization, for pacifying older GCCs
1174  or non-GCC compilers. */
1175 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
1176 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
1177 
1178  /* Number of syntax errors so far. */
1179  int yynerrs;
1180 
1181  int yystate;
1182  /* Number of tokens to shift before error messages enabled. */
1183  int yyerrstatus;
1184 
1185  /* The stacks and their tools:
1186  'yyss': related to states.
1187  'yyvs': related to semantic values.
1188 
1189  Refer to the stacks through separate pointers, to allow yyoverflow
1190  to reallocate them elsewhere. */
1191 
1192  /* The state stack. */
1193  yytype_int16 yyssa[YYINITDEPTH];
1194  yytype_int16 *yyss;
1195  yytype_int16 *yyssp;
1196 
1197  /* The semantic value stack. */
1198  YYSTYPE yyvsa[YYINITDEPTH];
1199  YYSTYPE *yyvs;
1200  YYSTYPE *yyvsp;
1201 
1202  YYSIZE_T yystacksize;
1203 
1204  int yyn;
1205  int yyresult;
1206  /* Lookahead token as an internal (translated) token number. */
1207  int yytoken = 0;
1208  /* The variables used to return semantic value and location from the
1209  action routines. */
1210  YYSTYPE yyval;
1211 
1212 #if YYERROR_VERBOSE
1213  /* Buffer for error messages, and its allocated size. */
1214  char yymsgbuf[128];
1215  char *yymsg = yymsgbuf;
1216  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
1217 #endif
1218 
1219 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
1220 
1221  /* The number of symbols on the RHS of the reduced rule.
1222  Keep to zero when no symbol should be popped. */
1223  int yylen = 0;
1224 
1225  yyssp = yyss = yyssa;
1226  yyvsp = yyvs = yyvsa;
1227  yystacksize = YYINITDEPTH;
1228 
1229  YYDPRINTF ((stderr, "Starting parse\n"));
1230 
1231  yystate = 0;
1232  yyerrstatus = 0;
1233  yynerrs = 0;
1234  yychar = YYEMPTY; /* Cause a token to be read. */
1235  goto yysetstate;
1236 
1237 /*------------------------------------------------------------.
1238 | yynewstate -- Push a new state, which is found in yystate. |
1239 `------------------------------------------------------------*/
1240  yynewstate:
1241  /* In all cases, when you get here, the value and location stacks
1242  have just been pushed. So pushing a state here evens the stacks. */
1243  yyssp++;
1244 
1245  yysetstate:
1246  *yyssp = yystate;
1247 
1248  if (yyss + yystacksize - 1 <= yyssp)
1249  {
1250  /* Get the current used size of the three stacks, in elements. */
1251  YYSIZE_T yysize = yyssp - yyss + 1;
1252 
1253 #ifdef yyoverflow
1254  {
1255  /* Give user a chance to reallocate the stack. Use copies of
1256  these so that the &'s don't force the real ones into
1257  memory. */
1258  YYSTYPE *yyvs1 = yyvs;
1259  yytype_int16 *yyss1 = yyss;
1260 
1261  /* Each stack pointer address is followed by the size of the
1262  data in use in that stack, in bytes. This used to be a
1263  conditional around just the two extra args, but that might
1264  be undefined if yyoverflow is a macro. */
1265  yyoverflow (YY_("memory exhausted"),
1266  &yyss1, yysize * sizeof (*yyssp),
1267  &yyvs1, yysize * sizeof (*yyvsp),
1268  &yystacksize);
1269 
1270  yyss = yyss1;
1271  yyvs = yyvs1;
1272  }
1273 #else /* no yyoverflow */
1274 # ifndef YYSTACK_RELOCATE
1275  goto yyexhaustedlab;
1276 # else
1277  /* Extend the stack our own way. */
1278  if (YYMAXDEPTH <= yystacksize)
1279  goto yyexhaustedlab;
1280  yystacksize *= 2;
1281  if (YYMAXDEPTH < yystacksize)
1282  yystacksize = YYMAXDEPTH;
1283 
1284  {
1285  yytype_int16 *yyss1 = yyss;
1286  union yyalloc *yyptr =
1287  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1288  if (! yyptr)
1289  goto yyexhaustedlab;
1290  YYSTACK_RELOCATE (yyss_alloc, yyss);
1291  YYSTACK_RELOCATE (yyvs_alloc, yyvs);
1292 # undef YYSTACK_RELOCATE
1293  if (yyss1 != yyssa)
1294  YYSTACK_FREE (yyss1);
1295  }
1296 # endif
1297 #endif /* no yyoverflow */
1298 
1299  yyssp = yyss + yysize - 1;
1300  yyvsp = yyvs + yysize - 1;
1301 
1302  YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1303  (unsigned long) yystacksize));
1304 
1305  if (yyss + yystacksize - 1 <= yyssp)
1306  YYABORT;
1307  }
1308 
1309  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1310 
1311  if (yystate == YYFINAL)
1312  YYACCEPT;
1313 
1314  goto yybackup;
1315 
1316 /*-----------.
1317 | yybackup. |
1318 `-----------*/
1319 yybackup:
1320 
1321  /* Do appropriate processing given the current state. Read a
1322  lookahead token if we need one and don't already have one. */
1323 
1324  /* First try to decide what to do without reference to lookahead token. */
1325  yyn = yypact[yystate];
1326  if (yypact_value_is_default (yyn))
1327  goto yydefault;
1328 
1329  /* Not known => get a lookahead token if don't already have one. */
1330 
1331  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1332  if (yychar == YYEMPTY)
1333  {
1334  YYDPRINTF ((stderr, "Reading a token: "));
1335  yychar = yylex (&yylval, info);
1336  }
1337 
1338  if (yychar <= YYEOF)
1339  {
1340  yychar = yytoken = YYEOF;
1341  YYDPRINTF ((stderr, "Now at end of input.\n"));
1342  }
1343  else
1344  {
1345  yytoken = YYTRANSLATE (yychar);
1346  YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
1347  }
1348 
1349  /* If the proper action on seeing token YYTOKEN is to reduce or to
1350  detect an error, take that action. */
1351  yyn += yytoken;
1352  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1353  goto yydefault;
1354  yyn = yytable[yyn];
1355  if (yyn <= 0)
1356  {
1357  if (yytable_value_is_error (yyn))
1358  goto yyerrlab;
1359  yyn = -yyn;
1360  goto yyreduce;
1361  }
1362 
1363  /* Count tokens shifted since error; after three, turn off error
1364  status. */
1365  if (yyerrstatus)
1366  yyerrstatus--;
1367 
1368  /* Shift the lookahead token. */
1369  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
1370 
1371  /* Discard the shifted token. */
1372  yychar = YYEMPTY;
1373 
1374  yystate = yyn;
1376  *++yyvsp = yylval;
1378 
1379  goto yynewstate;
1380 
1381 
1382 /*-----------------------------------------------------------.
1383 | yydefault -- do the default action for the current state. |
1384 `-----------------------------------------------------------*/
1385 yydefault:
1386  yyn = yydefact[yystate];
1387  if (yyn == 0)
1388  goto yyerrlab;
1389  goto yyreduce;
1390 
1391 
1392 /*-----------------------------.
1393 | yyreduce -- Do a reduction. |
1394 `-----------------------------*/
1395 yyreduce:
1396  /* yyn is the number of a rule to reduce with. */
1397  yylen = yyr2[yyn];
1398 
1399  /* If YYLEN is nonzero, implement the default value of the action:
1400  '$$ = $1'.
1401 
1402  Otherwise, the following line sets YYVAL to garbage.
1403  This behavior is undocumented and Bison
1404  users should not rely upon it. Assigning to YYVAL
1405  unconditionally makes the parser a bit smaller, and it avoids a
1406  GCC warning that YYVAL may be used uninitialized. */
1407  yyval = yyvsp[1-yylen];
1408 
1409 
1410  YY_REDUCE_PRINT (yyn);
1411  switch (yyn)
1412  {
1413  case 2:
1414 #line 150 "cond.y" /* yacc.c:1651 */
1415  {
1416  COND_input* cond = (COND_input*) info;
1417  cond->result = (yyvsp[0].bool);
1418  }
1419 #line 1420 "cond.tab.c" /* yacc.c:1651 */
1420  break;
1421 
1422  case 3:
1423 #line 155 "cond.y" /* yacc.c:1651 */
1424  {
1425  COND_input* cond = (COND_input*) info;
1426  cond->result = MSICONDITION_NONE;
1427  }
1428 #line 1429 "cond.tab.c" /* yacc.c:1651 */
1429  break;
1430 
1431  case 4:
1432 #line 163 "cond.y" /* yacc.c:1651 */
1433  {
1434  (yyval.bool) = (yyvsp[0].bool);
1435  }
1436 #line 1437 "cond.tab.c" /* yacc.c:1651 */
1437  break;
1438 
1439  case 5:
1440 #line 167 "cond.y" /* yacc.c:1651 */
1441  {
1442  (yyval.bool) = (yyvsp[-2].bool) || (yyvsp[0].bool);
1443  }
1444 #line 1445 "cond.tab.c" /* yacc.c:1651 */
1445  break;
1446 
1447  case 6:
1448 #line 171 "cond.y" /* yacc.c:1651 */
1449  {
1450  (yyval.bool) = !(yyvsp[-2].bool) || (yyvsp[0].bool);
1451  }
1452 #line 1453 "cond.tab.c" /* yacc.c:1651 */
1453  break;
1454 
1455  case 7:
1456 #line 175 "cond.y" /* yacc.c:1651 */
1457  {
1458  (yyval.bool) = ( (yyvsp[-2].bool) || (yyvsp[0].bool) ) && !( (yyvsp[-2].bool) && (yyvsp[0].bool) );
1459  }
1460 #line 1461 "cond.tab.c" /* yacc.c:1651 */
1461  break;
1462 
1463  case 8:
1464 #line 179 "cond.y" /* yacc.c:1651 */
1465  {
1466  (yyval.bool) = ( (yyvsp[-2].bool) && (yyvsp[0].bool) ) || ( !(yyvsp[-2].bool) && !(yyvsp[0].bool) );
1467  }
1468 #line 1469 "cond.tab.c" /* yacc.c:1651 */
1469  break;
1470 
1471  case 9:
1472 #line 186 "cond.y" /* yacc.c:1651 */
1473  {
1474  (yyval.bool) = (yyvsp[0].bool);
1475  }
1476 #line 1477 "cond.tab.c" /* yacc.c:1651 */
1477  break;
1478 
1479  case 10:
1480 #line 190 "cond.y" /* yacc.c:1651 */
1481  {
1482  (yyval.bool) = (yyvsp[-2].bool) && (yyvsp[0].bool);
1483  }
1484 #line 1485 "cond.tab.c" /* yacc.c:1651 */
1485  break;
1486 
1487  case 11:
1488 #line 197 "cond.y" /* yacc.c:1651 */
1489  {
1490  (yyval.bool) = !(yyvsp[0].bool);
1491  }
1492 #line 1493 "cond.tab.c" /* yacc.c:1651 */
1493  break;
1494 
1495  case 12:
1496 #line 201 "cond.y" /* yacc.c:1651 */
1497  {
1498  if ((yyvsp[0].value).type == VALUE_INTEGER)
1499  (yyval.bool) = (yyvsp[0].value).u.integer ? 1 : 0;
1500  else
1501  (yyval.bool) = (yyvsp[0].value).u.string && (yyvsp[0].value).u.string[0];
1502  value_free( (yyvsp[0].value) );
1503  }
1504 #line 1505 "cond.tab.c" /* yacc.c:1651 */
1505  break;
1506 
1507  case 13:
1508 #line 209 "cond.y" /* yacc.c:1651 */
1509  {
1510  if ((yyvsp[-2].value).type == VALUE_INTEGER && (yyvsp[0].value).type == VALUE_INTEGER)
1511  {
1512  (yyval.bool) = compare_int((yyvsp[-2].value).u.integer, (yyvsp[-1].operator), (yyvsp[0].value).u.integer);
1513  }
1514  else if ((yyvsp[-2].value).type != VALUE_INTEGER && (yyvsp[0].value).type != VALUE_INTEGER)
1515  {
1516  (yyval.bool) = compare_string((yyvsp[-2].value).u.string, (yyvsp[-1].operator), (yyvsp[0].value).u.string,
1517  (yyvsp[-2].value).type == VALUE_SYMBOL || (yyvsp[0].value).type == VALUE_SYMBOL);
1518  }
1519  else if ((yyvsp[-2].value).type == VALUE_LITERAL || (yyvsp[0].value).type == VALUE_LITERAL)
1520  {
1521  (yyval.bool) = ((yyvsp[-1].operator) == COND_NE || (yyvsp[-1].operator) == COND_INE );
1522  }
1523  else if ((yyvsp[-2].value).type == VALUE_SYMBOL) /* symbol operator integer */
1524  {
1525  int num;
1526  if (num_from_prop( (yyvsp[-2].value).u.string, &num ))
1527  (yyval.bool) = compare_int( num, (yyvsp[-1].operator), (yyvsp[0].value).u.integer );
1528  else
1529  (yyval.bool) = ((yyvsp[-1].operator) == COND_NE || (yyvsp[-1].operator) == COND_INE );
1530  }
1531  else /* integer operator symbol */
1532  {
1533  int num;
1534  if (num_from_prop( (yyvsp[0].value).u.string, &num ))
1535  (yyval.bool) = compare_int( (yyvsp[-2].value).u.integer, (yyvsp[-1].operator), num );
1536  else
1537  (yyval.bool) = ((yyvsp[-1].operator) == COND_NE || (yyvsp[-1].operator) == COND_INE );
1538  }
1539 
1540  value_free( (yyvsp[-2].value) );
1541  value_free( (yyvsp[0].value) );
1542  }
1543 #line 1544 "cond.tab.c" /* yacc.c:1651 */
1544  break;
1545 
1546  case 14:
1547 #line 244 "cond.y" /* yacc.c:1651 */
1548  {
1549  (yyval.bool) = (yyvsp[-1].bool);
1550  }
1551 #line 1552 "cond.tab.c" /* yacc.c:1651 */
1552  break;
1553 
1554  case 15:
1555 #line 251 "cond.y" /* yacc.c:1651 */
1556  { (yyval.operator) = COND_EQ; }
1557 #line 1558 "cond.tab.c" /* yacc.c:1651 */
1558  break;
1559 
1560  case 16:
1561 #line 252 "cond.y" /* yacc.c:1651 */
1562  { (yyval.operator) = COND_NE; }
1563 #line 1564 "cond.tab.c" /* yacc.c:1651 */
1564  break;
1565 
1566  case 17:
1567 #line 253 "cond.y" /* yacc.c:1651 */
1568  { (yyval.operator) = COND_LT; }
1569 #line 1570 "cond.tab.c" /* yacc.c:1651 */
1570  break;
1571 
1572  case 18:
1573 #line 254 "cond.y" /* yacc.c:1651 */
1574  { (yyval.operator) = COND_GT; }
1575 #line 1576 "cond.tab.c" /* yacc.c:1651 */
1576  break;
1577 
1578  case 19:
1579 #line 255 "cond.y" /* yacc.c:1651 */
1580  { (yyval.operator) = COND_LE; }
1581 #line 1582 "cond.tab.c" /* yacc.c:1651 */
1582  break;
1583 
1584  case 20:
1585 #line 256 "cond.y" /* yacc.c:1651 */
1586  { (yyval.operator) = COND_GE; }
1587 #line 1588 "cond.tab.c" /* yacc.c:1651 */
1588  break;
1589 
1590  case 21:
1591 #line 257 "cond.y" /* yacc.c:1651 */
1592  { (yyval.operator) = COND_SS; }
1593 #line 1594 "cond.tab.c" /* yacc.c:1651 */
1594  break;
1595 
1596  case 22:
1597 #line 258 "cond.y" /* yacc.c:1651 */
1598  { (yyval.operator) = COND_IEQ; }
1599 #line 1600 "cond.tab.c" /* yacc.c:1651 */
1600  break;
1601 
1602  case 23:
1603 #line 259 "cond.y" /* yacc.c:1651 */
1604  { (yyval.operator) = COND_INE; }
1605 #line 1606 "cond.tab.c" /* yacc.c:1651 */
1606  break;
1607 
1608  case 24:
1609 #line 260 "cond.y" /* yacc.c:1651 */
1610  { (yyval.operator) = COND_ILT; }
1611 #line 1612 "cond.tab.c" /* yacc.c:1651 */
1612  break;
1613 
1614  case 25:
1615 #line 261 "cond.y" /* yacc.c:1651 */
1616  { (yyval.operator) = COND_IGT; }
1617 #line 1618 "cond.tab.c" /* yacc.c:1651 */
1618  break;
1619 
1620  case 26:
1621 #line 262 "cond.y" /* yacc.c:1651 */
1622  { (yyval.operator) = COND_ILE; }
1623 #line 1624 "cond.tab.c" /* yacc.c:1651 */
1624  break;
1625 
1626  case 27:
1627 #line 263 "cond.y" /* yacc.c:1651 */
1628  { (yyval.operator) = COND_IGE; }
1629 #line 1630 "cond.tab.c" /* yacc.c:1651 */
1630  break;
1631 
1632  case 28:
1633 #line 264 "cond.y" /* yacc.c:1651 */
1634  { (yyval.operator) = COND_ISS; }
1635 #line 1636 "cond.tab.c" /* yacc.c:1651 */
1636  break;
1637 
1638  case 29:
1639 #line 265 "cond.y" /* yacc.c:1651 */
1640  { (yyval.operator) = COND_LHS; }
1641 #line 1642 "cond.tab.c" /* yacc.c:1651 */
1642  break;
1643 
1644  case 30:
1645 #line 266 "cond.y" /* yacc.c:1651 */
1646  { (yyval.operator) = COND_RHS; }
1647 #line 1648 "cond.tab.c" /* yacc.c:1651 */
1648  break;
1649 
1650  case 31:
1651 #line 267 "cond.y" /* yacc.c:1651 */
1652  { (yyval.operator) = COND_ILHS; }
1653 #line 1654 "cond.tab.c" /* yacc.c:1651 */
1654  break;
1655 
1656  case 32:
1657 #line 268 "cond.y" /* yacc.c:1651 */
1658  { (yyval.operator) = COND_IRHS; }
1659 #line 1660 "cond.tab.c" /* yacc.c:1651 */
1660  break;
1661 
1662  case 33:
1663 #line 273 "cond.y" /* yacc.c:1651 */
1664  {
1665  COND_input* cond = (COND_input*) info;
1666  UINT len;
1667 
1668  (yyval.value).type = VALUE_SYMBOL;
1669  (yyval.value).u.string = msi_dup_property( cond->package->db, (yyvsp[0].identifier) );
1670  if ((yyval.value).u.string)
1671  {
1672  len = (lstrlenW((yyval.value).u.string) + 1) * sizeof (WCHAR);
1673  (yyval.value).u.string = cond_track_mem( cond, (yyval.value).u.string, len );
1674  }
1675  cond_free( (yyvsp[0].identifier) );
1676  }
1677 #line 1678 "cond.tab.c" /* yacc.c:1651 */
1678  break;
1679 
1680  case 34:
1681 #line 287 "cond.y" /* yacc.c:1651 */
1682  {
1683  COND_input* cond = (COND_input*) info;
1684  UINT len = GetEnvironmentVariableW( (yyvsp[0].identifier), NULL, 0 );
1685  (yyval.value).type = VALUE_SYMBOL;
1686  (yyval.value).u.string = NULL;
1687  if (len++)
1688  {
1689  (yyval.value).u.string = cond_alloc( cond, len*sizeof (WCHAR) );
1690  if( !(yyval.value).u.string )
1691  YYABORT;
1692  GetEnvironmentVariableW( (yyvsp[0].identifier), (yyval.value).u.string, len );
1693  }
1694  cond_free( (yyvsp[0].identifier) );
1695  }
1696 #line 1697 "cond.tab.c" /* yacc.c:1651 */
1697  break;
1698 
1699  case 35:
1700 #line 302 "cond.y" /* yacc.c:1651 */
1701  {
1702  COND_input* cond = (COND_input*) info;
1703  (yyval.value).type = VALUE_LITERAL;
1704  (yyval.value).u.string = COND_GetLiteral( cond, &(yyvsp[0].str) );
1705  if( !(yyval.value).u.string )
1706  YYABORT;
1707  }
1708 #line 1709 "cond.tab.c" /* yacc.c:1651 */
1709  break;
1710 
1711  case 36:
1712 #line 310 "cond.y" /* yacc.c:1651 */
1713  {
1714  COND_input* cond = (COND_input*) info;
1715  LPWSTR szNum = COND_GetString( cond, &(yyvsp[0].str) );
1716  if( !szNum )
1717  YYABORT;
1718  (yyval.value).type = VALUE_INTEGER;
1719  (yyval.value).u.integer = atoiW( szNum );
1720  cond_free( szNum );
1721  }
1722 #line 1723 "cond.tab.c" /* yacc.c:1651 */
1723  break;
1724 
1725  case 37:
1726 #line 320 "cond.y" /* yacc.c:1651 */
1727  {
1728  COND_input* cond = (COND_input*) info;
1730 
1731  if(MSI_GetComponentStateW(cond->package, (yyvsp[0].identifier), &install, &action ) != ERROR_SUCCESS)
1732  {
1733  (yyval.value).type = VALUE_LITERAL;
1734  (yyval.value).u.string = NULL;
1735  }
1736  else
1737  {
1738  (yyval.value).type = VALUE_INTEGER;
1739  (yyval.value).u.integer = action;
1740  }
1741  cond_free( (yyvsp[0].identifier) );
1742  }
1743 #line 1744 "cond.tab.c" /* yacc.c:1651 */
1744  break;
1745 
1746  case 38:
1747 #line 337 "cond.y" /* yacc.c:1651 */
1748  {
1749  COND_input* cond = (COND_input*) info;
1751 
1752  if(MSI_GetComponentStateW(cond->package, (yyvsp[0].identifier), &install, &action ) != ERROR_SUCCESS)
1753  {
1754  (yyval.value).type = VALUE_LITERAL;
1755  (yyval.value).u.string = NULL;
1756  }
1757  else
1758  {
1759  (yyval.value).type = VALUE_INTEGER;
1760  (yyval.value).u.integer = install;
1761  }
1762  cond_free( (yyvsp[0].identifier) );
1763  }
1764 #line 1765 "cond.tab.c" /* yacc.c:1651 */
1765  break;
1766 
1767  case 39:
1768 #line 354 "cond.y" /* yacc.c:1651 */
1769  {
1770  COND_input* cond = (COND_input*) info;
1772 
1773  if (MSI_GetFeatureStateW(cond->package, (yyvsp[0].identifier), &install, &action ) != ERROR_SUCCESS)
1774  {
1775  (yyval.value).type = VALUE_LITERAL;
1776  (yyval.value).u.string = NULL;
1777  }
1778  else
1779  {
1780  (yyval.value).type = VALUE_INTEGER;
1781  (yyval.value).u.integer = action;
1782  }
1783  cond_free( (yyvsp[0].identifier) );
1784  }
1785 #line 1786 "cond.tab.c" /* yacc.c:1651 */
1786  break;
1787 
1788  case 40:
1789 #line 371 "cond.y" /* yacc.c:1651 */
1790  {
1791  COND_input* cond = (COND_input*) info;
1793 
1794  if(MSI_GetFeatureStateW(cond->package, (yyvsp[0].identifier), &install, &action ) != ERROR_SUCCESS)
1795  {
1796  (yyval.value).type = VALUE_LITERAL;
1797  (yyval.value).u.string = NULL;
1798  }
1799  else
1800  {
1801  (yyval.value).type = VALUE_INTEGER;
1802  (yyval.value).u.integer = install;
1803  }
1804  cond_free( (yyvsp[0].identifier) );
1805  }
1806 #line 1807 "cond.tab.c" /* yacc.c:1651 */
1807  break;
1808 
1809