213c
<< <> >>

2. Uitleg bij de GATE woorden

GATE ccc
Declareer een (nieuwe) "state" met de naam ccc. ccc is een uitvoerbaar Forthwoord. Ik heb gekozen voor de naam GATE omdat het gebruikelijke STATE verwarring zou zaaien in Forth. De volgorde waarin gates gedefinieerd worden doet er niet toe. Zodra een gate gedeclareerd is kun je hem gebruiken achter GOTO.

== ccc
Definieer de 'rules' voor een van tevoren gedeclareerde gate ccc. Uitvoering van een ongedefinieerde gate levert een foutmelding op.
Een gate bestaat uit 'rules'. Er zijn vier soorten rules:
  1. ... -IF- ... GOTO ccc
  2. ... -IF- ... READY
    en
  3. ... GOTO ccc
  4. ... READY
Een rule met -IF- (1 of 2) kan nooit de laatste zijn.
Een rule zonder -IF- (3 of 4) is automatisch de slot-rule.

-IF-
De code voor -IF- moet natuurlijk een vlag produceren.
De code achter -IF- (inclusief afsluitende GOTO ccc of READY) wordt voorwaardelijk uitgevoerd. Als niet aan de voorwaarde voldaan is, springt de machine naar de volgende rule (naar de code achter GOTO ccc of READY).
In de slot-rule moet -IF- ontbreken. Automatisch doorspringen naar een volgende rule (die niet bestaat) is daarmee uitgesloten.

GOTO ccc
ccc moet een gate zijn.

READY
READY op de plaats van GOTO ccc dient om de structuur te verlaten.

>>