def traverse_using(iterator, obj, visitors):
    """visit the given expression structure using the given iterator of
    objects.

    """
    for target in iterator:
        meth = visitors.get(target.__visit_name__, None)
        if meth:
            meth(target)
    return obj
