ReactOS  0.4.13-dev-242-g611e6d7
hlsl.tab.c File Reference
#include "config.h"
#include "wine/debug.h"
#include <stdio.h>
#include "d3dcompiler_private.h"
#include <stddef.h>
Include dependency graph for hlsl.tab.c:

Go to the source code of this file.

Classes

union  YYSTYPE
 
struct  YYLTYPE
 
union  yyalloc
 

Macros

#define YYBISON   1
 
#define YYBISON_VERSION   "3.0"
 
#define YYSKELETON_NAME   "yacc.c"
 
#define YYPURE   0
 
#define YYPUSH   0
 
#define YYPULL   1
 
#define yyparse   hlsl_parse
 
#define yylex   hlsl_lex
 
#define yyerror   hlsl_error
 
#define yydebug   hlsl_debug
 
#define yynerrs   hlsl_nerrs
 
#define yylval   hlsl_lval
 
#define yychar   hlsl_char
 
#define yylloc   hlsl_lloc
 
#define YY_NULL   0
 
#define YYERROR_VERBOSE   1
 
#define YY_HLSL_E_REACTOSSYNC_GCC_DLL_DIRECTX_WINE_D3DCOMPILER_43_HLSL_TAB_H_INCLUDED
 
#define YYDEBUG   0
 
#define YYTOKENTYPE
 
#define YYSTYPE_IS_TRIVIAL   1
 
#define YYSTYPE_IS_DECLARED   1
 
#define YYLTYPE_IS_DECLARED   1
 
#define YYLTYPE_IS_TRIVIAL   1
 
#define YYSIZE_T   size_t
 
#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)
 
#define YY_(Msgid)   Msgid
 
#define __attribute__(Spec)   /* empty */
 
#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   2
 
#define YYLAST   821
 
#define YYNTOKENS   129
 
#define YYNNTS   65
 
#define YYNRULES   175
 
#define YYNSTATES   321
 
#define YYUNDEFTOK   2
 
#define YYMAXUTOK   359
 
#define YYTRANSLATE(YYX)   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
#define YYPACT_NINF   -237
 
#define yypact_value_is_default(Yystate)   (!!((Yystate) == (-237)))
 
#define YYTABLE_NINF   -35
 
#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 YYLLOC_DEFAULT(Current, Rhs, N)
 
#define YYRHSLOC(Rhs, K)   ((Rhs)[K])
 
#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 YYCASE_(N, S)
 
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
 
#define YYSYNTAX_ERROR
 

Typedefs

typedef union YYSTYPE YYSTYPE
 
typedef struct YYLTYPE YYLTYPE
 
typedef unsigned char yytype_uint8
 
typedef signed char yytype_int8
 
typedef unsigned short int yytype_uint16
 
typedef short int yytype_int16
 

Enumerations

enum  loop_type { LOOP_FOR, LOOP_WHILE, LOOP_DO_WHILE }
 
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,
  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,
  tEOF = 258, tNL = 259, tREM = 260, tEMPTYBRACKETS = 261,
  tTRUE = 262, tFALSE = 263, tNOT = 264, tAND = 265,
  tOR = 266, tXOR = 267, tEQV = 268, tIMP = 269,
  tNEQ = 270, tIS = 271, tLTEQ = 272, tGTEQ = 273,
  tMOD = 274, tCALL = 275, tDIM = 276, tSUB = 277,
  tFUNCTION = 278, tPROPERTY = 279, tGET = 280, tLET = 281,
  tCONST = 282, tIF = 283, tELSE = 284, tELSEIF = 285,
  tEND = 286, tTHEN = 287, tEXIT = 288, tWHILE = 289,
  tWEND = 290, tDO = 291, tLOOP = 292, tUNTIL = 293,
  tFOR = 294, tTO = 295, tSTEP = 296, tEACH = 297,
  tIN = 298, tSELECT = 299, tCASE = 300, tBYREF = 301,
  tBYVAL = 302, tOPTION = 303, tEXPLICIT = 304, tSTOP = 305,
  tNOTHING = 306, tEMPTY = 307, tNULL = 308, tCLASS = 309,
  tSET = 310, tNEW = 311, tPUBLIC = 312, tPRIVATE = 313,
  tDEFAULT = 314, tME = 315, tERROR = 316, tNEXT = 317,
  tON = 318, tRESUME = 319, tGOTO = 320, tIdentifier = 321,
  tString = 322, tLong = 323, tShort = 324, tDouble = 325,
  tEOF = 258, tNL = 259, tREM = 260, tEMPTYBRACKETS = 261,
  tTRUE = 262, tFALSE = 263, tNOT = 264, tAND = 265,
  tOR = 266, tXOR = 267, tEQV = 268, tIMP = 269,
  tNEQ = 270, tIS = 271, tLTEQ = 272, tGTEQ = 273,
  tMOD = 274, tCALL = 275, tDIM = 276, tSUB = 277,
  tFUNCTION = 278, tPROPERTY = 279, tGET = 280, tLET = 281,
  tCONST = 282, tIF = 283, tELSE = 284, tELSEIF = 285,
  tEND = 286, tTHEN = 287, tEXIT = 288, tWHILE = 289,
  tWEND = 290, tDO = 291, tLOOP = 292, tUNTIL = 293,
  tFOR = 294, tTO = 295, tSTEP = 296, tEACH = 297,
  tIN = 298, tSELECT = 299, tCASE = 300, tBYREF = 301,
  tBYVAL = 302, tOPTION = 303, tEXPLICIT = 304, tSTOP = 305,
  tNOTHING = 306, tEMPTY = 307, tNULL = 308, tCLASS = 309,
  tSET = 310, tNEW = 311, tPUBLIC = 312, tPRIVATE = 313,
  tDEFAULT = 314, tME = 315, tERROR = 316, tNEXT = 317,
  tON = 318, tRESUME = 319, tGOTO = 320, tIdentifier = 321,
  tString = 322, tLong = 323, tShort = 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_STRING = 275, TK_ID = 276, TK_OR = 277,
  TK_AND = 278, TK_NOT = 279, TK_EQ = 280, TK_NE = 281,
  TK_LT = 282, TK_GT = 283, TK_LE = 284, TK_GE = 285,
  TK_LIKE = 286, 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_STRING = 275, TK_ID = 276,
  TK_OR = 277, TK_AND = 278, TK_NOT = 279, TK_EQ = 280,
  TK_NE = 281, TK_LT = 282, TK_GT = 283, TK_LE = 284,
  TK_GE = 285, TK_LIKE = 286, 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 (hlsl_parser)
 
int hlsl_lex (void)
 
static void set_location (struct source_location *loc, const struct YYLTYPE *l)
 
void hlsl_message (const char *fmt,...)
 
static const charhlsl_get_error_level_name (enum hlsl_error_level level)
 
void hlsl_report_message (const char *filename, DWORD line, DWORD column, enum hlsl_error_level level, const char *fmt,...)
 
static void hlsl_error (const char *s)
 
static void debug_dump_decl (struct hlsl_type *type, DWORD modifiers, const char *declname, unsigned int line_no)
 
static void check_invalid_matrix_modifiers (DWORD modifiers, struct source_location *loc)
 
static BOOL declare_variable (struct hlsl_ir_var *decl, BOOL local)
 
static DWORD add_modifier (DWORD modifiers, DWORD mod, const struct YYLTYPE *loc)
 
static BOOL check_type_modifiers (DWORD modifiers, struct source_location *loc)
 
static BOOL add_type_to_scope (struct hlsl_scope *scope, struct hlsl_type *def)
 
static void declare_predefined_types (struct hlsl_scope *scope)
 
static struct hlsl_ir_ifloop_condition (struct list *cond_list)
 
static struct listcreate_loop (enum loop_type type, struct list *init, struct list *cond, struct hlsl_ir_node *iter, struct list *body, struct source_location *loc)
 
static unsigned int initializer_size (struct list *initializer)
 
static unsigned int components_count_expr_list (struct list *list)
 
static struct hlsl_ir_swizzlenew_swizzle (DWORD s, unsigned int components, struct hlsl_ir_node *val, struct source_location *loc)
 
static struct hlsl_ir_swizzleget_swizzle (struct hlsl_ir_node *value, const char *swizzle, struct source_location *loc)
 
static void struct_var_initializer (struct list *list, struct hlsl_ir_var *var, struct list *initializer)
 
static struct listdeclare_vars (struct hlsl_type *basic_type, DWORD modifiers, struct list *var_list)
 
static BOOL add_struct_field (struct list *fields, struct hlsl_struct_field *field)
 
