home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1994-09-09 | 2.3 KB | 73 lines |
- DEFINITION MODULE ListsAndNodes;
-
- (* ListsAndNodes.def - Einzeilige Funktionsbeschreibung
- * Version : $VER: ListsAndNodes.def 0.0 (© 1994 Fin Schuppenhauer)
- * Autor : Fin Schuppenhauer
- * Braußpark 10
- * 20537 Hamburg
- * (Germany)
- * E-Mail : 1schuppe@rzdspc2.informatik.uni-hamburg.de
- * Erstellt am : 09 Sep 1994
- * Letzte Änd. : 09 Sep 1994
- *)
-
- IMPORT
- ed:ExecD;
-
- CONST
- ALLNODES = -1;
-
- TYPE
- StrPtr = POINTER TO ARRAY [0..1023] OF CHAR;
-
- EnumerateProcedure = PROCEDURE (ed.NodePtr);
-
-
-
- (* CompareNodeNames() vergleicht die Namen zweier ExecD.Node unter
- * Verwendung von String.Compare. Für Nodes, die auf NIL zeigen gelten
- * folgende Regeln:
- *
- * node1 node2 Rückgabewert
- * -------------------------
- * NIL NIL 0
- * NIL #NIL 1
- * #NIL NIL -1;
- * #NIL #NIL String.Compare()
- *)
- PROCEDURE CompareNodeNames (node1, node2 : ed.NodePtr) : LONGINT;
-
- (* CountNodes() zählt die Anzahl der Nodes einer ExecD.List. Beim
- * Aufruf ist sicherzustellen, daß list # NIL ist.
- *)
- PROCEDURE CountNodes (list : ed.ListPtr) : LONGCARD;
-
- (* Mit ChangeNodes() werden <node1> und <node2> vertauscht. Wird für
- * <list> ein Wert # NIL übergeben, so wird der Listenkopf ggf.
- * aktualisiert. Bedingung: <node1> muß in der Liste vor <node2>
- * stehen.
- *)
- PROCEDURE ChangeNodes (list : ed.ListPtr; node1, node2 : ed.NodePtr);
-
- (* Zum Sortieren einer ganzen Liste (oder auch nur Teilen davon) kann
- * die Prozedur SortExecList() verwendet werden. Zu übergeben sind ein
- * Zeiger auf die zu sortierende Liste (<list>) und ein Wert für
- * <max>, der angibt, bis zu welcher Node die Liste betrachtet werden
- * soll. Mit <max> = ALLNODES werden alle Nodes berücksichtigt.
- *)
- PROCEDURE SortExecList (list : ed.ListPtr; max : INTEGER);
-
- (* Möchte man auf jeden Knoten einer Liste eine Prozedur ausführen,
- * bietet sich Enumerate(). Diese Prozedur ruft jeden Knoten der Liste
- * mit der übergebenen Prozedur auf.
- *)
- PROCEDURE Enumerate (list : ed.ListPtr; enumProc : EnumerateProcedure);
-
- (* FreeAllNodes() gibt den belegten Speicher aller Knoten einer Liste
- * mit ExecL.FreeMem wieder frei. Dabei muß auch die Größe des
- * belegten Speicher einer Node angegeben werden.
- *)
- PROCEDURE FreeAllNodes (list : ed.ListPtr; nodesize : CARDINAL);
-
- END ListsAndNodes.
-