Started work on preprocessing jump addresses

This commit is contained in:
2023-11-02 20:31:22 +00:00
parent d12820cd25
commit d5e311c9d4
3 changed files with 15 additions and 3 deletions

View File

@@ -24,6 +24,8 @@ const char *token_type_as_cstr(token_type_t type)
{
switch (type)
{
case TOKEN_STAR:
return "STAR";
case TOKEN_LITERAL_NUMBER:
return "LITERAL_NUMBER";
case TOKEN_LITERAL_CHAR:
@@ -124,7 +126,7 @@ char uppercase(char c)
bool is_symbol(char c)
{
return isalpha(c) || c == '-' || c == '_' || c == '.';
return isalpha(c) || c == '-' || c == '_' || c == '.' || c == ':';
}
bool is_valid_hex_char(char c)
@@ -431,6 +433,15 @@ lerr_t tokenise_buffer(buffer_t *buffer, token_stream_t *tokens_ptr)
++buffer->used;
is_token = false;
}
else if (c == '*')
{
t = (token_t){.type = TOKEN_STAR,
.column = column,
.str = malloc(1),
.str_size = 1};
t.str[0] = '\0';
++buffer->used;
}
else if (isdigit(c) || (space_left(buffer) > 1 && c == '-' &&
isdigit(buffer->data[buffer->used + 1])))
t = tokenise_number_literal(buffer, &column);

View File

@@ -17,6 +17,7 @@
typedef enum TokenType
{
TOKEN_STAR,
TOKEN_LITERAL_NUMBER,
TOKEN_LITERAL_CHAR,
TOKEN_NOOP,