<> <> <> <> <> DIRECTORY FileSegment USING [Pages, Span, nullPages, nullSpan, voidPages], SymbolPack; SymbolTable: DEFINITIONS = { <> Handle: TYPE = FileSegment.Pages; nullHandle: Handle = FileSegment.nullPages; voidHandle: Handle = FileSegment.voidPages; -- used as flag anySpan: FileSegment.Span = FileSegment.nullSpan; -- wild card for Forget Base: TYPE = POINTER TO FRAME[SymbolPack]; <> Missing: ERROR [handle: SymbolTable.Handle]; IllegalBase: ERROR [base: SymbolTable.Base]; Locked: ERROR [handle: SymbolTable.Handle, nLocks: NAT]; <> Acquire: PROC [handle: SymbolTable.Handle] RETURNS [SymbolTable.Base]; Release: PROC [base: SymbolTable.Base]; Forget: PROC [handle: SymbolTable.Handle]; BaseToHandle: PROC [base: SymbolTable.Base] RETURNS [SymbolTable.Handle]; CacheSize: PROC RETURNS [pages: CARDINAL]; SetCacheSize: PROC [pages: CARDINAL]; }.