Text preview for : TableDefs.mesa_Oct77.pdf part of xerox TableDefs.mesa Oct77 xerox mesa 3.0_1977 listing TableDefs.mesa_Oct77.pdf
Back to : TableDefs.mesa_Oct77.pdf | Home
tab1edefs.mESA 24-0CT-77 18:55:07 Page 1
-- file TableDefs.Mesa
-- last modified by Satterthwaite. August 18, 1977 10:52 AM
DIRECTORY
AltoDefs: FROM "altodefs";
Tab1eDefs: DEFINITIONS =
BEGIN
TableSelector: TYPE = INTEGER [0 .. 8];
-- tables for the compiler (adjust TableSelector also)
treetype: TableSelector = 0;
setype: Tab1eSelector = 1;
httype: TableSelector = 2;
sstype: TableSelector = 3;
ctxtype: TableSelector = 4;
mdtype: TableSelector = 5;
bodytype: TableSelector = 6;
lttype: TableSelector = 7;
sttype: TableSelector = 8;
TableBase: TYPE = [O .. AltoDefs.VMLimit];
TableLimit: CARDINAL = 40000B;
TableIndex: TYPE = POINTER [0 .. TableLimit);
OrderedTableIndex: TYPE = ORDERED POINTER [O .. TableLimit);
-- allocation from the tables as stacks
Allocate: PROCEDURE [table: TableSelector, size: CARDINAL] RETURNS [OrderedTableIndex);
TableBounds: PROCEDURE [table: TableSelector] RETURNS [base: TableBase. size: CARDINAL];
TableOverflow: SIGNAL RETURNS [origin, limit: CARDINAL];
TableFailure: ERROR [table: TableSelector];
-- allocation from free list (first table only)
chunktype: TableSelector = FIRST[TableSelector];
GetChunk: PROCEDURE [size: CARDINAL] RETURNS [TableIndex];
FreeChunk: PROCEDURE [i: TableIndex, size: CARDINAL];
-- notification of repacking
TableNotifier: TYPE = PROCEDURE [base: DESCRIPTOR FOR ARRAY TableSelector OF TableBase];
AddNotify: PROCEDURE [proc: TableNotifier];
DropNotify: PROCEDURE [proc: TableNotifier];
-- initialization and termination
InitializeTable: PROCEDURE [origin. size: CARDINAL];
EraseTable: PROCEDURE;
END.