aboutsummaryrefslogtreecommitdiffstats
path: root/c_compiler/include/statement.hpp
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-03-16 15:14:26 +0000
committerYann Herklotz <ymherklotz@gmail.com>2017-03-16 15:14:26 +0000
commit03e21a7ef589fa52d27eab85d669ca854e8ac2b8 (patch)
tree4dec7c89693c74e268756ce156ea6cdac3a41722 /c_compiler/include/statement.hpp
parent667a766552e2002ae7cf7969d78aaeba906d3759 (diff)
downloadCompiler-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.hpp16
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;
};