LFI3A is a beginner-friendly programming language that blends programming concepts with Moroccan Arabic (Darija) vocabulary. Created by Oussama Jabrane as a personal project to break free from the "computer fixer" stereotype.
# LFI3A Programming Language Documentation
LFI3A (pronounced "lfi-3a") is a beginner-friendly programming language that blends programming concepts with Moroccan Arabic (Darija) vocabulary. Created by Oussama Jabrane as a personal project to break free from the "computer fixer" stereotype, LFI3A offers a unique and culturally-inspired approach to learning programming.
## 📋 Table of Contents
- Quick Start
- Language Basics
- Data Types & Variables
- Control Flow
- Loops
- Functions
- Project Structure
- Examples
- Limitations
- Why LFI3A?
- Contributing
- License
## 🚀 Quick Start
### Installation
1. Clone the repository (if applicable)
```bash
git clone
github.com
cd lfi3a
```
2. Compile the interpreter:
```bash
g++ -std=c++17 src/*.cpp -o lfi3a
```
### Your First Program
Create a file called `hello.lfi3a`:
```lfi3a
// My first LFI3A program
dir ism = "Oussama"
dir age = 25
kteb("Salam", ism, "!")
kteb("3ndek", age, "years")
```
Run it:
```bash
./lfi3a hello.lfi3a
```
Output:
```
Salam Oussama !
3ndek 25 years
```
## 📖 Language Basics
### Syntax Overview
LFI3A is dynamically typed (no need to specify variable types) and uses Darija-inspired keywords. Semicolons are optional.
### Comments
```lfi3a
// This is a single-line comment
dir x = 5 // Comments can follow code
```
## 🏷️ Data Types & Variables
### Variable Declaration
Use `dir` ("give/put" in Darija) to create variables:
```lfi3a
dir number = 42 // Integer
dir decimal = 3.14 // Float
dir name = "LFI3A" // String
dir is_true = s7i7 // Boolean true
dir is_false = ghalat // Boolean false
```
### Strings
Strings can be concatenated with `+`:
```lfi3a
dir greeting = "Salam" + " " + "Oussama"
kteb(greeting) // Output: Salam Oussama
```
### Boolean Values
- `s7i7` = true (literally "correct")
- `ghalat` = false (literally " …