From c6d2b259a4f253403929f6f1104395a6a71b1be6 Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Fri, 14 Apr 2017 23:21:51 +0200 Subject: Convert structure to _dub_ build system --- repl.d | 57 --------------------------------------------------------- 1 file changed, 57 deletions(-) delete mode 100644 repl.d (limited to 'repl.d') diff --git a/repl.d b/repl.d deleted file mode 100644 index 3f2aea4..0000000 --- a/repl.d +++ /dev/null @@ -1,57 +0,0 @@ -import std.stdio; -import std.string; -import std.variant; - -import std.container.util : make; - -import src.stack; - -import definition = src.definition; -import primitives = src.primitives.eval; - -Stack!Token resolve(Token token) { - try { - if ( primitives.evaluate(token) ) { - return primitives.result; - } else { - return token.visit!( - (int value) => Stack!Token(Token(value)), - (bool value) => Stack!Token(Token(value)), - (string word ) => definition.get(word) - ); - } - } - catch (Exception ex) { - writeln("Error: ", ex.msg); - return Stack!Token(); - } -} - -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[]); - } - } - } - } - while ( !buffer.empty ); -} - -void main() { - while ( !stdin.eof ) { - foreach ( token; stdin.readln.split ) { - process(token); - } - } -} -- cgit v1.2.3