def METHOD_NAME(
    self, ys: torch.Tensor, states: List[Any], xs: torch.Tensor
) -> Tuple[torch.Tensor, List[Any]]:
    """Score new token batch.
    Args:
        ys (torch.Tensor): torch.int64 prefix tokens (n_batch, ylen).
        states (List[Any]): Scorer states for prefix tokens.
        xs (torch.Tensor):
            The encoder feature that generates ys (n_batch, xlen, n_feat).
    Returns:
        tuple[torch.Tensor, List[Any]]: Tuple of
            batchfied scores for next token with shape of `(n_batch, n_vocab)`
            and next state list for ys.
    """
    # merge states
    n_batch = len(ys)
    ys = self.embed(ys[:, -1:])
    # workaround for remaining beam width of 1
    if type(states[0]) is list:
        states = states[0]
    assert ys.size(1) == 1, ys.shape
    ys = ys.squeeze(1)
    ys, states = self.decoder.step(ys, state=states, memory=xs)
    logp = self.output(ys).log_softmax(dim=-1)
    states_list = [
        [state[b].unsqueeze(0) if state is not None else None for state in states]
        for b in range(n_batch)
    ]
    return logp, states_list