-
Notifications
You must be signed in to change notification settings - Fork 11
/
direct-state-access-write-in-inheritance-chain.eo
152 lines (147 loc) · 3.09 KB
/
direct-state-access-write-in-inheritance-chain.eo
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# 2022-07-18T12:42:28.164424800
# j2eo team
+package directStateAccess
+alias stdlib.lang.class__Object
+alias stdlib.primitives.prim__int
[] > class__A
class__Object > super
super > @
[] > new
class__Object.new > super
super > @
"class__A" > className
[this] > init
seq > @
variableDeclaration_1
[] > variableDeclaration_1
this.state.write > @
initializerSimple_1
[] > initializerSimple_1
literal_1 > @
[] > literal_1
prim__int.constructor_2 > @
prim__int.new
0
prim__int.constructor_1 > state
prim__int.new
# null :: null -> void
[this] > constructor
seq > @
initialization
statementExpression_1
this
[] > initialization
this.init > @
this
[] > statementExpression_1
this.super.constructor > @
this.super
[] > class__B
class__A > super
super > @
[] > new
class__A.new > super
super > @
"class__B" > className
[this] > init
seq > @
TRUE
# null :: null -> void
[this] > constructor
seq > @
initialization
statementExpression_2
this
[] > initialization
this.init > @
this
[] > statementExpression_2
this.super.constructor > @
this.super
[] > class__C
class__B > super
super > @
[] > new
class__B.new > super
super > @
"class__C" > className
[this] > init
seq > @
TRUE
# n :: int -> void
[this x] > n
seq > @
statementExpression_3
[] > statementExpression_3
simpleReference_1.write > @
binary_1
[] > simpleReference_1
state > @
[] > binary_1
simpleReference_2.add > @
literal_2
[] > simpleReference_2
x > @
[] > literal_2
prim__int.constructor_2 > @
prim__int.new
2
# null :: null -> void
[this] > constructor
seq > @
initialization
statementExpression_4
this
[] > initialization
this.init > @
this
[] > statementExpression_4
this.super.constructor > @
this.super
[] > class__Test
class__Object > super
super > @
[] > new
class__Object.new > super
super > @
"class__Test" > className
[this] > init
seq > @
TRUE
# main :: String[] -> void
[args] > main
seq > @
variableDeclaration_2
statementExpression_5
cage > c
[] > variableDeclaration_2
c.write > @
initializerSimple_3
[] > initializerSimple_3
instanceCreation_1 > @
[] > instanceCreation_1
class__C.constructor > @
class__C.new
[] > statementExpression_5
c.n > @
c
literal_3
[] > literal_3
prim__int.constructor_2 > @
prim__int.new
3
# null :: null -> void
[this] > constructor
seq > @
initialization
statementExpression_6
this
[] > initialization
this.init > @
this
[] > statementExpression_6
this.super.constructor > @
this.super
[args...] > main
class__Test.main > @
*