ReactOS  0.4.13-dev-482-ge57f103
parser.tab.c File Reference
#include "config.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include <assert.h>
#include <ctype.h>
#include <string.h>
#include "widl.h"
#include "utils.h"
#include "parser.h"
#include "header.h"
#include "typelib.h"
#include "typegen.h"
#include "expr.h"
#include "typetree.h"
#include <stddef.h>
Include dependency graph for parser.tab.c:

Go to the source code of this file.

Classes

struct  typenode
 
struct  _import_t
 
struct  _decl_spec_t
 
union  YYSTYPE
 
union  yyalloc
 
struct  type_pool_node_t
 
struct  rtype
 
struct  rconst
 
struct  allowed_attr
 

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   parser_parse
 
#define yylex   parser_lex
 
#define yyerror   parser_error
 
#define yydebug   parser_debug
 
#define yynerrs   parser_nerrs
 
#define yylval   parser_lval
 
#define yychar   parser_char
 
#define YY_NULL   0
 
#define YYERROR_VERBOSE   1
 
#define YY_PARSER_E_REACTOSSYNC_MSVC_HOST_TOOLS_SDK_TOOLS_WIDL_PARSER_TAB_H_INCLUDED
 
#define YYDEBUG   0
 
#define YYTOKENTYPE
 
#define YYSTYPE_IS_TRIVIAL   1
 
#define YYSTYPE_IS_DECLARED   1
 
#define YYSIZE_T   size_t
 
#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)
 
#define YY_(Msgid)   Msgid
 
#define 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   3
 
#define YYLAST   3047
 
#define YYNTOKENS   213
 
#define YYNNTS   113
 
#define YYNRULES   410
 
#define YYNSTATES   718
 
#define YYUNDEFTOK   2
 
#define YYMAXUTOK   443
 
#define YYTRANSLATE(YYX)   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
#define YYPACT_NINF   -560
 
#define yypact_value_is_default(Yystate)   (!!((Yystate) == (-560)))
 
#define YYTABLE_NINF   -405
 
#define yytable_value_is_error(Yytable_value)   0
 
#define yyerrok   (yyerrstatus = 0)
 
#define yyclearin   (yychar = YYEMPTY)
 
#define YYEMPTY   (-2)
 
#define YYEOF   0
 
#define YYACCEPT   goto yyacceptlab
 
#define YYABORT   goto yyabortlab
 
#define YYERROR   goto yyerrorlab
 
#define YYRECOVERING()   (!!yyerrstatus)
 
#define YYBACKUP(Token, Value)
 
#define YYTERROR   1
 
#define YYERRCODE   256
 
#define YYDPRINTF(Args)
 
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
 
#define YY_STACK_PRINT(Bottom, Top)
 
#define YY_REDUCE_PRINT(Rule)
 
#define YYINITDEPTH   200
 
#define YYMAXDEPTH   10000
 
#define YYCASE_(N, S)
 
#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
#define YYSYNTAX_ERROR
 

Typedefs

typedef struct list typelist_t
 
typedef struct _decl_spec_t decl_spec_t
 
typedef union YYSTYPE YYSTYPE
 
typedef unsigned char yytype_uint8
 
typedef signed char yytype_int8
 
typedef unsigned short int yytype_uint16
 
typedef short int yytype_int16
 
typedef int(* map_attrs_filter_t) (attr_list_t *, const attr_t *)
 

Enumerations

