]> Nishi Git Mirror - gwion.git/commitdiff
:art: Close templates with ']'
authorJérémie Astor <astor.jeremie@wanadoo.fr>
Sun, 13 Sep 2020 22:29:31 +0000 (00:29 +0200)
committerJérémie Astor <astor.jeremie@wanadoo.fr>
Sun, 13 Sep 2020 22:29:31 +0000 (00:29 +0200)
107 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
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 39ad675551cd32f3ad2125f3cf9afe6ac416c99e..d572b7d308e6948f0dd4d328aa07050d42e8fdcd 160000 (submodule)
--- a/ast
+++ b/ast
@@ -1 +1 @@
-Subproject commit 39ad675551cd32f3ad2125f3cf9afe6ac416c99e
+Subproject commit d572b7d308e6948f0dd4d328aa07050d42e8fdcd
index 0978dc0864eb208a59953bea3d8714fc3086448c..0b1d2e323851abe94b5f294039580938b2f42be7 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 621474fa85c4160c33a7bbff5bc301626e5fa6f1..c7f0361a28934afa8965dff33425a4dc78bebbab 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 d0dd5f5a4a8a2ea54a74859a0ae154d5678d679d..8bbe4202b0e0ef1a004d64cccae560635d7ad35b 100644 (file)
@@ -1,4 +1,4 @@
-fun void test(Ptr<~int~> p) {
+fun void test(Ptr<~int] p) {
    <<< *p >>>;
 }
 var int i => test;
index 9337a7898614f582b05aac9936b66eb183063c94..e72f76b3a0b888aec06adfc656fe3c5018fa416f 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 6ad538303dbf63208567420f39af9a741201e056..2d0ebca96006c6eaed6eb823e6a53a095e58376b 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 7de280254f6ed73439eeb6e62e3954e82899953b..a0355c24c63abffcd043fb0b00fcc60ed4330022 100644 (file)
@@ -1,2 +1,2 @@
 12 => var int i;
-<<<i   $ Ptr<~int~> >>>;
+<<<i   $ Ptr<~int] >>>;
index c13384e0f84de019ac8c9452986364a4f305dea0..90b6e81826ef92023dc4e7d68b5c3d194edf2b28 100644 (file)
@@ -1,3 +1,3 @@
 var int i;
-i :=> var Ptr<~int~> pti;
+i :=> var Ptr<~int] pti;
 <<<12 => *pti, " ", *pti>>>;
index 64d76018df203c8475fb8f0b2b0340a69f50887b..a893f7028da151b4dc95a3f73e388137e592094a 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 85b2d1d8abc2a4440a2aa10f2cf8978145a14558..922779d572da607b0850f1ae8414f18f0c4766e5 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 0cc9c74067a3eeafd6f4e74e564bd7dab890aca0..a0a0be77a8c3e71511cffe37f9da9a287ee25a57 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 57552d8486a476d00c6c5ee5b93d11c249106d46..82b82bbdcb8a44bc60d204bc018a2139fffd7c44 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);
index 053033068a98c3cb6d080fad7104d211ca3ad86d..b33113bb06bcc385306beee448acc5a7deb88051 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 d67dea028e3d5f110a3ecf644a35166e84804edc..a357b63984fe19d448c134c85665bd2c7057cbfa 100644 (file)
@@ -144,22 +144,24 @@ ANN m_bool type_ref(Type t) {
   return 0;
 }
 
