aboutsummaryrefslogtreecommitdiff
path: root/src/tokenizer.cpp
diff options
context:
space:
mode:
authorChris Heyes <rumcode@icloud.com>2019-11-01 19:18:33 +0000
committerChris Heyes <rumcode@icloud.com>2019-11-01 19:18:33 +0000
commit153e7525b5d64f12deb318d50aee1d9dbeb1fc8e (patch)
treeb8ac88c0788af31bcb3c5041d78306c2120714f6 /src/tokenizer.cpp
parentd85893954dccc7833e3d954db641d9fd2a3c7451 (diff)
parent44a303e5778fb8564964d53523634f34f8589489 (diff)
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'src/tokenizer.cpp')
-rw-r--r--src/tokenizer.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/tokenizer.cpp b/src/tokenizer.cpp
index a551f0545..4b0db7ac4 100644
--- a/src/tokenizer.cpp
+++ b/src/tokenizer.cpp
@@ -86,6 +86,7 @@ TOKEN_KIND(Token__KeywordBegin, ""), \
TOKEN_KIND(Token_package, "package"), \
TOKEN_KIND(Token_typeid, "typeid"), \
TOKEN_KIND(Token_when, "when"), \
+ TOKEN_KIND(Token_where, "where"), \
TOKEN_KIND(Token_if, "if"), \
TOKEN_KIND(Token_else, "else"), \
TOKEN_KIND(Token_for, "for"), \
@@ -400,6 +401,15 @@ void syntax_error(Token token, char *fmt, ...) {
va_end(va);
}
+void syntax_error(TokenPos pos, char *fmt, ...) {
+ va_list va;
+ va_start(va, fmt);
+ Token token = {};
+ token.pos = pos;
+ syntax_error_va(token, fmt, va);
+ va_end(va);
+}
+
void syntax_warning(Token token, char *fmt, ...) {
va_list va;
va_start(va, fmt);
@@ -745,9 +755,11 @@ exponent:
scan_mantissa(t, 10);
}
- if (t->curr_rune == 'i') {
+ switch (t->curr_rune) {
+ case 'i': case 'j': case 'k':
token.kind = Token_Imag;
advance_to_next_rune(t);
+ break;
}
end: