t_stmtsfx.mod 412 B

12345678910111213141516171819
  1. MODULE TStmtSfx;
  2. (* Statement-context result suffix: a call result used as an assignment
  3. target, `Get()^.x := e` (pointer result). Exit 42. *)
  4. VAR ExitCode : INTEGER;
  5. TYPE
  6. Rec = RECORD x : INTEGER END;
  7. PR = POINTER TO Rec;
  8. VAR g : PR;
  9. PROCEDURE Get () : PR;
  10. BEGIN RETURN g END Get;
  11. BEGIN
  12. NEW(g);
  13. g^.x := 0;
  14. Get()^.x := 42;
  15. IF g^.x = 42 THEN ExitCode := 42 ELSE ExitCode := 1 END
  16. END TStmtSfx.