aboutsummaryrefslogtreecommitdiff
path: root/asm/lexer.c
diff options
context:
space:
mode:
authorAryadev Chavali <aryadev@aryadevchavali.com>2023-11-29 15:38:57 +0000
committerAryadev Chavali <aryadev@aryadevchavali.com>2023-11-29 15:38:57 +0000
commitac70d4031c5760e756e1d9ffd5228204969afc5f (patch)
tree3e1011b947adc45aff93559e645a2656dbe8c1ab /asm/lexer.c
parent1cba5ccd8d3c95198bf5858af2540d3e1aedfb2d (diff)
downloadovm-ac70d4031c5760e756e1d9ffd5228204969afc5f.tar.gz
ovm-ac70d4031c5760e756e1d9ffd5228204969afc5f.tar.bz2
ovm-ac70d4031c5760e756e1d9ffd5228204969afc5f.zip
Added function to copy tokens
This essentially just copies the internal string of the token into a new buffer.
Diffstat (limited to 'asm/lexer.c')
-rw-r--r--asm/lexer.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/asm/lexer.c b/asm/lexer.c
index 6358e95..7d1ad8c 100644
--- a/asm/lexer.c
+++ b/asm/lexer.c
@@ -130,6 +130,15 @@ const char *lerr_as_cstr(lerr_t lerr)
return "";
}
+token_t token_copy(token_t t)
+{
+ token_t new = t;
+ new.str = malloc(t.str_size + 1);
+ memcpy(new.str, t.str, t.str_size);
+ new.str[t.str_size] = '\0';
+ return new;
+}
+
size_t space_left(buffer_t *buffer)
{
if (buffer->available == buffer->used)