<<>> <> <> <> <> <> <<>> <> <> <<>> DIRECTORY CirioTypes USING[BasicTypeInfo, CirioAddress, CompilerContext, Node, Type]; PointerTypes: CEDAR DEFINITIONS = BEGIN CC: TYPE = CirioTypes.CompilerContext; Type: TYPE = CirioTypes.Type; Node: TYPE = CirioTypes.Node; BasicTypeInfo: TYPE = CirioTypes.BasicTypeInfo; <> <<>> <.>> <<>> <<>> <> <<>> <> <<>> <> CreatePointerType: PROC[clientTargetType: Type, cc: CC, bti: BasicTypeInfo] RETURNS[Type]; <> <> GetReferentType: PROC[pointerType: Type] RETURNS[Type]; <> CreateNilPointerType: PROC[cc: CC] RETURNS[Type]; <> <> PointerNodeInfo: TYPE = REF PointerNodeInfoBody; PointerNodeInfoBody: TYPE = RECORD[ clientTargetType: Type, indirectToClientTarget: Node, getAddress: PROC[data: REF ANY, cc: CC] RETURNS [CirioTypes.CirioAddress], pointerAdd: PROC[offset: INT, data: REF ANY, cc: CC] RETURNS [CirioTypes.Node], pointerCardValue: PROC[data: REF ANY] RETURNS [CARD], data: REF ANY]; CreatePointerNode: PROC[type: Type, info: PointerNodeInfo, cc: CC] RETURNS[Node]; <> <<>> CreateNilPointerNode: PROC[cc: CC] RETURNS[Node]; <> END..