A GAP programozási nyelv

Lexikális elemek

Megengedett karakterek

A nyelv érzékeny a kis- és nagybetű különbségre.

Whitespace, megjegyzés

Whitespace

A megszokott módon használjuk őket. Funkciójuk: kifejezések elhatárolása, tördelés. Kettő, vagy több ilyen karakter ugyanúgy viselkedik, mint egy. (Természetesen karakterlancok belsejében ez nem így van.)

Megjegyzés

A kettőskereszt (#) karaktertől a sor végéig tart. A sorvége jelet is beleértve egyenértékű egy darab whitespace karakterrel.

if i < 0 then # if i is negative a := -i; # take its additive inverse else # otherwise a := i; # take itself

Elválasztó- és operátorjelek

+ Összeadás operátor.
- Kivonás operátor.
* Szorzás operátor.
/ Osztás operátor.
^ Egészszámok hatványozása.
~ Önmagára való hivatkozás.
!.
= Egyenlő.
<> Nem egyenlő operátor.
< Kisebb operátor.
<= Kisebb egyenlő ooperátor.
> Nagyobb operátor.
>= Nagyobb egyenlő operátor.
![
:= "Legyen egyenlő", értékadó operátor.
.
.. Intervallumok megadása: [1..10].
-> Függvények megadása: hozzárendelés. Például x->x^3
, Felsorolás elválasztás.
; Utasítás lezáró. Dupla pontosvesszővel, nem fogja kiírni az utasítást.
!{
[ Listák megadására szolgál.
] Listák megadására szolgál.
{ Részmátrixok megadása.
} Részmátrixok megadása.
( Nyitózárójel, használható a kifejezések zárójelezéséhez.
) Csukózárójel, használható a kifejezések zárójelezéséhez.
:

Kulcsszavak

Kulcsszavak nem hasznalhatóak azonositónak.

and Logikai operátor: és
do A while és a for ciklusok kulcsszava, tulajdonképpen a ciklusmagot vezeti be.
elif Az if (expr) then statements1 fi segítségével tudunk feltételes végrehetást elérni. Ezen belül lehetőségünk van megadni adhatunk meg egyéb ágakat is.
else Az if (expr) then statements1 fi segítségével tudunk feltételes végrehetást elérni. Megadhatjuk a komplenter feltételhez tartozó ágat.
end Lezáró kulcsszó, jelzi a fordító számára egy egység végét. A function kulcsszóval megadott függvényt zárjuk le vele.
fi Az if (expr) then statements1 fi segítségével tudunk feltételes végrehetást elérni.
for Az egyik fajta ciklus kulcsszava.
function Ez egy speciális kulcsszó, függvények megadásánál használjuk.
if Az if (expr) then statements1 fi segítségével tudunk feltételes végrehetást elérni.
in Objecktumok (collection-ök) esetén a tartalmazást dönthetjük el vele (tagsági, tartalmazási teszt).
local A function kulcsszóval megadott függvényel belül, lokális változót definiálhatunk.
mod A modulo aritmetikai kifejezés kulcsszava.
not Logikai operátor: tagadás.
od A while és a for ciklusok kulcsszava, tulajdonképpen a ciklusmagot zárja le.
or Logikai operátor: vagy
repeat Ciklus kulcsszó. Ismételt végrehajtást érhetünk el.
return Visszatérérsi értéket adhatjuk meg.
then Az if (expr) then statements1 fi segítségével tudunk feltételes végrehetást elérni.
until A repeat ciklus típus kulcsszava. Ennek a asegítségével adhatjuk meg a kilépési feltételt.
while Ciklus kulcsszó.
quit Normál kilépés a GAP-ből.
QUIT Vész kilépés a GAP-ből.
break A ciklus futásást szakítja meg.
rec Segítségével adhatunk meg rekordokat.
continue Az aktuális ciklus lépés, nem fejeződik be, hanem a következő lépésre ugrunk.

Azonosítók

Az azonositók számokból, betűkből és aláhúzásból állnak. Legalabb egy betűt vagy aláhúzást kell tartalmazniuk.

a foo aLongIdentifier hello Hello HELLO x100 100x _100 some_people_prefer_underscores_to_separate_words WePreferMixedCaseToSeparateWordse

Ha más karaktereket is szeretnénk használni, azokat \ után írjuk. Ez ekvivalens magával a karakterrel, kivéve, ha van ilyen escape szekvencia. Például:

G\(2\,5\). #Ez nem fuggvenyhívas.

Visszaper-rel nem kezdődik kulcsszó, így pl. a \* vagy a \if is azonositó, nem kulcsszó.

Hosszuk tetszőleges, viszont csak az első 1023 karakter szamít. A \newline escape szekvenciát figyelmen kivül hagyja tamogatandó a nagyon hosszú azonositókat is.

A IsValidIdentifier( str ) F függvény annak eldöntésére szolgál, hogy az str karakterlánc érvényes azonositó-e.