diff options
Diffstat (limited to 'src/MemoryData.h')
| -rw-r--r-- | src/MemoryData.h | 46 |
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 |
