]> gitweb.ps.run Git - toc/blob - test/test2.toc
example and todo
[toc] / test / test2.toc
1 func puts(str : char*) : void;\r
2 \r
3 namespace N1 {\r
4   func f1() : void {\r
5     puts("Hello\n");\r
6   }\r
7   namespace N2 {\r
8     struct S1 {\r
9       i1 : int;\r
10       i2 : int;\r
11       i3 : int;\r
12 \r
13       m1(i: int) : int {\r
14         this->i3 = this->i1 * this->i2;\r
15 \r
16         N1::f1();\r
17 \r
18         return this->i1 + this->i2;\r
19       }\r
20     }\r
21 \r
22     func f1() : void {\r
23       var s1 : N1::N2::S1;\r
24       s1.m1(123);\r
25     }\r
26   }\r
27 }\r
28 \r
29 struct S1<T> {\r
30   t1: T;\r
31   t2: T;\r
32 \r
33   m1() : T {\r
34     return this->t1 + this->t2;\r
35   }\r
36 }\r
37 \r
38 struct S2 {\r
39   abc(): S2 { }\r
40   xyz(): S2 { }\r
41 }\r
42 \r
43 func generic1<A>(a1 : A, a2 : A) : A {\r
44   return a1 + a2;\r
45 }\r
46 \r
47 func main(argc : int, argv : char**) : int {\r
48   var s1 : N1::N2::S1;\r
49   var s2 : N1::N2::S1;\r
50   var s3 : N1::N2::S1;\r
51   s1.i1 = 123;\r
52   s1.i2 = 456;\r
53   s1.m1(s2.m1(s3.m1(89)));\r
54 \r
55   N1::N2::f1();\r
56 \r
57   var s4 : S1<int>;\r
58   s4.t1 = 123;  \r
59   s4.t2 = 456;  \r
60   s4.m1();\r
61 \r
62   generic1<int>(1, 2);\r
63   generic1<double>(3.4, 5.6);\r
64 \r
65   var s: S2;\r
66   s.abc().xyz();\r
67 \r
68   return 0;\r
69 }