A Whitespace programozási nyelv

Utasítások, vezérlési szerkezetek

Ebben a szekcióban a jobb olvashatóság kedvéért a T fogja jelenteni a Tab karaktert, az S a space karaktert, és az E a sortörés karaktert. Mivel a nyelv verem alapú, ezért az utasítások csoportosítása kissé eltér a megszokottól. Az utasításcsoportok:

Veremkezelő utasítások

A veremkezelő utasítások S sorozattal kezdődnek.

UtasításMnemonicParaméterekLeírás
SpushElőjeles egészElhelyezi a paraméterben kapott számot a verem tetején.
ESdup-A verem tetején levő értéket beszúrja a verem tetejére (lemásolja azt).
TS-Előjel nélküli egészA verem n. elemét a verem tetejére másolja. (SES = STSE)
ETswap-A verem tetején lévő 2 elemet felcseréli.
EEdiscard-A verem tetején lévő elemet törli a veremről.
TE-Előjel nélküli egészA verem tetején levő elemet meghagyja, és az alatta levő n db. elemet törli.

Aritmetikai utasítások

Az aritmetikai utasítások TS sorozattal kezdődnek. Az aritmetikai műveletek a verem tetején lévő 2 elemen hajtódnak végre (a tetején lévő a jobboldali argumentum), és ez a 2 elem kicserélődik az eredményre. Tehát pl. [12, 13] verem esetén az add eredménye: [25] verem lesz.

UtasításMnemonicLeírás
SSaddÖsszeadás.
STsubKivonás.
SEmulSzorzás.
TSdivEgész osztás.
TTmodMaradékképzés.

Heap elérése

A Heap kezelő utasítások TT sorozattal kezdődnek. Paraméterük nincs.

UtasításMnemonicLeírás
SstoreA verem tetején lévő elemet eltárolja az alatta lévő elem által meghatározott indexre a Heapen.
TretrieveA verem tetején lévő elemet kicseréli az általa mutatott indexű elemre a Heapről.

Vezérlő utasítások

A vezérlő utasítások E sorozattal kezdődnek.

UtasításMnemonicParaméterekLeírás
SSlabelElőjel nélküli egészCimke elhelyezése. A cimkének a programban egyedinek kell lennie.
STcallElőjel nélküli egészA paraméter cimkére ugrás, aktuális hely eltárolásával, hogy ETE(ret) utasítással vissza lehessen térni.
SEjumpElőjel nélküli egészA paraméter cimkére ugrás.
TSjzElőjel nélküli egészA verem tetején lévő elem eltávolítása. Amennyiben ez 0 volt, ugrás a paraméterben kapott cimkére.
TTjnElőjel nélküli egészA verem tetején lévő elem eltávolítása. Amennyiben ez negatív volt, ugrás a paraméterben kapott cimkére.
TEret-Visszatérés call után.
EEexit-Kilépés a programból.

I/O utasítások

Az I/O utasítások TE sorozattal kezdődnek, paraméterük nincs.

UtasításMnemonicLeírás
SSoutcharKiírja a verem tetején lévő elemet mint karakter (ASCII kód), és eltávolítja azt a veremről.
SToutnumKiírja a verem tetején lévő elemet mint szám, és eltávolítja azt a veremről.
TSreadcharBeolvas egy karaktert, és eltárolja a verem tetejére, mint számot.
TTreadnumBeolvas egy számot, és eltárolja a verem tetejére.