static struct listgen_struct_fields (struct hlsl_type *type, DWORD modifiers, struct list *fields)
 
static struct hlsl_typenew_struct_type (const char *name, DWORD modifiers, struct list *fields)
 
static BOOL add_typedef (DWORD modifiers, struct hlsl_type *orig_type, struct list *list, struct source_location *loc)
 
static BOOL add_func_parameter (struct list *list, struct parse_parameter *param, const struct source_location *loc)
 
static struct reg_reservationparse_reg_reservation (const char *reg_string)
 
static const struct hlsl_ir_function_declget_overloaded_func (struct wine_rb_tree *funcs, char *name, struct list *params, BOOL exact_signature)
 
int hlsl_parse (void)
 
voidmalloc (YYSIZE_T)
 
void free (void *)
 
static YYSIZE_T yystrlen (const char *yystr)
 
static charyystpcpy (char *yydest, const char *yysrc)
 
static YYSIZE_T yytnamerr (char *yyres, const char *yystr)
 
static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
 
static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
 
int yyparse (void)
 
static void dump_function_decl (struct wine_rb_entry *entry, void *context)
 
static void dump_function (struct wine_rb_entry *entry, void *context)
 
struct bwriter_shaderparse_hlsl (enum shader_type type, DWORD major, DWORD minor, const char *entrypoint, char **messages)
 

Variables

struct hlsl_parse_ctx hlsl_ctx
 
YYSTYPE hlsl_lval
 
YYLTYPE hlsl_lloc
 
static const yytype_uint8 yytranslate []
 
static const char *const yytname []
 
static const yytype_int16 yypact []
 
static const yytype_uint8 yydefact []
 
static const yytype_int16 yypgoto []
 
static const yytype_int16 yydefgoto []
 
static const yytype_int16 yytable []
 
static const yytype_int16 yycheck []
 
static const yytype_uint8 yystos []
 
static const yytype_uint8 yyr1 []
 
static const yytype_uint8 yyr2 []
 
int yychar
 
YYSTYPE yylval
 
YYLTYPE yylloc = { 1, 1, 1, 1 }
 
int yynerrs
 

Macro Definition Documentation

◆ __attribute__

#define __attribute__ (   Spec)    /* empty */

Definition at line 1213 of file hlsl.tab.c.

◆ YY_

#define YY_ (   Msgid)    Msgid

Definition at line 1205 of file hlsl.tab.c.

◆ YY_HLSL_E_REACTOSSYNC_GCC_DLL_DIRECTX_WINE_D3DCOMPILER_43_HLSL_TAB_H_INCLUDED

#define YY_HLSL_E_REACTOSSYNC_GCC_DLL_DIRECTX_WINE_D3DCOMPILER_43_HLSL_TAB_H_INCLUDED

Definition at line 979 of file hlsl.tab.c.

◆ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

Definition at line 1236 of file hlsl.tab.c.

◆ YY_IGNORE_MAYBE_UNINITIALIZED_END

#define YY_IGNORE_MAYBE_UNINITIALIZED_END

Definition at line 1237 of file hlsl.tab.c.

◆ YY_INITIAL_VALUE

#define YY_INITIAL_VALUE (   Value)    Value

Definition at line 1233 of file hlsl.tab.c.

◆ YY_NULL

#define YY_NULL   0

Definition at line 964 of file hlsl.tab.c.

◆ YY_REDUCE_PRINT

#define YY_REDUCE_PRINT (   Rule)

Definition at line 2140 of file hlsl.tab.c.

◆ YY_STACK_PRINT

#define YY_STACK_PRINT (   Bottom,
  Top 
)

Definition at line 2139 of file hlsl.tab.c.

◆ YY_SYMBOL_PRINT

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

Definition at line 2138 of file hlsl.tab.c.

◆ YYABORT

#define YYABORT   goto yyabortlab

Definition at line 1917 of file hlsl.tab.c.

◆ YYACCEPT

#define YYACCEPT   goto yyacceptlab

Definition at line 1916 of file hlsl.tab.c.

◆ YYBACKUP

#define YYBACKUP (   Token,
  Value 
)
Value:
{ \
yychar = (Token); \
yylval = (Value); \
YYPOPSTACK (yylen); \
yystate = *yyssp; \
goto yybackup; \
} \
else \
{ \
yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
while (0)
_In_opt_ ULONG _Out_ PULONG Value
Definition: rtlfuncs.h:2327
#define yychar
Definition: hlsl.tab.c:70
_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
#define YY_(Msgid)
Definition: hlsl.tab.c:1205
if(!(yy_init))
Definition: macro.lex.yy.c:714
#define YYEMPTY
Definition: hlsl.tab.c:1913

Definition at line 1923 of file hlsl.tab.c.

◆ YYBISON

#define YYBISON   1

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

◆ YYBISON_VERSION

#define YYBISON_VERSION   "3.0"

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

◆ YYCASE_

#define YYCASE_ (   N,
  S 
)
Value:
case N: \
yyformat = S; \
break
#define S(x)
Definition: test.h:190
Definition: bidi.c:97

◆ yychar

#define yychar   hlsl_char

Definition at line 70 of file hlsl.tab.c.

◆ yyclearin

#define yyclearin   (yychar = YYEMPTY)

Definition at line 1912 of file hlsl.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 1362 of file hlsl.tab.c.

◆ YYCOPY_NEEDED

#define YYCOPY_NEEDED   1

Definition at line 1334 of file hlsl.tab.c.

◆ yydebug

#define yydebug   hlsl_debug

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

◆ YYDEBUG

#define YYDEBUG   0

Definition at line 982 of file hlsl.tab.c.

◆ YYDPRINTF

#define YYDPRINTF (   Args)

Definition at line 2137 of file hlsl.tab.c.

◆ YYEMPTY

#define YYEMPTY   (-2)

Definition at line 1913 of file hlsl.tab.c.

◆ YYEOF

#define YYEOF   0

Definition at line 1914 of file hlsl.tab.c.

◆ YYERRCODE

#define YYERRCODE   256

Definition at line 1942 of file hlsl.tab.c.

◆ yyerrok

#define yyerrok   (yyerrstatus = 0)

Definition at line 1911 of file hlsl.tab.c.

◆ yyerror

#define yyerror   hlsl_error

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

◆ YYERROR

#define YYERROR   goto yyerrorlab

Definition at line 1918 of file hlsl.tab.c.

◆ YYERROR_VERBOSE

#define YYERROR_VERBOSE   1

Definition at line 973 of file hlsl.tab.c.

◆ YYFINAL

#define YYFINAL   2

Definition at line 1375 of file hlsl.tab.c.

◆ YYFREE

#define YYFREE   free

Definition at line 1303 of file hlsl.tab.c.

◆ YYINITDEPTH

#define YYINITDEPTH   200

Definition at line 2146 of file hlsl.tab.c.

◆ YYLAST

#define YYLAST   821

Definition at line 1377 of file hlsl.tab.c.

◆ yylex

#define yylex   hlsl_lex

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

◆ yylloc

#define yylloc   hlsl_lloc

Definition at line 71 of file hlsl.tab.c.

◆ YYLLOC_DEFAULT

