cfad47cfa3/t3compiler/tads3/test/data/intcls2.t

4b825dc642cb6eb9a060e54bf8d69288fbee4904cfad47cfa334b206c65f22086bcc5d63e6f70944
1
/*
2
 *   intrinsic classes 
3
 */
4
5
#include "tads.h"
6
#include "t3.h"
7
#include "bignum.h"
8
#include "dict.h"
9
10
dictionary gDict;
11
12
main(args)
13
{
14
    local x, y;
15
    
16
    x = BigNumber;
17
    y = x.getPi(10);
18
    "y = <<y>>\n";
19
20
    "y is a BigNumber: <<sayTF(y.ofKind(BigNumber))>>\n";
21
    "y is a Dictionary: <<sayTF(y.ofKind(Dictionary))>>\n";
22
    "y is an IntrinsicClass: <<sayTF(y.ofKind(IntrinsicClass))>>\n";
23
    "gDict is a Dictionary: <<sayTF(gDict.ofKind(Dictionary))>>\n";
24
    "BigNumber is an IntrinsicClass:
25
        <<sayTF(BigNumber.ofKind(IntrinsicClass))>>\n";
26
    "IntrinsicClass is an IntrinsicClass:
27
        <<sayTF(IntrinsicClass.ofKind(IntrinsicClass))>>\n";
28
    "y is an Object: <<sayTF(y.ofKind(Object))>>\n";
29
    "BigNumber is an Object: <<sayTF(BigNumber.ofKind(Object))>>\n";
30
31
    "\b";
32
    
33
    "first superclass of y = BigNumber:
34
      <<sayTF(y.getSuperclassList()[1] == BigNumber)>>\n";
35
    "first superclass of y = Dictionary:
36
      <<sayTF(y.getSuperclassList()[1] == Dictionary)>>\n";
37
38
    "number of superclasses of BigNumber:
39
      <<BigNumber.getSuperclassList().length()>>\n";
40
    "first superclass of BigNumber = IntrinsicClass:
41
      <<sayTF(BigNumber.getSuperclassList()[1] == IntrinsicClass)>>\n";
42
43
    "\b";
44
    
45
    y = 'abc';
46
    "y = '<<y>>' (constant)\n";
47
    "y is a String: <<sayTF(y.ofKind(String))>>\n";
48
    "y is a List: <<sayTF(y.ofKind(List))>>\n";
49
    "y is a Object: <<sayTF(y.ofKind(Object))>>\n";
50
    "first superclass of y = String:
51
        <<sayTF(y.getSuperclassList()[1] == String)>>\n";
52
    "first superclass of y = List:
53
        <<sayTF(y.getSuperclassList()[1] == List)>>\n";
54
55
    "\b";
56
    y += 'def';
57
    "y = '<<y>>' (object)\n";
58
    "y is a String: <<sayTF(y.ofKind(String))>>\n";
59
    "y is a List: <<sayTF(y.ofKind(List))>>\n";
60
    "y is a Object: <<sayTF(y.ofKind(Object))>>\n";
61
    "first superclass of y = String:
62
        <<sayTF(y.getSuperclassList()[1] == String)>>\n";
63
    "first superclass of y = List:
64
        <<sayTF(y.getSuperclassList()[1] == List)>>\n";
65
66
    "\b";
67
    y = [1, 2, 3];
68
    "y = [1,2,3] (constant)\n";
69
    "y is a String: <<sayTF(y.ofKind(String))>>\n";
70
    "y is a List: <<sayTF(y.ofKind(List))>>\n";
71
    "y is a Object: <<sayTF(y.ofKind(Object))>>\n";
72
    "first superclass of y = String:
73
        <<sayTF(y.getSuperclassList()[1] == String)>>\n";
74
    "first superclass of y = List:
75
        <<sayTF(y.getSuperclassList()[1] == List)>>\n";
76
77
    "\b";
78
    y += [4,5];
79
    "y = [1,2,3,4,5] (object)\n";
80
    "y is a String: <<sayTF(y.ofKind(String))>>\n";
81
    "y is a List: <<sayTF(y.ofKind(List))>>\n";
82
    "y is a Object: <<sayTF(y.ofKind(Object))>>\n";
83
    "first superclass of y = String:
84
        <<sayTF(y.getSuperclassList()[1] == String)>>\n";
85
    "first superclass of y = List:
86
        <<sayTF(y.getSuperclassList()[1] == List)>>\n";
87
}
88
89
sayTF(val)
90
{
91
    if (val)
92
        "yes";
93
    else
94
        "no";
95
}
96
97
preinit()
98
{
99
}
100