Reorg some of the bootstrapping that was occuring in wesley

This commit is contained in:
Jason Turner
2009-06-10 23:39:34 +00:00
parent da60cad358
commit 8cfd40671b
3 changed files with 10 additions and 33 deletions

View File

@@ -460,6 +460,11 @@ void bootstrap_pod_type(BoxedCPP_System &s, const std::string &name)
register_function(s, &to_string<T>, "to_string"); register_function(s, &to_string<T>, "to_string");
} }
void print(const std::string &s)
{
std::cout << s << std::endl;
}
void bootstrap(BoxedCPP_System &s) void bootstrap(BoxedCPP_System &s)
{ {
s.register_type<void>("void"); s.register_type<void>("void");
@@ -488,6 +493,11 @@ void bootstrap(BoxedCPP_System &s)
add_oper_add<std::string>(s); add_oper_add<std::string>(s);
add_oper_add_equals <std::string>(s); add_oper_add_equals <std::string>(s);
register_function(s, &print, "print");
s.register_function(boost::function<void ()>(boost::bind(&dump_system, boost::ref(s))), "dump_system");
s.register_function(boost::function<void (Boxed_Value)>(boost::bind(&dump_object, _1)), "dump_object");
register_function(s, &bool_and<bool, bool>, "&&"); register_function(s, &bool_and<bool, bool>, "&&");
register_function(s, &bool_or<bool, bool>, "||"); register_function(s, &bool_or<bool, bool>, "||");

View File

@@ -30,11 +30,6 @@ struct Test
}; };
//A function that prints any string passed to it
void print(const std::string &s)
{
std::cout << "Printed: " << s << std::endl;
}
Boxed_Value named_func_call(BoxedCPP_System &ss, Boxed_Value named_func_call(BoxedCPP_System &ss,
const std::string &nametocall, const std::vector<Boxed_Value> &params) const std::string &nametocall, const std::vector<Boxed_Value> &params)
@@ -108,7 +103,6 @@ int main()
//Register a new function, this one with typing for us, so we don't have to ubox anything //Register a new function, this one with typing for us, so we don't have to ubox anything
//right here //right here
register_function(ss, &print, "print");
//Now we have a print method, let's try to print out the earlier example: //Now we have a print method, let's try to print out the earlier example:
//so, we dispatch the to_string and pass its result as a param to "print" //so, we dispatch the to_string and pass its result as a param to "print"

View File

@@ -8,22 +8,6 @@
//A function that prints any string passed to it //A function that prints any string passed to it
template <typename T>
void print(const T &t)
{
std::cout << t << std::endl;
}
template<> void print<bool>(const bool &t)
{
if (t) {
std::cout << "true" << std::endl;
}
else {
std::cout << "false" << std::endl;
}
}
template <typename Eval_Engine> template <typename Eval_Engine>
class Wesley_System { class Wesley_System {
Lexer lexer; Lexer lexer;
@@ -203,17 +187,6 @@ public:
bootstrap_vector<std::vector<Boxed_Value> >(ss, "Vector"); bootstrap_vector<std::vector<Boxed_Value> >(ss, "Vector");
//dump_system(ss); //dump_system(ss);
//Register a new function, this one with typing for us, so we don't have to ubox anything
//right here
register_function(ss, &print<bool>, "print");
register_function(ss, &print<std::string>, "print");
register_function(ss, &print<double>, "print");
register_function(ss, &print<size_t>, "print");
register_function(ss, &print<int>, "print");
ss.register_function(boost::function<void ()>(boost::bind(&dump_system, boost::ref(ss))), "dump_system");
ss.register_function(boost::function<void (Boxed_Value)>(boost::bind(&dump_object, _1)), "dump_object");
ss.register_function(boost::shared_ptr<Proxy_Function>( ss.register_function(boost::shared_ptr<Proxy_Function>(
new Dynamic_Proxy_Function(boost::bind(&Wesley_System<Eval_Engine>::eval, boost::ref(*this), _1), 1)), "eval"); new Dynamic_Proxy_Function(boost::bind(&Wesley_System<Eval_Engine>::eval, boost::ref(*this), _1), 1)), "eval");