FileParms.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Satterthwaite, 23-Mar-82 16:30:19
Maxwell, August 2, 1983 10:46 am
Russ Atkinson (RRA) March 6, 1985 10:09:00 pm PST
DIRECTORY
FileSegment USING [Pages, nullPages],
Rope USING [ROPE],
TimeStamp USING [Stamp, Null];
FileParms: DEFINITIONS = {
data types
Name: TYPE = Rope.ROPE;
ActualId: TYPE = RECORD [
version: TimeStamp.Stamp, -- computed version stamp
locator: Name]; -- interpreted by implementation
SymbolSpace: TYPE = FileSegment.Pages;
constants
nullName: Name = NIL;
nullFormal: Name = nullName;
nullActual: ActualId = [TimeStamp.Null, nullName];
nullSymbolSpace: SymbolSpace = FileSegment.nullPages;
op record
BindingProc: TYPE = PROC [actual: ActualId];
Ops: TYPE = RECORD [
Binding: PROC [
formalId, formalType: Name, defaultLocator: Name ← nullName,
binder: BindingProc],
Acquire: PROC [Name, ActualId] RETURNS [SymbolSpace],
Release: PROC [SymbolSpace],
Forget: PROC [ActualId]];
}.