|
TYPE Filter = PROCEDURE (in, out: Streams.Stream); PROCEDURE Open(VAR out, in: Streams.Stream; bufmode: Streams.BufMode); PROCEDURE Spawn(filter: Filter; in, out: Streams.Stream); |
Das Modul CrPipes ermöglicht es, auf Basis
von Koroutinen und Filtern interne Pipelines zu bauen.
| |
Ein Filter ist dabei eine Prozedur, die von einer
Eingabe-Verbindung liest und die Eingabe nach Modifikationen
wieder ausgibt.
| |
So sieht beispielsweise ein Filter aus, der sämtliche
Kleinbuchstaben in Großbuchstaben verwandelt:
|
PROCEDURE UpperCase(in, out: Streams.Stream); VAR ch: CHAR; BEGIN WHILE Streams.ReadByte(in, ch) DO IF (ch >= "a") & (ch <= "z") THEN ch := CAP(ch); END; IF ~Streams.WriteByte(out, ch) THEN RETURN END; END; END UpperCase; |
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005 |