TYPE
ListOfStates =
RECORD
state: ARRAY maxnofstates OF State;
nofstates: SHORTINT; (* [0..maxnofstates] *)
END;
PROCEDURE InitListOfStates(VAR list: ListOfStates);
BEGIN
list.nofstates := 0;
END InitListOfStates;
PROCEDURE AddState(VAR list: ListOfStates; state: State);
BEGIN
ASSERT(list.nofstates < maxnofstates);
list.state[list.nofstates] := state;
INC(list.nofstates);
END AddState;
PROCEDURE RemoveState(VAR list: ListOfStates);
BEGIN
ASSERT(list.nofstates > 0);
DEC(list.nofstates);
END RemoveState;
|