Commit Graph

280 Commits

Author SHA1 Message Date
Alexandre Julliard 537773fbf4 widl: Add some more attribute keywords. 2010-10-21 21:23:36 +02:00
Alexandre Julliard c6668089a4 widl: Set the default calling convention at header generation time, not at parsing time. 2010-08-27 13:52:09 +02:00
Alexandre Julliard 7d2869457f widl: Fix parsing of function calling conventions. 2010-08-27 13:49:56 +02:00
Alexandre Julliard cb6a225481 widl: Add a type_memsize_and_alignment function to make it explicit where the alignment is truly needed. 2010-04-05 20:06:22 +02:00
Alexandre Julliard a83563aa40 widl: Long constants must be 32-bit on all platforms. 2010-03-26 11:42:28 +01:00
Rob Shearman 979bdf28b6 widl: Remove func_t type.
It was just a simple indirection to get to a var_t, so just replace
all uses of it with the latter.
2010-03-23 17:28:22 +01:00
Rob Shearman a3f649f730 widl: Issue an error if an out parameter is a conformant string. 2010-03-23 17:28:14 +01:00
Rob Shearman 361a39fff3 widl: Issue an error if a context handle variable is declared outside of a function. 2010-03-23 17:28:02 +01:00
Rob Shearman 50534b87d0 widl: Fix crash when trying to declare a fixed size array with a size_is attribute.
In this case type_array_get_conformance will return NULL. The code
here is actually replacing an existing array with an EXPR_VOID
conformance with the specified conformance, so issue an error if
type_array_get_conformance returns NULL or the conformance has already
been defined.
2010-03-23 17:27:58 +01:00
Rob Shearman df853f8ed2 widl: error_status_t isn't an allowed conformance type.
The FC code requires more than 4 bits to represent it and the
correlation descriptor and union formats only allow 4 bits to
represent the type referred to.
2010-03-16 11:36:41 +01:00
Gerald Pfeifer 844e22093e widl: Avoid two warnings. 2010-03-01 14:28:49 +01:00
Rob Shearman d9b83e8bb2 widl: Add support for character constants in expressions. 2010-01-19 12:43:31 +01:00
Rob Shearman 6ed98b16a1 widl: Detect interfaces that inherit from another interface as objects. 2009-11-29 16:37:07 +01:00
Francois Gouget 61d0d121d0 widl: Add a trailing '\n' to an error_loc() call. 2009-11-16 12:43:06 +01:00
Rob Shearman 0228008bb8 widl: Allow pointers, type-qualifiers and other more complicated constructions in sizeof and cast expressions. 2009-11-09 20:42:57 +01:00
Rob Shearman 97d5f3401d widl: Add support for varargs functions. 2009-11-09 20:42:27 +01:00
Rob Shearman cdec0fe485 widl: Add support for bit-fields in non-remote structures. 2009-11-09 20:42:00 +01:00
Rob Shearman 4339f9edfb widl: Implement __int3264 keyword. 2009-11-09 20:36:19 +01:00
Rob Shearman 4383d47ef4 widl: Rename set_type to declare_var.
Make it return the var_t object rather than making the callers dig it
out, and make it take the attributes list so that callers don't have
to set it.
2009-11-09 20:35:56 +01:00
Rob Shearman 3885dd778a widl: Check for [string] attribute being applied when the elements are ranged.
The range will not be verified in and misconception could turn into a
security problem.

