diff options
Diffstat (limited to 'src/utils.c')
| -rw-r--r-- | src/utils.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c new file mode 100644 index 0000000..2335981 --- /dev/null +++ b/src/utils.c @@ -0,0 +1,30 @@ +#include "utils.h" + +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> + +void die(const char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + vfprintf(stderr, fmt, args); + va_end(args); + exit(1); +} + +void _die_location(char *file, int line, Location loc, const char *fmt, ...) +{ + Location_print(stderr, loc); + fprintf(stderr, ": "); + va_list args; + va_start(args, fmt); + vfprintf(stderr, fmt, args); + va_end(args); + fprintf(stderr, "\n"); + fprintf(stderr, "NOTE: Error occurred in %s:%d\n", file, line); + exit(1); +} + +i64 i64max(i64 a, i64 b) { return a > b ? a : b; } +i64 i64min(i64 a, i64 b) { return a < b ? a : b; }
\ No newline at end of file |