aboutsummaryrefslogtreecommitdiffstats
path: root/c_compiler/include/bindings.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'c_compiler/include/bindings.hpp')
-rw-r--r--c_compiler/include/bindings.hpp13
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;
};