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