#define YYLLOC_DEFAULT (   Current,
  Rhs,
  N 
)
Value:
if (N) \
{ \
(Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
(Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
(Current).last_line = YYRHSLOC (Rhs, N).last_line; \
(Current).last_column = YYRHSLOC (Rhs, N).last_column; \
} \
else \
{ \
(Current).first_line = (Current).last_line = \
YYRHSLOC (Rhs, 0).last_line; \
(Current).first_column = (Current).last_column = \
YYRHSLOC (Rhs, 0).last_column; \
} \
while (0)
Definition: bidi.c:97
if(!(yy_init))
Definition: macro.lex.yy.c:714
#define YYRHSLOC(Rhs, K)
Definition: hlsl.tab.c:1969

Definition at line 1950 of file hlsl.tab.c.

◆ YYLTYPE_IS_DECLARED

#define YYLTYPE_IS_DECLARED   1

Definition at line 1139 of file hlsl.tab.c.

◆ YYLTYPE_IS_TRIVIAL

#define YYLTYPE_IS_TRIVIAL   1

Definition at line 1140 of file hlsl.tab.c.

◆ yylval

#define yylval   hlsl_lval

Definition at line 69 of file hlsl.tab.c.

◆ YYMALLOC

#define YYMALLOC   malloc

Definition at line 1297 of file hlsl.tab.c.

◆ YYMAXDEPTH

#define YYMAXDEPTH   10000

Definition at line 2157 of file hlsl.tab.c.

◆ YYMAXUTOK

#define YYMAXUTOK   359

Definition at line 1391 of file hlsl.tab.c.

◆ yynerrs

#define yynerrs   hlsl_nerrs

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

◆ YYNNTS

#define YYNNTS   65

Definition at line 1382 of file hlsl.tab.c.

◆ YYNRULES

#define YYNRULES   175

Definition at line 1384 of file hlsl.tab.c.

◆ YYNSTATES

#define YYNSTATES   321

Definition at line 1386 of file hlsl.tab.c.

◆ YYNTOKENS

#define YYNTOKENS   129

Definition at line 1380 of file hlsl.tab.c.

◆ YYPACT_NINF

#define YYPACT_NINF   -237

Definition at line 1535 of file hlsl.tab.c.

◆ yypact_value_is_default

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

Definition at line 1537 of file hlsl.tab.c.

◆ yyparse

#define yyparse   hlsl_parse

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

◆ YYPOPSTACK

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

◆ YYPULL

#define YYPULL   1

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

◆ YYPURE

#define YYPURE   0

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

◆ YYPUSH

#define YYPUSH   0

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

◆ YYRECOVERING

#define YYRECOVERING ( )    (!!yyerrstatus)

Definition at line 1921 of file hlsl.tab.c.

◆ YYRHSLOC

#define YYRHSLOC (   Rhs,
 
)    ((Rhs)[K])

Definition at line 1969 of file hlsl.tab.c.

◆ YYSIZE_MAXIMUM

#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)

Definition at line 1195 of file hlsl.tab.c.

◆ YYSIZE_T

#define YYSIZE_T   size_t

Definition at line 1189 of file hlsl.tab.c.

◆ YYSKELETON_NAME

#define YYSKELETON_NAME   "yacc.c"

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

◆ YYSTACK_ALLOC

#define YYSTACK_ALLOC   YYMALLOC

Definition at line 1283 of file hlsl.tab.c.

◆ YYSTACK_ALLOC_MAXIMUM

#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

Definition at line 1286 of file hlsl.tab.c.

◆ YYSTACK_BYTES

#define YYSTACK_BYTES (   N)
Value:
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
short int yytype_int16
#define YYSTACK_GAP_MAXIMUM
Definition: hlsl.tab.c:1326
Definition: bidi.c:97
union YYSTYPE YYSTYPE
Definition: hlsl.tab.c:1100

Definition at line 1330 of file hlsl.tab.c.

◆ YYSTACK_FREE

#define YYSTACK_FREE   YYFREE

Definition at line 1284 of file hlsl.tab.c.

◆ YYSTACK_GAP_MAXIMUM

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

Definition at line 1326 of file hlsl.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: hlsl.tab.c:1326

Definition at line 1341 of file hlsl.tab.c.

◆ YYSTYPE_IS_DECLARED

#define YYSTYPE_IS_DECLARED   1

Definition at line 1126 of file hlsl.tab.c.

◆ YYSTYPE_IS_TRIVIAL

#define YYSTYPE_IS_TRIVIAL   1

Definition at line 1125 of file hlsl.tab.c.

◆ YYSYNTAX_ERROR

#define YYSYNTAX_ERROR
Value:
yysyntax_error (&yymsg_alloc, &yymsg, \
yyssp, yytoken)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
Definition: hlsl.tab.c:2256

◆ YYTABLE_NINF

#define YYTABLE_NINF   -35

Definition at line 1540 of file hlsl.tab.c.

◆ yytable_value_is_error

#define yytable_value_is_error (   Yytable_value)    0

Definition at line 1542 of file hlsl.tab.c.

◆ YYTERROR

#define YYTERROR   1

Definition at line 1941 of file hlsl.tab.c.

◆ YYTOKENTYPE

#define YYTOKENTYPE

Definition at line 990 of file hlsl.tab.c.

◆ YYTRANSLATE

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

Definition at line 1393 of file hlsl.tab.c.

◆ YYUNDEFTOK

#define YYUNDEFTOK   2

Definition at line 1390 of file hlsl.tab.c.

◆ YYUSE

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

Definition at line 1219 of file hlsl.tab.c.

Typedef Documentation

◆ YYLTYPE

Definition at line 1131 of file hlsl.tab.c.

◆ YYSTYPE

typedef union YYSTYPE YYSTYPE

Definition at line 1100 of file hlsl.tab.c.

◆ yytype_int16

Definition at line 1179 of file hlsl.tab.c.

◆ yytype_int8

Definition at line 1167 of file hlsl.tab.c.

◆ yytype_uint16

typedef unsigned short int yytype_uint16

Definition at line 1173 of file hlsl.tab.c.

◆ yytype_uint8

typedef unsigned char yytype_uint8

Definition at line 1161 of file hlsl.tab.c.

Enumeration Type Documentation

◆ loop_type

Enumerator
LOOP_FOR 
LOOP_WHILE 
LOOP_DO_WHILE 

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

370 {
371  LOOP_FOR,
372  LOOP_WHILE,
374 };

◆ 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 
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 
tEOF 
tNL 
tREM 
tEMPTYBRACKETS 
tTRUE 
tFALSE 
tNOT 
tAND 
tOR 
tXOR 
tEQV 
tIMP 
tNEQ 
tIS 
tLTEQ 
tGTEQ 
tMOD 
tCALL 
tDIM 
tSUB 
tFUNCTION 
tPROPERTY 
tGET 
tLET 
tCONST 
tIF 
tELSE 
tELSEIF 
tEND 
tTHEN 
tEXIT 
tWHILE 
tWEND 
tDO 
tLOOP 
tUNTIL 
tFOR 
tTO 
tSTEP 
tEACH 
tIN 
tSELECT 
tCASE 
tBYREF 
tBYVAL 
tOPTION 
tEXPLICIT 
tSTOP 
tNOTHING 
tEMPTY 
tNULL 
tCLASS 
tSET 
tNEW 
tPUBLIC 
tPRIVATE 
tDEFAULT 
tME 
tERROR 
tNEXT 
tON 
tRESUME 
tGOTO 
tIdentifier 
tString 
tLong 
tShort 
tDouble 
tEOF 
tNL 
tREM 
tEMPTYBRACKETS 
tTRUE 
tFALSE 
tNOT 
tAND 
tOR 
tXOR 
tEQV 
tIMP 
tNEQ 
tIS 
tLTEQ 
tGTEQ 
tMOD 
tCALL 
tDIM 
tSUB 
tFUNCTION 
tPROPERTY 
tGET 
tLET 
tCONST 
tIF 
tELSE 
tELSEIF 
tEND 
tTHEN 
tEXIT 
tWHILE 
tWEND 
tDO 
tLOOP 
tUNTIL 
tFOR 
tTO 
tSTEP 
tEACH 
tIN 
tSELECT 
tCASE 
tBYREF 
tBYVAL 
tOPTION 
tEXPLICIT 
tSTOP 
tNOTHING 
tEMPTY 
tNULL 
tCLASS 
tSET 
tNEW 
tPUBLIC 
tPRIVATE 
tDEFAULT 
tME 
tERROR 
tNEXT 
tON 
tRESUME 
tGOTO 
tIdentifier 
tString 
tLong 
tShort 
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_STRING 
TK_ID 
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_STRING 
TK_ID 
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 991 of file hlsl.tab.c.

992  {
993  KW_BLENDSTATE = 258,
994  KW_BREAK = 259,
995  KW_BUFFER = 260,
996  KW_CBUFFER = 261,
997  KW_COLUMN_MAJOR = 262,
998  KW_COMPILE = 263,
999  KW_CONST = 264,
1000  KW_CONTINUE = 265,
1001  KW_DEPTHSTENCILSTATE = 266,
1002  KW_DEPTHSTENCILVIEW = 267,
1003  KW_DISCARD = 268,
1004  KW_DO = 269,
1005  KW_DOUBLE = 270,
1006  KW_ELSE = 271,
1007  KW_EXTERN = 272,
1008  KW_FALSE = 273,
1009  KW_FOR = 274,
1010  KW_GEOMETRYSHADER = 275,
1011  KW_GROUPSHARED = 276,
1012  KW_IF = 277,
1013  KW_IN = 278,
1014  KW_INLINE = 279,
1015  KW_INOUT = 280,
1016  KW_MATRIX = 281,
1017  KW_NAMESPACE = 282,
1018  KW_NOINTERPOLATION = 283,
1019  KW_OUT = 284,
1020  KW_PASS = 285,
1021  KW_PIXELSHADER = 286,
1022  KW_PRECISE = 287,
1023  KW_RASTERIZERSTATE = 288,
1024  KW_RENDERTARGETVIEW = 289,
1025  KW_RETURN = 290,
1026  KW_REGISTER = 291,
1027  KW_ROW_MAJOR = 292,
1028  KW_SAMPLER = 293,
1029  KW_SAMPLER1D = 294,
1030  KW_SAMPLER2D = 295,
1031  KW_SAMPLER3D = 296,
1032  KW_SAMPLERCUBE = 297,
1033  KW_SAMPLER_STATE = 298,
1035  KW_SHARED = 300,
1036  KW_STATEBLOCK = 301,
1037  KW_STATEBLOCK_STATE = 302,
1038  KW_STATIC = 303,
1039  KW_STRING = 304,
1040  KW_STRUCT = 305,
1041  KW_SWITCH = 306,
1042  KW_TBUFFER = 307,
1043  KW_TECHNIQUE = 308,
1044  KW_TECHNIQUE10 = 309,
1045  KW_TEXTURE = 310,
1046  KW_TEXTURE1D = 311,
1047  KW_TEXTURE1DARRAY = 312,
1048  KW_TEXTURE2D = 313,
1049  KW_TEXTURE2DARRAY = 314,
1050  KW_TEXTURE2DMS = 315,
1051  KW_TEXTURE2DMSARRAY = 316,
1052  KW_TEXTURE3D = 317,
1053  KW_TEXTURE3DARRAY = 318,
1054  KW_TEXTURECUBE = 319,
1055  KW_TRUE = 320,
1056  KW_TYPEDEF = 321,
1057  KW_UNIFORM = 322,
1058  KW_VECTOR = 323,
1059  KW_VERTEXSHADER = 324,
1060  KW_VOID = 325,
1061  KW_VOLATILE = 326,
1062  KW_WHILE = 327,
1063  OP_INC = 328,
1064  OP_DEC = 329,
1065  OP_AND = 330,
1066  OP_OR = 331,
1067  OP_EQ = 332,
1068  OP_LEFTSHIFT = 333,
1069  OP_LEFTSHIFTASSIGN = 334,
1070  OP_RIGHTSHIFT = 335,
1071  OP_RIGHTSHIFTASSIGN = 336,
1072  OP_ELLIPSIS = 337,
1073  OP_LE = 338,
1074  OP_GE = 339,
1075  OP_NE = 340,
1076  OP_ADDASSIGN = 341,
1077  OP_SUBASSIGN = 342,
1078  OP_MULASSIGN = 343,
1079  OP_DIVASSIGN = 344,
1080  OP_MODASSIGN = 345,
1081  OP_ANDASSIGN = 346,
1082  OP_ORASSIGN = 347,
1083  OP_XORASSIGN = 348,
1084  OP_UNKNOWN1 = 349,
1085  OP_UNKNOWN2 = 350,
1086  OP_UNKNOWN3 = 351,
1087  OP_UNKNOWN4 = 352,
1088  PRE_LINE = 353,
1089  VAR_IDENTIFIER = 354,
1090  TYPE_IDENTIFIER = 355,
1091  NEW_IDENTIFIER = 356,
1092  STRING = 357,
1093  C_FLOAT = 358,
1094  C_INTEGER = 359
1095  };
std::wstring STRING
Definition: fontsub.cpp:33

Function Documentation

◆ add_func_parameter()

static BOOL add_func_parameter ( struct list list,
struct parse_parameter param,
const struct source_location loc 
)
static

Definition at line 866 of file hlsl.tab.c.

867 {
868  struct hlsl_ir_var *decl = d3dcompiler_alloc(sizeof(*decl));
869 
870  if (!decl)
871  {
872  ERR("Out of memory.\n");
873  return FALSE;
874  }
875  decl->node.type = HLSL_IR_VAR;
876  decl->node.data_type = param->type;
877  decl->node.loc = *loc;
878  decl->name = param->name;
879  decl->semantic = param->semantic;
880  decl->reg_reservation = param->reg_reservation;
881  decl->modifiers = param->modifiers;
882 
883  if (!add_declaration(hlsl_ctx.cur_scope, decl, FALSE))
884  {
885  free_declaration(decl);
886  return FALSE;
887  }
888  list_add_tail(list, &decl->node.entry);
889  return TRUE;
890 }
const char * semantic
#define TRUE
Definition: types.h:120
const struct reg_reservation * reg_reservation
struct hlsl_ir_node node
static void * d3dcompiler_alloc(SIZE_T size)
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
GLfloat param
Definition: glext.h:5796
struct hlsl_parse_ctx hlsl_ctx
Definition: hlsl.tab.c:87
Definition: _list.h:228
void free_declaration(struct hlsl_ir_var *decl) DECLSPEC_HIDDEN
Definition: utils.c:801
#define ERR(fmt,...)
Definition: debug.h:109
BOOL add_declaration(struct hlsl_scope *scope, struct hlsl_ir_var *decl, BOOL local_var) DECLSPEC_HIDDEN
Definition: utils.c:764
unsigned int modifiers
const char * name

Referenced by yyparse().

◆ add_modifier()

static DWORD add_modifier ( DWORD  modifiers,
DWORD  mod,
const struct YYLTYPE loc 
)
static

Definition at line 4860 of file hlsl.tab.c.

4861 {
4862  if (modifiers & mod)
4863  {
4865  "modifier '%s' already specified", debug_modifiers(mod));
4866  return modifiers;
4867  }
4870  {
4872  "more than one matrix majority keyword");
4873  return modifiers;
4874  }
4875  return modifiers | mod;
4876 }
int first_column
Definition: hlsl.tab.c:1135
void hlsl_report_message(const char *filename, DWORD line, DWORD column, enum hlsl_error_level level, const char *fmt,...)
Definition: hlsl.tab.c:112
#define HLSL_MODIFIER_ROW_MAJOR
int first_line
Definition: hlsl.tab.c:1134
const char * debug_modifiers(DWORD modifiers) DECLSPEC_HIDDEN
Definition: utils.c:1893
struct hlsl_parse_ctx hlsl_ctx
Definition: hlsl.tab.c:87
unsigned int modifiers
static int mod
Definition: i386-dis.c:1273
#define HLSL_MODIFIER_COLUMN_MAJOR

