diff options
Diffstat (limited to 'src/stack.d')
-rw-r--r-- | src/stack.d | 11 |
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"); |