summaryrefslogtreecommitdiff
path: root/MLKInterpreter.m
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <matthias@benkard.de>2008-08-17 22:43:25 +0200
committerMatthias Andreas Benkard <matthias@benkard.de>2008-08-18 01:21:41 +0200
commitd86ccf58d5b462100d1f4ec5d016024543ec7f53 (patch)
tree857892d893278f2f405d7b0280cb65f96c940899 /MLKInterpreter.m
parent79b29bf6e41ca122d469040cd671d43ce81bd6df (diff)
Replace special operator %DEFMACRO with intrinsic function %MACROSET.
Diffstat (limited to 'MLKInterpreter.m')
-rw-r--r--MLKInterpreter.m40
1 files changed, 0 insertions, 40 deletions
diff --git a/MLKInterpreter.m b/MLKInterpreter.m
index 21adaea..3f91814 100644
--- a/MLKInterpreter.m
+++ b/MLKInterpreter.m
@@ -289,46 +289,6 @@
return nil;
}
- else if (car == _DEFMACRO)
- {
- // No real lambda lists here. This SYS::%DEFMACRO is
- // really as low-level as it gets.
- id name = [[program cdr] car];
- id lambdaListAndBody = [[program cdr] cdr];
-
- id <MLKFuncallable> function;
-
- if (expandOnly)
- {
- id lambdaList = [lambdaListAndBody car];
- id body = [lambdaListAndBody cdr];
- id body_expansion =
- denullify([[self eval:[MLKCons cons:PROGN with:body]
- inLexicalContext:context
- withEnvironment:lexenv
- expandOnly:expandOnly]
- objectAtIndex:0]);
- RETURN_VALUE ([MLKCons
- cons:_DEFMACRO
- with:[MLKCons
- cons:name
- with:[MLKCons
- cons:lambdaList
- with:[MLKCons
- cons:body_expansion
- with:nil]]]]);
- }
-
- function = denullify([[self eval:[MLKCons cons:_LAMBDA with:lambdaListAndBody]
- inLexicalContext:context
- withEnvironment:lexenv
- expandOnly:expandOnly]
- objectAtIndex:0]);
-
- [context addMacro:function forSymbol:name];
-
- RETURN_VALUE (name);
- }
else if (car == EVAL)
{
NSArray *evaluand = denullify([[self eval:[[program cdr] car]