Referenced by yyparse().

◆ add_struct_field()

static BOOL add_struct_field ( struct list fields,
struct hlsl_struct_field field 
)
static

Definition at line 748 of file hlsl.tab.c.

749 {
750  struct hlsl_struct_field *f;
751 
752  LIST_FOR_EACH_ENTRY(f, fields, struct hlsl_struct_field, entry)
753  {
754  if (!strcmp(f->name, field->name))
755  return FALSE;
756  }
757  list_add_tail(fields, &field->entry);
758  return TRUE;
759 }
#define TRUE
Definition: types.h:120
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
GLfloat f
Definition: glext.h:7540
Definition: parser.c:43
uint32_t entry
Definition: isohybrid.c:63
#define f
Definition: ke_i.h:83
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469

Referenced by yyparse().

◆ add_type_to_scope()

static BOOL add_type_to_scope ( struct hlsl_scope scope,
struct hlsl_type def 
)
static

Definition at line 243 of file hlsl.tab.c.

244 {
245  if (get_type(scope, def->name, FALSE))
246  return FALSE;
247 
248  wine_rb_put(&scope->types, def->name, &def->scope_entry);
249  return TRUE;
250 }
#define TRUE
Definition: types.h:120
struct wine_rb_entry scope_entry
const char * name
static int wine_rb_put(struct wine_rb_tree *tree, const void *key, struct wine_rb_entry *entry)
Definition: rbtree.h:215
struct hlsl_type * get_type(struct hlsl_scope *scope, const char *name, BOOL recursive) DECLSPEC_HIDDEN
Definition: utils.c:844
struct wine_rb_tree types

Referenced by add_typedef(), declare_predefined_types(), and yyparse().

◆ add_typedef()

static BOOL add_typedef ( DWORD  modifiers,
struct hlsl_type orig_type,
struct list list,
struct source_location loc 
)
static

Definition at line 821 of file hlsl.tab.c.

823 {
824  BOOL ret;
825  struct hlsl_type *type;
826  struct parse_variable_def *v, *v_next;
827 
828  if (!check_type_modifiers(modifiers, loc))
829  {
833  return FALSE;
834  }
835 
837  {
838  if (v->array_size)
839  type = new_array_type(orig_type, v->array_size);
840  else
841  type = clone_hlsl_type(orig_type);
842  if (!type)
843  {
844  ERR("Out of memory\n");
845  return FALSE;
846  }
847  d3dcompiler_free((void *)type->name);
848  type->name = v->name;
849  type->modifiers |= modifiers;
850 
851  if (type->type != HLSL_CLASS_MATRIX)
852  check_invalid_matrix_modifiers(type->modifiers, &v->loc);
853 
854  ret = add_type_to_scope(hlsl_ctx.cur_scope, type);
855  if (!ret)
856  {
857  hlsl_report_message(v->loc.file, v->loc.line, v->loc.col, HLSL_LEVEL_ERROR,
858  "redefinition of custom type '%s'", v->name);
859  }
861  }
863  return TRUE;
864 }
#define TRUE
Definition: types.h:120
static void check_invalid_matrix_modifiers(DWORD modifiers, struct source_location *loc)
Definition: hlsl.tab.c:166
struct source_location loc
struct hlsl_type * clone_hlsl_type(struct hlsl_type *old) DECLSPEC_HIDDEN
Definition: utils.c:932
static BOOL d3dcompiler_free(void *ptr)
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
void hlsl_report_message(const char *filename, DWORD line, DWORD column, enum hlsl_error_level level, const char *fmt,...)
Definition: hlsl.tab.c:112
unsigned int BOOL
Definition: ntddk_ex.h:94
static BOOL check_type_modifiers(DWORD modifiers, struct source_location *loc)
Definition: hlsl.tab.c:232
struct hlsl_parse_ctx hlsl_ctx
Definition: hlsl.tab.c:87
int ret
uint32_t entry
Definition: isohybrid.c:63
Definition: _list.h:228
#define ERR(fmt,...)
Definition: debug.h:109
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
Definition: list.h:204
const GLdouble * v
Definition: gl.h:2040
static BOOL add_type_to_scope(struct hlsl_scope *scope, struct hlsl_type *def)
Definition: hlsl.tab.c:243
struct hlsl_type * new_array_type(struct hlsl_type *basic_type, unsigned int array_size) DECLSPEC_HIDDEN
Definition: utils.c:831

Referenced by yyparse().

◆ check_invalid_matrix_modifiers()

static void check_invalid_matrix_modifiers ( DWORD  modifiers,
struct source_location loc 
)
static

Definition at line 166 of file hlsl.tab.c.

167 {
169  {
170  hlsl_report_message(loc->file, loc->line, loc->col, HLSL_LEVEL_ERROR,
171  "'row_major' or 'column_major' modifiers are only allowed for matrices");
172  }
173 }
struct source_location loc
void hlsl_report_message(const char *filename, DWORD line, DWORD column, enum hlsl_error_level level, const char *fmt,...)
Definition: hlsl.tab.c:112
#define HLSL_MODIFIER_ROW_MAJOR
#define HLSL_MODIFIER_COLUMN_MAJOR

Referenced by add_typedef(), declare_variable(), and yyparse().

◆ check_type_modifiers()

static BOOL check_type_modifiers ( DWORD  modifiers,
struct source_location loc 
)
static

Definition at line 232 of file hlsl.tab.c.

233 {
234  if (modifiers & ~HLSL_TYPE_MODIFIERS_MASK)
235  {
236  hlsl_report_message(loc->file, loc->line, loc->col, HLSL_LEVEL_ERROR,
237  "modifier not allowed on typedefs");
238  return FALSE;
239  }
240  return TRUE;
241 }
#define TRUE
Definition: types.h:120
struct source_location loc
void hlsl_report_message(const char *filename, DWORD line, DWORD column, enum hlsl_error_level level, const char *fmt,...)
Definition: hlsl.tab.c:112
#define HLSL_TYPE_MODIFIERS_MASK

Referenced by add_typedef(), and yyparse().

◆ components_count_expr_list()

static unsigned int components_count_expr_list ( struct list list)
static

Definition at line 449 of file hlsl.tab.c.

450 {
451  struct hlsl_ir_node *node;
452  unsigned int count = 0;
453 
455  {
456  count += components_count_type(node->data_type);
457  }
458  return count;
459 }
GLuint GLuint GLsizei count
Definition: gl.h:1545
unsigned int components_count_type(struct hlsl_type *type) DECLSPEC_HIDDEN
Definition: utils.c:860
struct node node
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
uint32_t entry
Definition: isohybrid.c:63
Definition: _list.h:228
Definition: dlist.c:348

Referenced by yyparse().

◆ create_loop()

static struct list* create_loop ( enum loop_type  type,
struct list init,
struct list cond,
struct hlsl_ir_node iter,
struct list body,
struct source_location loc 
)
static

Definition at line 376 of file hlsl.tab.c.

378 {
379  struct list *list = NULL;
380  struct hlsl_ir_loop *loop = NULL;
381  struct hlsl_ir_if *cond_jump = NULL;
382 
383  list = d3dcompiler_alloc(sizeof(*list));
384  if (!list)
385  goto oom;
386  list_init(list);
387 
388  if (init)
390 
391  loop = d3dcompiler_alloc(sizeof(*loop));
392  if (!loop)
393  goto oom;
394  loop->node.type = HLSL_IR_LOOP;
395  loop->node.loc = *loc;
396  list_add_tail(list, &loop->node.entry);
397  loop->body = d3dcompiler_alloc(sizeof(*loop->body));
398  if (!loop->body)
399  goto oom;
400  list_init(loop->body);
401 
402  cond_jump = loop_condition(cond);
403  if (!cond_jump)
404  goto oom;
405 
406  if (type != LOOP_DO_WHILE)
407  list_add_tail(loop->body, &cond_jump->node.entry);
408 
409  list_move_tail(loop->body, body);
410 
411  if (iter)
412  list_add_tail(loop->body, &iter->entry);
413 
414  if (type == LOOP_DO_WHILE)
415  list_add_tail(loop->body, &cond_jump->node.entry);
416 
418  d3dcompiler_free(cond);
420  return list;
421 
422 oom:
423  ERR("Out of memory.\n");
424  if (loop)
425  d3dcompiler_free(loop->body);
426  d3dcompiler_free(loop);
427  d3dcompiler_free(cond_jump);
430  free_instr_list(cond);
431  free_instr(iter);
433  return NULL;
434 }
void free_instr(struct hlsl_ir_node *node) DECLSPEC_HIDDEN
Definition: utils.c:2395
static BOOL d3dcompiler_free(void *ptr)
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
static int init
Definition: wintirpc.c:33
void free_instr_list(struct list *list) DECLSPEC_HIDDEN
Definition: utils.c:2295
static void * d3dcompiler_alloc(SIZE_T size)
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
smooth NULL
Definition: ftsmooth.c:416
__WINE_SERVER_LIST_INLINE void list_move_head(struct list *dst, struct list *src)
Definition: list.h:176
__WINE_SERVER_LIST_INLINE void list_move_tail(struct list *dst, struct list *src)
Definition: list.h:164
struct list * body
Definition: _list.h:228
#define ERR(fmt,...)
Definition: debug.h:109
#define list
Definition: rosglue.h:35
static const void * body(MD5_CTX *ctx, const void *data, unsigned long size)
Definition: md5.c:100
struct hlsl_ir_node node
struct hlsl_ir_node node
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149
static struct hlsl_ir_if * loop_condition(struct list *cond_list)
Definition: hlsl.tab.c:313

Referenced by yyparse().

◆ debug_dump_decl()

static void debug_dump_decl ( struct hlsl_type type,
DWORD  modifiers,
const char declname,
unsigned int  line_no 
)
static

Definition at line 158 of file hlsl.tab.c.

159 {
160  TRACE("Line %u: ", line_no);
161  if (modifiers)
162  TRACE("%s ", debug_modifiers(modifiers));
163  TRACE("%s %s;\n", debug_hlsl_type(type), declname);
164 }
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
const char * debug_hlsl_type(const struct hlsl_type *type) DECLSPEC_HIDDEN
Definition: utils.c:1866
#define TRACE(s)
Definition: solgame.cpp:4
const char * debug_modifiers(DWORD modifiers) DECLSPEC_HIDDEN
Definition: utils.c:1893

Referenced by declare_vars(), and gen_struct_fields().

◆ declare_predefined_types()

static void declare_predefined_types ( struct hlsl_scope scope)
static

Definition at line 252 of file hlsl.tab.c.

