From bc8b406043b23a5825320248cbad3ff73cd124fe Mon Sep 17 00:00:00 2001 From: Andrew Chambers Date: Thu, 14 Oct 2021 02:38:59 +1300 Subject: Minor refactor. --- main.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'main.c') diff --git a/main.c b/main.c index bc67bb6..395b5f6 100644 --- a/main.c +++ b/main.c @@ -27,8 +27,18 @@ static Section *data = NULL; static Section *textrel = NULL; static Section *datarel = NULL; +char *filename = ""; size_t curlineno = 0; +void lfatal(const char *fmt, ...) { + va_list ap; + fprintf(stderr, "%s:%ld: ", filename, curlineno); + va_start(ap, fmt); + vwarn(fmt, ap); + va_end(ap); + exit(1); +} + static Symbol *getsym(const char *name) { Symbol **ps, *s; struct hashtablekey htk; @@ -639,6 +649,9 @@ static void assemble(void) { curlineno++; v = l->v; switch (v->kind) { + case ASM_SYNTAX_ERROR: + lfatal("syntax error"); + break; case ASM_BLANK: break; case ASM_DIR_GLOBL: -- cgit v1.2.3