Moved to using a prelude header
This commit is contained in:
parent
18985b6a97
commit
96f3033a42
@ -6,6 +6,8 @@
|
||||
|
||||
#include <exception>
|
||||
|
||||
#include "chaiscript_prelude.hpp"
|
||||
|
||||
namespace chaiscript
|
||||
{
|
||||
template <typename Eval_Engine>
|
||||
@ -205,12 +207,7 @@ namespace chaiscript
|
||||
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");
|
||||
|
||||
evaluate_string("def puts(x) { print_string(x.to_string()) }; def print(x) { println_string(x.to_string()) };"
|
||||
"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; };" );
|
||||
evaluate_string(chaiscript_prelude);
|
||||
|
||||
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