/* vim9expr.c */
int generate_ppconst(cctx_T *cctx, ppconst_T *ppconst);
void clear_ppconst(ppconst_T *ppconst);
int compile_member(int is_slice, int *keeping_dict, cctx_T *cctx);
int compile_load_scriptvar(cctx_T *cctx, char_u *name, char_u *start, char_u **end, int error);
int compile_load(char_u **arg, char_u *end_arg, cctx_T *cctx, int is_expr, int error);
char_u *to_name_end(char_u *arg, int use_namespace);
char_u *to_name_const_end(char_u *arg);
int get_lambda_tv_and_compile(char_u **arg, typval_T *rettv, int types_optional, evalarg_T *evalarg);
exprtype_T get_compare_type(char_u *p, int *len, int *type_is);
void skip_expr_cctx(char_u **arg, cctx_T *cctx);
int bool_on_stack(cctx_T *cctx);
void error_white_both(char_u *op, int len);
int compile_expr1(char_u **arg, cctx_T *cctx, ppconst_T *ppconst);
int compile_expr0_ext(char_u **arg, cctx_T *cctx, int *is_const);
int compile_expr0(char_u **arg, cctx_T *cctx);
/* vim: set ft=c : */
