1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-26 20:01:15 +02:00

Add some support code for nix-repl

This commit is contained in:
Eelco Dolstra 2013-09-02 18:34:04 +02:00
parent 92077b4547
commit 57d18df7d0
3 changed files with 26 additions and 12 deletions

View file

@ -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: