summaryrefslogtreecommitdiff
path: root/MLKLexicalContext.m
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <matthias@benkard.de>2008-06-30 21:43:35 +0200
committerMatthias Andreas Benkard <matthias@benkard.de>2008-06-30 21:43:35 +0200
commit786ddbd4cea2fa9808463a5b2ff23dd40b994846 (patch)
tree9db79c4a8906661d48a5fff9ac24ea4a12a54050 /MLKLexicalContext.m
parenteb968f738101d87b2d0e170d757ea10a27bbb867 (diff)
Simplify environment inheritance.
Diffstat (limited to 'MLKLexicalContext.m')
-rw-r--r--MLKLexicalContext.m35
1 files changed, 5 insertions, 30 deletions
diff --git a/MLKLexicalContext.m b/MLKLexicalContext.m
index 545c3c1..a4c0ba2 100644
--- a/MLKLexicalContext.m
+++ b/MLKLexicalContext.m
@@ -38,15 +38,11 @@
#define MAKE_ENVIRONMENT(variable, parent, parent_member) \
- (variable \
- ? (id) [[MLKEnvironment alloc] \
- initWithParent:(parent \
- ? (id) parent_member \
- : nil) \
- values:variable] \
- : (id) (parent \
- ? (id) RETAIN (parent_member) \
- : [[MLKEnvironment alloc] init]));
+ [[MLKEnvironment alloc] \
+ initWithParent:(parent \
+ ? (id) parent_member \
+ : nil) \
+ values:variable]
static MLKLexicalContext *global_context;
@@ -138,13 +134,6 @@ static MLKSymbol *LEXICAL;
-(void) addMacro:(id <MLKFuncallable>)value forSymbol:(MLKSymbol *)symbol
{
- if (_parent && _macros == _parent->_macros)
- _macros = [[MLKEnvironment alloc] initWithParent:_parent->_macros
- values:nil];
- else if (!_macros)
- _macros = [[MLKEnvironment alloc] initWithParent:nil
- values:nil];
-
[_knownMacros addObject:symbol];
[_macros addValue:value forSymbol:symbol];
}
@@ -161,13 +150,6 @@ static MLKSymbol *LEXICAL;
-(void) addCompilerMacro:(id <MLKFuncallable>)value forSymbol:(MLKSymbol *)symbol
{
- if (_parent && _compilerMacros == _parent->_compilerMacros)
- _compilerMacros = [[MLKEnvironment alloc] initWithParent:_parent->_compilerMacros
- values:nil];
- else if (!_compilerMacros)
- _compilerMacros = [[MLKEnvironment alloc] initWithParent:nil
- values:nil];
-
[_knownCompilerMacros addObject:symbol];
[_compilerMacros addValue:value forSymbol:symbol];
}
@@ -184,13 +166,6 @@ static MLKSymbol *LEXICAL;
-(void) addSymbolMacro:(id <MLKFuncallable>)value forSymbol:(MLKSymbol *)symbol
{
- if (_parent && _symbolMacros == _parent->_symbolMacros)
- _symbolMacros = [[MLKEnvironment alloc] initWithParent:_parent->_symbolMacros
- values:nil];
- else if (!_symbolMacros)
- _symbolMacros = [[MLKEnvironment alloc] initWithParent:nil
- values:nil];
-
[_knownSymbolMacros addObject:symbol];
[_symbolMacros addValue:value forSymbol:symbol];
}