Shader: Add import statement (not doing anything for now)

This commit is contained in:
Jérôme Leclercq
2022-03-04 18:27:37 +01:00
parent ca83f363a3
commit b6cd85d6fe
23 changed files with 101 additions and 0 deletions

View File

@@ -215,6 +215,14 @@ namespace Nz::ShaderAst
return clone;
}
StatementPtr AstCloner::Clone(ImportStatement& node)
{
auto clone = std::make_unique<ImportStatement>();
clone->modulePath = node.modulePath;
return clone;
}
StatementPtr AstCloner::Clone(MultiStatement& node)
{
auto clone = std::make_unique<MultiStatement>();

View File

@@ -185,6 +185,11 @@ namespace Nz::ShaderAst
node.statement->Visit(*this);
}
void AstRecursiveVisitor::Visit(ImportStatement& /*node*/)
{
/* nothing to do */
}
void AstRecursiveVisitor::Visit(MultiStatement& node)
{
for (auto& statement : node.statements)

View File

@@ -301,6 +301,13 @@ namespace Nz::ShaderAst
Node(node.statement);
}
void AstSerializerBase::Serialize(ImportStatement& node)
{
Container(node.modulePath);
for (auto& path : node.modulePath)
Value(path);
}
void AstSerializerBase::Serialize(MultiStatement& node)
{
Container(node.statements);

View File

@@ -1308,6 +1308,11 @@ namespace Nz::ShaderAst
}
}
StatementPtr SanitizeVisitor::Clone(ImportStatement& node)
{
return static_unique_pointer_cast<ImportStatement>(AstCloner::Clone(node));
}
StatementPtr SanitizeVisitor::Clone(MultiStatement& node)
{
auto clone = std::make_unique<MultiStatement>();