Metadata-Version: 2.4
Name: julielang
Version: 1.0.0
Summary: A Franco-Arabic to Python transpiler. Write code in franco egyptian, run it in Python.
Author-email: Julie <csharpyounis@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/yourname/julielang
Project-URL: Issues, https://github.com/yourname/julielang/issues
Keywords: franco,arabic,arabezi,transpiler,esolang,egyptian
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Interpreters
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# JulieLang <3

**Franco-Arabic → Python shitpost transpiler.**  
Write code in Franco-Egyptian-Arabic, run it as Python.

```
pip install julielang
```

---

## Quick start

```python
from julielang import julify

julify("""
e3mly_keda name betsawy "Julie" yaa
etb3(name) yaa
""")
# Julie
```

Or run a `.julie` file from the terminal:

```bash
julielang myprogram.julie
```

---

## Syntax reference

Every statement ends with **`yaa`** (the line terminator).  
Blocks open with **`{`** and close with **`}`**. like in if or while or for which you will see later

### Variables

| JulieLang | Python |
|-----------|--------|
| `e3mly_keda x betsawy 5 yaa` | `x = 5` |

### Constants

| JulieLang | Value |
|-----------|-------|
| `JULIE_IS_THE_GOAT` | `True` |
| `FAH` | `"ana t3bt"` |

### Booleans

| JulieLang | Python |
|-----------|--------|
| `sa7` | `True` |
| `mynf34` | `False` |

> **Note:** `sa7` and `mynf34` inside string literals are not replaced.  
> `etb3("Julie is always sa7")` prints `Julie is always sa7`.

### Arithmetic

| JulieLang | Python |
|-----------|--------|
| `za2ed` | `+` |
| `na2es` | `-` |
| `edrb_yaa` | `*` |
| `3la` | `/` |
| `ba2y` | `%` |
| `i za2ed_za2ed` | `i += 1 or i++` |

### Comparisons

| JulieLang | Python |
|-----------|--------|
| `betsawy` | `==` |
| `a2l_men` | `<` |
| `aktr_men` | `>` |
| `a2l_men betsawy` | `<=` |
| `aktr_men betsawy` | `>=` |

### Conditionals

```
lw (x betsawy 5) {
    etb3("five") yaa
}
lw_8er_keda (x betsawy 3) {
    etb3("three") yaa
}
ma_5las_ba2a {
    etb3("other") yaa
}
```

Translates to:

```python
if x == 5:
    print("five")
elif x == 3:
    print("three")
else:
    print("other")
```

### Loops

**For loop:**
```
talama i gwa range(5) e3ml: {
    etb3(i) yaa
}
```

**While loop:**
```
tol_ma (x a2l_men 10) {
    x za2ed_za2ed yaa
}
```

(`tool_ma` is an accepted alternative spelling for `tol_ma`.)

### Loop control

| JulieLang | Python |
|-----------|--------|
| `fakes` | `break` |
| `hwa_kdeh` | `continue` |

### Functions

```
de_4o8lana_de greet(name) {
    etb3(name) yaa
}
greet("Julie") yaa
```

### Built-ins

| JulieLang | Python |
|-----------|--------|
| `etb3(x)` | `print(x)` |
| `eh_daa x` | `print(type(x))` retrieves type of the variable|

### Comments

```
// this is a comment
```

---

## Full example

```
julify("""

// --- Functions ---
// A function that scores a number out of 100
de_4o8lana_de score_it(n) {
    etb3(n edrb_yaa 10) yaa
}

// A function that checks if a number is odd using modulo
de_4o8lana_de is_odd(n) {
    lw (n ba2y 2 betsawy 1) {
        etb3(sa7) yaa
    }
    ma_5las_ba2a {
        etb3(mynf34) yaa
    }
}


// --- Constants & Types ---
etb3("=== Constants ===") yaa
etb3(JULIE_IS_THE_GOAT) yaa
etb3(FAH) yaa

e3mly_keda goat betsawy JULIE_IS_THE_GOAT yaa
eh_daa goat yaa


// --- Variables & Arithmetic ---
etb3("=== Arithmetic ===") yaa
e3mly_keda x betsawy 20 yaa
e3mly_keda y betsawy 3 yaa

etb3(x za2ed y) yaa
etb3(x na2es y) yaa
etb3(x edrb_yaa y) yaa
etb3(x 3la y) yaa
etb3(x ba2y y) yaa

x za2ed_za2ed yaa
etb3(x) yaa

eh_daa x yaa


// --- Comparisons ---
etb3("=== Comparisons ===") yaa
etb3(x betsawy 21) yaa
etb3(x a2l_men 100) yaa
etb3(x aktr_men 5) yaa
etb3(x a2l_men betsawy 21) yaa
etb3(x aktr_men betsawy 21) yaa


// --- if / elif / else ---
etb3("=== Conditionals ===") yaa
e3mly_keda grade betsawy 85 yaa

lw (grade aktr_men betsawy 90) {
    etb3("A — GOAT level") yaa
}
lw_8er_keda (grade aktr_men betsawy 75) {
    etb3("B — not bad ya Julie") yaa
}
ma_5las_ba2a {
    etb3("try harder") yaa
}


// --- for loop ---
etb3("=== For Loop ===") yaa
talama i gwa range(5) e3ml: {
    score_it(i) yaa
}


// --- while loop + break ---
etb3("=== While Loop + break ===") yaa
e3mly_keda counter betsawy 0 yaa
tol_ma (counter a2l_men 10) {
    lw (counter betsawy 4) {
        etb3("stop at 4, fakes!") yaa
        fakes yaa
    }
    etb3(counter) yaa
    counter za2ed_za2ed yaa
}


// --- Booleans safe inside strings ---
etb3("=== String Safety ===") yaa
etb3("sa7 and mynf34 stay as words here") yaa
e3mly_keda flag betsawy mynf34 yaa
lw (flag betsawy mynf34) {
    etb3("flag is mynf34 = False, as expected") yaa
}


// --- Calling is_odd ---
etb3("=== is_odd function ===") yaa
talama n gwa range(4) e3ml: {
    is_odd(n) yaa
}
""")
```

---


## License

MIT