+
 ANN m_str get_type_name(const Env env, const Type t, const m_uint index) {
-  if(!index || t->name[0] != '<')
+  if(!index)
+    return NULL;
+  m_str name = strchr(t->name, '<');
+  if(!name)
     return NULL;
-  m_str name = t->name + 2;
+  name += 2;
+  const size_t slen = strlen(name);
   m_uint lvl = 0;
   m_uint n = 1;
-  const size_t slen = strlen(name);
   char c, buf[slen + 1], *tmp = buf;
   while((c = *name)) {
     if(c == '<')
       ++lvl;
-    else if(c == '>') {
-      if(!lvl-- && n == index) {
-        --tmp;
+    else if(c == ']') {
+      if(!lvl-- && n == index)
         break;
-      }
     } else if(c == ',') {
       if(!lvl && n++ == index)
         break;
@@ -169,10 +171,9 @@ ANN m_str get_type_name(const Env env, const Type t, const m_uint index) {
     if(n == index)
       *tmp++ = *name;
     ++name;
-
   }
   *tmp = '\0';
-  return strlen(buf) ? s_name(insert_symbol(buf)) : NULL;
+  return tmp - buf ? s_name(insert_symbol(buf)) : NULL;
 }
 
 ANN m_uint get_depth(const Type type) {
index d371e8ab92832ef9a407759ac72cd927dc750b7d..0b07cd84c5155fb447070a87338d4e6753350d33 100644 (file)
@@ -114,13 +114,13 @@ ANN static ID_List __tmpl_list(const Gwi gwi, struct td_checker *tdc) {
   const ID_List list =  _tmpl_list(gwi, tdc);
   if(list == (ID_List)GW_ERROR)
     return (ID_List)GW_ERROR;
-  if(tdc->str[0] != '~' || tdc->str[1] != '>') {
+  if(tdc->str[0] != ']') {
 // unfinished template
     if(list)
       free_id_list(gwi->gwion->mp, list);
     return (ID_List)GW_ERROR;
   }
-  tdc->str += 2;
+  ++tdc->str;
   return list;
 }
 
@@ -203,12 +203,12 @@ ANN static Type_List td_tmpl(const Gwi gwi, struct td_checker *tdc) {
   Type_List tl = __str2tl(gwi, tdc);
   if(!tl)
     return (Type_List)GW_ERROR;
-  if(tdc->str[0] != '~' || tdc->str[1] != '>') {
+  if(tdc->str[0] != ']') {
     free_type_list(gwi->gwion->mp, tl);
     GWI_ERR("unfinished template");
     return (Type_List)GW_ERROR;
   }
-  tdc->str += 2;
+  ++tdc->str;
   return tl;
 }
 
index cfa04a185576ba49e1a80d0545ea0c195f24edf5..f7897fb3fc6e214119adadbb4e2c82ec0800d1f8 100644 (file)
@@ -300,7 +300,7 @@ ANN static ssize_t template_size(const Env env, struct tmpl_info* info) {
     size += tmpl_set(info, t);
   } while((call = call->next) && (base = base->next) && ++size);
   size += tmpl_set(info, info->cdef->base.type);
-  return size + 16 + 3;
+  return size + 16 + 2;
 }
 
 ANN static inline m_str tmpl_get(struct tmpl_info* info, m_str str) {
@@ -311,19 +311,18 @@ ANN static inline m_str tmpl_get(struct tmpl_info* info, m_str str) {
 
 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++ = '~';
-  const m_uint size = vector_size(&info->type) -1;
   for(info->index = 0; info->index < size; ++info->index) {
     str = tmpl_get(info, str);
     if(info->index < size - 1)
       *str++ = ',';
     else {
-      *str++ = '~';
-      *str++ = '>';
+      *str++ = ']';
     }
   }
-  str = tmpl_get(info, str);
   *str = '\0';
 }
 
index 9395b348305c0ebb16643170e860a683b1bb11a3..9c827e31c1e7b4378837d43b59cacbb8c5d31198 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 d0a105c70e79f142277af801ec9b2b5899e4a39a..6470e0be785e89688c4339943f34ce0c9a613ea4 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 85b04535e1b850c1a928076bba54853d959cc193..f3ec85084bebb8a467f3eec9ec82bb32f7661b8c 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 e516d55567b2b00d569ddad4700d4f780840975d..422310538a5dd60cd6ab4324205cf68cbc443f14 100644 (file)
@@ -37,8 +37,11 @@ ANN void free_op_map(Map map, struct Gwion_ *gwion) {
 ANN static Type op_parent(const Env env, const Type t) {
   if(GET_FLAG(t, template) && GET_FLAG(t, ref)) {
     const Type type = typedef_base(t);
-    const m_str post = strrchr(type->name, '>') + 1;
-    return nspc_lookup_type1(env->curr, insert_symbol(env->gwion->st, post));
+    char name[strlen(type->name)];
+    strcpy(name, type->name);
+    const m_str post = strrchr(name, '<');
+    *post = '\0';
+    return nspc_lookup_type1(env->curr, insert_symbol(env->gwion->st, name));
   }
   return t->e->parent;
 }
index 7cacda5e6352e23ee28e4bb2ec37b9c88a4437a0..9543fe413f302f0920830e1e2cc3bf40bf0ee1f4 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 ea998b0f9667635d5e7b0a1f882b040060f38f15..3f4fbc2114710640e745d4b03712894ab392707b 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] template call of non-template function
 fun void test(){}
-test<~int~>();
+test<~int]();
index a6d90f3b897d079717b3c8035b8a3743591ffad1..355f7714ed515e4cfc954d445f5b803385156f70 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] EmptyPointerException
-var Ptr<~int~> t;
+var Ptr<~int] t;
 <<< *t >>>;
index 686f8e8f4ea7d5a815b065820c594573b09ac5f6..514ec198367053389a020e8a2741bec398e61002 100644 (file)
@@ -1,2 +1,2 @@
 #! [contains] invalid pointer cast
-<<< 1 $ Ptr<~Object~> >>>;
+<<< 1 $ Ptr<~Object] >>>;
index 9860779ad9139c15ded746c6168c4e56ce2ca7bf..532b399a9f19e04a816b84fca0a373393ba617b4 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] template call of non-function value
 var int test;
-test<~int~>();
+test<~int]();
index 05eab60e35bc5cf9014d959e96800b7ebf736ad4..8242be5a70da23398aaf7b7a2cc3e77226cf4e43 100644 (file)
@@ -1 +1 @@
-1 :=> var Ptr<~int~> pd;
+1 :=> var Ptr<~int] pd;
index 7c37eeb6d75b79ab9bb876fa71032ccb6fba98a9..b6199792358497d8d85b70f62717ec18166bbc01 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 3a840ad7a362ac9fa0c6351f3426a2edb276a949..6210cec9b00d024a78ac300f1f8d0293234d1115 100644 (file)
@@ -1 +1 @@
-1 :=> var Ptr<~int~> i;
+1 :=> var Ptr<~int] i;
index e562e5710a8d10c32d5cfb691fc2b2d136abffe9..8d2f737a7dc818ff1fc90974f2686b7161052f84 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 98e981b72f50186d4b3e4c6b002d821a19bdf946..fee35e0f6d9755967b277d82a2df9acafbf65c04 100644 (file)
@@ -1,5 +1,5 @@
 #! [contains] you must provide template types
