Rob Shearman
5f39b41526
widl: Check that attributes applied to interfaces, functions and arguments are applicable and issue an error if not.
2008-04-14 13:38:48 +02:00
Rob Shearman
f7f31150ee
widl: Turn on verbose errors, which gives a little more information in the case of a syntax error.
2008-04-02 19:54:08 +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
35ba23bd48
widl: Support __fastcall and __pascal calling conventions.
...
Support the synonyms for these and existing calling conventions.
2008-04-02 19:53:42 +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
772f3af9f0
widl: Be more strict about where semicolons can appear in IDL files.
...
In particular, don't allow them after cpp_quote and without a statement.
Update the rules for importlib, library definition, dispinterface
definition, interface definition, coclass definition and module
definition to optionally allow a semicolon postfix.
Call pop_import from the parser instead of the lexer to ensure that
pop_import is only called after the last statement in the imported file
has been parsed.
2008-04-01 19:10:43 +02:00
Rob Shearman
a110cffd95
widl: Parse typedefs of function pointers.
2008-04-01 11:29:23 +02:00
Rob Shearman
59556de0c1
widl: Add support for generic binding handles.
2008-03-27 17:33:02 +01:00
Dan Hipschman
2fa83d94c8
widl: Make structures with FC_ENUM16 fields complex.
...
Structures containing enum fields without the v1_enum attribute must be
treated as complex because of the range check and memory/wire size
differences. This includes a test which didn't pass before and now
passes on Wine and Windows.
2008-03-21 11:24:28 +01:00
Dan Hipschman
d37b1a4969
widl: Ignore libraries in imported IDL files.
2008-03-19 11:22:56 +01:00
Rob Shearman
15af19c6ec
widl: Add support for strict context handles.
2008-01-07 12:32:21 +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
85e87ae829
widl: iid_is should take expressions, not just identifiers.
2007-12-10 14:40:37 +01:00
Rob Shearman
72d9569cc4
widl: Support the address-of operator in expressions.
2007-12-10 14:40:29 +01:00
Rob Shearman
a513ff4926
widl: Don't override the pointer type in top-level arrays.
2007-12-08 19:57:25 +01:00
Dan Hipschman
ea7ab4da66
widl: Add a --local-stubs option.
2007-10-31 12:39:54 +01:00
Dan Hipschman
1aab1072c1
widl: Use error_loc instead of yyerror.
2007-10-24 13:51:58 +02:00
Dan Hipschman
1d0f9378bc
widl: Detect conformant arrays of user types correctly.
2007-10-18 12:09:23 +02:00
Dan Hipschman
40e90aae25
widl: Generate dlldata files.
2007-10-18 12:09:02 +02:00
Gerald Pfeifer
a7c6a27696
widl: Fix build failure in parser.y.
2007-10-15 12:05:06 +02:00
Dan Hipschman
2226ddcadf
widl: Keep track of every allocated type_t to simplify set_all_tfswrite.
2007-10-09 17:52:45 +02:00
Dan Hipschman
24ce74e96a
widl: Implement pointer_default functionality.
2007-10-09 17:52:45 +02:00
Dan Hipschman
cfa5457270
widl: Allow quoted UUIDs.
2007-10-09 17:52:45 +02:00
Dan Hipschman
d00ff2ed58
widl: Make structs containing user types bogus; fix square_test_us test failure.
2007-10-09 11:39:26 +02:00
Dan Hipschman
9650cf9bdb
widl: Correct default pointers.
2007-10-03 10:09:56 +02:00
Dan Hipschman
32a2477ef5
widl: Add a declonly argument to write_type_left.
2007-10-03 10:09:31 +02:00
Dan Hipschman
4c8c425f42
widl: Add newlines to error messages that are missing them.
2007-10-03 10:08:47 +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
dbfabf68a2
widl: Respect pointer attributes better.
2007-09-20 14:27:25 +02:00
Dan Hipschman
132f06cd48
widl: Implement complex arrays.
2007-09-19 11:39:09 +02:00
Dan Hipschman
8df79f0c99
widl: Implement pointer descriptions for complex structures.
2007-09-19 11:38:28 +02:00
Rob Shearman
b7618f91d7
widl: Fix detection of complex arrays.
2007-09-17 12:57:03 +02:00
Rob Shearman
de7220e82d
widl: Initialise cval in make_expr.
2007-09-17 12:57:00 +02:00
Dan Hipschman
5e84eb9a47
widl: Add padding to the end of complex structures.
2007-09-14 14:43:13 +02:00
Alexandre Julliard
40dda77c52
widl: Added support for floating-point constants.
2007-07-17 14:12:18 +02:00
Rob Shearman
be4cdefbf3
widl: Fix detection of structures with non-conformant strings.
2007-06-20 13:07:16 +02:00
Dan Hipschman
e4679b0c13
widl: Handle encapsulated unions.
2007-06-15 11:57:53 +02:00
Dan Hipschman
8709a06028
widl: Handle embedded interface pointers.
2007-06-15 11:56:17 +02:00
Dan Hipschman
c0982b42c5
widl: Handle wire_marshal types.
2007-06-14 11:35:44 +02:00
Dan Hipschman
88c8128704
widl: Simplify correlation descriptor code.
2007-06-12 11:13:30 +02:00
Dan Hipschman
4e22899e13
widl: Fix incomplete struct/union typedef bug.
2007-06-08 11:57:15 +02:00
Dan Hipschman
978b4d4f4e
widl: Represent arrays with type_t.
2007-06-06 12:13:16 +02:00
Rob Shearman
f198dcf09b
widl: A structure with variance, but without conformance should be a complex struct instead of a conformant, varying struct.
2007-05-31 12:25:03 +02:00
Dan Hipschman
8f7a5d63ec
widl: Allow types that reference themselves.
2007-05-25 19:36:12 +02:00
Dan Hipschman
9c30da77ba
widl: Shrink type_t structure.
2007-05-25 19:35:49 +02:00
Dan Hipschman
c5aaadc4c8
widl: Lay framework for unions with simple unions working.
2007-05-21 12:40:58 +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
541dddfde3
widl: Simplify make_safearray.
2007-05-10 12:55:33 +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
Rob Shearman
1c2a717b59
widl: Implement writing of SAFEARRAY type descriptions in typelibs.
2007-03-07 20:10:32 +01:00
Alexandre Julliard
cc9a07f194
widl: Add a string list type and use it for the endpoint attribute.
2007-02-07 17:54:33 +01:00
Alexandre Julliard
24ded9e69a
widl: Only recognize attribute keywords inside an attribute list.
2007-02-07 17:50:17 +01:00
Mike McCormack
609cd30277
widl: Implement dispinterfaces derived from an interface.
2007-02-06 13:20:46 +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
58827d026b
widl: Convert function lists to standard Wine lists.
2007-01-22 14:23:08 +01:00
Alexandre Julliard
e262933bdf
widl: Convert interface lists to standard Wine lists.
2007-01-22 14:21:56 +01:00
Alexandre Julliard
e998590557
widl: Convert attribute lists to standard Wine lists.
2007-01-22 14:20:36 +01:00
Michael Stefaniuc
0fb444b58c
tools: Remove redundant NULL checks before free() (found by Smatch).
2006-10-10 12:56:20 +02:00
Alexandre Julliard
86bb809e5b
widl: Change the prefix on bison-generated names to avoid the name-prefix directive.
2006-09-12 09:05:07 +02:00
Alexandre Julliard
bcdc5fb55f
Make.rules: Set the default prefix for bison files from the file basename.
2006-09-11 21:47:49 +02:00
Dan Hipschman
a407da4775
widl: Sanity check string and pointer attrs. Don't assign string as type.
2006-09-07 10:50:18 +02:00
Dan Hipschman
180ede5bfe
widl: Handle more pointer types in get_struct_type.
2006-09-07 10:49:58 +02:00
Dan Hipschman
88820263c6
widl: Remove checks for typedefs that always fail.
2006-09-07 10:49:46 +02:00
Dan Hipschman
1687a5d1db
widl: Generate an error for "int f(void a)".
2006-09-07 10:21:39 +02:00
Dan Hipschman
929a759895
widl: Add an is_ptr function.
2006-09-07 10:21:13 +02:00
Dan Hipschman
aadc90b266
widl: Factor the entry_t structure.
2006-09-07 10:20:56 +02: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
59cfad37aa
widl: Generate names for tagless structs, unions and enums.
2006-09-07 10:19:48 +02:00
Alexandre Julliard
883aef172d
widl: xmalloc shouldn't initialize to zero, do that explicitly where needed.
2006-08-26 21:41:37 +02:00
Dan Hipschman
94755218ac
widl: Remove usage of type_t ref field for base types; simplify code.
2006-08-25 11:32:05 +02:00
Andrew Talbot
daa2f97bdc
widl: Write-strings warning fix.
2006-08-25 11:27:45 +02:00
Dan Hipschman
16d4e71230
widl: Calculate method indices in parser instead of during header generation.
2006-08-16 12:48:52 +02:00
Dan Hipschman
06497dd44c
widl: Use ref_type to simplify some code.
2006-08-12 11:40:30 +02:00
Dan Hipschman
df91150e10
widl: Generate GUID (infile_i.c) files.
2006-08-04 13:25:37 +02:00
Dan Hipschman
99056d7e2a
widl: Write forward declarations for coclass definitions.
2006-08-03 22:29:58 +02:00
Dan Hipschman
3e1ace5aa3
widl: Set type_t kind field correctly for all types.
2006-07-31 21:40:37 +02:00
Dan Hipschman
23707beb46
widl: Set defined flag for coclasses.
2006-07-31 21:36:31 +02:00
Dan Hipschman
678ce9875f
widl: Encode coclass types in typelibs.
2006-07-29 11:55:20 +02:00
Dan Hipschman
9265d77584
widl: Register types for coclasses.
2006-07-29 11:55:08 +02:00
Dan Hipschman
c67b19b4f4
widl: Fold class_t into type_t.
2006-07-29 11:54:09 +02:00
Dan Hipschman
3b3632a1cd
widl: Allow trailing commas in attribute lists.
2006-07-26 10:24:06 +02:00
Dan Hipschman
12a9dfd62f
widl: Support SAFEARRAY(type) syntax.
2006-07-25 11:21:41 +02:00
Dan Hipschman
2660b8f9c1
widl: Support coclass forward declarations.
2006-07-14 13:32:38 +02:00
Robert Shearman
f627845624
widl: Add support for the builtin constants "TRUE" and "FALSE".
2006-07-07 14:30:34 +02:00
Robert Shearman
996c4f1f93
widl: Support coclass forward declarations.
2006-06-07 11:47:21 +02:00
Robert Shearman
fa4f94bdd5
widl: Allow some more "reserved words" to be used as identifiers.
2006-05-31 15:47:50 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Jacek Caban
738be2eec3
widl: Fix a typo.
2006-04-21 23:20:09 +02:00
Jacek Caban
8cd409facf
widl: Added importlib parsing code.
2006-04-21 12:46:13 +02:00
Robert Shearman
4cd506b8fd
widl: The lval member of var_t is essentially a duplicate of eval->cval.
...
- Generate eval's for enums that don't explicitly have one. This means
that enums written in header files won't match exactly what has been put
into the IDL file, but the numeric constat is the same and MIDL does a
similar thing.
- Replace constant lookups with eval->cval instead of lval.
2006-03-31 17:35:04 +02:00
Eric Kohl
919d14c577
widl: 'unsigned char' and 'byte' are must be distinct types.
2006-03-18 18:06:14 +01:00
Robert Shearman
91c35be7cc
widl: Write out more TYPEFLAGs and add more type library-specific
...
attributes to the parser.
2006-02-09 12:10:08 +01:00
Alexandre Julliard
91da64c9ca
widl: Remove '\n' from yyerror calls.
2006-02-07 12:36:20 +01:00
Robert Shearman
4e40675032
widl: Make 'attrs' field of type_t const.
2006-02-07 12:32:57 +01:00
Robert Shearman
e9ec85a01a
widl: Remove unused 'rname' field of type_t.
2006-02-07 12:32:42 +01:00
Robert Shearman
9f0c45b7e7
widl: Fix pointer detection for structures with embedded arrays.
...
Pointers have priority over every other type, so move the detection to
the top of get_struct_type.
Fall through from the embedded array detection to the embedded
structure handling code so that conformance, variance and pointer
presence is inherited from the array's base type.
2006-02-07 12:29:39 +01:00
Robert Shearman
513996fde4
widl: Do constant folding for the sizeof operator on simple types.
2006-01-31 18:06:25 +01:00
Robert Shearman
2eedb11f22
widl: Fix detection of varying arrays.
...
Correctly identify structures containing varying arrays as conformant
varying structures.
2006-01-24 11:14:38 +01:00
Robert Shearman
b4fb36c363
widl: Fix detection of conformant varying structs.
...
Rename has_conformant_array to has_conformance, add a new variable
has_variance and map has_conformant_string to has_conformance and
has_variance.
A conformant varying struct should be returned if just variance is
present and even if no pointers are present.
2006-01-24 11:14:15 +01:00
Robert Shearman
e9c771f98b
widl: Error if an array is in the middle of a structure.
...
Fix detection of conformant arrays and output an error if the array
isn't at the end of the structure.
2006-01-24 11:12:20 +01:00
Robert Shearman
362d42e082
widl: Fix the detection of conformant and pointer structs.
2006-01-24 11:11:56 +01:00
Robert Shearman
7f2419ceed
widl: Add some const attributes.
2005-12-26 13:11:33 +01:00
Robert Shearman
e59dcf53fc
widl: Use the same precendence rule for the conditional operator as in wpp.
...
Fixes several shift/reduce warnings.
2005-12-26 13:07:08 +01:00
Jacek Caban
a3b35129ce
widl: Added bindable and displaybind attributes handling.
2005-12-16 12:40:17 +01:00
Robert Shearman
f4356a64e3
widl: Don't treat FC_SMALL as FC_SHORT.
...
FC_SMALL is its own type and is the same size as FC_CHAR, not
FC_SHORT.
2005-12-12 12:11:11 +01:00
Robert Shearman
b86efe5d11
widl: Formatting cleanups.
2005-12-08 13:48:46 +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
Stefan Huehner
b8585b8d0c
Change some char* to const char* to fix warnigns.
2005-07-21 11:59:11 +00:00
Alexandre Julliard
9c04ad7439
Workaround to allow using the async keyword as method name.
2005-05-26 12:22:28 +00:00
Vincent Béron
2eaf7b2e8a
Add support for single in idl files.
2005-03-28 10:01:13 +00:00
Jacek Caban
10a605b072
Added handling of unsigned type.
2005-03-24 15:07:57 +00:00
Jacek Caban
e6150fe206
Write uuid of library in header.
2005-03-05 10:49:22 +00:00
Alexandre Julliard
afcab24230
Removed the useless proxy.h header file.
...
Fixed a couple of warnings.
2005-02-23 21:03:15 +00:00
Eric Kohl
5bed4857d5
- Add basic support for creating client and server stub files.
...
- Support implicit_handle attribute in IDL files.
- Build mixed-mode stub files.
2005-02-23 20:31:07 +00:00
Huw Davies
c2c87daf4a
Coclass support.
2005-02-03 13:34:28 +00:00
Huw Davies
d33a553d63
Add support for typedefs.
2005-02-02 19:10:02 +00:00
Huw Davies
49eb0b70e5
Add support for dispinterfaces (slightly hacked because we force the
...
import of stdole2.tlb).
Add propputref attribute.
2005-02-01 18:48:25 +00:00
Huw Davies
0e53bb3f7b
Fix typelib only option.
...
Make -t and -h options inclusive.
2005-01-26 19:40:47 +00:00
Huw Davies
a43a250bd1
Add enum support.
...
Another attempt at getting the alignment bits correct.
2005-01-25 20:02:09 +00:00
Huw Davies
6126fc75c9
unsigned char support.
2005-01-25 16:41:12 +00:00
Huw Davies
21842318e9
Don't set ATTR_IN or ATTR_OUT by default - this essentially reverts
...
rev. 1.21. The proxy code must explicitly add these if they're
needed.
2005-01-20 20:34:08 +00:00
Huw Davies
635221222f
Add support for the help* attributes on type libraries.
2005-01-10 16:08:36 +00:00
Huw Davies
a3026ca8f9
Add support for optional arguments and some suppport for the
...
defaultvalue attributes.
Better calculation of the typeinfo's res3 member (at least for
interfaces).
2005-01-10 14:22:24 +00:00
Huw Davies
634693c114
Add attributes control, hidden and restricted.
...
Correctly set the libflags for these attributes.
2005-01-09 17:59:44 +00:00
Huw Davies
346188b755
Initial support for typelib generation.
2005-01-06 20:45:21 +00:00
Huw Davies
86fead3c25
Store interfaces, structs, coclasses and modules that are to be
...
written into a typelib in a list.
2005-01-05 17:12:25 +00:00
Huw Davies
5c1231d2df
Add the precedence of the conditional operator.
2005-01-04 20:34:05 +00:00
Jacek Caban
54cba79d64
Added optional, defaultvalue and vararg.
2005-01-03 14:26:17 +00:00
Jacek Caban
90ce00abeb
Fixed defining DIIDs.
2004-12-27 17:04:00 +00:00
Jacek Caban
5c98265050
Added writing forward declaration of dispinterface.
2004-10-18 19:35:08 +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
Alexandre Julliard
68604dbae7
Allow defined types to be used as function names.
2004-10-06 18:54:20 +00:00
Alexandre Julliard
4806630104
Added support for the propget/propput function attributes.
2004-10-05 02:14:54 +00:00
Filip Navara
75e02e9335
- Force default [in] attribute on all parameters where explicit [in]
...
or [out] attributes aren't specified.
- Force default [out] attribute on return values.
2004-09-28 02:12:36 +00:00
Mike McCormack
0e5d9b56cb
Improve the handling of complex data types (strings and structs).
2004-09-20 19:11:16 +00:00
Mike McCormack
1a77ea567c
Determine RPC struct types more exactly.
2004-09-14 19:28:12 +00:00
Mike McCormack
2d8d1e2f74
Improve proxy code generated for oaidl.idl.
2004-09-13 18:05:47 +00:00
Filip Navara
977d863c0e
Make widl parse the 'transmit_as' and 'endpoint' keywords.
2004-04-26 23:29:59 +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
Robert Shearman
7f0abaffe5
- Handle "? :" conditionals.
...
- Allow [handle] attribute for types.
2004-04-19 23:08:22 +00:00
Ove Kaaven
560a756790
Don't add imported constructs to any typelib output by default.
2004-02-12 00:31:40 +00:00
Ove Kaaven
88bbfadb2c
Parse the [input_sync] attribute.
2004-02-11 23:57:58 +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
Alexandre Julliard
0bde2bbe01
Use <> format in generated #include statements.
...
Integer constants should be unsigned.
2003-09-03 19:31:14 +00:00
Ove Kaaven
064c48a607
Include guiddef.h in widltypes.h.
2002-12-15 01:13:18 +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
Gerald Pfeifer
af53e11fa0
Avoid using labels at the end of commpound statements.
2002-11-24 22:12:40 +00:00
Ove Kaaven
189397795d
Added "generate headers only" command-line option. Implemented imports
...
from inside interface definitions. Fixed a few problems with
generating header files for COM interfaces.
2002-11-21 00:02:38 +00:00
Alexandre Julliard
98f12a0db1
Make sure widl doesn't depend on the headers it has to generate.
2002-11-13 21:31:01 +00:00
Ove Kaaven
03c7d46806
Support for enums, arrays, encapsulated unions, signed/unsigned
...
qualifiers, UUIDs, include guards, the new ICOM_DEFINE1 macro, and
some other improvements.
2002-11-12 02:12:35 +00:00
Alexandre Julliard
ea97b39a79
Avoid dependencies on y.tab.h.
2002-08-13 03:30:58 +00:00
Alexandre Julliard
7d4ee77cab
Merged the IDL compiler written by Ove Kaaven.
2002-07-16 03:20:45 +00:00