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:
parent
d14bb7e91e
commit
e1a1f4ed1a
9 changed files with 102 additions and 0 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue