@classmethod
def _trees(cls, tokens):
    """This assumes we're inside a "list" of trees right now, and calls
        _tree to build a tree until it sees a closing paranthesis. Raising
        StopIteration will cause the for loop in _tree to terminate."""
    while True:
        if tokens[-1] == ')':
            tokens.pop()
            raise StopIteration
        yield cls._tree(tokens)
