summaryrefslogtreecommitdiff
path: root/src/MemoryData.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/MemoryData.h')
-rw-r--r--src/MemoryData.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/MemoryData.h b/src/MemoryData.h
new file mode 100644
index 0000000..06f259a
--- /dev/null
+++ b/src/MemoryData.h
@@ -0,0 +1,46 @@
+#ifndef ARZU_INTERPRETER_MEMORY_DATA
+#define ARZU_INTERPRETER_MEMORY_DATA
+
+#include <list>
+#include <string>
+using namespace std;
+
+class MemoryData {
+public:
+ enum Type {
+ TNone,
+ TName,
+ TFunc,
+ TInt,
+ };
+
+protected:
+ Type type;
+
+public:
+
+ Type get_type() const;
+
+ MemoryData();
+ ~MemoryData() = default;
+};
+
+struct Name : public MemoryData {
+ string value;
+ Name();
+ Name(string&);
+};
+
+struct Int : public MemoryData {
+ int value;
+ Int(int);
+};
+
+struct Function : public MemoryData {
+ list<string> argumentNames;
+ int scopeStart;
+ int scopeEnd;
+ Function(list<string>, int, int);
+};
+
+#endif