diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-11-19T11·35+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-11-19T11·35+0000 |
commit | ac68840e79ce74f05ee8b31bb1d528c98b9c7f76 (patch) | |
tree | 98e8251d0537197b1c3e53068529f1e5e3114fdc /src/nix-instantiate/nixexpr.hh | |
parent | 2be8b5917a8040fac72e7970e94bbb436e8c35d6 (diff) |
* Refactoring: put the Nix expression evaluator in its own library so
that it can be used by multiple programs.
Diffstat (limited to 'src/nix-instantiate/nixexpr.hh')
-rw-r--r-- | src/nix-instantiate/nixexpr.hh | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/src/nix-instantiate/nixexpr.hh b/src/nix-instantiate/nixexpr.hh deleted file mode 100644 index 011c2900e12a..000000000000 --- a/src/nix-instantiate/nixexpr.hh +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef __NIXEXPR_H -#define __NIXEXPR_H - -#include <map> - -#include <aterm2.h> - -#include "util.hh" - - -/* Nix expressions are represented as ATerms. The maximal sharing - property of the ATerm library allows us to implement caching of - normals forms efficiently. */ -typedef ATerm Expr; - - -/* Mappings from ATerms to ATerms. This is just a wrapper around - ATerm tables. */ -class ATermMap -{ -private: - unsigned int maxLoadPct; - ATermTable table; - -public: - ATermMap(unsigned int initialSize = 16, unsigned int maxLoadPct = 75); - ATermMap(const ATermMap & map); - ~ATermMap(); - - void set(ATerm key, ATerm value); - void set(const string & key, ATerm value); - - ATerm get(ATerm key) const; - ATerm get(const string & key) const; - - void remove(ATerm key); - void remove(const string & key); - - ATermList keys() const; -}; - - -/* Convert a string to an ATerm (i.e., a quoted nullary function - applicaton). */ -ATerm string2ATerm(const string & s); -string aterm2String(ATerm t); - -/* Generic bottomup traversal over ATerms. The traversal first - recursively descends into subterms, and then applies the given term - function to the resulting term. */ -struct TermFun -{ - virtual ATerm operator () (ATerm e) = 0; -}; -ATerm bottomupRewrite(TermFun & f, ATerm e); - -/* Query all attributes in an attribute set expression. The - expression must be in normal form. */ -void queryAllAttrs(Expr e, ATermMap & attrs); - -/* Query a specific attribute from an attribute set expression. The - expression must be in normal form. */ -Expr queryAttr(Expr e, const string & name); - -/* Create an attribute set expression from an Attrs value. */ -Expr makeAttrs(const ATermMap & attrs); - -/* Perform a set of substitutions on an expression. */ -Expr substitute(const ATermMap & subs, Expr e); - -/* Create an expression representing a boolean. */ -Expr makeBool(bool b); - - -#endif /* !__NIXEXPR_H */ |