-- File: DisjointAllocDefs.mesa
-- Written by Martin Newell/Dan Fitzpatrick June 1981
-- Last edited: August 4, 1981 6:58 PM

DIRECTORY

DisjointTypes: FROM "DisjointTypes" USING [DisCell, Rectangle, Instance, Symbol, PIP, Geometry, PropID, PropList];

DisjointAllocDefs
: DEFINITIONS =
BEGIN
OPEN DisjointTypes;

MakeSymbol: PUBLIC PROCEDURE [name: STRING, l,b,r,t: REAL] RETURNS[Symbol];

AllocateSymbol: PUBLIC PROCEDURE[] RETURNS[symb: Symbol];

GetSymbol: PUBLIC PROCEDURE[] RETURNS[symb: Symbol];

FreeSymbol: PUBLIC PROCEDURE[symb: Symbol];

FreeMarkedSymbols: PUBLIC PROCEDURE[id: PropID];

LookupSymbol: PUBLIC PROCEDURE [name: STRING]
RETURNS[s: Symbol];

EnumerateSymbols: PUBLIC PROCEDURE[proc: PROC[s: Symbol]RETURNS[BOOLEAN]]
RETURNS[BOOLEAN];
--BOOLEAN returns are both abort flags

InsertSymbolList: PUBLIC PROCEDURE[symb: Symbol];

MakeInstance: PUBLIC PROCEDURE[parent: Symbol, name: STRING, x,y: REAL]
RETURNS[Instance];

AllocateInstance: PUBLIC PROCEDURE[] RETURNS[inst: Instance];

FreeInstance: PUBLIC PROCEDURE[inst: Instance];

MakeGeometry: PUBLIC PROCEDURE[parent: Symbol, layer: CARDINAL, l,b,r,t: REAL]
RETURNS[Geometry];

AllocateGeometry: PUBLIC PROCEDURE[] RETURNS[g: Geometry];

FreeGeometry: PUBLIC PROCEDURE[g: Geometry];

AllocatePIP: PUBLIC PROCEDURE[] RETURNS[pip: PIP];

FreePIP: PUBLIC PROCEDURE[pip: PIP];

AllocateDisCell: PUBLIC PROCEDURE[] RETURNS[dc: DisCell];

FreeDisCell: PUBLIC PROCEDURE[dc: DisCell];

MakeRectangle
: PUBLIC PROCEDURE[l,b,r,t: REAL]
RETURNS[rec: DisjointTypes.Rectangle];

AllocateRectangle: PUBLIC PROCEDURE[] RETURNS[r: DisjointTypes.Rectangle];

FreeRectangle: PUBLIC PROCEDURE[r: DisjointTypes.Rectangle];

AllocateProp: PUBLIC PROCEDURE[] RETURNS[p: PropList];

FreeProp: PUBLIC PROCEDURE[p: PropList];

Alloc
: PUBLIC PROCEDURE[n:INTEGER] RETURNS[p: LONG POINTER];

Free: PUBLIC PROCEDURE[p:LONG POINTER, n:INTEGER];

PrintAlloc: PUBLIC PROCEDURE;

END.