1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:17:45 +00:00

LibCpp: Parse templatized types

We can now parse things like Vector<int>
This commit is contained in:
Itamar 2021-03-28 11:55:17 +03:00 committed by Andreas Kling
parent 9954a1837f
commit 29b6915db9
4 changed files with 156 additions and 41 deletions

View file

@ -54,7 +54,7 @@ void FunctionDeclaration::dump(size_t indent) const
String qualifiers_string;
if (!m_qualifiers.is_empty()) {
print_indent(indent+1);
print_indent(indent + 1);
outln("[{}]", String::join(" ", m_qualifiers));
}
@ -259,7 +259,7 @@ void StringLiteral::dump(size_t indent) const
void ReturnStatement::dump(size_t indent) const
{
ASTNode::dump(indent);
if(m_value)
if (m_value)
m_value->dump(indent + 1);
}
@ -442,4 +442,24 @@ void NullPointerLiteral::dump(size_t indent) const
ASTNode::dump(indent);
}
void TemplatizedType::dump(size_t indent) const
{
ASTNode::dump(indent);
String qualifiers_string;
if (!m_qualifiers.is_empty())
qualifiers_string = String::formatted("[{}] ", String::join(" ", m_qualifiers));
print_indent(indent + 1);
outln("{}{}", qualifiers_string, m_name);
print_indent(indent + 1);
outln("<");
for (auto& arg : m_template_arguments) {
arg.dump(indent + 1);
}
print_indent(indent + 1);
outln(">");
}
}