Lists.mesa
Theimer, July 16, 1989 6:53:26 pm PDT
DIRECTORY
CirioTypes USING [CompilerContext, Type, Node];
Lists: CEDAR DEFINITIONS =
BEGIN
CC: TYPE = CirioTypes.CompilerContext;
Type: TYPE = CirioTypes.Type;
Node: TYPE = CirioTypes.Node;
CreateListType: PROC [listStructType: Type, listElementType: Type, getNewList: PROC [listType: Type, data: REF ANY, cc: CC] RETURNS [Node], procData: REF ANY, cc: CC] RETURNS [Type];
CirioCode.GetTypeClass[type] = $list
CCTypes.GetTypeRepresentation will return NIL.
ListNodeInfo: TYPE = REF ListNodeInfoBody;
ListNodeInfoBody: TYPE = RECORD [
getListStruct: PROC [listStructType: Type, cc: CC, data: REF ANY] RETURNS [Node],
getListElements: PROC [index: INT, listElementType: Type, cc: CC, data: REF ANY] RETURNS [Node],
storeList: PROC [valNode: Node, cc: CC, data: REF ANY],
getPointer: PROC[data: REF ANY, cc: CC] RETURNS[CirioTypes.Node],
data: REF ANY
];
CreateListIndirectNode: PUBLIC PROC [type: Type, info: REF ANY] RETURNS [Node];
END.