]> Nishi Git Mirror - gwion.git/commitdiff
:art: Open templates with ':' (first char)
authorJérémie Astor <astor.jeremie@wanadoo.fr>
Sun, 13 Sep 2020 23:19:45 +0000 (01:19 +0200)
committerJérémie Astor <astor.jeremie@wanadoo.fr>
Sun, 13 Sep 2020 23:19:45 +0000 (01:19 +0200)
108 files changed:
ast
examples/binary_tmpl.gw
examples/implicit_fptr_tmpl.gw
examples/implicit_ptr.gw
examples/in_class_class.gw
examples/ptr_assign.gw
examples/ptr_cast.gw
examples/ptr_deref.gw
examples/template.gw
examples/template_dyn.gw
examples/template_guess.gw
examples/template_vararg.gw
plug
src/env/func.c
src/env/type.c
src/import/checker.c
src/lib/object_op.c
src/lib/ptr.c
src/lib/shred.c
src/parse/check.c
src/parse/operator.c
tests/bug/Tester.gw
tests/error/call_non_template.gw
tests/error/empty_ptr.gw
tests/error/invalid_pointer_cast.gw
tests/error/non_function_template.gw
tests/error/ptr_assign_const.gw
tests/error/ptr_assign_invalid.gw
tests/error/ptr_from_const.gw
tests/error/ptr_implicit_const.gw
tests/error/template_class_no_type.gw
tests/error/template_dyn2.gw
tests/error/template_enough.gw
tests/error/template_n_mismatch.gw
tests/error/template_no_match.gw
tests/error/template_non_member.gw
tests/error/template_not_able.gw
tests/error/template_overload.gw
tests/error/template_ternary.gw
tests/error/template_unknown.gw
tests/error/type_not_template.gw
tests/error/typedef_func_tmpl_types.gw
tests/error/typedef_func_tmpl_types2.gw
tests/fork/fork_call.gw
tests/fptr/fptr_tmpl_cast.gw
tests/import/class_template.c
tests/import/class_template.gw
tests/import/class_template_fail.c
tests/import/class_template_invalid.c
tests/import/fptr_tmpl.c
tests/import/fptr_tmpl_fail.c
tests/import/func_fail2.c
tests/import/func_fail3.c
tests/import/func_fail4.c
tests/import/func_tmpl.c
tests/import/func_tmpl.gw
tests/import/func_tmpl_fail.c
tests/import/invalid_names.c
tests/import/invalid_names3.c
tests/import/map2.gw
tests/import/typedef_fail.c
tests/import/typedef_tmpl.c
tests/import/union_tmpl.c
tests/import/union_tmpl.gw
tests/import/union_tmpl_fail.c
tests/import/union_tmpl_fail2.c
tests/import/union_tmpl_fail3.c
tests/new/dottmpl.gw
tests/new/dtor.gw
tests/new/extend_template_union.gw
tests/new/parent.gw
tests/new/pure.gw
tests/new/pure_member.gw
tests/new/recursive_template.gw
tests/new/recursive_template0.gw
tests/new/recursive_template1.gw
tests/new/recursive_template2.gw
tests/new/recursive_template3.gw
tests/new/recursive_template_test.gw
tests/new/static_tmpl2.gw
tests/new/template_class_in_template.gw
tests/new/template_dyn.gw
tests/new/test.gw
tests/new/test2.gw
tests/new/typedef_func_tmpl_class.gw
tests/new/typedef_func_tmpl_class_static.gw
tests/new/typedef_func_tmpl_err.gw
tests/new/typedef_func_tmpl_tmpl.gw
tests/regression/invalid_template.gw
tests/struct/struct_template.gw
tests/tree/auto_ptr.gw
tests/tree/call_nonnull.gw
tests/tree/class_not_template_inside_template.gw
tests/tree/class_template.gw
tests/tree/cpy_ast.gw
tests/tree/extent_template.gw
tests/tree/get_type_name_test.gw
tests/tree/static_template.gw
tests/tree/static_tmpl.gw
tests/tree/template_class_invalid_type_number.gw
tests/tree/template_class_ref.gw
tests/tree/template_fptr.gw
tests/tree/template_self.gw
tests/tree/tmpl_fail_inner.gw
tests/tree/typedef_func_tmpl.gw
tests/tree/typedef_func_tmpl2.gw
tests/tree/typedef_func_tmpl_class.gw
tests/tree/union_tmpl.gw

diff --git a/ast b/ast
index 5dcf6d41e3441deafd0f76aae4b8797af0732339..d460cbba959c3706c9488511c097fb6d0ed9e871 160000 (submodule)
--- a/ast
+++ b/ast
@@ -1 +1 @@
-Subproject commit 5dcf6d41e3441deafd0f76aae4b8797af0732339
+Subproject commit d460cbba959c3706c9488511c097fb6d0ed9e871
index 46a04c6c6723ce940e12ed147a49f94334386bea..6e6d0b4b3b22493631f12b75990e627b6449aa96 100644 (file)
@@ -2,7 +2,7 @@ class C {
   class D {
   }
 }
-fun void test<[A](A a) { <<< a >>>; }
+fun void test:[A](A a) { <<< a >>>; }
 1 => test;
 1.3 => test;
 test(1);
index 73ad996b96d493455a1b4d39ca336a35116b4ddc..6e0e2105463be502b9a15839f083d011091b184b 100644 (file)
@@ -1,8 +1,8 @@
-typedef void t_ptr<[A]();
+typedef void t_ptr:[A]();
 fun void test(t_ptr p) {
    <<< p >>>;
 }
-fun void t<[A]() {
+fun void t:[A]() {
 }
 
 t => test;
index 4f894a4d882b0bce293718f33c621e692c1a1d08..58b94db134be479f1aa420bd2bf855f9884a66fd 100644 (file)
@@ -1,4 +1,4 @@
-fun void test(Ptr<[int] p) {
+fun void test(Ptr:[int] p) {
    <<< *p >>>;
 }
 var int i => test;
index ee81714de816d020acda3ae9887fc25bc11ad5c2..6b4fe3969d6bb0933bc619f390b30712943fbc39 100644 (file)
@@ -1,5 +1,5 @@
 class C {
-       fun void test<[A](A a){ <<< a >>>; }
+       fun void test:[A](A a){ <<< a >>>; }
        class D { var int i;}
 }
 
index cd2628c52c21b3122244b7c34d12d29470a48763..ba71a88b21a662f7c923563eb7ae9e84799db6a3 100644 (file)
@@ -3,4 +3,4 @@ class C {
 class D extends C {
 }
 var D d;
-d :=> var Ptr<[C] pd;
+d :=> var Ptr:[C] pd;
index eb499b5e055b46833da9d8e9c6b14b2b80322611..5a653f44a6094c4a498d64ba7beebfe750573d7a 100644 (file)
@@ -1,2 +1,2 @@
 12 => var int i;
-<<<i   $ Ptr<[int] >>>;
+<<<i   $ Ptr:[int] >>>;
index e3e5f98807fb0fa84bccc25e4438ad2c964a774e..495280bb5b59ba2d4214e3b54b1817475b19cf4f 100644 (file)
@@ -1,3 +1,3 @@
 var int i;
-i :=> var Ptr<[int] pti;
+i :=> var Ptr:[int] pti;
 <<<12 => *pti, " ", *pti>>>;
index 5de4d6990fd4381f0a7194bc47f689cc998b913f..a0848993458f997cd5812a811140bb393656181c 100644 (file)
@@ -1,4 +1,4 @@
-fun void test<[A] (A a){ <<<  a >>>; }
-fun void test<[A,B] (A a, B b){ <<<  a >>>; }
-test<[int](1);
-test<[float, float](3, 1.4);
+fun void test:[A] (A a){ <<<  a >>>; }
+fun void test:[A,B] (A a, B b){ <<<  a >>>; }
+test:[int](1);
+test:[float, float](3, 1.4);
index 87cf3a4af85d70166d5d1a2eebac214132d32da9..32e81dfe20be309de4ad2a3b54bda82155a6c49e 100644 (file)
@@ -4,15 +4,15 @@ fun void test(C cc, int i) { <<< 1 >>>; <<< cc.test(i, i) >>>; }
 
 
 class C {
-  fun int test<[A](A a) { <<< " A ", a >>>; }
-  fun int test<[A](A a, int i) { <<< " ", a  >>>; }
-  fun int test<[A](A a, int i, int j) { <<< a >>>; }
+  fun int test:[A](A a) { <<< " A ", a >>>; }
+  fun int test:[A](A a, int i) { <<< " ", a  >>>; }
+  fun int test:[A](A a, int i, int j) { <<< a >>>; }
 }
 class D extends C {
-  fun int test<[A](A a, int i) { <<< this, " extent ", a, __func__ >>>; }
+  fun int test:[A](A a, int i) { <<< this, " extent ", a, __func__ >>>; }
 }
 class E extends D {
-  fun int test<[A](A a, int i) { <<< this, " Extent ", a, __func__ >>>; }
+  fun int test:[A](A a, int i) { <<< this, " Extent ", a, __func__ >>>; }
 }
 
 
index 6a95245ef95c77093134934f093f09b78ca61fc7..64fab797ab17ca1f00b9128fc4d1366e9f19083a 100644 (file)
@@ -1,4 +1,4 @@
-fun void test<[A,B](A a, B b){<<< a, ", ", b >>>;}
+fun void test:[A,B](A a, B b){<<< a, ", ", b >>>;}
 test(1, 2.1);
 test(1.1, 2.1);
 test(1.2, 2);
index bc292725d1888589b5ed24ff6eb04c0ed43f4fd5..a8d5ceb78d31cbe77f2124809d9edcc09bab4f48 100644 (file)
@@ -1,7 +1,7 @@
-fun void test<[A](...) {
+fun void test:[A](...) {
   varloop vararg {
     <<< vararg $ int >>>;
   }
 }
-test<[int](1, 2);
-test<[float](1, 2, 3);
+test:[int](1, 2);
+test:[float](1, 2, 3);
diff --git a/plug b/plug
index cf2a0ab7afe7f690fa043d6db8aba45c0621e2be..f0665cb2b05614dddb863fd3b28a9a2cc770fb3c 160000 (submodule)
--- a/plug
+++ b/plug
@@ -1 +1 @@
-Subproject commit cf2a0ab7afe7f690fa043d6db8aba45c0621e2be
+Subproject commit f0665cb2b05614dddb863fd3b28a9a2cc770fb3c
index e039468f350faecd15597d3ef78ff5300abe5438..a1bda1022a2eb6afc64ae73798c5bf44d8e8935a 100644 (file)
@@ -30,7 +30,7 @@ ANN2(1,2) Symbol func_symbol(const Env env, const m_str nspc, const m_str base,
   const size_t len = base_len + tmpl_len + nspc_len + idx_len + 2;
   char name[len + 1];
   CHECK_BO(sprintf(name, "%s%s%s%s@%" UINT_F "@%s",
-    base, !tmpl ? "" : "<[", !tmpl ? "" : tmpl, !tmpl ? "" : "]",
+    base, !tmpl ? "" : ":[", !tmpl ? "" : tmpl, !tmpl ? "" : "]",
     i, nspc))
   return insert_symbol(env->gwion->st, name);
 }
index a357b63984fe19d448c134c85665bd2c7057cbfa..bc6e3126688f4c33e4303547e944ac4c6f105000 100644 (file)
@@ -148,7 +148,7 @@ ANN m_bool type_ref(Type t) {
 ANN m_str get_type_name(const Env env, const Type t, const m_uint index) {
   if(!index)
     return NULL;
-  m_str name = strchr(t->name, '<');
+  m_str name = strchr(t->name, ':');
   if(!name)
     return NULL;
   name += 2;
@@ -157,7 +157,7 @@ ANN m_str get_type_name(const Env env, const Type t, const m_uint index) {
   m_uint n = 1;
   char c, buf[slen + 1], *tmp = buf;
   while((c = *name)) {
-    if(c == '<')
+    if(c == ':')
       ++lvl;
     else if(c == ']') {
       if(!lvl-- && n == index)
index 14c2c86c3842fe3ffb2bc2921a17576918df5dd1..b10c9fa5e8b293c063d35470b72d93a6b0b8daa0 100644 (file)
@@ -59,7 +59,7 @@ ANN static Symbol __str2sym(const Gwi gwi, struct td_checker *tdc) {
 
 ANN static inline Symbol _str2sym(const Gwi gwi, struct td_checker *tdc, const m_str path) {
   const Symbol sym = __str2sym(gwi, tdc);
-  if(*tdc->str && *tdc->str != '<')
+  if(*tdc->str && *tdc->str != ':')
     GWI_ERR_O(_("illegal character '%c' in path '%s'."), *tdc->str, path)
   return sym;
 }
@@ -106,7 +106,7 @@ ANN static ID_List _tmpl_list(const Gwi gwi, struct td_checker *tdc) {
 }
 
 ANN static ID_List __tmpl_list(const Gwi gwi, struct td_checker *tdc) {
-  if(tdc->str[0] != '<')
+  if(tdc->str[0] != ':')
     return NULL;
   if(tdc->str[1] != '[')
     return (ID_List)GW_ERROR;
@@ -192,7 +192,7 @@ ANN Type_List __str2tl(const Gwi gwi, struct td_checker *tdc) {
 }
 
 ANN static Type_List td_tmpl(const Gwi gwi, struct td_checker *tdc) {
-  if(*tdc->str != '<')
+  if(*tdc->str != ':')
     return NULL; // GW_PASS
   ++tdc->str;
   if(*tdc->str != '[') {
index d26ef7a1585f6b17bc5e7412531ca376cd788da8..ef3f409f0666bee4243dd1a47c0835a82031423f 100644 (file)
@@ -313,7 +313,7 @@ ANN static void template_name(struct tmpl_info* info, m_str s) {
   m_str str = s;
   const m_uint size = info->index = vector_size(&info->type) -1;
   str = tmpl_get(info, str);
-  *str++ = '<';
+  *str++ = ':';
   *str++ = '[';
   for(info->index = 0; info->index < size; ++info->index) {
     str = tmpl_get(info, str);
index ba9cd4a847da8ff894db4b7e0f277dd91cfe1a1a..2cfbefb250c49fc02db9ecb2e530ea7d1e892c23 100644 (file)
@@ -158,7 +158,7 @@ GWION_IMPORT(ptr) {
   GWI_BB(gwi_oper_ini(gwi, "@Ptr", NULL, NULL))
   GWI_BB(gwi_oper_add(gwi, opck_ptr_scan))
   GWI_BB(gwi_oper_end(gwi, "@scan", NULL))
-  const Type t_ptr = gwi_class_ini(gwi, "Ptr<[A]", "@Ptr");
+  const Type t_ptr = gwi_class_ini(gwi, "Ptr:[A]", "@Ptr");
   gwi->gwion->type[et_ptr] = t_ptr;
   GWI_BB(gwi_item_ini(gwi, "@internal", "@val"))
   GWI_BB(gwi_item_end(gwi, 0, NULL))
index 13606b5bc3bd24154bb661e7575499dfd3f4a882..9dc20c4ba0abc20ef3c714964d178c13514ff3fe 100644 (file)
@@ -403,7 +403,7 @@ GWION_IMPORT(shred) {
   GWI_BB(gwi_class_end(gwi))
   SET_FLAG((t_fork), abstract);
 
-  const Type t_typed = gwi_class_ini(gwi,  "TypedFork<[A]", "Fork");
+  const Type t_typed = gwi_class_ini(gwi,  "TypedFork:[A]", "Fork");
   gwi_item_ini(gwi, "A", "retval");
   GWI_BB((gwi_item_end(gwi, ae_flag_const, NULL)))
   GWI_BB(gwi_class_end(gwi))
index f28218247596d666dcaf14b118b3b879a893a228..b63c8dfc8ed74efcd9fb21a377fa626b3ba4b644 100644 (file)
@@ -704,7 +704,7 @@ ANN static Func get_template_func(const Env env, const Exp_Call* func, const Val
   assert(exp_self(func));
   ERR_O(exp_self(func)->pos,
         _("function is template. automatic type guess not fully implemented yet.\n"
-        "  please provide template types. eg: '<[type1, type2, ...]'"))
+        "  please provide template types. eg: ':[type1, type2, ...]'"))
 }
 
 ANN static Func predefined_func(const Env env, const Value v,
index 422310538a5dd60cd6ab4324205cf68cbc443f14..6e944279eea39a1dd9bd80c23f8b1fc565e564ef 100644 (file)
@@ -39,7 +39,7 @@ ANN static Type op_parent(const Env env, const Type t) {
     const Type type = typedef_base(t);
     char name[strlen(type->name)];
     strcpy(name, type->name);
-    const m_str post = strrchr(name, '<');
+    const m_str post = strrchr(name, ':');
     *post = '\0';
     return nspc_lookup_type1(env->curr, insert_symbol(env->gwion->st, name));
   }
index 32820228c5e61d9dd5b8579c4388009b24a81109..4c6f180055628eeae8f28f3e41bab078a13e94f2 100644 (file)
@@ -1,7 +1,7 @@
 class Tester
 {
-       fun int assert_equal<[A](string description, A a, A b){ if(a == b) return 0; return 1; }
-       fun int assert_not_equal<[A](string description, A a, A b){ if(a != b) return 0; return 1; }
+       fun int assert_equal:[A](string description, A a, A b){ if(a == b) return 0; return 1; }
+       fun int assert_not_equal:[A](string description, A a, A b){ if(a != b) return 0; return 1; }
 }
 
 var Tester t;
index 53d98116832897066c2e51962228a32fab41679a..fbdb7cd64f2716ad70659ebd34fa85d73d618549 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] template call of non-template function
 fun void test(){}
-test<[int]();
+test:[int]();
index f00c1a235e23632eb4db00e15d0944252b496e97..9abb39ba2d16332bb5ccf85937b4695100a34078 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] EmptyPointerException
-var Ptr<[int] t;
+var Ptr:[int] t;
 <<< *t >>>;
index 831f25028dfeeea0c20a615d8017b32f34c74035..393b1519d599d4df35549864c57a56b845164c55 100644 (file)
@@ -1,2 +1,2 @@
 #! [contains] invalid pointer cast
-<<< 1 $ Ptr<[Object] >>>;
+<<< 1 $ Ptr:[Object] >>>;
index dc97b69cf6f4296741fc2a13490bc1966d079238..8840211d235d5ecf9ee0ef16441a6209c6456ee6 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] template call of non-function value
 var int test;
-test<[int]();
+test:[int]();
index 998d87240eba3572f9e63838370f5d7c1ce733b1..52f7effe294b7288413e8829d2b283545d864445 100644 (file)
@@ -1 +1 @@
-1 :=> var Ptr<[int] pd;
+1 :=> var Ptr:[int] pd;
index fcc6da2d1d71c96044c8a1173afb43193af6ce88..5bab97e04c3a1187b18ec507667b2aa7974376cf 100644 (file)
@@ -3,4 +3,4 @@ class C {}
 class D extends C {}
 
 var D d;
-d :=> var Ptr<[int] pd;
+d :=> var Ptr:[int] pd;
index 1d30894c6f1d2bd9dbdfd7092aaef965cb124823..600b5b0075302927865724ab2f9876765599e3ad 100644 (file)
@@ -1 +1 @@
-1 :=> var Ptr<[int] i;
+1 :=> var Ptr:[int] i;
index 4c940a29731636a014bb901a2b8dec4d4f4527c8..aa172bb2b6015860f69a92925023175759b894d8 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] can't cast non-mutable value to Ptr
-fun void test(Ptr<[int] i) { <<< *i>>>; }
+fun void test(Ptr:[int] i) { <<< *i>>>; }
 1 => test;
index 4e77515b913a490de649238fb1aced2e9f31b565..860b0d2c5d579f4a4b2d7ed2118296b7264e409c 100644 (file)
@@ -1,5 +1,5 @@
 #! [contains] you must provide template types
-class C<[A] {
+class C:[A] {
   var A a;
 }
 
index 6d9e82fda9a99ef334c0193a82f0986880d96777..d13f2fc8f4dc11b9b493e6ca236b33fc1e9cafae 100644 (file)
@@ -5,15 +5,15 @@ fun void test(C cc, int i) { <<< 1 >>>; <<< cc.test(i, i) >>>; }
 
 
 class C {
-  fun int test<[A](A a) { <<< " A ", a >>>; }
-  fun int test<[A](A a, int i) { <<< " ", a  >>>; }
-  fun int test<[A](A a, int i, int j) { <<< a >>>; }
+  fun int test:[A](A a) { <<< " A ", a >>>; }
+  fun int test:[A](A a, int i) { <<< " ", a  >>>; }
+  fun int test:[A](A a, int i, int j) { <<< a >>>; }
 }
 class D extends C {
-  fun int test<[A](A a, int i) { <<< this, " extent ", a, __func__ >>>; }
+  fun int test:[A](A a, int i) { <<< this, " extent ", a, __func__ >>>; }
 }
 class E extends D {
-  fun int test<[A](A a, int i) { <<< this, " Extent ", a, _func__ >>>; }
+  fun int test:[A](A a, int i) { <<< this, " Extent ", a, _func__ >>>; }
 }
 
 
index 243a27ec77f59d5b0adcfd2b69e2840958582e55..918708c3317f4c0947e4ba7c8190c8404c505021 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] 
-fun void test<[A,B](){}
+fun void test:[A,B](){}
 test();
index b9f7ea4450aea55b665112eea372fec256ec4d1c..bf66bc22b6c439c78d904dfb545882311529f057 100644 (file)
@@ -1,6 +1,6 @@
 #! [contains] arguments do not match for template call
-fun void test<[A](){ <<< "func" >>>;}
-fun void test<[A](int i){<<< "other func" >>>;}
+fun void test:[A](){ <<< "func" >>>;}
+fun void test:[A](int i){<<< "other func" >>>;}
 
-test<[int, float, int]();
-#!test<[int]();
+test:[int, float, int]();
+#!test:[int]();
index 64ad2a81e6fc8601480598622400b0425493a08f..423127faae6f8cc187ff6f5dea16c3c3fafbc78d 100644 (file)
@@ -1,8 +1,8 @@
 #! [contains] arguments do not match for template call
 class C {
-  fun void test<[A](float f) {}
-  fun void test<[A]() {}
+  fun void test:[A](float f) {}
+  fun void test:[A]() {}
 }
 var C c;
-c.test<[int](2.3);
-c.test<[int](2.3, 2.3);
+c.test:[int](2.3);
+c.test:[int](2.3, 2.3);
index 7c1fb5646c7cd8a457686545b9b6503ff2f18446..ef2823ec006701d5b784f0dd6bfe1c154df873e0 100644 (file)
@@ -1,2 +1,2 @@
 #! [contains] 
-Math.rand<[int]();
+Math.rand:[int]();
index 8047b21377b554b21410826877edf38c170d0434..247b2faab3dab28d2cc88abd9cf86c55d04d7f17 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] not able to guess types for template call
-fun void test<[A,B](A a) {}
+fun void test:[A,B](A a) {}
 test(1);
index 4247b7ddef83e9987b43a99889813587cb2f9a37..60362027e997d7157b03196d612d2e9195e038be 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] must overload template function with template
-fun void test<[A](int i){}
+fun void test:[A](int i){}
 fun void test(int i, float f){}
index f5c5384ba714eeb5a65b3eb7bab96ce0fa97ad7e..a6b03f204db40678198de0409e33556772274221 100644 (file)
@@ -1,4 +1,4 @@
 #! [contains] invalid expression for function call
-fun void test<[A](A a){}
+fun void test:[A](A a){}
 
 (maybe ? test : test)(1);
index 30b6a684fa5ab752c16da889a38e501c4f159fc8..d3b6ca2f1e66192959e3261c95896346f59d905e 100644 (file)
@@ -1,4 +1,4 @@
 #! [contains] unknown type
-fun void my_function<[A]() { <<< "test" >>>; }
+fun void my_function:[A]() { <<< "test" >>>; }
 
-my_function<[unknown_type]();
+my_function:[unknown_type]();
index dd30ecf668ef2ea04e2affaf40d0b6f29599213d..5520722e1d97c689c14f0f81d6870c873877ae49 100644 (file)
@@ -1,2 +1,2 @@
 #! [contains] is not template
-var Object<[int] o;
+var Object:[int] o;
index 10bec2e94c34db625b001851d97db56d66508daf..502f3f31e23f957a7fae3ec7ba39b6ac6c4565f6 100644 (file)
@@ -1,15 +1,15 @@
 #! [contains] pre-defined types
-typedef void t_ptr<[A]();
+typedef void t_ptr:[A]();
 
-var t_ptr<[int] iptr;
+var t_ptr:[int] iptr;
 
-fun void test<[A]() {
+fun void test:[A]() {
   var A a;
   <<< __func__, " ", a>>>;
 }
 
 test @=> iptr;
 <<< iptr() >>>;
-<<< iptr<[int]() >>>;
-<<< iptr<[float]() >>>;
-<<< iptr<[Object]() >>>;
+<<< iptr:[int]() >>>;
+<<< iptr:[float]() >>>;
+<<< iptr:[Object]() >>>;
index 7fad8985bf7606e1892bd4cf4234f22804abf494..fcc804bfa76586ecd566b00ffb59e779c143d74c 100644 (file)
@@ -1,11 +1,11 @@
 #! [contains] pre-defined types
-typedef void t_ptr<[A]();
-typedef t_ptr<[int] B;
+typedef void t_ptr:[A]();
+typedef t_ptr:[int] B;
 
-fun void test<[A]() {
+fun void test:[A]() {
   <<< __func__ >>>;
 }
 
 test @=> var B b;
 <<< b() >>>;
-<<< b<[int]() >>>;
+<<< b:[int]() >>>;
index abf5b35116b0cc27a37f89b58a650f05f8c5c446..9164468b6680758e25cee75908c6cda24c901827 100644 (file)
@@ -2,7 +2,7 @@ fun int test() {
   return 12;
 }
 
-fork test() @=> ref TypedFork<[int] sh;
+fork test() @=> ref TypedFork:[int] sh;
 <<< typeof(sh) >>>;
 sh.ev => now;
 <<< sh.retval >>>;
index 778231db5bc4174ea810fed5bd919154e56a53e2..670e31690b426b27e9040536c12997849c21831b 100644 (file)
@@ -1,5 +1,5 @@
 class C {
-  typedef void ptr_t<[A]();
-  fun void test<[A]() {}
+  typedef void ptr_t:[A]();
+  fun void test:[A]() {}
   test $ ptr_t;
 }
index d52811a75efd5c93b4d619ea2581241d7092c136..d7ea42972276a0406a325e74accec5da689186d2 100644 (file)
@@ -25,17 +25,17 @@ static CTOR(class_template_ctor) {
 }
 
 GWION_IMPORT(class_template) {
-  GWI_OB(gwi_class_ini(gwi, "<[A,B]ClassTemplate", NULL))
+  GWI_OB(gwi_class_ini(gwi, ":[A,B]ClassTemplate", NULL))
   gwi_class_xtor(gwi, class_template_ctor, NULL);
     GWI_BB(gwi_item_ini(gwi, "A[]", "key"))
     GWI_BB((o_map_key = gwi_item_end(gwi, ae_flag_member | ae_flag_template, NULL)))
     GWI_BB(gwi_item_ini(gwi, "B[]", "value"))
     GWI_BB((o_map_value = gwi_item_end(gwi, ae_flag_member, NULL)))
-   GWI_BB(gwi_func_ini(gwi, "int", "<[C,D]test"))
+   GWI_BB(gwi_func_ini(gwi, "int", ":[C,D]test"))
    GWI_BB(gwi_func_end(gwi, (f_xfun)1, ae_flag_none))
 
   GWI_BB(gwi_class_end(gwi))
-  GWI_BB(gwi_item_ini(gwi, "<[<[int]Ptr,int[]]ClassTemplate", "testObject"))
+  GWI_BB(gwi_item_ini(gwi, ":[:[int]Ptr,int[]]ClassTemplate", "testObject"))
   GWI_BB(gwi_item_end(gwi, ae_flag_none, NULL))
   return GW_OK;
 }
index 17a85b24ccd6d3268af71dfbc44b505ecaac9a07..384326902fc33e3a145aedcad2a515d171ea5cb1 100644 (file)
@@ -1,2 +1,2 @@
-var ClassTemplate<[int, int] ct;
+var ClassTemplate:[int, int] ct;
 <<< ct.key >>>;
index 1b79d17fbbd5e45cd9283094f72bda82fd157947..b766a45e91f03a4593c40f0d14ac0699ebccf5a6 100644 (file)
@@ -10,7 +10,7 @@
 #include "gwi.h"
 
 GWION_IMPORT(class_template_fail) {
-  GWI_OB(gwi_class_ini(gwi, "<[A,B]ClassTemplate", NULL))
+  GWI_OB(gwi_class_ini(gwi, ":[A,B]ClassTemplate", NULL))
   GWI_BB(gwi_func_ini(gwi, "int", "test"))
   GWI_BB(gwi_func_end(gwi, (f_xfun)1, ae_flag_none))
   GWI_BB(gwi_class_end(gwi))
index d99513c233cc9e017da4c29bd4effb67ee5fd1b0..fdd14dea759e658fbe55a665bb0d620709a2215e 100644 (file)
@@ -15,16 +15,16 @@ static m_int o_map_value;
 #define MAP_VAL(a) *((M_Object*)(a->data + o_map_value))
 
 GWION_IMPORT(class_template) {
-  GWI_OB(gwi_class_ini(gwi, "ClassTemplate<[A,B]", NULL))
+  GWI_OB(gwi_class_ini(gwi, "ClassTemplate:[A,B]", NULL))
     GWI_BB(gwi_item_ini(gwi, "A[]", "key"))
     GWI_BB((o_map_key = gwi_item_end(gwi, ae_flag_member | ae_flag_template, NULL)))
     GWI_BB(gwi_item_ini(gwi, "B[]", "value"))
     GWI_BB((o_map_value = gwi_item_end(gwi, ae_flag_member, NULL)))
-   GWI_BB(gwi_func_ini(gwi, "int", "test<[C,D]"))
+   GWI_BB(gwi_func_ini(gwi, "int", "test:[C,D]"))
    GWI_BB(gwi_func_end(gwi, (f_xfun)1, ae_flag_none))
 
   GWI_BB(gwi_class_end(gwi))
-  GWI_BB(gwi_item_ini(gwi, "ClassTemplate<[<[int]Ptr,int[]]", "testObject"))
+  GWI_BB(gwi_item_ini(gwi, "ClassTemplate:[:[int]Ptr,int[]]", "testObject"))
   GWI_BB(gwi_item_end(gwi, ae_flag_none, NULL))
   return GW_OK;
 }
index ad8170ba5070750035cba9bc1a6a7f10ea9728d1..4fbbf11089e83cd41fc8593febb1fc53d9b3209b 100644 (file)
@@ -11,7 +11,7 @@
 GWION_IMPORT(typedef_test) {
   Type t_func_typedef;
   GWI_OB((t_func_typedef = gwi_mk_type(gwi, "FuncTypedef", SZ_INT , NULL)))
-  GWI_BB(gwi_fptr_ini(gwi, "int", "test<[test]"))
+  GWI_BB(gwi_fptr_ini(gwi, "int", "test:[test]"))
   GWI_OB(gwi_fptr_end(gwi, 0))
   return GW_OK;
 }
index c933e51ddf323a32d05054fbe134eb55b98dab6f..e00773d25aca3e0b6a4ea7722b9ca6a16452567f 100644 (file)
@@ -9,7 +9,7 @@
 #include "import.h"
 
 GWION_IMPORT(typedef_test) {
-  GWI_BB(gwi_fptr_ini(gwi, "int~", "test<[A]"))
+  GWI_BB(gwi_fptr_ini(gwi, "int~", "test:[A]"))
   GWI_OB(gwi_fptr_end(gwi, 0))
   return GW_OK;
 }
index f7ac835ae06f33b617c98a58f2a18bca4080a4c4..d848eaa673128c7a2e5747814c47bbbacbc63814 100644 (file)
@@ -10,7 +10,7 @@
 #include "instr.h"
 
 GWION_IMPORT(too_many_args) {
-  GWI_BB(gwi_func_ini(gwi, "<[int]Ptr", "test"))
+  GWI_BB(gwi_func_ini(gwi, ":[int]Ptr", "test"))
   GWI_BB(gwi_func_arg(gwi, "int", "i[][]"))
   GWI_BB(gwi_func_arg(gwi, "int", "me"))
   GWI_BB(gwi_func_end(gwi, (f_xfun)1, ae_flag_none))
index 0a260a4824c69443a4aef13f5b2bf72d3a468d44..efd5c20876433f4805c9823890205508d473b2fb 100644 (file)
@@ -10,7 +10,7 @@
 #include "instr.h"
 
 GWION_IMPORT(too_many_args) {
-  GWI_BB(gwi_func_ini(gwi, "Ptr<[int]", "test<[A]"))
+  GWI_BB(gwi_func_ini(gwi, "Ptr:[int]", "test:[A]"))
   GWI_BB(gwi_func_ini(gwi, "int", "test"))
   GWI_BB(gwi_func_arg(gwi, "int", "i[][]"))
   GWI_BB(gwi_func_end(gwi, (f_xfun)1, ae_flag_none))
index c7db6f1244262a8e763bf653b9161d56f158a766..0bb4c59b1eb3e0850e0f84a6e88621cc73a8a7ac 100644 (file)
@@ -10,7 +10,7 @@
 #include "instr.h"
 
 GWION_IMPORT(too_many_args) {
-  GWI_BB(gwi_func_ini(gwi, "Ptr<[int]", "test<[A]"))
+  GWI_BB(gwi_func_ini(gwi, "Ptr:[int]", "test:[A]"))
   GWI_BB(gwi_func_arg(gwi, "int", "i[][]"))
   GWI_BB(gwi_item_end(gwi, ae_flag_none, NULL))
   return GW_OK;
index eb0aa9c2afcef589a43e45ea42c68218f63d0558..5f3c22c9d9c62b5c5577c8802bde8a27d008bb87 100644 (file)
@@ -14,7 +14,7 @@ static SFUN(func_tmpl_xfun) {
 }
 
 GWION_IMPORT(func_tmpl) {
-  GWI_BB(gwi_func_ini(gwi, "int[]", "test<[A]"))
+  GWI_BB(gwi_func_ini(gwi, "int[]", "test:[A]"))
   GWI_BB(gwi_func_arg(gwi, "A", "i"))
   GWI_BB(gwi_func_end(gwi, func_tmpl_xfun, ae_flag_none))
   return GW_OK;
index de01ac331e0599eb7bc1dcd7ff2dd7224c8d4139..5916a402c734bfe9cedee4df9a0ee28e4c06b30f 100644 (file)
@@ -1,2 +1,2 @@
-test<[int](1);
+test:[int](1);
 test(1);
index 0096a1e39f2e4f34df6869fae4ed98cdd92db09c..b61758cebadea14d2303cb961abe76c7f699530a 100644 (file)
@@ -14,7 +14,7 @@ static SFUN(func_tmpl_xfun) {
 }
 
 GWION_IMPORT(func_tmpl) {
-  GWI_BB(gwi_func_ini(gwi, "voit", "test<[A]"))
+  GWI_BB(gwi_func_ini(gwi, "voit", "test:[A]"))
   GWI_BB(gwi_func_end(gwi, func_tmpl_xfun, ae_flag_none))
   return GW_OK;
 }
index 1340149c92a2c9539fb1912295bb3dfb0b44f559..6c70861e4bd376eb9f7660f1034f57b5affd5cf7 100644 (file)
@@ -22,7 +22,7 @@ GWION_IMPORT(trig) {
   const Type t2 = gwi_mk_type(gwi, "T<a>", SZ_INT, NULL);
   gwi_add_type(gwi, t2);
 
-  const Type t3 = gwi_mk_type(gwi, "T<[a]", SZ_INT, NULL);
+  const Type t3 = gwi_mk_type(gwi, "T:[a]", SZ_INT, NULL);
   gwi_add_type(gwi, t3);
 
   return GW_OK;
index 159640a955f5bd6278810796e86154e71ccfd4dd..4304e3778558c1eb8bd27106aba342b12d67d320 100644 (file)
@@ -13,6 +13,6 @@
 #include "gwi.h"
 
 GWION_IMPORT(trig) {
-  DECL_OB(const Type, t0, = gwi_mk_type(gwi, "T<[a]", SZ_INT, NULL))
+  DECL_OB(const Type, t0, = gwi_mk_type(gwi, "T:[a]", SZ_INT, NULL))
   return gwi_add_type(gwi, t0);
 }
index f6f40abded3ca89f387833b068da706e4310499e..0d18b4b0eccd17d99a7398fe42817a9295781108 100644 (file)
@@ -1,4 +1,4 @@
-var Map<[int, float] pp;
+var Map:[int, float] pp;
 <<< pp >>>;
 <<< pp.size() >>>;
 <<< pp.set(1, 2) >>>;
index 78bb00f7141da94a449392624bfd0f0cc4bc72b8..a2a4dfc1f27dc26cdb1e4f2fa3bb5f3e3f99b9ef 100644 (file)
@@ -9,7 +9,7 @@
 #include "import.h"
 
 GWION_IMPORT(typedef_test) {
-  GWI_BB(gwi_typedef_ini(gwi, "int", "Typedef<[A]"))
-  GWI_BB(gwi_typedef_ini(gwi, "int", "Typedef<[A]"))
+  GWI_BB(gwi_typedef_ini(gwi, "int", "Typedef:[A]"))
+  GWI_BB(gwi_typedef_ini(gwi, "int", "Typedef:[A]"))
   return GW_OK;
 }
index 91e36b81e80e76423969559a73e3a70bf2e6ac39..4457541952e3bd18127fcd18878c40fee0f10fe0 100644 (file)
@@ -9,7 +9,7 @@
 #include "import.h"
 
 GWION_IMPORT(typedef_test) {
-  GWI_BB(gwi_typedef_ini(gwi, "Ptr<[A]", "Typedef<[A]"))
+  GWI_BB(gwi_typedef_ini(gwi, "Ptr:[A]", "Typedef:[A]"))
   GWI_OB(gwi_typedef_end(gwi, ae_flag_none))
   return GW_OK;
 }
index 95208de47151b00ac3bc694731f4946ccff8ff6d..049f6d4075784d5500975bb8ba53f9fe6b73fa79 100644 (file)
@@ -9,7 +9,7 @@
 #include "import.h"
 
 GWION_IMPORT(union_test) {
-  GWI_BB(gwi_union_ini(gwi, "U<[A]", NULL))
+  GWI_BB(gwi_union_ini(gwi, "U:[A]", NULL))
   GWI_BB(gwi_union_add(gwi,"float", "f"))
   GWI_BB(gwi_union_add(gwi,"int", "i"))
   GWI_BB(gwi_union_add(gwi,"A", "a"))
index a8c2dc1a969a5b1d17d6167278c0c1b03c4f83f1..5d6c0c60103d037d1c76bae23107e4fddd38dcc4 100644 (file)
@@ -1,2 +1,2 @@
-<<< var U<[Event] u>>>;
+<<< var U:[Event] u>>>;
 <<< u.a >>>;
index 1533c1ea1ea99ccf675da3dcdd7e50a9d440b9c4..f38840f7358e68084c1f4b938f024135eede726d 100644 (file)
@@ -9,7 +9,7 @@
 #include "import.h"
 
 GWION_IMPORT(union_test) {
-  GWI_BB(gwi_union_ini(gwi, "U<[A]", "My"))
+  GWI_BB(gwi_union_ini(gwi, "U:[A]", "My"))
   GWI_BB(gwi_union_add(gwi,"float", "f"))
   GWI_BB(gwi_union_add(gwi,"int", "i"))
   GWI_BB(gwi_union_add(gwi,"A", "a"))
index f53779379ed381312add8ee711adac1d9e790625..0cf882e5eab6fb626808593ac6717c0b234a06e7 100644 (file)
@@ -9,11 +9,11 @@
 #include "import.h"
 
 GWION_IMPORT(union_test) {
-  GWI_BB(gwi_union_ini(gwi, "U<[A]", NULL))
+  GWI_BB(gwi_union_ini(gwi, "U:[A]", NULL))
   GWI_BB(gwi_union_add(gwi,"float", "f"))
   GWI_BB(gwi_union_add(gwi,"int", "i"))
   GWI_BB(gwi_union_add(gwi,"A", "a"))
-  GWI_BB(gwi_union_ini(gwi, "U<[A]", NULL))
+  GWI_BB(gwi_union_ini(gwi, "U:[A]", NULL))
   GWI_OB(gwi_union_end(gwi, 0))
   return GW_OK;
 }
index 2973eff29a08a5c593f0fa0c073475f6fb2f53bf..36afd1f09ae22a5871b7931f3e870872a194c935 100644 (file)
@@ -9,7 +9,7 @@
 #include "import.h"
 
 GWION_IMPORT(union_test) {
-  GWI_BB(gwi_union_ini(gwi, "U<[A]", "Test"))
+  GWI_BB(gwi_union_ini(gwi, "U:[A]", "Test"))
   GWI_BB(gwi_union_add(gwi,"float", "f"))
   GWI_BB(gwi_union_add(gwi,"int", "i"))
   GWI_BB(gwi_union_add(gwi,"A", "a"))
index 1ec515e00a554fbfd1dcfcc6498307fa27ff8799..588a28563ec9badbb8a9358561f608d553b36b99 100644 (file)
@@ -1,5 +1,5 @@
 class C {
-  fun void test<[A](A a) { <<< a >>>; }
+  fun void test:[A](A a) { <<< a >>>; }
 }
 
 class D extends C {}
index ff2aa6ff2a0c3b21bf7a7f116387d44aff2c420f..2d4afac4a8ae84513c4564a1d443aecfe20f28a3 100644 (file)
@@ -1,10 +1,10 @@
-class C<[A] {
+class C:[A] {
   operator @dtor void () { <<< __func__ >>>; }
 }
-class D<[A] extends C<[A] {
+class D:[A] extends C:[A] {
   operator @dtor void () { <<< __func__ >>>; }
 }
-class E extends D<[int] {
+class E extends D:[int] {
   operator @dtor void () { <<< __func__ >>>; }
 }
 
index 01062dd960f506375309da05b42a66d20e9da170..6eb2e8f98043e2eae7cd68f77cbf50c24a4df588 100644 (file)
@@ -1,25 +1,25 @@
-union U<[A] {
+union U:[A] {
   A a;
   int i;
 };
 
-class C<[A] extends U<[A] {
+class C:[A] extends U:[A] {
   fun void test() { <<< this >>>; }
   operator @dtor void () { <<< __func__ >>>; }
 }
 
-var C<[float] c;
+var C:[float] c;
 <<< c >>>;
 <<< c.test() >>>;
 <<< c.i >>>;
 
-class D<[A,B] extends C<[float] {
+class D:[A,B] extends C:[float] {
 
 }
 
-var D<[int,int] d;
-class E<[A,B] extends D<[float,B] {
+var D:[int,int] d;
+class E:[A,B] extends D:[float,B] {
 
 }
 
-var E<[int,int] e;
+var E:[int,int] e;
index 8b942f4b4a8aa27a98bb791cbeef67e386400e41..5a92c75a82a9cd410dc87250eacbaa0145ac2b9e 100644 (file)
@@ -1,14 +1,14 @@
 class B {
 
 }
-class C<[A] extends B {
+class C:[A] extends B {
 
 }
-class D<[A,B] extends C<[A] {
-  class Child<[A] {
+class D:[A,B] extends C:[A] {
+  class Child:[A] {
     var A a;
   }
-  var Child<[A] child;
+  var Child:[A] child;
 }
 
-var D<[int] d;
+var D:[int] d;
index 768ad80e0af922552955ed1a64ddaa2b8b831535..8eaf8bea70e0e783c4423c27dd890656a0712394 100644 (file)
@@ -1,4 +1,4 @@
-fun A pure<[A](A i) { return i; }
+fun A pure:[A](A i) { return i; }
 <<< 2 => pure >>>;
 <<< 2 => pure >>>;
 <<< 3 => pure >>>;
index 97b2898508ebec87c8a161f622dfe19913437997..15a20fc49f8ba3ec85392620e469287779eb28eb 100644 (file)
@@ -1,5 +1,5 @@
 class C {
-  fun A pure<[A](A i) {
+  fun A pure:[A](A i) {
     return i;
   }
   <<< 2 => pure >>>;
index 6ec6a78d88e02217ce0d9de0fa5121fcaec4da1b..e85dbea0743c045f801f00363265402a9b619a2b 100644 (file)
@@ -1,8 +1,8 @@
-fun void test<[A](int i, A a) {
+fun void test:[A](int i, A a) {
   var A b;
   <<< __func__, " ", a >>>;
   <<< i, " ", a >>>;
   if(i)
-    test<[int]((i-2, b$int));
+    test:[int]((i-2, b$int));
 }
-test<[float](2, 2);
+test:[float](2, 2);
index 037b7cc022e61b41ad04e4a97e0d437b064c847f..1e3de8f5c67807764f4c4cbbdb5e33b2ce08a0b2 100644 (file)
@@ -1,8 +1,8 @@
-fun void test<[A](int i) {
+fun void test:[A](int i) {
   var A a;
   <<< a >>>;
   <<< __func__, " ", i, " ", a >>>;
   if(i)
-    test<[float]((i-2));
+    test:[float]((i-2));
 }
-test<[float](2);
+test:[float](2);
index cdc88c9f82f0697b939a159d6c9873c87d741bb8..a45d05256e5253d1294e88ea01df96366c227fd8 100644 (file)
@@ -1,7 +1,7 @@
-fun void test<[A](int i) {
+fun void test:[A](int i) {
   var A a;
   <<< a >>>;
   if(i)
-    test<[float]((i-2));
+    test:[float]((i-2));
 }
-test<[Object](2);
+test:[Object](2);
index 7f6b892458da8d1c3db0481fdc613b75c9392aeb..f9ef97c5058d8399751f6fdf1e8aa3c77045e34e 100644 (file)
@@ -1,8 +1,8 @@
-fun void test<[A](A i) {
+fun void test:[A](A i) {
   var A a;
   <<< a , " ", __func__>>>;
   <<< i, " ", a >>>;
   if(i > 0)
     test(i-2.0);
 }
-test<[int](2);
+test:[int](2);
index de5fd67ac0d5657176bcedc7b7a875f874cd9bf3..dc7e31b92a88821bc8375658f6f94955d187e6fd 100644 (file)
@@ -1,4 +1,4 @@
-fun void test<[A](A i) {
+fun void test:[A](A i) {
   var A a;
   <<< a >>>;
   <<< i, " ", a, " ", i > 1 >>>;
index 84f9176639ec413914bce16fc5f6bf7b988c8874..39d0b9633c7787a92bc9b899eeb0bbcb64dc21b1 100644 (file)
@@ -1,6 +1,6 @@
-fun void test<[A](int i) {
+fun void test:[A](int i) {
   <<< __func__ >>>;
   <<< 1 >>>;
 }
 
-test<[int](1);
+test:[int](1);
index e9ea5b68828a7f2901d8997ffdea0e93f92d1734..7ceaca357b9903cdf9fa8871f109bf47c68ce418 100644 (file)
@@ -3,4 +3,4 @@ class D extends C {
 }
 var D d;
 <<< d >>>;
-<<< d.t<[int]() >>>;
+<<< d.t:[int]() >>>;
index 324c0c06e3968fd0679e46eed09edfe399dc9b16..efdc68c1e95d3cc9117c73d13da1950678563b55 100644 (file)
@@ -1,8 +1,8 @@
-class Parent<[A] {
-  class C<[B] {
+class Parent:[A] {
+  class C:[B] {
     12 => var A a;
     13 => var B B;
   }
 }
-var Parent.C<[int, int] c;
+var Parent.C:[int, int] c;
 <<< c.a >>>;
index aabab6c9a72deed2c7e9fb55611e8e52f75ef05d..9f13a937d3557cf20771bf4c5f816def6338b52b 100644 (file)
@@ -1,13 +1,13 @@
 class C {
-  fun int test<[A](A a) { <<< " A ", a >>>; }
-  fun int test<[A](A a, int i) { <<< " A ", a, " ", __func__  >>>; }
-  fun int test<[A](A a, int i, int j) { <<< a >>>; }
+  fun int test:[A](A a) { <<< " A ", a >>>; }
+  fun int test:[A](A a, int i) { <<< " A ", a, " ", __func__  >>>; }
+  fun int test:[A](A a, int i, int j) { <<< a >>>; }
 }
 class D extends C {
-  fun int test<[A](A a, int i) { <<< this, " extent ", a, __func__ >>>; }
+  fun int test:[A](A a, int i) { <<< this, " extent ", a, __func__ >>>; }
 }
 class E extends D {
-  fun int test<[A](A a, int i) { <<< this, " Extent ", a, __func__ >>>; }
+  fun int test:[A](A a, int i) { <<< this, " Extent ", a, __func__ >>>; }
 }
 
 
index dcce4fa8874d37101fbb693dfe611a0008d85ae4..fb9ebba00a813a5633d374dd4ebd68b27e852e2b 100644 (file)
@@ -1,6 +1,6 @@
 class C {
-  typedef static void func_t<[A](A a);
-  fun static void myfunc<[A](A a) { <<< a >>>; }
+  typedef static void func_t:[A](A a);
+  fun static void myfunc:[A](A a) { <<< a >>>; }
   myfunc @=> var static func_t ptr;
   ptr(1);
 }
index 65ef15ef40216ea9ec7a3aceb3b4c0acbc88dd1b..760fa7a71e56fd0aa75e9302d13af0e7500ce1fd 100644 (file)
@@ -1,8 +1,8 @@
-class C<[A] {
-  typedef static void func_t<[A](A a);
-  fun static void myfunc<[A](A a) { <<< a >>>; }
+class C:[A] {
+  typedef static void func_t:[A](A a);
+  fun static void myfunc:[A](A a) { <<< a >>>; }
   myfunc @=> var static func_t ptr;
   ptr(1);
 }
 
-var C<[int] c;
+var C:[int] c;
index 798cc7d1ec246470435b35678a8951e0cbec0264..f87ad63a966630860a1c63ca52293ea485446aeb 100644 (file)
@@ -1,9 +1,9 @@
 class C {
-  typedef void t_ptr<[A]();
+  typedef void t_ptr:[A]();
 
-  var t_ptr<[int] iptr;
+  var t_ptr:[int] iptr;
 
-  fun void test<[A]() {
+  fun void test:[A]() {
     <<< this, " ", __func__ >>>;
   }
 
index 347a7f853e16e23aa0dea2c5c1bb11715f488691..d1403022734ed0c7a0ddaae9c787aeaf1a51b018 100644 (file)
@@ -1,9 +1,9 @@
 class C {
-  typedef static void t_ptr<[A]();
+  typedef static void t_ptr:[A]();
 
-  var t_ptr<[int] iptr;
+  var t_ptr:[int] iptr;
 
-  fun static void test<[A]() {
+  fun static void test:[A]() {
     <<< __func__ >>>;
   }
 
index dbf92dc273c689f11cb784583efb9a75ccf8c73a..a23a1ec8538d7b3be1b603fe3e721b773479a837 100644 (file)
@@ -1,10 +1,10 @@
-typedef void t_ptr<[A]();
+typedef void t_ptr:[A]();
 
 var t_ptr ptr;
 
-fun void test<[A]() {
+fun void test:[A]() {
   <<< __func_ >>>;
 }
 
 test @=> ptr;
-ptr<[int]();
+ptr:[int]();
index c3cc7cfbb0cb7da4f2f1d58789caaf3697b20e39..4e47c18e5570054364c7a2ed4620315a47f7fa3b 100644 (file)
@@ -1,2 +1,2 @@
-typedef void ptr_t<[A](myPtr ptr);
-var ptr_t<[ Ptr<[A] ] t;
+typedef void ptr_t:[A](myPtr ptr);
+var ptr_t:[ Ptr:[A] ] t;
index b82e5c28de94dd3914c640db171d6eb0b5ff92b2..9afbad7ba1b03cff05321dd09de052790de72da2 100644 (file)
@@ -1,12 +1,12 @@
 class B {}
 
-class C<[A] extends B{}
+class C:[A] extends B{}
 
-class D<[A,B] extends C<[A] {
-  class E<[A] {}
+class D:[A,B] extends C:[A] {
+  class E:[A] {}
   class G extends ld
   {A0I:}
-  var D<[A] d;
+  var D:[A] d;
 }
 
-var D<[int] d;
+var D:[int] d;
index 054e3749bd07075981386e23fc34a06540d0b314..c9291cc23345c6590b718bd7fb876cbc2e5c1f34 100644 (file)
@@ -1,10 +1,10 @@
-struct S<[A] {
+struct S:[A] {
   var A a0;
   var A a1;
 }
 
-var D<[int] si;
-var D<[float] sf;
+var D:[int] si;
+var D:[float] sf;
 
 <<< si.a0 >>>;
 <<< sf.a0 >>>;
index c9889e48600864d29efa8be3bdc9d00ec4a36c06..a9ca992baa342486e60b38372538e4cedcf5986f 100644 (file)
@@ -1,4 +1,4 @@
-var Ptr<[int] ptr;
+var Ptr:[int] ptr;
 var int i[4];
 foreach(ref a : i)
   <<< *a >>>;
index 66d621d3fd6f1e9e673a601e7351181f515fe6d2..982684d05ca34d2ea8eec09720f72eafb2418cc6 100644 (file)
@@ -1,3 +1,3 @@
-typedef void test_t<[A]();
+typedef void test_t:[A]();
 nonnull test_t t;
-t<[int]();
+t:[int]();
index 00fdecf836c9be545981b82400dd29913dcb2a80..74e28df8d0e624dfad929c93c96edc8d846ff007 100644 (file)
@@ -1,7 +1,7 @@
-class C<[A] {
+class C:[A] {
   class D {
 
   }
 }
 
-var C.D<[int] d;
+var C.D:[int] d;
index 3cbeb0522fea6589c74a9f52f208e0812f67029d..5dbed0f8aa1deec0786282c4b60d4314f7a8f134 100644 (file)
@@ -1,17 +1,17 @@
-class C<[A,B] {
+class C:[A,B] {
   var A a;
   var B b;
   fun A test() {
     <<< "lol" >>>;
   }
-  fun void test2<[C](C o) {
+  fun void test2:[C](C o) {
     <<< o >>>;
   }
 }
 
-var C<[int, int] c;
-var C<[float, int] d;
-var C<[Object, int] g;
+var C:[int, int] c;
+var C:[float, int] d;
+var C:[Object, int] g;
 <<< c.a >>>;
 <<< d.a >>>;
 <<< c.test() >>>;
index c95dd2c474174518a6705d01c8a1d10a3ddd1b31..5e3c73cce69079df15d218b99a7cca1d83fca27d 100644 (file)
@@ -1,4 +1,4 @@
-class C<[A] {
+class C:[A] {
   \a{};
   [ 1 ];
   var int i,j;
@@ -9,7 +9,7 @@ class C<[A] {
   i ? i : !i;
   ++i;
   union { int ui; } u;
-  union U<[A] { int ui; };
+  union U:[A] { int ui; };
   typeof(i);
   if(i) i; else i;
   for(var int _i; _i < 1; ++_i);
@@ -30,4 +30,4 @@ class C<[A] {
   while(0){ <<< __func__ >>>; }
 }
 
-var C<[int] c;
+var C:[int] c;
index 6fefe48a7095dcd3e38a19323c2ed6f64aab977f..fd8e53369459f541ca616118ca0d29d2879e0466 100644 (file)
@@ -1,8 +1,8 @@
-class C<[A] {
+class C:[A] {
   var A a;
 }
 
-class D extends C<[int] {}
+class D extends C:[int] {}
 
 var D d;
 <<<d.a>>>;
index cb0872613e6a87e0ac4c50632b0f34a22011dafe..b0f9f7dda23b22f00ff27f5a9dfeab0c3a220bbc 100644 (file)
@@ -1,4 +1,4 @@
-class C<[A, B] {}
-class D<[A] {}
-var C<[ D<[int], D<[int] ] c;
+class C:[A, B] {}
+class D:[A] {}
+var C:[ D:[int], D:[int] ] c;
 <<< c >>>;
index 35cb332fa39f7300dbae971b55c85f1aa6db3256..704ad6b5f662deb012377eddb2ec7e5cad8a29f8 100644 (file)
@@ -1,9 +1,9 @@
-class C<[A] {
+class C:[A] {
   var A a;
 }
 
 class D {
-  var static C<[int] c;
+  var static C:[int] c;
 }
 
 var D d;
index 6bc86483b2062ff3f58b2bd28b9313acffa32ad9..b06f737bc0cfca5c8ebf3123a82ce9cade7074aa 100644 (file)
@@ -1,14 +1,14 @@
 class global StaticTmpl {
-  fun static void t<[A]() { <<< __func__ >>>; }
+  fun static void t:[A]() { <<< __func__ >>>; }
 }
 class D extends StaticTmpl {
 
 }
 
 fun void test(StaticTmpl c) {
-  StaticTmpl.t<[int]();
+  StaticTmpl.t:[int]();
 }
 
 #!D d;
-#!d.t<[int]();
+#!d.t:[int]();
 #!d => test;
index bf9eae589d89d09ee37a700e34940c29db229137..89d37a73cc8738224f869f38fe9edd53c2414ec3 100644 (file)
@@ -1,3 +1,3 @@
-class C<[A] {}
+class C:[A] {}
 
-var C<[int, float] c;
+var C:[int, float] c;
index 068edf8487c23fcf2507c9bebd5950631ae16a84..95cc2ca326f62a542511e5707661578846ca9767 100644 (file)
@@ -1,4 +1,4 @@
-class C<[A] {}
+class C:[A] {}
 
-var C<[int] c;
+var C:[int] c;
 <<< c >>>;
index 29c4fc09b68c7cfbc2b58fe1604e6680e0563b31..fa7bf24e5616b76aa3610944b05737cb2ffcd44b 100644 (file)
@@ -1,9 +1,9 @@
-typedef int ptr_t<[A](A);
+typedef int ptr_t:[A](A);
 var ptr_t ptr;
 <<<ptr>>>;
 
-fun int test<[A](A a) { <<< a >>>; }
+fun int test:[A](A a) { <<< a >>>; }
 test @=> ptr;
 <<< ptr >>>;
-ptr<[int](2);
-ptr<[float](2.3);
+ptr:[int](2);
+ptr:[float](2.3);
index d1ec8de8942d99c3613eec50ffd78c1a574676ba..2e6d7470b20a4c682b1c6b2ba7de2c2ee27987a6 100644 (file)
@@ -1,7 +1,7 @@
-class C<[A] {
+class C:[A] {
   fun void test() {
-    var C<[A] c;
+    var C:[A] c;
   }
 }
 
-var C<[int] c;
+var C:[int] c;
index cbbff371e8da8c7d98afc90b7c5e837c2b29d32b..bc4e4271ae78587715e8fd077742f044126497eb 100644 (file)
@@ -1,5 +1,5 @@
-fun void test<[A](int i) {
-  test<[A](2.3);
+fun void test:[A](int i) {
+  test:[A](2.3);
 }
 
-test<[int](3);
+test:[int](3);
index d6a059f83dcf4132defaf6d648b636243c642fa8..ef274bf18f5fd1f23cf7852f19485886bda78e19 100644 (file)
@@ -1,9 +1,9 @@
-typedef void t_ptr<[A]();
+typedef void t_ptr:[A]();
 
-var t_ptr<[int] iptr;
-var t_ptr<[float] fptr;
+var t_ptr:[int] iptr;
+var t_ptr:[float] fptr;
 
-fun void test<[A]() {
+fun void test:[A]() {
   <<< __func__ >>>;
 }
 
index 7638b8df07af6903f32dd16c10e6e50c7f685541..af9900e5c902d6ac30157e98891469cdbf4bc49e 100644 (file)
@@ -1,9 +1,9 @@
-typedef void t_ptr<[A]();
-fun void test<[A]() {
+typedef void t_ptr:[A]();
+fun void test:[A]() {
   <<< __func__ >>>;
 }
 
-typedef t_ptr<[int] B;
+typedef t_ptr:[int] B;
 var B b;
 <<< b >>>;
 test @=> b;
@@ -12,7 +12,7 @@ test @=> b;
 <<< b() >>>;
 
 
-typedef t_ptr<[float] C;
+typedef t_ptr:[float] C;
 var C c;
 <<< c >>>;
 test @=> c;
index 2ff8af8e91e80476ea5bc1ea50c31b87db42ff2c..f5bb6e3665cf08bd8c2700484360edb584d6eeaa 100644 (file)
@@ -1,9 +1,9 @@
 class C {
-  typedef void t_ptr<[A]();
+  typedef void t_ptr:[A]();
 
-  var t_ptr<[int] iptr;
+  var t_ptr:[int] iptr;
 
-  fun void test<[A]() {
+  fun void test:[A]() {
     <<< this, " ", __func__ >>>;
   }
 
index 4ca786903d03456e230e4892a5e1c3cf3796f54c..e01a87f507989a2aa2da41e934115ccfcca1ed5b 100644 (file)
@@ -1,7 +1,7 @@
-union U<[A]{
+union U:[A]{
   int i;
   A a;
 };
 
-var U<[float] u;
+var U:[float] u;
 <<< u.a >>>;