1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 05:08:13 +00:00

JSSpecCompiler: Parse optional arguments groups

This commit is contained in:
Dan Klishch 2024-01-21 14:46:33 -05:00 committed by Andrew Kaster
parent 3e6a07154b
commit a35a751f9e
8 changed files with 72 additions and 11 deletions

View file

@ -74,11 +74,17 @@ template<>
struct AK::Formatter<Vector<FunctionArgument>> : AK::Formatter<StringView> {
ErrorOr<void> format(FormatBuilder& builder, Vector<FunctionArgument> const& arguments)
{
size_t previous_optional_group = 0;
for (size_t i = 0; i < arguments.size(); ++i) {
if (previous_optional_group != arguments[i].optional_arguments_group) {
previous_optional_group = arguments[i].optional_arguments_group;
TRY(builder.put_string("["sv));
}
TRY(builder.put_string(arguments[i].name));
if (i + 1 != arguments.size())
TRY(builder.put_literal(", "sv));
}
TRY(builder.put_string(TRY(String::repeated(']', previous_optional_group))));
return {};
}
};