From b1523655614f91e765b674b4b7db6adf79ff403b Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Thu, 26 Oct 2023 10:22:35 +0100 Subject: Lexer forces uppercase for symbols --- asm/lexer.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'asm/lexer.c') diff --git a/asm/lexer.c b/asm/lexer.c index 7c3f7da..149d717 100644 --- a/asm/lexer.c +++ b/asm/lexer.c @@ -43,13 +43,21 @@ bool is_symbol(char c) return isalpha(c) || c == '-' || c == '_' || c == '.'; } +char uppercase(char c) +{ + if (c >= 'a' && c <= 'z') + return (c - 'a') + 'A'; + return c; +} + token_t tokenise_symbol(buffer_t *buffer) { token_t token = {.type = TOKEN_SYMBOL, .str_size = 0}; for (; token.str_size < space_left(buffer) && is_symbol(buffer->data[buffer->used + token.str_size]); ++token.str_size) - continue; + buffer->data[buffer->used + token.str_size] = + uppercase(buffer->data[buffer->used + token.str_size]); token.str = calloc(token.str_size + 1, 1); memcpy(token.str, buffer->data + buffer->used, token.str_size); token.str[token.str_size] = '\0'; -- cgit v1.2.3-13-gbd6f