253 {
254  struct hlsl_type *type;
255  unsigned int x, y, bt;
256  static const char * const names[] =
257  {
258  "float",
259  "half",
260  "double",
261  "int",
262  "uint",
263  "bool",
264  };
265  char name[10];
266 
267  for (bt = 0; bt <= HLSL_TYPE_LAST_SCALAR; ++bt)
268  {
269  for (y = 1; y <= 4; ++y)
270  {
271  for (x = 1; x <= 4; ++x)
272  {
273  sprintf(name, "%s%ux%u", names[bt], x, y);
275  add_type_to_scope(scope, type);
276 
277  if (y == 1)
278  {
279  sprintf(name, "%s%u", names[bt], x);
281  add_type_to_scope(scope, type);
282 
283  if (x == 1)
284  {
285  sprintf(name, "%s", names[bt]);
287  add_type_to_scope(scope, type);
288  }
289  }
290  }
291  }
292  }
293 
294  /* DX8 effects predefined types */
296  add_type_to_scope(scope, type);
298  add_type_to_scope(scope, type);
300  add_type_to_scope(scope, type);
302  add_type_to_scope(scope, type);
304  add_type_to_scope(scope, type);
306  add_type_to_scope(scope, type);
308  add_type_to_scope(scope, type);
310  add_type_to_scope(scope, type);
311 }
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
struct hlsl_type * new_hlsl_type(const char *name, enum hlsl_type_class type_class, enum hlsl_base_type base_type, unsigned dimx, unsigned dimy) DECLSPEC_HIDDEN
Definition: utils.c:809
#define sprintf(buf, format,...)
Definition: sprintf.c:55
GLuint GLuint * names
Definition: glext.h:11545
static char * d3dcompiler_strdup(const char *string)
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
static BOOL add_type_to_scope(struct hlsl_scope *scope, struct hlsl_type *def)
Definition: hlsl.tab.c:243
Definition: name.c:36

Referenced by parse_hlsl().

◆ declare_variable()

static BOOL declare_variable ( struct hlsl_ir_var decl,
BOOL  local 
)
static

Definition at line 175 of file hlsl.tab.c.

176 {
177  BOOL ret;
178 
179  TRACE("Declaring variable %s.\n", decl->name);
180  if (decl->node.data_type->type == HLSL_CLASS_MATRIX)
181  {
183  {
184  decl->modifiers |= hlsl_ctx.matrix_majority == HLSL_ROW_MAJOR
186  }
187  }
188  else
189  check_invalid_matrix_modifiers(decl->modifiers, &decl->node.loc);
190 
191  if (local)
192  {
195  if (invalid)
196  {
197  hlsl_report_message(decl->node.loc.file, decl->node.loc.line, decl->node.loc.col, HLSL_LEVEL_ERROR,
198  "modifier '%s' invalid for local variables", debug_modifiers(invalid));
199  }
200  if (decl->semantic)
201  {
202  hlsl_report_message(decl->node.loc.file, decl->node.loc.line, decl->node.loc.col, HLSL_LEVEL_ERROR,
203  "semantics are not allowed on local variables");
204  return FALSE;
205  }
206  }
207  else
208  {
209  if (find_function(decl->name))
210  {
211  hlsl_report_message(decl->node.loc.file, decl->node.loc.line, decl->node.loc.col, HLSL_LEVEL_ERROR,
212  "redefinition of '%s'", decl->name);
213  return FALSE;
214  }
215  }
216  ret = add_declaration(hlsl_ctx.cur_scope, decl, local);
217  if (!ret)
218  {
219  struct hlsl_ir_var *old = get_variable(hlsl_ctx.cur_scope, decl->name);
220 
221  hlsl_report_message(decl->node.loc.file, decl->node.loc.line, decl->node.loc.col, HLSL_LEVEL_ERROR,
222  "\"%s\" already declared", decl->name);
223  hlsl_report_message(old->node.loc.file, old->node.loc.line, old->node.loc.col, HLSL_LEVEL_NOTE,
224  "\"%s\" was previously declared here", old->name);
225  return FALSE;
226  }
227  return TRUE;
228 }
const char * semantic
static const WCHAR invalid[]
Definition: assoc.c:39
#define TRUE
Definition: types.h:120
static void check_invalid_matrix_modifiers(DWORD modifiers, struct source_location *loc)
Definition: hlsl.tab.c:166
struct hlsl_ir_node node
void hlsl_report_message(const char *filename, DWORD line, DWORD column, enum hlsl_error_level level, const char *fmt,...)
Definition: hlsl.tab.c:112
struct hlsl_ir_var * get_variable(struct hlsl_scope *scope, const char *name) DECLSPEC_HIDDEN
Definition: utils.c:787
unsigned int BOOL
Definition: ntddk_ex.h:94
#define HLSL_STORAGE_GROUPSHARED
#define HLSL_MODIFIER_ROW_MAJOR
#define HLSL_STORAGE_SHARED
#define HLSL_STORAGE_EXTERN
#define TRACE(s)
Definition: solgame.cpp:4
unsigned long DWORD
Definition: ntddk_ex.h:95
const char * debug_modifiers(DWORD modifiers) DECLSPEC_HIDDEN
Definition: utils.c:1893
#define HLSL_STORAGE_UNIFORM
struct hlsl_parse_ctx hlsl_ctx
Definition: hlsl.tab.c:87
int ret
BOOL find_function(const char *name) DECLSPEC_HIDDEN
Definition: utils.c:855
#define local
Definition: zutil.h:30
BOOL add_declaration(struct hlsl_scope *scope, struct hlsl_ir_var *decl, BOOL local_var) DECLSPEC_HIDDEN
Definition: utils.c:764
unsigned int modifiers
const char * name
#define HLSL_MODIFIER_COLUMN_MAJOR

Referenced by declare_vars().

◆ declare_vars()

static struct list* declare_vars ( struct hlsl_type basic_type,
DWORD  modifiers,
struct list var_list 
)
static

Definition at line 613 of file hlsl.tab.c.

