file FileParms.mesa
last edited by Satterthwaite, 23-Mar-82 16:30:19
Last Edited by: Maxwell, August 2, 1983 10:46 am
DIRECTORY
FileSegment: TYPE USING [Pages, nullPages],
Rope: TYPE USING [ROPE],
TimeStamp: TYPE 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]];
}.