Lines Matching refs:evalarg
48 static int eval2(char_u **arg, typval_T *rettv, evalarg_T *evalarg);
49 static int eval3(char_u **arg, typval_T *rettv, evalarg_T *evalarg);
50 static int eval4(char_u **arg, typval_T *rettv, evalarg_T *evalarg);
51 static int eval5(char_u **arg, typval_T *rettv, evalarg_T *evalarg);
52 static int eval6(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int want_string);
53 static int eval7t(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int want_string);
54 static int eval7(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int want_string);
59 static char_u *eval_next_line(evalarg_T *evalarg);
144 fill_evalarg_from_eap(evalarg_T *evalarg, exarg_T *eap, int skip) in fill_evalarg_from_eap() argument
146 init_evalarg(evalarg); in fill_evalarg_from_eap()
147 evalarg->eval_flags = skip ? 0 : EVAL_EVALUATE; in fill_evalarg_from_eap()
150 evalarg->eval_cstack = eap->cstack; in fill_evalarg_from_eap()
153 evalarg->eval_getline = eap->getline; in fill_evalarg_from_eap()
154 evalarg->eval_cookie = eap->cookie; in fill_evalarg_from_eap()
173 evalarg_T evalarg; in eval_to_bool() local
175 fill_evalarg_from_eap(&evalarg, eap, skip); in eval_to_bool()
179 if (eval0(arg, &tv, eap, &evalarg) == FAIL) in eval_to_bool()
195 clear_evalarg(&evalarg, eap); in eval_to_bool()
210 evalarg_T evalarg; in eval1_emsg() local
212 fill_evalarg_from_eap(&evalarg, eap, eap != NULL && eap->skip); in eval1_emsg()
214 ret = eval1(arg, rettv, &evalarg); in eval1_emsg()
225 clear_evalarg(&evalarg, eap); in eval1_emsg()
344 evalarg_T evalarg; in eval_to_string_skip() local
346 fill_evalarg_from_eap(&evalarg, eap, skip); in eval_to_string_skip()
349 if (eval0(arg, &tv, eap, &evalarg) == FAIL || skip) in eval_to_string_skip()
358 clear_evalarg(&evalarg, eap); in eval_to_string_skip()
368 skip_expr(char_u **pp, evalarg_T *evalarg) in skip_expr() argument
373 return eval1(pp, &rettv, evalarg); in skip_expr()
390 evalarg_T *evalarg) in skip_expr_concatenate() argument
395 garray_T *gap = evalarg == NULL ? NULL : &evalarg->eval_ga; in skip_expr_concatenate()
396 garray_T *freegap = evalarg == NULL ? NULL : &evalarg->eval_freega; in skip_expr_concatenate()
397 int save_flags = evalarg == NULL ? 0 : evalarg->eval_flags; in skip_expr_concatenate()
398 int evaluate = evalarg == NULL in skip_expr_concatenate()
399 ? FALSE : (evalarg->eval_flags & EVAL_EVALUATE); in skip_expr_concatenate()
402 && (evalarg->eval_cookie != NULL || evalarg->eval_cctx != NULL)) in skip_expr_concatenate()
413 if (evalarg != NULL) in skip_expr_concatenate()
414 evalarg->eval_flags &= ~EVAL_EVALUATE; in skip_expr_concatenate()
416 res = eval1(arg, &rettv, evalarg); in skip_expr_concatenate()
418 if (evalarg != NULL) in skip_expr_concatenate()
419 evalarg->eval_flags = save_flags; in skip_expr_concatenate()
422 && (evalarg->eval_cookie != NULL || evalarg->eval_cctx != NULL)) in skip_expr_concatenate()
424 if (evalarg->eval_ga.ga_len == 1) in skip_expr_concatenate()
440 if (evalarg->eval_cookie != NULL) in skip_expr_concatenate()
446 vim_free(evalarg->eval_tofree); in skip_expr_concatenate()
447 evalarg->eval_tofree = in skip_expr_concatenate()
464 vim_free(evalarg->eval_tofree_lambda); in skip_expr_concatenate()
465 evalarg->eval_tofree_lambda = p; in skip_expr_concatenate()
528 evalarg_T evalarg; in eval_to_string_eap() local
530 fill_evalarg_from_eap(&evalarg, eap, eap != NULL && eap->skip); in eval_to_string_eap()
531 if (eval0(arg, &tv, NULL, &evalarg) == FAIL) in eval_to_string_eap()
538 clear_evalarg(&evalarg, NULL); in eval_to_string_eap()
617 evalarg_T evalarg; in eval_expr() local
619 fill_evalarg_from_eap(&evalarg, eap, eap != NULL && eap->skip); in eval_expr()
622 if (tv != NULL && eval0(arg, tv, eap, &evalarg) == FAIL) in eval_expr()
625 clear_evalarg(&evalarg, eap); in eval_expr()
1608 evalarg_T *evalarg) in eval_for_line() argument
1615 int skip = !(evalarg->eval_flags & EVAL_EVALUATE); in eval_for_line()
1628 expr = skipwhite_and_linebreak(var_list_end, evalarg); in eval_for_line()
1641 expr = skipwhite_and_linebreak(expr + 2, evalarg); in eval_for_line()
1642 if (eval0(expr, &tv, eap, evalarg) == OK) in eval_for_line()
1698 fi->fi_break_count = evalarg->eval_break_count; in eval_for_line()
1707 skip_for_lines(void *fi_void, evalarg_T *evalarg) in skip_for_lines() argument
1713 eval_next_line(evalarg); in skip_for_lines()
1978 evalarg_T *evalarg, in eval_func() argument
2017 ret = get_func_tv(s, len, rettv, arg, evalarg, &funcexe); in eval_func()
2048 getline_peek_skip_comments(evalarg_T *evalarg) in getline_peek_skip_comments() argument
2052 char_u *next = getline_peek(evalarg->eval_getline, in getline_peek_skip_comments()
2053 evalarg->eval_cookie); in getline_peek_skip_comments()
2061 (void)eval_next_line(evalarg); in getline_peek_skip_comments()
2075 eval_next_non_blank(char_u *arg, evalarg_T *evalarg, int *getnext) in eval_next_non_blank() argument
2081 && evalarg != NULL in eval_next_non_blank()
2082 && (evalarg->eval_cookie != NULL || evalarg->eval_cctx != NULL) in eval_next_non_blank()
2087 if (evalarg->eval_cookie != NULL) in eval_next_non_blank()
2088 next = getline_peek_skip_comments(evalarg); in eval_next_non_blank()
2090 next = peek_next_line_from_context(evalarg->eval_cctx); in eval_next_non_blank()
2106 eval_next_line(evalarg_T *evalarg) in eval_next_line() argument
2108 garray_T *gap = &evalarg->eval_ga; in eval_next_line()
2111 if (evalarg->eval_cookie != NULL) in eval_next_line()
2112 line = evalarg->eval_getline(0, evalarg->eval_cookie, 0, in eval_next_line()
2115 line = next_line_from_context(evalarg->eval_cctx, TRUE); in eval_next_line()
2116 ++evalarg->eval_break_count; in eval_next_line()
2132 else if (evalarg->eval_cookie != NULL) in eval_next_line()
2134 vim_free(evalarg->eval_tofree); in eval_next_line()
2135 evalarg->eval_tofree = line; in eval_next_line()
2140 evalarg->eval_using_cmdline = FALSE; in eval_next_line()
2148 skipwhite_and_linebreak(char_u *arg, evalarg_T *evalarg) in skipwhite_and_linebreak() argument
2153 if (evalarg == NULL) in skipwhite_and_linebreak()
2155 eval_next_non_blank(p, evalarg, &getnext); in skipwhite_and_linebreak()
2157 return eval_next_line(evalarg); in skipwhite_and_linebreak()
2165 init_evalarg(evalarg_T *evalarg) in init_evalarg() argument
2167 CLEAR_POINTER(evalarg); in init_evalarg()
2168 ga_init2(&evalarg->eval_tofree_ga, sizeof(char_u *), 20); in init_evalarg()
2175 clear_evalarg(evalarg_T *evalarg, exarg_T *eap) in clear_evalarg() argument
2177 if (evalarg != NULL) in clear_evalarg()
2179 if (evalarg->eval_tofree != NULL) in clear_evalarg()
2188 *eap->cmdlinep = evalarg->eval_tofree; in clear_evalarg()
2191 vim_free(evalarg->eval_tofree); in clear_evalarg()
2192 evalarg->eval_tofree = NULL; in clear_evalarg()
2195 ga_clear_strings(&evalarg->eval_tofree_ga); in clear_evalarg()
2196 VIM_CLEAR(evalarg->eval_tofree_lambda); in clear_evalarg()
2219 evalarg_T *evalarg) in eval0() argument
2225 int flags = evalarg == NULL ? 0 : evalarg->eval_flags; in eval0()
2229 ret = eval1(&p, rettv, evalarg); in eval0()
2283 eval1(char_u **arg, typval_T *rettv, evalarg_T *evalarg) in eval1() argument
2293 if (eval2(arg, rettv, evalarg) == FAIL) in eval1()
2296 p = eval_next_non_blank(*arg, evalarg, &getnext); in eval1()
2302 evalarg_T *evalarg_used = evalarg; in eval1()
2308 if (evalarg == NULL) in eval1()
2420 if (evalarg == NULL) in eval1()
2423 evalarg->eval_flags = orig_flags; in eval1()
2439 eval2(char_u **arg, typval_T *rettv, evalarg_T *evalarg) in eval2() argument
2447 if (eval3(arg, rettv, evalarg) == FAIL) in eval2()
2453 p = eval_next_non_blank(*arg, evalarg, &getnext); in eval2()
2456 evalarg_T *evalarg_used = evalarg; in eval2()
2465 if (evalarg == NULL) in eval2()
2546 if (evalarg == NULL) in eval2()
2549 evalarg->eval_flags = orig_flags; in eval2()
2565 eval3(char_u **arg, typval_T *rettv, evalarg_T *evalarg) in eval3() argument
2573 if (eval4(arg, rettv, evalarg) == FAIL) in eval3()
2579 p = eval_next_non_blank(*arg, evalarg, &getnext); in eval3()
2582 evalarg_T *evalarg_used = evalarg; in eval3()
2591 if (evalarg == NULL) in eval3()
2673 if (evalarg == NULL) in eval3()
2676 evalarg->eval_flags = orig_flags; in eval3()
2701 eval4(char_u **arg, typval_T *rettv, evalarg_T *evalarg) in eval4() argument
2712 if (eval5(arg, rettv, evalarg) == FAIL) in eval4()
2715 p = eval_next_non_blank(*arg, evalarg, &getnext); in eval4()
2726 int evaluate = evalarg == NULL in eval4()
2727 ? 0 : (evalarg->eval_flags & EVAL_EVALUATE); in eval4()
2731 *arg = eval_next_line(evalarg); in eval4()
2773 *arg = skipwhite_and_linebreak(p + len, evalarg); in eval4()
2774 if (eval5(arg, &var2, evalarg) == FAIL) in eval4()
2854 eval5(char_u **arg, typval_T *rettv, evalarg_T *evalarg) in eval5() argument
2859 if (eval6(arg, rettv, evalarg, FALSE) == FAIL) in eval5()
2879 p = eval_next_non_blank(*arg, evalarg, &getnext); in eval5()
2888 evaluate = evalarg == NULL ? 0 : (evalarg->eval_flags & EVAL_EVALUATE); in eval5()
2891 *arg = eval_next_line(evalarg); in eval5()
2936 *arg = skipwhite_and_linebreak(*arg + oplen, evalarg); in eval5()
2937 if (eval6(arg, &var2, evalarg, !vim9script && op == '.') == FAIL) in eval5()
3086 evalarg_T *evalarg, in eval6() argument
3096 if (eval7t(arg, rettv, evalarg, want_string) == FAIL) in eval6()
3116 p = eval_next_non_blank(*arg, evalarg, &getnext); in eval6()
3121 evaluate = evalarg == NULL ? 0 : (evalarg->eval_flags & EVAL_EVALUATE); in eval6()
3123 *arg = eval_next_line(evalarg); in eval6()
3168 *arg = skipwhite_and_linebreak(*arg + 1, evalarg); in eval6()
3169 if (eval7t(arg, &var2, evalarg, FALSE) == FAIL) in eval6()
3269 evalarg_T *evalarg, in eval7t() argument
3275 int evaluate = evalarg == NULL ? 0 in eval7t()
3276 : (evalarg->eval_flags & EVAL_EVALUATE); in eval7t()
3301 *arg = skipwhite_and_linebreak(*arg, evalarg); in eval7t()
3304 res = eval7(arg, rettv, evalarg, want_string); in eval7t()
3395 evalarg_T *evalarg, in eval7() argument
3398 int evaluate = evalarg != NULL in eval7()
3399 && (evalarg->eval_flags & EVAL_EVALUATE); in eval7()
3470 case '[': ret = eval_list(arg, rettv, evalarg, TRUE); in eval7()
3483 ret = eval_dict(arg, rettv, evalarg, TRUE); in eval7()
3496 ret = get_lambda_tv(arg, rettv, in_vim9script(), evalarg); in eval7()
3498 ret = eval_dict(arg, rettv, evalarg, FALSE); in eval7()
3541 ret = get_lambda_tv(arg, rettv, TRUE, evalarg); in eval7()
3561 *arg = skipwhite_and_linebreak(*arg + 1, evalarg); in eval7()
3562 ret = eval1(arg, rettv, evalarg); // recursive! in eval7()
3564 *arg = skipwhite_and_linebreak(*arg, evalarg); in eval7()
3595 int flags = evalarg == NULL ? 0 : evalarg->eval_flags; in eval7()
3606 ret = eval_func(arg, evalarg, s, len, rettv, flags, NULL); in eval7()
3650 ret = handle_subscript(arg, rettv, evalarg, TRUE); in eval7()
3767 evalarg_T *evalarg, in call_func_rettv() argument
3812 ret = get_func_tv(s, -1, rettv, arg, evalarg, &funcexe); in call_func_rettv()
3832 evalarg_T *evalarg, in eval_lambda() argument
3835 int evaluate = evalarg != NULL in eval_lambda()
3836 && (evalarg->eval_flags & EVAL_EVALUATE); in eval_lambda()
3845 ret = get_lambda_tv(arg, rettv, FALSE, evalarg); in eval_lambda()
3851 ret = eval1(arg, rettv, evalarg); in eval_lambda()
3852 *arg = skipwhite_and_linebreak(*arg, evalarg); in eval_lambda()
3875 ret = call_func_rettv(arg, evalarg, rettv, evaluate, NULL, &base); in eval_lambda()
3894 evalarg_T *evalarg, in eval_method() argument
3902 int evaluate = evalarg != NULL in eval_method()
3903 && (evalarg->eval_flags & EVAL_EVALUATE); in eval_method()
3934 ret = eval_func(arg, evalarg, name, len, rettv, in eval_method()
3955 evalarg_T *evalarg, in eval_index() argument
3958 int evaluate = evalarg != NULL in eval_index()
3959 && (evalarg->eval_flags & EVAL_EVALUATE); in eval_index()
3991 *arg = skipwhite_and_linebreak(*arg + 1, evalarg); in eval_index()
3994 else if (eval1(arg, &var1, evalarg) == FAIL) // recursive! in eval_index()
4025 *arg = skipwhite_and_linebreak(*arg, evalarg); in eval_index()
4038 *arg = skipwhite_and_linebreak(*arg, evalarg); in eval_index()
4041 else if (eval1(arg, &var2, evalarg) == FAIL) // recursive! in eval_index()
4058 *arg = skipwhite_and_linebreak(*arg, evalarg); in eval_index()
5767 evalarg_T *evalarg, in handle_subscript() argument
5770 int evaluate = evalarg != NULL in handle_subscript()
5771 && (evalarg->eval_flags & EVAL_EVALUATE); in handle_subscript()
5782 p = eval_next_non_blank(*arg, evalarg, &getnext); in handle_subscript()
5789 *arg = eval_next_line(evalarg); in handle_subscript()
5828 evalarg->eval_cctx, verbose); in handle_subscript()
5855 ret = call_func_rettv(arg, evalarg, rettv, evaluate, in handle_subscript()
5885 ret = eval_lambda(arg, rettv, evalarg, verbose); in handle_subscript()
5888 ret = eval_method(arg, rettv, evalarg, verbose); in handle_subscript()
5908 if (eval_index(arg, rettv, evalarg, verbose) == FAIL) in handle_subscript()
6083 evalarg_T evalarg; in ex_echo() local
6085 fill_evalarg_from_eap(&evalarg, eap, eap->skip); in ex_echo()
6096 if (eval1(&arg, &rettv, &evalarg) == FAIL) in ex_echo()
6125 clear_evalarg(&evalarg, eap); in ex_echo()