mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-09 13:01:38 -07:00
Improve tokenizing wrong number literals
This commit is contained in:
+11
-1
@@ -718,7 +718,17 @@ gb_internal ExactValue exact_value_from_token(AstFile *f, Token const &token) {
|
||||
}
|
||||
ExactValue value = exact_value_from_basic_literal(token.kind, s);
|
||||
if (value.kind == ExactValue_Invalid) {
|
||||
syntax_error(token, "Invalid token literal");
|
||||
switch (token.kind) {
|
||||
case Token_Integer:
|
||||
syntax_error(token, "Invalid integer literal");
|
||||
break;
|
||||
case Token_Float:
|
||||
syntax_error(token, "Invalid float literal");
|
||||
break;
|
||||
default:
|
||||
syntax_error(token, "Invalid token literal");
|
||||
break;
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
@@ -433,6 +433,7 @@ gb_internal gb_inline i32 digit_value(Rune r) {
|
||||
}
|
||||
|
||||
gb_internal gb_inline void scan_mantissa(Tokenizer *t, i32 base) {
|
||||
base = 16; // always check for any possible letter
|
||||
while (digit_value(t->curr_rune) < base || t->curr_rune == '_') {
|
||||
advance_to_next_rune(t);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user