summaryrefslogtreecommitdiff
path: root/node/BaseNode.hh
diff options
context:
space:
mode:
Diffstat (limited to 'node/BaseNode.hh')
-rw-r--r--node/BaseNode.hh15
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