CSL-CROOK - Złożone instrukcje warunkowe
Służą one do przeprowadzania jednego lub wielu badań, a także wykonania operacji na zbiorach.
Instrukcja HEAD
Postać instrukcji:
- O HEAD Z1 e1 @ e2
Instrukcja powoduje umieszczenie obiektu <O> na początku zbioru Z1 pod warunkiem, że obiekt <O> nie należy do Z1. Jeżeli przed wykonaniem instrukcji obiekt <O> należy do Z1, to zbiór Z1 nie ulegnie zmianie. W przypadku dodania obiektu <O> do Z1 wykonywany jest skok e1, w przypadku przeciwnym nastąpi skok do instrukcji o etykiecie e2.
Instrukcja TAIL
Postać instrukcji:
- O TAIL Z1 e1 @ e2
Jeżeli obiekt <O> nie należy do Z1 to jest on dodawany do zbioru Z1 i umieszczony na końcu ciągu obiektów. W tym przypadku skok nastąpi do instrukcji o etykiecie e1. Jeżeli natomiast obiekt <O> należy do zbioru Z1, to zbiór Z1 pozostaje bez zmiany, a działanie przenosi się do instrukcji z etykietą e2.
Uwaga: Działania instrukcji HEAD i TAIL dotyczą zbiorów uporządkowanych.
Instrukcja FROM
Postać instrukcji:
- O FROM Z1 e1 @ e2
Jeżeli obiekt <O> należy do zbioru Z1, to po wykonaniu instrukcji obiekt ten zostanie usunięty ze zbioru Z1 i nastąpi skok do instrukcji o etykiecie e1. Natomiast jeżeli obiekt nie należy do Z1 przed wykonaniem instrukcji, to po wykonaniu Z1 nie ulegnie zmianie i następuje skok do etykiety e2.
Instrukcja TO
Postać instrukcji:
- O TO Z1
Obiekt <O> jest dodawany do zbioru Z1 niezależnie od tego, czy był wcześniej elementem Z1 i zajmuje ostatnią pozycję w zbiorze Z1. Jeżeli zbiór Z1 jest zbiorem boolowskim to efektem instrukcji TO jest wykonanie jednej instrukcji HEAD, TAIL lub INTO.
Źródło: Translator języka CSL-CROOK dla minikomputera MERA-400 w systemie operacyjnym CROOK-4, Instrukcja Programisty (wersja-17/2), Janusz Gocałek, Jacek Klauziński, Poznań, 1985