Move [string] attribute validation from reg_typedefs to set_type.
2009-11-09 20:35:13 +01:00
Rob Shearman 2b3659f326 widl: Implement [range] attribute. 2009-11-09 20:34:17 +01:00
Rob Shearman c367624534 widl: Enhance the IDL grammar to support unnamed arguments to functions. 2009-11-09 20:34:11 +01:00
Huw Davies ab32b3df4d widl: Add support for parsing the annotation attribute. 2009-10-26 14:05:29 +01:00
Huw Davies 81b2c9eb85 widl: Add support for the lcid parameter attribute. 2009-06-08 15:39:14 +02:00
Rob Shearman 12b23fa220 widl: Check the attributes applied to function declarations. 2009-03-23 14:22:23 +01:00
Rob Shearman 728a738a82 widl: Move type_basic_get_fc to typegen.c and rename it to get_basic_fc.
Move to using type_basic_get_type in other files where appropriate.
2009-03-09 12:14:35 +01:00
Rob Shearman 23673ca373 widl: Determine pointer fc at generation time instead of at parse time.
Avoid changing the details of a pointer once created.
Properly determine the pointer type for arrays.
2009-03-09 12:09:39 +01:00
Rob Shearman 13c3967522 widl: Move type_new_enum, type_new_struct, type_new_encapsulated_union and type_new_unencapsulated_union to typetree.c. 2009-03-05 18:39:02 +01:00
Rob Shearman 7c711d0736 widl: Allow enum and union tags to be used without being defined. 2009-03-05 18:39:02 +01:00
Rob Shearman 4866026d7f widl: Move the pointer referent, array element, function return type and interface inheritance properties from type_t to details structures for the appropriate types. 2009-03-05 18:39:02 +01:00
Rob Shearman 277e0617d5 widl: Store the abstract identifier of the type in type object instead of an NDR format character. 2009-03-05 18:39:02 +01:00
Rob Shearman b7dd838136 widl: Remove the single keyword and type.
It isn't valid in MIDL or the FreeDCE IDL compiler, nor does it appear
in the DCE/RPC or C99 specs.
2009-03-05 18:39:02 +01:00
Rob Shearman 319a7a102e widl: Implement a more abstract way of representing basic types. 2009-03-05 18:38:45 +01:00
Rob Shearman 7e08ff27c2 widl: Move declarray property to array_details.
Invert the property since an array being declared as a pointer is more
surprising than an array being declared as an array.

Provide an accessor, type_array_is_decl_as_ptr.
2009-03-05 16:34:00 +01:00
Rob Shearman f27261e525 widl: Only classify top-level pointers as ref pointers if they don't have any other pointer attributes. 2009-02-25 11:54:31 +01:00
Rob Shearman a93f531c21 widl: Ignore pointer attributes applied to interface pointers.
Print a warning if a pointer attribute is specified since the
generated code won't do what the developer expects.
2009-02-25 11:54:26 +01:00
Rob Shearman 2c6e611c8a widl: Add typegen_detect_type and use it.
Add typegen_detect_type for detecting types useful during
client/server/proxy code generation.
2009-02-23 15:25:57 +01:00
Rob Shearman 0f7f7922ba widl: Use type_get_type to determine the types of types during parsing and checking. 2009-02-23 15:25:44 +01:00
Rob Shearman fb934347b4 widl: Use type_get_type to determine the types during statement enumeration. 2009-02-23 15:25:20 +01:00
Rob Shearman 8f87eddd39 widl: Only duplicate a type if absolutely necessary.
Document how much of hack duplicating a type in order to change its
pointer type is.
2009-02-16 15:35:14 +01:00
Michael Stefaniuc 2b066327ec tools: Remove unused alloca.h include. 2009-02-13 13:00:02 +01:00
Alexandre Julliard ef6971da40 widl: Replace unsigned long and size_t by unsigned int where appropriate. 2009-02-06 14:54:03 +01:00
Rob Shearman bdb1321544 widl: Add a new function, type_alias_get_aliasee to wrap the retrieval of the type that the alias aliases. 2009-01-19 13:36:26 +01:00
Rob Shearman 77228b52e6 widl: Determine the type of an array entirely at code generation time instead of at parse time.
Previously, this was done partially (for fixed array types only).
2009-01-07 12:27:14 +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 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 8a42bc1f7b widl: Move the ifaces field of the type_t structure to coclass details. 2009-01-06 12:58:01 +01:00
Rob Shearman 83b1f08117 widl: Add function for getting the interfaces defined by a coclass type.
Split out the defining of coclass types in the parser into a function.
2009-01-06 12:57:56 +01:00
Rob Shearman 1f519e17cc widl: Don't store typelib kind information in the type structure.
It can trivially be derived from the type field now.
2009-01-06 12:57:31 +01:00