From 4c5faad99408cdfc35a8b0923d1efdf288fd9990 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 4 Apr 2014 22:43:52 +0200 Subject: Show position info in Boolean operations --- src/libexpr/nixexpr.hh | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) (limited to 'src/libexpr/nixexpr.hh') diff --git a/src/libexpr/nixexpr.hh b/src/libexpr/nixexpr.hh index d781d92ba78a..f07b85c8343c 100644 --- a/src/libexpr/nixexpr.hh +++ b/src/libexpr/nixexpr.hh @@ -277,28 +277,13 @@ 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 \ { \ + Pos pos; \ Expr * e1, * e2; \ Expr##name(Expr * e1, Expr * e2) : e1(e1), e2(e2) { }; \ + Expr##name(const Pos & pos, Expr * e1, Expr * e2) : pos(pos), e1(e1), e2(e2) { }; \ void show(std::ostream & str) \ { \ str << *e1 << " " s " " << *e2; \ @@ -310,6 +295,7 @@ struct ExprApp : Expr void eval(EvalState & state, Env & env, Value & v); \ }; +MakeBinOp(App, "") MakeBinOp(OpEq, "==") MakeBinOp(OpNEq, "!=") MakeBinOp(OpAnd, "&&") -- cgit 1.4.1