Moved to using a prelude header
This commit is contained in:
parent
18985b6a97
commit
96f3033a42
@ -6,6 +6,8 @@
|
|||||||
|
|
||||||
#include <exception>
|
#include <exception>
|
||||||
|
|
||||||
|
#include "chaiscript_prelude.hpp"
|
||||||
|
|
||||||
namespace chaiscript
|
namespace chaiscript
|
||||||
{
|
{
|
||||||
template <typename Eval_Engine>
|
template <typename Eval_Engine>
|
||||||
@ -205,12 +207,7 @@ namespace chaiscript
|
|||||||
ss.register_function(boost::shared_ptr<dispatchkit::Proxy_Function>(
|
ss.register_function(boost::shared_ptr<dispatchkit::Proxy_Function>(
|
||||||
new dispatchkit::Dynamic_Proxy_Function(boost::bind(&ChaiScript_System<Eval_Engine>::eval, boost::ref(*this), _1), 1)), "eval");
|
new dispatchkit::Dynamic_Proxy_Function(boost::bind(&ChaiScript_System<Eval_Engine>::eval, boost::ref(*this), _1), 1)), "eval");
|
||||||
|
|
||||||
evaluate_string("def puts(x) { print_string(x.to_string()) }; def print(x) { println_string(x.to_string()) };"
|
evaluate_string(chaiscript_prelude);
|
||||||
"def for_each(container, func) { var range = range(container); while (!range.empty()) { func(range.front()); range.popFront();} }; "
|
|
||||||
"def map(container, func) { var retval = Vector(); var range = range(container); while (!range.empty()) { retval.push_back(func(range.front())); range.popFront();}; return retval;}; "
|
|
||||||
"def reduce(container, func, initial) { var retval = initial; var range = range(container); while (!range.empty()) { retval = (func(range.front(), retval)); range.popFront();}; return retval;};"
|
|
||||||
"def join(container, delim) { var retval = \"\"; var range = range(container); if (!range.empty()) { retval += to_string(range.front()); range.popFront(); "
|
|
||||||
"while (!range.empty()) { retval += delim; retval += to_string(range.front()); range.popFront(); }\n }\n return retval; };" );
|
|
||||||
|
|
||||||
return ss;
|
return ss;
|
||||||
}
|
}
|
||||||
|
54
chaiscript/chaiscript_prelude.hpp
Normal file
54
chaiscript/chaiscript_prelude.hpp
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
// This file is distributed under the BSD License.
|
||||||
|
// See LICENSE.TXT for details.
|
||||||
|
|
||||||
|
#ifndef CHAISCRIPT_PRELUDE_HPP_
|
||||||
|
#define CHAISCRIPT_PRELUDE_HPP_
|
||||||
|
|
||||||
|
const char *chaiscript_prelude = " \n\
|
||||||
|
def puts(x) { \n\
|
||||||
|
print_string(x.to_string()) \n\
|
||||||
|
}; \n\
|
||||||
|
def print(x) { \n\
|
||||||
|
println_string(x.to_string()) \n\
|
||||||
|
}; \n\
|
||||||
|
def for_each(container, func) { \n\
|
||||||
|
var range = range(container); \n\
|
||||||
|
while (!range.empty()) { \n\
|
||||||
|
func(range.front()) \n\
|
||||||
|
range.popFront() \n\
|
||||||
|
} \n\
|
||||||
|
} \n\
|
||||||
|
def map(container, func) { \n\
|
||||||
|
var retval = Vector() \n\
|
||||||
|
var range = range(container) \n\
|
||||||
|
while (!range.empty()) { \n\
|
||||||
|
retval.push_back(func(range.front())) \n\
|
||||||
|
range.popFront() \n\
|
||||||
|
} \n\
|
||||||
|
return retval \n\
|
||||||
|
} \n\
|
||||||
|
def reduce(container, func, initial) { \n\
|
||||||
|
var retval = initial \n\
|
||||||
|
var range = range(container) \n\
|
||||||
|
while (!range.empty()) { \n\
|
||||||
|
retval = (func(range.front(), retval)) \n\
|
||||||
|
range.popFront() \n\
|
||||||
|
} \n\
|
||||||
|
return retval \n\
|
||||||
|
} \n\
|
||||||
|
def join(container, delim) { \n\
|
||||||
|
var retval = \"\" \n\
|
||||||
|
var range = range(container) \n\
|
||||||
|
if (!range.empty()) { \n\
|
||||||
|
retval += to_string(range.front()) \n\
|
||||||
|
range.popFront() \n\
|
||||||
|
while (!range.empty()) { \n\
|
||||||
|
retval += delim \n\
|
||||||
|
retval += to_string(range.front()) \n\
|
||||||
|
range.popFront() \n\
|
||||||
|
} \n\
|
||||||
|
} \n\
|
||||||
|
return retval \n\
|
||||||
|
}";
|
||||||
|
|
||||||
|
#endif /* CHAISCRIPT_PRELUDE_HPP_ */
|
Loading…
x
Reference in New Issue
Block a user