|  | 
| #define | CONCAT2STR(str1,  str2)   _M(str1) _M(str2) | 
|  | 
| #define | CONCAT3STR(str1,  str2,  str3)   _M(str1) _M(str2) _M(str3) | 
|  | 
| #define | def_generic(fn,  name)   Generic fn##_gf (CONCAT2STR("%", name), &Value::fn##_vf) | 
|  | 
| #define | def_visible_generic(fn,  name)   Generic fn##_gf (_M(name), &Value::fn##_vf) | 
|  | 
| #define | def_struct_generic(fn,  _struct,  name)   Generic fn##_gf (_M(name), &Value::fn##_vf, _M(#_struct)) | 
|  | 
| #define | def_node_generic(fn,  name)   NodeGeneric fn##_gf (_M(name), &Value::fn##_vf) | 
|  | 
| #define | def_mapped_generic(fn,  name)   MappedGeneric fn##_gf (_M(name), &Value::fn##_vf) | 
|  | 
| #define | use_generic(fn,  name) | 
|  | 
| #define | def_generic_debug_ok(fn,  name)   Generic fn##_gf (CONCAT2STR("%",name), &Value::fn##_vf, NULL, DEBUGGER_SAFE) | 
|  | 
| #define | def_visible_generic_debug_ok(fn,  name)   Generic fn##_gf (_M(name), &Value::fn##_vf, NULL, DEBUGGER_SAFE) | 
|  | 
| #define | def_struct_generic_debug_ok(fn,  _struct,  name)   Generic fn##_gf (_M(name), &Value::fn##_vf, _M(#_struct), DEBUGGER_SAFE) | 
|  | 
| #define | def_node_generic_debug_ok(fn,  name)   NodeGeneric fn##_gf (_M(name), &Value::fn##_vf, DEBUGGER_SAFE) | 
|  | 
| #define | def_mapped_generic_debug_ok(fn,  name)   MappedGeneric fn##_gf (_M(name), &Value::fn##_vf, DEBUGGER_SAFE) | 
|  | 
| #define | def_primitive(fn,  name) | 
|  | 
| #define | def_visible_primitive(fn,  name) | 
|  | 
| #define | def_struct_primitive(fn,  _struct,  name) | 
|  | 
| #define | def_mapped_primitive(fn,  name) | 
|  | 
| #define | def_lazy_primitive(fn,  name) | 
|  | 
| #define | def_visible_lazy_primitive(fn,  name) | 
|  | 
| #define | def_primitive_debug_ok(fn,  name) | 
|  | 
| #define | def_visible_primitive_debug_ok(fn,  name) | 
|  | 
| #define | def_struct_primitive_debug_ok(fn,  _struct,  name) | 
|  | 
| #define | def_mapped_primitive_debug_ok(fn,  name) | 
|  | 
| #define | def_lazy_primitive_debug_ok(fn,  name) | 
|  | 
| #define | def_visible_lazy_primitive_debug_ok(fn,  name) | 
|  | 
| #define | def_property(p)   _M(#p), &Value::get_##p, &Value::set_##p, | 
|  | 
| #define | def_property_alias(p,  real_p)   _M(#p), &Value::get_##real_p, &Value::set_##real_p, | 
|  | 
| #define | def_2_prop_path(p1,  p2)   CONCAT3STR(#p1,".",#p2), &Value::get_##p1##_##p2, &Value::set_##p1##_##p2, | 
|  | 
| #define | def_2_prop_path_alias(p1,  p2,  real_p1,  real_p2)   CONCAT3STR(#p1,".",#p2), &Value::get_##real_p1##_##real_p2, &Value::set_##real_p1##_##real_p2, | 
|  | 
| #define | def_nested_prop(p1)   CONCAT2STR("*.",#p1), &Value::get_nested_##p1, &Value::set_nested_##p1, | 
|  | 
| #define | def_nested_prop_alias(p1,  real_p1)   CONCAT2STR("*.",#p1), &Value::get_nested_##real_p1, &Value::set_nested_##real_p1, | 
|  | 
| #define | def_name(name)   ScripterExport Value* n_##name; | 
|  | 
| #define | def_marker(var,  str)   ScripterExport Name var (_M(str)); | 
|  |