aboutsummaryrefslogtreecommitdiffstats
path: root/c_compiler/include
diff options
context:
space:
mode:
Diffstat (limited to 'c_compiler/include')
-rw-r--r--c_compiler/include/bindings.hpp18
-rw-r--r--c_compiler/include/declaration.hpp8
-rw-r--r--c_compiler/include/expression.hpp90
-rw-r--r--c_compiler/include/function.hpp4
-rw-r--r--c_compiler/include/node.hpp4
-rw-r--r--c_compiler/include/statement.hpp30
-rw-r--r--c_compiler/include/translation_unit.hpp2
-rw-r--r--c_compiler/include/type.hpp40
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 &reg, 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 &reg, 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 &reg, 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 &reg, 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 &reg, 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 &reg, 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 &reg, 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 &reg, 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 &reg, 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 &reg, const int &position) const;
virtual void store() const;