-
[-] Fix ident parsing - parse to whitespace and then check for validity. Currently, an invalid ident will cause a cryptic "expected EOS" error.
-
[-] Handle/allow
UPPERCASE_IDENTs. -
[+] Add
Alwayssingleton to enable pattern matching. -
Consider allowing
Mapentries to be accessed using dot notation. This would allowMaps to be used as lightweight "instances", similar to JS. -
Add docstrings
- Functions
- Other objects?
-
[-] Implement error handling (partially implemented)
-
[-] Replace unrecoverable errors with recoverable errors where appropriate
-
Implement basic types (
Float,Int,Str, etc) -
Implement format strings (AKA $ strings)
-
Implement
Tuple -
Implement
List -
Implement
Map -
Implement
Set -
Implement vars
-
Implement dot operator (attribute & item access)
-
Implement
block -
Implement inline blocks (
block -> <expr>) -
Implement labels
- Fix
label: <expr>syntax (this used to work but was broken recently)
- Fix
-
Implement
jump(jump forward to label)- Allow multiple
jumps to the same label in a given scope
- Allow multiple
-
Implement conditionals (can be used as ternary too)
-
Implement
match -
Implement range
-
Implement
loop- Implement while loops
- Implement for loops
- Fix
break(works for simple cases but is wonky) - Implement
continue
-
Implement function calls
- Verify implementation
- Implement
return
-
Implement closures
- Verify implementation
-
Implement native functions
- Implement
printfunction (printis currently implemented as a statement and has limited functionality)
- Implement
-
Implement
thisbinding for functions -
Check tuple items / args and throw error when invalid items are included (e.g.,
breakisn't allowed) -
Implement modules
- Add
Moduletype - Implement module loading
- Add
-
Implement
import-
import <name>- There's a basic version of this that works for builtin modules
-
import from <name>: <names>
-
-
Implement custom classes
-
Figure out a nice way to do multi-line lambdas
-
[-] Improve error handling/reporting (of unrecoverable errors)
- Make source location available in AST (started)
- Fix locations in format strings
- Make source locations available in VM
-
Add a lot more tests
-
[-] Profile
-
Benchmark