language-Modula2-0.1: examples/Modula-2_Libraries/C.-Lins_Modula-2_Software_Component_Library/Vol4/maps/mapsumn.def
(*
12.1 Unbounded Map Interface
*)
DEFINITION MODULE MapSUMN;
(*====================================================================
Version : 2.0 16 Sep 1990 C. Lins
Compiler : Generic pc Modula-2
Component: Monolithic Structures - Map (Opaque version)
Sequential Unbounded Managed Iterator
INTRODUCTION
This module provides operations for the unbounded map abstract
data type.
REVISION HISTORY
8/26/89 CL Initial version
v2.00 16 Sep 1990 C. Lins
Created generic pc version
(C) Copyright 1990 Charles A. Lins
=====================================================================*)
FROM Items IMPORT
(*--Type*) Item;
FROM MapTypes IMPORT
(*--Type*) Exceptions;
FROM ErrorHandling IMPORT
(*--Type*) HandlerProc;
FROM TypeManager IMPORT
(*--Type*) TypeID;
(*-----------------------*)
(*
12.1.1 Type Declarations
*)
TYPE Domain = Item;
TYPE Range = Item;
TYPE Map;
VAR NullMap : Map;
(*
12.1.2 Exceptions
*)
CONST ModuleID = 16;
PROCEDURE MapError () : Exceptions (*--out *);
PROCEDURE GetHandler ( theError : Exceptions (*--in *))
: HandlerProc (*--out *);
PROCEDURE SetHandler ( theError : Exceptions (*--in *);
theHandler : HandlerProc (*--in *));
(*
12.1.3 Constructors
*)
PROCEDURE Create ( theDomain : TypeID (*--in *);
theRange : TypeID (*--in *))
: Map (*--out *);
PROCEDURE Destroy (VAR theMap : Map (*--inout*));
PROCEDURE Clear ( theMap : Map (*--inout*));
PROCEDURE Assign ( theMap : Map (*--in *);
VAR toMap : Map (*--inout *));
PROCEDURE Bind ( theMap : Map (*--inout*);
theItemIn : Domain (*--in *);
toItemIn : Range (*--in *));
PROCEDURE Unbind ( theMap : Map (*--inout*);
theItemIn : Domain (*--in *));
(*
12.1.4 Selectors
*)
PROCEDURE IsDefined ( theMap : Map (*--in *))
: BOOLEAN (*--out *);
PROCEDURE IsEmpty ( theMap : Map (*--in *))
: BOOLEAN (*--out *);
PROCEDURE IsEqual ( left : Map (*--in *);
right : Map (*--in *))
: BOOLEAN (*--out *);
PROCEDURE ExtentOf ( theMap : Map (*--in *))
: CARDINAL (*--out *);
PROCEDURE DomainOf ( theMap : Map (*--in *))
: TypeID (*--out *);
PROCEDURE RangeOf ( theMap : Map (*--in *))
: TypeID (*--out *);
PROCEDURE IsBound ( theMap : Map (*--in *);
theItem : Domain (*--in *))
: BOOLEAN (*--out *);
PROCEDURE BoundTo ( theMap : Map (*--in *);
theItem : Domain (*--in *))
: Range (*--out *);
PROCEDURE IsBoundTo ( theMap : Map (*--in *);
theItem : Domain (*--in *);
VAR toItem : Range (*--out *))
: BOOLEAN (*--out *);
END MapSUMN.