aboutsummaryrefslogtreecommitdiff
path: root/src/parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser.cpp')
-rw-r--r--src/parser.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/parser.cpp b/src/parser.cpp
index 0efe2714a..159eb65f8 100644
--- a/src/parser.cpp
+++ b/src/parser.cpp
@@ -514,6 +514,22 @@ gb_internal void error(Ast *node, char const *fmt, ...) {
}
}
+gb_internal void error_range(TokenPos start, TokenPos end, char const *fmt, ...) {
+ GB_ASSERT(start.file_id == end.file_id);
+ GB_ASSERT(start.line == end.line);
+ GB_ASSERT(start.column <= end.column);
+ GB_ASSERT(start.offset <= end.offset);
+
+ va_list va;
+ va_start(va, fmt);
+ error_va(start, end, fmt, va);
+ va_end(va);
+ if (start.file_id != 0) {
+ AstFile *f = thread_safe_get_ast_file_from_id(start.file_id);
+ f->error_count += 1;
+ }
+}
+
gb_internal void syntax_error_with_verbose(Ast *node, char const *fmt, ...) {
Token token = {};
TokenPos end_pos = {};