IPVector.mesa
Copyright © 1986 by Xerox Corporation. All rights reserved.
IPVector: CEDAR DEFINITIONS
~ BEGIN
Removed from IPInterpreter because of a circular reference between IPInterpreter USING [Vector], and IPMaster USING [Body, Op, Token]
Any: TYPE ~ REF;
Cardinal: TYPE ~ INT--[0..maxCardinal]--;
VectorShape: TYPE ~ RECORD[lowerBound: Cardinal, size: INT -- [0..maxCardinal+1] --];
Upper bound "u" = lowerBound+size-1.
Vector: TYPE ~ REF VectorRep;
VectorRep: TYPE ~ RECORD[class: VectorClass, data: REF];
VectorClass: TYPE ~ REF VectorClassRep;
VectorClassRep: TYPE ~ RECORD[
type: ATOM, -- $Array, $Merged, $String, ...
shape: PROC [v: Vector] RETURNS [VectorShape],
get: PROC [v: Vector, i: Cardinal] RETURNS [Any],
getCardinal: PROC [v: Vector, i: Cardinal] RETURNS [Cardinal],
getProp: PROC [v: Vector, propName: Any] RETURNS [found: BOOL, value: Any] ← NIL
];
END.
Allan H. Wax November 25, 1986 5:30:48 pm PST
Genesis