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 >
Oberon Text  |  1977-12-31  |  2KB  |  68 lines

  1. Syntax10.Scn.Fnt
  2. Syntax10b.Scn.Fnt
  3. MODULE Out;
  4. (* Stream-oriented text output, MR 1992, NW 26.11.92 *)
  5. (* Procedures Fx from Out from Loinz added, Ralf Degner 25.12.95 *)
  6. IMPORT Texts, Oberon;
  7. VAR W: Texts.Writer;
  8. PROCEDURE Char*(ch: CHAR);
  9. BEGIN Texts.Write(W, ch); Texts.Append(Oberon.Log, W.buf)
  10. END Char;
  11. PROCEDURE String*(str: ARRAY OF CHAR);
  12. BEGIN Texts.WriteString(W, str); Texts.Append(Oberon.Log, W.buf)
  13. END String;
  14. PROCEDURE Int*(i, n: LONGINT);
  15. BEGIN Texts.WriteInt(W, i, n); Texts.Append(Oberon.Log, W.buf)
  16. END Int;
  17. PROCEDURE Real*(x: REAL; n: INTEGER);
  18. BEGIN Texts.WriteReal(W, x, n); Texts.Append(Oberon.Log, W.buf)
  19. END Real;
  20. PROCEDURE LongReal*(x: LONGREAL; n: INTEGER);
  21. BEGIN Texts.WriteLongReal(W, x, n); Texts.Append(Oberon.Log, W.buf)
  22. END LongReal;
  23. PROCEDURE Ln*;
  24. BEGIN Texts.WriteLn(W); Texts.Append(Oberon.Log, W.buf)
  25. END Ln;
  26. PROCEDURE Open*;
  27. VAR r: Texts.Reader; ch: CHAR;
  28. BEGIN
  29.     Texts.OpenReader(r, Oberon.Log, Oberon.Log.len-1); Texts.Read(r, ch);
  30.     IF ch # 0DX THEN Ln END
  31. END Open;
  32. (* Fx from Linz *)
  33. PROCEDURE F0 (s: ARRAY OF CHAR; x: ARRAY OF LONGINT);
  34.     VAR i, j: INTEGER;
  35. BEGIN
  36.     (*CheckOpen*); i := 0; j := 0;
  37.     WHILE s[i] # 0X DO
  38.         IF s[i] = "$" THEN Ln
  39.         ELSIF s[i] = "#" THEN Int(x[j], 0); INC(j)
  40.         ELSE Texts.Write(W, s[i])
  41.         END;
  42.         INC(i)
  43.     END;
  44.     Texts.Append(Oberon.Log, W.buf)
  45. END F0;
  46. PROCEDURE F* (s: ARRAY OF CHAR; x: LONGINT);
  47.     VAR a: ARRAY 4 OF LONGINT;
  48. BEGIN
  49.     a[0] := x; F0(s, a)
  50. END F;
  51. PROCEDURE F2* (s: ARRAY OF CHAR; x, y: LONGINT);
  52.     VAR a: ARRAY 4 OF LONGINT;
  53. BEGIN
  54.     a[0] := x; a[1] := y; F0(s, a)
  55. END F2;
  56. PROCEDURE F3* (s: ARRAY OF CHAR; x, y, z: LONGINT);
  57.     VAR a: ARRAY 4 OF LONGINT;
  58. BEGIN
  59.     a[0] := x; a[1] := y; a[2] := z; F0(s, a)
  60. END F3;
  61. PROCEDURE F4* (s: ARRAY OF CHAR; x, y, z, u: LONGINT);
  62.     VAR a: ARRAY 4 OF LONGINT;
  63. BEGIN
  64.     a[0] := x; a[1] := y; a[2] := z; a[3] := u; F0(s, a)
  65. END F4;
  66. BEGIN Texts.OpenWriter(W); Open
  67. END Out.
  68.