From 8cf2dbeeecf486bdb50950275ad3087c19a3ac54 Mon Sep 17 00:00:00 2001 From: Pekka Laiho Date: Thu, 4 Jun 2020 21:39:26 +0700 Subject: [PATCH] tco for case --- src/Evaller.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Evaller.php b/src/Evaller.php index 8627ea4..21b8a1f 100644 --- a/src/Evaller.php +++ b/src/Evaller.php @@ -48,13 +48,15 @@ class Evaller for ($i = 1; $i < $ast->count() - 1; $i += 2) { $test = $this->eval($ast->get($i), $env); if ($test == true) { - return $this->eval($ast->get($i + 1), $env); + $ast = $ast->get($i + 1); + continue 2; // tco } } // Last value, no test if ($ast->count() % 2 == 0) { - return $this->eval($ast->get($ast->count() - 1), $env); + $ast = $ast->get($ast->count() - 1); + continue; // tco } else { return null; }