From 85eb92df39b3825183d9a737aed0fdb3872c9241 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Mon, 23 Jun 2008 20:29:43 +0200 Subject: Allow binding NIL in environments. --- MLKEnvironment.m | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'MLKEnvironment.m') diff --git a/MLKEnvironment.m b/MLKEnvironment.m index 2dab2aa..581c462 100644 --- a/MLKEnvironment.m +++ b/MLKEnvironment.m @@ -74,7 +74,9 @@ static id UNBOUND; -(void) setValue:(id)value forBinding:(MLKSymbol *)symbol; { - [self setBinding:symbol to:value inEnvironment:self]; + [self setBinding:(symbol ? (id)symbol : (id)[NSNull null]) + to:value + inEnvironment:self]; } -(void) setBinding:(MLKSymbol *)symbol to:(id)value inEnvironment:(MLKEnvironment *)env @@ -93,7 +95,8 @@ static id UNBOUND; -(id) valueForBinding:(MLKSymbol *)symbol { - return [self valueForBinding:symbol inEnvironment:self]; + return [self valueForBinding:(symbol ? (id)symbol : (id)[NSNull null]) + inEnvironment:self]; } -(id) valueForBinding:(MLKSymbol *)symbol inEnvironment:(MLKEnvironment *)env @@ -134,7 +137,7 @@ static id UNBOUND; -(void) addBinding:(MLKSymbol *)symbol { - [_bindings setObject:UNBOUND forKey:symbol]; + [_bindings setObject:UNBOUND forKey:(symbol ? (id)symbol : (id)[NSNull null])]; } -(MLKEnvironment *) environmentForBinding:(MLKSymbol *)symbol -- cgit v1.2.3