A Setl programozási nyelv

Lexikális elemek

Setlben a megjegyzések $ jelel kezdõdnek és a sor végéig tartanak.

Karakterkészlet

SETL programok a standard SETL karakterkészletet elemeiből épülnek fel. Ezek az alábbiakat tartalmazzák:

Ezek közül a { helyettesíthető <<-el is, illetve a } >>-al, a [ (/-el, a ] /)-el, illetve a | ST-vel, mert ezek azok a karakterek, amik gyakran hiányoznak a különféle gépeknél.

Ha a kis és nagy betűk is elérhetőek, akkor ezek közül a kis betűk engedélyezettek, illetve nem különbözteti meg a kis és nagybetűket a fordító. Ezalól csak a string konstansok és a bemeneti adatok jelentenek kivételt, mert ekkor a teljes karakterkészlet elérhető (ami esetleg rontja a program hordozhatóságát).

Fenntartott szavak

AND, ARB, CASE, CONST, CONTINUE, DIV, DO, DOING, DOMAIN, ELSE, ELSEIF, END, EXISTS, FALSE, FOR, FORALL, FROM, FROMB, FROME, GOTO, IF, IN, INIT, INCS, LESS, LESSF, LOOP, MOD, NOT, NOTEXISTS, NOTIN, OF, OR, PROCEDURE, PROGRAM, QUIT, RANGE, RETURN, RD, RW, STEP, STOP, SUBSET, TERM, TRUE, UNTIL, VAR, WHILE, WITH, WR

A reprezentációs alnyelv fenntartott szavai: ATOM, BASE, BOOLEAN, ELMT, GENERAL, INTEGER, LOCAL, MMAP, MODE, PLEX, REAL, REMOTE, REPR, SET, SMAP, SPARSE, STRING, TUPLE, UNITYPED

Literálok

Azonosítók

Betűk, számok és egy speciális megszakítójel (általában az aláhúzásjel) tetszőlegesen hosszú szekvenciája, de betűvel kell, hogy kezdődjön és nem szakíthatja meg sorvége jel. A fenntartott szavak és operátornevek nem használhatóak azonosítóként. A kis és nagy betűket nem különbözteti meg a nyelv.

Egészek

Az egészek tetszőleges hosszúságúak lehetnek, de egy sorban el kell, hogy férjenek. Csak decimális alakban adhatóak meg. A + és - jelek nem részei az egész literálnak, hanem operátorok. A bevezető nullák nem tárolódnak el, vagyis a 0013 értéke megegyezik a 13 értékével.

Valós literálok

A valós literálok egy opcionális egész részből (ami számjegyek sorozata), és egy pont után jövő, kötelezően nem nulla hosszúságú számjegysorozatból állnak (tört rész). Ezután következhet az exponens megadása egy E betűvel (kis és nagybetű is elfogadható), majd opcionális + vagy -, és egy újabb, kötelezően nem nulla hosszúságú számjegysorozat. A valós literálban nem szerepelhet szóköz, és az egész számnak bele kell férnie egy sorba (vagyis nem lehet megtörni). Például:

3.141592653589793 0.0 .0 $ a 0. helytelen! .01e+10 .01e-10 1.0E0 1.0E+10 $ az 1.E10 es az 1E10 helytelen

Karakterláncok

Tetszőleges (akár nulla) számú karakter sorozata, melyeket mindkét oldalról ' (idézőjel) határol. A számítógép által kezelt összes karakter használható, de ez esetleg ronthatja a hordozhatóságát a kódnak, ezért - ha fenn áll a lehetősége, hogy más gépen is használni akarjuk a programunkat - érdemes lehet csak a standard SETL karakterkészletet használni, ami valójában az a halmaza a karaktereknek, amik minden gépen megtalálhatóak.

Sorvége jelet, és más vezérlő karaktereket nem lehet egy stringen belül megadni.

A ' jelet kettőzve lehet megadni: 'Don''t tread on the grass'. Az üres stringet a '' jelöli.

Ha a karakterlánc nem fér el egy sorban, akkor a sor vége jel előtt meg kell adni egy idézőjelet, és a következő sor elején egy újabb idézőjel után lehet a karakterláncot folytatni. Ekkor természetesen az idézőjel-sorvége jel-idézőjel hármas nem fog a stringben szerepelni.

Logikai értékek

A két lehetséges értéket a TRUE és a FALSE jelöli.

Egyéb lexikális elemek

Az om szimbólium jelöli a nem definiált értéket. Ez csak értékadás jobb oldalán, illetve az = és a /= logikai operátorok operandusaként állhat (ha azt vizsgáljuk, hogy definiálatlan-e egy változó értéke).