Commit Graph

19 Commits

Author SHA1 Message Date
Rob Shearman 28ee1ee90f widl: Add new type_get_type and type_get_real_type_type functions.
Use these to implement a few helper functions. Change the type
verification in type accessor functions to use these new functions.
2009-01-19 13:36:26 +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 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 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
Rob Shearman 64520ecdc7 widl: Move creation of module type into a separate function, type_new_module and give it a special FC type. 2009-01-06 12:57:15 +01:00
Rob Shearman 8b326c4ff8 widl: Move duptype and alias to parser.y.
Make duptype static and rename alias to type_new_alias.
2009-01-06 12:57:02 +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 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