aboutsummaryrefslogtreecommitdiffstats
path: root/c_compiler/include/statement.hpp
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-03-06 17:37:51 +0000
committerYann Herklotz <ymherklotz@gmail.com>2017-03-06 17:37:51 +0000
commitfdd6ff07cee824078c5315bf07926ee15bbdde85 (patch)
tree25ae7097f5f1ee88b7e9d0f27297f38c08a29009 /c_compiler/include/statement.hpp
parent3cef694323c53a19c8c7c0fab19432eb74f8792a (diff)
downloadCompiler-fdd6ff07cee824078c5315bf07926ee15bbdde85.tar.gz
Compiler-fdd6ff07cee824078c5315bf07926ee15bbdde85.zip
making changes to type in lexer now
Diffstat (limited to 'c_compiler/include/statement.hpp')
-rw-r--r--c_compiler/include/statement.hpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/c_compiler/include/statement.hpp b/c_compiler/include/statement.hpp
index dff9902..17a5153 100644
--- a/c_compiler/include/statement.hpp
+++ b/c_compiler/include/statement.hpp
@@ -7,6 +7,7 @@
class Statement : public Node {
protected:
Statement* next_statement;
+
public:
Statement(Statement* statement = nullptr);
@@ -14,9 +15,9 @@ public:
virtual void printxml() const = 0;
virtual void printasm() const = 0;
- void addStatement(Statement* _next) {
- next_statement = _next;
- }
+ virtual void count_variables(int32_t& var_count) const = 0;
+
+ void addStatement(Statement* _next);
};
@@ -24,6 +25,7 @@ class CompoundStatement : public Statement {
protected:
Declaration* m_decl;
Statement* m_statement;
+
public:
CompoundStatement(Declaration* decl = nullptr, Statement* statement = nullptr);
CompoundStatement(Statement* statement);
@@ -31,6 +33,8 @@ public:
virtual void print() const;
virtual void printxml() const;
virtual void printasm() const;
+
+ virtual void count_variables(int32_t& var_count) const;
};
@@ -44,6 +48,8 @@ public:
virtual void print() const;
virtual void printxml() const;
virtual void printasm() const;
+
+ virtual void count_variables(int32_t& var_count) const;
};
@@ -56,6 +62,8 @@ public:
virtual void print() const;
virtual void printxml() const;
virtual void printasm() const;
+
+ virtual void count_variables(int32_t& var_count) const;
};
@@ -68,6 +76,8 @@ public:
virtual void print() const;
virtual void printxml() const;
virtual void printasm() const;
+
+ virtual void count_variables(int32_t& var_count) const;
};
@@ -80,6 +90,8 @@ public:
virtual void print() const;
virtual void printxml() const;
virtual void printasm() const;
+
+ virtual void count_variables(int32_t& var_count) const;
};