#pragma once #include "AST/Base.h" #include #include #include #include #include namespace plsm { namespace ast { class Import; class Module : public ASTNode { const std::string name; const std::vector> imports; const std::vector> stmts; public: Module(LOC_ARG, const std::string &name, std::vector> &imports, std::vector> &stmts) : ASTNode(location), name(name), imports(std::move(imports)), stmts(std::move(stmts)) {} virtual boost::json::value toJson() override; static std::unique_ptr fromJson(boost::json::value json); }; } // namespace ast } // namespace plsm