aboutsummaryrefslogtreecommitdiff
path: root/source/primitives/eval.d
diff options
context:
space:
mode:
Diffstat (limited to 'source/primitives/eval.d')
-rw-r--r--source/primitives/eval.d20
1 files changed, 13 insertions, 7 deletions
diff --git a/source/primitives/eval.d b/source/primitives/eval.d
index 0ddd65a..0cb45b7 100644
--- a/source/primitives/eval.d
+++ b/source/primitives/eval.d
@@ -4,6 +4,8 @@ import std.variant;
import base.stack;
import primitives.core;
+
+import definition = base.definition;
import conditional = primitives.conditional;
bool evaluate_primitive(string word) {
@@ -33,15 +35,19 @@ bool evaluate_primitive(string word) {
}
bool evaluate(Token token) {
- if ( conditional.drop(token) ) {
+ if ( definition.handle(token) ) {
+ return true;
+ }
+
+ if ( conditional.handle(token) ) {
return true;
- } else {
- return token.visit!(
- (int value) => false,
- (bool value) => false,
- (string word ) => evaluate_primitive(word)
- );
}
+
+ return token.visit!(
+ (int value) => false,
+ (bool value) => false,
+ (string word ) => evaluate_primitive(word)
+ );
}
Stack!Token result() {