diff options
author | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-10-25 21:43:13 +0100 |
---|---|---|
committer | Aryadev Chavali <aryadev@aryadevchavali.com> | 2023-10-25 21:43:13 +0100 |
commit | 94abb9e3d43e7559befb0aa02894227ec02eab41 (patch) | |
tree | 56e17174850787fb7584e8817edf98ca7fcf29dd /asm/lexer.h | |
parent | dbbfac1236ad783ccace11058c972d9eb5ef7c6c (diff) | |
download | ovm-94abb9e3d43e7559befb0aa02894227ec02eab41.tar.gz ovm-94abb9e3d43e7559befb0aa02894227ec02eab41.tar.bz2 ovm-94abb9e3d43e7559befb0aa02894227ec02eab41.zip |
Separated lexer from main file in asm
Diffstat (limited to 'asm/lexer.h')
-rw-r--r-- | asm/lexer.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/asm/lexer.h b/asm/lexer.h new file mode 100644 index 0000000..01badf4 --- /dev/null +++ b/asm/lexer.h @@ -0,0 +1,39 @@ +/* Copyright (C) 2023 Aryadev Chavali + + * You may distribute and modify this code under the terms of the GPLv2 + * license. You should have received a copy of the GPLv2 license with + * this file. If not, please write to: aryadev@aryadevchavali.com. + + * Created: 2023-10-24 + * Author: Aryadev Chavali + * Description: Lexer for assembly language + */ + +#ifndef LEXER_H +#define LEXER_H + +#include <lib/darr.h> + +typedef enum TokenType +{ + TOKEN_LITERAL_BYTE, + TOKEN_LITERAL_CHAR, + TOKEN_LITERAL_HWORD, + TOKEN_LITERAL_WORD, + TOKEN_SYMBOL, +} token_type_t; + +typedef struct +{ + token_type_t type; + char *str; + size_t str_size; +} token_t; + +typedef darr_t buffer_t; + +const char *token_type_as_cstr(token_type_t type); + +token_t *tokenise_buffer(buffer_t *, size_t *); + +#endif |