Add support for cloning of dynamic objects

This commit is contained in:
Jason Turner
2009-09-19 23:12:56 +00:00
parent 7cdd772f2b
commit 991753a492
5 changed files with 23 additions and 2 deletions

View File

@@ -13,6 +13,7 @@
#define chaiscript_prelude CODE_STRING(\
def new(x) { eval(type_name(x))(); } \n\
def clone(o) : is_type(o, "Dynamic_Object") { var new_o := Dynamic_Object(o.get_type_name()); for_each(o.get_attrs(), bind(fun(new_o, x) { new_o.get_attr(x.first) = x.second; }, new_o, _) ); return new_o; } \n\
def clone(x) : function_exists(type_name(x)) { eval(type_name(x))(x); } \n\
# to_string for Pair()\n\
def to_string(x) : call_exists(first, x) && call_exists(second, x) { \n\