DIRECTORY IP; IPContextImpl: CEDAR PROGRAM IMPORTS IP EXPORTS IP ~ BEGIN OPEN IP; NewMarker: PROC[self: State] RETURNS[Marker] ~ { last: Marker ~ self.lastMarker; IF last self.context _ caller]; self.context _ caller; }; Frame: PUBLIC PROC[self: State] RETURNS[Vector] ~ { context: Context ~ self.context; IF context.frame=NIL THEN RETURN[context.initialFrame] ELSE RETURN[VectorFromArray[ACopy[context.frame]]]; }; FGet: PUBLIC PROC[self: State, j: Integer] RETURNS[Any] ~ { context: Context ~ self.context; IF context.frame=NIL THEN RETURN[Get[context.initialFrame, j]] ELSE RETURN[AGet[context.frame, j]] }; FSet: PUBLIC PROC[self: State, x: Any, j: Integer] ~ { context: Context ~ self.context; IF context.frame=NIL THEN context.frame _ ArrayFromVector[context.initialFrame]; ASet[context.frame, x, j]; }; PoolOp: PUBLIC PROC[self: State] RETURNS[Pool] ~ { RETURN[self.context.pool] }; PGet: PUBLIC PROC[self: State, j: Integer] RETURNS[Any] ~ { pool: Pool ~ self.context.pool; RETURN[AGet[pool.array, j]]; }; PSet: PUBLIC PROC[self: State, x: Any, j: Integer] ~ { pool: Pool ~ self.context.pool; -- SavePool[self, pool, ...]; -- ASet[pool.array, x, j]; }; Env: PUBLIC PROC[self: State] RETURNS[Vector] ~ { RETURN[self.context.env]; }; END. €IPContextImpl.mesa Copyright c 1984 Xerox Corporation. All rights reserved. Doug Wyatt, August 16, 1984 2:16:25 pm PDT Ê‘˜šœ™Jšœ Ïmœ.™9Jšœ*™*—J™šÏk ˜ Jšžœ˜J˜—Jšœžœž˜Jšžœž˜ Jšžœž˜ Jšœžœžœžœ˜J˜šÏn œžœžœ ˜0Jšœ˜Jšžœ žœžœžœ˜9Jšžœžœ"˜,J˜J˜—šŸœžœžœžœ-˜XJšœ˜Jšœ"Ïc˜;šœžœ ˜=Jšœ˜Jšœžœ+˜5Jšœ˜—J˜Jšœ žœ˜*Jšœ˜J˜J˜—J˜šŸœžœžœžœ ˜3J˜ Jšžœžœžœžœ˜6Jšžœžœ(˜3J˜J˜—šŸœžœžœžœ ˜;J˜ Jšžœžœžœžœ˜>Jšžœžœ˜#J˜J˜—šŸœžœžœ%˜6J˜ Jšžœžœžœ7˜PJšœ˜J˜J˜—J˜š Ÿœžœžœžœ žœ˜OJ˜—šŸœžœžœžœ ˜;J˜Jšžœ˜J˜J˜—šŸœžœžœ%˜6J˜Jš  ˜ Jšœ˜J˜J˜—J˜šŸœžœžœžœ ˜1Jšžœ˜Jšœ˜J˜—J˜Jšžœ˜—…—È Ù