aboutsummaryrefslogtreecommitdiff
path: root/repl.c
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2014-05-16 00:05:37 +0300
committerOskari Timperi <oskari.timperi@iki.fi>2014-05-16 00:05:37 +0300
commit6814f6b99562620e70538787b6f8d66c80f7b990 (patch)
treefd9cdb616c6ce2610d32322645223dcb01028a52 /repl.c
parent85cff208efd20e85e9aa644d65a0cbea5e156755 (diff)
downloadlispish-6814f6b99562620e70538787b6f8d66c80f7b990.tar.gz
lispish-6814f6b99562620e70538787b6f8d66c80f7b990.zip
env support to repl
Diffstat (limited to 'repl.c')
-rw-r--r--repl.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/repl.c b/repl.c
index c9ddb6a..615609f 100644
--- a/repl.c
+++ b/repl.c
@@ -1,14 +1,19 @@
#include <stdlib.h>
#include <stdio.h>
+#include <string.h>
#include "parse.h"
#include "eval.h"
#include "list.h"
+#include "env.h"
#include "linenoise.h"
int main(int argc, char **argv)
{
char *line;
+ struct list *env;
+
+ env = env_new();
linenoiseSetMultiLine(0);
@@ -16,9 +21,15 @@ int main(int argc, char **argv)
{
linenoiseHistoryAdd(line);
- struct list *result = eval_str(line);
-
- print_list(result, 0);
+ if (strcmp(".clean", line) == 0)
+ {
+ env = env_new();
+ }
+ else
+ {
+ struct list *result = eval_str_env(line, env);
+ print_list(result, 0);
+ }
free(line);
}