aboutsummaryrefslogtreecommitdiff
path: root/src/stack.d
diff options
context:
space:
mode:
Diffstat (limited to 'src/stack.d')
-rw-r--r--src/stack.d11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/stack.d b/src/stack.d
index 2fb602b..678f3e8 100644
--- a/src/stack.d
+++ b/src/stack.d
@@ -1,7 +1,8 @@
module src.stack;
-import std.variant;
+import std.conv;
import std.string;
+import std.variant;
import std.container : SList;
static import src.definition;
@@ -11,6 +12,14 @@ alias Stack = SList;
Stack!Token stack;
+Token toToken(string value) {
+ if ( value.isNumeric ) {
+ return Token(parse!int(value));
+ } else {
+ return Token(value);
+ }
+}
+
Token top(ref Stack!Token stack) {
if ( stack.empty ) {
throw new Exception("stack is empty");