def do_while_loop(evaluator, ast, state):
    """Evaluates "do {body} while (cond)"."""
    while True:
        res, do_return = evaluator.eval_ast(ast["body"], state)
        if do_return:
            return res, True
        if not evaluator.eval_ast(ast["cond"], state):
            break
    return None, False