<<>> <> <> <<>> 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]; <> <> <<>> 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.