mirror of
https://github.com/johnkerl/miller.git
synced 2026-08-04 05:23:20 +00:00
neaten
This commit is contained in:
parent
ffc684948c
commit
d137a976e9
2 changed files with 13 additions and 3 deletions
|
|
@ -704,7 +704,7 @@ rval_evaluator_t* fmgr_alloc_provisional_from_operator_or_function_call(fmgr_t*
|
|||
|
||||
// Remember this callsite to a function which may or may not have been defined yet.
|
||||
// Then later we can resolve them to point to UDF bodies which have been defined.
|
||||
sllv_append(pfmgr->pfunc_callsite_evaluators_to_resolve, pev);
|
||||
fmgr_mark_callsite_to_resolve(pfmgr, pev);
|
||||
|
||||
return pev;
|
||||
}
|
||||
|
|
@ -740,11 +740,20 @@ rxval_evaluator_t* fmgr_xalloc_provisional_from_operator_or_function_call(fmgr_t
|
|||
|
||||
// Remember this callsite to a function which may or may not have been defined yet.
|
||||
// Then later we can resolve them to point to UDF bodies which have been defined.
|
||||
sllv_append(pfmgr->pfunc_callsite_xevaluators_to_resolve, pxev);
|
||||
fmgr_mark_xcallsite_to_resolve(pfmgr, pxev);
|
||||
|
||||
return pxev;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
void fmgr_mark_callsite_to_resolve(fmgr_t* pfmgr, rval_evaluator_t* pev) {
|
||||
sllv_append(pfmgr->pfunc_callsite_evaluators_to_resolve, pev);
|
||||
}
|
||||
|
||||
void fmgr_mark_xcallsite_to_resolve(fmgr_t* pfmgr, rxval_evaluator_t* pxev) {
|
||||
sllv_append(pfmgr->pfunc_callsite_xevaluators_to_resolve, pxev);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------
|
||||
// Resolving a callsite involves treewalking the AST which may find more callsites to
|
||||
// resolve. E.g. in '$y = f(g($x))', f is initially unresolved (f and/or g perhaps as yet
|
||||
|
|
|
|||
|
|
@ -54,7 +54,8 @@ rval_evaluator_t* fmgr_alloc_provisional_from_operator_or_function_call(fmgr_t*
|
|||
rxval_evaluator_t* fmgr_xalloc_provisional_from_operator_or_function_call(fmgr_t* pfmgr, mlr_dsl_ast_node_t* pnode,
|
||||
int type_inferencing, int context_flags);
|
||||
|
||||
// xxx make a mark-callsite-for-resolve method
|
||||
void fmgr_mark_callsite_to_resolve(fmgr_t* pfmgr, rval_evaluator_t* pev);
|
||||
void fmgr_mark_xcallsite_to_resolve(fmgr_t* pfmgr, rxval_evaluator_t* pxev);
|
||||
// Update all function callsites to point to UDF bodies, once all the latter have been defined.
|
||||
void fmgr_resolve_func_callsites(fmgr_t* pfmgr);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue