]> gitweb.ps.run Git - toc/blobdiff - test/test.toc
add antlr source code and ReadMe
[toc] / test / test.toc
index b3ff1eabaddfa16a77e8ec8e78fffcf5a220c7e6..bff757a44de06709afd3d73c479d3f350d92f55d 100644 (file)
@@ -7,13 +7,13 @@ var global1 : int;
 var global2 : double = 123.45;\r
 \r
 func globalFunc() : void {\r
 var global2 : double = 123.45;\r
 \r
 func globalFunc() : void {\r
-  //puts("Hello\n");\r
+  puts("Hello\n");\r
 }\r
 \r
 // structs and functions can be declared generic\r
 // by providing a list of placeholder typenames\r
 struct S1<T1, T2> {\r
 }\r
 \r
 // structs and functions can be declared generic\r
 // by providing a list of placeholder typenames\r
 struct S1<T1, T2> {\r
-  t1: T1;\r
+  t1: T1 *;\r
   t2: T1;\r
 \r
   m1() : T2 {\r
   t2: T1;\r
 \r
   m1() : T2 {\r
@@ -21,12 +21,6 @@ struct S1<T1, T2> {
   }\r
 }\r
 \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
 func generic1<A>(a1 : A, a2 : A) : A {\r
   return a1 + a2;\r
 }\r
@@ -64,6 +58,14 @@ namespace N1 {
       }\r
     }\r
 \r
       }\r
     }\r
 \r
+    struct S2 {\r
+      s: char *;\r
+      abc(): S1 {\r
+        var result : S1;\r
+        return result;\r
+      }\r
+    }\r
+\r
     func f1() : void {\r
       // these have the same type\r
       var s1 : N1::N2::S1;\r
     func f1() : void {\r
       // these have the same type\r
       var s1 : N1::N2::S1;\r
@@ -74,6 +76,13 @@ namespace N1 {
   }\r
 }\r
 \r
   }\r
 }\r
 \r
+struct List<T> {\r
+  array: T *;\r
+  get(index: int): T {\r
+    return this->array[index];\r
+  }\r
+}\r
+\r
 func main(argc : int, argv : char**) : int {\r
   var s1 : N1::N2::S1;\r
   var s2 : N1::N2::S1;\r
 func main(argc : int, argv : char**) : int {\r
   var s1 : N1::N2::S1;\r
   var s2 : N1::N2::S1;\r
@@ -93,8 +102,13 @@ func main(argc : int, argv : char**) : int {
   generic1<int>(1, 2);\r
   generic1<double>(3.4, 5.6);\r
 \r
   generic1<int>(1, 2);\r
   generic1<double>(3.4, 5.6);\r
 \r
-  var s: S2;\r
-  s.abc().xyz();\r
+  var s: N1::N2::S2;\r
+  s.abc();\r
+\r
+  var l1: List<int>;\r
+  l1.get(1);\r
+  \r
+  var i1: int = generic1<int>(1, 2);\r
 \r
   return 0;\r
 }
\ No newline at end of file
 \r
   return 0;\r
 }
\ No newline at end of file