# Compiler - Whitespaces are checked twice, in the source class and by lexing. - Catch exceptions thrown by the argument parser and print them normally. - Parser should be able to collect errors. - Provide position information on parse tree nodes. - Move constants to the symbol table, so we can check at parse time for duplicates. - Don't pass raw pointers to the visitor methods. - While loop. - Comparision operators. - Procedures. - Calculate additional stack space needed for subexpressions in the allocator visitor and not in the backend. - Support immediates greater than 12 bits. - It seems instructions are correctly encoded only if the compiler is running on a little endian architecture. - Print filename in the error message. - Merge declaration and definition nodes. # 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.