feat(kernel/expr): improve get_app_args interface

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
Leonardo de Moura 2014-05-17 19:19:10 -07:00
parent 28e8299f6d
commit 5c7d3c79c4
2 changed files with 8 additions and 3 deletions

View file

@ -323,10 +323,13 @@ expr mk_app_vars(expr const & f, unsigned n) {
return r;
}
void get_app_args(expr const & e, buffer<expr> & args) {
expr get_app_args(expr const & e, buffer<expr> & args) {
if (is_app(e)) {
get_app_args(app_fn(e), args);
expr r = get_app_args(app_fn(e), args);
args.push_back(app_arg(e));
return r;
} else {
return e;
}
}

View file

@ -593,8 +593,10 @@ inline bool has_free_var_ge(expr const & e, unsigned low) { return get_free_var_
/**
\brief Given \c e of the form <tt>(...(f a1) ... an)</tt>, store a1 ... an in args.
If \c e is not an application, then nothing is stored in args.
It returns the f.
*/
void get_app_args(expr const & e, buffer<expr> & args);
expr get_app_args(expr const & e, buffer<expr> & args);
// =======================================