1 #import
<Foundation
/Foundation.h
>
3 #import "mal_readline.h"
5 NSString
*READ
(NSString
*str
) {
9 NSString
*EVAL(NSString
*ast
, NSString
*env
) {
13 NSString
*PRINT(NSString
*exp) {
17 NSString
*REP
(NSString
*line) {
18 return PRINT(EVAL(READ
(line), @""
));
22 // Create an autorelease pool to manage the
memory into the program
23 NSAutoreleasePool
* pool
= [[NSAutoreleasePool alloc
] init
];
24 // If using automatic reference counting
(ARC
), use @autoreleasepool instead
:
28 char *rawline
= _readline
("user
> "
);
29 if (!rawline
) { break; }
30 NSString
*line = [NSString stringWithUTF8String
:rawline
];
31 if ([line length] == 0) { continue
; }
32 printf
("
%s\n", [[REP(line) description] UTF8String]);