mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 07:37:35 +00:00
LibIDL: Also parse extended attributes after 'optional'
From the WebIDL grammar: (https://webidl.spec.whatwg.org/#prod-Argument) Argument :: ExtendedAttributeList ArgumentRest ArgumentRest :: optional TypeWithExtendedAttributes ArgumentName Default TypeWithExtendedAttributes :: ExtendedAttributeList Type One IDL file has been updated to match the spec literally, as it can now be parsed properly.
This commit is contained in:
parent
cc1e8a4e9f
commit
725a758c66
2 changed files with 7 additions and 1 deletions
|
@ -298,6 +298,12 @@ Vector<Parameter> Parser::parse_parameters()
|
|||
bool optional = lexer.consume_specific("optional");
|
||||
if (optional)
|
||||
consume_whitespace();
|
||||
if (lexer.consume_specific('[')) {
|
||||
// Not explicitly forbidden by the grammar but unlikely to happen in practice - if it does,
|
||||
// we'll have to teach the parser how to merge two sets of extended attributes.
|
||||
VERIFY(extended_attributes.is_empty());
|
||||
extended_attributes = parse_extended_attributes();
|
||||
}
|
||||
auto type = parse_type();
|
||||
bool variadic = lexer.consume_specific("..."sv);
|
||||
consume_whitespace();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue