Remove the literal conversion logic to the parser from the tokenizer

This commit is contained in:
gingerBill
2021-08-02 00:53:45 +01:00
parent 97be36d18a
commit 7f3d4cb504
4 changed files with 44 additions and 44 deletions

View File

@@ -297,13 +297,13 @@ ExactValue exact_value_float_from_string(String string) {
}
ExactValue exact_value_from_basic_literal(Token token) {
switch (token.kind) {
case Token_String: return exact_value_string(token.string);
case Token_Integer: return exact_value_integer_from_string(token.string);
case Token_Float: return exact_value_float_from_string(token.string);
ExactValue exact_value_from_basic_literal(TokenKind kind, String const &string) {
switch (kind) {
case Token_String: return exact_value_string(string);
case Token_Integer: return exact_value_integer_from_string(string);
case Token_Float: return exact_value_float_from_string(string);
case Token_Imag: {
String str = token.string;
String str = string;
Rune last_rune = cast(Rune)str[str.len-1];
str.len--; // Ignore the 'i|j|k'
f64 imag = float_from_string(str);
@@ -317,7 +317,7 @@ ExactValue exact_value_from_basic_literal(Token token) {
}
case Token_Rune: {
Rune r = GB_RUNE_INVALID;
utf8_decode(token.string.text, token.string.len, &r);
utf8_decode(string.text, string.len, &r);
return exact_value_i64(r);
}
default: