about summary refs log tree commit diff
path: root/src/libexpr/eval.hh
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-11-07T17·04+0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-11-12T11·32+0000
commitc897bac54954373f63511702731fe2cb23c0c98e (patch)
tree4074b4a2c43627b56d9c18c754a5cfbd340d8573 /src/libexpr/eval.hh
parent273322c7732093a354e86df82cf75d6604b8bce8 (diff)
Make function calls tail-recursive
Diffstat (limited to 'src/libexpr/eval.hh')
-rw-r--r--src/libexpr/eval.hh3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libexpr/eval.hh b/src/libexpr/eval.hh
index 4e8e7e5f9ca0..df34c7651c10 100644
--- a/src/libexpr/eval.hh
+++ b/src/libexpr/eval.hh
@@ -227,6 +227,7 @@ public:
     bool eqValues(Value & v1, Value & v2);
 
     void callFunction(Value & fun, Value & arg, Value & v);
+    void callPrimOp(Value & fun, Value & arg, Value & v);
 
     /* Automatically call a function for which each argument has a
        default value or has a binding in the `args' map. */
@@ -268,6 +269,8 @@ private:
     typedef std::map<ExprLambda *, unsigned int> FunctionCalls;
     FunctionCalls functionCalls;
 
+    void incrFunctionCall(ExprLambda * fun);
+
     typedef std::map<Pos, unsigned int> AttrSelects;
     AttrSelects attrSelects;