enum  yytokentype {
  INSTR_ADD = 258, INSTR_NOP = 259, INSTR_MOV = 260, INSTR_SUB = 261,
  INSTR_MAD = 262, INSTR_MUL = 263, INSTR_RCP = 264, INSTR_RSQ = 265,
  INSTR_DP3 = 266, INSTR_DP4 = 267, INSTR_MIN = 268, INSTR_MAX = 269,
  INSTR_SLT = 270, INSTR_SGE = 271, INSTR_ABS = 272, INSTR_EXP = 273,
  INSTR_LOG = 274, INSTR_EXPP = 275, INSTR_LOGP = 276, INSTR_DST = 277,
  INSTR_LRP = 278, INSTR_FRC = 279, INSTR_POW = 280, INSTR_CRS = 281,
  INSTR_SGN = 282, INSTR_NRM = 283, INSTR_SINCOS = 284, INSTR_M4x4 = 285,
  INSTR_M4x3 = 286, INSTR_M3x4 = 287, INSTR_M3x3 = 288, INSTR_M3x2 = 289,
  INSTR_DCL = 290, INSTR_DEF = 291, INSTR_DEFB = 292, INSTR_DEFI = 293,
  INSTR_REP = 294, INSTR_ENDREP = 295, INSTR_IF = 296, INSTR_ELSE = 297,
  INSTR_ENDIF = 298, INSTR_BREAK = 299, INSTR_BREAKP = 300, INSTR_CALL = 301,
  INSTR_CALLNZ = 302, INSTR_LOOP = 303, INSTR_RET = 304, INSTR_ENDLOOP = 305,
  INSTR_LABEL = 306, INSTR_SETP = 307, INSTR_TEXLDL = 308, INSTR_LIT = 309,
  INSTR_MOVA = 310, INSTR_CND = 311, INSTR_CMP = 312, INSTR_DP2ADD = 313,
  INSTR_TEXCOORD = 314, INSTR_TEXCRD = 315, INSTR_TEXKILL = 316, INSTR_TEX = 317,
  INSTR_TEXLD = 318, INSTR_TEXBEM = 319, INSTR_TEXBEML = 320, INSTR_TEXREG2AR = 321,
  INSTR_TEXREG2GB = 322, INSTR_TEXREG2RGB = 323, INSTR_TEXM3x2PAD = 324, INSTR_TEXM3x2TEX = 325,
  INSTR_TEXM3x3PAD = 326, INSTR_TEXM3x3SPEC = 327, INSTR_TEXM3x3VSPEC = 328, INSTR_TEXM3x3TEX = 329,
  INSTR_TEXDP3TEX = 330, INSTR_TEXM3x2DEPTH = 331, INSTR_TEXDP3 = 332, INSTR_TEXM3x3 = 333,
  INSTR_TEXDEPTH = 334, INSTR_BEM = 335, INSTR_DSX = 336, INSTR_DSY = 337,
  INSTR_TEXLDP = 338, INSTR_TEXLDB = 339, INSTR_TEXLDD = 340, INSTR_PHASE = 341,
  REG_TEMP = 342, REG_OUTPUT = 343, REG_INPUT = 344, REG_CONSTFLOAT = 345,
  REG_CONSTINT = 346, REG_CONSTBOOL = 347, REG_TEXTURE = 348, REG_SAMPLER = 349,
  REG_TEXCRDOUT = 350, REG_OPOS = 351, REG_OFOG = 352, REG_OPTS = 353,
  REG_VERTEXCOLOR = 354, REG_FRAGCOLOR = 355, REG_FRAGDEPTH = 356, REG_VPOS = 357,
  REG_VFACE = 358, REG_ADDRESS = 359, REG_LOOP = 360, REG_PREDICATE = 361,
  REG_LABEL = 362, VER_VS10 = 363, VER_VS11 = 364, VER_VS20 = 365,
  VER_VS2X = 366, VER_VS30 = 367, VER_PS10 = 368, VER_PS11 = 369,
  VER_PS12 = 370, VER_PS13 = 371, VER_PS14 = 372, VER_PS20 = 373,
  VER_PS2X = 374, VER_PS30 = 375, SHIFT_X2 = 376, SHIFT_X4 = 377,
  SHIFT_X8 = 378, SHIFT_D2 = 379, SHIFT_D4 = 380, SHIFT_D8 = 381,
  MOD_SAT = 382, MOD_PP = 383, MOD_CENTROID = 384, COMP_GT = 385,
  COMP_LT = 386, COMP_GE = 387, COMP_LE = 388, COMP_EQ = 389,
  COMP_NE = 390, SMOD_BIAS = 391, SMOD_SCALEBIAS = 392, SMOD_DZ = 393,
  SMOD_DW = 394, SMOD_ABS = 395, SMOD_NOT = 396, SAMPTYPE_1D = 397,
  SAMPTYPE_2D = 398, SAMPTYPE_CUBE = 399, SAMPTYPE_VOLUME = 400, USAGE_POSITION = 401,
  USAGE_BLENDWEIGHT = 402, USAGE_BLENDINDICES = 403, USAGE_NORMAL = 404, USAGE_PSIZE = 405,
  USAGE_TEXCOORD = 406, USAGE_TANGENT = 407, USAGE_BINORMAL = 408, USAGE_TESSFACTOR = 409,
  USAGE_POSITIONT = 410, USAGE_COLOR = 411, USAGE_FOG = 412, USAGE_DEPTH = 413,
  USAGE_SAMPLE = 414, COMPONENT = 415, IMMVAL = 416, IMMBOOL = 417,
  INSTR_ADD = 258, INSTR_NOP = 259, INSTR_MOV = 260, INSTR_SUB = 261,
  INSTR_MAD = 262, INSTR_MUL = 263, INSTR_RCP = 264, INSTR_RSQ = 265,
  INSTR_DP3 = 266, INSTR_DP4 = 267, INSTR_MIN = 268, INSTR_MAX = 269,
  INSTR_SLT = 270, INSTR_SGE = 271, INSTR_ABS = 272, INSTR_EXP = 273,
  INSTR_LOG = 274, INSTR_EXPP = 275, INSTR_LOGP = 276, INSTR_DST = 277,
  INSTR_LRP = 278, INSTR_FRC = 279, INSTR_POW = 280, INSTR_CRS = 281,
  INSTR_SGN = 282, INSTR_NRM = 283, INSTR_SINCOS = 284, INSTR_M4x4 = 285,
  INSTR_M4x3 = 286, INSTR_M3x4 = 287, INSTR_M3x3 = 288, INSTR_M3x2 = 289,
  INSTR_DCL = 290, INSTR_DEF = 291, INSTR_DEFB = 292, INSTR_DEFI = 293,
  INSTR_REP = 294, INSTR_ENDREP = 295, INSTR_IF = 296, INSTR_ELSE = 297,
  INSTR_ENDIF = 298, INSTR_BREAK = 299, INSTR_BREAKP = 300, INSTR_CALL = 301,
  INSTR_CALLNZ = 302, INSTR_LOOP = 303, INSTR_RET = 304, INSTR_ENDLOOP = 305,
  INSTR_LABEL = 306, INSTR_SETP = 307, INSTR_TEXLDL = 308, INSTR_LIT = 309,
  INSTR_MOVA = 310, INSTR_CND = 311, INSTR_CMP = 312, INSTR_DP2ADD = 313,
  INSTR_TEXCOORD = 314, INSTR_TEXCRD = 315, INSTR_TEXKILL = 316, INSTR_TEX = 317,
  INSTR_TEXLD = 318, INSTR_TEXBEM = 319, INSTR_TEXBEML = 320, INSTR_TEXREG2AR = 321,
  INSTR_TEXREG2GB = 322, INSTR_TEXREG2RGB = 323, INSTR_TEXM3x2PAD = 324, INSTR_TEXM3x2TEX = 325,
  INSTR_TEXM3x3PAD = 326, INSTR_TEXM3x3SPEC = 327, INSTR_TEXM3x3VSPEC = 328, INSTR_TEXM3x3TEX = 329,
  INSTR_TEXDP3TEX = 330, INSTR_TEXM3x2DEPTH = 331, INSTR_TEXDP3 = 332, INSTR_TEXM3x3 = 333,
  INSTR_TEXDEPTH = 334, INSTR_BEM = 335, INSTR_DSX = 336, INSTR_DSY = 337,
  INSTR_TEXLDP = 338, INSTR_TEXLDB = 339, INSTR_TEXLDD = 340, INSTR_PHASE = 341,
  REG_TEMP = 342, REG_OUTPUT = 343, REG_INPUT = 344, REG_CONSTFLOAT = 345,
  REG_CONSTINT = 346, REG_CONSTBOOL = 347, REG_TEXTURE = 348, REG_SAMPLER = 349,
  REG_TEXCRDOUT = 350, REG_OPOS = 351, REG_OFOG = 352, REG_OPTS = 353,
  REG_VERTEXCOLOR = 354, REG_FRAGCOLOR = 355, REG_FRAGDEPTH = 356, REG_VPOS = 357,
  REG_VFACE = 358, REG_ADDRESS = 359, REG_LOOP = 360, REG_PREDICATE = 361,
  REG_LABEL = 362, VER_VS10 = 363, VER_VS11 = 364, VER_VS20 = 365,
  VER_VS2X = 366, VER_VS30 = 367, VER_PS10 = 368, VER_PS11 = 369,
  VER_PS12 = 370, VER_PS13 = 371, VER_PS14 = 372, VER_PS20 = 373,
  VER_PS2X = 374, VER_PS30 = 375, SHIFT_X2 = 376, SHIFT_X4 = 377,
  SHIFT_X8 = 378, SHIFT_D2 = 379, SHIFT_D4 = 380, SHIFT_D8 = 381,
  MOD_SAT = 382, MOD_PP = 383, MOD_CENTROID = 384, COMP_GT = 385,
  COMP_LT = 386, COMP_GE = 387, COMP_LE = 388, COMP_EQ = 389,
  COMP_NE = 390, SMOD_BIAS = 391, SMOD_SCALEBIAS = 392, SMOD_DZ = 393,
  SMOD_DW = 394, SMOD_ABS = 395, SMOD_NOT = 396, SAMPTYPE_1D = 397,
  SAMPTYPE_2D = 398, SAMPTYPE_CUBE = 399, SAMPTYPE_VOLUME = 400, USAGE_POSITION = 401,
  USAGE_BLENDWEIGHT = 402, USAGE_BLENDINDICES = 403, USAGE_NORMAL = 404, USAGE_PSIZE = 405,
  USAGE_TEXCOORD = 406, USAGE_TANGENT = 407, USAGE_BINORMAL = 408, USAGE_TESSFACTOR = 409,
  USAGE_POSITIONT = 410, USAGE_COLOR = 411, USAGE_FOG = 412, USAGE_DEPTH = 413,
  USAGE_SAMPLE = 414, COMPONENT = 415, IMMVAL = 416, IMMBOOL = 417,
  KW_BLENDSTATE = 258, KW_BREAK = 259, KW_BUFFER = 260, KW_CBUFFER = 261,
  KW_COLUMN_MAJOR = 262, KW_COMPILE = 263, KW_CONST = 264, KW_CONTINUE = 265,
  KW_DEPTHSTENCILSTATE = 266, KW_DEPTHSTENCILVIEW = 267, KW_DISCARD = 268, KW_DO = 269,
  KW_DOUBLE = 270, KW_ELSE = 271, KW_EXTERN = 272, KW_FALSE = 273,
  KW_FOR = 274, KW_GEOMETRYSHADER = 275, KW_GROUPSHARED = 276, KW_IF = 277,
  KW_IN = 278, KW_INLINE = 279, KW_INOUT = 280, KW_MATRIX = 281,
  KW_NAMESPACE = 282, KW_NOINTERPOLATION = 283, KW_OUT = 284, KW_PASS = 285,
  KW_PIXELSHADER = 286, KW_PRECISE = 287, KW_RASTERIZERSTATE = 288, KW_RENDERTARGETVIEW = 289,
  KW_RETURN = 290, KW_REGISTER = 291, KW_ROW_MAJOR = 292, KW_SAMPLER = 293,
  KW_SAMPLER1D = 294, KW_SAMPLER2D = 295, KW_SAMPLER3D = 296, KW_SAMPLERCUBE = 297,
  KW_SAMPLER_STATE = 298, KW_SAMPLERCOMPARISONSTATE = 299, KW_SHARED = 300, KW_STATEBLOCK = 301,
  KW_STATEBLOCK_STATE = 302, KW_STATIC = 303, KW_STRING = 304, KW_STRUCT = 305,
  KW_SWITCH = 306, KW_TBUFFER = 307, KW_TECHNIQUE = 308, KW_TECHNIQUE10 = 309,
  KW_TEXTURE = 310, KW_TEXTURE1D = 311, KW_TEXTURE1DARRAY = 312, KW_TEXTURE2D = 313,
  KW_TEXTURE2DARRAY = 314, KW_TEXTURE2DMS = 315, KW_TEXTURE2DMSARRAY = 316, KW_TEXTURE3D = 317,
  KW_TEXTURE3DARRAY = 318, KW_TEXTURECUBE = 319, KW_TRUE = 320, KW_TYPEDEF = 321,
  KW_UNIFORM = 322, KW_VECTOR = 323, KW_VERTEXSHADER = 324, KW_VOID = 325,
  KW_VOLATILE = 326, KW_WHILE = 327, OP_INC = 328, OP_DEC = 329,
  OP_AND = 330, OP_OR = 331, OP_EQ = 332, OP_LEFTSHIFT = 333,
  OP_LEFTSHIFTASSIGN = 334, OP_RIGHTSHIFT = 335, OP_RIGHTSHIFTASSIGN = 336, OP_ELLIPSIS = 337,
  OP_LE = 338, OP_GE = 339, OP_NE = 340, OP_ADDASSIGN = 341,
  OP_SUBASSIGN = 342, OP_MULASSIGN = 343, OP_DIVASSIGN = 344, OP_MODASSIGN = 345,
  OP_ANDASSIGN = 346, OP_ORASSIGN = 347, OP_XORASSIGN = 348, OP_UNKNOWN1 = 349,
  OP_UNKNOWN2 = 350, OP_UNKNOWN3 = 351, OP_UNKNOWN4 = 352, PRE_LINE = 353,
  VAR_IDENTIFIER = 354, TYPE_IDENTIFIER = 355, NEW_IDENTIFIER = 356, STRING = 357,
  C_FLOAT = 358, C_INTEGER = 359, KW_BLENDSTATE = 258, KW_BREAK = 259,
  KW_BUFFER = 260, KW_CBUFFER = 261, KW_COLUMN_MAJOR = 262, KW_COMPILE = 263,
  KW_CONST = 264, KW_CONTINUE = 265, KW_DEPTHSTENCILSTATE = 266, KW_DEPTHSTENCILVIEW = 267,
  KW_DISCARD = 268, KW_DO = 269, KW_DOUBLE = 270, KW_ELSE = 271,
  KW_EXTERN = 272, KW_FALSE = 273, KW_FOR = 274, KW_GEOMETRYSHADER = 275,
  KW_GROUPSHARED = 276, KW_IF = 277, KW_IN = 278, KW_INLINE = 279,
  KW_INOUT = 280, KW_MATRIX = 281, KW_NAMESPACE = 282, KW_NOINTERPOLATION = 283,
  KW_OUT = 284, KW_PASS = 285, KW_PIXELSHADER = 286, KW_PRECISE = 287,
  KW_RASTERIZERSTATE = 288, KW_RENDERTARGETVIEW = 289, KW_RETURN = 290, KW_REGISTER = 291,
  KW_ROW_MAJOR = 292, KW_SAMPLER = 293, KW_SAMPLER1D = 294, KW_SAMPLER2D = 295,
  KW_SAMPLER3D = 296, KW_SAMPLERCUBE = 297, KW_SAMPLER_STATE = 298, KW_SAMPLERCOMPARISONSTATE = 299,
  KW_SHARED = 300, KW_STATEBLOCK = 301, KW_STATEBLOCK_STATE = 302, KW_STATIC = 303,
  KW_STRING = 304, KW_STRUCT = 305, KW_SWITCH = 306, KW_TBUFFER = 307,
  KW_TECHNIQUE = 308, KW_TECHNIQUE10 = 309, KW_TEXTURE = 310, KW_TEXTURE1D = 311,
  KW_TEXTURE1DARRAY = 312, KW_TEXTURE2D = 313, KW_TEXTURE2DARRAY = 314, KW_TEXTURE2DMS = 315,
  KW_TEXTURE2DMSARRAY = 316, KW_TEXTURE3D = 317, KW_TEXTURE3DARRAY = 318, KW_TEXTURECUBE = 319,
  KW_TRUE = 320, KW_TYPEDEF = 321, KW_UNIFORM = 322, KW_VECTOR = 323,
  KW_VERTEXSHADER = 324, KW_VOID = 325, KW_VOLATILE = 326, KW_WHILE = 327,
  OP_INC = 328, OP_DEC = 329, OP_AND = 330, OP_OR = 331,
  OP_EQ = 332, OP_LEFTSHIFT = 333, OP_LEFTSHIFTASSIGN = 334, OP_RIGHTSHIFT = 335,
  OP_RIGHTSHIFTASSIGN = 336, OP_ELLIPSIS = 337, OP_LE = 338, OP_GE = 339,
  OP_NE = 340, OP_ADDASSIGN = 341, OP_SUBASSIGN = 342, OP_MULASSIGN = 343,
  OP_DIVASSIGN = 344, OP_MODASSIGN = 345, OP_ANDASSIGN = 346, OP_ORASSIGN = 347,
  OP_XORASSIGN = 348, OP_UNKNOWN1 = 349, OP_UNKNOWN2 = 350, OP_UNKNOWN3 = 351,
  OP_UNKNOWN4 = 352, PRE_LINE = 353, VAR_IDENTIFIER = 354, TYPE_IDENTIFIER = 355,
  NEW_IDENTIFIER = 356, STRING = 357, C_FLOAT = 358, C_INTEGER = 359,
  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

static void fix_incomplete (void)
 
static void fix_incomplete_types (type_t *complete_type)
 
static str_list_tappend_str (str_list_t *list, char *str)
 
static attr_list_tappend_attr (attr_list_t *list, attr_t *attr)
 
static attr_list_tappend_attr_list (attr_list_t *new_list, attr_list_t *old_list)
 
static decl_spec_tmake_decl_spec (type_t *type, decl_spec_t *left, decl_spec_t *right, attr_t *attr, enum storage_class stgclass)
 
static attr_tmake_attr (enum attr_type type)
 
static attr_tmake_attrv (enum attr_type type, unsigned int val)
 
static attr_tmake_attrp (enum attr_type type, void *val)
 
static expr_list_tappend_expr (expr_list_t *list, expr_t *expr)
 
static type_tappend_array (type_t *chain, expr_t *expr)
 
static var_tdeclare_var (attr_list_t *attrs, decl_spec_t *decl_spec, const declarator_t *decl, int top)
 
static var_list_tset_var_types (attr_list_t *attrs, decl_spec_t *decl_spec, declarator_list_t *decls)
 
static ifref_list_tappend_ifref (ifref_list_t *list, ifref_t *iface)
 
static ifref_tmake_ifref (type_t *iface)
 
static var_list_tappend_var_list (var_list_t *list, var_list_t *vars)
 
static declarator_list_tappend_declarator (declarator_list_t *list, declarator_t *p)
 
static declarator_tmake_declarator (var_t *var)
 
static type_tmake_safearray (type_t *type)
 
static typelib_tmake_library (const char *name, const attr_list_t *attrs)
 
static type_tappend_chain_type (type_t *chain, type_t *type)
 
static warning_list_tappend_warning (warning_list_t *, int)
 
static type_treg_typedefs (decl_spec_t *decl_spec, var_list_t *names, attr_list_t *attrs)
 
static type_tfind_type_or_error (const char *name, int t)
 
static type_tfind_type_or_error2 (char *name, int t)
 
static var_treg_const (var_t *var)
 
static void push_namespace (const char *name)
 
static void pop_namespace (const char *name)
 
static chargen_name (void)
 
static void check_arg_attrs (const var_t *arg)
 
static void check_statements (const statement_list_t *stmts, int is_inside_library)
 
static void check_all_user_types (const statement_list_t *stmts)
 
static attr_list_tcheck_iface_attrs (const char *name, attr_list_t *attrs)
 
static attr_list_tcheck_function_attrs (const char *name, attr_list_t *attrs)
 
static attr_list_tcheck_typedef_attrs (attr_list_t *attrs)
 
static attr_list_tcheck_enum_attrs (attr_list_t *attrs)
 
static attr_list_tcheck_struct_attrs (attr_list_t *attrs)
 
static attr_list_tcheck_union_attrs (attr_list_t *attrs)
 
static attr_list_tcheck_field_attrs (const char *name, attr_list_t *attrs)
 
static attr_list_tcheck_library_attrs (const char *name, attr_list_t *attrs)
 
static attr_list_tcheck_dispiface_attrs (const char *name, attr_list_t *attrs)
 
static attr_list_tcheck_module_attrs (const char *name, attr_list_t *attrs)
 
static attr_list_tcheck_coclass_attrs (const char *name, attr_list_t *attrs)
 
const charget_attr_display_name (enum attr_type type)
 
static void add_explicit_handle_if_necessary (const type_t *iface, var_t *func)
 
static void check_def (const type_t *t)
 
static void check_async_uuid (type_t *iface)
 
static statement_tmake_statement (enum statement_type type)
 
static statement_tmake_statement_type_decl (type_t *type)
 
static statement_tmake_statement_reference (type_t *type)
 
static statement_tmake_statement_declaration (var_t *var)
 
static statement_tmake_statement_library (typelib_t *typelib)
 
static statement_tmake_statement_pragma (const char *str)
 
static statement_tmake_statement_cppquote (const char *str)
 
static statement_tmake_statement_importlib (const char *str)
 
static statement_tmake_statement_module (type_t *type)
 
static statement_tmake_statement_typedef (var_list_t *names)
 
static statement_tmake_statement_import (const char *str)
 
static statement_list_tappend_statement (statement_list_t *list, statement_t *stmt)
 
static statement_list_tappend_statements (statement_list_t *, statement_list_t *)
 
static attr_list_tappend_attribs (attr_list_t *, attr_list_t *)
 
int parser_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)
 
