Hermes programozási nyelv

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

Vezérlési szerkezetek

Blokk

 ::=block   [konstansok]   [deklarációk]   begin   [törzs;]....   [kezelő]...   end block

konstansok:

 ::=constant (alap-változó [, alap-változó] ...])

deklarációk:

  ::=declare [ deklarációk;]

A blokk új hatáskört vezet be. Ezen belül új változók deklarálására, létező változók konstansra állítására és kivételkezelők elhelyezésére van lehetőség.

Minden kezelőt megelőz annak a kilépésnek vagy kivételnek a neve amit kezelni képes. Az others kulcsszó kiírásával határozhatjuk meg az explicite nem kezelt kivételekkor végrehajtani kívánt utasításokat. Megszorítás: Egy blokkon belül nem lehet két azonos kivételt kezelő ág. A törzsben bekövetkező kivétel esetén a neki megfelelő kivétel kezelői ágra adódik a vezérlés ugyanezen blokkban. Egymásbaágyazott blokkok esetén mindig a legbelsőbb kivételkezelő rész a felelős. Abban az esetben, ha minden utasítás kivétel fellépése nélkül végrehajtódott akkor normális kilépés következik be. Egy blokkon belüli kifejezések bármelyike normális kilépést produkál akkor ugyanezt mondjuk a blokkra is.

Folyamatok törzse is egy blokk, bár a block, end block szavakat nem írjuk ki.

Elágazás  

::= if teszt-kifejezés  then [ utasítások;] ...  [ else [ utasítások;] ... ]  end if

Működése megegyezik a többi nyelvben megszokott működéssel, azaz a tesztkifejezés kiértékelése logikai értéket eredményez amely meghatározza, hogy melyik ág lefutása kell, hogy következzék.

While
 

::= while teszt-kifejezés repeat
 [ utasítások;] ...
 end while

Működése megegyezik a többi nyelvben megszokott működéssel, azaz a tesztkifejezés ciklikus kiértékelése logikai értéket eredményez amely meghatározza, hogy a ciklusmag lefusson-e vagy sem.

Select

 ::= select [select-kifejezés]  [ select-rész] ...
 otherwise-rész
 end select

select-rész

 ::= logikai-őr [utasítások;] ...
 ::= esemény-őr[utasítások;] ...
 ::= esemény-őr and logikai-őr [utasítások;] ...

esemény-őr

 ::= event inport-változó

logikai-őr

 ::= where ( teszt-kifejezés)

otherwise-rész

 ::= otherwise [utasítások;] ...

select-kifejezés

 ::= kifejezés

A select utasítás egy opcionális kifejezésből, select részek halmazából és egy otherwise részből áll. A select rész őrfeltételből és egy további részből áll. Az őrfeltétel lehet