<> <> DIRECTORY IPInterpreter USING [PopVector, Ref], Interpress USING [LogProc], IPExecute USING [CallPreamble, DoTopAction], IPMaster USING [Vector, Preamble]; IPExecuteImpl: CEDAR PROGRAM IMPORTS IPExecute, IPInterpreter EXPORTS IPExecute ~ { <> <> <> ExecutePreamble: PUBLIC PROC [self: IPInterpreter.Ref, preamble: IPMaster.Preamble, frame, env: IPMaster.Vector, log: Interpress.LogProc] ~ { action: PROC ~ { IPExecute.CallPreamble[self: self, preamble: preamble, frame: frame, env: env]; self.topFrame _ IPInterpreter.PopVector[self]; self.topEnv _ IPInterpreter.PopVector[self]; }; IPExecute.DoTopAction[self, action, log]; }; }. <<>>