diff options
author | Matthias Andreas Benkard <matthias@benkard.de> | 2008-06-23 19:02:42 +0200 |
---|---|---|
committer | Matthias Andreas Benkard <matthias@benkard.de> | 2008-06-23 19:02:42 +0200 |
commit | 3aa255629a915314b71c04820833b683ff9234fc (patch) | |
tree | ef0ed440cadee353c3800cd8232ee483bf7508c0 /MLKLexicalEnvironment.m | |
parent | 1c181e7b07ee551d6f76416972fe38ff411ffc40 (diff) |
Initialise the global environment on startup.
Diffstat (limited to 'MLKLexicalEnvironment.m')
-rw-r--r-- | MLKLexicalEnvironment.m | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/MLKLexicalEnvironment.m b/MLKLexicalEnvironment.m index 3d0c31c..07c6f92 100644 --- a/MLKLexicalEnvironment.m +++ b/MLKLexicalEnvironment.m @@ -50,6 +50,22 @@ static MLKLexicalEnvironment *global_environment; @implementation MLKLexicalEnvironment ++(void) initialize +{ + NSMutableDictionary *vars = [NSMutableDictionary dictionary]; + NSMutableDictionary *funs = [NSMutableDictionary dictionary]; + + MLKPackage *cl = [MLKPackage findPackage:@"COMMON-LISP"]; + // MLKPackage *sys = [MLKPackage findPackage:@"TOILET-SYSTEM"]; + + [vars setObject:[NSNull null] forKey:[NSNull null]]; + [vars setObject:[cl intern:@"T"] forKey:[cl intern:@"T"]]; + + global_environment = [[self alloc] initWithParent:nil + variables:vars + functions:funs]; +} + -(MLKLexicalEnvironment *) initWithParent:(MLKLexicalEnvironment *)aContext variables:(NSDictionary *)vars functions:(NSDictionary *)handlers @@ -66,6 +82,16 @@ static MLKLexicalEnvironment *global_environment; return global_environment; } +-(NSSet *) variables +{ + return [_variables bindings]; +} + +-(NSSet *) functions +{ + return [_functions bindings]; +} + -(id) valueForSymbol:(MLKSymbol *)symbol { return [_variables valueForBinding:symbol]; |