- Split into three projects: Library, Console, and Tests - Library compiles as QRScript.Interpreter to avoid conflicts
75 lines
2.5 KiB
Markdown
75 lines
2.5 KiB
Markdown
# 💾 QR Script
|
||
|
||
QR Script is a human-readable esoteric programming language that is designed to fit into a 57x57 QR code (~1,187 characters). With the initial interpreter scaffold together using GPT, it is written C# with the interpreter based on Dynamic Expresso.
|
||
|
||
## 🎛️ Features
|
||
|
||
- [x] Parser
|
||
- [x] CLI tool
|
||
- [x] Compiler
|
||
- [x] QR Code
|
||
- [x] Base64
|
||
|
||
## 🧾 Program Structure
|
||
|
||
Each line is a command.
|
||
|
||
```plaintext
|
||
verb subject object [modifier]
|
||
```
|
||
|
||
### ⌨️ Commands
|
||
|
||
| Verb | Function | Example |
|
||
| ------ | ------------------- | --------------------- |
|
||
| `say` | print to stdout | `say hello world` |
|
||
| `set` | assign value | `set x 42` |
|
||
| `add` | arithmetic add | `add x 1` |
|
||
| `sub` | arithmetic subtract | `sub x 3` |
|
||
| `mul` | multiply | `mul x 2` |
|
||
| `div` | divide | `div x 10` |
|
||
| `if` | conditional | `if x > 10 goto @end` |
|
||
| `goto` | jump to label | `goto @start` |
|
||
| `def` | define function | `def square x` |
|
||
| `ret` | return from func | `ret` |
|
||
| `call` | call function | `call square 3` |
|
||
| `inp` | input from user | `inp name` |
|
||
| `cmp` | compare values | `cmp x y` |
|
||
| `mod` | modulo | `mod x 5` |
|
||
| `end` | stop execution | `end` |
|
||
|
||
## 🧩 Tech Stack
|
||
|
||
- .NET 8.0
|
||
- Dynamic Expresso for interpreter
|
||
- CILx for command line
|
||
- QRCoder for renderer
|
||
|
||
## 🗓️ Update Cycle
|
||
|
||
| Type | Frequency | Notes |
|
||
| ------------ | ---------------- | ---------------------------------------- |
|
||
| Minor Update | Every 3–6 months | Small enhancements, non-breaking changes |
|
||
| Patch Update | As needed | Bug fixes, security updates |
|
||
| Major Update | As needed | Framework upgrades, major refactors |
|
||
|
||
- Reserve months: June (Mid-Year Chill) & December (End-Year Freeze)
|
||
|
||
## 🛡️ Status
|
||
|
||
- [x] Active Support
|
||
- [ ] Limited Support (Security patches only)
|
||
- [ ] Maintenance Mode (Dependency-only updates)
|
||
- [ ] Archived (No active work planned)
|
||
|
||
## 🎮 Relaxation Practices
|
||
|
||
- 20% creative/recovery space built into development
|
||
- Mandatory cooldowns after major launches (minimum 1 week)
|
||
- Crisis Mode Activates if:
|
||
- Critical vulnerabilities
|
||
- Framework-breaking issues
|
||
|
||
## 🗒️ License
|
||
|
||
I license this project under the GPL v3 license - see [LICENSE](LICENSE) for details.
|