summaryrefslogtreecommitdiff
path: root/MLKForm.m
diff options
context:
space:
mode:
Diffstat (limited to 'MLKForm.m')
-rw-r--r--MLKForm.m17
1 files changed, 11 insertions, 6 deletions
diff --git a/MLKForm.m b/MLKForm.m
index c8a5416..3f529dc 100644
--- a/MLKForm.m
+++ b/MLKForm.m
@@ -18,7 +18,7 @@
#import "MLKCons.h"
#import "MLKForm.h"
-#import "MLKLLVMCompiler.h"
+#import "MLKInterpreter.h"
#import "util.h"
#import "special-symbols.h"
@@ -130,7 +130,6 @@
id car = [object car];
if (car == CATCH) return [MLKCatchForm class];
- else if (car == EVAL) return [MLKFunctionCallForm class];
else if (car == EVAL_WHEN) return [MLKEvalWhenForm class];
else if (car == _FOREIGN_LAMBDA) return [MLKForeignLambdaForm class];
else if (car == FUNCTION) return [MLKFunctionForm class];
@@ -215,6 +214,7 @@
[NSArray arrayWithObjects:
_form, context, nil]]
objectAtIndex:0]);
+ //NSLog (@"=> %@", MLKPrintToString (expansion));
return LRETAIN ([MLKForm formWithObject:expansion
inContext:context
@@ -361,11 +361,11 @@
int i;
self = [super complete];
- LASSIGN (_foreignName, [[_tail cdr] car]);
- LASSIGN (_name, [_tail car]);
- _returnType = MLKForeignTypeWithTypeDesignator ([[[_tail cdr] cdr] car]);
+ LASSIGN (_foreignName, [_tail car]);
+ LASSIGN (_foreignLibraryDesignator, [[_tail cdr] car]);
+ _returnType = MLKForeignTypeWithTypeDesignator ([[[[_tail cdr] cdr] cdr] car]);
- argtypes = [[[_tail cdr] cdr] cdr];
+ argtypes = [[[_tail cdr] cdr] car];
_argc = [argtypes length];
_argumentTypes = malloc (_argc * sizeof (MLKForeignType));
@@ -483,6 +483,11 @@
inContext:newContext];
return self;
}
+
+-(MLKSymbol *) lambdaListName
+{
+ return _lambdaListName;
+}
@end