speedcat/todo_list.md
Slendi 95057fd359 Add support for enums in the parser
Signed-off-by: Slendi <slendi@socopon.com>
2024-04-29 16:42:28 +03:00

51 lines
2.3 KiB
Markdown

# TODO list (epic)
- [x] Create a TODO list
- [x] Custom Functions (not external)
- [x] Add support for function definitions in the type checker
- [x] Add support for function definitions in the LLVM emitter
- [ ] Structures
- [x] Add support for definitions in the type checker
- [x] Add support for definitions in the LLVM emitter
- [x] Add support for member accesses in the type checker
- [x] Add support for member accesses in the LLVM emitter
- [x] Add support for packed in the parser
- [x] Add support for packed in the LLVM emitter
- [x] Add support for nested member accesses
- [ ] Add support for nested structure initializers (LLVM)
- [ ] Add support for setting values in struct (uses second ret val)
- [ ] Enums
- [x] Add support for enums in the parser
- [ ] Add support for enums in the type checker
- [ ] Add support for enums in the LLVM emitter
- [ ] Add support for member accesses in the type checker
- [ ] Add support for member accesses in the LLVM emitter
- [ ] Unions
- [ ] Add support for unions in the parser
- [ ] Add support for unions in the type checker
- [ ] Add support for unions in the LLVM emitter
- [ ] Add support for member accesses in the type checker
- [ ] Add support for member accesses in the LLVM emitter
- [ ] Modules
- [ ] Add support for modules in the type checker
- [ ] Modify functions, structures, unions and enums to have names mangling
- [ ] Add support for modules in the LLVM emitter
- [ ] Modify functions, structures, unions and enums to have names mangling
- [ ] Typed Unions
- [ ] Add support for unions in the parser
- [ ] Add support for unions in the type checker
- [ ] Add support for unions in the LLVM emitter
- [ ] Add support for member accesses in the type checker
- [ ] Add support for member accesses in the LLVM emitter
- [ ] Create a self-sustained compiler/kernel
- [ ] Get a basic UEFI hello world working
- [ ] Create a kernel that can read the root partition
- [ ] Create a kernel that has some memory management and malloc
- [ ] Re-write the compiler frontend for the kernel
- [ ] Lexer
- [ ] Parser
- [ ] Type checker
- [ ] Re-write the backend
- [ ] Create an assembler for x86_64
- [ ] Create a custom backend