#pragma once #include "AST/Base.h" #include #include #include namespace ast { typedef std::pair> FnArg; class FnDecl : public Stmt { const std::string name; const std::vector args; const std::unique_ptr returnType; const std::unique_ptr body; public: FnDecl(const std::string &name, std::vector &args, std::unique_ptr &returnType, std::unique_ptr &body) : name(name), args(std::move(args)), returnType(std::move(returnType)), body(std::move(body)) {} }; }