aboutsummaryrefslogtreecommitdiff
path: root/source/app.d
diff options
context:
space:
mode:
Diffstat (limited to 'source/app.d')
-rw-r--r--source/app.d21
1 files changed, 9 insertions, 12 deletions
diff --git a/source/app.d b/source/app.d
index 7d25f7f..0f17afc 100644
--- a/source/app.d
+++ b/source/app.d
@@ -9,7 +9,7 @@ import base.stack;
import definition = base.definition;
import primitives = primitives.eval;
-Stack!Token resolve(Token token) {
+Stack!Token evaluate(Token token) {
try {
if ( primitives.evaluate(token) ) {
return primitives.result;
@@ -31,17 +31,14 @@ void process(string value) {
auto buffer = make!(Stack!Token)(toToken(value));
do {
- Token current = buffer.pop;
-
- if ( !definition.handle(current) ) {
- Stack!Token resolved = resolve(current);
-
- if ( !resolved.empty ) {
- if ( resolved.front == current ) {
- stack.push(current);
- } else {
- buffer.insertFront(resolved[]);
- }
+ Token current = buffer.pop;
+ Stack!Token result = evaluate(current);
+
+ if ( !result.empty ) {
+ if ( result.front == current ) {
+ stack.push(current);
+ } else {
+ buffer.insertFront(result[]);
}
}
}