Add TODO.md

This commit is contained in:
germax26 2024-11-21 10:13:12 +11:00
parent 4ab705df0c
commit e3e6c6a411
Signed by: germax26
SSH Key Fingerprint: SHA256:N3w+8798IMWBt7SYH8G1C0iJlIa2HIIcRCXwILT5FvM

23
TODO.md Normal file
View File

@ -0,0 +1,23 @@
# TODO
- [x] Remove Dictionaries
- [x] Make imports expect just a string, rather than an entire expression
- [x] Remove Union types
- [x] Fix token locations
- [x] Make Return just a regular statement
- [x] `StructType.{args=...}` syntax
- [x] `[:ElementType, elements...]` syntax
- [ ] Tuple element syntax `a.0, a.1`, instead of allowing arbitrary indices into the tuple. This will allow for easier typechecking for tuples
- [ ] Make Typechecking a step before anything is interpreted
- [ ] Implicit `[elements...]`/`.{args=...}`/`.Member(values...)` syntax
- [ ] Destructring of tuples and structs
- `(a, b) = some_tuple;`
- `.{age=a, name=b} = some_struct;`
- [ ] `let` keyword to do runtime destructuring for tuples, structs, lists
- `assert let (0, value) = some_tuple;`
- `assert let .{a=0, b=age} = some_struct;`
- `if let .Some(value) = result { ... }`
- `case [first, second | rest] { ... }`
- Here `let` is not used, but it does the same thing as `if let`, just in a match context
- [ ] Compile the program to bytecode and interpret the bytecode instead
- [ ] Compile the bytecode to assembly