Ensures the reader is in clean state (no unclosed S-expression
        is currently being parsed).  Should be called after the last
        ``feed_line``.

def finish(self):
        """Ensures the reader is in clean state (no unclosed S-expression
        is currently being parsed).  Should be called after the last
        ``feed_line``.
        """
        if self.state is not State.NORMAL:
            raise ReadError(f'EOF while in {self.state.name} state')
        if self.stack:
            top = self.stack[-1]
            top.raise_unclosed_error()