From 1ba5c17a68f13633d6a20785c722b22032ba45c4 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Wed, 31 Aug 2016 19:50:57 +0000 Subject: Add runtime and value classes --- runtime.cpp | 11 +++++++++++ runtime.h | 11 +++++++++++ value.cpp | 26 ++++++++++++++++++++++++++ value.h | 21 +++++++++++++++++++++ 4 files changed, 69 insertions(+) create mode 100644 runtime.cpp create mode 100644 runtime.h create mode 100644 value.cpp create mode 100644 value.h diff --git a/runtime.cpp b/runtime.cpp new file mode 100644 index 0000000..8478da7 --- /dev/null +++ b/runtime.cpp @@ -0,0 +1,11 @@ +#include "runtime.h" + +Runtime::Runtime() { + +} + +void Runtime::run(std::vector& tokens) { + for (auto& token : tokens) { + + } +} diff --git a/runtime.h b/runtime.h new file mode 100644 index 0000000..f1b050d --- /dev/null +++ b/runtime.h @@ -0,0 +1,11 @@ +#pragma once +#include "value.h" +#include + +class Runtime { + private: + std::vector m_values; + public: + Runtime(); + void run(std::vector& tokens); +}; diff --git a/value.cpp b/value.cpp new file mode 100644 index 0000000..acf80ce --- /dev/null +++ b/value.cpp @@ -0,0 +1,26 @@ +#include "value.h" +#include + +Value::Value(std::string& lexeme) { + if (lexeme.find_first_not_of("0123456789")) { + m_type = Value::Type::Integer; + m_intData = std::stoi(lexeme, nullptr, 10); + } + else { + m_type = Value::Type::String; + m_strData = lexeme; + } +} + + +const Value::Type Value::getType() const { + return m_type; +} + +const int Value::getIntData() const { + return m_intData; +} + +const std::string& Value::getStrData() const { + return m_strData; +} diff --git a/value.h b/value.h new file mode 100644 index 0000000..71d5101 --- /dev/null +++ b/value.h @@ -0,0 +1,21 @@ +#pragma once +#include + +class Value { + public: + enum Type { + Integer, + String + }; + + Value(std::string& lexeme); + const Value::Type getType() const; + const int getIntData() const; + const std::string& getStrData() const; + + private: + int m_intData; + std::string m_strData; + + Value::Type m_type; +}; -- cgit v1.3