From 184aab342008e81dea14456832ef20913f5170c5 Mon Sep 17 00:00:00 2001 From: yoyo Date: Sun, 8 Sep 2024 17:27:39 +0900 Subject: [PATCH] move error.c to main.c --- error.c | 31 ------------------------------- main.c | 33 +++++++++++++++++++++++++++++---- makefile | 1 - 3 files changed, 29 insertions(+), 36 deletions(-) delete mode 100644 error.c diff --git a/error.c b/error.c deleted file mode 100644 index 3146f7c..0000000 --- a/error.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "dat.h" -#include "fn.h" -#include -#include -#include - -void -panic(char *fmt, ...) -{ - va_list ap; - va_start(ap, fmt); - vfprintf(stderr, fmt, ap); - va_end(ap); - fprintf(stderr, "\n"); - exit(1); -} - -void -error(char *fmt, ...) -{ - extern jmp_buf *errptr; - va_list ap; - - va_start(ap, fmt); - fprintf(stderr, "ERROR => "); - vfprintf(stderr, fmt, ap); - va_end(ap); - fprintf(stderr, "\n"); - longjmp(*errptr, 1); - exit(1); -} diff --git a/main.c b/main.c index 942d13a..bee3b08 100644 --- a/main.c +++ b/main.c @@ -1,10 +1,37 @@ #include "dat.h" #include "fn.h" #include +#include +#include -jmp_buf *errptr; +jmp_buf err; GC *gc; +void +panic(char *fmt, ...) +{ + va_list ap; + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + fprintf(stderr, "\n"); + exit(1); +} + +void +error(char *fmt, ...) +{ + va_list ap; + + va_start(ap, fmt); + fprintf(stderr, "ERROR => "); + vfprintf(stderr, fmt, ap); + va_end(ap); + fprintf(stderr, "\n"); + longjmp(err, 1); + exit(1); +} + static void SExprint(Object *obj) { @@ -64,9 +91,7 @@ printexpr(Object *obj) static void loop(Object *env, FILE *f) { - jmp_buf buf; - errptr = &buf; - if(setjmp(buf) == 1){ + if(setjmp(err) == 1){ if(feof(f)) return; skipline(f); diff --git a/makefile b/makefile index d59439e..59335fd 100644 --- a/makefile +++ b/makefile @@ -1,7 +1,6 @@ NAME=lisp OFILES=\ bltin.o\ - error.o\ eval.o\ main.o\ gc.o\