Conlang/libconlang
John 5eb6411d53 interpreter: BuiltIn overhaul!
- Allowed builtins to self-describe
- Broke builtins into their own module
  - Created a macro to work with BuiltIns easier
  - Uses macro 2.0 syntax, so it requires passing in ALL externally referenced identifiers
    - Luckily, this is already a requirement of good, readable macro definitions!
- As a temporary hack, turn overloadable operators into function calls
  - This is kind of pointless at the moment, since there can only be one definition of a function per name (no ADL/function overloading/traits/type namespaces yet!)
  - This is also pretty slow, but benchmarking shows it's not as slow as I thought (~400x slower in release mode than a native Rust implementation when running `fib.cl`/`fib.rs`. Totally unacceptable for most work, but this is a tree walk interpreter.)
  - TODO: Remove this when desugaring from operators to function calls is implemented
2024-02-29 16:48:09 -06:00
..
examples interpreter: BuiltIn overhaul! 2024-02-29 16:48:09 -06:00
src interpreter: BuiltIn overhaul! 2024-02-29 16:48:09 -06:00
.gitignore Initial Commit 2023-09-21 15:41:12 -05:00
Cargo.toml Cargos.toml: wrong key ("publish") 2023-10-23 23:42:39 -05:00