mirror of
https://github.com/NixOS/nix
synced 2025-06-29 14:53:16 +02:00
* Don't use the ATerm library for parsing/printing .drv files.
This commit is contained in:
parent
55b5ddd3ca
commit
efc7a579e8
14 changed files with 174 additions and 330 deletions
|
@ -302,34 +302,23 @@ string int2String(int n);
|
|||
bool hasSuffix(const string & s, const string & suffix);
|
||||
|
||||
|
||||
/* Read string `s' from stream `str'. */
|
||||
void expect(std::istream & str, const string & s);
|
||||
|
||||
|
||||
/* Read a C-style string from stream `str'. */
|
||||
string parseString(std::istream & str);
|
||||
|
||||
|
||||
/* Utility function used to parse legacy ATerms. */
|
||||
bool endOfList(std::istream & str);
|
||||
|
||||
|
||||
/* Exception handling in destructors: print an error message, then
|
||||
ignore the exception. */
|
||||
void ignoreException();
|
||||
|
||||
|
||||
/* STL functions such as sort() pass a binary function object around
|
||||
by value, so it gets cloned a lot. This is bad if the function
|
||||
object has state or is simply large. This adapter wraps the
|
||||
function object to simulate passing by reference. */
|
||||
template<class F>
|
||||
struct binary_function_ref_adapter
|
||||
{
|
||||
F * p;
|
||||
|
||||
binary_function_ref_adapter(F * _p)
|
||||
{
|
||||
p = _p;
|
||||
}
|
||||
|
||||
typename F::result_type operator () (
|
||||
const typename F::first_argument_type & x,
|
||||
const typename F::second_argument_type & y)
|
||||
{
|
||||
return (*p)(x, y);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue