#include"reporting.h" #include #include #include #include"ast.h" #include"lexer.h" static void stahp_va(int row, int column, const char *error, va_list l) { fprintf(stderr, "error %i:%i: ", row, column); vfprintf(stderr, error, l); fputc('\n', stderr); } /* Abort immediately on first error (for now) */ void stahp(int row, int column, const char *error, ...) { va_list l; va_start(l, error); stahp_va(row, column, error, l); va_end(l); exit(1); } void stahp_node(union AST *node, const char *error, ...) { va_list l; va_start(l, error); stahp_va(node->row, node->col, error, l); va_end(l); exit(1); } void stahp_token(struct Token *tok, const char *error, ...) { va_list l; va_start(l, error); stahp_va(tok->row, tok->column, error, l); va_end(l); exit(1); }