new tasks

This commit is contained in:
Ingy döt Net 2013-04-09 00:46:50 -07:00
parent 2a4d27cea0
commit 80737d5a6a
1194 changed files with 15353 additions and 1 deletions

View file

@ -0,0 +1,12 @@
class MAIN is
main is
test ::= #CLASSTEST(1, 2, 3);
-- the previous line is syntactic sugar for
-- test :CLASSTEST := CLASSTEST::create(1, 2, 3);
#OUT + test.z + "\n"; -- we can access z
test.z := 25; -- we can set z
#OUT + test.x + "\n"; -- we can get x
-- test.x := 5; -- we cannot set x
#OUT + test.getPrivateY(0) + "\n";
end;
end;

View file

@ -0,0 +1,21 @@
class CLASSTEST is
readonly attr x:INT; -- give a public getter, not a setter
private attr y:INT; -- no getter, no setter
attr z:INT; -- getter and setter
-- constructor
create(x, y, z:INT):CLASSTEST is
res :CLASSTEST := new; -- or res ::= new
res.x := x;
res.y := y;
res.z := z;
return res;
end;
-- a getter for the private y summed to s
getPrivateY(s:INT):INT is
-- y is not shadowed so we can write y instead of
-- self.y
return y + s;
end;
end;