Utasítások; Vezérlési szerkezetek
Utasítások
A szokásoktól eltérõen az INTERCAL nem utasítás-terminátort használ, hanem az utasítások kezdetét jelzi. Minden utasításnak a DO, a PLEASE vagy a PLEASE DO szavakkal kell kezdõdnie. Mind a három forma egyenértékû, esztétikai szempontból a legkedvezõbbet választhatjuk.
Értékadás
DO <változó> <- <kifejezés>
Vezérlési szerkezetek
Utasítások kihagyása
IGNORE / REMEMBER
Adott változóra vonatkozó értékadások tiltása/engedélyezése.
DO .1 <- #1
DO IGNORE .1
DO .1 <- #0
után .1 értéke 1 és nem 0
ABSTAIN FROM / REINSTATE
Adott címkéjû vagy adott típusú utasítások tiltása/engedélyezése.
DO ABSTAIN FROM (1)
letiltja az (1) címkéjû utasítást
DO REINSTATE CALCULATING + NEXTING
újra engedélyezi az értékadásokat és a NEXT utasításokat
A NOT módosítóval megváltoztathatjuk az alapértelmezett állapotot: a
DO NOT .1<-#1
utasítás nem hajtódik végre, amíg nincs egy rá vonatkozó REINSTATE. Egy értelmezhetetlen utasítás nem okoz problémát, amíg nem próbáljuk végrehajtani, amikor is futási idejû hibával leáll a program. Ezt kihasználva írhatunk megjegyzéseket, vagy szakíthatjuk félbe a programot tetszõleges hibaüzenettel.
Ugró utasítások
NEXT / FORGET / RESUME
A NEXT használható mind az alprogramhívásra, mind a feltétel nélküli ugrásra. Formája:
DO <címke> NEXT
A verembe menti az aktuális címet, majd a címkére ugrik. A
DO FORGET <N>
eldobja a verem felsõ N elemét, a
DO RESUME <N>
szintén kiszed
<N> elemet, és az
<N>-edik címre ugrik vissza. Az
<N> tetszõleges kifejezés lehet.
COME FROM
Az elsõ leírása R. L. Clarktól származik 1984-bõl [4]. Bár más nyelvekben is elérhetünk hasonló hatást (például a FORTRANban a DO utasítással), a C-INTERCAL volt az elsõ nyelv, melybe bekerült ezen a néven.
Ha lenne GOTO utasítás, a
(1) DO <valami>
...
DO COME FROM (1)
programot így írhatnánk:
(1) DO <valami>
DO GOTO (2)
...
(2) DO NOTHING