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