HunLang README

A következő dokumentáció bemutatja a HunLang nyelv legtöbb funkcióját és szintaxisát.

Változók és hozzárendelés

A HunLang-ban a változók deklarálása és értékek hozzárendelése a következő módon történik:

RENDEL SZÁM szam_var EGYENLŐ 42 VÉGE
RENDEL SZÖVEG szoveg_var EGYENLŐ "Hello, World!" VÉGE
RENDEL LOGIKAI igaz_var EGYENLŐ LIGAZ VÉGE
RENDEL LOGIKAI hamis_var EGYENLŐ LHAMIS VÉGE
    

Listák

Listák deklarálása és értékek hozzárendelése:

RENDEL LISTA<SZÖVEG> nevek_var EGYENLŐ ["Józsi", "Pisti", "Csaba", "Milan", "Bence"] VÉGE
    

Értékpárok (Szótárak)

Értékpárok deklarálása és értékek hozzárendelése:

RENDEL ÉRTÉKPÁR<SZÖVEG, SZÁM> felsorolás EGYENLŐ {
    "first" : 1,
    "second" : 2,
    "third" : 3,
    "fourth" : 4,
    "fifth" : 5
} VÉGE
    

Matematikai műveletek

Matematikai műveletek végrehajtása:

RENDEL SZÁM osszeg EGYENLŐ 10 MEG 5 VÉGE
RENDEL SZÁM kulonbseg EGYENLŐ 10 KIVON 5 VÉGE
RENDEL SZÁM szorzat EGYENLŐ 10 SZOR 5 VÉGE
RENDEL SZÁM hanyados EGYENLŐ 10 OSZT 5 VÉGE
    

Feltételes elágazások (If statements)

Feltételes elágazások használata:

HA (igaz_var UGYANAZ LIGAZ) AKKOR {
    MEGHÍV KIÍR("igaz_var is true") VÉGE
} VÉGE

HA (szam_var KISEBB 50) AKKOR {
    MEGHÍV KIÍR("szam_var is less than 50") VÉGE
} VÉGE

HA (szam_var NAGYOBB 50) AKKOR {
    MEGHÍV KIÍR("szam_var is greater than 50") VÉGE
} KÜLÖNBEN {
    MEGHÍV KIÍR("szam_var is not greater than 50") VÉGE
} VÉGE

HA (szam_var NEM UGYANAZ 42) AKKOR {
    MEGHÍV KIÍR("szam_var is not 42") VÉGE
} VÉGE
    

Ciklusok

For Loop

For ciklus használata:

CIKLUS(SZÁM i EGYENLŐ 0 VÉGE i KISEBB nevek_hossza VÉGE MEGHÍV NÖVEL(i, 1)) {
    MEGHÍV KIÍR(nevek_var[i]) VÉGE
} VÉGE
    

While Loop

While ciklus használata:

RENDEL SZÁM j EGYENLŐ 0 VÉGE
AMÍG (j KISEBB 5) {
    MEGHÍV KIÍR(j) VÉGE
    RENDEL SZÁM j EGYENLŐ MEGHÍV NÖVEL(j, 1) VÉGE
} VÉGE
    

Do-While Loop

Do-While ciklus használata:

RENDEL SZÁM k EGYENLŐ 0 VÉGE
UTÁNA {
    MEGHÍV KIÍR(k) VÉGE
    RENDEL SZÁM k EGYENLŐ MEGHÍV NÖVEL(k, 1) VÉGE
} AMÍG (k KISEBB 5) VÉGE
    

Foreach Loop

Foreach ciklus használata listákban és értékpárokban:

MINDEGYIKEN(ciklus_változó BENNE nevek_var) {
    MEGHÍV KIÍR(ciklus_változó) VÉGE
} VÉGE

MINDEGYIKEN(érték_pár BENNE felsorolás) {
    MEGHÍV KIÍR(érték_pár) VÉGE
} VÉGE
    

Függvények

Függvények deklarálása és meghívása:

UTASÍTÁSOK osszead(SZÁM a, SZÁM b) VISSZATÉR SZÁM {
    VISSZAAD a MEG b VÉGE
} VÉGE

RENDEL SZÁM eredmeny EGYENLŐ MEGHÍV osszead(10, 20) VÉGE
MEGHÍV KIÍR(eredmeny) VÉGE

UTASÍTÁSOK irjKiUzenetet(SZÖVEG uzenet) VISSZATÉR SEMMI {
    MEGHÍV KIÍR(uzenet) VÉGE
} VÉGE

MEGHÍV irjKiUzenetet("Hello from function!") VÉGE

UTASÍTÁSOK irjukKiEgyásUtánANeveket(LISTA<SZÖVEG> nevek) VISSZATÉR SEMMI {
    MEGHÍV KIÍR(nevek) VÉGE
    RENDEL SZÁM nevek_hossza EGYENLŐ MEGHÍV HOSSZ(nevek) VÉGE
    CIKLUS(SZÁM i EGYENLŐ 0 VÉGE i KISEBB nevek_hossza VÉGE MEGHÍV NÖVEL(i, 1)) {
        MEGHÍV KIÍR(nevek[i]) VÉGE
    } VÉGE
    MINDEGYIKEN(ciklus_változó BENNE nevek) {
        MEGHÍV KIÍR(ciklus_változó) VÉGE
    } VÉGE
} VÉGE

MEGHÍV irjukKiEgyásUtánANeveket(nevek_var) VÉGE
    

Kommentek

Kommentek használata:

€ Ez egy komment
    

Futtatás

A HunLang szkriptek futtatása:

python main.py file.hun
    

Hibák

nested if-eket nem parse-ol rendesen

Project on git:

~SOON~