node_p tree_copy(const node_cp& source, CallFactory factory) { // Simply parse the sexpr. This isn't the most efficient but is // extremely simple. size_t i = 0; string sexpr = source->to_s(); if (sexpr.empty()) { return node_p(); } if (sexpr[0] == '(') { return parse_call(sexpr, i, factory); } return parse_literal(sexpr, i); }
//! See less_sexpr::operator()(). bool operator()(const node_cp& a, const node_cp& b) const { return less_sexpr()(a->to_s(), b->to_s()); }
//! True iff @a node is has no parents. bool operator()(const node_cp& node) const { return node->children().empty(); }