compiler, runtime: Evaluate Expressions in Expression Statements

Signed-off-by: Will Hawkins <hawkinsw@obs.cr>
This commit is contained in:
Will Hawkins
2026-04-20 03:35:00 -04:00
parent 5bc9db9aca
commit f687353326
3 changed files with 17 additions and 5 deletions
+7 -2
View File
@@ -105,8 +105,13 @@ extension ConditionalStatement: EvaluatableStatement {
extension ExpressionStatement: EvaluatableStatement {
public func evaluate(execution: ProgramExecution) -> (ControlFlow, ProgramExecution) {
// TODO: Should this do something? Side effects?
return (ControlFlow.Next, execution)
// Evaluate, there might be side effects!
return switch self.expression.evaluate(execution: execution) {
case (.Ok(_), let updated_context): (ControlFlow.Next, updated_context)
case (.Error(let e), let updated_context):
(ControlFlow.Next, updated_context.setError(error: e))
}
}
}