aboutsummaryrefslogtreecommitdiff
path: root/src/tokenizer.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2018-02-17 11:54:08 +0000
committergingerBill <bill@gingerbill.org>2018-02-17 11:54:08 +0000
commitc4d2d287fc0eac7348951ce275a1f3d80f25ef3d (patch)
treee082b0f1d744689ced0cdab73dd405981cacbf3a /src/tokenizer.cpp
parent6a85546b761b67fa012a2cd49e32b2211bf02971 (diff)
#complete switch; Removal of dyncall
Diffstat (limited to 'src/tokenizer.cpp')
-rw-r--r--src/tokenizer.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp
index 404b4cea6..6b7a50638 100644
--- a/src/tokenizer.cpp
+++ b/src/tokenizer.cpp
@@ -227,6 +227,22 @@ void error_va(Token token, char *fmt, va_list va) {
gb_mutex_unlock(&global_error_collector.mutex);
}
+void error_no_newline_va(Token token, char *fmt, va_list va) {
+ gb_mutex_lock(&global_error_collector.mutex);
+ global_error_collector.count++;
+ // NOTE(bill): Duplicate error, skip it
+ if (token.pos.line == 0) {
+ gb_printf_err("Error: %s", gb_bprintf_va(fmt, va));
+ } else if (global_error_collector.prev != token.pos) {
+ global_error_collector.prev = token.pos;
+ gb_printf_err("%.*s(%td:%td) %s",
+ LIT(token.pos.file), token.pos.line, token.pos.column,
+ gb_bprintf_va(fmt, va));
+ }
+ gb_mutex_unlock(&global_error_collector.mutex);
+}
+
+
void syntax_error_va(Token token, char *fmt, va_list va) {
gb_mutex_lock(&global_error_collector.mutex);
global_error_collector.count++;