]> Nishi Git Mirror - gwion.git/commitdiff
art: Allow unnamed arguments in fptr
authorfennecdjay <astor.jeremie@wanadoo.fr>
Mon, 25 Feb 2019 14:56:18 +0000 (15:56 +0100)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Mon, 25 Feb 2019 14:57:31 +0000 (15:57 +0100)
ast
src/parse/scan1.c
src/parse/scan2.c

diff --git a/ast b/ast
index f0e1cb2cfe0ea1fe5ee0d73f94a1f5c4ef05c955..9ea3845d1241b7abb8e02b43c9b04224ab82a4a8 160000 (submodule)
--- a/ast
+++ b/ast
@@ -1 +1 @@
-Subproject commit f0e1cb2cfe0ea1fe5ee0d73f94a1f5c4ef05c955
+Subproject commit 9ea3845d1241b7abb8e02b43c9b04224ab82a4a8
index c15c2d1e5f7da0f3f23c4eed422f3766896ef24d..148b8fc0fd0a65e4d2992e3a4bd3ef8bf6e1cd9b 100644 (file)
@@ -200,7 +200,8 @@ ANN m_bool scan1_stmt_enum(const Env env, const Stmt_Enum stmt) { GWDEBUG_EXE
 ANN static m_bool scan1_args(const Env env, Arg_List list) { GWDEBUG_EXE
   do {
     const Var_Decl var = list->var_decl;
-    CHECK_BB(isres(var->xid))
+    if(var->xid)
+      CHECK_BB(isres(var->xid))
     if(list->td) // lambda
       CHECK_OB((list->type = void_type(env, list->td, var->pos)))
   } while((list = list->next));
index d19090643292517da4d767c6e2e0d9702ef9019e..11d71a8c40fc9f147f72575ca1fcec5e2b266778 100644 (file)
@@ -51,7 +51,8 @@ ANN m_bool scan2_exp_decl(const Env env, const Exp_Decl* decl) { GWDEBUG_EXE
 ANN static Value arg_value(const Env env, const Arg_List list) {
   const Var_Decl var = list->var_decl;
   if(!var->value) {
-    const Value v = new_value(env->gwion, list->type, s_name(var->xid));
+    const Value v = new_value(env->gwion, list->type,
+      var->xid ? s_name(var->xid) : s_name(insert_symbol((m_str)var)));
     if(list->td) // lambda
       v->flag = list->td->flag | ae_flag_arg;
     return v;