def find_all(self, val, max_depth=None, condition=None, _saf=False):
        """Depth first search for nodes whose toknum or name == val"""
        max_depth = self._get_valid_maxdepth(max_depth)
        condition = self._get_valid_condition(condition)
        if max_depth < 0:
            return []

        ret = []
        if condition(self, val):
            ret.append(self)
            if _saf and ret:
                return ret
        for child in self.children:
            ret.extend(child.find_all(val, max_depth=max_depth - 1,
                                      condition=condition, _saf=_saf))
            if _saf and ret:
                return ret
        return ret
dataset/ETHPy150Open KristoforMaynard/SublimeAutoDocstring/dparse.py/STNode.find_all/original