Shader: Add import statement (not doing anything for now)
This commit is contained in:
@@ -68,6 +68,7 @@ namespace Nz::ShaderAst
|
||||
virtual StatementPtr Clone(ExpressionStatement& node);
|
||||
virtual StatementPtr Clone(ForStatement& node);
|
||||
virtual StatementPtr Clone(ForEachStatement& node);
|
||||
virtual StatementPtr Clone(ImportStatement& node);
|
||||
virtual StatementPtr Clone(MultiStatement& node);
|
||||
virtual StatementPtr Clone(NoOpStatement& node);
|
||||
virtual StatementPtr Clone(ReturnStatement& node);
|
||||
|
||||
@@ -56,6 +56,7 @@ namespace Nz::ShaderAst
|
||||
inline bool Compare(const ExpressionStatement& lhs, const ExpressionStatement& rhs);
|
||||
inline bool Compare(const ForStatement& lhs, const ForStatement& rhs);
|
||||
inline bool Compare(const ForEachStatement& lhs, const ForEachStatement& rhs);
|
||||
inline bool Compare(const ImportStatement& lhs, const ImportStatement& rhs);
|
||||
inline bool Compare(const MultiStatement& lhs, const MultiStatement& rhs);
|
||||
inline bool Compare(const NoOpStatement& lhs, const NoOpStatement& rhs);
|
||||
inline bool Compare(const ReturnStatement& lhs, const ReturnStatement& rhs);
|
||||
|
||||
@@ -509,6 +509,14 @@ namespace Nz::ShaderAst
|
||||
return true;
|
||||
}
|
||||
|
||||
bool Compare(const ImportStatement& lhs, const ImportStatement& rhs)
|
||||
{
|
||||
if (!Compare(lhs.modulePath, rhs.modulePath))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
inline bool Compare(const MultiStatement& lhs, const MultiStatement& rhs)
|
||||
{
|
||||
if (!Compare(lhs.statements, rhs.statements))
|
||||
|
||||
@@ -55,6 +55,7 @@ NAZARA_SHADERAST_STATEMENT(DiscardStatement)
|
||||
NAZARA_SHADERAST_STATEMENT(ForStatement)
|
||||
NAZARA_SHADERAST_STATEMENT(ForEachStatement)
|
||||
NAZARA_SHADERAST_STATEMENT(ExpressionStatement)
|
||||
NAZARA_SHADERAST_STATEMENT(ImportStatement)
|
||||
NAZARA_SHADERAST_STATEMENT(MultiStatement)
|
||||
NAZARA_SHADERAST_STATEMENT(NoOpStatement)
|
||||
NAZARA_SHADERAST_STATEMENT(ReturnStatement)
|
||||
|
||||
@@ -48,6 +48,7 @@ namespace Nz::ShaderAst
|
||||
void Visit(ExpressionStatement& node) override;
|
||||
void Visit(ForStatement& node) override;
|
||||
void Visit(ForEachStatement& node) override;
|
||||
void Visit(ImportStatement& node) override;
|
||||
void Visit(MultiStatement& node) override;
|
||||
void Visit(NoOpStatement& node) override;
|
||||
void Visit(ReturnStatement& node) override;
|
||||
|
||||
@@ -51,6 +51,7 @@ namespace Nz::ShaderAst
|
||||
void Serialize(ExpressionStatement& node);
|
||||
void Serialize(ForStatement& node);
|
||||
void Serialize(ForEachStatement& node);
|
||||
void Serialize(ImportStatement& node);
|
||||
void Serialize(MultiStatement& node);
|
||||
void Serialize(NoOpStatement& node);
|
||||
void Serialize(ReturnStatement& node);
|
||||
|
||||
@@ -367,6 +367,14 @@ namespace Nz::ShaderAst
|
||||
StatementPtr statement;
|
||||
};
|
||||
|
||||
struct NAZARA_SHADER_API ImportStatement : Statement
|
||||
{
|
||||
NodeType GetType() const override;
|
||||
void Visit(AstStatementVisitor& visitor) override;
|
||||
|
||||
std::vector<std::string> modulePath;
|
||||
};
|
||||
|
||||
struct NAZARA_SHADER_API MultiStatement : Statement
|
||||
{
|
||||
NodeType GetType() const override;
|
||||
|
||||
@@ -88,6 +88,7 @@ namespace Nz::ShaderAst
|
||||
StatementPtr Clone(ExpressionStatement& node) override;
|
||||
StatementPtr Clone(ForStatement& node) override;
|
||||
StatementPtr Clone(ForEachStatement& node) override;
|
||||
StatementPtr Clone(ImportStatement& node) override;
|
||||
StatementPtr Clone(MultiStatement& node) override;
|
||||
StatementPtr Clone(ScopedStatement& node) override;
|
||||
StatementPtr Clone(WhileStatement& node) override;
|
||||
|
||||
Reference in New Issue
Block a user