summaryrefslogtreecommitdiff
path: root/src/op.h
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2012-03-08 00:44:27 -0600
committerJohn Wiegley <johnw@newartisans.com>2012-03-08 00:44:40 -0600
commit4d011434003262c9a49b0b4636b2ac479a84e058 (patch)
tree183b5a30e1e87b1aa3c39a3eaa63978b23752837 /src/op.h
parentae4ef7a88ddd39ed544383e65d3c55ba97f4f8c1 (diff)
downloadfork-ledger-4d011434003262c9a49b0b4636b2ac479a84e058.tar.gz
fork-ledger-4d011434003262c9a49b0b4636b2ac479a84e058.tar.bz2
fork-ledger-4d011434003262c9a49b0b4636b2ac479a84e058.zip
Many improvements to lambdas and function calling
Diffstat (limited to 'src/op.h')
-rw-r--r--src/op.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/op.h b/src/op.h
index c93f218b..03fcf816 100644
--- a/src/op.h
+++ b/src/op.h
@@ -280,6 +280,9 @@ public:
value_t calc(scope_t& scope, ptr_op_t * locus = NULL,
const int depth = 0);
+ value_t call(const value_t& args, scope_t& scope,
+ ptr_op_t * locus = NULL, const int depth = 0);
+
struct context_t
{
ptr_op_t expr_op;
@@ -307,6 +310,11 @@ public:
static ptr_op_t wrap_functor(expr_t::func_t fobj);
static ptr_op_t wrap_scope(shared_ptr<scope_t> sobj);
+private:
+ value_t calc_call(scope_t& scope, ptr_op_t * locus, const int depth);
+ value_t calc_cons(scope_t& scope, ptr_op_t * locus, const int depth);
+ value_t calc_seq(scope_t& scope, ptr_op_t * locus, const int depth);
+
#if defined(HAVE_BOOST_SERIALIZATION)
private:
/** Serialization. */