aboutsummaryrefslogtreecommitdiff
path: root/src/primitives/eval.d
diff options
context:
space:
mode:
authorAdrian Kummerlaender2017-04-14 23:21:51 +0200
committerAdrian Kummerlaender2017-04-14 23:21:51 +0200
commitc6d2b259a4f253403929f6f1104395a6a71b1be6 (patch)
tree6d4cdfa4ab50fbe0fa982db601d772c67e4dda20 /src/primitives/eval.d
parent963ace2e5ba0337130e5f343d7ab97a30b4547ae (diff)
downloadslang-c6d2b259a4f253403929f6f1104395a6a71b1be6.tar
slang-c6d2b259a4f253403929f6f1104395a6a71b1be6.tar.gz
slang-c6d2b259a4f253403929f6f1104395a6a71b1be6.tar.bz2
slang-c6d2b259a4f253403929f6f1104395a6a71b1be6.tar.lz
slang-c6d2b259a4f253403929f6f1104395a6a71b1be6.tar.xz
slang-c6d2b259a4f253403929f6f1104395a6a71b1be6.tar.zst
slang-c6d2b259a4f253403929f6f1104395a6a71b1be6.zip
Convert structure to _dub_ build system
Diffstat (limited to 'src/primitives/eval.d')
-rw-r--r--src/primitives/eval.d53
1 files changed, 0 insertions, 53 deletions
diff --git a/src/primitives/eval.d b/src/primitives/eval.d
deleted file mode 100644
index 08d8fb9..0000000
--- a/src/primitives/eval.d
+++ /dev/null
@@ -1,53 +0,0 @@
-module src.primitives.eval;
-
-import std.variant;
-
-import src.stack;
-import src.primitives.core;
-import conditional = src.primitives.conditional;
-
-bool evaluate_primitive(string word) {
- switch ( word ) {
- case "ยง" : definition_start; break;
- case "$" : binary_op_variable_bind; break;
- case "@" : unary_op_variable_resolve; break;
- case "if" : conditional.eval_if; break;
- case "then" : conditional.eval_then; break;
- case "else" : conditional.eval_else; break;
- case "+" : binary_op_add; break;
- case "*" : binary_op_multiply; break;
- case "/" : binary_op_divide; break;
- case "%" : binary_op_modulo; break;
- case "." : unary_op_io_print; break;
- case "pop" : unary_op_stack_pop; break;
- case "dup" : unary_op_stack_dup; break;
- case "swp" : binary_op_stack_swp; break;
- case "true" : integral_value_bool(true); break;
- case "false" : integral_value_bool(false); break;
- case "<" : binary_cond_lt; break;
- case "=" : binary_cond_eq; break;
- default : return false;
- }
-
- return true;
-}
-
-bool evaluate(Token token) {
- if ( conditional.drop(token) ) {
- return true;
- } else {
- return token.visit!(
- (int value) => false,
- (bool value) => false,
- (string word ) => evaluate_primitive(word)
- );
- }
-}
-
-Stack!Token result() {
- if ( conditional.dischargeable ) {
- return conditional.discharge;
- } else {
- return Stack!Token();
- }
-}