xref: /titanic_51/usr/src/common/ficl/test/ooptest.fr (revision a1bf3f785ae05c419b339c3a2061f2b18c024f61)
1*a1bf3f78SToomas Soome\ OOP test stuff
2*a1bf3f78SToomas Soome
3*a1bf3f78SToomas Soomeonly
4*a1bf3f78SToomas Soomealso oop definitions
5*a1bf3f78SToomas Soome
6*a1bf3f78SToomas Soomeobject subclass c-aggregate
7*a1bf3f78SToomas Soomec-byte obj: m0
8*a1bf3f78SToomas Soomec-byte obj: m1
9*a1bf3f78SToomas Soomec-4byte obj: m2
10*a1bf3f78SToomas Soomec-2byte obj: m3
11*a1bf3f78SToomas Soomeend-class
12*a1bf3f78SToomas Soome
13*a1bf3f78SToomas Soomeobject --> sub class1
14*a1bf3f78SToomas Soome
15*a1bf3f78SToomas Soomecell: .a
16*a1bf3f78SToomas Soomecell: .b
17*a1bf3f78SToomas Soome: init
18*a1bf3f78SToomas Soome	locals| class inst |
19*a1bf3f78SToomas Soome	0 inst class --> .a !
20*a1bf3f78SToomas Soome	1 inst class --> .b !
21*a1bf3f78SToomas Soome;
22*a1bf3f78SToomas Soomeend-class
23*a1bf3f78SToomas Soome
24*a1bf3f78SToomas Soomeclass1 --> new c1inst
25*a1bf3f78SToomas Soome
26*a1bf3f78SToomas Soomeclass1 --> sub class2
27*a1bf3f78SToomas Soomecell: .c
28*a1bf3f78SToomas Soomecell: .d
29*a1bf3f78SToomas Soome
30*a1bf3f78SToomas Soome: init
31*a1bf3f78SToomas Soome	locals| class inst |
32*a1bf3f78SToomas Soome	inst class --> super --> init
33*a1bf3f78SToomas Soome	2 inst class --> .c !
34*a1bf3f78SToomas Soome	3 inst class --> .d !
35*a1bf3f78SToomas Soome;
36*a1bf3f78SToomas Soomeend-class
37*a1bf3f78SToomas Soome
38*a1bf3f78SToomas Soomeclass2 --> new c2inst
39*a1bf3f78SToomas Soome
40*a1bf3f78SToomas Soomeobject subclass c-list
41*a1bf3f78SToomas Soomec-list ref: link
42*a1bf3f78SToomas Soomec-ref  obj: payload
43*a1bf3f78SToomas Soomeend-class
44*a1bf3f78SToomas Soome
45*a1bf3f78SToomas Soome\ test stuff from ficl.html
46*a1bf3f78SToomas Soome.( metaclass methods ) cr
47*a1bf3f78SToomas Soomemetaclass --> methods
48*a1bf3f78SToomas Soome
49*a1bf3f78SToomas Soomecr .( c-foo class ) cr
50*a1bf3f78SToomas Soomeobject --> sub c-foo
51*a1bf3f78SToomas Soomecell: m_cell1
52*a1bf3f78SToomas Soome    4 chars: m_chars
53*a1bf3f78SToomas Soome    : init   ( inst class -- )
54*a1bf3f78SToomas Soome        locals| class inst |
55*a1bf3f78SToomas Soome        0 inst class --> m_cell1 !
56*a1bf3f78SToomas Soome        inst class --> m_chars 4 0 fill
57*a1bf3f78SToomas Soome        ." initializing an instance of c_foo at " inst x. cr
58*a1bf3f78SToomas Soome    ;
59*a1bf3f78SToomas Soomeend-class
60*a1bf3f78SToomas Soome
61*a1bf3f78SToomas Soome.( c-foo instance methods... ) cr
62*a1bf3f78SToomas Soomec-foo --> new foo-instance
63*a1bf3f78SToomas Soomecr
64*a1bf3f78SToomas Soomefoo-instance --> methods
65*a1bf3f78SToomas Soomefoo-instance --> pedigree
66*a1bf3f78SToomas Soomecr
67*a1bf3f78SToomas Soomefoo-instance 2dup
68*a1bf3f78SToomas Soome    --> methods
69*a1bf3f78SToomas Soome    --> pedigree
70*a1bf3f78SToomas Soomecr
71*a1bf3f78SToomas Soomec-foo --> see init
72*a1bf3f78SToomas Soomecr
73*a1bf3f78SToomas Soomefoo-instance --> class --> see init
74