Ryzelang is an esoteric, Turing-complete, functional stack-based programming language modeled after the gameplay mechanics of the League of Legends champion, Ryze.
Programs are constructed by chaining "Combos" (primitives and macros/functions). The language uses a dual-stack architecture to separate data (Runes) from behavior (Scrolls).
- The Rune Stack: A LIFO stack for numerical data and math.
- The Scroll Stack: A separate stack for code blocks (quotations).
- The Scroll (Env): A global dictionary mapping Combo names (strictly
Q,W,E) to blocks. - Built-in Combos: Primitives like
QQ(Add),WWW(Sleep), andEE/EQ(Flux/Safe Unwrap).
ryzelang/
├── crates/
│ ├── ryzelang-core/ # The interpreter logic and dual-stack VM
│ ├── ryzelang-cli/ # The command-line interface
│ ├── ryzelang-ls/ # Language Server Protocol (LSP) implementation
│ └── tree-sitter-ryze/ # Rust bindings for the grammar
├── tree-sitter-ryze/ # The formal grammar source (JS/C)
├── vscode-ryzelang/ # VS Code extension (Highlighting + LSP Client)
└── examples/ # Sample .ryze scripts (Hello World, Countdown)
To install the Ryzelang interpreter (ryze) globally on your system:
cargo install --path crates/ryzelang-cliOnce installed, you can run Ryzelang scripts from anywhere:
ryze examples/hello_world.ryzecargo build --release./target/release/ryze examples/hello_world.ryzeUse the --debug flag to see the final state of both stacks:
./target/release/ryze --debug examples/countdown.ryzeSee the docs/ directory for detailed information:
- Getting Started Guide
- Spell Reference
- Architecture Overview
- Built-in Combos Reference
- Formal Grammar
- Language Server Protocol
- Testing Guide
Run the expectation-based test suite:
./bin/run_tests.sh- VS Code Extension: Syntax highlighting, completions, and hovers.
This project is licensed under the MIT License - see the LICENSE.MD file for details.