home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #6
/
amigamamagazinepolishissue1998.iso
/
coders
/
jËzyki_programowania
/
oberon
/
system
/
out.mod
(
.txt
)
< prev
next >
Wrap
Oberon Text
|
1977-12-31
|
2KB
|
68 lines
Syntax10.Scn.Fnt
Syntax10b.Scn.Fnt
MODULE Out;
(* Stream-oriented text output, MR 1992, NW 26.11.92 *)
(* Procedures Fx from Out from Loinz added, Ralf Degner 25.12.95 *)
IMPORT Texts, Oberon;
VAR W: Texts.Writer;
PROCEDURE Char*(ch: CHAR);
BEGIN Texts.Write(W, ch); Texts.Append(Oberon.Log, W.buf)
END Char;
PROCEDURE String*(str: ARRAY OF CHAR);
BEGIN Texts.WriteString(W, str); Texts.Append(Oberon.Log, W.buf)
END String;
PROCEDURE Int*(i, n: LONGINT);
BEGIN Texts.WriteInt(W, i, n); Texts.Append(Oberon.Log, W.buf)
END Int;
PROCEDURE Real*(x: REAL; n: INTEGER);
BEGIN Texts.WriteReal(W, x, n); Texts.Append(Oberon.Log, W.buf)
END Real;
PROCEDURE LongReal*(x: LONGREAL; n: INTEGER);
BEGIN Texts.WriteLongReal(W, x, n); Texts.Append(Oberon.Log, W.buf)
END LongReal;
PROCEDURE Ln*;
BEGIN Texts.WriteLn(W); Texts.Append(Oberon.Log, W.buf)
END Ln;
PROCEDURE Open*;
VAR r: Texts.Reader; ch: CHAR;
BEGIN
Texts.OpenReader(r, Oberon.Log, Oberon.Log.len-1); Texts.Read(r, ch);
IF ch # 0DX THEN Ln END
END Open;
(* Fx from Linz *)
PROCEDURE F0 (s: ARRAY OF CHAR; x: ARRAY OF LONGINT);
VAR i, j: INTEGER;
BEGIN
(*CheckOpen*); i := 0; j := 0;
WHILE s[i] # 0X DO
IF s[i] = "$" THEN Ln
ELSIF s[i] = "#" THEN Int(x[j], 0); INC(j)
ELSE Texts.Write(W, s[i])
END;
INC(i)
END;
Texts.Append(Oberon.Log, W.buf)
END F0;
PROCEDURE F* (s: ARRAY OF CHAR; x: LONGINT);
VAR a: ARRAY 4 OF LONGINT;
BEGIN
a[0] := x; F0(s, a)
END F;
PROCEDURE F2* (s: ARRAY OF CHAR; x, y: LONGINT);
VAR a: ARRAY 4 OF LONGINT;
BEGIN
a[0] := x; a[1] := y; F0(s, a)
END F2;
PROCEDURE F3* (s: ARRAY OF CHAR; x, y, z: LONGINT);
VAR a: ARRAY 4 OF LONGINT;
BEGIN
a[0] := x; a[1] := y; a[2] := z; F0(s, a)
END F3;
PROCEDURE F4* (s: ARRAY OF CHAR; x, y, z, u: LONGINT);
VAR a: ARRAY 4 OF LONGINT;
BEGIN
a[0] := x; a[1] := y; a[2] := z; a[3] := u; F0(s, a)
END F4;
BEGIN Texts.OpenWriter(W); Open
END Out.