g_twice_p.mod 545 B

1234567891011121314151617
  1. MODULE GTwiceProg;
  2. (* Two instantiations of one generic, different scalar families:
  3. INTEGER (40 points) and CHAR (2 points) -> exit code 42. *)
  4. IMPORT GTwiceInt, GTwiceChar;
  5. VAR
  6. is : GTwiceInt.Stack;
  7. cs : GTwiceChar.Stack;
  8. i : INTEGER;
  9. c : CHAR;
  10. ExitCode : INTEGER;
  11. BEGIN
  12. ExitCode := 0;
  13. GTwiceInt.Init(is); GTwiceInt.Push(is, 7);
  14. IF GTwiceInt.Pop(is, i) AND (i = 7) THEN INC(ExitCode, 40) END;
  15. GTwiceChar.Init(cs); GTwiceChar.Push(cs, "Z");
  16. IF GTwiceChar.Pop(cs, c) AND (c = "Z") THEN INC(ExitCode, 2) END
  17. END GTwiceProg.