Az Argus programozási nyelv

Lexikális elemek

Egy modul tokenek és szeparátorok szekvenciájából áll. A token nyomtatható ASCII karakterek (kódjuk a 040 oktális számtól a 176 oktális számig terjed) sorozatából áll, amelyek reprezentálják a foglalt szavakat, azonosítókat, literálokat, műveleti jeleket vagy írásjeleket. A szeparátor lehet üres karakter (szóköz, horizontális, ill. vertikális tabulátor, újsor, soremelés) vagy megjegyzés. Tokenek között tetszőleges számú szeparátor lehet.

Foglalt szavak

abort else leave signals
action elseif mutex stable
any end nil string
array enter node struct
atomic_array equates null tag
atomic_record except oneof tagcase
atomic_variant exit others tagtest
background false own tagwait
begin for pause terminate
bind foreach proc then
bool fork process topaction
break guardian proctype transmit
cand handler real true
char handlertype record type
cluster handles recover up
coenter has rep variant
continue if resignal when
cor image return where
creator in returns while
creatortype int seize with
cvt is self wtag
do iter sequence yield
down itertype signal yields

A kis és nagybetűk nem számítanak különbözőnek a foglalt szavakban. Például 'end', 'END', és 'eNd' ugyanazt a szót jelentik.

Azonosítók

Az azonosító betűk, számjegyek, és az aláhúzás jelek szekvenciája, amely betűvel vagy aláhúzás jellel kezdődhet, és nem lehet foglalt szó.

A szintakszisban két különböző nemterminális létezik az azonosítók jelölésére. A nemterminális idn-t akkor használjuk, ha a változónak érvényességi köre van, pl. változók, paraméterek, modul nevek, vagy konstans rövidítések. A nemterminális name-t akkor használjuk a szintakszisban, ha az azonosítónak nem lényeges a scope feltüntetése, pl. rekordok és struktúrák szelektorai, oneof és variant tagok, eljárás nevei.

Literálok

A literálok a beépített típusok elnevezésére szolgálnak. Ilyen típusok pl. null, bool, int, real, char, és a string.

Operátorok és elválasztó jelek

A következő karaktersorozatok használhatóak műveleti és elválasztó jelként.

([.~*<~<=
)]$**||<=~<=~=
{,:=//+>=~>=&
},@/->~>|

Megjegyzések és egyéb szeparátorok

A megjegyzés olyan karaktersorozat, amely a százelék (%) jellel kezdődik, és sorvége jellel ér véget. Csak nyomtatható ASCII karaktereket tartalmazhat, beleértve a szóközöket és a tabulátorokat is.

z:=a[i]+ % megjegyzés a kifejezés közepében b[i]

A szeparátor lehet egy üres karakter (szóköz, vízszintes v. függőleges tabulátor, újsor, kocsi vissza, lapemelés ...) vagy lehet megjegyzés. Bármely két token között nulla vagy több szeparátor lehet, kivéve két egymás mellett levő magától-nem-termináló token (foglalt szavak, azonosítók, egész literálok, valós literálok) között legalább egy szeparátornak lennie kell. Ez a szabály feltétlen szükséges a kétértelműség elkerülése érdekében.