4 #include "interpreter.h"
7 #define REPL_BUFFER_MAX 1024
9 char buffer[REPL_BUFFER_MAX + 1];
11 int main(int argc, char *argv[])
19 if (fgets(buffer, REPL_BUFFER_MAX, stdin) == NULL) {
23 struct ParseResult parse_result = read_expr_from_string(buffer);
24 if (parse_result.is_error) {
25 print_parse_error(stderr, buffer, parse_result);
29 struct EvalResult eval_result = eval(empty_scope(), parse_result.expr);
30 if (eval_result.is_error) {
31 print_eval_error(stderr, eval_result);
32 destroy_expr(parse_result.expr);
33 destroy_expr(eval_result.expr);
37 print_expr_as_sexpr(eval_result.expr);
38 destroy_expr(parse_result.expr);
39 destroy_expr(eval_result.expr);