# Compiler - Separate headers and sources for the compiler, shell and tests. - Make writing ELF independent from the code generation. - Argument parsing. - Whitespaces are checked twice, in the source class and by lexing. - Catch exceptions thrown by the argument parser and print them normally. - Division. - Expressions contain one or more terms. Currently it parses another expression on the right side. - Multiple factors. - Put riscv code into the backend namespace. - Rename riscv backend structs to be snake case. - Make reference and Target be nested types of the visitor. - Rename visitors to snake case. - The backend visitor seems to generate code before the prologue. # Shell - Persist the history. - Replace hard coded ANSI codes with constants or functions. ## Completion - Configure fzf to show only the current directory files - Support multiple selections for insertion in fzf. - Don't hardcode fzf binary path. - Send the word under the cursor to fzf as initial input. - Home directory expansion. - Show files in the PATH if starting at the beginning of the prompt ## Appearance - Add a bar with additional information under the prompt (edit_bar), like the hostname. - Show current time in the prompt.