diff options
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 |