mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 14:27:35 +00:00
LibIDL: Attach extended attributes on enums
This commit is contained in:
parent
ea2b733862
commit
19bf42a7e6
3 changed files with 5 additions and 3 deletions
|
@ -635,12 +635,13 @@ void Parser::parse_namespace(Interface& interface)
|
||||||
consume_whitespace();
|
consume_whitespace();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Parser::parse_enumeration(Interface& interface)
|
void Parser::parse_enumeration(HashMap<DeprecatedString, DeprecatedString> extended_attributes, Interface& interface)
|
||||||
{
|
{
|
||||||
assert_string("enum"sv);
|
assert_string("enum"sv);
|
||||||
consume_whitespace();
|
consume_whitespace();
|
||||||
|
|
||||||
Enumeration enumeration {};
|
Enumeration enumeration {};
|
||||||
|
enumeration.extended_attributes = move(extended_attributes);
|
||||||
|
|
||||||
auto name = lexer.consume_until([](auto ch) { return is_ascii_space(ch); });
|
auto name = lexer.consume_until([](auto ch) { return is_ascii_space(ch); });
|
||||||
consume_whitespace();
|
consume_whitespace();
|
||||||
|
@ -832,7 +833,7 @@ void Parser::parse_non_interface_entities(bool allow_interface, Interface& inter
|
||||||
if (lexer.next_is("dictionary")) {
|
if (lexer.next_is("dictionary")) {
|
||||||
parse_dictionary(interface);
|
parse_dictionary(interface);
|
||||||
} else if (lexer.next_is("enum")) {
|
} else if (lexer.next_is("enum")) {
|
||||||
parse_enumeration(interface);
|
parse_enumeration(extended_attributes, interface);
|
||||||
} else if (lexer.next_is("typedef")) {
|
} else if (lexer.next_is("typedef")) {
|
||||||
parse_typedef(interface);
|
parse_typedef(interface);
|
||||||
} else if (lexer.next_is("interface mixin")) {
|
} else if (lexer.next_is("interface mixin")) {
|
||||||
|
|
|
@ -42,7 +42,7 @@ private:
|
||||||
void parse_interface(Interface&);
|
void parse_interface(Interface&);
|
||||||
void parse_namespace(Interface&);
|
void parse_namespace(Interface&);
|
||||||
void parse_non_interface_entities(bool allow_interface, Interface&);
|
void parse_non_interface_entities(bool allow_interface, Interface&);
|
||||||
void parse_enumeration(Interface&);
|
void parse_enumeration(HashMap<DeprecatedString, DeprecatedString>, Interface&);
|
||||||
void parse_typedef(Interface&);
|
void parse_typedef(Interface&);
|
||||||
void parse_interface_mixin(Interface&);
|
void parse_interface_mixin(Interface&);
|
||||||
void parse_dictionary(Interface&);
|
void parse_dictionary(Interface&);
|
||||||
|
|
|
@ -211,6 +211,7 @@ struct Typedef {
|
||||||
struct Enumeration {
|
struct Enumeration {
|
||||||
OrderedHashTable<DeprecatedString> values;
|
OrderedHashTable<DeprecatedString> values;
|
||||||
OrderedHashMap<DeprecatedString, DeprecatedString> translated_cpp_names;
|
OrderedHashMap<DeprecatedString, DeprecatedString> translated_cpp_names;
|
||||||
|
HashMap<DeprecatedString, DeprecatedString> extended_attributes;
|
||||||
DeprecatedString first_member;
|
DeprecatedString first_member;
|
||||||
bool is_original_definition { true };
|
bool is_original_definition { true };
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue