diff options
Diffstat (limited to 'src/libexpr')
-rw-r--r-- | src/libexpr/eval.cc | 8 | ||||
-rw-r--r-- | src/libexpr/nixexpr.cc | 6 | ||||
-rw-r--r-- | src/libexpr/parser.cc | 2 | ||||
-rw-r--r-- | src/libexpr/parser.y | 9 | ||||
-rw-r--r-- | src/libexpr/primops.cc | 10 |
5 files changed, 20 insertions, 15 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index cef346002..d4593b5c0 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -328,11 +328,11 @@ Expr evalExpr2(EvalState & state, Expr e) e2 = evalExpr(state, e2); ATerm s1, s2; if (matchStr(e1, s1) && matchStr(e2, s2)) - return makeStr(string2ATerm(( - (string) aterm2String(s1) + (string) aterm2String(s2)).c_str())); + return makeStr(toATerm( + (string) aterm2String(s1) + (string) aterm2String(s2))); else if (matchPath(e1, s1) && matchPath(e2, s2)) - return makePath(string2ATerm(canonPath( - (string) aterm2String(s1) + "/" + (string) aterm2String(s2)).c_str())); + return makePath(toATerm(canonPath( + (string) aterm2String(s1) + "/" + (string) aterm2String(s2)))); else throw Error("wrong argument types in `+' operator"); } diff --git a/src/libexpr/nixexpr.cc b/src/libexpr/nixexpr.cc index 56e053fd7..d806a9130 100644 --- a/src/libexpr/nixexpr.cc +++ b/src/libexpr/nixexpr.cc @@ -42,7 +42,7 @@ void ATermMap::set(ATerm key, ATerm value) void ATermMap::set(const string & key, ATerm value) { - set(string2ATerm(key.c_str()), value); + set(toATerm(key), value); } @@ -54,7 +54,7 @@ ATerm ATermMap::get(ATerm key) const ATerm ATermMap::get(const string & key) const { - return get(string2ATerm(key.c_str())); + return get(toATerm(key)); } @@ -66,7 +66,7 @@ void ATermMap::remove(ATerm key) void ATermMap::remove(const string & key) { - remove(string2ATerm(key.c_str())); + remove(toATerm(key)); } diff --git a/src/libexpr/parser.cc b/src/libexpr/parser.cc index 8a199c002..8232b0de5 100644 --- a/src/libexpr/parser.cc +++ b/src/libexpr/parser.cc @@ -35,7 +35,7 @@ void setParseResult(ParseData * data, ATerm t) ATerm absParsedPath(ParseData * data, ATerm t) { - return string2ATerm(absPath(aterm2String(t), data->basePath).c_str()); + return toATerm(absPath(aterm2String(t), data->basePath)); } void parseError(ParseData * data, char * error, int line, int column) diff --git a/src/libexpr/parser.y b/src/libexpr/parser.y index 8573697b6..1f204a228 100644 --- a/src/libexpr/parser.y +++ b/src/libexpr/parser.y @@ -31,9 +31,14 @@ void yyerror(YYLTYPE * loc, yyscan_t scanner, void * data, char * s) parseError(data, s, loc->first_line, loc->first_column); } +ATerm toATerm(const char * s) +{ + return (ATerm) ATmakeAppl0(ATmakeAFun((char *) s, 0, ATtrue)); +} + static Pos makeCurPos(YYLTYPE * loc, void * data) { - return makePos(string2ATerm(getPath(data)), + return makePos(toATerm(getPath(data)), loc->first_line, loc->first_column); } @@ -122,7 +127,7 @@ expr_simple /* Let expressions `let {..., body = ...}' are just desugared into `(rec {..., body = ...}).body'. */ | LET '{' binds '}' - { $$ = makeSelect(fixAttrs(1, $3), string2ATerm("body")); } + { $$ = makeSelect(fixAttrs(1, $3), toATerm("body")); } | REC '{' binds '}' { $$ = fixAttrs(1, $3); } | '{' binds '}' diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc index 830a2c095..41b444b20 100644 --- a/src/libexpr/primops.cc +++ b/src/libexpr/primops.cc @@ -269,11 +269,11 @@ static Expr primDerivation(EvalState & state, const ATermVector & _args) printMsg(lvlChatty, format("instantiated `%1%' -> `%2%'") % drvName % drvPath); - attrs.set("outPath", makeAttrRHS(makePath(string2ATerm(outPath.c_str())), makeNoPos())); - attrs.set("drvPath", makeAttrRHS(makePath(string2ATerm(drvPath.c_str())), makeNoPos())); + attrs.set("outPath", makeAttrRHS(makePath(toATerm(outPath)), makeNoPos())); + attrs.set("drvPath", makeAttrRHS(makePath(toATerm(drvPath)), makeNoPos())); attrs.set("drvHash", - makeAttrRHS(makeStr(string2ATerm(((string) drvHash).c_str())), makeNoPos())); - attrs.set("type", makeAttrRHS(makeStr(string2ATerm("derivation")), makeNoPos())); + makeAttrRHS(makeStr(toATerm((string) drvHash)), makeNoPos())); + attrs.set("type", makeAttrRHS(makeStr(toATerm("derivation")), makeNoPos())); return makeAttrs(attrs); } @@ -283,7 +283,7 @@ static Expr primDerivation(EvalState & state, const ATermVector & _args) following the last slash. */ static Expr primBaseNameOf(EvalState & state, const ATermVector & args) { - return makeStr(string2ATerm(baseNameOf(evalString(state, args[0])).c_str())); + return makeStr(toATerm(baseNameOf(evalString(state, args[0])))); } |