Icon

Lexikális elemek

A nyelv felépítése nagyjából úgy néz ki, mint egy C vagy Pascal program. Egy parancssor lezárására a pontosvesszõ (;) használható vagy az új sor, de mindkettõ is használható egyszerre.

Szövegkonstansokat idézõjelek közé kell zárni (pl. "Hello World!") s mind a 256 ASCII karakter elõfordulhat benne. Az üresstring pedig értelemszerűen a "". A string hossza tetszõleges lehet (amekkora belefér a memóriába).

Az azonosítóknak betűvel (angol nagy- és kisbetűk) vagy aláhúzással kell kezdõdniük, utána betű, számjegy vagy aláhúzás állhat. Formálisan felírva:
letter | _ { letter | _ | digit }

A kis és nagybetűket a fordító megkülönbözteti! Az azonosítók hosszúsága tetszõleges lehet.

A változókat nem kell külön deklarálni, hivatkozáskor egy lokális változó jön létre az alprogramon belül aminek élettartama az alprogramra korlátozódik. Opciónálisan azonban megadhatjuk a változó hatáskörét (local, static, global).

Kommenteket a kettõskereszttel (#) szúrhatunk be a programunkba: a fordító a # utáni részt figyelmen kívül hagyja. Ha többsoros kommentet szeretnénk, akkor minden sor elejére ki kell tennünk a kettõskeresztet.

Példaprogram:

# # Ez egy Hello World! # program Iconban # procedure main() Hello_World_szoveg := "Hello World!" # itt létrejön egy lokális változó write( Hello_World_szoveg ) # kiirjuk a tartalmát a képernyõre end

A nyelv fenntartott szavai a következõk (ezek nem használhatóak azonosítóként):

break do global next repeat to by else if not return until case end initial of static while create every link procedure suspend default fail local record then

Vannak továbbá elõre definiált kulcsszavak, ezek az & szimbólummal kezdõdnek. Néhány ezek közül a teljesség igénye nélkül:

&ascii ASCII karakterek karakterhalmaza &clock aktuális idõ &date aktuális dátum &digits számjegyek (0..9) karakterhalmaza &e természetes logaritmus alapszáma (2.71828...) &errout standard error output file &file a forráskód neve &input standard input file &lcase kisbetűk (a..z) karakterhalmaza &letters kis- és nagybetűk karakterhalmaza (a..z,A..Z) &output standard output file &ucase nagybetűk karakterhalmaza (A..Z) &version a fordító verziószáma

Az elhatároló jelek: space, tab, új sor.

Egy karakter:

+ - ~ = @ ^ % * ? ! / \ . < >

Karaktersorozat:

++ -- ** || ||| <= >= ~= << <<= == >>= >> ~== === ~=== := :=: <- <->

(továbbá minden operátorra működik az op:= művelet is)

Numerikus literálok: 0 .. 9 és A .. Z

Az egész számok megadhatóak radix formában is: (alap)r(szám). Az alap 2-36 között lehet. Például: 2r111 = 7, 36rCAT = 15941.
Valós számok tizedesponttal illetve exponenciális alakban is megadhatóak: 3.5, 27e2.