Rob Shearman
8a976a7d78
widl: Replace uses of get_func_return_type with type_function_get_rettype.
...
Also replace direct accesses into the type structure to get the return
type of a function with the same function.
2009-01-06 14:36:25 +01:00
Rob Shearman
9b139018cf
widl: Add new function, type_iface_get_stmts.
...
Use it to retrieve statements contained in interface types.
2009-01-06 12:58:41 +01:00
Rob Shearman
8fc59d0ead
widl: Add a new function, type_iface_get_inherit.
...
Use it for retrieving the parent interface for interfaces.
2009-01-06 12:58:33 +01:00
Rob Shearman
67ac03ae4e
widl: Add a new function, type_pointer_get_ref.
...
Use it for retrieving the type that a pointer refers to.
2009-01-06 12:58:25 +01:00
Rob Shearman
2b87d269e1
widl: Add a new function, type_array_get_element.
...
Use it whenever retrieving the element type of an array.
2009-01-06 12:58:13 +01:00
Rob Shearman
cb8d3322be
widl: Add new type_is_alias and type_get_real_type helper functions.
...
Use type_is_alias to replace cumbersome "type->kind == TKIND_ALIAS" expressions.
Use type_get_real_type to simplify some code.
2009-01-06 12:56:51 +01:00
Rob Shearman
200ec53835
widl: Access array type properties through accessors instead of getting them directly.
...
Store array type properties in the details union to save a bit of
memory and to make the general properties more obvious.
2009-01-06 12:56:33 +01:00
Rob Shearman
901a42b7f9
widl: Move funcs and stmts fields from type_t structure to module_details and function_details.
2009-01-06 12:56:15 +01:00
Rob Shearman
6b955b514d
widl: Generate header files from the parse tree instead of using hooks in the parser.
2008-12-29 14:54:34 +01:00
Rob Shearman
bf5a9cb61e
widl: Write the local stubs file based on the parsed list of statements, rather than using hooks in the parser code.
2008-12-29 14:47:03 +01:00
Rob Shearman
213f32744f
widl: Store the type-specific information in a union in the type_t structure.
...
Use pointers for the information for structures, enumerations,
functions and interfaces so that we can determine whether or not the
type has been defined yet and to enable more information to be stored.
2008-12-29 14:45:16 +01:00
Rob Shearman
04a22cc412
widl: Hide the details of where arguments, fields, values and cases are stored in the type_t structure for functions, structures, enums and unions.
2008-12-29 14:42:47 +01:00
Rob Shearman
2e8dec4115
widl: Don't automatically add DUMMYUNIONNAME and DUMMYSTRUCTNAME names to anonymous unions and structs.
...
It doesn't match what MIDL does.
2008-09-18 14:18:28 +02:00
Alexandre Julliard
bf011b0f53
widl: Infrastructure for adding a prefix to local variable references.
2008-09-15 16:46:01 +02:00
Alexandre Julliard
29e20b869c
widl: Replace write_name() by get_name() to make the code more readable.
2008-08-30 11:15:04 +02:00
Rob Shearman
033cade616
widl: Consolidate writing of COM and dispatch interfaces into one function to remove duplicated code.
...
Split up the writing into start and end to eventually support the style
MIDL uses where it writes declared types, etc. between the start and end
of the interface.
Make internal header functions take the file pointer to print to.
Don't write interface IDs for non-object interfaces and always write
handle declarations even if the interface has no methods, like MIDL does.
2008-05-01 18:11:26 +02:00
Rob Shearman
e71219e66e
widl: Add the parsing of storage classes into declaration-specifiers.
...
Support the static and register keywords.
This consolidates externdef and constdef rules into one declaration rule.
2008-04-30 16:59:47 +02:00
Rob Shearman
4f8f89e6bb
widl: Add support for "inline" on function definitions.
...
Fix applying calling convention to function type.
2008-04-30 11:31:21 +02:00
Rob Shearman
146ef11b77
widl: Keep const attributes applied to pointers when writing out the type.
...
Use an attribute to store the const qualifier for the pointer and type.
Allow multiple type-qualifiers to be applied to a type by adding a
declaration-specifier rule that encompasses type-qualifiers and types.
2008-04-30 11:30:55 +02:00
Rob Shearman
66fa9a714e
widl: Create a statement object for import statements.
...
Move the writing of include directives into the generated header into
header.c.
2008-04-25 12:10:34 +02:00
Rob Shearman
df0e38c067
widl: Create a list of statements in the whole IDL file, instead of just a list of interfaces.
2008-04-24 22:32:20 +02:00
Rob Shearman
1a0d28bf02
widl: Remove duplicated code in the form of the write_struct_expr function by enhancing write_expr to allow toplevel identifiers to be prefixed by a string, if specified.
2008-04-22 13:05:18 +02:00
Rob Shearman
80ab2a7c6d
widl: Move expression functions to a new file, expr.c.
2008-04-22 13:04:58 +02:00
Rob Shearman
95ac84e20b
widl: Remove EXPR_MEMBERPTR and implement it using EXPR_PPTR and EXPR_MEMBER instead.
2008-04-22 13:04:19 +02:00
Rob Shearman
cc3682cf12
widl: Add support for comparison, exclusive or, logical not and positive operators in expressions.
2008-04-22 13:04:03 +02:00
Rob Shearman
ea9932557a
widl: Add support for '%' operator in expressions.
2008-04-21 13:36:19 +02:00
Rob Shearman
d27c7601e5
widl: Add support for arrays in expressions.
2008-04-21 13:36:19 +02:00
Rob Shearman
03d5017416
widl: Add support for "->" and "." operators in expressions.
2008-04-21 13:36:19 +02:00
Rob Shearman
c46fcfb356
widl: Automatically add "handle_t IDL_handle" parameter to functions with no explicit handle specified whose containing interface has the explicit_handle attribute.
2008-04-21 13:36:19 +02:00
Rob Shearman
c4ca32bbda
widl: The implicit_handle attribute is allowed with a handle explicitly specified in the function parameters.
...
In that case, that handle is used instead of the implicit handle.
Fix the check for the explicit_handle attribute being specified without
a handle being specified in the function parameters, even though issuing
an error is wrong. (Thanks to Marcus Meissner & Coverity for spotting
that the check didn't do what it was supposed to do.)
2008-04-21 13:36:19 +02:00
Rob Shearman
e4b0266b27
widl: Support non-default calling conventions for non-object functions.
2008-04-11 12:14:55 +02:00
Rob Shearman
5483ea9e87
widl: Support non-default calling conventions for object methods.
2008-04-11 12:14:52 +02:00
Rob Shearman
bfde2c2e79
widl: Fix the writing out of function pointers with more than one level of indirection.
2008-04-02 19:54:01 +02:00
Rob Shearman
5a378905be
widl: Add a newline between function prototypes for non-object interfaces.
2008-04-02 19:53:50 +02:00
Rob Shearman
d97f3205ba
widl: Support parsing calling conventions for function identifiers.
...
Support automatically setting the calling convention to
STDMETHODCALLTYPE if it is part of an object interface.
Write out the calling convention in write_type_v.
2008-04-02 19:53:23 +02:00
Rob Shearman
6a0c5a4fe9
widl: Store function and function pointer types completely within type_t type.
2008-04-02 19:53:09 +02:00
Rob Shearman
a04b150839
widl: Add a function to get the return type of a parsed function.
...
This clarifies its use in code and makes it simpler to change the way
functions are parsed into types.
2008-04-02 19:52:49 +02:00
Rob Shearman
59556de0c1
widl: Add support for generic binding handles.
2008-03-27 17:33:02 +01:00
Rob Shearman
8a0cb2b5c5
widl: Use is_string_type for detecting strings in write_typeformatstring_var to make it consistent with write_remoting_arg.
...
Fix the is_string_type function used for detecting strings by only
examining aliases instead of both aliases and pointers. This is due to
the requirement that pointers to strings be handled as pointers and so
not detected as strings.
2008-03-27 17:32:58 +01:00
Rob Shearman
c233ba105e
widl: Remove unused headers.
2008-02-15 11:06:21 +01:00
Alexandre Julliard
ba5336175c
widl: Use the real argument names in the C method macros.
2008-01-18 12:03:22 +01:00
Rob Shearman
9741751962
widl: Remove some confusion in how version numbers are packed into an attribute by defining some macros for this purpose.
...
Remove unneeded includes.
2007-12-12 16:03:35 +01:00
Rob Shearman
72d9569cc4
widl: Support the address-of operator in expressions.
2007-12-10 14:40:29 +01:00
Dan Hipschman
ea7ab4da66
widl: Add a --local-stubs option.
2007-10-31 12:39:54 +01:00
Francois Gouget
4152085af1
widl: Modify generic_msg() to behave like all the other Wine tracing methods, that is to not append a '\n' to the message.
2007-10-19 11:46:01 +02:00
Dan Hipschman
1d0f9378bc
widl: Detect conformant arrays of user types correctly.
2007-10-18 12:09:23 +02:00
Dan Hipschman
304852f97e
widl: Write types in the format string comments.
2007-10-03 10:09:43 +02:00
Dan Hipschman
32a2477ef5
widl: Add a declonly argument to write_type_left.
2007-10-03 10:09:31 +02:00
Rob Shearman
a2fedc3769
widl: Write prototypes for context handle rundown rountines into generated header files.
2007-09-28 10:59:32 +02:00
Rob Shearman
b7618f91d7
widl: Fix detection of complex arrays.
2007-09-17 12:57:03 +02:00
Alexandre Julliard
40dda77c52
widl: Added support for floating-point constants.
2007-07-17 14:12:18 +02:00
Dan Hipschman
c0982b42c5
widl: Handle wire_marshal types.
2007-06-14 11:35:44 +02:00
Dan Hipschman
978b4d4f4e
widl: Represent arrays with type_t.
2007-06-06 12:13:16 +02:00
Dan Hipschman
f5baddf88a
widl: Replace get_name with a field reference.
2007-06-06 12:12:36 +02:00
Dan Hipschman
ef433e2792
widl: Remove var_t's ptr_level field and start write_pointers.
2007-05-11 12:33:27 +02:00
Dan Hipschman
d676d3be5f
widl: Get rid of the tname field of var_t, simplify code.
2007-05-01 12:37:18 +02:00
Dan Hipschman
1ecbb01617
widl: Get rid of the typeref_t structure, simplify code.
2007-05-01 12:37:08 +02:00
Dan Hipschman
e714c89d2f
widl: Add --prefix-* options (take 3).
2007-04-26 15:47:37 +02:00
Stefan Huehner
4d1d01f266
Mark several functions as static.
2007-03-13 13:35:12 +01:00
Rob Shearman
94a0a90165
widl: Print EXPR_NUM expresssions as unsigned to avoid printing an extra negative sign when lval is large.
2007-02-26 17:33:40 +01:00
Alexandre Julliard
3c2a9f5df8
widl: size_is and length_is are expression lists now.
2007-02-06 15:59:24 +01:00
Alexandre Julliard
43ac6ed995
widl: Convert expression lists to standard Wine lists.
...
Add a specific type for array dimensions.
2007-01-22 14:31:40 +01:00
Alexandre Julliard
eed74e4e4a
widl: Convert variable lists to standard Wine lists.
2007-01-22 14:26:12 +01:00
Alexandre Julliard
58827d026b
widl: Convert function lists to standard Wine lists.
2007-01-22 14:23:08 +01:00
Alexandre Julliard
e998590557
widl: Convert attribute lists to standard Wine lists.
2007-01-22 14:20:36 +01:00
Michael Stefaniuc
cc234847d0
widl: Use ULONG instead of unsigned long when generating declarations for *_UserFree() functions. This is needed for Win64 compatibility.
2006-11-09 10:43:23 +01:00
Michael Stefaniuc
6f95047034
widl: Use ULONG instead of unsigned long when generating declarations for *_UserUnMarshal() functions. This is needed for Win64 compatibility.
2006-11-09 10:43:20 +01:00
Michael Stefaniuc
05b1aac100
widl: Use ULONG instead of unsigned long when generating declarations for *_UserMarshal() functions. This is needed for Win64 compatibility.
2006-11-09 10:43:16 +01:00
Michael Stefaniuc
177aaf6738
widl: Use ULONG instead of unsigned long when generating declarations for *_UserSize() functions. This is needed for Win64 compatibility.
2006-11-09 10:43:12 +01:00
Michael Stefaniuc
15765dd953
The Data1 member of the GUID struct needs to be an unsigned int too for Win64 compatibility.
2006-10-16 10:53:04 +02:00
Francois Gouget
4b2d7e9321
widl: Use CONST_VTBL to declare lpVtbl.
2006-09-29 17:51:45 +02:00
Alexandre Julliard
86bb809e5b
widl: Change the prefix on bison-generated names to avoid the name-prefix directive.
2006-09-12 09:05:07 +02:00
Dan Hipschman
7e79e9d4ff
widl: Print pointers more aesthetically in generated header.
2006-09-07 10:21:29 +02:00
Dan Hipschman
c117a20cdb
widl: Use type_t for typedefs, not var_t. Simplify representation.
2006-09-07 10:20:41 +02:00
Dan Hipschman
04a15af5dc
widl: Add the rest of the pointer types to write_type.
2006-08-29 12:29:26 +02:00
Dan Hipschman
94755218ac
widl: Remove usage of type_t ref field for base types; simplify code.
2006-08-25 11:32:05 +02:00
Dan Hipschman
16d4e71230
widl: Calculate method indices in parser instead of during header generation.
2006-08-16 12:48:52 +02:00
Dan Hipschman
df91150e10
widl: Generate GUID (infile_i.c) files.
2006-08-04 13:25:37 +02:00
Dan Hipschman
c67b19b4f4
widl: Fold class_t into type_t.
2006-07-29 11:54:09 +02:00
Dan Hipschman
f3d01fb07b
widl: Fix redefinition of types in output.
2006-07-25 11:21:29 +02:00
Dan Hipschman
82c11ce002
widl: Allow write_type to output full pointer types.
2006-07-24 13:27:15 +02:00
Dan Hipschman
d68ec1d325
widl: Fix unterminated comment in generated code.
2006-07-14 13:32:38 +02:00
Robert Shearman
f627845624
widl: Add support for the builtin constants "TRUE" and "FALSE".
2006-07-07 14:30:34 +02:00
Robert Shearman
996c4f1f93
widl: Support coclass forward declarations.
2006-06-07 11:47:21 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Eric Kohl
2c7270e388
widl: Implement 'oldnames' option.
2006-05-05 16:37:42 +02:00
Robert Shearman
91dbc5ae28
widl: Write definitions for MIDL_user_allocate and MIDL_user_free in the header.
...
Write definitions for MIDL_user_allocate and MIDL_user_free in the
header when writing out RPC interfaces to prevent compile failures in
the generated client/server code.
2006-03-31 17:33:28 +02:00
Robert Shearman
071dfb188a
widl: Write out the pre- and postamble for RPC interfaces with no methods.
2006-03-31 17:32:38 +02:00
Robert Shearman
b38cd7ff5f
widl: Output interface defined guard for rpc interfaces too.
2006-03-31 17:32:09 +02:00
Eric Kohl
12d4d9c229
widl: Implement support for ref pointers to strings.
2006-03-30 16:24:35 +02:00
Robert Shearman
4e40675032
widl: Make 'attrs' field of type_t const.
2006-02-07 12:32:57 +01:00
Robert Shearman
f1bb0a474b
widl: Yet more const attributes.
2006-02-07 12:31:43 +01:00
Robert Shearman
511463f3a5
widl: More const attributes.
2006-02-07 12:31:17 +01:00
Robert Shearman
0a2c5b73fd
widl: Support client/server generation for explicit_handle interfaces
...
(based on a patch by Eric Kohl).
2006-01-31 18:06:17 +01:00
Robert Shearman
ae94c2207f
widl: Export the bracket adding functionality of do_write_expr outside
...
of header.c.
2005-12-31 13:18:49 +01:00
Robert Shearman
4acabfd719
widl: Out parameters.
...
Marshall and unmarshall out parameters for servers and clients
respectively.
Write out array components for declared local variables in generated
server code.
2005-12-26 13:21:38 +01:00
Robert Shearman
7f2419ceed
widl: Add some const attributes.
2005-12-26 13:11:33 +01:00
Robert Shearman
12159aec96
widl: Support explicit binding handles.
2005-12-12 12:14:03 +01:00
Robert Shearman
f4356a64e3
widl: Don't treat FC_SMALL as FC_SHORT.
...
FC_SMALL is its own type and is the same size as FC_CHAR, not
FC_SHORT.
2005-12-12 12:11:11 +01:00
Robert Shearman
6066106bb0
widl: Use WCHAR instead of wchar_t.
...
Output IDL wchar_t types as WCHAR to avoid conflicts with the
generally incompatible Unix wchar_t.
2005-12-12 12:10:26 +01:00