def METHOD_NAME(code_str):
    arena = test_lib.MakeArena('<arith_parse_test.py>')
    parse_ctx = test_lib.InitParseContext(arena=arena)
    w_parser = test_lib.InitWordParser(code_str, arena=arena)
    # This is weird but works
    w_parser._SetNext(lex_mode_e.Arith)  # Calling private method
    anode = w_parser.a_parser.Parse()
    print('node:', anode)
    mem = state.Mem('', [], arena, [])
    parse_opts, exec_opts, mutable_opts = state.MakeOpts(mem, None)
    mem.exec_opts = exec_opts
    state.InitMem(mem, {}, '0.1')
    splitter = split.SplitContext(mem)
    errfmt = ui.ErrorFormatter()
    tilde_ev = word_eval.TildeEvaluator(mem, exec_opts)
    word_ev = word_eval.CompletionWordEvaluator(mem, exec_opts, mutable_opts,
                                                tilde_ev, splitter, errfmt)
    arith_ev = sh_expr_eval.ArithEvaluator(mem, exec_opts, mutable_opts,
                                           parse_ctx, arena)
    arith_ev.word_ev = word_ev
    return arith_ev.EvalToInt(anode)