int yyparse (void)
 
static void decl_builtin_basic (const char *name, enum type_basic_type type)
 
static void decl_builtin_alias (const char *name, type_t *t)
 
void init_types (void)
 
static attr_list_tmove_attr (attr_list_t *dst, attr_list_t *src, enum attr_type type)
 
static attr_list_tmap_attrs (const attr_list_t *list, map_attrs_filter_t filter)
 
type_talloc_type (void)
 
void set_all_tfswrite (int val)
 
void clear_all_offsets (void)
 
static void type_function_add_head_arg (type_t *type, var_t *arg)
 
static int is_allowed_range_type (const type_t *type)
 
static type_tget_array_or_ptr_ref (type_t *type)
 
var_list_tappend_var (var_list_t *list, var_t *var)
 
var_tmake_var (char *name)
 
static var_tcopy_var (var_t *src, char *name, map_attrs_filter_t attr_filter)
 
static int hash_ident (const char *name)
 
static struct namespacefind_sub_namespace (struct namespace *namespace, const char *name)
 
type_treg_type (type_t *type, const char *name, struct namespace *namespace, int t)
 
static int is_incomplete (const type_t *t)
 
void add_incomplete (type_t *t)
 
static void fix_type (type_t *t)
 
type_tfind_type (const char *name, struct namespace *namespace, int t)
 
int is_type (const char *name)
 
type_tget_type (enum type_type type, char *name, struct namespace *namespace, int t)
 
var_tfind_const (const char *name, int f)
 
static int is_allowed_conf_type (const type_t *type)
 
static int is_ptr_guid_type (const type_t *type)
 
static void check_conformance_expr_list (const char *attr_name, const var_t *arg, const type_t *container_type, expr_list_t *expr_list)
 
static void check_remoting_fields (const var_t *var, type_t *type)
 
static void check_field_common (const type_t *container_type, const char *container_name, const var_t *arg)
 
static void check_remoting_args (const var_t *func)
 
static void check_functions (const type_t *iface, int is_inside_library)
 
static charconcat_str (const char *prefix, const char *str)
 
static int async_iface_attrs (attr_list_t *attrs, const attr_t *attr)
 
static int arg_in_attrs (attr_list_t *attrs, const attr_t *attr)
 
static int arg_out_attrs (attr_list_t *attrs, const attr_t *attr)
 
int is_valid_uuid (const char *s)
 
void init_loc_info (loc_info_t *i)
 

Variables

static unsigned char pointer_default = FC_UP
 
typelist_t incomplete_types = LIST_INIT(incomplete_types)
 
static struct namespace global_namespace
 
static struct namespacecurrent_namespace = &global_namespace
 
static typelib_tcurrent_typelib
 
YYSTYPE parser_lval
 
static const yytype_uint8 yytranslate []
 
static const char *const yytname []
 
static const yytype_int16 yypact []
 
static const yytype_uint16 yydefact []
 
static const yytype_int16 yypgoto []
 
static const yytype_int16 yydefgoto []
 
static const yytype_int16 yytable []
 
static const yytype_int16 yycheck []
 
static const yytype_uint16 yystos []
 
static const yytype_uint16 yyr1 []
 
static const yytype_uint8 yyr2 []
 
int yychar
 
YYSTYPE yylval
 
int yynerrs
 
static struct list type_pool = LIST_INIT(type_pool)
 
struct rconstconst_hash [HASHMAX]
 
struct allowed_attr allowed_attr []
 

Macro Definition Documentation

◆ YY_

#define YY_ (   Msgid)    Msgid

Definition at line 542 of file parser.tab.c.

◆ YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

#define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN

Definition at line 573 of file parser.tab.c.

◆ YY_IGNORE_MAYBE_UNINITIALIZED_END

#define YY_IGNORE_MAYBE_UNINITIALIZED_END

Definition at line 574 of file parser.tab.c.

◆ YY_INITIAL_VALUE

#define YY_INITIAL_VALUE (   Value)    Value

Definition at line 570 of file parser.tab.c.

◆ YY_NULL

#define YY_NULL   0

Definition at line 223 of file parser.tab.c.

◆ YY_PARSER_E_REACTOSSYNC_MSVC_HOST_TOOLS_SDK_TOOLS_WIDL_PARSER_TAB_H_INCLUDED

#define YY_PARSER_E_REACTOSSYNC_MSVC_HOST_TOOLS_SDK_TOOLS_WIDL_PARSER_TAB_H_INCLUDED

Definition at line 238 of file parser.tab.c.

◆ YY_REDUCE_PRINT

#define YY_REDUCE_PRINT (   Rule)

Definition at line 2089 of file parser.tab.c.

◆ YY_STACK_PRINT

#define YY_STACK_PRINT (   Bottom,
  Top 
)

Definition at line 2088 of file parser.tab.c.

◆ YY_SYMBOL_PRINT

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

Definition at line 2087 of file parser.tab.c.

◆ YYABORT

#define YYABORT   goto yyabortlab

Definition at line 1934 of file parser.tab.c.

◆ YYACCEPT

#define YYACCEPT   goto yyacceptlab

Definition at line 1933 of file parser.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 YYEMPTY
Definition: parser.tab.c:1930
_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 yychar
Definition: parser.tab.c:70
#define YY_(Msgid)
Definition: parser.tab.c:542
if(!(yy_init))
Definition: macro.lex.yy.c:714

Definition at line 1940 of file parser.tab.c.

◆ YYBISON

#define YYBISON   1

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

◆ YYBISON_VERSION

#define YYBISON_VERSION   "3.0"

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

◆ YYCASE_

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

◆ yychar

#define yychar   parser_char

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

◆ yyclearin

#define yyclearin   (yychar = YYEMPTY)

Definition at line 1929 of file parser.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 697 of file parser.tab.c.

◆ YYCOPY_NEEDED

#define YYCOPY_NEEDED   1

Definition at line 669 of file parser.tab.c.

◆ yydebug

#define yydebug   parser_debug

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

◆ YYDEBUG

#define YYDEBUG   0

Definition at line 241 of file parser.tab.c.

◆ YYDPRINTF

#define YYDPRINTF (   Args)

Definition at line 2086 of file parser.tab.c.

◆ YYEMPTY

#define YYEMPTY   (-2)

Definition at line 1930 of file parser.tab.c.

◆ YYEOF

#define YYEOF   0

Definition at line 1931 of file parser.tab.c.

◆ YYERRCODE

#define YYERRCODE   256

Definition at line 1959 of file parser.tab.c.

◆ yyerrok

#define yyerrok   (yyerrstatus = 0)

Definition at line 1928 of file parser.tab.c.

◆ yyerror

#define yyerror   parser_error

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

◆ YYERROR

#define YYERROR   goto yyerrorlab

Definition at line 1935 of file parser.tab.c.

◆ YYERROR_VERBOSE

#define YYERROR_VERBOSE   1

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

◆ YYFINAL

#define YYFINAL   3

Definition at line 710 of file parser.tab.c.

◆ YYFREE

#define YYFREE   free

Definition at line 640 of file parser.tab.c.

