* Primops: baseNameOf, toString.

This commit is contained in:
Eelco Dolstra 2003-11-02 16:31:35 +00:00
parent c8268ca991
commit adf9a45469
4 changed files with 30 additions and 4 deletions

View file

@ -204,3 +204,22 @@ Expr primDerivation(EvalState & state, Expr args)
return makeAttrs(attrs);
}
Expr primBaseNameOf(EvalState & state, Expr arg)
{
string s = evalString(state, arg);
return ATmake("Str(<str>)", baseNameOf(s).c_str());
}
Expr primToString(EvalState & state, Expr arg)
{
arg = evalExpr(state, arg);
char * s;
if (ATmatch(arg, "Str(<str>)", &s) ||
ATmatch(arg, "Path(<str>)", &s) ||
ATmatch(arg, "Uri(<str>)", &s))
return ATmake("Str(<str>)", s);
else throw badTerm("cannot coerce to string", arg);
}