From 0ebbf3ca751e638a90cf886625992bb028f9b587 Mon Sep 17 00:00:00 2001 From: Aryadev Chavali Date: Sun, 14 Apr 2024 02:45:48 +0630 Subject: Start writing assembler in C++ Best language to use as it's already compatible with the headers I'm using and can pretty neatly enter the build system while also using the functions I've built for converting to and from bytecode! --- asm/lexer.h | 91 ------------------------------------------------------------- 1 file changed, 91 deletions(-) delete mode 100644 asm/lexer.h (limited to 'asm/lexer.h') diff --git a/asm/lexer.h b/asm/lexer.h deleted file mode 100644 index 734ffa1..0000000 --- a/asm/lexer.h +++ /dev/null @@ -1,91 +0,0 @@ -/* 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 - -typedef enum TokenType -{ - TOKEN_PP_CONST, // %const()... - TOKEN_PP_USE, // %use - TOKEN_PP_END, // %end - TOKEN_PP_REFERENCE, // $ - TOKEN_GLOBAL, - TOKEN_STAR, - TOKEN_LITERAL_NUMBER, - TOKEN_LITERAL_CHAR, - TOKEN_LITERAL_STRING, - TOKEN_NOOP, - TOKEN_HALT, - TOKEN_PUSH, - TOKEN_POP, - TOKEN_PUSH_REG, - TOKEN_MOV, - TOKEN_DUP, - TOKEN_MALLOC, - TOKEN_MALLOC_STACK, - TOKEN_MSET, - TOKEN_MSET_STACK, - TOKEN_MGET, - TOKEN_MGET_STACK, - TOKEN_MDELETE, - TOKEN_MSIZE, - TOKEN_NOT, - TOKEN_OR, - TOKEN_AND, - TOKEN_XOR, - TOKEN_EQ, - TOKEN_LT, - TOKEN_LTE, - TOKEN_GT, - TOKEN_GTE, - TOKEN_PLUS, - TOKEN_SUB, - TOKEN_MULT, - TOKEN_PRINT, - TOKEN_JUMP_ABS, - TOKEN_JUMP_STACK, - TOKEN_JUMP_IF, - TOKEN_CALL, - TOKEN_CALL_STACK, - TOKEN_RET, - TOKEN_SYMBOL, -} token_type_t; - -typedef struct -{ - token_type_t type; - size_t column, line; - char *str; - size_t str_size; -} token_t; - -token_t token_copy(token_t); - -typedef enum -{ - LERR_OK = 0, - LERR_INVALID_CHAR_LITERAL, - LERR_INVALID_PREPROCESSOR_DIRECTIVE, -} lerr_t; -const char *lerr_as_cstr(lerr_t); - -typedef darr_t buffer_t; -typedef darr_t token_stream_t; -#define TOKEN_STREAM_AT(STREAM_DATA, INDEX) (((token_t *)(STREAM_DATA))[INDEX]) - -const char *token_type_as_cstr(token_type_t type); -lerr_t tokenise_buffer(buffer_t *, token_stream_t *); - -#endif -- cgit v1.2.3-13-gbd6f