bool match_with()

in include/S_Expression.h [628:644]


  bool match_with(const s_expr& expr) {
    if (!expr.is_list()) {
      return false;
    }
    if (m_heads.size() > expr.size()) {
      return false;
    }
    for (size_t i = 0; i < m_heads.size(); ++i) {
      if (!m_heads[i].match_with(expr[i])) {
        return false;
      }
    }
    if (m_tail) {
      m_tail->get() = expr.tail(m_heads.size());
    }
    return true;
  }