-class C<~A~> {
+class C<~A] {
   var A a;
 }
 
index 6f314a7876a3b45963a6a4d7796e035896518a2f..2ae3194c8c21203e50784c78e264dc1aba6b06e2 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 2c0cef0ec0128ff580cfb78ba037d088bf206f5d..58f7e56ff35148a86349a80fce3c0cba3066eb59 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] 
-fun void test<~A,B~>(){}
+fun void test<~A,B](){}
 test();
index 74b77c72cddec66a00b92e624d425880438c51d9..2bd8bc5137a68303607dada766f0443a36cfe7da 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 1a19d77369b2f29a0404f7c1d4d275191562ebdb..0c08e70e4c54aac6cc075dae9faf46e0a5689cf8 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 6f6f232d01b7f7ac7ca7cfe26ce3cb9f5029f841..022789d2f2db40bc3fbda9c56ec55c02c2143807 100644 (file)
@@ -1,2 +1,2 @@
 #! [contains] 
-Math.rand<~int~>();
+Math.rand<~int]();
index 2b804442ac3c1e8a214e519b99efb8687c333677..62c98fec0b0108d70c46975f87479879dd22b282 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 bcb667d00159ddc7e8dae57e3470a7643113b29f..3963711a12eefc7a45aa79419c3d9c9b9d265d38 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 5c1e04d55644be361fbd3d1d02f1992211c68e69..cf3cb59de07f85ed469e4e5fded7860fd9562170 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 e9009fe1fd78e5617102b38618efac3fe9a9ecf1..53057e2cc7ece1ad679fd76b4cf4f8da5744c364 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 ee4ae5dcc4fc3dbcf4498161a100f4f97b9918fb..6e4c17ced517f47df4d8b75c338ceac0da71aa79 100644 (file)
@@ -1,2 +1,2 @@
 #! [contains] is not template
