Failing expression for condition

This commit is contained in:
Rafał Grodziński
2025-06-05 16:08:19 +09:00
parent 1591c5927c
commit c500edf632
8 changed files with 82 additions and 1 deletions

View File

@@ -127,6 +127,38 @@ string ExpressionGrouping::toString() {
return "( " + expression->toString() + " )";
}
//
// ExpressionIfElse
ExpressionIfElse::ExpressionIfElse(shared_ptr<Expression> condition, shared_ptr<StatementBlock> thenBlock, shared_ptr<StatementBlock> elseBlock):
Expression(Expression::Kind::IF_ELSE), condition(condition), thenBlock(thenBlock), elseBlock(elseBlock) {
}
shared_ptr<Expression> ExpressionIfElse::getCondition() {
return condition;
}
shared_ptr<StatementBlock> ExpressionIfElse::getThenBlock() {
return thenBlock;
}
shared_ptr<StatementBlock> ExpressionIfElse::getElseBlock() {
return elseBlock;
}
string ExpressionIfElse::toString() {
string value = "";
value += "IF(" + condition->toString() + ")\n";
value += thenBlock->toString();
if (elseBlock != nullptr) {
value += "ELSE\n";
value += elseBlock->toString();
}
value += ";";
return value;
}
//
// ExpressionInvalid
ExpressionInvalid::ExpressionInvalid(shared_ptr<Token> token):