diff options
Diffstat (limited to 'c_compiler/include/bindings.hpp')
-rw-r--r-- | c_compiler/include/bindings.hpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/c_compiler/include/bindings.hpp b/c_compiler/include/bindings.hpp index 0afb3e9..2559420 100644 --- a/c_compiler/include/bindings.hpp +++ b/c_compiler/include/bindings.hpp @@ -23,6 +23,8 @@ class VariableStackBindings { private: std::map<std::string, DeclarationData> bindings_; + std::string break_label_; + std::string continue_label_; int stack_counter_; int expression_stack_; @@ -33,13 +35,18 @@ public: void increaseStackPosition(); void setStackPosition(int stack_counter); void nextExpressionStackPosition(); - void setExpressionStackPosition(const int& stack_counter); + void setExpressionStackPosition(const int &stack_counter); + + 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 stackPosition(const std::string &id) const; int currentExpressionStackPosition() const; - bool bindingExists(const std::string& id) const; + bool bindingExists(const std::string &id) const; }; |