-var Object<~int~> o;
+var Object<~int] o;
index 90d1251133b3a7cc708a079046adaadbc537221c..eac690d1bbc829c306becc354c7866b903a60d46 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 5501a52f6fe857fd56d16a449969f815e0c7fd57..b6048595fd01c33c28dc56175b98647e2e73b829 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 0e3818ebbd8f0f6f25ffbddbb2496756c2663b72..37cdb045a4696e3f74aca327bc2c997558ae0894 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 b2271ef18a933906a74c3bb5275aa0caa0d584c5..325e407f9d77c7d20c31d996efc4bf173d8a1f67 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 191e7ac24744978bc64b850a720f1ef53ea6e2f3..9cd61bc9c0608012eb1e2bdaa902415fa196488c 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 2d1230297cbe5426c1effbd06bbea3f094c4dcc8..de484b22a930545f40a116b8c78ee2723defd893 100644 (file)
@@ -1,2 +1,2 @@
-var ClassTemplate<~int, int~> ct;
+var ClassTemplate<~int, int] ct;
 <<< ct.key >>>;
index 5bdccfb1f7b3723c9784d56e61d1ff2df3578708..bc69736d2b3d22371704707257fb3a1eb701258a 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 e3c6335b7bc20d0f67980562b617fd9e9a01caac..34c30e6d3eb9e242f96b572660349be289c66ded 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 6fdcc1d6030f4fe2b53ffc50f8daa2d3bf30f39c..c43a7576878590a2927289769055214dada08293 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 2ec528c32ce4d47fb39588f2a6978b745ec85b3e..615638c6628f835a46d2110a49e6df71b7c7695b 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 972a5e5d72ec279126dcbff04e39f701df0ab5e3..e58a38ed179dcccda8d9fcf6229facf056c7fb50 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 09402e9a2dd8ecee805685778b1ee7fa16fd4f20..c7e7b2944ba6ae115c32d52a5d5ddc05c23808d3 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 06c7f384c2861f8ac344d144b95920e7838ccbdb..2a57fcfcfe94a66e9019eb1674cd06fc2486a57f 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 0214bd24a2a24fce620e8ed4306a054d2bb9c10b..0d3ce57c61a67c1e6a2ffdb9db289de77c0ccfb4 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 4866c00949d6fdf9e55f58e2494feae3242a4d15..e197f4d36c93d72f8ae422f992773b8740c39d9c 100644 (file)
@@ -1,2 +1,2 @@
-test<~int~>(1);
+test<~int](1);
 test(1);
index f01dddad1c611116b7f6ab0157cd817197497358..af683b11b08c13a26c755b815f7f4f8fd8f97193 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 66ec9711d00824d77bd6600e60df1d055d7ab974..71555bd2ffa054957ade984aead2c92ef781c3ac 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 02c7033afa1ec35cdeddd353dce45bf508dd185f..e341b7012731922a314cd9935460a7a30f75296b 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 4726b27573da4d6f9541039db2b39ecf829d42d0..646fb5097014bff8f14e6104a1524535b29c3fe5 100644 (file)
@@ -1,4 +1,4 @@
-var Map<~int, float~> pp;
+var Map<~int, float] pp;
 <<< pp >>>;
 <<< pp.size() >>>;
 <<< pp.set(1, 2) >>>;
