diff options
author | Adrian Kummerlaender | 2017-04-14 23:21:51 +0200 |
---|---|---|
committer | Adrian Kummerlaender | 2017-04-14 23:21:51 +0200 |
commit | c6d2b259a4f253403929f6f1104395a6a71b1be6 (patch) | |
tree | 6d4cdfa4ab50fbe0fa982db601d772c67e4dda20 /src/primitives/eval.d | |
parent | 963ace2e5ba0337130e5f343d7ab97a30b4547ae (diff) | |
download | slang-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.d | 53 |
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(); - } -} |