blob: 2b85b4d829d890ffc58db0b41f10e8ddf0ae661f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
CLASS Leaf
Value : INTEGER
PROCEDURE New()
OUTPUT "leaf:", Value
Value <- 3
ENDPROCEDURE
ENDCLASS
CLASS Pair
First : Leaf
Second : Leaf
PROCEDURE NEW()
OUTPUT "pair:", First.Value + Second.Value
ENDPROCEDURE
ENDCLASS
TYPE Wrapped
DECLARE Item : Pair
ENDTYPE
CLASS Named
Text : STRING
PROCEDURE NEW(Name : STRING)
Text <- Name
ENDPROCEDURE
ENDCLASS
CLASS Plain
Value : INTEGER
ENDCLASS
DECLARE A : Leaf
DECLARE B : Leaf()
DECLARE N : Named("name")
OUTPUT N.Text
DECLARE P : Plain()
OUTPUT P.Value
DECLARE Items : ARRAY[-1:0, 2:3] OF Leaf
OUTPUT Items[-1,2].Value, ",", Items[0,3].Value
DECLARE W : Wrapped
OUTPUT W.Item.First.Value, ",", W.Item.Second.Value
DECLARE Index : INTEGER
FOR Index <- 1 TO 2
DECLARE Local : Leaf
OUTPUT Local.Value
Local.Value <- 99
NEXT Index
|