Commit Graph

130 Commits

Author SHA1 Message Date
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