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/core.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/core.d')
-rw-r--r-- | src/primitives/core.d | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/src/primitives/core.d b/src/primitives/core.d deleted file mode 100644 index 5b3d43d..0000000 --- a/src/primitives/core.d +++ /dev/null @@ -1,101 +0,0 @@ -module src.primitives.core; - -import std.stdio; - -import src.stack; -import src.definition; - -Token[string] variables; - -void definition_start() { - src.definition.start; -} - -void binary_op_variable_bind() { - string name = stack.pop.get!string; - Token value = stack.pop; - variables[name] = value; -} - -void unary_op_variable_resolve() { - string name = stack.pop.get!string; - - if ( name in variables ) { - stack.push(variables[name]); - } -} - -void binary_op_add() { - int b = stack.pop.get!int; - int a = stack.pop.get!int; - - stack.push(a + b); -} - -void binary_op_multiply() { - int b = stack.pop.get!int; - int a = stack.pop.get!int; - - stack.push(a * b); -} - -void binary_op_divide() { - int b = stack.pop.get!int; - int a = stack.pop.get!int; - - if ( b == 0 ) { - throw new Exception("division by 0 undefined"); - } else { - stack.push(a / b); - } -} - -void binary_op_modulo() { - int b = stack.pop.get!int; - int a = stack.pop.get!int; - - if ( b == 0 ) { - throw new Exception("modulo 0 undefined"); - } else { - stack.push(a % b); - } -} - -void unary_op_io_print() { - writeln(stack.top); -} - -void unary_op_stack_pop() { - stack.pop; -} - -void unary_op_stack_dup() { - stack.push(stack.top); -} - -void binary_op_stack_swp() { - auto b = stack.pop; - auto a = stack.pop; - - stack.push(b); - stack.push(a); - -} - -void binary_cond_lt() { - int b = stack.pop.get!int; - int a = stack.pop.get!int; - - stack.push(a < b); -} - -void binary_cond_eq() { - auto b = stack.pop; - auto a = stack.pop; - - stack.push(a == b); -} - -void integral_value_bool(bool value) { - stack.push(Token(value)); -} |