A modern programming language based on Moroccan Arabic (Darija) dialect, written in Arabic script with minimal Latin letters in keywords. The language is designed to be similar to modern C++ but simpler and more beginner-friendly.
# Darija Programming Language Compiler
A modern programming language based on Moroccan Arabic (Darija) dialect, written in Arabic script with minimal Latin letters in keywords. The language is designed to be similar to modern C++ but simpler and more beginner-friendly.
## Features
- **Arabic Script Syntax**: Keywords and identifiers in Arabic/Darija
- **Modern C++-like Features**: Classes, inheritance, functions, templates
- **Beginner-Friendly**: Simplified syntax and clear error messages
- **Type Safety**: Static typing with type inference
- **Memory Management**: Automatic memory management with optional manual control
- **Standard Library**: Rich standard library for common tasks
## Language Keywords
### Control Flow
| Arabic | Meaning | Equivalent |
|--------|---------|------------|
| إلا | if | if |
| إلا إذا | else if | else if |
| غير | else | else |
| عاود | for | for |
| لكل | each | (for-each) |
| في | in | in |
| ما دام | while | while |
| دير | do | do |
### Declarations
| Arabic | Meaning | Equivalent |
|--------|---------|------------|
| اعرف | declare | var/let |
| ثابت | constant | const |
| دالة | function | function |
| صنف | class | class |
| الرئيسية | main | main |
| استورد | import | import |
| من مكتبة | from library | from |
### Operators
| Arabic | Meaning | Equivalent |
|--------|---------|------------|
| صحيح | true | true |
| غلط | false | false |
| كاستثناء | as exception | as |
| يمدد | extends | extends |
### Statements
| Arabic | Meaning | Equivalent |
|--------|---------|------------|
| رجع | return | return |
| اطبع | print | print |
| جرب | try | try |
| شد | catch | catch |
| أخيراً | finally | finally |
## Project Structure
```
darija-compiler/
├── src/
│ ├── lexer/
│ │ ├── token.hpp # Token definitions
│ │ └── lexer.cpp # Lexer implementation
│ ├── parser/
│ │ ├── parser.hpp # Parser interface
│ │ └── parser.cpp # Parser implementation
│ ├── ast/
│ │ └── ast.hpp …