smalltalk-tng
view experiments/oo.tng @ 321:c4a0718c2d3c
Sketch of dependencies
| author | Tony Garnock-Jones <tonygarnockjones@gmail.com> |
|---|---|
| date | Sat Oct 08 15:36:03 2011 -0400 (7 months ago) |
| parents | |
| children |
line source
1 <class> methods at: #subClass:instanceVariables:classVariables: put:
2 [ self aName ivars cvars ->
3 n = self class new.
4 n super: self.
5 n printName: aName.
6 n instanceVariables: ivars.
7 n classVariables: cvars.
8 n ].
10 <class> methods at: #inheritanceChain put:
11 [ self ->
12 cond super isNil => nil
13 | super :: super inheritanceChain ]
15 <class> methods at: #writeOn: put:
16 [ self port -> {'#<class ', self printName, '>'} sequence: [ x -> port display: x ] ].
18 <class> methods at: #displayOn: put:
19 [ self port -> self writeOn: port ].
21 !<object> methodsFor: 'printing'
22 !dissectOn: port
24 print = [ x -> port display: x ].
26 {'An instance of class ', self class printName, '.\n', 'Instance variables:\n'}
27 sequence: print.
29 loop = [ class ->
30 cond class isNil => nil
31 | class == <object> => nil
32 | ({'--------', class printName, '\n'} sequence: print.
33 class instanceVariables sequence:
34 [ ivar ->
35 {'\t', ivar, '\t\t', self instanceVariableAt: ivar, '\n'} sequence: print ].
36 loop (class super)) ].
37 loop (self class)
38 ].
40 <object> methods at: #dissect put:
41 [ self -> self dissectOn: System stdout ].
43 <object> methods at: #isInstanceOf: put:
44 [ self aClass ->
45 loop = [ c ->
46 cond c isNil => False
47 | c == aClass => True
48 | loop (c super) ].
49 loop (self class) ].
