In.txt 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. MODULE In;
  2. (* THIS IS TEXT COPY OF BlackBox 1.6-rc6 System/Mod/In.odc *)
  3. (* DO NOT EDIT *)
  4. IMPORT TextMappers, TextControllers;
  5. VAR
  6. Done-: BOOLEAN;
  7. s: TextMappers.Scanner;
  8. PROCEDURE Open*;
  9. VAR c: TextControllers.Controller; beg, end: INTEGER;
  10. BEGIN
  11. c := TextControllers.Focus();
  12. IF c # NIL THEN
  13. IF c.HasSelection() THEN c.GetSelection(beg, end) ELSE beg := 0 END;
  14. s.ConnectTo(c.text); s.SetPos(beg); s.rider.Read; Done := TRUE
  15. ELSE
  16. s.ConnectTo(NIL); Done := FALSE
  17. END
  18. END Open;
  19. PROCEDURE Char* (OUT ch: CHAR);
  20. BEGIN
  21. IF Done THEN
  22. IF s.rider.eot THEN Done := FALSE
  23. ELSE ch := s.rider.char; s.rider.Read
  24. END
  25. END
  26. END Char;
  27. PROCEDURE Int* (OUT i: INTEGER);
  28. BEGIN
  29. IF Done THEN
  30. s.Scan;
  31. IF (s.type = TextMappers.int) THEN
  32. i := s.int
  33. ELSE Done := FALSE
  34. END
  35. END
  36. END Int;
  37. PROCEDURE LongInt* (OUT l: LONGINT);
  38. BEGIN
  39. IF Done THEN
  40. s.Scan;
  41. IF (s.type = TextMappers.lint) OR (s.type = TextMappers.int) THEN
  42. l := s.lint
  43. ELSE Done := FALSE
  44. END
  45. END
  46. END LongInt;
  47. PROCEDURE Real* (OUT x: REAL);
  48. BEGIN
  49. IF Done THEN
  50. s.Scan;
  51. IF s.type = TextMappers.real THEN
  52. x := SHORT(s.real)
  53. ELSIF s.type = TextMappers.int THEN
  54. x := s.int
  55. ELSE Done := FALSE
  56. END
  57. END
  58. END Real;
  59. PROCEDURE Name* (OUT name: ARRAY OF CHAR);
  60. BEGIN
  61. IF Done THEN
  62. s.Scan;
  63. TextMappers.ScanQualIdent(s, name, Done)
  64. END
  65. END Name;
  66. PROCEDURE String* (OUT str: ARRAY OF CHAR);
  67. BEGIN
  68. IF Done THEN
  69. s.Scan;
  70. IF s.type = TextMappers.string THEN
  71. str := s.string$
  72. ELSE Done := FALSE
  73. END
  74. END
  75. END String;
  76. END In.