Shader/ShaderAst: Rename AccessMember* to Access*

This commit is contained in:
Jérôme Leclercq 2021-06-01 12:38:17 +02:00
parent ce5ace52cc
commit 0f3c0abb96
26 changed files with 66 additions and 66 deletions

View File

@ -36,8 +36,8 @@ namespace Nz::ShaderAst
virtual ExpressionPtr CloneExpression(Expression& expr);
virtual StatementPtr CloneStatement(Statement& statement);
virtual ExpressionPtr Clone(AccessMemberIdentifierExpression& node);
virtual ExpressionPtr Clone(AccessMemberIndexExpression& node);
virtual ExpressionPtr Clone(AccessIdentifierExpression& node);
virtual ExpressionPtr Clone(AccessIndexExpression& node);
virtual ExpressionPtr Clone(AssignExpression& node);
virtual ExpressionPtr Clone(BinaryExpression& node);
virtual ExpressionPtr Clone(CallFunctionExpression& node);

View File

@ -26,8 +26,8 @@
#define NAZARA_SHADERAST_STATEMENT_LAST(X) NAZARA_SHADERAST_STATEMENT(X)
#endif
NAZARA_SHADERAST_EXPRESSION(AccessMemberIdentifierExpression)
NAZARA_SHADERAST_EXPRESSION(AccessMemberIndexExpression)
NAZARA_SHADERAST_EXPRESSION(AccessIdentifierExpression)
NAZARA_SHADERAST_EXPRESSION(AccessIndexExpression)
NAZARA_SHADERAST_EXPRESSION(AssignExpression)
NAZARA_SHADERAST_EXPRESSION(BinaryExpression)
NAZARA_SHADERAST_EXPRESSION(CallFunctionExpression)

View File

@ -20,8 +20,8 @@ namespace Nz::ShaderAst
AstRecursiveVisitor() = default;
~AstRecursiveVisitor() = default;
void Visit(AccessMemberIdentifierExpression& node) override;
void Visit(AccessMemberIndexExpression& node) override;
void Visit(AccessIdentifierExpression& node) override;
void Visit(AccessIndexExpression& node) override;
void Visit(AssignExpression& node) override;
void Visit(BinaryExpression& node) override;
void Visit(CallFunctionExpression& node) override;

View File

@ -23,8 +23,8 @@ namespace Nz::ShaderAst
AstSerializerBase(AstSerializerBase&&) = delete;
~AstSerializerBase() = default;
void Serialize(AccessMemberIdentifierExpression& node);
void Serialize(AccessMemberIndexExpression& node);
void Serialize(AccessIdentifierExpression& node);
void Serialize(AccessIndexExpression& node);
void Serialize(AssignExpression& node);
void Serialize(BinaryExpression& node);
void Serialize(CallFunctionExpression& node);

View File

@ -31,8 +31,8 @@ namespace Nz::ShaderAst
private:
using AstExpressionVisitor::Visit;
void Visit(AccessMemberIdentifierExpression& node) override;
void Visit(AccessMemberIndexExpression& node) override;
void Visit(AccessIdentifierExpression& node) override;
void Visit(AccessIndexExpression& node) override;
void Visit(AssignExpression& node) override;
void Visit(BinaryExpression& node) override;
void Visit(CallFunctionExpression& node) override;

View File

@ -64,21 +64,21 @@ namespace Nz::ShaderAst
std::optional<ExpressionType> cachedExpressionType;
};
struct NAZARA_SHADER_API AccessMemberIdentifierExpression : public Expression
struct NAZARA_SHADER_API AccessIdentifierExpression : public Expression
{
NodeType GetType() const override;
void Visit(AstExpressionVisitor& visitor) override;
ExpressionPtr structExpr;
ExpressionPtr expr;
std::vector<std::string> memberIdentifiers;
};
struct NAZARA_SHADER_API AccessMemberIndexExpression : public Expression
struct NAZARA_SHADER_API AccessIndexExpression : public Expression
{
NodeType GetType() const override;
void Visit(AstExpressionVisitor& visitor) override;
ExpressionPtr structExpr;
ExpressionPtr expr;
std::vector<std::size_t> memberIndices;
};

View File

@ -47,7 +47,7 @@ namespace Nz::ShaderAst
using AstCloner::CloneExpression;
ExpressionPtr Clone(AccessMemberIdentifierExpression& node) override;
ExpressionPtr Clone(AccessIdentifierExpression& node) override;
ExpressionPtr Clone(AssignExpression& node) override;
ExpressionPtr Clone(BinaryExpression& node) override;
ExpressionPtr Clone(CallFunctionExpression& node) override;

