diff options
Diffstat (limited to 'c_compiler/include/bindings.hpp')
-rw-r--r-- | c_compiler/include/bindings.hpp | 60 |
1 files changed, 30 insertions, 30 deletions
diff --git a/c_compiler/include/bindings.hpp b/c_compiler/include/bindings.hpp index a8d8eba..7c2a264 100644 --- a/c_compiler/include/bindings.hpp +++ b/c_compiler/include/bindings.hpp @@ -13,50 +13,50 @@ typedef std::shared_ptr<Type> TypePtr; // struct containing information on the variable declaration struct DeclarationData { - TypePtr type; - int stack_position; - std::vector<int> array_sizes; + TypePtr type; + int stack_position; + std::vector<int> array_sizes; }; // stores bindings for the current scope and where they are in the stack class Bindings { private: - static std::vector<std::string> string_literals; + 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_; + std::unordered_map<std::string, DeclarationData> bindings_; + std::string break_label_; + std::string continue_label_; + int stack_counter_; + int expression_stack_; public: - Bindings(); + Bindings(); - void insertBinding(const std::string &id, const TypePtr &type, const int &stack_position); - void insertBinding(const std::string &id, const TypePtr &type, const int &stack_position, const std::vector<int> array_sizes); - int insertStringLiteral(const std::string &string_literal); - void increaseStackPosition(); - void increaseStackPosition(const int &position); - void setStackPosition(const int &stack_counter); - void nextExpressionStackPosition(); - void setExpressionStackPosition(const int &stack_counter); + void insertBinding(const std::string &id, const TypePtr &type, const int &stack_position); + void insertBinding(const std::string &id, const TypePtr &type, const int &stack_position, const std::vector<int> array_sizes); + int insertStringLiteral(const std::string &string_literal); + void increaseStackPosition(); + void increaseStackPosition(const int &position); + void setStackPosition(const int &stack_counter); + void nextExpressionStackPosition(); + void setExpressionStackPosition(const int &stack_counter); - TypePtr getType(const std::string &id) const; - const std::vector<int> &getArraySizes(const std::string &id) const; + TypePtr getType(const std::string &id) const; + const std::vector<int> &getArraySizes(const std::string &id) const; - std::string breakLabel(); - std::string breakLabel(const std::string &label); - std::string continueLabel(); - std::string continueLabel(const std::string &label); + std::string breakLabel(); + std::string breakLabel(const std::string &label); + std::string continueLabel(); + std::string continueLabel(const std::string &label); - int currentStackPosition() const; - int stackPosition(const std::string &id) const; - int currentExpressionStackPosition() const; + int currentStackPosition() const; + 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; + std::pair<std::vector<std::string>::const_iterator, std::vector<std::string>::const_iterator> + getStringLiteralIterator() const; - bool bindingExists(const std::string &id) const; + bool bindingExists(const std::string &id) const; }; |