A Franco-Arabic to Python transpiler. Write code in franco egyptian, run it in Python.
Project description
JulieLang <3
Franco-Arabic → Python shitpost transpiler.
Write code in Franco-Egyptian-Arabic, run it as Python.
pip install julielang
Quick start
from julielang import julify
julify("""
e3mly_keda name betsawy "Julie" yaa
etb3(name) yaa
""")
# Julie
Or run a .julie file from the terminal:
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:
sa7andmynf34inside string literals are not replaced.
etb3("Julie is always sa7")printsJulie 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:
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file julielang-1.0.0.tar.gz.
File metadata
- Download URL: julielang-1.0.0.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c3d34b8a47f1634f6a893c18bf9d1211f94ad2f7424361ab26cc13a7bf04d7a
|
|
| MD5 |
9c7853a0460cc4cb942b4ea3fffdd79d
|
|
| BLAKE2b-256 |
1f7b7b366eda3d84f32af1cd9b924cac54f9926a0d1a5c1457b967ee10aa5453
|
File details
Details for the file julielang-1.0.0-py3-none-any.whl.
File metadata
- Download URL: julielang-1.0.0-py3-none-any.whl
- Upload date:
- Size: 6.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9ca471a6df1e7107b40c9eddce02f794b5b3066f041a25ca77915f3bf386fd5
|
|
| MD5 |
db6983f6db0f27331f45be4e6ec8edf1
|
|
| BLAKE2b-256 |
e2f4b396bf602f741f59c557c190e3aba4cce8a08ff521d8f233f9ea4be836a4
|