614 {
615  struct hlsl_type *type;
616  struct parse_variable_def *v, *v_next;
617  struct hlsl_ir_var *var;
618  struct hlsl_ir_node *assignment;
619  BOOL ret, local = TRUE;
620  struct list *statements_list = d3dcompiler_alloc(sizeof(*statements_list));
621 
622  if (!statements_list)
623  {
624  ERR("Out of memory.\n");
625  LIST_FOR_EACH_ENTRY_SAFE(v, v_next, var_list, struct parse_variable_def, entry)
627  d3dcompiler_free(var_list);
628  return NULL;
629  }
630  list_init(statements_list);
631 
632  if (!var_list)
633  return statements_list;
634 
635  LIST_FOR_EACH_ENTRY_SAFE(v, v_next, var_list, struct parse_variable_def, entry)
636  {
637  var = d3dcompiler_alloc(sizeof(*var));
638  if (!var)
639  {
640  ERR("Out of memory.\n");
642  continue;
643  }
644  var->node.type = HLSL_IR_VAR;
645  if (v->array_size)
646  type = new_array_type(basic_type, v->array_size);
647  else
648  type = basic_type;
649  var->node.data_type = type;
650  var->node.loc = v->loc;
651  var->name = v->name;
652  var->modifiers = modifiers;
653  var->semantic = v->semantic;
654  var->reg_reservation = v->reg_reservation;
655  debug_dump_decl(type, modifiers, v->name, v->loc.line);
656 
657  if (hlsl_ctx.cur_scope == hlsl_ctx.globals)
658  {
660  local = FALSE;
661  }
662 
663  if (var->modifiers & HLSL_MODIFIER_CONST && !(var->modifiers & HLSL_STORAGE_UNIFORM) && !v->initializer)
664  {
665  hlsl_report_message(v->loc.file, v->loc.line, v->loc.col,
666  HLSL_LEVEL_ERROR, "const variable without initializer");
667  free_declaration(var);
669  continue;
670  }
671 
672  ret = declare_variable(var, local);
673  if (!ret)
674  {
675  free_declaration(var);
677  continue;
678  }
679  TRACE("Declared variable %s.\n", var->name);
680 
681  if (v->initializer)
682  {
683  unsigned int size = initializer_size(v->initializer);
684  struct hlsl_ir_node *node;
685 
686  TRACE("Variable with initializer.\n");
687  if (type->type <= HLSL_CLASS_LAST_NUMERIC
688  && type->dimx * type->dimy != size && size != 1)
689  {
690  if (size < type->dimx * type->dimy)
691  {
692  hlsl_report_message(v->loc.file, v->loc.line, v->loc.col, HLSL_LEVEL_ERROR,
693  "'%s' initializer does not match", v->name);
694  free_instr_list(v->initializer);
696  continue;
697  }
698  }
699  if ((type->type == HLSL_CLASS_STRUCT || type->type == HLSL_CLASS_ARRAY)
701  {
702  hlsl_report_message(v->loc.file, v->loc.line, v->loc.col, HLSL_LEVEL_ERROR,
703  "'%s' initializer does not match", v->name);
704  free_instr_list(v->initializer);
706  continue;
707  }
708 
709  if (type->type == HLSL_CLASS_STRUCT)
710  {
711  struct_var_initializer(statements_list, var, v->initializer);
713  continue;
714  }
715  if (type->type > HLSL_CLASS_LAST_NUMERIC)
716  {
717  FIXME("Initializers for non scalar/struct variables not supported yet.\n");
718  free_instr_list(v->initializer);
720  continue;
721  }
722  if (v->array_size > 0)
723  {
724  FIXME("Initializing arrays is not supported yet.\n");
725  free_instr_list(v->initializer);
727  continue;
728  }
729  if (list_count(v->initializer) > 1)
730  {
731  FIXME("Complex initializers are not supported yet.\n");
732  free_instr_list(v->initializer);
734  continue;
735  }
736  node = LIST_ENTRY(list_head(v->initializer), struct hlsl_ir_node, entry);
737  assignment = make_assignment(&var->node, ASSIGN_OP_ASSIGN,
739  list_add_tail(statements_list, &assignment->entry);
740  d3dcompiler_free(v->initializer);
741  }
743  }
744  d3dcompiler_free(var_list);
745  return statements_list;
746 }
const char * semantic
static BOOL declare_variable(struct hlsl_ir_var *decl, BOOL local)
Definition: hlsl.tab.c:175
#define TRUE
Definition: types.h:120
const struct reg_reservation * reg_reservation
#define BWRITERSP_WRITEMASK_ALL
#define HLSL_MODIFIER_CONST
unsigned int components_count_type(struct hlsl_type *type) DECLSPEC_HIDDEN
Definition: utils.c:860
struct hlsl_ir_node node
static BOOL d3dcompiler_free(void *ptr)
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
void hlsl_report_message(const char *filename, DWORD line, DWORD column, enum hlsl_error_level level, const char *fmt,...)
Definition: hlsl.tab.c:112
void free_instr_list(struct list *list) DECLSPEC_HIDDEN
Definition: utils.c:2295
static void * d3dcompiler_alloc(SIZE_T size)
__WINE_SERVER_LIST_INLINE struct list * list_head(const struct list *list)
Definition: list.h:131
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
struct node node
unsigned int BOOL
Definition: ntddk_ex.h:94
__WINE_SERVER_LIST_INLINE unsigned int list_count(const struct list *list)
Definition: list.h:155
#define FIXME(fmt,...)
Definition: debug.h:110
smooth NULL
Definition: ftsmooth.c:416
static unsigned int initializer_size(struct list *initializer)
Definition: hlsl.tab.c:436
#define TRACE(s)
Definition: solgame.cpp:4
GLsizeiptr size
Definition: glext.h:5919
#define HLSL_STORAGE_UNIFORM
struct hlsl_parse_ctx hlsl_ctx
Definition: hlsl.tab.c:87
int ret
uint32_t entry
Definition: isohybrid.c:63
Definition: _list.h:228
void free_declaration(struct hlsl_ir_var *decl) DECLSPEC_HIDDEN
Definition: utils.c:801
#define local
Definition: zutil.h:30
#define ERR(fmt,...)
Definition: debug.h:109
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
Definition: list.h:204
const GLdouble * v
Definition: gl.h:2040
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149
struct hlsl_ir_node * make_assignment(struct hlsl_ir_node *left, enum parse_assign_op assign_op, DWORD writemask, struct hlsl_ir_node *right) DECLSPEC_HIDDEN
Definition: utils.c:1568
unsigned int modifiers
const char * name
static void debug_dump_decl(struct hlsl_type *type, DWORD modifiers, const char *declname, unsigned int line_no)
Definition: hlsl.tab.c:158
#define LIST_ENTRY(type)
Definition: queue.h:175
struct hlsl_type * new_array_type(struct hlsl_type *basic_type, unsigned int array_size) DECLSPEC_HIDDEN
Definition: utils.c:831
static void struct_var_initializer(struct list *list, struct hlsl_ir_var *var, struct list *initializer)
Definition: hlsl.tab.c:558
Definition: dlist.c:348

Referenced by yyparse().

◆ dump_function()

static void dump_function ( struct wine_rb_entry entry,
void context 
)
static

Definition at line 4885 of file hlsl.tab.c.

4886 {
4889 }
GLenum func
Definition: glext.h:6028
smooth NULL
Definition: ftsmooth.c:416
#define WINE_RB_ENTRY_VALUE(element, type, field)
Definition: rbtree.h:31
uint32_t entry
Definition: isohybrid.c:63
static void wine_rb_for_each_entry(struct wine_rb_tree *tree, wine_rb_traverse_func_t *callback, void *context)
Definition: rbtree.h:185
static void dump_function_decl(struct wine_rb_entry *entry, void *context)
Definition: hlsl.tab.c:4878

Referenced by parse_hlsl().

◆ dump_function_decl()

static void dump_function_decl ( struct wine_rb_entry entry,
void context 
)
static

Definition at line 4878 of file hlsl.tab.c.

4879 {
4881  if (func->body)
4883 }
GLenum func
Definition: glext.h:6028
void debug_dump_ir_function_decl(const struct hlsl_ir_function_decl *func) DECLSPEC_HIDDEN
Definition: utils.c:2259
#define WINE_RB_ENTRY_VALUE(element, type, field)
Definition: rbtree.h:31
uint32_t entry
Definition: isohybrid.c:63

Referenced by dump_function().

◆ 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:603
static PVOID ptr
Definition: dispmode.c:27
HANDLE ProcessHeap
Definition: servman.c:15

◆ gen_struct_fields()

static struct list* gen_struct_fields ( struct hlsl_type type,
DWORD  modifiers,
struct list fields 
)
static

Definition at line 761 of file hlsl.tab.c.

762 {
763  struct parse_variable_def *v, *v_next;
764  struct hlsl_struct_field *field;
765  struct list *list;
766 
767  list = d3dcompiler_alloc(sizeof(*list));
768  if (!list)
769  {
770  ERR("Out of memory.\n");
771  return NULL;
772  }
773  list_init(list);
774  LIST_FOR_EACH_ENTRY_SAFE(v, v_next, fields, struct parse_variable_def, entry)
775  {
776  debug_dump_decl(type, 0, v->name, v->loc.line);
777  field = d3dcompiler_alloc(sizeof(*field));
778  if (!field)
779  {
780  ERR("Out of memory.\n");
782  return list;
783  }
784  field->type = type;
785  field->name = v->name;
786  field->modifiers = modifiers;
787  field->semantic = v->semantic;
788  if (v->initializer)
789  {
790  hlsl_report_message(v->loc.file, v->loc.line, v->loc.col, HLSL_LEVEL_ERROR,
791  "struct field with an initializer.\n");
792  free_instr_list(v->initializer);
793  }
794  list_add_tail(list, &field->entry);
796  }
797  d3dcompiler_free(fields);
798  return list;
799 }
static BOOL d3dcompiler_free(void *ptr)
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
void hlsl_report_message(const char *filename, DWORD line, DWORD column, enum hlsl_error_level level, const char *fmt,...)
Definition: hlsl.tab.c:112
void free_instr_list(struct list *list) DECLSPEC_HIDDEN
Definition: utils.c:2295
static void * d3dcompiler_alloc(SIZE_T size)
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
smooth NULL
Definition: ftsmooth.c:416
Definition: parser.c:43
uint32_t entry
Definition: isohybrid.c:63
Definition: _list.h:228
#define ERR(fmt,...)
Definition: debug.h:109
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
Definition: list.h:204
const GLdouble * v
Definition: gl.h:2040
#define list
Definition: rosglue.h:35
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149
static void debug_dump_decl(struct hlsl_type *type, DWORD modifiers, const char *declname, unsigned int line_no)
Definition: hlsl.tab.c:158

Referenced by yyparse().

◆ get_overloaded_func()

static const struct hlsl_ir_function_decl* get_overloaded_func ( struct wine_rb_tree funcs,
char name,
struct list params,
BOOL  exact_signature 
)
static

Definition at line 934 of file hlsl.tab.c.

936 {
937  struct hlsl_ir_function *func;
938  struct wine_rb_entry *entry;
939 
941  if (entry)
942  {
944 
945  entry = wine_rb_get(&func->overloads, params);
946  if (!entry)
947  {
948  if (!exact_signature)
949  FIXME("No exact match, search for a compatible overloaded function (if any).\n");
950  return NULL;
951  }
953  }
954  return NULL;
955 }
GLenum func
Definition: glext.h:6028
GLenum const GLfloat * params
Definition: glext.h:5645
#define FIXME(fmt,...)
Definition: debug.h:110
smooth NULL
Definition: ftsmooth.c:416
#define WINE_RB_ENTRY_VALUE(element, type, field)
Definition: rbtree.h:31
static struct __wine_debug_functions funcs
Definition: debug.c:59
uint32_t entry
Definition: isohybrid.c:63
Definition: rbtree.h:35
Definition: name.c:36
static struct wine_rb_entry * wine_rb_get(const struct wine_rb_tree *tree, const void *key)
Definition: rbtree.h:203

Referenced by yyparse().

◆ get_swizzle()

static struct hlsl_ir_swizzle* get_swizzle ( struct hlsl_ir_node value,
const char swizzle,
struct source_location loc 
)
static

Definition at line 476 of file hlsl.tab.c.

478 {
479  unsigned int len = strlen(swizzle), component = 0;
480  unsigned int i, set, swiz = 0;
481  BOOL valid;
482 
483  if (value->data_type->type == HLSL_CLASS_MATRIX)
484  {
485  /* Matrix swizzle */
486  BOOL m_swizzle;
487  unsigned int inc, x, y;
488 
489  if (len < 3 || swizzle[0] != '_')
490  return NULL;
491  m_swizzle = swizzle[1] == 'm';
492  inc = m_swizzle ? 4 : 3;
493 
494  if (len % inc || len > inc * 4)
495  return NULL;
496 
497  for (i = 0; i < len; i += inc)
498  {
499  if (swizzle[i] != '_')
500  return NULL;
501  if (m_swizzle)
502  {
503  if (swizzle[i + 1] != 'm')
504  return NULL;
505  x = swizzle[i + 2] - '0';
506  y = swizzle[i + 3] - '0';
507  }
508  else
509  {
510  x = swizzle[i + 1] - '1';
511  y = swizzle[i + 2] - '1';
512  }
513 
514  if (x >= value->data_type->dimx || y >= value->data_type->dimy)
515  return NULL;
516  swiz |= (y << 4 | x) << component * 8;
517  component++;
518  }
519  return new_swizzle(swiz, component, value, loc);
520  }
521 
522  /* Vector swizzle */
523  if (len > 4)
524  return NULL;
525 
526  for (set = 0; set < 2; ++set)
527  {
528  valid = TRUE;
529  component = 0;
530  for (i = 0; i < len; ++i)
531  {
532  char c[2][4] = {{'x', 'y', 'z', 'w'}, {'r', 'g', 'b', 'a'}};
533  unsigned int s = 0;
534 
535  for (s = 0; s < 4; ++s)
536  {
537  if (swizzle[i] == c[set][s])
538  break;
539  }
540  if (s == 4)
541  {
542  valid = FALSE;
543  break;
544  }
545 
546  if (s >= value->data_type->dimx)
547  return NULL;
548  swiz |= s << component * 2;
549  component++;
550  }
551  if (valid)
552  return new_swizzle(swiz, component, value, loc);
553  }
554 
555  return NULL;
556 }
#define TRUE
Definition: types.h:120
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
static struct hlsl_ir_swizzle * new_swizzle(DWORD s, unsigned int components, struct hlsl_ir_node *val, struct source_location *loc)
Definition: hlsl.tab.c:461
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
unsigned int BOOL
Definition: ntddk_ex.h:94
smooth NULL
Definition: ftsmooth.c:416
const GLubyte * c
Definition: glext.h:8905
static UINT set(struct ID3DXConstantTableImpl *table, IDirect3DDevice9 *device, struct ctab_constant *constant, const void **indata, D3DXPARAMETER_TYPE intype, UINT *size, UINT incol, D3DXPARAMETER_CLASS inclass, UINT index, BOOL is_pointer)
Definition: shader.c:1095
enum value::value_type type
GLenum GLsizei len
Definition: glext.h:6722
GLdouble s
Definition: gl.h:2039
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLuint GLenum swizzle
Definition: glext.h:9511
Definition: _set.h:46

Referenced by yyparse().

◆ hlsl_error()

static void hlsl_error ( const char s)
static

Definition at line 153 of file hlsl.tab.c.

154 {
155  hlsl_report_message(hlsl_ctx.source_file, hlsl_ctx.line_no, hlsl_ctx.column, HLSL_LEVEL_ERROR, "%s", s);
156 }
void hlsl_report_message(const char *filename, DWORD line, DWORD column, enum hlsl_error_level level, const char *fmt,...)
Definition: hlsl.tab.c:112
struct hlsl_parse_ctx hlsl_ctx
Definition: hlsl.tab.c:87
GLdouble s
Definition: gl.h:2039

◆ hlsl_get_error_level_name()

static const char* hlsl_get_error_level_name ( enum hlsl_error_level  level)
static

Definition at line 101 of file hlsl.tab.c.

102 {
103  static const char * const names[] =
104  {
105  "error",
106  "warning",
107  "note",
108  };
109  return names[level];
110 }
GLint level
Definition: gl.h:1546
GLuint GLuint * names
Definition: glext.h:11545

Referenced by hlsl_report_message().

◆ hlsl_lex()

int hlsl_lex ( void  )

◆ hlsl_message()

void hlsl_message ( const char fmt,
  ... 
)

Definition at line 92 of file hlsl.tab.c.

93 {
94  va_list args;
95 
96  va_start(args, fmt);
97  compilation_message(&hlsl_ctx.messages, fmt, args);
98  va_end(args);
99 }
Definition: match.c:390
#define va_end(ap)
Definition: acmsvcex.h:90
void compilation_message(struct compilation_messages *msg, const char *fmt, va_list args) DECLSPEC_HIDDEN
Definition: utils.c:722
char * va_list
Definition: acmsvcex.h:78
struct hlsl_parse_ctx hlsl_ctx
Definition: hlsl.tab.c:87
#define va_start(ap, A)
Definition: acmsvcex.h:91
#define args
Definition: format.c:66
Definition: dsound.c:943

Referenced by hlsl_report_message(), and yyparse().

◆ hlsl_parse()

int hlsl_parse ( void  )

Referenced by parse_hlsl().

◆ hlsl_report_message()

void hlsl_report_message ( const char filename,
DWORD  line,
DWORD  column,
enum hlsl_error_level  level,
const char fmt,
  ... 
)

Definition at line 112 of file hlsl.tab.c.

114 {
115  va_list args;
116  char *string = NULL;
117  int rc, size = 0;
118 
119  while (1)
120  {
121  va_start(args, fmt);
122  rc = vsnprintf(string, size, fmt, args);
123  va_end(args);
124 
125  if (rc >= 0 && rc < size)
126  break;
127 
128  if (rc >= size)
129  size = rc + 1;
130  else
131  size = size ? size * 2 : 32;
132 
133  if (!string)
134  string = d3dcompiler_alloc(size);
135  else
136  string = d3dcompiler_realloc(string, size);
137  if (!string)
138  {
139  ERR("Error reallocating memory for a string.\n");
140  return;
141  }
142  }
143 
144  hlsl_message("%s:%u:%u: %s: %s\n", filename, line, column, hlsl_get_error_level_name(level), string);
145  d3dcompiler_free(string);
146 
147  if (level == HLSL_LEVEL_ERROR)
149  else if (level == HLSL_LEVEL_WARNING)
151 }
#define vsnprintf
Definition: tif_win32.c:406
GLint level
Definition: gl.h:1546
static void * d3dcompiler_realloc(void *ptr, SIZE_T size)
static BOOL d3dcompiler_free(void *ptr)
const char * filename
Definition: ioapi.h:135
Definition: match.c:390
static void * d3dcompiler_alloc(SIZE_T size)
#define va_end(ap)
Definition: acmsvcex.h:90
smooth NULL
Definition: ftsmooth.c:416
Definition: parser.c:48
char * va_list
Definition: acmsvcex.h:78
GLsizeiptr size
Definition: glext.h:5919
static const char * hlsl_get_error_level_name(enum hlsl_error_level level)
Definition: hlsl.tab.c:101
struct hlsl_parse_ctx hlsl_ctx
Definition: hlsl.tab.c:87
static void set_parse_status(enum parse_status *current, enum parse_status update)
#define ERR(fmt,...)
Definition: debug.h:109
#define va_start(ap, A)
Definition: acmsvcex.h:91
void hlsl_message(const char *fmt,...)
Definition: hlsl.tab.c:92
#define args
Definition: format.c:66
Definition: dsound.c:943

Referenced by add_modifier(), add_typedef(), check_invalid_matrix_modifiers(), check_