◆ YYINITDEPTH

#define YYINITDEPTH   200

Definition at line 2095 of file parser.tab.c.

◆ YYLAST

#define YYLAST   3047

Definition at line 712 of file parser.tab.c.

◆ yylex

#define yylex   parser_lex

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

◆ yylval

#define yylval   parser_lval

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

◆ YYMALLOC

#define YYMALLOC   malloc

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

◆ YYMAXDEPTH

#define YYMAXDEPTH   10000

Definition at line 2106 of file parser.tab.c.

◆ YYMAXUTOK

#define YYMAXUTOK   443

Definition at line 726 of file parser.tab.c.

◆ yynerrs

#define yynerrs   parser_nerrs

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

◆ YYNNTS

#define YYNNTS   113

Definition at line 717 of file parser.tab.c.

◆ YYNRULES

#define YYNRULES   410

Definition at line 719 of file parser.tab.c.

◆ YYNSTATES

#define YYNSTATES   718

Definition at line 721 of file parser.tab.c.

◆ YYNTOKENS

#define YYNTOKENS   213

Definition at line 715 of file parser.tab.c.

◆ YYPACT_NINF

#define YYPACT_NINF   -560

Definition at line 933 of file parser.tab.c.

◆ yypact_value_is_default

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

Definition at line 935 of file parser.tab.c.

◆ yyparse

#define yyparse   parser_parse

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

◆ YYPOPSTACK

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

◆ YYPULL

#define YYPULL   1

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

◆ YYPURE

#define YYPURE   0

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

◆ YYPUSH

#define YYPUSH   0

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

◆ YYRECOVERING

#define YYRECOVERING ( )    (!!yyerrstatus)

Definition at line 1938 of file parser.tab.c.

◆ YYSIZE_MAXIMUM

#define YYSIZE_MAXIMUM   ((YYSIZE_T) -1)

Definition at line 532 of file parser.tab.c.

◆ YYSIZE_T

#define YYSIZE_T   size_t

Definition at line 526 of file parser.tab.c.

◆ YYSKELETON_NAME

#define YYSKELETON_NAME   "yacc.c"

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

◆ YYSTACK_ALLOC

#define YYSTACK_ALLOC   YYMALLOC

Definition at line 620 of file parser.tab.c.

◆ YYSTACK_ALLOC_MAXIMUM

#define YYSTACK_ALLOC_MAXIMUM   YYSIZE_MAXIMUM

Definition at line 623 of file parser.tab.c.

◆ YYSTACK_BYTES

