def METHOD_NAME(change_log: str) -> typing.Generator[Token, None, None]:
    for mo in re.finditer(ANY_TOKEN_RE, change_log, flags=re.MULTILINE):
        kind = mo.lastgroup
        if kind in {"H1", "H2", "H3", "H4"} and mo.lastindex is not None:
            title = mo[mo.lastindex + 1]
            yield TitleToken(kind, title)
        elif kind == "LINE":
            yield Token(kind, mo.group())
        elif kind == "NEWLINE":
            yield NewlineToken()
        else:
            raise NotImplementedError(kind, mo.group())