diff options
Diffstat (limited to 'c_compiler/include')
-rw-r--r-- | c_compiler/include/bindings.hpp | 18 | ||||
-rw-r--r-- | c_compiler/include/declaration.hpp | 8 | ||||
-rw-r--r-- | c_compiler/include/expression.hpp | 90 | ||||
-rw-r--r-- | c_compiler/include/function.hpp | 4 | ||||
-rw-r--r-- | c_compiler/include/node.hpp | 4 | ||||
-rw-r--r-- | c_compiler/include/statement.hpp | 30 | ||||
-rw-r--r-- | c_compiler/include/translation_unit.hpp | 2 | ||||
-rw-r--r-- | c_compiler/include/type.hpp | 40 |
8 files changed, 107 insertions, 89 deletions
diff --git a/c_compiler/include/bindings.hpp b/c_compiler/include/bindings.hpp index 9383d5d..d99d97b 100644 --- a/c_compiler/include/bindings.hpp +++ b/c_compiler/include/bindings.hpp @@ -1,15 +1,15 @@ #ifndef BINDINGS_HPP #define BINDINGS_HPP -#include <map> #include <memory> #include <string> +#include <unordered_map> +#include <vector> class Type; typedef std::shared_ptr<Type> TypePtr; - // struct containing information on the variable declaration struct DeclarationData { @@ -17,21 +17,22 @@ struct DeclarationData int stack_position; }; - // stores bindings for the current scope and where they are in the stack -class VariableStackBindings +class Bindings { private: - std::map<std::string, DeclarationData> bindings_; + static std::vector<std::string> string_literals; + + std::unordered_map<std::string, DeclarationData> bindings_; std::string break_label_; std::string continue_label_; int stack_counter_; int expression_stack_; - public: - VariableStackBindings(); + Bindings(); void insertBinding(const std::string &id, TypePtr type, const int &stack_position); + int insertStringLiteral(const std::string &string_literal); void increaseStackPosition(); void increaseStackPosition(const int &position); void setStackPosition(const int &stack_counter); @@ -49,6 +50,9 @@ public: int stackPosition(const std::string &id) const; int currentExpressionStackPosition() const; + std::pair<std::vector<std::string>::const_iterator, std::vector<std::string>::const_iterator> + getStringLiteralIterator() const; + bool bindingExists(const std::string &id) const; }; diff --git a/c_compiler/include/declaration.hpp b/c_compiler/include/declaration.hpp index 9080a47..5c8771b 100644 --- a/c_compiler/include/declaration.hpp +++ b/c_compiler/include/declaration.hpp @@ -26,8 +26,8 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; - virtual VariableStackBindings localAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual Bindings localAsm(Bindings bindings, int &label_count) const; virtual void countDeclarations(int &declaration_count) const; void linkDeclaration(Declaration *next_declaration); @@ -51,8 +51,8 @@ private: public: ArrayDeclaration(const std::string &id = "", ExpressionPtr initializer = nullptr, const int &size = 0); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; - virtual VariableStackBindings localAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual Bindings localAsm(Bindings bindings, int &label_count) const; virtual void countDeclarations(int &declaration_count) const; }; diff --git a/c_compiler/include/expression.hpp b/c_compiler/include/expression.hpp index 69ff9e2..c784de7 100644 --- a/c_compiler/include/expression.hpp +++ b/c_compiler/include/expression.hpp @@ -18,7 +18,7 @@ private: ExpressionPtr next_expression_; public: - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int& label_count) const = 0; + virtual Bindings printAsm(Bindings bindings, int& label_count) const = 0; virtual int constantFold() const; virtual void print() const; @@ -26,7 +26,7 @@ public: 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; + virtual TypePtr getType(const Bindings &bindings) const = 0; void linkExpression(Expression* next_expression); ExpressionPtr nextExpression() const; @@ -41,22 +41,24 @@ public: OperationExpression(Expression *lhs, Expression *rhs); OperationExpression(ExpressionPtr lhs, Expression *rhs); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const = 0; + virtual Bindings printAsm(Bindings bindings, int &label_count) const = 0; virtual int constantFold() const; virtual void expressionDepth(int &depth_count) const; - virtual TypePtr getType(const VariableStackBindings &bindings) const; + virtual TypePtr getType(const Bindings &bindings) const; ExpressionPtr getLhs() const; ExpressionPtr getRhs() const; - void evaluateExpression(VariableStackBindings bindings, int &label_count) const; + void evaluateExpression(Bindings bindings, int &label_count) const; }; class UnaryExpression : public Expression { public: - virtual void stackPosition(VariableStackBindings bindings, int &depth_count) const; + virtual void expressionDepth(int &depth_count) const; + virtual void pointerPosition(Bindings bindings) const; + virtual void stackPosition(Bindings bindings, int &depth_count) const; }; class PostfixArrayElement : public UnaryExpression @@ -68,10 +70,10 @@ private: public: PostfixArrayElement(Expression *postfix_expression, Expression *index_expression); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings 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; + virtual void stackPosition(Bindings bindings, int &depth_count) const; + virtual TypePtr getType(const Bindings &bindings) const; }; class PostfixFunctionCall : public UnaryExpression @@ -83,10 +85,10 @@ private: public: PostfixFunctionCall(Expression *argument_expression_list = nullptr); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings 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; + virtual TypePtr getType(const Bindings &bindings) const; void setPostfixExpression(Expression *postfix_expression); }; @@ -100,8 +102,8 @@ private: public: PostfixPostIncDecExpression(const std::string &_operator, Expression *postfix_expression); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; - virtual TypePtr getType(const VariableStackBindings &bindings) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual TypePtr getType(const Bindings &bindings) const; }; @@ -114,8 +116,8 @@ private: public: UnaryPreIncDecExpression(const std::string &_operator, Expression *unary_expression); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; - virtual TypePtr getType(const VariableStackBindings &bindings) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual TypePtr getType(const Bindings &bindings) const; }; class OperatorUnaryExpression : public UnaryExpression @@ -127,9 +129,9 @@ private: public: OperatorUnaryExpression(const std::string &_operator, Expression *cast_expression); - 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; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual void stackPosition(Bindings bindings, int &depth_count) const; + virtual TypePtr getType(const Bindings &bindings) const; }; @@ -142,9 +144,9 @@ private: public: CastExpression(Type *type, Expression *expression); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual void expressionDepth(int &depth_count) const; - virtual TypePtr getType(const VariableStackBindings &bindings) const; + virtual TypePtr getType(const Bindings &bindings) const; }; class AdditiveExpression : public OperationExpression @@ -155,7 +157,7 @@ private: public: AdditiveExpression(Expression *lhs, const std::string &_operator, Expression *rhs); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual int constantFold() const; }; @@ -167,7 +169,7 @@ private: public: MultiplicativeExpression(Expression *lhs, const std::string &_operator, Expression *rhs); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual int constantFold() const; }; @@ -178,7 +180,7 @@ private: public: ShiftExpression(Expression *lhs, const std::string &_operator, Expression *rhs); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual int constantFold() const; }; @@ -189,7 +191,7 @@ private: public: RelationalExpression(Expression *lhs, const std::string &_operator, Expression *rhs); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual int constantFold() const; }; @@ -200,7 +202,7 @@ private: public: EqualityExpression(Expression *lhs, const std::string &_operator, Expression *rhs); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual int constantFold() const; }; @@ -209,7 +211,7 @@ class AndExpression : public OperationExpression public: AndExpression(Expression *lhs, Expression *rhs); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual int constantFold() const; }; @@ -218,7 +220,7 @@ class ExclusiveOrExpression : public OperationExpression public: ExclusiveOrExpression(Expression *lhs, Expression *rhs); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual int constantFold() const; }; @@ -227,7 +229,7 @@ class InclusiveOrExpression : public OperationExpression public: InclusiveOrExpression(Expression *lhs, Expression *rhs); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual int constantFold() const; }; @@ -236,7 +238,7 @@ class LogicalAndExpression : public OperationExpression public: LogicalAndExpression(Expression *lhs, Expression *rhs); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual int constantFold() const; }; @@ -245,7 +247,7 @@ class LogicalOrExpression : public OperationExpression public: LogicalOrExpression(Expression *lhs, Expression *rhs); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual int constantFold() const; }; @@ -260,8 +262,8 @@ public: ConditionalExpression(Expression *logical_or, Expression *expression, Expression *conditional_expression); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; - virtual TypePtr getType(const VariableStackBindings &bindings) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual TypePtr getType(const Bindings &bindings) const; }; class AssignmentExpression : public OperationExpression @@ -270,7 +272,7 @@ public: AssignmentExpression(Expression *lhs, Expression *rhs); AssignmentExpression(ExpressionPtr lhs, Expression *rhs); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; }; class Identifier : public UnaryExpression @@ -280,10 +282,22 @@ private: public: Identifier(const std::string &id); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; - virtual void stackPosition(VariableStackBindings bindings, int &depth_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual void pointerPosition(Bindings bindings) const; + virtual void stackPosition(Bindings bindings, int &depth_count) const; virtual std::string id() const; - virtual TypePtr getType(const VariableStackBindings &bindings) const; + virtual TypePtr getType(const Bindings &bindings) const; +}; + +class StringLiteral : public UnaryExpression +{ +private: + std::string string_content_; +public: + StringLiteral(const std::string &string_content); + + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual TypePtr getType(const Bindings &bindings) const; }; class Constant : public UnaryExpression @@ -293,9 +307,9 @@ private: public: Constant(const int32_t &constant); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual int constantFold() const; - virtual TypePtr getType(const VariableStackBindings &bindings) const; + virtual TypePtr getType(const Bindings &bindings) const; }; #endif diff --git a/c_compiler/include/function.hpp b/c_compiler/include/function.hpp index f9f4fa0..2227f52 100644 --- a/c_compiler/include/function.hpp +++ b/c_compiler/include/function.hpp @@ -27,9 +27,9 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int& label_count) const; + virtual Bindings printAsm(Bindings bindings, int& label_count) const; - void printParameterAsm(VariableStackBindings& bindings, int& frame_offset) const; + void printParameterAsm(Bindings& 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 0149807..1612aaf 100644 --- a/c_compiler/include/node.hpp +++ b/c_compiler/include/node.hpp @@ -6,7 +6,7 @@ #include <string> class Type; -class VariableStackBindings; +class Bindings; // base node class @@ -17,7 +17,7 @@ public: virtual void print() const = 0; virtual void printXml() const = 0; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int& label_count) const = 0; + virtual Bindings printAsm(Bindings bindings, int& label_count) const = 0; }; diff --git a/c_compiler/include/statement.hpp b/c_compiler/include/statement.hpp index ce469ac..94c1a36 100644 --- a/c_compiler/include/statement.hpp +++ b/c_compiler/include/statement.hpp @@ -23,7 +23,7 @@ public: virtual void print() const = 0; virtual void printXml() const = 0; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const = 0; + virtual Bindings printAsm(Bindings bindings, int &label_count) const = 0; virtual void countVariables(int &var_count) const = 0; virtual void countArguments(int &argument_count) const = 0; @@ -48,7 +48,7 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual void countVariables(int &var_count) const; virtual void countArguments(int &argument_count) const; @@ -67,7 +67,7 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual void countVariables(int &var_count) const; virtual void countArguments(int &argument_count) const; @@ -89,7 +89,7 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual void countVariables(int &var_count) const; virtual void countArguments(int &argument_count) const; @@ -109,7 +109,7 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual void countVariables(int &var_count) const; virtual void countArguments(int &argument_count) const; @@ -125,7 +125,7 @@ public: SwitchStatement(Expression *condition, Statement *statement); virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual void countVariables(int &var_count) const; virtual void countArguments(int &argument_count) const; @@ -141,7 +141,7 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual void countVariables(int &var_count) const; virtual void countArguments(int &argument_count) const; @@ -151,7 +151,7 @@ public: class JumpStatement : public Statement { public: - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const = 0; + virtual Bindings printAsm(Bindings bindings, int &label_count) const = 0; virtual void print() const; virtual void printXml() const; @@ -168,7 +168,7 @@ private: public: ReturnStatement(Expression *expression = nullptr); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; virtual void countVariables(int &var_count) const; virtual void countArguments(int &argument_count) const; @@ -180,7 +180,7 @@ class BreakStatement : public JumpStatement public: BreakStatement(); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &) const; + virtual Bindings printAsm(Bindings bindings, int &) const; }; class ContinueStatement : public JumpStatement @@ -188,7 +188,7 @@ class ContinueStatement : public JumpStatement public: ContinueStatement(); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &) const; + virtual Bindings printAsm(Bindings bindings, int &) const; }; class GotoStatement : public JumpStatement @@ -198,7 +198,7 @@ private: public: GotoStatement(const std::string &label); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &) const; + virtual Bindings printAsm(Bindings bindings, int &) const; }; class IterationStatement : public Statement @@ -211,7 +211,7 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const = 0; + virtual Bindings printAsm(Bindings bindings, int &label_count) const = 0; virtual void countVariables(int &var_count) const; virtual void countArguments(int &argument_count) const; @@ -225,7 +225,7 @@ private: public: WhileLoop(Expression *condition, Statement *statement, const bool &is_while = true); - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings 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, int &label_count) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; }; diff --git a/c_compiler/include/translation_unit.hpp b/c_compiler/include/translation_unit.hpp index 2003073..04a9d16 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, int& label_count) const; + virtual Bindings printAsm(Bindings 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 04bd7a8..7da2100 100644 --- a/c_compiler/include/type.hpp +++ b/c_compiler/include/type.hpp @@ -15,13 +15,13 @@ class Type : public Node public: virtual void print() const = 0; virtual void printXml() const = 0; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const = 0; + virtual Bindings printAsm(Bindings 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 increaseStackPosition(Bindings &bindings) const = 0; virtual void load() const = 0; virtual void load(const int ®, const int &position) const = 0; virtual void store() const = 0; @@ -46,13 +46,13 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings 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 increaseStackPosition(Bindings &bindings) const; virtual void load() const; virtual void load(const int ®, const int &position) const; virtual void store() const; @@ -70,13 +70,13 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings 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 increaseStackPosition(Bindings &bindings) const; virtual void load() const; virtual void load(const int ®, const int &position) const; virtual void store() const; @@ -106,13 +106,13 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; + virtual Bindings printAsm(Bindings 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 increaseStackPosition(Bindings &bindings) const; virtual void load() const; virtual void load(const int ®, const int &position) const; virtual void store() const; @@ -132,9 +132,9 @@ class Specifier : public Type public: virtual void print() const = 0; virtual void printXml() const = 0; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const = 0; + virtual Bindings printAsm(Bindings bindings, int &label_count) const = 0; - virtual void increaseStackPosition(VariableStackBindings &bindings) const = 0; + virtual void increaseStackPosition(Bindings &bindings) const = 0; virtual void load() const = 0; virtual void load(const int ®, const int &position) const = 0; virtual void store() const = 0; @@ -154,8 +154,8 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; - virtual void increaseStackPosition(VariableStackBindings &bindings) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual void increaseStackPosition(Bindings &bindings) const; virtual void load() const; virtual void load(const int ®, const int &position) const; virtual void store() const; @@ -171,8 +171,8 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; - virtual void increaseStackPosition(VariableStackBindings &bindings) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual void increaseStackPosition(Bindings &bindings) const; virtual void load() const; virtual void load(const int ®, const int &position) const; virtual void store() const; @@ -188,8 +188,8 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; - virtual void increaseStackPosition(VariableStackBindings &bindings) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual void increaseStackPosition(Bindings &bindings) const; virtual void load() const; virtual void load(const int ®, const int &position) const; virtual void store() const; @@ -205,8 +205,8 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; - virtual void increaseStackPosition(VariableStackBindings &bindings) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual void increaseStackPosition(Bindings &bindings) const; virtual void load() const; virtual void load(const int ®, const int &position) const; virtual void store() const; @@ -222,8 +222,8 @@ public: virtual void print() const; virtual void printXml() const; - virtual VariableStackBindings printAsm(VariableStackBindings bindings, int &label_count) const; - virtual void increaseStackPosition(VariableStackBindings &bindings) const; + virtual Bindings printAsm(Bindings bindings, int &label_count) const; + virtual void increaseStackPosition(Bindings &bindings) const; virtual void load() const; virtual void load(const int ®, const int &position) const; virtual void store() const; |