index e3151146ceadadd25c17bebc60070952048714a8..07110b16a059e4e1060b37d6eb5ee13267929524 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 1ae96db9070b5e250ca718ddecece593aa5db767..68bb50b7d9c69bf5147b63afba26faac412bcbc2 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 aa65700d0abef5bde899ea844e5c0eb38c2713e7..ebe75a335ba351075418c37443ccd4008fbcbe71 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 dbd5c468febb69f1df37399d09e4b1ec7b995bca..145a65ce4840ba275241e62b70ca8f3699192108 100644 (file)
@@ -1,2 +1,2 @@
-<<< var U<~Event~> u>>>;
+<<< var U<~Event] u>>>;
 <<< u.a >>>;
index 57da35a86a8e630a45b00fb0a697b08b0b2b21be..ed39fe50c37e2b82b11adf529c5acba589fd8560 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 994dd3ee22b697d47abdc29f7900382881a7ec63..aa445b2df079a1a816fd270b367f1948e28d6df0 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 f8fa4eb9884b45b47beb859c294f3c3b1030fb39..69c3cd87d54fd3b00eb80ecc743d2b85f0ffb61b 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 bd23ed18d8f532899c59bbbfeda23124aabc82e6..46059e84eec1a374d44422fe6d81ae3ccc1ee4a1 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 f204275364d5be5f210464c66f846c521d66874e..994ef8124460c4e0bf0362e7a80b37d23a730bf8 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 ded551f1d6fb39038727a204c435cfb7e26f54e4..86a28d10d6644498fba803fa11d02def86590947 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 e2c240f61635e64ca8d1da14ac6ed1dc712a1e99..7a7a95408b74166e6dbd0e18e2f717d54c906251 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 be0bcf465e2589b7542e389c0b22e4605081794a..eb6ed66db8d4d2c1bbb217283e2473dc2b5dc665 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 d0c73455e550131daf713563a67ff60eb5f1734e..ddd7fdd66045078fadb0d07fb7440ed433b781f4 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 31d2c74e4bcf41ae26a333a53adc8d61e053a82e..a2cd8a45f0246e9f38d5f3818e05d8f57e43c70a 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 b8ae746937fbe0ef1f346e482aad76bf875315d4..6f4db423dc7ef97f1311684513542530ef34f352 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 a671390d34d44fe73593940eb831979871bb08c8..7d117e38429cd7fdfa30919027726236305efb53 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 f28daaf9ac081c21c3988686aeec671c03d83b90..d2d81cc3890a8d31fcdae6c0297a69270f304551 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 3b2e2b4a2d4f5c811d4548e2ba29195d7fb8bd30..c4daa96a18f16d6e95f422a3e01fb0a3bbee9cff 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 3ba989427b175cc311653b2f4e80e87292d9ad0f..e99797580a29ef5e41ea3fb05c7a3a005be6cc1a 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 dc620da0316ac0b21974cc2eb294ad452fac1897..47413b3f2e66945a1a59137211451136d07a5804 100644 (file)
@@ -3,4 +3,4 @@ class D extends C {
 }
 var D d;
 <<< d >>>;
