diff options
| author | Patrick Schönberger | 2021-08-04 21:44:26 +0200 |
|---|---|---|
| committer | Patrick Schönberger | 2021-08-04 21:44:26 +0200 |
| commit | b9322dfb8efe37f6f88a899269bdf21015f4db9a (patch) | |
| tree | 837a9aadd80723f6c3d672fe0c9ae04f4f0864c8 /test/test2.toc | |
| parent | c2ba7425955ae538e220cec79d9124756d1b4c8b (diff) | |
| download | toc-b9322dfb8efe37f6f88a899269bdf21015f4db9a.tar.gz toc-b9322dfb8efe37f6f88a899269bdf21015f4db9a.zip | |
generic functions and structs
Diffstat (limited to 'test/test2.toc')
| -rw-r--r-- | test/test2.toc | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/test/test2.toc b/test/test2.toc new file mode 100644 index 0000000..6e8d4f8 --- /dev/null +++ b/test/test2.toc @@ -0,0 +1,61 @@ +func puts(str : char*) : void;
+
+namespace N1 {
+ func f1() : void {
+ puts("Hello\n");
+ }
+ namespace N2 {
+ struct S1 {
+ i1 : int;
+ i2 : int;
+ i3 : int;
+
+ m1(i: int) : int {
+ this->i3 = this->i1 * this->i2;
+
+ N1::f1();
+
+ return this->i1 + this->i2;
+ }
+ }
+
+ func f1() : void {
+ var s1 : N1::N2::S1;
+ s1.m1(123);
+ }
+ }
+}
+
+struct S1<T> {
+ t1: T;
+ t2: T;
+
+ m1() : T {
+ return this->t1 + this->t2;
+ }
+}
+
+func generic1<A>(a1 : A, a2 : A) : A {
+ return a1 + a2;
+}
+
+func main(argc : int, argv : char**) : int {
+ var s1 : N1::N2::S1;
+ var s2 : N1::N2::S1;
+ var s3 : N1::N2::S1;
+ s1.i1 = 123;
+ s1.i2 = 456;
+ s1.m1(s2.m1(s3.m1(89)));
+
+ N1::N2::f1();
+
+ var s4 : S1<int>;
+ s4.t1 = 123;
+ s4.t2 = 456;
+ s4.m1();
+
+ generic1<int>(1, 2);
+ generic1<double>(3.4, 5.6);
+
+ return 0;
+}
\ No newline at end of file |
