t_variantext.mod 559 B

123456789101112131415161718192021
  1. MODULE TVariantExt;
  2. (* gm2 ext: variant arms may be empty, and an inner CASE may be
  3. untagged (`CASE : T OF`). *)
  4. TYPE
  5. form = (sets, bigsets);
  6. r = RECORD
  7. CASE f : form OF
  8. | sets, bigsets : base : CARDINAL;
  9. CASE : form OF
  10. | bigsets : off : CARDINAL;
  11. | sets :
  12. END;
  13. END
  14. END;
  15. VAR ExitCode : INTEGER;
  16. v : r;
  17. BEGIN
  18. v.f := sets;
  19. v.base := 7;
  20. IF v.base = 7 THEN ExitCode := 42 ELSE ExitCode := 1 END
  21. END TVariantExt.