showcase5.mod 768 B

12345678910111213141516171819202122232425262728293031
  1. MODULE Showcase5;
  2. // Class-syntax frontier tour (docs/OOP.txt): fields, '=' consts,
  3. // VIRTUAL, methods with/without formals/results, single + multiple
  4. // inheritance, impl block with nested procedure in a method body,
  5. // init bodies. 7 errors, all "not supported yet".
  6. CONST Limit = 100;
  7. TYPE
  8. CLASS Shape;
  9. x, y : INTEGER;
  10. Max = Limit;
  11. VIRTUAL PROCEDURE Draw;
  12. PROCEDURE Move(dx, dy : INTEGER);
  13. PROCEDURE Area() : INTEGER;
  14. END Shape;
  15. CLASS Circle (Shape);
  16. r : INTEGER;
  17. PROCEDURE SetR(v : INTEGER);
  18. END Circle;
  19. CLASS Multi (Shape, Circle);
  20. END Multi;
  21. CLASS IMPLEMENTATION Circle;
  22. PROCEDURE SetR(v : INTEGER);
  23. PROCEDURE Helper() : INTEGER;
  24. BEGIN
  25. END Helper;
  26. BEGIN
  27. END SetR;
  28. BEGIN
  29. END Circle;
  30. BEGIN
  31. END Showcase5.