#include #include #include #include "oberon-internals.h" void oberon_error(oberon_context_t * ctx, const char * fmt, ...) { va_list ptr; va_start(ptr, fmt); printf("%s: (%i:%i) ", ctx -> loc.source, ctx -> loc.line, ctx -> loc.col); vprintf(fmt, ptr); printf("\n"); va_end(ptr); exit(1); }