-func puts(str : char*) : void;\r
-\r
-namespace N1 {\r
- var v1 : int;\r
- func f1() : void {\r
- puts("Hello\n");\r
- }\r
- struct S1 {\r
- test : char *;\r
- }\r
- // hallo\r
- namespace N2 {\r
- var v1 : int; //buige\r
- struct S1 {\r
- i1 : int;\r
- i2 : int;\r
- i3 : int;\r
-\r
- m1(i: int) : int {\r
- this->i3 = this->i1 * this->i2;\r
-\r
- f1(v1);\r
- N1::f1(N1::v1);\r
- N2::f1(N2::v1);\r
- N1::N2::f1();\r
-\r
- return this->i1 + this->i2;\r
- }\r
- }\r
-\r
- func f1() : void {\r
- var s1 : N1::N2::S1;\r
- var s2 : S1;\r
-\r
- s1.m1(123);\r
- }\r
- }\r
-}\r
-\r
-struct S1<T> {\r
- t1: T;\r
- t2: T;\r
-\r
- m1() : T {\r
- return this->t1 + this->t2;\r
- }\r
-}\r
-\r
-struct S2 {\r
- s: char *;\r
- abc(): S2 { }\r
- xyz(): S2 { }\r
-}\r
-\r
-func generic1<A>(a1 : A, a2 : A) : A {\r
- return a1 + a2;\r
-}\r
-\r
-func main(argc : int, argv : char**) : int {\r
- var s1 : N1::N2::S1;\r
- var s2 : N1::N2::S1;\r
- var s3 : N1::S1;\r
- s1.i1 = 123;\r
- s1.i2 = 456;\r
- s1.m1(s2.m1(s3.m1(89)));\r
-\r
- N1::N2::f1();\r
-\r
- var s4 : S1<int>;\r
- s4.t1 = 123; \r
- s4.t2 = 456; \r
- s4.m1();\r
-\r
- generic1<int>(1, 2);\r
- generic1<double>(3.4, 5.6);\r
-\r
- var s: S2;\r
- s.abc().xyz();\r
-\r
- return 0;\r
-}
\ No newline at end of file