Commit Graph

48 Commits

Author SHA1 Message Date
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 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 80ab2a7c6d widl: Move expression functions to a new file, expr.c. 2008-04-22 13:04:58 +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 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
Dan Hipschman 2d7b1f18b1 widl: Allow is_string_type to work for typedef'd types. 2008-02-22 12:04:26 +01:00
Dan Hipschman 8d15820f79 widl: Handle pointers to conformant arrays (e.g., "[size_is(, n)] int **p; "). 2007-11-05 13:24:37 +01:00
Dan Hipschman ea7ab4da66 widl: Add a --local-stubs option. 2007-10-31 12:39:54 +01:00
Dan Hipschman f173addbef widl: Use new functions need_proxy and need_stub to clean up code and avoid generating unnecessary files. 2007-10-16 11:03:49 +02:00
Dan Hipschman 32a2477ef5 widl: Add a declonly argument to write_type_left. 2007-10-03 10:09:31 +02:00
Rob Shearman 2055e636ae widl: Generate client and server code for using context handles. 2007-09-28 10:59:49 +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
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 e714c89d2f widl: Add --prefix-* options (take 3). 2007-04-26 15:47:37 +02: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 e998590557 widl: Convert attribute lists to standard Wine lists. 2007-01-22 14:20:36 +01: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 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
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 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 362d42e082 widl: Fix the detection of conformant and pointer structs. 2006-01-24 11:11:56 +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 d026458860 - Output prototypes for user marshal functions at the end of the
header and by use.
- Add support for range and ptr attributes and for the "small" base
  type.
2005-09-12 20:13:40 +00:00
Robert Shearman 4e7628ffb1 - The header global variable is NULL when not generating a header so
don't try to use it in functions that may be called by the client
  code.
- Make the functions that take char * take const char *.
2005-08-03 14:55:22 +00:00
Jacek Caban e6150fe206 Write uuid of library in header. 2005-03-05 10:49:22 +00:00
Jacek Caban 2161b36ac4 - Added creation of dispinterface header.
- Added creation of coclass header.
- Added messages when fopen fails.
2004-10-11 19:54:37 +00:00
Filip Navara 19fd305a7e Make widl compile without most of Windows/Wine headers, so it can be
reused by other projects.
2004-04-22 03:40:01 +00:00
Ove Kaaven 5d267d7372 Added rules to parse library, coclass, dispinterface, and module
definitions, and a number of attributes, and cleaned up a few things.
Started on a typelib generation framework.
2004-01-07 04:21:27 +00:00
Alexandre Julliard ba5a968157 Added partial support for function pointers. 2003-09-03 20:16:24 +00:00
Ove Kaaven e30a96776a Parse the NOT operator, the [idempotent] attribute, and the handle_t
and error_status_t types. Improved some parsing rules to get rid of
the LINK_LAST and LINK_SAFE macros. Enclose generated .h file within
an extern "C" (for C++). Output function prototypes for regular RPC
interfaces.  Fixed a couple of bugs.
2002-12-03 19:12:07 +00:00
Ove Kaaven 34e2f87f8f Handle encapsulated unions in a cleaner (and less buggy) way. Emit the
names "DUMMYUNIONNAME" and "DUMMYSTRUCTNAME" for anonymous unions and
structs. Support const and extern definitions. Retain tokens (and
whether numbers are hex or not) used for computing constant
expressions, so that the full expression can be written to the header
file instead of the computed integer result of the expression. Parse
the sizeof() operator.  Compute and remember constant definitions and
enum values so they can be used in expressions. Improved identifier
lookup speed. Fixed some bugs.
2002-11-30 01:49:46 +00:00
Alexandre Julliard 7d4ee77cab Merged the IDL compiler written by Ove Kaaven. 2002-07-16 03:20:45 +00:00