|
|
@@ -0,0 +1,31 @@
|
|
|
+MODULE Showcase5;
|
|
|
+// Class-syntax frontier tour (docs/OOP.txt): fields, '=' consts,
|
|
|
+// VIRTUAL, methods with/without formals/results, single + multiple
|
|
|
+// inheritance, impl block with nested procedure in a method body,
|
|
|
+// init bodies. 7 errors, all "not supported yet".
|
|
|
+CONST Limit = 100;
|
|
|
+TYPE
|
|
|
+ CLASS Shape;
|
|
|
+ x, y : INTEGER;
|
|
|
+ Max = Limit;
|
|
|
+ VIRTUAL PROCEDURE Draw;
|
|
|
+ PROCEDURE Move(dx, dy : INTEGER);
|
|
|
+ PROCEDURE Area() : INTEGER;
|
|
|
+ END Shape;
|
|
|
+ CLASS Circle (Shape);
|
|
|
+ r : INTEGER;
|
|
|
+ PROCEDURE SetR(v : INTEGER);
|
|
|
+ END Circle;
|
|
|
+ CLASS Multi (Shape, Circle);
|
|
|
+ END Multi;
|
|
|
+CLASS IMPLEMENTATION Circle;
|
|
|
+ PROCEDURE SetR(v : INTEGER);
|
|
|
+ PROCEDURE Helper() : INTEGER;
|
|
|
+ BEGIN
|
|
|
+ END Helper;
|
|
|
+ BEGIN
|
|
|
+ END SetR;
|
|
|
+BEGIN
|
|
|
+END Circle;
|
|
|
+BEGIN
|
|
|
+END Showcase5.
|