Console.cp 898 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. MODULE Console;
  2. IMPORT Str;
  3. VAR
  4. go_process*: PROCEDURE (IN s: ARRAY OF SHORTCHAR);
  5. PROCEDURE String*(s: ARRAY OF CHAR);
  6. VAR x: ARRAY 1024 OF CHAR;
  7. BEGIN
  8. x:='{"type": "log", "data": "'+s$+'"}';
  9. go_process(SHORT(x));
  10. END String;
  11. PROCEDURE Bool*(x: BOOLEAN);
  12. BEGIN
  13. IF x THEN String(" $TRUE") ELSE String(" $FALSE") END
  14. END Bool;
  15. PROCEDURE Int*(i: LONGINT);
  16. VAR s: ARRAY 32 OF CHAR;
  17. BEGIN
  18. Str.IntToString(i, s);
  19. String(" ");
  20. String(s)
  21. END Int;
  22. PROCEDURE Ln*;
  23. BEGIN
  24. String("\n")
  25. END Ln;
  26. PROCEDURE Tab*;
  27. BEGIN
  28. String("\t")
  29. END Tab;
  30. PROCEDURE Char*(ch: CHAR);
  31. VAR vs: ARRAY 3 OF CHAR;
  32. BEGIN
  33. vs[0]:="\";
  34. vs[2]:=0X;
  35. CASE ch OF
  36. '"', '\': vs[1]:=ch;
  37. |09X: vs[1]:='t';
  38. |0DX: vs[1]:='r';
  39. |0AX: vs[1]:='n';
  40. |0CX: vs[1]:='f';
  41. |08X: vs[1]:='b';
  42. ELSE
  43. vs[0]:=ch;
  44. vs[1]:=0X;
  45. END;
  46. String(vs)
  47. END Char;
  48. END Console.