-- file: TangleProcArray.mesa
-- Last Edited by: Ramshaw, October 27, 1983 5:27 pm
-- Written by hand by Lyle Ramshaw
-- implements the two largest arrays of Tangle as procArrays to avoid tickling a Mesa
-- compiler bug.

DIRECTORY
PascalBasic,
PascalWizardFiles,
TanglePrivate;

TangleProcArray: DEFINITIONS =
BEGIN OPEN PascalBasic, PascalWizardFiles, TanglePrivate;


ByteMemA: LONG POINTER TO ARRAY PascalInteger[0..MaxBytes] OF AsciiCode;
ByteMemB: LONG POINTER TO ARRAY PascalInteger[0..MaxBytes] OF AsciiCode;
TokMemA: LONG POINTER TO ARRAY PascalInteger[0..MaxToks] OF EightBits;
TokMemB: LONG POINTER TO ARRAY PascalInteger[0..MaxToks] OF EightBits;
TokMemC: LONG POINTER TO ARRAY PascalInteger[0..MaxToks] OF EightBits;

ByteMem: PROCEDURE [First: PascalInteger[0..1], Second: PascalInteger[0..MaxBytes]]
RETURNS [LONG POINTER TO AsciiCode]= INLINE
{SELECT First FROM
=0 => RETURN[@ByteMemA[Second]];
=1 => RETURN[@ByteMemB[Second]];
ENDCASE => ERROR};

TokMem: PUBLIC PROCEDURE [First: PascalInteger[0..2], Second: PascalInteger[0..MaxToks]]
RETURNS [LONG POINTER TO EightBits]= INLINE
{SELECT First FROM
=0 => RETURN[@TokMemA[Second]];
=1 => RETURN[@TokMemB[Second]];
=2 => RETURN[@TokMemC[Second]];
ENDCASE => ERROR};

END.