Commit graph

9 commits

Author SHA1 Message Date
Linus Groh
d9cb7b6dc7 LibIDL: Fix accidental early return in resolve_typedef()
This made sense before we had the next step to resolve union types, but
now we only need to skip transferring the extended attributes, without
returning just yet.
2022-11-10 21:23:00 +00:00
Linus Groh
4edcb660b9 LibIDL: Use Type::as_foo() shortcuts in resolve_typedef() 2022-11-10 21:23:00 +00:00
Linus Groh
775c12f60f LibIDL: Resolve typedefs in UnionType members recursively 2022-10-21 12:11:24 +02:00
Andrew Kaster
067a53b7e7 LibIDL: Remove static maps for interfaces and resolved imports
Instead, create a tree of Parsers all pointing to a top-level Parser.

All module imports and interfaces are stored at the top level, instead
of in a static map. This allows creating multiple IDL::Parsers in the
same process without them stepping on each others toes.
2022-10-09 10:14:57 +02:00
Andrew Kaster
2341294c20 LibIDL: Parse extended attributes that have () wrapped expressions
This includes things like Exposed and LegacyFactoryFunction.
2022-10-09 10:14:57 +02:00
Sam Atkins
a6f0508f9f BindingsGenerator+LibIDL: Parse "inherit" attributes
An "inherit attribute" calls an ancestor's getter with the same name,
but defines its own setter. Since a parent class's public methods are
exposed to child classes, we don't have to do any special handling here
to call the parent's methods, it just works. :^)
2022-10-06 21:45:07 +01:00
Linus Groh
38b3ce8f03 LibIDL+LibWeb: Remove stale references to "wrapper class" concept
There are no wrappers for the platform object types anymore :^)
2022-09-21 21:12:24 +01:00
Sam Atkins
7c8ef79898 LibIDL+WrapperGenerator: Make it easier to work with IDL::Type classes
Track the kind of Type it is, and use that to provide some convenient
`is_foo()` / `as_foo()` methods. While I was at it, made these all
classes instead of structs and made their data private.
2022-09-17 21:27:17 +02:00
Sam Atkins
c4668053d1 LibIDL+WrapperGenerator: Move IDL code into a library
IDL function overload resolution requires knowing each IDL function's
parameters and their types at runtime. The simplest way to do that is
just to make the types the generator uses available to the runtime.

Parsing has moved to LibIDL, but code generation has not, since that is
very specific to WrapperGenerator.
2022-09-17 21:27:17 +02:00
Renamed from Meta/Lagom/Tools/CodeGenerators/LibWeb/WrapperGenerator/IDLParser.cpp (Browse further)