2
0
mirror of https://github.com/Laupetin/OpenAssetTools.git synced 2026-01-12 03:31:49 +00:00

Add conditional operator to simple expressions

This commit is contained in:
Jan
2021-11-26 17:39:46 +01:00
parent 5b087e0d31
commit 2a4768e5b0
7 changed files with 327 additions and 38 deletions

View File

@@ -0,0 +1,22 @@
#include "SimpleExpressionConditionalOperator.h"
SimpleExpressionConditionalOperator::SimpleExpressionConditionalOperator()
= default;
SimpleExpressionConditionalOperator::SimpleExpressionConditionalOperator(std::unique_ptr<ISimpleExpression> condition, std::unique_ptr<ISimpleExpression> trueExpression,
std::unique_ptr<ISimpleExpression> falseExpression)
: m_condition(std::move(condition)),
m_true_value(std::move(trueExpression)),
m_false_value(std::move(falseExpression))
{
}
bool SimpleExpressionConditionalOperator::IsStatic()
{
return m_condition->IsStatic() && m_true_value->IsStatic() && m_false_value->IsStatic();
}
SimpleExpressionValue SimpleExpressionConditionalOperator::Evaluate()
{
return m_condition->Evaluate().IsTruthy() ? m_true_value->Evaluate() : m_false_value->Evaluate();
}