diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-03-16 15:14:26 +0000 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-03-16 15:14:26 +0000 |
commit | 03e21a7ef589fa52d27eab85d669ca854e8ac2b8 (patch) | |
tree | 4dec7c89693c74e268756ce156ea6cdac3a41722 /c_compiler/include/statement.hpp | |
parent | 667a766552e2002ae7cf7969d78aaeba906d3759 (diff) | |
download | Compiler-03e21a7ef589fa52d27eab85d669ca854e8ac2b8.tar.gz Compiler-03e21a7ef589fa52d27eab85d669ca854e8ac2b8.zip |
Still works and added correct frame size
Diffstat (limited to 'c_compiler/include/statement.hpp')
-rw-r--r-- | c_compiler/include/statement.hpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/c_compiler/include/statement.hpp b/c_compiler/include/statement.hpp index 76d9303..4d2ffc4 100644 --- a/c_compiler/include/statement.hpp +++ b/c_compiler/include/statement.hpp @@ -10,8 +10,6 @@ class Statement; -typedef std::shared_ptr<Declaration> DeclarationPtr; -typedef std::shared_ptr<Expression> ExpressionPtr; typedef std::shared_ptr<Statement> StatementPtr; @@ -27,6 +25,7 @@ public: virtual VariableStackBindings printAsm(VariableStackBindings bindings) const = 0; virtual void countVariables(unsigned& var_count) const = 0; + virtual void countArguments(unsigned& argument_count) const = 0; void linkStatement(Statement* next); }; @@ -46,6 +45,7 @@ public: virtual VariableStackBindings printAsm(VariableStackBindings bindings) const; virtual void countVariables(unsigned& var_count) const; + virtual void countArguments(unsigned& argument_count) const; }; @@ -61,34 +61,37 @@ public: virtual VariableStackBindings printAsm(VariableStackBindings bindings) const; virtual void countVariables(unsigned& var_count) const; + virtual void countArguments(unsigned& argument_count) const; }; class ExpressionStatement : public Statement { protected: - ExpressionPtr expr_; + ExpressionPtr expression_; public: - ExpressionStatement(Expression* expr = nullptr); + ExpressionStatement(Expression* expression = nullptr); virtual void print() const; virtual void printXml() const; virtual VariableStackBindings printAsm(VariableStackBindings bindings) const; virtual void countVariables(unsigned& var_count) const; + virtual void countArguments(unsigned& argument_count) const; }; class JumpStatement : public Statement { protected: - ExpressionPtr expr_; + ExpressionPtr expression_; public: - JumpStatement(Expression* expr = nullptr); + JumpStatement(Expression* expression = nullptr); virtual void print() const; virtual void printXml() const; virtual VariableStackBindings printAsm(VariableStackBindings bindings) const; virtual void countVariables(unsigned& var_count) const; + virtual void countArguments(unsigned& argument_count) const; }; @@ -103,6 +106,7 @@ public: virtual VariableStackBindings printAsm(VariableStackBindings bindings) const; virtual void countVariables(unsigned& var_count) const; + virtual void countArguments(unsigned& argument_count) const; }; |