37 lines
1.4 KiB
Plaintext
37 lines
1.4 KiB
Plaintext
# 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.
|
|
- If condition.
|
|
- Introduce program node which contains global state and functions.
|
|
- 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.
|
|
- Save static symbols during the code generation, don't hardcode them in the
|
|
object generator.
|
|
|
|
# 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.
|