aboutsummaryrefslogtreecommitdiffstats
path: root/c_compiler/include
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
parentd08786b22e454e177e0642b5f9e4b19a12a891b1 (diff)
downloadCompiler-19896f53d80deadcf09d3a1256524cc6f2e4adb6.tar.gz
Compiler-19896f53d80deadcf09d3a1256524cc6f2e4adb6.zip
normally other types should be working now
Diffstat (limited to 'c_compiler/include')
-rw-r--r--c_compiler/include/declaration.hpp16
-rw-r--r--c_compiler/include/expression.hpp68
-rw-r--r--c_compiler/include/function.hpp6
-rw-r--r--c_compiler/include/node.hpp2
-rw-r--r--c_compiler/include/statement.hpp90
-rw-r--r--c_compiler/include/translation_unit.hpp2
-rw-r--r--c_compiler/include/type.hpp72
7 files changed, 143 insertions, 113 deletions
diff --git a/c_compiler/include/declaration.hpp b/c_compiler/include/declaration.hpp
index b607c3c..9080a47 100644
--- a/c_compiler/include/declaration.hpp
+++ b/c_compiler/include/declaration.hpp
@@ -26,9 +26,9 @@ public:
virtual void print() const;
virtual void printXml() const;
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
- virtual VariableStackBindings localAsm(VariableStackBindings bindings, unsigned &label_count) const;
- virtual void countDeclarations(unsigned &declaration_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
+ virtual VariableStackBindings localAsm(VariableStackBindings bindings, int &label_count) const;
+ virtual void countDeclarations(int &declaration_count) const;
void linkDeclaration(Declaration *next_declaration);
void linkListDeclaration(Declaration *next_list_declaration);
@@ -47,13 +47,13 @@ public:
class ArrayDeclaration : public Declaration
{
private:
- unsigned size_;
+ int size_;
public:
- ArrayDeclaration(const std::string &id = "", ExpressionPtr initializer = nullptr, const unsigned &size = 0);
+ ArrayDeclaration(const std::string &id = "", ExpressionPtr initializer = nullptr, const int &size = 0);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
- virtual VariableStackBindings localAsm(VariableStackBindings bindings, unsigned &label_count) const;
- virtual void countDeclarations(unsigned &declaration_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
+ virtual VariableStackBindings localAsm(VariableStackBindings bindings, int &label_count) const;
+ virtual void countDeclarations(int &declaration_count) const;
};
#endif
diff --git a/c_compiler/include/expression.hpp b/c_compiler/include/expression.hpp
index f1dd31c..69ff9e2 100644
--- a/c_compiler/include/expression.hpp
+++ b/c_compiler/include/expression.hpp
@@ -18,13 +18,13 @@ private:
ExpressionPtr next_expression_;
public:
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned& label_count) const = 0;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int& label_count) const = 0;
virtual int constantFold() const;
virtual void print() const;
virtual void printXml() const;
- virtual void countArguments(unsigned &argument_count) const;
- virtual void expressionDepth(unsigned &depth_count) const;
+ virtual void countArguments(int &argument_count) const;
+ virtual void expressionDepth(int &depth_count) const;
virtual std::string id() const;
virtual TypePtr getType(const VariableStackBindings &bindings) const = 0;
@@ -41,22 +41,22 @@ public:
OperationExpression(Expression *lhs, Expression *rhs);
OperationExpression(ExpressionPtr lhs, Expression *rhs);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const = 0;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const = 0;
virtual int constantFold() const;
- virtual void expressionDepth(unsigned &depth_count) const;
+ virtual void expressionDepth(int &depth_count) const;
virtual TypePtr getType(const VariableStackBindings &bindings) const;
ExpressionPtr getLhs() const;
ExpressionPtr getRhs() const;
- void evaluateExpression(VariableStackBindings bindings, unsigned &label_count) const;
+ void evaluateExpression(VariableStackBindings bindings, int &label_count) const;
};
class UnaryExpression : public Expression
{
public:
- virtual void stackPosition(VariableStackBindings bindings, unsigned &depth_count) const;
+ virtual void stackPosition(VariableStackBindings bindings, int &depth_count) const;
};
class PostfixArrayElement : public UnaryExpression
@@ -68,9 +68,9 @@ private:
public:
PostfixArrayElement(Expression *postfix_expression, Expression *index_expression);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
- virtual void expressionDepth(unsigned &depth_count) const;
- virtual void stackPosition(VariableStackBindings bindings, unsigned &depth_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
+ virtual void expressionDepth(int &depth_count) const;
+ virtual void stackPosition(VariableStackBindings bindings, int &depth_count) const;
virtual TypePtr getType(const VariableStackBindings &bindings) const;
};
@@ -83,9 +83,9 @@ private:
public:
PostfixFunctionCall(Expression *argument_expression_list = nullptr);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
- virtual void countArguments(unsigned &argument_count) const;
- virtual void expressionDepth(unsigned &depth_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
+ virtual void countArguments(int &argument_count) const;
+ virtual void expressionDepth(int &depth_count) const;
virtual TypePtr getType(const VariableStackBindings &bindings) const;
void setPostfixExpression(Expression *postfix_expression);
@@ -100,7 +100,7 @@ private:
public:
PostfixPostIncDecExpression(const std::string &_operator, Expression *postfix_expression);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual TypePtr getType(const VariableStackBindings &bindings) const;
};
@@ -114,7 +114,7 @@ private:
public:
UnaryPreIncDecExpression(const std::string &_operator, Expression *unary_expression);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual TypePtr getType(const VariableStackBindings &bindings) const;
};
@@ -127,8 +127,8 @@ private:
public:
OperatorUnaryExpression(const std::string &_operator, Expression *cast_expression);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
- virtual void stackPosition(VariableStackBindings bindings, unsigned &depth_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
+ virtual void stackPosition(VariableStackBindings bindings, int &depth_count) const;
virtual TypePtr getType(const VariableStackBindings &bindings) const;
};
@@ -142,8 +142,8 @@ private:
public:
CastExpression(Type *type, Expression *expression);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
- virtual void expressionDepth(unsigned &depth_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
+ virtual void expressionDepth(int &depth_count) const;
virtual TypePtr getType(const VariableStackBindings &bindings) const;
};
@@ -155,7 +155,7 @@ private:
public:
AdditiveExpression(Expression *lhs, const std::string &_operator, Expression *rhs);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual int constantFold() const;
};
@@ -167,7 +167,7 @@ private:
public:
MultiplicativeExpression(Expression *lhs, const std::string &_operator, Expression *rhs);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual int constantFold() const;
};
@@ -178,7 +178,7 @@ private:
public:
ShiftExpression(Expression *lhs, const std::string &_operator, Expression *rhs);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual int constantFold() const;
};
@@ -189,7 +189,7 @@ private:
public:
RelationalExpression(Expression *lhs, const std::string &_operator, Expression *rhs);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual int constantFold() const;
};
@@ -200,7 +200,7 @@ private:
public:
EqualityExpression(Expression *lhs, const std::string &_operator, Expression *rhs);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual int constantFold() const;
};
@@ -209,7 +209,7 @@ class AndExpression : public OperationExpression
public:
AndExpression(Expression *lhs, Expression *rhs);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual int constantFold() const;
};
@@ -218,7 +218,7 @@ class ExclusiveOrExpression : public OperationExpression
public:
ExclusiveOrExpression(Expression *lhs, Expression *rhs);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual int constantFold() const;
};
@@ -227,7 +227,7 @@ class InclusiveOrExpression : public OperationExpression
public:
InclusiveOrExpression(Expression *lhs, Expression *rhs);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual int constantFold() const;
};
@@ -236,7 +236,7 @@ class LogicalAndExpression : public OperationExpression
public:
LogicalAndExpression(Expression *lhs, Expression *rhs);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual int constantFold() const;
};
@@ -245,7 +245,7 @@ class LogicalOrExpression : public OperationExpression
public:
LogicalOrExpression(Expression *lhs, Expression *rhs);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual int constantFold() const;
};
@@ -260,7 +260,7 @@ public:
ConditionalExpression(Expression *logical_or, Expression *expression,
Expression *conditional_expression);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual TypePtr getType(const VariableStackBindings &bindings) const;
};
@@ -270,7 +270,7 @@ public:
AssignmentExpression(Expression *lhs, Expression *rhs);
AssignmentExpression(ExpressionPtr lhs, Expression *rhs);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
};
class Identifier : public UnaryExpression
@@ -280,8 +280,8 @@ private:
public:
Identifier(const std::string &id);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
- virtual void stackPosition(VariableStackBindings bindings, unsigned &depth_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
+ virtual void stackPosition(VariableStackBindings bindings, int &depth_count) const;
virtual std::string id() const;
virtual TypePtr getType(const VariableStackBindings &bindings) const;
};
@@ -293,7 +293,7 @@ private:
public:
Constant(const int32_t &constant);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
virtual int constantFold() const;
virtual TypePtr getType(const VariableStackBindings &bindings) const;
};
diff --git a/c_compiler/include/function.hpp b/c_compiler/include/function.hpp
index 86b81af..f9f4fa0 100644
--- a/c_compiler/include/function.hpp
+++ b/c_compiler/include/function.hpp
@@ -27,10 +27,10 @@ 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;
- void printParameterAsm(VariableStackBindings& bindings, unsigned& frame_offset) const;
- void countParameters(unsigned& parameter_count) const;
+ void printParameterAsm(VariableStackBindings& bindings, int& frame_offset) const;
+ void countParameters(int& parameter_count) const;
};
diff --git a/c_compiler/include/node.hpp b/c_compiler/include/node.hpp
index c00fa8f..0149807 100644
--- a/c_compiler/include/node.hpp
+++ b/c_compiler/include/node.hpp
@@ -17,7 +17,7 @@ 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;
};
diff --git a/c_compiler/include/statement.hpp b/c_compiler/include/statement.hpp
index ed45973..ce469ac 100644
--- a/c_compiler/include/statement.hpp
+++ b/c_compiler/include/statement.hpp
@@ -23,11 +23,11 @@ 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 countVariables(unsigned &var_count) const = 0;
- virtual void countArguments(unsigned &argument_count) const = 0;
- virtual void countExpressionDepth(unsigned &depth_count) const = 0;
+ virtual void countVariables(int &var_count) const = 0;
+ virtual void countArguments(int &argument_count) const = 0;
+ virtual void countExpressionDepth(int &depth_count) const = 0;
virtual int constantFold() const;
virtual ExpressionPtr getExpression() const;
@@ -48,11 +48,11 @@ 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 countVariables(unsigned &var_count) const;
- virtual void countArguments(unsigned &argument_count) const;
- virtual void countExpressionDepth(unsigned &depth_count) const;
+ virtual void countVariables(int &var_count) const;
+ virtual void countArguments(int &argument_count) const;
+ virtual void countExpressionDepth(int &depth_count) const;
};
class CaseStatement : public Statement
@@ -67,11 +67,11 @@ 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 countVariables(unsigned &var_count) const;
- virtual void countArguments(unsigned &argument_count) const;
- virtual void countExpressionDepth(unsigned &depth_count) const;
+ virtual void countVariables(int &var_count) const;
+ virtual void countArguments(int &argument_count) const;
+ virtual void countExpressionDepth(int &depth_count) const;
virtual int constantFold() const;
virtual ExpressionPtr getExpression() const;
virtual bool isDefault() const;
@@ -89,11 +89,11 @@ 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 countVariables(unsigned &var_count) const;
- virtual void countArguments(unsigned &argument_count) const;
- virtual void countExpressionDepth(unsigned &depth_count) const;
+ virtual void countVariables(int &var_count) const;
+ virtual void countArguments(int &argument_count) const;
+ virtual void countExpressionDepth(int &depth_count) const;
StatementPtr getStatementList() const;
};
@@ -109,11 +109,11 @@ 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 countVariables(unsigned &var_count) const;
- virtual void countArguments(unsigned &argument_count) const;
- virtual void countExpressionDepth(unsigned &depth_count) const;
+ virtual void countVariables(int &var_count) const;
+ virtual void countArguments(int &argument_count) const;
+ virtual void countExpressionDepth(int &depth_count) const;
};
class SwitchStatement : public Statement
@@ -125,11 +125,11 @@ public:
SwitchStatement(Expression *condition, Statement *statement);
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 countVariables(unsigned &var_count) const;
- virtual void countArguments(unsigned &argument_count) const;
- virtual void countExpressionDepth(unsigned &depth_count) const;
+ virtual void countVariables(int &var_count) const;
+ virtual void countArguments(int &argument_count) const;
+ virtual void countExpressionDepth(int &depth_count) const;
};
class ExpressionStatement : public Statement
@@ -141,24 +141,24 @@ 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 countVariables(unsigned &var_count) const;
- virtual void countArguments(unsigned &argument_count) const;
- virtual void countExpressionDepth(unsigned &depth_count) const;
+ virtual void countVariables(int &var_count) const;
+ virtual void countArguments(int &argument_count) const;
+ virtual void countExpressionDepth(int &depth_count) const;
};
class JumpStatement : public Statement
{
public:
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const = 0;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const = 0;
virtual void print() const;
virtual void printXml() const;
- virtual void countVariables(unsigned &var_count) const;
- virtual void countArguments(unsigned &argument_count) const;
- virtual void countExpressionDepth(unsigned &depth_count) const;
+ virtual void countVariables(int &var_count) const;
+ virtual void countArguments(int &argument_count) const;
+ virtual void countExpressionDepth(int &depth_count) const;
};
class ReturnStatement : public JumpStatement
@@ -168,11 +168,11 @@ private:
public:
ReturnStatement(Expression *expression = nullptr);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
- virtual void countVariables(unsigned &var_count) const;
- virtual void countArguments(unsigned &argument_count) const;
- virtual void countExpressionDepth(unsigned &depth_count) const;
+ virtual void countVariables(int &var_count) const;
+ virtual void countArguments(int &argument_count) const;
+ virtual void countExpressionDepth(int &depth_count) const;
};
class BreakStatement : public JumpStatement
@@ -180,7 +180,7 @@ class BreakStatement : public JumpStatement
public:
BreakStatement();
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &) const;
};
class ContinueStatement : public JumpStatement
@@ -188,7 +188,7 @@ class ContinueStatement : public JumpStatement
public:
ContinueStatement();
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &) const;
};
class GotoStatement : public JumpStatement
@@ -198,7 +198,7 @@ private:
public:
GotoStatement(const std::string &label);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &) const;
};
class IterationStatement : public Statement
@@ -211,11 +211,11 @@ public:
virtual void print() const;
virtual void printXml() const;
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const = 0;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const = 0;
- virtual void countVariables(unsigned &var_count) const;
- virtual void countArguments(unsigned &argument_count) const;
- virtual void countExpressionDepth(unsigned &depth_count) const;
+ virtual void countVariables(int &var_count) const;
+ virtual void countArguments(int &argument_count) const;
+ virtual void countExpressionDepth(int &depth_count) const;
};
class WhileLoop : public IterationStatement
@@ -225,7 +225,7 @@ private:
public:
WhileLoop(Expression *condition, Statement *statement, const bool &is_while = true);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
};
class ForLoop : public IterationStatement
@@ -236,7 +236,7 @@ private:
public:
ForLoop(Expression *initializer, Expression *condition, Expression *incrementer, Statement *statement);
- virtual VariableStackBindings printAsm(VariableStackBindings bindings, unsigned &label_count) const;
+ virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const;
};
diff --git a/c_compiler/include/translation_unit.hpp b/c_compiler/include/translation_unit.hpp
index a23b735..2003073 100644
--- a/c_compiler/include/translation_unit.hpp
+++ b/c_compiler/include/translation_unit.hpp
@@ -19,7 +19,7 @@ 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;
void push(Node* external_declaration);
};
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