diff options
Diffstat (limited to 'c_compiler/include')
-rw-r--r-- | c_compiler/include/declaration.hpp | 16 | ||||
-rw-r--r-- | c_compiler/include/expression.hpp | 68 | ||||
-rw-r--r-- | c_compiler/include/function.hpp | 6 | ||||
-rw-r--r-- | c_compiler/include/node.hpp | 2 | ||||
-rw-r--r-- | c_compiler/include/statement.hpp | 90 | ||||
-rw-r--r-- | c_compiler/include/translation_unit.hpp | 2 | ||||
-rw-r--r-- | c_compiler/include/type.hpp | 72 |
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 ®, 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 |