Phoenix
Programming Language
Based on the book Crafting Interpreters and this repo
Features
- Dynamic typing
- Automatic memory management
- Garbage collection
- First-class functions
- Closures
- Lexical scoping
- Tail recursion
- Pattern matching
- Algebraic data types
- Inheritance
- API for native functions written in Rust
Examples
Can be found in the phoenix_examples
directory.
TODO
- [ ] Add more examples
- [ ] Add more tests
- [ ] Add more documentation
- [ ] Add more error handling
- [ ] Fix lists (not working: access of lists in classes eg:
c.l[0] = 1;
)
- [ ] Fix REPL
- [ ] Fix modules (not working: classes)
- [x] Implement
[+-*/]=
, i++
and i--
- [ ] Better "api" for native functions