1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 18:47:34 +00:00

JSSpecCompiler: Parse lists in xspec mode

This commit is contained in:
Dan Klishch 2024-01-20 22:48:05 -05:00 committed by Andrew Kaster
parent d14bb7e91e
commit e1a1f4ed1a
9 changed files with 102 additions and 0 deletions

View file

@ -146,4 +146,12 @@ String Variable::name() const
return MUST(String::from_utf8(m_name->m_name));
}
Vector<NodeSubtreePointer> List::subtrees()
{
Vector<NodeSubtreePointer> result;
for (auto& element : m_elements)
result.append({ &element });
return result;
}
}

View file

@ -547,6 +547,22 @@ protected:
void dump_tree(StringBuilder& builder) override;
};
class List : public Expression {
public:
List(Vector<Tree>&& elements)
: m_elements(elements)
{
}
Vector<NodeSubtreePointer> subtrees() override;
protected:
void dump_tree(StringBuilder& builder) override;
private:
Vector<Tree> m_elements;
};
}
namespace AK {

View file

@ -187,4 +187,11 @@ void FunctionPointer::dump_tree(StringBuilder& builder)
dump_node(builder, "Func \"{}\"", m_declaration->m_name);
}
void List::dump_tree(StringBuilder& builder)
{
dump_node(builder, "List");
for (auto const& element : m_elements)
element->format_tree(builder);
}
}