diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-03-26 03:03:48 +0100 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-03-26 03:03:48 +0100 |
commit | 19896f53d80deadcf09d3a1256524cc6f2e4adb6 (patch) | |
tree | bb3682e25e1f07b8c4790038403c0bd8d056e23d /c_compiler/include/type.hpp | |
parent | d08786b22e454e177e0642b5f9e4b19a12a891b1 (diff) | |
download | Compiler-19896f53d80deadcf09d3a1256524cc6f2e4adb6.tar.gz Compiler-19896f53d80deadcf09d3a1256524cc6f2e4adb6.zip |
normally other types should be working now
Diffstat (limited to 'c_compiler/include/type.hpp')
-rw-r--r-- | c_compiler/include/type.hpp | 72 |
1 files changed, 51 insertions, 21 deletions
diff --git a/c_compiler/include/type.hpp b/c_compiler/include/type.hpp index 8f2cf08..d29a927 100644 --- a/c_compiler/include/type.hpp +++ b/c_compiler/include/type.hpp @@ -15,15 +15,18 @@ class Type : public Node public: virtual void print() const = 0; virtual void printXml() const = 0; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const = 0; + virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const = 0; virtual TypePtr type() = 0; virtual TypePtr type(Type *type_ptr) = 0; virtual TypePtr type(TypePtr type_ptr) = 0; virtual void increaseStackPosition(VariableStackBindings &bindings) const = 0; + virtual void load() const = 0; virtual void load(const int ®, const int &position) const = 0; + virtual void store() const = 0; virtual void store(const int &position) const = 0; + virtual void store(const int ®, const int &position) const = 0; virtual void setSigned(bool _signed); virtual void setExtern(bool _extern); @@ -42,15 +45,18 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const; + virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; virtual TypePtr type(); virtual TypePtr type(Type *type_ptr); virtual TypePtr type(TypePtr type_ptr); virtual void increaseStackPosition(VariableStackBindings &bindings) const; - virtual void load(const int ®, const int &position) const; + virtual void load() const; + virtual void load(const int ®, const int &position) const; + virtual void store() const; virtual void store(const int &position) const; + virtual void store(const int ®, const int &position) const; }; class Pointer : public Type @@ -62,15 +68,18 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const; + virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; virtual TypePtr type(); virtual TypePtr type(Type *type_ptr); virtual TypePtr type(TypePtr type_ptr); virtual void increaseStackPosition(VariableStackBindings &bindings) const; - virtual void load(const int ®, const int &position) const; - virtual void store(const int &position) const; + virtual void load() const; + virtual void load(const int ®, const int &position) const; + virtual void store() const; + virtual void store(const int &position) const; + virtual void store(const int ®, const int &position) const; }; class TypeContainer : public Type @@ -88,15 +97,18 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const; + virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; virtual TypePtr type(); virtual TypePtr type(Type *type_ptr); virtual TypePtr type(TypePtr type_ptr); virtual void increaseStackPosition(VariableStackBindings &bindings) const; - virtual void load(const int ®, const int &position) const; - virtual void store(const int &position) const; + virtual void load() const; + virtual void load(const int ®, const int &position) const; + virtual void store() const; + virtual void store(const int &position) const; + virtual void store(const int ®, const int &position) const; virtual void setSigned(bool _signed); virtual void setExtern(bool _extern); @@ -110,11 +122,14 @@ class Specifier : public Type public: virtual void print() const = 0; virtual void printXml() const = 0; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const = 0; + virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const = 0; virtual void increaseStackPosition(VariableStackBindings &bindings) const = 0; - virtual void load(const int ®, const int &position) const = 0; + virtual void load() const = 0; + virtual void load(const int ®, const int &position) const = 0; + virtual void store() const = 0; virtual void store(const int &position) const = 0; + virtual void store(const int ®, const int &position) const = 0; virtual TypePtr type(); virtual TypePtr type(Type *type_ptr); @@ -128,10 +143,13 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const; + virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; virtual void increaseStackPosition(VariableStackBindings &bindings) const; - virtual void load(const int ®, const int &position) const; + virtual void load() const; + virtual void load(const int ®, const int &position) const; + virtual void store() const; virtual void store(const int &position) const; + virtual void store(const int ®, const int &position) const; }; class Short : public Specifier @@ -141,10 +159,13 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const; + virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; virtual void increaseStackPosition(VariableStackBindings &bindings) const; - virtual void load(const int ®, const int &position) const; + virtual void load() const; + virtual void load(const int ®, const int &position) const; + virtual void store() const; virtual void store(const int &position) const; + virtual void store(const int ®, const int &position) const; }; class Void : public Specifier @@ -154,10 +175,13 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const; + virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; virtual void increaseStackPosition(VariableStackBindings &bindings) const; - virtual void load(const int ®, const int &position) const; + virtual void load() const; + virtual void load(const int ®, const int &position) const; + virtual void store() const; virtual void store(const int &position) const; + virtual void store(const int ®, const int &position) const; }; class Char : public Specifier @@ -167,10 +191,13 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const; + virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; virtual void increaseStackPosition(VariableStackBindings &bindings) const; - virtual void load(const int ®, const int &position) const; + virtual void load() const; + virtual void load(const int ®, const int &position) const; + virtual void store() const; virtual void store(const int &position) const; + virtual void store(const int ®, const int &position) const; }; class Float : public Specifier @@ -180,10 +207,13 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const; + virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; virtual void increaseStackPosition(VariableStackBindings &bindings) const; - virtual void load(const int ®, const int &position) const; + virtual void load() const; + virtual void load(const int ®, const int &position) const; + virtual void store() const; virtual void store(const int &position) const; + virtual void store(const int ®, const int &position) const; }; #endif |