-<<< d.t<~int~>() >>>;
+<<< d.t<~int]() >>>;
index 4e0097a62879a4fd42add6cbf0770b141ebe2606..68895230dceacff827190399329ad27e21f5e966 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 3734c12e3cc730c2da06d9a26dbbc0485f0751b0..192c794bd1e8bb1d4afa746fc639165b81a42e5a 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 1472590d54c53271573aa1576f182256618e2330..f866864360935f3f3a9f09da1967a8e6b2798708 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 2dae03fedc0246aadb0ed201a62e5e5976d4402b..01748a626450009b921fa9c142fae3e560d44f67 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 19cfb8ee5a6296e84989b81e5c333ec49dfc3e2a..9d01d7961edf5955f85b9ce39f8bcdd035f8e6c2 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 17e43fdd35d184623292d426d76ba2f0ec571b59..0bd3e581c05cd6cb01c09e65c8973c4b05707d82 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 9a9e0b9fe3512bd24052dce093b7f5536f4903b7..d456c84d0189758e93ee28c6747c4595d49b9a17 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 01835559b1c8188d057f511aa05af43d3138fefc..5e72cf3d16362ac03808673c4829c09489735aec 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 b70439a3d8b3004c0af81cefffb1b241356bed5a..099f00e9d5f5fa9377dfe230b6853ae0392fc3cd 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 54abfb9ce67eb79d275a97fd6ab3fcf0b4092497..9389e121aec9eca611b005d9315f652383b3740f 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 e770fb80be98877165d737be404c95c8dd650b9e..9162990e69d343c57a7a2073cec9ba6e1d3332c4 100644 (file)
@@ -1,4 +1,4 @@
-var Ptr<~int~> ptr;
+var Ptr<~int] ptr;
 var int i[4];
 foreach(ref a : i)
   <<< *a >>>;
index 4c020dec4bee21495c27221b0affb6a859177097..ffd26566ea9d4d36d7e6624490f568e83be07da9 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 2c13b37f63b534fac110a0b9796020888eb58550..3683b2db5bb28acce55dc7300122f36458190e99 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 eb5088667c773870cc3d3ebad3d65872e0176235..32a7dbac8cbabb6e5975d03c957a78e33d8cd173 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 52041acfae1910fe95bd852defc97684c330ff61..2dd2e1439213488640a6a1aa321b90126ed548a6 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 51d194f9a3213c823979fd592fe0a5bfc77e7c71..630164f49e28a0b3170331fb851424c5b4d12a86 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 015bb3440f5824aaf356146b9cf0e6eec0c10920..c20cdbd5b863651f2df380d0dd13af80cb0ef264 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 b4e9392a2b7f9008a7bfc72e60b3938e2e2d990d..aeb6864db0d3746045a3bad53a7306479e2c64de 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 d44838875be0b964dd4d0893770d0728b22a87e3..a4eafd0d497d8e1b7531b4b4b874370a49e05a60 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 148c178b8ebff3460232c762d0b85d894f7dad46..e780ec1087d040039218a3c07c83ff82a7549d87 100644 (file)
@@ -1,3 +1,3 @@
-class C<~A~> {}
+class C<~A] {}
 
-var C<~int, float~> c;
+var C<~int, float] c;
index 5448e880d2ae5afc922e330ea023dfc0fe1255a5..2c3317c39ae385669e7748765e2bd6e07b9908de 100644 (file)
@@ -1,4 +1,4 @@
-class C<~A~> {}
+class C<~A] {}
 
-var C<~int~> c;
+var C<~int] c;
 <<< c >>>;
index 1b0d0a4bb3e48fc06ac3fff41a7fda2cd384812c..f964e5cd43e685a75391be254a566e21535a46e2 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 f47c25c87804593f6382ef314d31171deff64e6f..be9d76c22df91b0183d6f527f80bee9950e156d2 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 48074b720b09288601d152be89bf7fa0219b5273..b447f4abc15d5011623db0b125bf66799024c60d 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 e56a09facae3b588a5cc8860f566229846d282e0..13226a55122fe6176a21209975b9c6f56b537fde 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 e5d8c4d385178db1e55f45110adc19dc65f02b25..f6d6ee8dde91cbd9276c680c2220a0a317165047 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 f2636871d3a88ce50be4d9bde4d36263a4895ae3..308ffc5d6b7bf88e7b6bdb065cac0630ee80f111 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 c19b43f5c2443657cfef9d87c3bb3a995176a5a2..2e5e7f28beb4b1df4ad234141e166f83f5131ee2 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 >>>;