summaryrefslogtreecommitdiff
path: root/MLKEnvironment.h
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <matthias@benkard.de>2008-06-24 16:16:11 +0200
committerMatthias Andreas Benkard <matthias@benkard.de>2008-06-24 16:16:11 +0200
commit2283b43f733d95fe1c95fd0b7b838a1d450b007a (patch)
treebadefcef9ef5fd625b3de6d4bfee8ee27d72ced3 /MLKEnvironment.h
parent62b2dbaa3d0500abb51ddf88b2e84ff9ebc22846 (diff)
Make the environment handling system aware of bindings as first-class values.
Diffstat (limited to 'MLKEnvironment.h')
-rw-r--r--MLKEnvironment.h14
1 files changed, 6 insertions, 8 deletions
diff --git a/MLKEnvironment.h b/MLKEnvironment.h
index ef357f6..0789b1a 100644
--- a/MLKEnvironment.h
+++ b/MLKEnvironment.h
@@ -17,6 +17,7 @@
*/
#import "MLKLispValue.h"
+#import "MLKBinding.h"
@class NSMutableDictionary, MLKSymbol, NSSet;
@@ -27,28 +28,25 @@
NSMutableDictionary *_bindings;
}
-+(void) initialize;
-
-(MLKEnvironment *) init;
-(MLKEnvironment *) initWithParent:(MLKEnvironment *)parent;
--(MLKEnvironment *) initWithBindings:(NSDictionary *)bindings;
--(MLKEnvironment *) initWithParent:(MLKEnvironment *)parent bindings:(NSDictionary *)bindings;
+-(MLKEnvironment *) initWithValues:(NSDictionary *)bindings;
+-(MLKEnvironment *) initWithParent:(MLKEnvironment *)parent
+ values:(NSDictionary *)bindings;
-(MLKEnvironment *) parent;
-(NSSet *) bindings;
-(void) addBindingForSymbol:(MLKSymbol *)symbol;
-(void) addBindings:(NSDictionary *)bindings;
+-(void) addValues:(NSDictionary *)bindings;
-(void) addValue:(id)value forSymbol:(MLKSymbol *)symbol;
-(void) setValue:(id)value forSymbol:(MLKSymbol *)symbol;
+-(MLKBinding *) bindingForSymbol:(MLKSymbol *)symbol;
-(id) valueForSymbol:(MLKSymbol *)symbol;
-(MLKEnvironment *) environmentForSymbol:(MLKSymbol *)symbol;
-// Private methods.
--(void) setBinding:(MLKSymbol *)symbol to:(id)value inEnvironment:(MLKEnvironment *)env;
--(id) valueForSymbol:(MLKSymbol *)symbol inEnvironment:(MLKEnvironment *)env;
-
-(BOOL) boundp:(MLKSymbol *)symbol;
-(void) makunbound:(MLKSymbol *)symbol;