Commit graph

22 commits

Author SHA1 Message Date
Rémi Bernon
2edd194a00 widl: Move diagnostic and location functions to parser.l. 2023-03-23 16:44:34 +01:00
Rémi Bernon
39da052012 widl: Introduce new (open|close)_input_file helpers. 2023-03-16 14:09:25 +01:00
Rémi Bernon
9d537999e3 widl: Use a struct list for the import stack. 2023-03-16 14:09:25 +01:00
Rémi Bernon
5deda2de3f widl: Simplify handling of already parsed imports. 2023-03-16 14:09:25 +01:00
Rémi Bernon
b97cf7ab5f widl: Remove unused temp_name member. 2023-03-14 20:38:59 +01:00
Rémi Bernon
9a047736b3 widl: Use bison-bridge option. 2023-03-14 20:38:59 +01:00
Andrew Boyarshin
a55a37d1da widl: Support midl_pragma default option.
Signed-off-by: Andrew Boyarshin <andrew.boyarshin@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-16 23:01:38 +01:00
Rémi Bernon
374321f836 widl: Remove aNAMESPACE token from the lexer.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-08 20:09:15 +01:00
Rémi Bernon
280932536f widl: Support fully qualified names in WinRT mode.
Interfaces are going to reference each other across namespaces, so this
implements a type lookup with the full name.

It supports the following idl syntax in WinRT mode:

    #ifdef __WIDL__
    #pragma winrt ns_prefix
    #endif

    import "wtypes.idl";

    namespace Windows {
        namespace Foo {
            [object]
            interface IFoo {}
        }
        namespace Bar {
            [object]
            interface IBar { HRESULT DoBar([in] Windows.Foo.IFoo *foo); }
        }
    }

That was previously failing to parse the Windows.Foo.IFoo part and to
lookup the corresponding type.

Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-07 21:07:00 +02:00
Zebediah Figura
60d668631f widl: Don't store the default pointer type in the type_t structure.
This fixes type format string generation for the following IDL:

typedef int *intp;
[pointer_default(ref)] interface IRef {
    void a(intp *a);
}
[pointer_default(unique)] interface IUnique {
    void b(intp *a);
}

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-19 11:29:28 +02:00
Sergei Bolotov
376daa91d8 widl: Support for toggling and checking status for warnings, support for warning 2368.
Signed-off-by: Sergei Bolotov <bolotov.s.s@yandex.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-12 12:54:09 +09:00
Rob Shearman
39b3a57b3d widl: Fix symbol was not declared and using plain integer as NULL pointer sparse warnings. 2010-01-22 12:17:56 +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
b1f8560ae0 widl: Do the consistency checks on interfaces after parsing is complete. 2009-01-06 12:53:49 +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
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
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
Dan Hipschman
24ce74e96a widl: Implement pointer_default functionality. 2007-10-09 17:52:45 +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
Jonathan Ernst
360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02: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