':return: An iterator that generates parse trees for the sentence.
When possible this list is sorted from most likely to least likely.
:param sent: The sentence to be parsed
:type sent: list(str)
:rtype: iter(Tree)'

def parse(self, sent, *args, **kwargs):

    if overridden(self.parse_sents):
        return next(self.parse_sents([sent], *args, **kwargs))
    elif overridden(self.parse_one):
        return (tree for tree in [self.parse_one(sent, *args, **kwargs)] if (tree is not None))
    elif overridden(self.parse_all):
        return iter(self.parse_all(sent, *args, **kwargs))
    else:
        raise NotImplementedError()
