diff options
Diffstat (limited to 'node/BaseNode.hh')
| -rw-r--r-- | node/BaseNode.hh | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/node/BaseNode.hh b/node/BaseNode.hh index 16ee82d..71b0925 100644 --- a/node/BaseNode.hh +++ b/node/BaseNode.hh @@ -25,6 +25,21 @@ template <typename T, class Base = BaseNode> class ListNode : public Base { private: std::list<T> childs_; }; + +class FunctionNode; + +class ProgramNode : public BaseNode { + public: + ProgramNode(Context* context, const std::string& name, + std::list<std::shared_ptr<BaseNode>> GlobalDeclarations, + std::list<std::shared_ptr<FunctionNode>> functions); + virtual Value CodeGen() override; + + protected: + std::string name_; + std::list<std::shared_ptr<BaseNode>> GlobalDeclarations_; + std::list<std::shared_ptr<FunctionNode>> functions_; +}; } // namespace pcc #endif |
