In.Mod 703 B

123456789101112131415161718192021222324252627282930313233
  1. MODULE In; (** AUTHOR "FOF"; PURPOSE "Simple argument parser for educational purposes"; *)
  2. IMPORT Commands, Streams;
  3. PROCEDURE GetArg*(): Streams.Reader;
  4. BEGIN
  5. RETURN Commands.GetContext().arg;
  6. END GetArg;
  7. PROCEDURE Char*(VAR ch: CHAR): BOOLEAN;
  8. BEGIN
  9. RETURN GetArg().GetChar(ch);
  10. END Char;
  11. PROCEDURE Int*(VAR i: LONGINT; hex = TRUE: BOOLEAN): BOOLEAN;
  12. (* hex = TRUE means that hex numbers are allowed. A hex number must have the "H" postfix *)
  13. BEGIN
  14. RETURN GetArg().GetInteger(i, hex);
  15. END Int;
  16. PROCEDURE Real*(VAR f: LONGREAL): BOOLEAN;
  17. BEGIN
  18. RETURN GetArg().GetReal(f);
  19. END Real;
  20. PROCEDURE String*(VAR s: ARRAY OF CHAR): BOOLEAN;
  21. BEGIN
  22. RETURN GetArg().GetString(s);
  23. END String;
  24. END In.