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