#ifndef BUILTIN_H_ #define BUILTIN_H_ #include #include class Builtins { public: typedef boost::unordered_map FunctionContainer; typedef boost::unordered_map ModuleContainer; static Builtins *instance(bool erase = false); static void init(const char *name, class AbstractModule *module); static void init(const char *name, class AbstractFunction *function); void initialize(); std::string isDeprecated(const std::string &name); const FunctionContainer &functions() { return this->builtinfunctions; } const ModuleContainer &modules() { return this->builtinmodules; } private: Builtins() { } ~Builtins(); FunctionContainer builtinfunctions; ModuleContainer builtinmodules; boost::unordered_map deprecations; }; extern void register_builtin(class Context &ctx); #endif