aboutsummaryrefslogtreecommitdiff
path: root/repl.d
diff options
context:
space:
mode:
authorAdrian Kummerlaender2017-04-12 16:58:18 +0200
committerAdrian Kummerlaender2017-04-12 17:24:09 +0200
commit4804893a6616a312ac8028e42d2aa990018ffbe6 (patch)
tree7eabf5638dd29580dae9c0197804b739301885a9 /repl.d
parent900c223ed40e36ffedce95e9a987d9a3c0309271 (diff)
downloadslang-4804893a6616a312ac8028e42d2aa990018ffbe6.tar
slang-4804893a6616a312ac8028e42d2aa990018ffbe6.tar.gz
slang-4804893a6616a312ac8028e42d2aa990018ffbe6.tar.bz2
slang-4804893a6616a312ac8028e42d2aa990018ffbe6.tar.lz
slang-4804893a6616a312ac8028e42d2aa990018ffbe6.tar.xz
slang-4804893a6616a312ac8028e42d2aa990018ffbe6.tar.zst
slang-4804893a6616a312ac8028e42d2aa990018ffbe6.zip
Modularize primitives implementation, add stack manipulators
Diffstat (limited to 'repl.d')
-rw-r--r--repl.d16
1 files changed, 8 insertions, 8 deletions
diff --git a/repl.d b/repl.d
index 4938a11..e3aef2b 100644
--- a/repl.d
+++ b/repl.d
@@ -8,12 +8,12 @@ import std.container : SList;
import src.stack;
-static import src.definition;
-static import src.primitives;
+static import definition = src.definition;
+static import primitives = src.primitives.eval;
void process(int x) {
try {
- if ( !src.primitives.evaluate(x) ) {
+ if ( !primitives.evaluate(x) ) {
stack.push(x);
}
}
@@ -24,9 +24,9 @@ void process(int x) {
void process(string word) {
try {
- if ( !src.primitives.evaluate(word) ) {
- if ( word in src.definition.words ) {
- foreach ( token; src.definition.words[word] ) {
+ if ( !primitives.evaluate(word) ) {
+ if ( word in definition.words ) {
+ foreach ( token; definition.words[word] ) {
process(token);
}
} else {
@@ -52,11 +52,11 @@ void main() {
if ( token.isNumeric ) {
immutable int value = parse!int(token);
- if ( !src.definition.handle(value) ) {
+ if ( !definition.handle(value) ) {
process(value);
}
} else {
- if ( !src.definition.handle(token) ) {
+ if ( !definition.handle(token) ) {
process(token);
}
}