forked from lix-project/lix
* `null' is a nullary primop.
This commit is contained in:
parent
569e7940f8
commit
cfaea07444
|
@ -137,12 +137,12 @@ Expr evalExpr2(EvalState & state, Expr e)
|
||||||
ATmatch(e, "Bool(<term>)", &e1) ||
|
ATmatch(e, "Bool(<term>)", &e1) ||
|
||||||
ATmatch(e, "Function([<list>], <term>)", &e1, &e2) ||
|
ATmatch(e, "Function([<list>], <term>)", &e1, &e2) ||
|
||||||
ATmatch(e, "Attrs([<list>])", &e1) ||
|
ATmatch(e, "Attrs([<list>])", &e1) ||
|
||||||
ATmatch(e, "List([<list>])", &e1) ||
|
ATmatch(e, "List([<list>])", &e1))
|
||||||
ATmatch(e, "Null", &e1))
|
|
||||||
return e;
|
return e;
|
||||||
|
|
||||||
/* Any encountered variables must be undeclared or primops. */
|
/* Any encountered variables must be undeclared or primops. */
|
||||||
if (ATmatch(e, "Var(<str>)", &s1)) {
|
if (ATmatch(e, "Var(<str>)", &s1)) {
|
||||||
|
if ((string) s1 == "null") return primNull(state);
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -159,7 +159,6 @@ Expr evalExpr2(EvalState & state, Expr e)
|
||||||
if (primop == "derivation") return primDerivation(state, e2);
|
if (primop == "derivation") return primDerivation(state, e2);
|
||||||
if (primop == "toString") return primToString(state, e2);
|
if (primop == "toString") return primToString(state, e2);
|
||||||
if (primop == "baseNameOf") return primBaseNameOf(state, e2);
|
if (primop == "baseNameOf") return primBaseNameOf(state, e2);
|
||||||
if (primop == "null") return primNull(state, e2);
|
|
||||||
if (primop == "isNull") return primIsNull(state, e2);
|
if (primop == "isNull") return primIsNull(state, e2);
|
||||||
else throw badTerm("undefined variable/primop", e1);
|
else throw badTerm("undefined variable/primop", e1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -227,7 +227,7 @@ Expr primToString(EvalState & state, Expr arg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Expr primNull(EvalState & state, Expr arg)
|
Expr primNull(EvalState & state)
|
||||||
{
|
{
|
||||||
return ATmake("Null");
|
return ATmake("Null");
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ Expr primBaseNameOf(EvalState & state, Expr arg);
|
||||||
Expr primToString(EvalState & state, Expr arg);
|
Expr primToString(EvalState & state, Expr arg);
|
||||||
|
|
||||||
/* Return the null value. */
|
/* Return the null value. */
|
||||||
Expr primNull(EvalState & state, Expr arg);
|
Expr primNull(EvalState & state);
|
||||||
|
|
||||||
/* Determine whether the argument is the null value. */
|
/* Determine whether the argument is the null value. */
|
||||||
Expr primIsNull(EvalState & state, Expr arg);
|
Expr primIsNull(EvalState & state, Expr arg);
|
||||||
|
|
Loading…
Reference in a new issue