diff options
Diffstat (limited to 'src/libexpr/nixexpr.hh')
-rw-r--r-- | src/libexpr/nixexpr.hh | 18 |
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, "&&") |