Trennung von Filtern und Verarbeitung

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]

Filters.om
MODULE Filters;

   IMPORT Args := UnixArguments, CrPipes, Read, Streams, Write;

   PROCEDURE UpperCase(in, out: Streams.Stream);
   (* ... *)

   PROCEDURE RemoveEmptyLines(in, out: Streams.Stream);
   (* ... *)

   PROCEDURE ProcessArgs;
   (* ... *)

   PROCEDURE DoIt;
      VAR
         ok: BOOLEAN;
   BEGIN
      ok := Streams.Copy(Streams.stdin, Streams.stdout, -1);
   END DoIt;

BEGIN
   ProcessArgs;
   DoIt;
END Filters.

*ProcessArgs hat hier die Möglichkeit, beliebig viele Filter vor Streams.stdin einzufügen.
 
*Die Prozedur Doit, die hier die Verarbeitung übernimmt, bleibt hier völlig unabhängig von der Filterung der Eingabe.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005