// file : build/module -*- C++ -*- // copyright : Copyright (c) 2014-2015 Code Synthesis Ltd // license : MIT; see accompanying LICENSE file #ifndef BUILD_MODULE #define BUILD_MODULE #include #include #include // unique_ptr namespace build { class scope; class location; class module { public: virtual ~module () = default; }; extern "C" using module_init_function = void (scope& root, scope& base, const location&, std::unique_ptr&, bool first); // First time for this project. using loaded_module_map = std::map>>; // Load the specified module. Used by the parser but also by some // modules to load prerequisite modules. // void load_module (const std::string& name, scope& root, scope& base, const location&); // Builtin modules. // using available_module_map = std::map; extern available_module_map builtin_modules; } #endif // BUILD_MODULE