A university C++ project focused on building a custom programming language inspired by Moroccan Arabic (Darija).
# 🚀 Darija-Engine
> **A university C++ project focused on building a custom programming language inspired by Moroccan Arabic (Darija).**
Darija-Engine is an educational project where we design and implement a **mini interpreter** from scratch.
Instead of traditional English keywords, the language uses **Darija words**, making programming more culturally expressive while learning core compiler concepts.
---
## ✨ What is Darija?
**Darija** is a custom-made programming language that replaces common programming keywords with Moroccan Arabic equivalents. Darija (Moroccan Arabic) is the colloquial language spoken in Morocco, and this project brings it to the programming domain.
### 🔤 Example Keywords
| Darija Keyword | Meaning | English Equivalent |
| -------------- | ---------- | ------------------ |
| `ila` | `if` | `if` |
| `kteb` | `print` | `print/cout` |
| `wadifa` | `function` | `function/def` |
| `binma` | `while` | `while` |
| `khod` | `input` | `input/cin` |
This approach keeps the syntax simple while demonstrating how programming languages are designed internally The Darija-Engine project is part of a broader ecosystem of efforts to bring natural language processing and programming to the Moroccan dialect, complementing research in Darija language processing and preservation.
For the complete grammar specification, including all keywords, operators, and data types, refer to docs/GRAMMAR.md.
To learn Darija step-by-step, see the tutorial. For detailed examples, check docs/EXAMPLES.md.
---
## 🎯 Project Objectives
The main goal is to **understand how compilers and interpreters work** by implementing each stage manually]. This educational approach aligns with best practices for language design and implementation.
### đź§ Compiler Pipeline
```mermaid
graph TD
A[Source Code] -->|Lexer| B(Tokens)
B -->|Parser| C(AST)
C -->|Interpreter| D[Output]
```
By the en …