ReactOS 0.4.15-dev-8408-g466a198
widltypes.h
Go to the documentation of this file.
1/*
2 * IDL Compiler
3 *
4 * Copyright 2002 Ove Kaaven
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21#ifndef __WIDL_WIDLTYPES_H
22#define __WIDL_WIDLTYPES_H
23
24#include <stdarg.h>
25#include <assert.h>
26#include "guiddef.h"
27#include "ndrtypes.h"
28#include "wine/list.h"
29
30#ifndef UUID_DEFINED
31#define UUID_DEFINED
32typedef GUID UUID;
33#endif
34
35#define TRUE 1
36#define FALSE 0
37
38typedef struct _loc_info_t loc_info_t;
39typedef struct _attr_t attr_t;
40typedef struct _expr_t expr_t;
41typedef struct _type_t type_t;
42typedef struct _var_t var_t;
44typedef struct _ifref_t ifref_t;
48typedef struct _typelib_t typelib_t;
54typedef struct _warning_t warning_t;
55
56typedef struct list attr_list_t;
57typedef struct list str_list_t;
58typedef struct list expr_list_t;
59typedef struct list var_list_t;
60typedef struct list declarator_list_t;
61typedef struct list ifref_list_t;
62typedef struct list user_type_list_t;
65typedef struct list statement_list_t;
66typedef struct list warning_list_t;
67
69{
80 ATTR_CALLCONV, /* calling convention pseudo-attribute */
84 ATTR_CONST, /* const pseudo-attribute */
173
175{
214};
215
217{
229
231{
236};
237
239{
251
253{
260
262{
278};
279
280#define TYPE_BASIC_MAX TYPE_BASIC_HANDLE
281#define TYPE_BASIC_INT_MIN TYPE_BASIC_INT8
282#define TYPE_BASIC_INT_MAX TYPE_BASIC_HYPER
283
285{
286 const char *input_name;
288 const char *near_text;
289};
290
292{
293 char *str;
294 struct list entry;
295};
296
297struct _attr_t {
299 union {
300 unsigned int ival;
301 void *pval;
302 } u;
303 /* parser-internal */
304 struct list entry;
305};
306
307struct _expr_t {
309 const expr_t *ref;
310 union {
311 int lval;
312 double dval;
313 const char *sval;
314 const expr_t *ext;
316 } u;
317 const expr_t *ext2;
319 int cval;
320 /* parser-internal */
321 struct list entry;
322};
323
325{
327};
328
330{
332};
333
335{
337 struct _var_t *retval;
338 int idx;
339};
340
342{
349};
350
352{
354};
355
357{
360 struct _type_t *elem;
361 unsigned int dim;
362 unsigned char ptr_def_fc;
363 unsigned char declptr; /* if declared as a pointer */
364 unsigned short ptr_tfsoff; /* offset of pointer definition for declptr */
365};
366
368{
370};
371
373{
375 int sign;
376};
377
379{
380 struct _type_t *ref;
381 unsigned char def_fc;
382};
383
385{
386 struct _type_t *field;
387 const expr_t *bits;
388};
389
390#define HASHMAX 64
391
392struct namespace {
393 const char *name;
395 struct list entry;
397 struct rtype *type_hash[HASHMAX];
398};
399
401{
403 TYPE_BASIC, /* ints, floats and handles */
416};
417
418struct _type_t {
419 const char *name;
420 struct namespace *namespace;
423 union
424 {
436 const char *c_name;
437 type_t *orig; /* dup'd types */
438 unsigned int typestring_offset;
439 unsigned int ptrdesc; /* used for complex structs */
442 unsigned int ignore : 1;
443 unsigned int defined : 1;
444 unsigned int written : 1;
445 unsigned int user_types_registered : 1;
446 unsigned int tfswrite : 1; /* if the type needs to be written to the TFS */
447 unsigned int checked : 1;
448 unsigned int is_alias : 1; /* is the type an alias? */
449};
450
451struct _var_t {
452 char *name;
457 unsigned int procstring_offset;
458 unsigned int typestring_offset;
459
461
462 /* parser-internal */
463 struct list entry;
464};
465
471
472 /* parser-internal */
473 struct list entry;
474};
475
476struct _ifref_t {
479
480 /* parser-internal */
481 struct list entry;
482};
483
486 struct list entry;
487};
488
492 int flags;
493 int id;
494
495 char *name;
496
498};
499
501 char *name;
502
505
508
510
511 struct list entry;
512};
513
515 char *name;
519};
520
522 struct list entry;
523 const char *name;
524};
525
529};
530
531struct _statement_t {
532 struct list entry;
534 union
535 {
538 const char *str;
542 } u;
543};
544
546 int num;
547 struct list entry;
548};
549
550typedef enum {
556
561
562void init_types(void);
566
567#define tsENUM 1
568#define tsSTRUCT 2
569#define tsUNION 3
570
571var_t *find_const(const char *name, int f);
572type_t *find_type(const char *name, struct namespace *namespace, int t);
574type_t *get_type(enum type_type type, char *name, struct namespace *namespace, int t);
575type_t *reg_type(type_t *type, const char *name, struct namespace *namespace, int t);
577
580
582
583char *format_namespace(struct namespace *namespace, const char *prefix, const char *separator, const char *suffix);
584
585static inline var_list_t *type_get_function_args(const type_t *func_type)
586{
587 return func_type->details.function->args;
588}
589
591{
592 if (type->is_alias)
593 return TYPE_ALIAS;
594 return type->type_type;
595}
596
597#define STATEMENTS_FOR_EACH_FUNC(stmt, stmts) \
598 if (stmts) LIST_FOR_EACH_ENTRY( stmt, stmts, statement_t, entry ) \
599 if (stmt->type == STMT_DECLARATION && stmt->u.var->stgclass == STG_NONE && \
600 type_get_type_detect_alias(stmt->u.var->type) == TYPE_FUNCTION)
601
602static inline int statements_has_func(const statement_list_t *stmts)
603{
604 const statement_t *stmt;
605 int has_func = 0;
606 STATEMENTS_FOR_EACH_FUNC(stmt, stmts)
607 {
608 has_func = 1;
609 break;
610 }
611 return has_func;
612}
613
614static inline int is_global_namespace(const struct namespace *namespace)
615{
616 return !namespace->name;
617}
618
619#endif
Definition: list.h:37
static const WCHAR separator[]
Definition: asmname.c:65
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLdouble GLdouble t
Definition: gl.h:2047
GLsizei const GLvoid * pointer
Definition: glext.h:5848
GLfloat f
Definition: glext.h:7540
GLuint GLfloat * val
Definition: glext.h:7180
const char * var
Definition: shader.c:5666
union _attr_t::@5023 u
void * pval
Definition: widltypes.h:301
struct list entry
Definition: widltypes.h:304
unsigned int ival
Definition: widltypes.h:300
enum attr_type type
Definition: widltypes.h:298
type_t * type
Definition: widltypes.h:468
var_t * var
Definition: widltypes.h:467
expr_t * bits
Definition: widltypes.h:470
type_t * func_type
Definition: widltypes.h:469
struct list entry
Definition: widltypes.h:473
double dval
Definition: widltypes.h:312
type_t * tref
Definition: widltypes.h:315
const expr_t * ext2
Definition: widltypes.h:317
int lval
Definition: widltypes.h:311
struct list entry
Definition: widltypes.h:321
const char * sval
Definition: widltypes.h:313
enum expr_type type
Definition: widltypes.h:308
union _expr_t::@5024 u
int is_const
Definition: widltypes.h:318
const expr_t * ext
Definition: widltypes.h:314
const expr_t * ref
Definition: widltypes.h:309
int cval
Definition: widltypes.h:319
type_t * iface
Definition: widltypes.h:477
attr_list_t * attrs
Definition: widltypes.h:478
struct list entry
Definition: widltypes.h:481
char * name
Definition: widltypes.h:495
importlib_t * importlib
Definition: widltypes.h:497
struct list entry
Definition: widltypes.h:511
importinfo_t * importinfos
Definition: widltypes.h:506
int ntypeinfos
Definition: widltypes.h:507
char * name
Definition: widltypes.h:501
int line_number
Definition: widltypes.h:287
const char * near_text
Definition: widltypes.h:288
const char * input_name
Definition: widltypes.h:286
enum statement_type type
Definition: widltypes.h:533
typelib_t * lib
Definition: widltypes.h:540
type_t * type
Definition: widltypes.h:537
const char * str
Definition: widltypes.h:538
struct list entry
Definition: widltypes.h:532
ifref_t iface
Definition: widltypes.h:536
type_list_t * type_list
Definition: widltypes.h:541
var_t * var
Definition: widltypes.h:539
union _statement_t::@5026 u
struct _type_list_t * next
Definition: widltypes.h:528
type_t * type
Definition: widltypes.h:527
struct bitfield_details bitfield
Definition: widltypes.h:434
attr_list_t * attrs
Definition: widltypes.h:422
const char * c_name
Definition: widltypes.h:436
unsigned int user_types_registered
Definition: widltypes.h:445
type_t * orig
Definition: widltypes.h:437
struct func_details * function
Definition: widltypes.h:427
loc_info_t loc_info
Definition: widltypes.h:441
int typelib_idx
Definition: widltypes.h:440
struct coclass_details coclass
Definition: widltypes.h:431
unsigned int ptrdesc
Definition: widltypes.h:439
union _type_t::@5025 details
enum type_type type_type
Definition: widltypes.h:421
unsigned int is_alias
Definition: widltypes.h:448
unsigned int typestring_offset
Definition: widltypes.h:438
unsigned int ignore
Definition: widltypes.h:442
struct iface_details * iface
Definition: widltypes.h:428
unsigned int defined
Definition: widltypes.h:443
const char * name
Definition: widltypes.h:419
unsigned int written
Definition: widltypes.h:444
unsigned int checked
Definition: widltypes.h:447
struct enumeration_details * enumeration
Definition: widltypes.h:426
unsigned int tfswrite
Definition: widltypes.h:446
struct basic_details basic
Definition: widltypes.h:432
struct module_details * module
Definition: widltypes.h:429
struct struct_details * structure
Definition: widltypes.h:425
Definition: widltypes.h:484
type_t * type
Definition: widltypes.h:485
struct list entry
Definition: widltypes.h:486
statement_list_t * stmts
Definition: widltypes.h:518
struct list importlibs
Definition: widltypes.h:517
const attr_list_t * attrs
Definition: widltypes.h:516
char * name
Definition: widltypes.h:515
struct list entry
Definition: widltypes.h:522
const char * name
Definition: widltypes.h:523
type_t * type
Definition: widltypes.h:453
struct list entry
Definition: widltypes.h:463
char * name
Definition: widltypes.h:452
struct _loc_info_t loc_info
Definition: widltypes.h:460
unsigned int procstring_offset
Definition: widltypes.h:457
attr_list_t * attrs
Definition: widltypes.h:454
unsigned int typestring_offset
Definition: widltypes.h:458
enum storage_class stgclass
Definition: widltypes.h:456
expr_t * eval
Definition: widltypes.h:455
struct list entry
Definition: widltypes.h:547
struct _type_t * elem
Definition: widltypes.h:360
unsigned int dim
Definition: widltypes.h:361
unsigned char declptr
Definition: widltypes.h:363
expr_t * size_is
Definition: widltypes.h:358
expr_t * length_is
Definition: widltypes.h:359
unsigned short ptr_tfsoff
Definition: widltypes.h:364
unsigned char ptr_def_fc
Definition: widltypes.h:362
enum type_basic_type type
Definition: widltypes.h:374
const expr_t * bits
Definition: widltypes.h:387
struct _type_t * field
Definition: widltypes.h:386
ifref_list_t * ifaces
Definition: widltypes.h:369
var_list_t * enums
Definition: widltypes.h:331
var_list_t * args
Definition: widltypes.h:336
struct _var_t * retval
Definition: widltypes.h:337
struct _type_t * inherit
Definition: widltypes.h:346
var_list_t * disp_methods
Definition: widltypes.h:344
struct _type_t * disp_inherit
Definition: widltypes.h:347
struct _type_t * async_iface
Definition: widltypes.h:348
var_list_t * disp_props
Definition: widltypes.h:345
statement_list_t * stmts
Definition: widltypes.h:343
statement_list_t * stmts
Definition: widltypes.h:353
Definition: name.c:39
struct namespace * parent
Definition: widltypes.h:394
struct list entry
Definition: widltypes.h:395
struct rtype * type_hash[HASHMAX]
Definition: widltypes.h:397
const char * name
Definition: widltypes.h:393
struct list children
Definition: widltypes.h:396
struct _type_t * ref
Definition: widltypes.h:380
unsigned char def_fc
Definition: widltypes.h:381
Definition: widltypes.h:292
struct list entry
Definition: widltypes.h:294
char * str
Definition: widltypes.h:293
var_list_t * fields
Definition: widltypes.h:326
expr_type
var_list_t * append_var(var_list_t *list, var_t *var)
context_handle_list_t context_handle_list
Definition: header.c:43
type_t * alloc_type(void)
void set_all_tfswrite(int val)
GUID UUID
Definition: widltypes.h:32
type_type
Definition: widltypes.h:401
@ TYPE_ENUM
Definition: widltypes.h:404
@ TYPE_BITFIELD
Definition: widltypes.h:415
@ TYPE_BASIC
Definition: widltypes.h:403
@ TYPE_UNION
Definition: widltypes.h:407
@ TYPE_ALIAS
Definition: widltypes.h:408
@ TYPE_POINTER
Definition: widltypes.h:413
@ TYPE_VOID
Definition: widltypes.h:402
@ TYPE_ENCAPSULATED_UNION
Definition: widltypes.h:406
@ TYPE_COCLASS
Definition: widltypes.h:410
@ TYPE_STRUCT
Definition: widltypes.h:405
@ TYPE_MODULE
Definition: widltypes.h:409
@ TYPE_INTERFACE
Definition: widltypes.h:412
@ TYPE_ARRAY
Definition: widltypes.h:414
@ TYPE_FUNCTION
Definition: widltypes.h:411
expr_type
Definition: widltypes.h:175
@ EXPR_MEMBER
Definition: widltypes.h:197
@ EXPR_LESS
Definition: widltypes.h:206
@ EXPR_CAST
Definition: widltypes.h:184
@ EXPR_HEXNUM
Definition: widltypes.h:178
@ EXPR_ARRAY
Definition: widltypes.h:198
@ EXPR_MOD
Definition: widltypes.h:199
@ EXPR_LOGOR
Definition: widltypes.h:200
@ EXPR_LOGAND
Definition: widltypes.h:201
@ EXPR_DOUBLE
Definition: widltypes.h:179
@ EXPR_TRUEFALSE
Definition: widltypes.h:195
@ EXPR_CHARCONST
Definition: widltypes.h:213
@ EXPR_VOID
Definition: widltypes.h:176
@ EXPR_IDENTIFIER
Definition: widltypes.h:180
@ EXPR_SHR
Definition: widltypes.h:187
@ EXPR_LOGNOT
Definition: widltypes.h:209
@ EXPR_NEG
Definition: widltypes.h:181
@ EXPR_SHL
Definition: widltypes.h:186
@ EXPR_DIV
Definition: widltypes.h:189
@ EXPR_ADD
Definition: widltypes.h:190
@ EXPR_GTR
Definition: widltypes.h:205
@ EXPR_EQUALITY
Definition: widltypes.h:203
@ EXPR_INEQUALITY
Definition: widltypes.h:204
@ EXPR_POS
Definition: widltypes.h:210
@ EXPR_NOT
Definition: widltypes.h:182
@ EXPR_LESSEQL
Definition: widltypes.h:208
@ EXPR_MUL
Definition: widltypes.h:188
@ EXPR_COND
Definition: widltypes.h:194
@ EXPR_WSTRLIT
Definition: widltypes.h:212
@ EXPR_OR
Definition: widltypes.h:193
@ EXPR_STRLIT
Definition: widltypes.h:211
@ EXPR_NUM
Definition: widltypes.h:177
@ EXPR_PPTR
Definition: widltypes.h:183
@ EXPR_SIZEOF
Definition: widltypes.h:185
@ EXPR_SUB
Definition: widltypes.h:191
@ EXPR_XOR
Definition: widltypes.h:202
@ EXPR_GTREQL
Definition: widltypes.h:207
@ EXPR_AND
Definition: widltypes.h:192
@ EXPR_ADDRESSOF
Definition: widltypes.h:196
storage_class
Definition: widltypes.h:231
@ STG_REGISTER
Definition: widltypes.h:235
@ STG_NONE
Definition: widltypes.h:232
@ STG_EXTERN
Definition: widltypes.h:234
@ STG_STATIC
Definition: widltypes.h:233
type_kind
Definition: widltypes.h:217
@ TKIND_MODULE
Definition: widltypes.h:221
@ TKIND_COCLASS
Definition: widltypes.h:224
@ TKIND_RECORD
Definition: widltypes.h:220
@ TKIND_MAX
Definition: widltypes.h:227
@ TKIND_ENUM
Definition: widltypes.h:219
@ TKIND_UNION
Definition: widltypes.h:226
@ TKIND_ALIAS
Definition: widltypes.h:225
@ TKIND_DISPATCH
Definition: widltypes.h:223
@ TKIND_INTERFACE
Definition: widltypes.h:222
@ TKIND_PRIMITIVE
Definition: widltypes.h:218
#define HASHMAX
Definition: widltypes.h:390
void clear_all_offsets(void)
static int statements_has_func(const statement_list_t *stmts)
Definition: widltypes.h:602
threading_type
Definition: widltypes.h:253
@ THREADING_APARTMENT
Definition: widltypes.h:254
@ THREADING_BOTH
Definition: widltypes.h:258
@ THREADING_SINGLE
Definition: widltypes.h:256
@ THREADING_FREE
Definition: widltypes.h:257
@ THREADING_NEUTRAL
Definition: widltypes.h:255
char * format_namespace(struct namespace *namespace, const char *prefix, const char *separator, const char *suffix)
Definition: typetree.c:110
syskind_t
Definition: widltypes.h:550
@ SYS_WIN16
Definition: widltypes.h:551
@ SYS_WIN32
Definition: widltypes.h:552
@ SYS_WIN64
Definition: widltypes.h:554
@ SYS_MAC
Definition: widltypes.h:553
var_t * find_const(const char *name, int f)
attr_type
Definition: widltypes.h:69
@ ATTR_BROADCAST
Definition: widltypes.h:78
@ ATTR_IN
Definition: widltypes.h:118
@ ATTR_SIZEIS
Definition: widltypes.h:155
@ ATTR_VIPROGID
Definition: widltypes.h:170
@ ATTR_REPRESENTAS
Definition: widltypes.h:151
@ ATTR_PARTIALIGNORE
Definition: widltypes.h:140
@ ATTR_APPOBJECT
Definition: widltypes.h:73
@ ATTR_POINTERTYPE
Definition: widltypes.h:142
@ ATTR_OLEAUTOMATION
Definition: widltypes.h:135
@ ATTR_SWITCHTYPE
Definition: widltypes.h:160
@ ATTR_RETVAL
Definition: widltypes.h:154
@ ATTR_ENABLEALLOCATE
Definition: widltypes.h:98
@ ATTR_AUTO_HANDLE
Definition: widltypes.h:76
@ ATTR_CONTEXTHANDLE
Definition: widltypes.h:85
@ ATTR_READONLY
Definition: widltypes.h:150
@ ATTR_DECODE
Definition: widltypes.h:87
@ ATTR_PROPPUT
Definition: widltypes.h:145
@ ATTR_FORCEALLOCATE
Definition: widltypes.h:104
@ ATTR_EXPLICIT_HANDLE
Definition: widltypes.h:102
@ ATTR_ASYNC
Definition: widltypes.h:74
@ ATTR_INPUTSYNC
Definition: widltypes.h:120
@ ATTR_DLLNAME
Definition: widltypes.h:96
@ ATTR_DEFAULTBIND
Definition: widltypes.h:89
@ ATTR_VARARG
Definition: widltypes.h:168
@ ATTR_CASE
Definition: widltypes.h:81
@ ATTR_NOTIFY
Definition: widltypes.h:131
@ ATTR_ENCODE
Definition: widltypes.h:99
@ ATTR_UUID
Definition: widltypes.h:166
@ ATTR_DEFAULT
Definition: widltypes.h:88
@ ATTR_TRANSMITAS
Definition: widltypes.h:162
@ ATTR_HELPFILE
Definition: widltypes.h:107
@ ATTR_NOCODE
Definition: widltypes.h:127
@ ATTR_NONEXTENSIBLE
Definition: widltypes.h:130
@ ATTR_DEFAULTVTABLE
Definition: widltypes.h:92
@ ATTR_PROPPUTREF
Definition: widltypes.h:146
@ ATTR_CONST
Definition: widltypes.h:84
@ ATTR_POINTERDEFAULT
Definition: widltypes.h:141
@ ATTR_ANNOTATION
Definition: widltypes.h:72
@ ATTR_HANDLE
Definition: widltypes.h:105
@ ATTR_IMMEDIATEBIND
Definition: widltypes.h:116
@ ATTR_RANGE
Definition: widltypes.h:149
@ ATTR_ALLOCATE
Definition: widltypes.h:71
@ ATTR_MAYBE
Definition: widltypes.h:125
@ ATTR_DEFAULTCOLLELEM
Definition: widltypes.h:90
@ ATTR_THREADING
Definition: widltypes.h:161
@ ATTR_MESSAGE
Definition: widltypes.h:126
@ ATTR_IDEMPOTENT
Definition: widltypes.h:113
@ ATTR_IMPLICIT_HANDLE
Definition: widltypes.h:117
@ ATTR_PROXY
Definition: widltypes.h:147
@ ATTR_ENTRY
Definition: widltypes.h:101
@ ATTR_OBJECT
Definition: widltypes.h:133
@ ATTR_VERSION
Definition: widltypes.h:169
@ ATTR_REQUESTEDIT
Definition: widltypes.h:152
@ ATTR_CONTROL
Definition: widltypes.h:86
@ ATTR_DISABLECONSISTENCYCHECK
Definition: widltypes.h:93
@ ATTR_HELPSTRINGDLL
Definition: widltypes.h:110
@ ATTR_LIBLCID
Definition: widltypes.h:122
@ ATTR_UIDEFAULT
Definition: widltypes.h:163
@ ATTR_LICENSED
Definition: widltypes.h:123
@ ATTR_LENGTHIS
Definition: widltypes.h:121
@ ATTR_LOCAL
Definition: widltypes.h:124
@ ATTR_IIDIS
Definition: widltypes.h:115
@ ATTR_STRING
Definition: widltypes.h:158
@ ATTR_USERMARSHAL
Definition: widltypes.h:164
@ ATTR_DUAL
Definition: widltypes.h:97
@ ATTR_DISPLAYBIND
Definition: widltypes.h:95
@ ATTR_ODL
Definition: widltypes.h:134
@ ATTR_INLINE
Definition: widltypes.h:119
@ ATTR_NONCREATABLE
Definition: widltypes.h:129
@ ATTR_OUT
Definition: widltypes.h:138
@ ATTR_PUBLIC
Definition: widltypes.h:148
@ ATTR_CALLCONV
Definition: widltypes.h:80
@ ATTR_OPTIMIZE
Definition: widltypes.h:136
@ ATTR_STRICTCONTEXTHANDLE
Definition: widltypes.h:157
@ ATTR_PROPGET
Definition: widltypes.h:144
@ ATTR_COMMSTATUS
Definition: widltypes.h:83
@ ATTR_ENDPOINT
Definition: widltypes.h:100
@ ATTR_IGNORE
Definition: widltypes.h:114
@ ATTR_AGGREGATABLE
Definition: widltypes.h:70
@ ATTR_HELPSTRINGCONTEXT
Definition: widltypes.h:109
@ ATTR_BINDABLE
Definition: widltypes.h:77
@ ATTR_OPTIONAL
Definition: widltypes.h:137
@ ATTR_FAULTSTATUS
Definition: widltypes.h:103
@ ATTR_RESTRICTED
Definition: widltypes.h:153
@ ATTR_ID
Definition: widltypes.h:112
@ ATTR_NOTIFYFLAG
Definition: widltypes.h:132
@ ATTR_V1ENUM
Definition: widltypes.h:167
@ ATTR_DISPINTERFACE
Definition: widltypes.h:94
@ ATTR_HIDDEN
Definition: widltypes.h:111
@ ATTR_CODE
Definition: widltypes.h:82
@ ATTR_PROGID
Definition: widltypes.h:143
@ ATTR_HELPCONTEXT
Definition: widltypes.h:106
@ ATTR_HELPSTRING
Definition: widltypes.h:108
@ ATTR_CALLAS
Definition: widltypes.h:79
@ ATTR_PARAMLCID
Definition: widltypes.h:139
@ ATTR_WIREMARSHAL
Definition: widltypes.h:171
@ ATTR_NONBROWSABLE
Definition: widltypes.h:128
@ ATTR_SOURCE
Definition: widltypes.h:156
@ ATTR_DEFAULTVALUE
Definition: widltypes.h:91
@ ATTR_SWITCHIS
Definition: widltypes.h:159
@ ATTR_USESGETLASTERROR
Definition: widltypes.h:165
@ ATTR_ASYNCUUID
Definition: widltypes.h:75
type_t * reg_type(type_t *type, const char *name, struct namespace *namespace, int t)
void init_loc_info(loc_info_t *)
statement_type
Definition: widltypes.h:239
@ STMT_MODULE
Definition: widltypes.h:244
@ STMT_IMPORT
Definition: widltypes.h:246
@ STMT_IMPORTLIB
Definition: widltypes.h:247
@ STMT_TYPE
Definition: widltypes.h:242
@ STMT_DECLARATION
Definition: widltypes.h:241
@ STMT_LIBRARY
Definition: widltypes.h:240
@ STMT_TYPEDEF
Definition: widltypes.h:245
@ STMT_CPPQUOTE
Definition: widltypes.h:249
@ STMT_TYPEREF
Definition: widltypes.h:243
@ STMT_PRAGMA
Definition: widltypes.h:248
generic_handle_list_t generic_handle_list
Definition: header.c:44
type_t * get_type(enum type_type type, char *name, struct namespace *namespace, int t)
static enum type_type type_get_type_detect_alias(const type_t *type)
Definition: widltypes.h:590
void check_for_additional_prototype_types(const var_list_t *list)
Definition: header.c:640
void add_incomplete(type_t *t)
var_t * make_var(char *name)
void init_types(void)
static var_list_t * type_get_function_args(const type_t *func_type)
Definition: widltypes.h:585
static int is_global_namespace(const struct namespace *namespace)
Definition: widltypes.h:614
user_type_list_t user_type_list
Definition: header.c:42
type_basic_type
Definition: widltypes.h:262
@ TYPE_BASIC_DOUBLE
Definition: widltypes.h:275
@ TYPE_BASIC_INT32
Definition: widltypes.h:265
@ TYPE_BASIC_ERROR_STATUS_T
Definition: widltypes.h:276
@ TYPE_BASIC_CHAR
Definition: widltypes.h:270
@ TYPE_BASIC_WCHAR
Definition: widltypes.h:273
@ TYPE_BASIC_INT16
Definition: widltypes.h:264
@ TYPE_BASIC_HYPER
Definition: widltypes.h:271
@ TYPE_BASIC_HANDLE
Definition: widltypes.h:277
@ TYPE_BASIC_INT8
Definition: widltypes.h:263
@ TYPE_BASIC_INT3264
Definition: widltypes.h:268
@ TYPE_BASIC_LONG
Definition: widltypes.h:269
@ TYPE_BASIC_INT64
Definition: widltypes.h:266
@ TYPE_BASIC_BYTE
Definition: widltypes.h:272
@ TYPE_BASIC_INT
Definition: widltypes.h:267
@ TYPE_BASIC_FLOAT
Definition: widltypes.h:274
type_t * make_type(enum type_type type)
Definition: typetree.c:44
type_t * find_type(const char *name, struct namespace *namespace, int t)
#define STATEMENTS_FOR_EACH_FUNC(stmt, stmts)
Definition: widltypes.h:597