#define YYSTACK_BYTES (   N)
Value:
((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
short int yytype_int16
#define YYSTACK_GAP_MAXIMUM
Definition: parser.tab.c:661
union YYSTYPE YYSTYPE
Definition: parser.tab.c:281

Definition at line 665 of file parser.tab.c.

◆ YYSTACK_FREE

#define YYSTACK_FREE   YYFREE

Definition at line 621 of file parser.tab.c.

◆ YYSTACK_GAP_MAXIMUM

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

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

Definition at line 676 of file parser.tab.c.

◆ YYSTYPE_IS_DECLARED

#define YYSTYPE_IS_DECLARED   1

Definition at line 477 of file parser.tab.c.

◆ YYSTYPE_IS_TRIVIAL

#define YYSTYPE_IS_TRIVIAL   1

Definition at line 476 of file parser.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: parser.tab.c:2205

◆ YYTABLE_NINF

#define YYTABLE_NINF   -405

Definition at line 938 of file parser.tab.c.

◆ yytable_value_is_error

#define yytable_value_is_error (   Yytable_value)    0

Definition at line 940 of file parser.tab.c.

◆ YYTERROR

#define YYTERROR   1

Definition at line 1958 of file parser.tab.c.

◆ YYTOKENTYPE

#define YYTOKENTYPE

Definition at line 249 of file parser.tab.c.

◆ YYTRANSLATE

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

Definition at line 728 of file parser.tab.c.

◆ YYUNDEFTOK

#define YYUNDEFTOK   2

Definition at line 725 of file parser.tab.c.

◆ YYUSE

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

Definition at line 556 of file parser.tab.c.

Typedef Documentation

◆ decl_spec_t

◆ map_attrs_filter_t

typedef int(* map_attrs_filter_t) (attr_list_t *, const attr_t *)

Definition at line 5386 of file parser.tab.c.

◆ typelist_t

Definition at line 116 of file parser.tab.c.

◆ YYSTYPE

typedef union YYSTYPE YYSTYPE

Definition at line 443 of file parser.tab.c.

◆ yytype_int16

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

◆ yytype_int8

Definition at line 504 of file parser.tab.c.

◆ yytype_uint16

typedef unsigned short int yytype_uint16

Definition at line 510 of file parser.tab.c.

◆ yytype_uint8

typedef unsigned char yytype_uint8

Definition at line 498 of file parser.tab.c.

Enumeration Type Documentation

◆ yytokentype

Enumerator
INSTR_ADD 
INSTR_NOP 
INSTR_MOV 
INSTR_SUB 
INSTR_MAD 
INSTR_MUL 
INSTR_RCP 
INSTR_RSQ 
INSTR_DP3 
INSTR_DP4 
INSTR_MIN 
INSTR_MAX 
INSTR_SLT 
INSTR_SGE 
INSTR_ABS 
INSTR_EXP 
INSTR_LOG 
INSTR_EXPP 
INSTR_LOGP 
INSTR_DST 
INSTR_LRP 
INSTR_FRC 
INSTR_POW 
INSTR_CRS 
INSTR_SGN 
INSTR_NRM 
INSTR_SINCOS 
INSTR_M4x4 
INSTR_M4x3 
INSTR_M3x4 
INSTR_M3x3 
INSTR_M3x2 
INSTR_DCL 
INSTR_DEF 
INSTR_DEFB 
INSTR_DEFI 
INSTR_REP 
INSTR_ENDREP 
INSTR_IF 
INSTR_ELSE 
INSTR_ENDIF 
INSTR_BREAK 
INSTR_BREAKP 
INSTR_CALL 
INSTR_CALLNZ 
INSTR_LOOP 
INSTR_RET 
INSTR_ENDLOOP 
INSTR_LABEL 
INSTR_SETP 
INSTR_TEXLDL 
INSTR_LIT 
INSTR_MOVA 
INSTR_CND 
INSTR_CMP 
INSTR_DP2ADD 
INSTR_TEXCOORD 
INSTR_TEXCRD 
INSTR_TEXKILL 
INSTR_TEX 
INSTR_TEXLD 
INSTR_TEXBEM 
INSTR_TEXBEML 
INSTR_TEXREG2AR 
INSTR_TEXREG2GB 
INSTR_TEXREG2RGB 
INSTR_TEXM3x2PAD 
INSTR_TEXM3x2TEX 
INSTR_TEXM3x3PAD 
INSTR_TEXM3x3SPEC 
INSTR_TEXM3x3VSPEC 
INSTR_TEXM3x3TEX 
INSTR_TEXDP3TEX 
INSTR_TEXM3x2DEPTH 
INSTR_TEXDP3 
INSTR_TEXM3x3 
INSTR_TEXDEPTH 
INSTR_BEM 
INSTR_DSX 
INSTR_DSY 
INSTR_TEXLDP 
INSTR_TEXLDB 
INSTR_TEXLDD 
INSTR_PHASE 
REG_TEMP 
REG_OUTPUT 
REG_INPUT 
REG_CONSTFLOAT 
REG_CONSTINT 
REG_CONSTBOOL 
REG_TEXTURE 
REG_SAMPLER 
REG_TEXCRDOUT 
REG_OPOS 
REG_OFOG 
REG_OPTS 
REG_VERTEXCOLOR 
REG_FRAGCOLOR 
REG_FRAGDEPTH 
REG_VPOS 
REG_VFACE 
REG_ADDRESS 
REG_LOOP 
REG_PREDICATE 
REG_LABEL 
VER_VS10 
VER_VS11 
VER_VS20 
VER_VS2X 
VER_VS30 
VER_PS10 
VER_PS11 
VER_PS12 
VER_PS13 
VER_PS14 
VER_PS20 
VER_PS2X 
VER_PS30 
SHIFT_X2 
SHIFT_X4 
SHIFT_X8 
SHIFT_D2 
SHIFT_D4 
SHIFT_D8 
MOD_SAT 
MOD_PP 
MOD_CENTROID 
COMP_GT 
COMP_LT 
COMP_GE 
COMP_LE 
COMP_EQ 
COMP_NE 
SMOD_BIAS 
SMOD_SCALEBIAS 
SMOD_DZ 
SMOD_DW 
SMOD_ABS 
SMOD_NOT 
SAMPTYPE_1D 
SAMPTYPE_2D 
SAMPTYPE_CUBE 
SAMPTYPE_VOLUME 
USAGE_POSITION 
USAGE_BLENDWEIGHT 
USAGE_BLENDINDICES 
USAGE_NORMAL 
USAGE_PSIZE 
USAGE_TEXCOORD 
USAGE_TANGENT 
USAGE_BINORMAL 
USAGE_TESSFACTOR 
USAGE_POSITIONT 
USAGE_COLOR 
USAGE_FOG 
USAGE_DEPTH 
USAGE_SAMPLE 
COMPONENT 
IMMVAL 
IMMBOOL 
INSTR_ADD 
INSTR_NOP 
INSTR_MOV 
INSTR_SUB 
INSTR_MAD 
INSTR_MUL 
INSTR_RCP 
INSTR_RSQ 
INSTR_DP3 
INSTR_DP4 
INSTR_MIN 
INSTR_MAX 
INSTR_SLT 
INSTR_SGE 
INSTR_ABS 
INSTR_EXP 
INSTR_LOG 
INSTR_EXPP 
INSTR_LOGP 
INSTR_DST 
INSTR_LRP 
INSTR_FRC 
INSTR_POW 
INSTR_CRS 
INSTR_SGN 
INSTR_NRM 
INSTR_SINCOS 
INSTR_M4x4 
INSTR_M4x3 
INSTR_M3x4 
INSTR_M3x3 
INSTR_M3x2 
INSTR_DCL 
INSTR_DEF 
INSTR_DEFB 
INSTR_DEFI 
INSTR_REP 
INSTR_ENDREP 
INSTR_IF 
INSTR_ELSE 
INSTR_ENDIF 
INSTR_BREAK 
INSTR_BREAKP 
INSTR_CALL 
INSTR_CALLNZ 
INSTR_LOOP 
INSTR_RET 
INSTR_ENDLOOP 
INSTR_LABEL 
INSTR_SETP 
INSTR_TEXLDL 
INSTR_LIT 
INSTR_MOVA 
INSTR_CND 
INSTR_CMP 
INSTR_DP2ADD 
INSTR_TEXCOORD 
INSTR_TEXCRD 
INSTR_TEXKILL 
INSTR_TEX 
INSTR_TEXLD 
INSTR_TEXBEM 
INSTR_TEXBEML 
INSTR_TEXREG2AR 
INSTR_TEXREG2GB 
INSTR_TEXREG2RGB 
INSTR_TEXM3x2PAD 
INSTR_TEXM3x2TEX 
INSTR_TEXM3x3PAD 
INSTR_TEXM3x3SPEC 
INSTR_TEXM3x3VSPEC 
INSTR_TEXM3x3TEX 
INSTR_TEXDP3TEX 
INSTR_TEXM3x2DEPTH 
INSTR_TEXDP3 
INSTR_TEXM3x3 
INSTR_TEXDEPTH 
INSTR_BEM 
INSTR_DSX 
INSTR_DSY 
INSTR_TEXLDP 
INSTR_TEXLDB 
INSTR_TEXLDD 
INSTR_PHASE 
REG_TEMP 
REG_OUTPUT 
REG_INPUT 
REG_CONSTFLOAT 
REG_CONSTINT 
REG_CONSTBOOL 
REG_TEXTURE 
REG_SAMPLER 
REG_TEXCRDOUT 
REG_OPOS 
REG_OFOG 
REG_OPTS 
REG_VERTEXCOLOR 
REG_FRAGCOLOR 
REG_FRAGDEPTH 
REG_VPOS 
REG_VFACE 
REG_ADDRESS 
REG_LOOP 
REG_PREDICATE 
REG_LABEL 
VER_VS10 
VER_VS11 
VER_VS20 
VER_VS2X 
VER_VS30 
VER_PS10 
VER_PS11 
VER_PS12 
VER_PS13 
VER_PS14 
VER_PS20 
VER_PS2X 
VER_PS30 
SHIFT_X2 
SHIFT_X4 
SHIFT_X8 
SHIFT_D2 
SHIFT_D4 
SHIFT_D8 
MOD_SAT 
MOD_PP 
MOD_CENTROID 
COMP_GT 
COMP_LT 
COMP_GE 
COMP_LE 
COMP_EQ 
COMP_NE 
SMOD_BIAS 
SMOD_SCALEBIAS 
SMOD_DZ 
SMOD_DW 
SMOD_ABS 
SMOD_NOT 
SAMPTYPE_1D 
SAMPTYPE_2D 
SAMPTYPE_CUBE 
SAMPTYPE_VOLUME 
USAGE_POSITION 
USAGE_BLENDWEIGHT 
USAGE_BLENDINDICES 
USAGE_NORMAL 
USAGE_PSIZE 
USAGE_TEXCOORD 
USAGE_TANGENT 
USAGE_BINORMAL 
USAGE_TESSFACTOR 
USAGE_POSITIONT 
USAGE_COLOR 
USAGE_FOG 
USAGE_DEPTH 
USAGE_SAMPLE 
COMPONENT 
IMMVAL 
IMMBOOL 
KW_BLENDSTATE 
KW_BREAK 
KW_BUFFER 
KW_CBUFFER 
KW_COLUMN_MAJOR 
KW_COMPILE 
KW_CONST 
KW_CONTINUE 
KW_DEPTHSTENCILSTATE 
KW_DEPTHSTENCILVIEW 
KW_DISCARD 
KW_DO 
KW_DOUBLE 
KW_ELSE 
KW_EXTERN 
KW_FALSE 
KW_FOR 
KW_GEOMETRYSHADER 
KW_GROUPSHARED 
KW_IF 
KW_IN 
KW_INLINE 
KW_INOUT 
KW_MATRIX 
KW_NAMESPACE 
KW_NOINTERPOLATION 
KW_OUT 
KW_PASS 
KW_PIXELSHADER 
KW_PRECISE 
KW_RASTERIZERSTATE 
KW_RENDERTARGETVIEW 
KW_RETURN 
KW_REGISTER 
KW_ROW_MAJOR 
KW_SAMPLER 
KW_SAMPLER1D 
KW_SAMPLER2D 
KW_SAMPLER3D 
KW_SAMPLERCUBE 
KW_SAMPLER_STATE 
KW_SAMPLERCOMPARISONSTATE 
KW_SHARED 
KW_STATEBLOCK 
KW_STATEBLOCK_STATE 
KW_STATIC 
KW_STRING 
KW_STRUCT 
KW_SWITCH 
KW_TBUFFER 
KW_TECHNIQUE 
KW_TECHNIQUE10 
KW_TEXTURE 
KW_TEXTURE1D 
KW_TEXTURE1DARRAY 
KW_TEXTURE2D 
KW_TEXTURE2DARRAY 
KW_TEXTURE2DMS 
KW_TEXTURE2DMSARRAY 
KW_TEXTURE3D 
KW_TEXTURE3DARRAY 
KW_TEXTURECUBE 
KW_TRUE 
KW_TYPEDEF 
KW_UNIFORM 
KW_VECTOR 
KW_VERTEXSHADER 
KW_VOID 
KW_VOLATILE 
KW_WHILE 
OP_INC 
OP_DEC 
OP_AND 
OP_OR 
OP_EQ 
OP_LEFTSHIFT 
OP_LEFTSHIFTASSIGN 
OP_RIGHTSHIFT 
OP_RIGHTSHIFTASSIGN 
OP_ELLIPSIS 
OP_LE 
OP_GE 
OP_NE 
OP_ADDASSIGN 
OP_SUBASSIGN 
OP_MULASSIGN 
OP_DIVASSIGN 
OP_MODASSIGN 
OP_ANDASSIGN 
OP_ORASSIGN 
OP_XORASSIGN 
OP_UNKNOWN1 
OP_UNKNOWN2 
OP_UNKNOWN3 
OP_UNKNOWN4 
PRE_LINE 
VAR_IDENTIFIER 
TYPE_IDENTIFIER 
NEW_IDENTIFIER 
STRING 
C_FLOAT 
C_INTEGER 
KW_BLENDSTATE 
KW_BREAK 
KW_BUFFER 
KW_CBUFFER 
KW_COLUMN_MAJOR 
KW_COMPILE 
KW_CONST 
KW_CONTINUE 
KW_DEPTHSTENCILSTATE 
KW_DEPTHSTENCILVIEW 
KW_DISCARD 
KW_DO 
KW_DOUBLE 
KW_ELSE 
KW_EXTERN 
KW_FALSE 
KW_FOR 
KW_GEOMETRYSHADER 
KW_GROUPSHARED 
KW_IF 
KW_IN 
KW_INLINE 
KW_INOUT 
KW_MATRIX 
KW_NAMESPACE 
KW_NOINTERPOLATION 
KW_OUT 
KW_PASS 
KW_PIXELSHADER 
KW_PRECISE 
KW_RASTERIZERSTATE 
KW_RENDERTARGETVIEW 
KW_RETURN 
KW_REGISTER 
KW_ROW_MAJOR 
KW_SAMPLER 
KW_SAMPLER1D 
KW_SAMPLER2D 
KW_SAMPLER3D 
KW_SAMPLERCUBE 
KW_SAMPLER_STATE 
KW_SAMPLERCOMPARISONSTATE 
KW_SHARED 
KW_STATEBLOCK 
KW_STATEBLOCK_STATE 
KW_STATIC 
KW_STRING 
KW_STRUCT 
KW_SWITCH 
KW_TBUFFER 
KW_TECHNIQUE 
KW_TECHNIQUE10 
KW_TEXTURE 
KW_TEXTURE1D 
KW_TEXTURE1DARRAY 
KW_TEXTURE2D 
KW_TEXTURE2DARRAY 
KW_TEXTURE2DMS 
KW_TEXTURE2DMSARRAY 
KW_TEXTURE3D 
KW_TEXTURE3DARRAY 
KW_TEXTURECUBE 
KW_TRUE 
KW_TYPEDEF 
KW_UNIFORM 
KW_VECTOR 
KW_VERTEXSHADER 
KW_VOID 
KW_VOLATILE 
KW_WHILE 
OP_INC 
OP_DEC 
OP_AND 
OP_OR 
OP_EQ 
OP_LEFTSHIFT 
OP_LEFTSHIFTASSIGN 
OP_RIGHTSHIFT 
OP_RIGHTSHIFTASSIGN 
OP_ELLIPSIS 
OP_LE 
OP_GE 
OP_NE 
OP_ADDASSIGN 
OP_SUBASSIGN 
OP_MULASSIGN 
OP_DIVASSIGN 
OP_MODASSIGN 
OP_ANDASSIGN 
OP_ORASSIGN 
OP_XORASSIGN 
OP_UNKNOWN1 
OP_UNKNOWN2 
OP_UNKNOWN3 
OP_UNKNOWN4 
PRE_LINE 
VAR_IDENTIFIER 
TYPE_IDENTIFIER 
NEW_IDENTIFIER 
STRING 
C_FLOAT 
C_INTEGER 
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 250 of file parser.tab.c.

251  {
252  aIDENTIFIER = 258,
253  aPRAGMA = 259,
254  aKNOWNTYPE = 260,
255  aNUM = 261,
256  aHEXNUM = 262,
257  aDOUBLE = 263,
258  aSTRING = 264,
259  aWSTRING = 265,
260  aSQSTRING = 266,
261  aUUID = 267,
262  aEOF = 268,
263  aACF = 269,
264  SHL = 270,
265  SHR = 271,
266  MEMBERPTR = 272,
267  EQUALITY = 273,
268  INEQUALITY = 274,
269  GREATEREQUAL = 275,
270  LESSEQUAL = 276,
271  LOGICALOR = 277,
272  LOGICALAND = 278,
273  ELLIPSIS = 279,
274  tAGGREGATABLE = 280,
275  tALLOCATE = 281,
276  tANNOTATION = 282,
277  tAPPOBJECT = 283,
278  tASYNC = 284,
279  tASYNCUUID = 285,
280  tAUTOHANDLE = 286,
281  tBINDABLE = 287,
282  tBOOLEAN = 288,
283  tBROADCAST = 289,
284  tBYTE = 290,
285  tBYTECOUNT = 291,
286  tCALLAS = 292,
287  tCALLBACK = 293,
288  tCASE = 294,
289  tCDECL = 295,
290  tCHAR = 296,
291  tCOCLASS = 297,
292  tCODE = 298,
293  tCOMMSTATUS = 299,
294  tCONST = 300,
295  tCONTEXTHANDLE = 301,
298  tCONTROL = 304,
299  tCPPQUOTE = 305,
300  tDECODE = 306,
301  tDEFAULT = 307,
302  tDEFAULTBIND = 308,
303  tDEFAULTCOLLELEM = 309,
304  tDEFAULTVALUE = 310,
305  tDEFAULTVTABLE = 311,
307  tDISPLAYBIND = 313,
308  tDISPINTERFACE = 314,
309  tDLLNAME = 315,
310  tDOUBLE = 316,
311  tDUAL = 317,
312  tENABLEALLOCATE = 318,
313  tENCODE = 319,
314  tENDPOINT = 320,
315  tENTRY = 321,
316  tENUM = 322,
317  tERRORSTATUST = 323,
318  tEXPLICITHANDLE = 324,
319  tEXTERN = 325,
320  tFALSE = 326,
321  tFASTCALL = 327,
322  tFAULTSTATUS = 328,
323  tFLOAT = 329,
324  tFORCEALLOCATE = 330,
325  tHANDLE = 331,
326  tHANDLET = 332,
327  tHELPCONTEXT = 333,
328  tHELPFILE = 334,
329  tHELPSTRING = 335,
330  tHELPSTRINGCONTEXT = 336,
331  tHELPSTRINGDLL = 337,
332  tHIDDEN = 338,
333  tHYPER = 339,
334  tID = 340,
335  tIDEMPOTENT = 341,
336  tIGNORE = 342,
337  tIIDIS = 343,
338  tIMMEDIATEBIND = 344,
339  tIMPLICITHANDLE = 345,
340  tIMPORT = 346,
341  tIMPORTLIB = 347,
342  tIN = 348,
343  tIN_LINE = 349,
344  tINLINE = 350,
345  tINPUTSYNC = 351,
346  tINT = 352,
347  tINT32 = 353,
348  tINT3264 = 354,
349  tINT64 = 355,
350  tINTERFACE = 356,
351  tLCID = 357,
352  tLENGTHIS = 358,
353  tLIBRARY = 359,
354  tLICENSED = 360,
355  tLOCAL = 361,
356  tLONG = 362,
357  tMAYBE = 363,
358  tMESSAGE = 364,
359  tMETHODS = 365,
360  tMODULE = 366,
361  tNAMESPACE = 367,
362  tNOCODE = 368,
363  tNONBROWSABLE = 369,
364  tNONCREATABLE = 370,
365  tNONEXTENSIBLE = 371,
366  tNOTIFY = 372,
367  tNOTIFYFLAG = 373,
368  tNULL = 374,
369  tOBJECT = 375,
370  tODL = 376,
371  tOLEAUTOMATION = 377,
372  tOPTIMIZE = 378,
373  tOPTIONAL = 379,
374  tOUT = 380,
375  tPARTIALIGNORE = 381,
376  tPASCAL = 382,
377  tPOINTERDEFAULT = 383,
378  tPRAGMA_WARNING = 384,
379  tPROGID = 385,
380  tPROPERTIES = 386,
381  tPROPGET = 387,
382  tPROPPUT = 388,
383  tPROPPUTREF = 389,
384  tPROXY = 390,
385  tPTR = 391,
386  tPUBLIC = 392,
387  tRANGE = 393,
388  tREADONLY = 394,
389  tREF = 395,
390  tREGISTER = 396,
391  tREPRESENTAS = 397,
392  tREQUESTEDIT = 398,
393  tRESTRICTED = 399,
394  tRETVAL = 400,
395  tSAFEARRAY = 401,
396  tSHORT = 402,
397  tSIGNED = 403,
398  tSIZEIS = 404,
399  tSIZEOF = 405,
400  tSMALL = 406,
401  tSOURCE = 407,
402  tSTATIC = 408,
403  tSTDCALL = 409,
404  tSTRICTCONTEXTHANDLE = 410,
405  tSTRING = 411,
406  tSTRUCT = 412,
407  tSWITCH = 413,
408  tSWITCHIS = 414,
409  tSWITCHTYPE = 415,
410  tTHREADING = 416,
411  tTRANSMITAS = 417,
412  tTRUE = 418,
413  tTYPEDEF = 419,
414  tUIDEFAULT = 420,
415  tUNION = 421,
416  tUNIQUE = 422,
417  tUNSIGNED = 423,
418  tUSESGETLASTERROR = 424,
419  tUSERMARSHAL = 425,
420  tUUID = 426,
421  tV1ENUM = 427,
422  tVARARG = 428,
423  tVERSION = 429,
424  tVIPROGID = 430,
425  tVOID = 431,
426  tWCHAR = 432,
427  tWIREMARSHAL = 433,
428  tAPARTMENT = 434,
429  tNEUTRAL = 435,
430  tSINGLE = 436,
431  tFREE = 437,
432  tBOTH = 438,
433  CAST = 439,
434  PPTR = 440,
435  POS = 441,
436  NEG = 442,
437  ADDRESSOF = 443
438  };

Function Documentation

◆ add_explicit_handle_if_necessary()

static void add_explicit_handle_if_necessary ( const type_t iface,
var_t func 
)
static

Definition at line 6877 of file parser.tab.c.

6878 {
6879  unsigned char explicit_fc, implicit_fc;
6880 
6881  /* check for a defined binding handle */
6882  if (!get_func_handle_var( iface, func, &explicit_fc, &implicit_fc ) || !explicit_fc)
6883  {
6884  /* no explicit handle specified so add
6885  * "[in] handle_t IDL_handle" as the first parameter to the
6886  * function */
6887  var_t *idl_handle = make_var(xstrdup("IDL_handle"));
6888  idl_handle->attrs = append_attr(NULL, make_attr(ATTR_IN));
6889  idl_handle->type = find_type_or_error("handle_t", 0);
6890  type_function_add_head_arg(func->type, idl_handle);
6891  }
6892 }
GLenum func
Definition: glext.h:6028
static attr_t * make_attr(enum attr_type type)
Definition: parser.tab.c:5459
static type_t * find_type_or_error(const char *name, int t)
Definition: parser.tab.c:6156
const var_t * get_func_handle_var(const type_t *iface, const var_t *func, unsigned char *explicit_fc, unsigned char *implicit_fc)
Definition: header.c:867
static attr_list_t * append_attr(attr_list_t *list, attr_t *attr)
Definition: parser.tab.c:5337
smooth NULL
Definition: ftsmooth.c:416
type_t * type
Definition: widltypes.h:452
attr_list_t * attrs
Definition: widltypes.h:453
static void type_function_add_head_arg(type_t *type, var_t *arg)
Definition: parser.tab.c:5538
var_t * make_var(char *name)
Definition: parser.tab.c:5876
char * xstrdup(const char *s)
Definition: uimain.c:768

Referenced by check_functions().

◆ add_incomplete()

void add_incomplete ( type_t t)

Definition at line 6026 of file parser.tab.c.

6027 {
6028  struct typenode *tn = xmalloc(sizeof *tn);
6029  tn->type = t;
6031 }
GLdouble GLdouble t
Definition: gl.h:2047
typelist_t incomplete_types
Definition: parser.tab.c:135
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
void * xmalloc(int size)
Definition: uimain.c:747
type_t * type
Definition: parser.tab.c:118
struct list entry
Definition: parser.tab.c:119

Referenced by reg_typedefs(), type_new_enum(), type_new_nonencapsulated_union(), and type_new_struct().

◆ alloc_type()

type_t* alloc_type ( void  )

Definition at line 5517 of file parser.tab.c.

5518 {
5519  type_pool_node_t *node = xmalloc(sizeof *node);
5520  list_add_tail(&type_pool, &node->link);
5521  return &node->data;
5522 }
GLvoid * data
Definition: dlist.c:359
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
void * xmalloc(int size)
Definition: uimain.c:747
static struct list type_pool
Definition: parser.tab.c:5510
Definition: dlist.c:348

Referenced by duptype(), and make_type().

◆ append_array()

static type_t * append_array ( type_t chain,
expr_t expr 
)
static

Definition at line 5495 of file parser.tab.c.

5496 {
5497  type_t *array;
5498 
5499  if (!expr)
5500  return chain;
5501 
5502  /* An array is always a reference pointer unless explicitly marked otherwise
5503  * (regardless of what the default pointer attribute is). */
5504  array = type_new_array(NULL, NULL, FALSE, expr->is_const ? expr->cval : 0,
5505  expr->is_const ? NULL : expr, NULL, FC_RP);
5506 
5507  return append_chain_type(chain, array);
5508 }
Definition: query.h:86
type_t * type_new_array(const char *name, type_t *element, int declptr, unsigned int dim, expr_t *size_is, expr_t *length_is, unsigned char ptr_default_fc)
Definition: typetree.c:226
smooth NULL
Definition: ftsmooth.c:416
struct sock * chain
Definition: tcpcore.h:1164
static type_t * append_chain_type(type_t *chain, type_t *type)
Definition: parser.tab.c:5590
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 GLint GLint GLenum GLenum GLenum GLint GLuint GLenum GLenum GLfloat GLenum GLfloat GLenum GLint const GLfloat GLenum GLint const GLushort GLint GLint GLsizei GLsizei GLenum GLsizei GLsizei GLenum GLenum const GLvoid GLenum GLdouble GLenum GLint GLenum GLenum GLint GLenum GLenum GLfloat GLenum GLenum GLfloat GLenum GLfloat GLenum GLushort const GLubyte GLenum GLenum GLenum GLint GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLvoid GLenum GLenum GLint GLenum GLint GLenum GLint GLuint GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble const GLfloat GLenum const GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble GLint GLint GLsizei GLsizei GLenum GLuint GLenum array
Definition: glfuncs.h:320

Referenced by yyparse().

◆ append_attr()

static attr_list_t * append_attr ( attr_list_t list,
attr_t attr 
)
static

Definition at line 5337 of file parser.tab.c.

5338 {
5339  attr_t *attr_existing;
5340  if (!attr) return list;
5341  if (!list)
5342  {
5343  list = xmalloc( sizeof(*list) );
5344  list_init( list );
5345  }
5346  LIST_FOR_EACH_ENTRY(attr_existing, list, attr_t, entry)
5347  if (attr_existing->type == attr->type)
5348  {
5349  parser_warning("duplicate attribute %s\n", get_attr_display_name(attr->type));
5350  /* use the last attribute, like MIDL does */
5351  list_remove(&attr_existing->entry);
5352  break;
5353  }
5354  list_add_tail( list, &attr->entry );
5355  return list;
5356 }
enum attr_type type
Definition: widltypes.h:297
__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
void * xmalloc(int size)
Definition: uimain.c:747
const char * get_attr_display_name(enum attr_type type)
Definition: parser.tab.c:6386
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
Definition: list.h:108
Definition: cookie.c:170
uint32_t entry
Definition: isohybrid.c:63
Definition: _list.h:228
struct list entry
Definition: widltypes.h:303
#define list
Definition: rosglue.h:35
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149
int parser_warning(const char *s,...)
Definition: utils.c:94

Referenced by add_explicit_handle_if_necessary(), append_attr_list(), async_iface_attrs(), make_decl_spec(), move_attr(), reg_typedefs(), and yyparse().

◆ append_attr_list()

static attr_list_t * append_attr_list ( attr_list_t new_list,
attr_list_t old_list 
)
static

Definition at line 5371 of file parser.tab.c.

5372 {
5373  struct list *entry;
5374 
5375  if (!old_list) return new_list;
5376 
5377  while ((entry = list_head(old_list)))
5378  {
5380  list_remove(entry);
5381  new_list = append_attr(new_list, attr);
5382  }
5383  return new_list;
5384 }
__WINE_SERVER_LIST_INLINE struct list * list_head(const struct list *list)
Definition: list.h:131
static attr_list_t * append_attr(attr_list_t *list, attr_t *attr)
Definition: parser.tab.c:5337
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
Definition: list.h:108
Definition: cookie.c:170
uint32_t entry
Definition: isohybrid.c:63
Definition: _list.h:228
#define LIST_ENTRY(type)
Definition: queue.h:175

Referenced by make_decl_spec(), and yyparse().

◆ append_attribs()

static attr_list_t * append_attribs ( attr_list_t l1,
attr_list_t l2 
)
static

Definition at line 7180 of file parser.tab.c.

7181 {
7182  if (!l2) return l1;
7183  if (!l1 || l1 == l2) return l2;
7184  list_move_tail (l1, l2);
7185  return l1;
7186 }
__WINE_SERVER_LIST_INLINE void list_move_tail(struct list *dst, struct list *src)
Definition: list.h:164

Referenced by yyparse().

◆ append_chain_type()

static type_t * append_chain_type ( type_t chain,
type_t type 
)
static

Definition at line 5590 of file parser.tab.c.

5591 {
5592  type_t *chain_type;
5593 
5594  if (!chain)
5595  return type;
5596  for (chain_type = chain; get_array_or_ptr_ref(chain_type); chain_type = get_array_or_ptr_ref(chain_type))
5597  ;
5598 
5599  if (is_ptr(chain_type))
5600  chain_type->details.pointer.ref = type;
5601  else if (is_array(chain_type))
5602  chain_type->details.array.elem = type;
5603  else
5604  assert(0);
5605 
5606  return chain;
5607 }
struct pointer_details pointer
Definition: widltypes.h:432
union _type_t::@4028 details
static type_t * get_array_or_ptr_ref(type_t *type)
Definition: parser.tab.c:5581
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
#define assert(x)
Definition: debug.h:53
static int is_ptr(const type_t *t)
Definition: header.h:59
static int is_array(const type_t *t)
Definition: header.h:64
struct sock * chain
Definition: tcpcore.h:1164
if(!(yy_init))
Definition: macro.lex.yy.c:714
struct array_details array
Definition: widltypes.h:429

Referenced by append_array(), declare_var(), and yyparse().

◆ append_declarator()

static declarator_list_t * append_declarator ( declarator_list_t list,
declarator_t p 
)
static

Definition at line 5900 of file parser.tab.c.

5901 {
5902  if (!d) return list;
5903  if (!list) {
5904  list = xmalloc(sizeof(*list));
5905  list_init(list);
5906  }
5907  list_add_tail(list, &d->entry);
5908  return list;
5909 }
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
void * xmalloc(int size)
Definition: uimain.c:747
#define d
Definition: ke_i.h:81
Definition: _list.h:228
#define list
Definition: rosglue.h:35
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149

Referenced by yyparse().

◆ append_expr()

static expr_list_t * append_expr ( expr_list_t list,
expr_t expr 
)
static

Definition at line 5483 of file parser.tab.c.

5484 {
5485  if (!expr) return list;
5486  if (!list)
5487  {
5488  list = xmalloc( sizeof(*list) );
5489  list_init( list );
5490  }
5491  list_add_tail( list, &expr->entry );
5492  return list;
5493 }
Definition: query.h:86
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
void * xmalloc(int size)
Definition: uimain.c:747
Definition: _list.h:228
#define list
Definition: rosglue.h:35
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149

Referenced by yyparse().

◆ append_ifref()

static ifref_list_t * append_ifref ( ifref_list_t list,
ifref_t iface 
)
static

Definition at line 5832 of file parser.tab.c.

5833 {
5834  if (!iface) return list;
5835  if (!list)
5836  {
5837  list = xmalloc( sizeof(*list) );
5838  list_init( list );
5839  }
5840  list_add_tail( list, &iface->entry );
5841  return list;
5842 }
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
void * xmalloc(int size)
Definition: uimain.c:747
struct list entry
Definition: widltypes.h:480
Definition: _list.h:228
#define list
Definition: rosglue.h:35
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149

Referenced by yyparse().

◆ append_statement()

static statement_list_t * append_statement ( statement_list_t list,
statement_t stmt 
)
static

Definition at line 7188 of file parser.tab.c.

7189 {
7190  if (!stmt) return list;
7191  if (!list)
7192  {
7193  list = xmalloc( sizeof(*list) );
7194  list_init( list );
7195  }
7196  list_add_tail( list, &stmt->entry );
7197  return list;
7198 }
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
void * xmalloc(int size)
Definition: uimain.c:747
struct list entry
Definition: widltypes.h:531
Definition: _list.h:228
#define list
Definition: rosglue.h:35
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149

Referenced by check_async_uuid(), and yyparse().

◆ append_statements()

static statement_list_t * append_statements ( statement_list_t l1,
statement_list_t l2 
)
static

Definition at line 7172 of file parser.tab.c.

7173 {
7174  if (!l2) return l1;
7175  if (!l1 || l1 == l2) return l2;
7176  list_move_tail (l1, l2);
7177  return l1;
7178 }
__WINE_SERVER_LIST_INLINE void list_move_tail(struct list *dst, struct list *src)
Definition: list.h:164

Referenced by yyparse().

◆ append_str()

static str_list_t * append_str ( str_list_t list,
char str 
)
static

Definition at line 5321 of file parser.tab.c.

5322 {
5323  struct str_list_entry_t *entry;
5324 
5325  if (!str) return list;
5326  if (!list)
5327  {
5328  list = xmalloc( sizeof(*list) );
5329  list_init( list );
5330  }
5331  entry = xmalloc( sizeof(*entry) );
5332  entry->str = str;
5333  list_add_tail( list, &entry->entry );
5334  return list;
5335 }
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
void * xmalloc(int size)
Definition: uimain.c:747
const WCHAR * str
Definition: widltypes.h:290
uint32_t entry
Definition: isohybrid.c:63
Definition: _list.h:228
#define list
Definition: rosglue.h:35
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149

Referenced by yyparse().

◆ append_var()

var_list_t* append_var ( var_list_t list,
var_t var 
)

Definition at line 5852 of file parser.tab.c.

5853 {
5854  if (!var) return list;
5855  if (!list)
5856  {
5857  list = xmalloc( sizeof(*list) );
5858  list_init( list );
5859  }
5860  list_add_tail( list, &var->entry );
5861  return list;
5862 }
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
void * xmalloc(int size)
Definition: uimain.c:747
Definition: _list.h:228
#define list
Definition: rosglue.h:35
struct list entry
Definition: widltypes.h:462
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149

Referenced by check_async_uuid(), set_var_types(), type_new_encapsulated_union(), and yyparse().

◆ append_var_list()

static var_list_t * append_var_list ( var_list_t list,
var_list_t vars 
)
static

Definition at line 5864 of file parser.tab.c.

5865 {
5866  if (!vars) return list;
5867  if (!list)
5868  {
5869  list = xmalloc( sizeof(*list) );
5870  list_init( list );
5871  }
5872  list_move_tail( list, vars );
5873  return list;
5874 }
void * xmalloc(int size)
Definition: uimain.c:747
__WINE_SERVER_LIST_INLINE void list_move_tail(struct list *dst, struct list *src)
Definition: list.h:164
Definition: _list.h:228
#define list
Definition: rosglue.h:35
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149

Referenced by yyparse().

◆ append_warning()

static warning_list_t * append_warning ( warning_list_t list,
int  num 
)
static

Definition at line 5609 of file parser.tab.c.

5610 {
5611  warning_t *entry;
5612 
5613  if(!list)
5614  {
5615  list = xmalloc( sizeof(*list) );
5616  list_init( list );
5617  }
5618  entry = xmalloc( sizeof(*entry) );
5619  entry->num = num;
5620  list_add_tail( list, &entry->entry );
5621  return list;
5622 }
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
Definition: list.h:102
void * xmalloc(int size)
Definition: uimain.c:747
GLuint GLuint num
Definition: glext.h:9618
uint32_t entry
Definition: isohybrid.c:63
Definition: _list.h:228
#define list
Definition: rosglue.h:35
__WINE_SERVER_LIST_INLINE void list_init(struct list *list)
Definition: list.h:149

Referenced by yyparse().

◆ arg_in_attrs()

static int arg_in_attrs ( attr_list_t attrs,
const attr_t attr 
)
static

Definition at line 6938 of file parser.tab.c.

6939 {
6940  return attr->type != ATTR_OUT && attr->type != ATTR_RETVAL;
6941 }
Definition: cookie.c:170

Referenced by check_async_uuid().

◆ arg_out_attrs()

static int arg_out_attrs ( attr_list_t attrs,
const attr_t attr 
)
static

Definition at line 6943 of file parser.tab.c.

6944 {
6945  return attr->type != ATTR_IN;
6946 }
Definition: cookie.c:170

Referenced by check_async_uuid().

◆ async_iface_attrs()

static int async_iface_attrs ( attr_list_t attrs,
const attr_t attr 
)
static

Definition at line 6924 of file parser.tab.c.

6925 {
6926  switch(attr->type)
6927  {
6928  case ATTR_UUID:
6929  return 0;
6930  case ATTR_ASYNCUUID:
6931  append_attr(attrs, make_attrp(ATTR_UUID, attr->u.pval));
6932  return 0;
6933  default:
6934  return 1;
6935  }
6936 }
static attr_list_t * append_attr(attr_list_t *list, attr_t *attr)
Definition: parser.tab.c:5337
Definition: cookie.c:170
static attr_t * make_attrp(enum attr_type type, void *val)
Definition: parser.tab.c:5475

Referenced by check_async_uuid().

◆ check_all_user_types()

static void check_all_user_types ( const statement_list_t stmts)
static

Definition at line 7026 of file parser.tab.c.

7027 {
7028  const statement_t *stmt;
7029 
7030  if (stmts) LIST_FOR_EACH_ENTRY(stmt, stmts, const statement_t, entry)
7031  {
7032  if (stmt->type == STMT_LIBRARY)
7033  check_all_user_types(stmt->u.lib->stmts);
7034  else if (stmt->type == STMT_TYPE && type_get_type(stmt->u.type) == TYPE_INTERFACE &&
7035  !is_local(stmt->u.type->attrs))
7036  {
7037  const statement_t *stmt_func;
7039  const var_t *func = stmt_func->u.var;
7040  check_for_additional_prototype_types(func->type->details.function->args);
7041  }
7042  }
7043  }
7044 }
#define STATEMENTS_FOR_EACH_FUNC(stmt, stmts)
Definition: widltypes.h:596
GLenum func
Definition: glext.h:6028
typelib_t * lib
Definition: widltypes.h:539
static void check_all_user_types(const statement_list_t *stmts)
Definition: parser.tab.c:7026
var_t * var
Definition: widltypes.h:538
int is_local(const attr_list_t *a)
Definition: header.c:938
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
statement_type_t type
Definition: parser.h:124
static enum type_type type_get_type(const type_t *type)
Definition: typetree.h:68
union _statement_t::@4029 u
uint32_t entry
Definition: isohybrid.c:63
statement_list_t * stmts
Definition: widltypes.h:517
void check_for_additional_prototype_types(const var_list_t *list)
Definition: header.c:640
static statement_list_t * type_iface_get_stmts(const type_t *type)
Definition: typetree.h:151

Referenced by yyparse().

◆ check_arg_attrs()

static void check_arg_attrs ( const var_t arg)
static

Definition at line 6428 of file parser.tab.c.

6429 {
6430  const attr_t *attr;
6431 
6432  if (arg->attrs)
6433  {
6434  LIST_FOR_EACH_ENTRY(attr, arg->attrs, const attr_t, entry)
6435  {
6436  if (!allowed_attr[attr->type].on_arg)
6437  error_loc("inapplicable attribute %s for argument %s\n",
6438  allowed_attr[attr->type].display_name, arg->name);
6439  }
6440  }
6441 }
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
unsigned int on_arg
Definition: parser.tab.c:6267
void error_loc(const char *s,...)
Definition: utils.c:69
Definition: cookie.c:170
__u8 attr
Definition: mkdosfs.c:359
uint32_t entry
Definition: isohybrid.c:63
const char * display_name
Definition: parser.tab.c:6277

Referenced by yyparse().

◆ check_async_uuid()

static void check_async_uuid ( type_t iface)
static

Definition at line 6948 of file parser.tab.c.

6949 {
6950  statement_list_t *stmts = NULL;
6951  statement_t *stmt;
6952  type_t *async_iface;
6953  type_t *inherit;
6954 
6955  if (!is_attr(iface->attrs, ATTR_ASYNCUUID)) return;
6956 
6957  inherit = iface->details.iface->inherit;
6958  if (inherit && strcmp(inherit->name, "IUnknown"))
6959  inherit = inherit->details.iface->async_iface;
6960  if (!inherit)
6961  error_loc("async_uuid applied to an interface with incompatible parent\n");
6962 
6963  async_iface = get_type(TYPE_INTERFACE, concat_str("Async", iface->name), iface->namespace, 0);
6964  async_iface->attrs = map_attrs(iface->attrs, async_iface_attrs);
6965 
6967  {
6968  var_t *begin_func, *finish_func, *func = stmt->u.var, *arg;
6969  var_list_t *begin_args = NULL, *finish_args = NULL, *args;
6970 
6971  args = func->type->details.function->args;
6973  {
6974  if (is_attr(arg->attrs, ATTR_IN) || !is_attr(arg->attrs, ATTR_OUT))
6975  begin_args = append_var(begin_args, copy_var(arg, strdup(arg->name), arg_in_attrs));
6976  if (is_attr(arg->attrs, ATTR_OUT))
6977  finish_args = append_var(finish_args, copy_var(arg, strdup(arg->name), arg_out_attrs));
6978  }
6979 
6980  begin_func = copy_var(func, concat_str("Begin_", func->name), NULL);
6981  begin_func->type = type_new_function(begin_args);
6982  begin_func->type->attrs = func->attrs;
6983  begin_func->type->details.function->retval = func->type->details.function->retval;
6984  stmts = append_statement(stmts, make_statement_declaration(begin_func));
6985 
6986  finish_func = copy_var(func, concat_str("Finish_", func->name), NULL);
6987  finish_func->type = type_new_function(finish_args);
6988  finish_func->type->attrs = func->attrs;
6989  finish_func->type->details.function->retval = func->type->details.function->retval;
6990  stmts = append_statement(stmts, make_statement_declaration(finish_func));
6991  }
6992 
6993  type_interface_define(async_iface, inherit, stmts);
6994  iface->details.iface->async_iface = async_iface->details.iface->async_iface = async_iface;
6995 }
#define STATEMENTS_FOR_EACH_FUNC(stmt, stmts)
Definition: widltypes.h:596
GLenum func
Definition: glext.h:6028
struct func_details * function
Definition: widltypes.h:426
var_t * var
Definition: widltypes.h:538
union _type_t::@4028 details
static statement_t * make_statement_declaration(var_t *var)
Definition: parser.tab.c:7084
void * arg
Definition: msvc.h:12
Definition: match.c:390
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
type_t * get_type(enum type_type type, char *name, struct namespace *namespace, int t)
Definition: parser.tab.c:6178
_Check_return_ _CRTIMP char *__cdecl strdup(_In_opt_z_ const char *_Src)
void error_loc(const char *s,...)
Definition: utils.c:69
smooth NULL
Definition: ftsmooth.c:416
static int arg_in_attrs(attr_list_t *attrs, const attr_t *attr)
Definition: parser.tab.c:6938
void type_interface_define(type_t *iface, type_t *inherit, statement_list_t *stmts)
Definition: typetree.c:439
static int async_iface_attrs(attr_list_t *attrs, const attr_t *attr)
Definition: parser.tab.c:6924
type_t * type
Definition: widltypes.h:452
union _statement_t::@4029 u
attr_list_t * attrs
Definition: widltypes.h:421
struct iface_details * iface
Definition: widltypes.h:427
const char * name
Definition: widltypes.h:418
uint32_t entry
Definition: isohybrid.c:63
Definition: _list.h:228
type_t * type_new_function(var_list_t *args)
Definition: typetree.c:131
static char * concat_str(const char *prefix, const char *str)
Definition: parser.tab.c:6916
static statement_list_t * append_statement(statement_list_t *list, statement_t *stmt)
Definition: parser.tab.c:7188
var_list_t * append_var(var_list_t *list, var_t *var)
Definition: parser.tab.c:5852
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
static var_t * copy_var(var_t *src, char *name, map_attrs_filter_t attr_filter)
Definition: parser.tab.c:5888
int is_attr(const attr_list_t *list, enum attr_type t)
Definition: header.c:99
static statement_list_t * type_iface_get_stmts(const type_t *type)
Definition: typetree.h:151
#define args
Definition: format.c:66
static attr_list_t * map_attrs(const attr_list_t *list, map_attrs_filter_t filter)
Definition: parser.tab.c:5388
static int arg_out_attrs(attr_list_t *attrs, const attr_t *attr)
Definition: parser.tab.c:6943

Referenced by yyparse().

◆ check_coclass_attrs()

static attr_list_t * check_coclass_attrs ( const char name,
attr_list_t attrs 
)
static

Definition at line 6548 of file parser.tab.c.

6549 {
6550  const attr_t *attr;
6551  if (!attrs) return attrs;
6552  LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry)
6553  {
6554  if (!allowed_attr[attr->type].on_coclass)
6555  error_loc("inapplicable attribute %s for coclass %s\n",
6557  }
6558  return attrs;
6559 }
unsigned int on_coclass
Definition: parser.tab.c:6276
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
void error_loc(const char *s,...)
Definition: utils.c:69
Definition: cookie.c:170
__u8 attr
Definition: mkdosfs.c:359
uint32_t entry
Definition: isohybrid.c:63
const char * display_name
Definition: parser.tab.c:6277
Definition: name.c:36

Referenced by yyparse().

◆ check_conformance_expr_list()

static void check_conformance_expr_list ( const char attr_name,
const var_t arg,
const type_t container_type,
expr_list_t expr_list 
)
static

Definition at line 6614 of file parser.tab.c.

6615 {
6616  expr_t *dim;
6617  struct expr_loc expr_loc;
6618  expr_loc.v = arg;
6619  expr_loc.attr = attr_name;
6620  if (expr_list) LIST_FOR_EACH_ENTRY(dim, expr_list, expr_t, entry)
6621  {
6622  if (dim->type != EXPR_VOID)
6623  {
6626  error_loc_info(&arg->loc_info, "expression must resolve to integral type <= 32bits for attribute %s\n",
6627  attr_name);
6628  }
6629  }
6630 }
enum expr_type type
Definition: widltypes.h:307
const char * attr
Definition: expr.h:25
expr_type
void * arg
Definition: msvc.h:12
void error_loc_info(const loc_info_t *loc_info, const char *s,...)
Definition: utils.c:85
container_type
Definition: metafile.c:146
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
static int is_allowed_conf_type(const type_t *type)
Definition: parser.tab.c:6561
Definition: expr.h:22
uint32_t entry
Definition: isohybrid.c:63
const type_t * expr_resolve_type(const struct expr_loc *expr_loc, const type_t *cont_type, const expr_t *expr)
Definition: expr.c:684
const var_t * v
Definition: expr.h:24

Referenced by check_field_common().

◆ check_def()

static void check_def ( const type_t t)
static

Definition at line 7207 of file parser.tab.c.

7208 {
7209  if (t->defined)
7210  error_loc("%s: redefinition error; original definition was at %s:%d\n",
7211  t->name, t->loc_info.input_name, t->loc_info.line_number);
7212 }
GLdouble GLdouble t
Definition: gl.h:2047
void error_loc(const char *s,...)
Definition: utils.c:69

Referenced by yyparse().

◆ check_dispiface_attrs()

static attr_list_t * check_dispiface_attrs ( const char name,
attr_list_t attrs 
)
static

Definition at line 6522 of file parser.tab.c.

6523 {
6524  const attr_t *attr;
6525  if (!attrs) return attrs;
6526  LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry)
6527  {
6528  if (!allowed_attr[attr->type].on_dispinterface)
6529  error_loc("inapplicable attribute %s for dispinterface %s\n",
6531  }
6532  return attrs;
6533 }
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
void error_loc(const char *s,...)
Definition: utils.c:69
unsigned int on_dispinterface
Definition: parser.tab.c:6274
Definition: cookie.c:170
__u8 attr
Definition: mkdosfs.c:359
uint32_t entry
Definition: isohybrid.c:63
const char * display_name
Definition: parser.tab.c:6277
Definition: name.c:36

Referenced by yyparse().

◆ check_enum_attrs()

static attr_list_t * check_enum_attrs ( attr_list_t attrs)
static

Definition at line 6456 of file parser.tab.c.

6457 {
6458  const attr_t *attr;
6459  if (!attrs) return attrs;
6460  LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry)
6461  {
6462  if (!allowed_attr[attr->type].on_enum)
6463  error_loc("inapplicable attribute %s for enum\n",
6464  allowed_attr[attr->type].display_name);
6465  }
6466  return attrs;
6467 }
unsigned int on_enum
Definition: parser.tab.c:6269
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
Definition: list.h:198
void error_loc(const char *s,...)
Definition: utils.c:69
Definition: cookie.c:170
__u8 attr
Definition: mkdosfs.c:359
uint32_t entry
Definition: isohybrid.c:63
const char * display_name
Definition: parser.tab.c:6277

Referenced by yyparse().

◆ check_field_attrs()

static attr_list_t * check_field_attrs ( const char name,
attr_list_t attrs 
)
static

Definition at line 6496 of file parser.tab.c.

6497 {
6498  const attr_t *attr;
6499  if (!attrs) return attrs;
6500  LIST_FOR_EACH_ENTRY(attr, attrs, const attr_t, entry)
6501  {
6502  if (!allowed_attr[attr->type].on_field)
6503