Skip to main content

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: 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:

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

julielang-1.0.0.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

julielang-1.0.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

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

Hashes for julielang-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3c3d34b8a47f1634f6a893c18bf9d1211f94ad2f7424361ab26cc13a7bf04d7a
MD5 9c7853a0460cc4cb942b4ea3fffdd79d
BLAKE2b-256 1f7b7b366eda3d84f32af1cd9b924cac54f9926a0d1a5c1457b967ee10aa5453

See more details on using hashes here.

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

Hashes for julielang-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b9ca471a6df1e7107b40c9eddce02f794b5b3066f041a25ca77915f3bf386fd5
MD5 db6983f6db0f27331f45be4e6ec8edf1
BLAKE2b-256 e2f4b396bf602f741f59c557c190e3aba4cce8a08ff521d8f233f9ea4be836a4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page