aboutsummaryrefslogtreecommitdiff
path: root/src/primitives/eval.d
diff options
context:
space:
mode:
Diffstat (limited to 'src/primitives/eval.d')
-rw-r--r--src/primitives/eval.d17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/primitives/eval.d b/src/primitives/eval.d
index 3f52e6d..533f491 100644
--- a/src/primitives/eval.d
+++ b/src/primitives/eval.d
@@ -8,10 +8,13 @@ bool evaluate(int value) {
bool evaluate(string word) {
if ( drop_mode ) {
- if ( word == "then" ) {
- return conditional_end;
- } else {
- return true;
+ switch ( word ) {
+ case "then":
+ return conditional_then;
+ case "else":
+ return conditional_else;
+ default:
+ return true;
}
}
@@ -23,9 +26,11 @@ bool evaluate(string word) {
case "@":
return unary_op_variable_resolve;
case "if":
- return conditional_start;
+ return conditional_if;
case "then":
- return conditional_end;
+ return conditional_then;
+ case "else":
+ return conditional_else;
case "+":
return binary_op_add;
case "*":