about summary refs log tree commit diff
path: root/src/libexpr/nixexpr.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/libexpr/nixexpr.hh')
-rw-r--r--src/libexpr/nixexpr.hh18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/libexpr/nixexpr.hh b/src/libexpr/nixexpr.hh
index a5c5d0533cc9..527589147e9c 100644
--- a/src/libexpr/nixexpr.hh
+++ b/src/libexpr/nixexpr.hh
@@ -273,6 +273,23 @@ struct ExprBuiltin : Expr
     COMMON_METHODS
 };
 
+struct ExprApp : Expr
+{
+    Pos pos;
+    Expr * e1, * e2;
+    ExprApp(Expr * e1, Expr * e2) : e1(e1), e2(e2) { };
+    ExprApp(const Pos & pos, Expr * e1, Expr * e2) : pos(pos), e1(e1), e2(e2) { };
+    void show(std::ostream & str)
+    {
+        str << *e1 << " " << *e2;
+    }
+    void bindVars(const StaticEnv & env)
+    {
+        e1->bindVars(env); e2->bindVars(env);
+    }
+    void eval(EvalState & state, Env & env, Value & v);
+};
+
 #define MakeBinOp(name, s) \
     struct Expr##name : Expr \
     { \
@@ -289,7 +306,6 @@ struct ExprBuiltin : Expr
         void eval(EvalState & state, Env & env, Value & v); \
     };
 
-MakeBinOp(App, "")
 MakeBinOp(OpEq, "==")
 MakeBinOp(OpNEq, "!=")
 MakeBinOp(OpAnd, "&&")