diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-03-16 18:37:50 +0000 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-03-16 18:37:50 +0000 |
commit | f7b531ebaaa784a0dcebb877ec7b831b324f3510 (patch) | |
tree | acc733a0ac5732799e6d0cc47a30da31e96e57fd /c_compiler/include/function.hpp | |
parent | 9ab7f5825f225cb42a6a0e8950f841a10db82f1b (diff) | |
download | Compiler-f7b531ebaaa784a0dcebb877ec7b831b324f3510.tar.gz Compiler-f7b531ebaaa784a0dcebb877ec7b831b324f3510.zip |
Check if function calls work
Diffstat (limited to 'c_compiler/include/function.hpp')
-rw-r--r-- | c_compiler/include/function.hpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/c_compiler/include/function.hpp b/c_compiler/include/function.hpp index f049577..9080699 100644 --- a/c_compiler/include/function.hpp +++ b/c_compiler/include/function.hpp @@ -19,15 +19,19 @@ class Function : public Node { protected: TypePtr type_; std::string id_; - DeclarationPtr parameter_list_; StatementPtr statement_; + DeclarationPtr parameter_list_; public: - Function(const std::string& id, Declaration* parameter_list, Statement* statement); + Function(const std::string& id, Statement* statement, Declaration* parameter_list = nullptr); virtual void print() const; virtual void printXml() const; virtual VariableStackBindings printAsm(VariableStackBindings bindings) const; + + void printParameterAsm(VariableStackBindings& bindings, unsigned& stack_offset, + unsigned& frame_offset) const; + void countParameters(unsigned& parameter_count) const; }; |