aboutsummaryrefslogtreecommitdiffstats
path: root/c_compiler/include/type.hpp
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-03-26 03:03:48 +0100
committerYann Herklotz <ymherklotz@gmail.com>2017-03-26 03:03:48 +0100
commit19896f53d80deadcf09d3a1256524cc6f2e4adb6 (patch)
treebb3682e25e1f07b8c4790038403c0bd8d056e23d /c_compiler/include/type.hpp
parentd08786b22e454e177e0642b5f9e4b19a12a891b1 (diff)
downloadCompiler-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.hpp72
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 &reg, const int &position) const = 0;
+ virtual void store() const = 0;
virtual void store(const int &position) const = 0;
+ virtual void store(const int &reg, 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 &reg, const int &position) const;
+ virtual void load() const;
+ virtual void load(const int &reg, const int &position) const;
+ virtual void store() const;
virtual void store(const int &position) const;
+ virtual void store(const int &reg, 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 &reg, const int &position) const;
- virtual void store(const int &position) const;
+ virtual void load() const;
+ virtual void load(const int &reg, const int &position) const;
+ virtual void store() const;
+ virtual void store(const int &position) const;
+ virtual void store(const int &reg, 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 &reg, const int &position) const;
- virtual void store(const int &position) const;
+ virtual void load() const;
+ virtual void load(const int &reg, const int &position) const;
+ virtual void store() const;
+ virtual void store(const int &position) const;
+ virtual void store(const int &reg, 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 &reg, const int &position) const = 0;
+ virtual void load() const = 0;
+ virtual void load(const int &reg, const int &position) const = 0;
+ virtual void store() const = 0;
virtual void store(const int &position) const = 0;
+ virtual void store(const int &reg, 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 &reg, const int &position) const;
+ virtual void load() const;
+ virtual void load(const int &reg, const int &position) const;
+ virtual void store() const;
virtual void store(const int &position) const;
+ virtual void store(const int &reg, 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 &reg, const int &position) const;
+ virtual void load() const;
+ virtual void load(const int &reg, const int &position) const;
+ virtual void store() const;
virtual void store(const int &position) const;
+ virtual void store(const int &reg, 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 &reg, const int &position) const;
+ virtual void load() const;
+ virtual void load(const int &reg, const int &position) const;
+ virtual void store() const;
virtual void store(const int &position) const;
+ virtual void store(const int &reg, 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 &reg, const int &position) const;
+ virtual void load() const;
+ virtual void load(const int &reg, const int &position) const;
+ virtual void store() const;
virtual void store(const int &position) const;
+ virtual void store(const int &reg, 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 &reg, const int &position) const;
+ virtual void load() const;
+ virtual void load(const int &reg, const int &position) const;
+ virtual void store() const;
virtual void store(const int &position) const;
+ virtual void store(const int &reg, const int &position) const;
};
#endif