View File

@ -79,7 +79,7 @@ namespace Nz
void Visit(ShaderAst::ExpressionPtr& expr, bool encloseIfRequired = false);
void Visit(ShaderAst::AccessMemberIndexExpression& node) override;
void Visit(ShaderAst::AccessIndexExpression& node) override;
void Visit(ShaderAst::AssignExpression& node) override;
void Visit(ShaderAst::BinaryExpression& node) override;
void Visit(ShaderAst::CallFunctionExpression& node) override;

View File

@ -80,7 +80,7 @@ namespace Nz
void Visit(ShaderAst::ExpressionPtr& expr, bool encloseIfRequired = false);
void Visit(ShaderAst::AccessMemberIndexExpression& node) override;
void Visit(ShaderAst::AccessIndexExpression& node) override;
void Visit(ShaderAst::AssignExpression& node) override;
void Visit(ShaderAst::BinaryExpression& node) override;
void Visit(ShaderAst::CastExpression& node) override;

View File

@ -19,12 +19,12 @@ namespace Nz::ShaderBuilder
{
struct AccessIndex
{
inline std::unique_ptr<ShaderAst::AccessMemberIndexExpression> operator()(ShaderAst::ExpressionPtr structExpr, std::vector<std::size_t> memberIndices) const;
inline std::unique_ptr<ShaderAst::AccessIndexExpression> operator()(ShaderAst::ExpressionPtr expr, std::vector<std::size_t> memberIndices) const;
};
struct AccessMember
{
inline std::unique_ptr<ShaderAst::AccessMemberIdentifierExpression> operator()(ShaderAst::ExpressionPtr structExpr, std::vector<std::string> memberIdentifiers) const;
inline std::unique_ptr<ShaderAst::AccessIdentifierExpression> operator()(ShaderAst::ExpressionPtr expr, std::vector<std::string> memberIdentifiers) const;
};
struct Assign

View File

@ -7,19 +7,19 @@
namespace Nz::ShaderBuilder
{
inline std::unique_ptr<ShaderAst::AccessMemberIdentifierExpression> Impl::AccessMember::operator()(ShaderAst::ExpressionPtr structExpr, std::vector<std::string> memberIdentifiers) const
inline std::unique_ptr<ShaderAst::AccessIdentifierExpression> Impl::AccessMember::operator()(ShaderAst::ExpressionPtr expr, std::vector<std::string> memberIdentifiers) const
{
auto accessMemberNode = std::make_unique<ShaderAst::AccessMemberIdentifierExpression>();
accessMemberNode->structExpr = std::move(structExpr);
auto accessMemberNode = std::make_unique<ShaderAst::AccessIdentifierExpression>();
accessMemberNode->expr = std::move(expr);
accessMemberNode->memberIdentifiers = std::move(memberIdentifiers);
return accessMemberNode;
}
inline std::unique_ptr<ShaderAst::AccessMemberIndexExpression> Impl::AccessIndex::operator()(ShaderAst::ExpressionPtr structExpr, std::vector<std::size_t> memberIndices) const
inline std::unique_ptr<ShaderAst::AccessIndexExpression> Impl::AccessIndex::operator()(ShaderAst::ExpressionPtr expr, std::vector<std::size_t> memberIndices) const
{
auto accessMemberNode = std::make_unique<ShaderAst::AccessMemberIndexExpression>();
accessMemberNode->structExpr = std::move(structExpr);
auto accessMemberNode = std::make_unique<ShaderAst::AccessIndexExpression>();
accessMemberNode->expr = std::move(expr);
accessMemberNode->memberIndices = std::move(memberIndices);
return accessMemberNode;

View File

@ -41,7 +41,7 @@ namespace Nz
using ExpressionVisitorExcept::Visit;
using StatementVisitorExcept::Visit;
void Visit(ShaderAst::AccessMemberIndexExpression& node) override;
void Visit(ShaderAst::AccessIndexExpression& node) override;
void Visit(ShaderAst::AssignExpression& node) override;
void Visit(ShaderAst::BinaryExpression& node) override;
void Visit(ShaderAst::BranchStatement& node) override;

View File

@ -30,7 +30,7 @@ namespace Nz
UInt32 Evaluate(ShaderAst::Expression& node);
using ExpressionVisitorExcept::Visit;
void Visit(ShaderAst::AccessMemberIndexExpression& node) override;
void Visit(ShaderAst::AccessIndexExpression& node) override;
void Visit(ShaderAst::VariableExpression& node) override;
SpirvExpressionLoad& operator=(const SpirvExpressionLoad&) = delete;

View File

@ -29,7 +29,7 @@ namespace Nz
void Store(ShaderAst::ExpressionPtr& node, UInt32 resultId);
using ExpressionVisitorExcept::Visit;
void Visit(ShaderAst::AccessMemberIndexExpression& node) override;
void Visit(ShaderAst::AccessIndexExpression& node) override;
void Visit(ShaderAst::SwizzleExpression& node) override;
void Visit(ShaderAst::VariableExpression& node) override;

View File

@ -158,22 +158,22 @@ namespace Nz::ShaderAst
return clone;
}
ExpressionPtr AstCloner::Clone(AccessMemberIdentifierExpression& node)
ExpressionPtr AstCloner::Clone(AccessIdentifierExpression& node)
{
auto clone = std::make_unique<AccessMemberIdentifierExpression>();
auto clone = std::make_unique<AccessIdentifierExpression>();
clone->memberIdentifiers = node.memberIdentifiers;
clone->structExpr = CloneExpression(node.structExpr);
clone->expr = CloneExpression(node.expr);
clone->cachedExpressionType = node.cachedExpressionType;
return clone;
}
ExpressionPtr AstCloner::Clone(AccessMemberIndexExpression& node)
ExpressionPtr AstCloner::Clone(AccessIndexExpression& node)
{
auto clone = std::make_unique<AccessMemberIndexExpression>();
auto clone = std::make_unique<AccessIndexExpression>();
clone->memberIndices = node.memberIndices;
clone->structExpr = CloneExpression(node.structExpr);
clone->expr = CloneExpression(node.expr);
clone->cachedExpressionType = node.cachedExpressionType;

View File

@ -7,14 +7,14 @@
namespace Nz::ShaderAst
{
void AstRecursiveVisitor::Visit(AccessMemberIdentifierExpression& node)
void AstRecursiveVisitor::Visit(AccessIdentifierExpression& node)
{
node.structExpr->Visit(*this);
node.expr->Visit(*this);
}
void AstRecursiveVisitor::Visit(AccessMemberIndexExpression& node)
void AstRecursiveVisitor::Visit(AccessIndexExpression& node)
{
node.structExpr->Visit(*this);
node.expr->Visit(*this);
}
void AstRecursiveVisitor::Visit(AssignExpression& node)

View File

@ -33,18 +33,18 @@ namespace Nz::ShaderAst
};
}
void AstSerializerBase::Serialize(AccessMemberIdentifierExpression& node)
void AstSerializerBase::Serialize(AccessIdentifierExpression& node)
{
Node(node.structExpr);
Node(node.expr);
Container(node.memberIdentifiers);
for (std::string& identifier : node.memberIdentifiers)
Value(identifier);
}
void AstSerializerBase::Serialize(AccessMemberIndexExpression& node)
void AstSerializerBase::Serialize(AccessIndexExpression& node)
{
Node(node.structExpr);
Node(node.expr);
Container(node.memberIndices);
for (std::size_t& identifier : node.memberIndices)

View File

@ -13,14 +13,14 @@ namespace Nz::ShaderAst
return m_expressionCategory;
}
void ShaderAstValueCategory::Visit(AccessMemberIdentifierExpression& node)
void ShaderAstValueCategory::Visit(AccessIdentifierExpression& node)
{
node.structExpr->Visit(*this);
node.expr->Visit(*this);
}
void ShaderAstValueCategory::Visit(AccessMemberIndexExpression& node)
void ShaderAstValueCategory::Visit(AccessIndexExpression& node)
{
node.structExpr->Visit(*this);
node.expr->Visit(*this);
}
void ShaderAstValueCategory::Visit(AssignExpression& /*node*/)

View File

@ -116,9 +116,9 @@ namespace Nz::ShaderAst
return member.type;
}
ExpressionPtr SanitizeVisitor::Clone(AccessMemberIdentifierExpression& node)
ExpressionPtr SanitizeVisitor::Clone(AccessIdentifierExpression& node)
{
auto structExpr = CloneExpression(MandatoryExpr(node.structExpr));
auto structExpr = CloneExpression(MandatoryExpr(node.expr));
const ExpressionType& exprType = GetExpressionType(*structExpr);
if (IsVectorType(exprType))
@ -177,9 +177,9 @@ namespace Nz::ShaderAst
return swizzle;
}
// Transform to AccessMemberIndexExpression
auto accessMemberIndex = std::make_unique<AccessMemberIndexExpression>();
accessMemberIndex->structExpr = std::move(structExpr);
// Transform to AccessIndexExpression
auto accessMemberIndex = std::make_unique<AccessIndexExpression>();
accessMemberIndex->expr = std::move(structExpr);
StackArray<std::size_t> structIndices = NazaraStackArrayNoInit(std::size_t, node.memberIdentifiers.size());

View File

@ -650,11 +650,11 @@ namespace Nz
Append(")");
}
void GlslWriter::Visit(ShaderAst::AccessMemberIndexExpression& node)
void GlslWriter::Visit(ShaderAst::AccessIndexExpression& node)
{
Visit(node.structExpr, true);
Visit(node.expr, true);
const ShaderAst::ExpressionType& exprType = GetExpressionType(*node.structExpr);
const ShaderAst::ExpressionType& exprType = GetExpressionType(*node.expr);
assert(IsStructType(exprType));
AppendField(std::get<ShaderAst::StructType>(exprType).structIndex, node.memberIndices.data(), node.memberIndices.size());

View File

@ -438,11 +438,11 @@ namespace Nz
Append(")");
}
void LangWriter::Visit(ShaderAst::AccessMemberIndexExpression& node)
void LangWriter::Visit(ShaderAst::AccessIndexExpression& node)
{
Visit(node.structExpr, true);
Visit(node.expr, true);
const ShaderAst::ExpressionType& exprType = GetExpressionType(*node.structExpr);
const ShaderAst::ExpressionType& exprType = GetExpressionType(*node.expr);
assert(IsStructType(exprType));
AppendField(std::get<ShaderAst::StructType>(exprType).structIndex, node.memberIndices.data(), node.memberIndices.size());

View File

@ -816,8 +816,8 @@ namespace Nz::ShaderLang
if (currentOp.type == TokenType::Dot)
{
std::unique_ptr<ShaderAst::AccessMemberIdentifierExpression> accessMemberNode = std::make_unique<ShaderAst::AccessMemberIdentifierExpression>();
accessMemberNode->structExpr = std::move(lhs);
std::unique_ptr<ShaderAst::AccessIdentifierExpression> accessMemberNode = std::make_unique<ShaderAst::AccessIdentifierExpression>();
accessMemberNode->expr = std::move(lhs);
do
{
@ -833,7 +833,7 @@ namespace Nz::ShaderLang
if (Peek().type == TokenType::OpenParenthesis)
{
auto parameters = ParseParameters();
parameters.insert(parameters.begin(), std::move(accessMemberNode->structExpr));
parameters.insert(parameters.begin(), std::move(accessMemberNode->expr));
lhs = ShaderBuilder::Intrinsic(ShaderAst::IntrinsicType::SampleTexture, std::move(parameters));
continue;

View File

@ -35,7 +35,7 @@ namespace Nz
return *m_variables[varIndex];
}
void SpirvAstVisitor::Visit(ShaderAst::AccessMemberIndexExpression& node)
void SpirvAstVisitor::Visit(ShaderAst::AccessIndexExpression& node)
{
SpirvExpressionLoad accessMemberVisitor(m_writer, *this, *m_currentBlock);
PushResultId(accessMemberVisitor.Evaluate(node));

View File

@ -40,9 +40,9 @@ namespace Nz
}, m_value);
}
void SpirvExpressionLoad::Visit(ShaderAst::AccessMemberIndexExpression& node)
void SpirvExpressionLoad::Visit(ShaderAst::AccessIndexExpression& node)
{
node.structExpr->Visit(*this);
node.expr->Visit(*this);
const ShaderAst::ExpressionType& exprType = GetExpressionType(node);

View File

@ -37,9 +37,9 @@ namespace Nz
}, m_value);
}
void SpirvExpressionStore::Visit(ShaderAst::AccessMemberIndexExpression& node)
void SpirvExpressionStore::Visit(ShaderAst::AccessIndexExpression& node)
{
node.structExpr->Visit(*this);
node.expr->Visit(*this);
const ShaderAst::ExpressionType& exprType = GetExpressionType(node);

View File

@ -71,7 +71,7 @@ namespace Nz
});
}
void Visit(ShaderAst::AccessMemberIndexExpression& node) override
void Visit(ShaderAst::AccessIndexExpression& node) override
{
AstRecursiveVisitor::Visit(node);