diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-11-18T11·22+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2003-11-18T11·22+0000 |
commit | ce92d1bf1434562f5b80320c503768c4d06f1f8d (patch) | |
tree | 477c80de94f3c403115f80bad450003946af2889 /src/libstore/storeexpr.hh | |
parent | 9f0f020929c9e093405cc6193d2f227cab763912 (diff) |
* "Nix expression" -> "store expression".
* More refactoring.
Diffstat (limited to 'src/libstore/storeexpr.hh')
-rw-r--r-- | src/libstore/storeexpr.hh | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/src/libstore/storeexpr.hh b/src/libstore/storeexpr.hh new file mode 100644 index 000000000000..07676c3ccedb --- /dev/null +++ b/src/libstore/storeexpr.hh @@ -0,0 +1,56 @@ +#ifndef __STOREEXPR_H +#define __STOREEXPR_H + +#include "aterm.hh" +#include "store.hh" + + +/* Abstract syntax of store expressions. */ + +struct ClosureElem +{ + PathSet refs; +}; + +typedef map<Path, ClosureElem> ClosureElems; + +struct Closure +{ + PathSet roots; + ClosureElems elems; +}; + +typedef map<string, string> StringPairs; + +struct Derivation +{ + PathSet outputs; + PathSet inputs; /* Store expressions, not actual inputs */ + string platform; + Path builder; + Strings args; + StringPairs env; +}; + +struct StoreExpr +{ + enum { neClosure, neDerivation } type; + Closure closure; + Derivation derivation; +}; + + +/* Hash an aterm. */ +Hash hashTerm(ATerm t); + +/* Write an aterm to the Nix store directory, and return its path. */ +Path writeTerm(ATerm t, const string & suffix); + +/* Parse a store expression. */ +StoreExpr parseStoreExpr(ATerm t); + +/* Parse a store expression. */ +ATerm unparseStoreExpr(const StoreExpr & ne); + + +#endif /* !__STOREEXPR_H */ |