From 57d18df7d0005cf822368d9f1d0c33396c6b9f9f Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 2 Sep 2013 18:34:04 +0200 Subject: Add some support code for nix-repl --- src/libexpr/eval.hh | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/libexpr/eval.hh') diff --git a/src/libexpr/eval.hh b/src/libexpr/eval.hh index f7b21f7a38c5..98ac0bdb45a4 100644 --- a/src/libexpr/eval.hh +++ b/src/libexpr/eval.hh @@ -130,12 +130,15 @@ public: Expr * parseExprFromFile(Path path); /* Parse a Nix expression from the specified string. */ + Expr * parseExprFromString(const string & s, const Path & basePath, StaticEnv & staticEnv); Expr * parseExprFromString(const string & s, const Path & basePath); /* Evaluate an expression read from the given file to normal form. */ void evalFile(const Path & path, Value & v); + void resetFileCache(); + /* Look up a file in the search path. */ Path findFile(const string & path); @@ -184,21 +187,19 @@ public: path. Nothing is copied to the store. */ Path coerceToPath(Value & v, PathSet & context); -private: +public: /* The base environment, containing the builtin functions and values. */ Env & baseEnv; - unsigned int baseEnvDispl; - -public: - /* The same, but used during parsing to resolve variables. */ StaticEnv staticBaseEnv; // !!! should be private private: + unsigned int baseEnvDispl; + void createBaseEnv(); void addConstant(const string & name, Value & v); @@ -212,8 +213,8 @@ private: friend class ExprAttrs; friend class ExprLet; - Expr * parse(const char * text, - const Path & path, const Path & basePath); + Expr * parse(const char * text, const Path & path, + const Path & basePath, StaticEnv & staticEnv); public: -- cgit 1.4.1