]> Nishi Git Mirror - gwion.git/commitdiff
:fire: Stmt macros
authorfennecdjay <fennecdjay@gmail.com>
Wed, 31 Jan 2024 01:40:42 +0000 (02:40 +0100)
committerfennecdjay <fennecdjay@gmail.com>
Wed, 31 Jan 2024 01:40:42 +0000 (02:40 +0100)
ast
plug
src/import/import_fdef.c
src/import/import_item.c
src/lib/closure.c
src/lib/sift.c
src/parse/check.c
src/parse/default_arg.c
src/parse/partial.c

diff --git a/ast b/ast
index b412aa9281f85e4d9f9cd1bb3a0716dbfd1a9432..23c2894a2dd6b0f0b3531f7995a3395020fc45bb 160000 (submodule)
--- a/ast
+++ b/ast
@@ -1 +1 @@
-Subproject commit b412aa9281f85e4d9f9cd1bb3a0716dbfd1a9432
+Subproject commit 23c2894a2dd6b0f0b3531f7995a3395020fc45bb
diff --git a/plug b/plug
index 713f9a6e94f8d3462082ea90ca679f112b449219..a8194c5a7b1b874d1475cb5af245770327605f9b 160000 (submodule)
--- a/plug
+++ b/plug
@@ -1 +1 @@
-Subproject commit 713f9a6e94f8d3462082ea90ca679f112b449219
+Subproject commit a8194c5a7b1b874d1475cb5af245770327605f9b
index 89779089a7be6f843130ec7aee1280cafc5b1016..2cdfcddddecac68465ca805af13d51d316c7edc2 100644 (file)
@@ -59,10 +59,7 @@ ANEW ANN static Func_Def import_fdef(const Gwi gwi, ImportCK *ck) {
 }
 
 ANN static m_bool section_fdef(const Gwi gwi, const Func_Def fdef) {
-  Section section = (Section) {
-    .section_type = ae_section_func,
-    .d = { .func_def = fdef }
-  };
+  Section section = MK_SECTION(func, func_def, fdef);
   gwi_body(gwi, &section);
   return GW_OK;
 }
@@ -120,10 +117,7 @@ ANN static Fptr_Def import_fptr(const Gwi gwi) {
 }
 
 ANN static m_bool section_fptr(const Gwi gwi, const Fptr_Def fdef) {
-  Section section = (Section) {
-    .section_type = ae_section_fptr,
-    .d = { .fptr_def = fdef }
-  };
+  Section section = MK_SECTION(fptr, fptr_def, fdef);
   gwi_body(gwi, &section);
   return GW_OK;
 }
index daadd16c850b42f3d8aedbf00394bdc866a6a693..54233ea458683d465bb44aa34978a3119acf7053 100644 (file)
@@ -24,11 +24,7 @@ ANN static m_int gwi_item_tmpl(const Gwi gwi) {
       .d = { .stmt_exp = { .val = gwi->ck->exp } },
       .loc = gwi->loc
     }));
-  Section section = (Section) {
-    .section_type = ae_section_stmt,
-    .d = { .stmt_list = slist }
-  };
-//  Section *       section = new_section_stmt_list(mp, slist);
+  Section section = MK_SECTION(stmt, stmt_list, slist);
 //  const Ast       body    = new_ast(mp, section, NULL);
 //  gwi_body(gwi, body);
   gwi_body(gwi, &section);
index 674ac0a3a0ca19e69f61a70a16ff91fd32c45f56..3b09eda41818d830b97d0d5d2e640c20a1433c60 100644 (file)
@@ -608,11 +608,8 @@ static OP_CHECK(opck_op_impl) {
   const Exp  bin = new_exp_binary(env->gwion->mp, lhs, impl->e->d.prim.d.var,
                                  rhs, impl->e->loc);
   Stmt_List code = new_mp_vector(env->gwion->mp, Stmt, 1);
-  mp_vector_set(code, Stmt, 0,
-    ((Stmt) {
-    .stmt_type = ae_stmt_return, .d = { .stmt_exp = { .val = bin }},
-    .loc = impl->e->loc
-  }));
+  mp_vector_set(code, Stmt, 0, MK_STMT(ae_stmt_return, impl->e->loc,
+    .stmt_exp = { .val = bin }));
   const Func_Def  def  = new_func_def(env->gwion->mp, base, code);
   def->base->tag.sym   = impl->e->d.prim.d.var;
 // use envset
index c0d17dd1cf4ea9d32807ac2c290bf01cb022a79e..659948de40c12fb31b1b00e717c26498f8e5d8ea 100644 (file)
@@ -61,16 +61,12 @@ static OP_CHECK(opck_ctrl) {
   check_exp(env, cond);
 
   const Stmt_List code = new_mp_vector(mp, Stmt, 1);
-  mp_vector_set(code, Stmt, 0, ((Stmt) {
-      .stmt_type = ae_stmt_while,
-      .d = {
+  mp_vector_set(code, Stmt, 0, MK_STMT(ae_stmt_while, func->loc,
         .stmt_flow = {
           .cond = cond,
           .body = stmt
         }
-      },
-      .loc = func->loc
-    }));
+    ));
   exp->exp_type = ae_exp_unary;
   exp->d.exp_unary.unary_type = unary_code;
   exp->d.exp_unary.code = code;
index df56cd5dd79b56283bfc511ad01006d7f06a8f12..a9b81f334b6c5f0b7ebb0b446780c0475dd62f19 100644 (file)
@@ -1289,16 +1289,8 @@ ANN m_bool check_type_def(const Env env, const Type_Def tdef) {
     tdef->when = NULL;
     when->next       = helper;
     Stmt_List code = new_mp_vector(env->gwion->mp, Stmt, 2);
-    mp_vector_set(code, Stmt, 0,
-      ((Stmt) {
-      .stmt_type = ae_stmt_exp, .d = { .stmt_exp = { .val = when }},
-      .loc = when->loc
-    }));
-    mp_vector_set(code, Stmt, 1,
-      ((Stmt) {
-      .stmt_type = ae_stmt_exp,
-      .loc = when->loc
-    }));
+    mp_vector_set(code, Stmt, 0, MK_STMT_EXP(when->loc, when));
+    mp_vector_set(code, Stmt, 1, MK_STMT_EXP(when->loc, NULL));
     const Func_Def fdef = new_func_def(env->gwion->mp, fb, code);
     tdef->when_def           = fdef;
     CHECK_BB(traverse_func_def(env, fdef));
index 89a751d00be1af0ef684b520acb34c1bf6d884f6..6a389862d3243bfba8c1e51a741490a7ff976826 100644 (file)
@@ -36,11 +36,7 @@ ANN static Stmt_List code(const MemPool p, const Exp func, const Arg_List lst,
   const Exp arg = mk_args(p, lst, max);
   const Exp call = new_exp_call(p, func, arg, func->loc);
   Stmt_List code = new_mp_vector(p, Stmt, 1);
-  mp_vector_set(code, Stmt, 0,
-    ((Stmt) {
-      .stmt_type = type, .d = { .stmt_exp = { .val = call }},
-      .loc = func->loc
-  }));
+  mp_vector_set(code, Stmt, 0, MK_STMT(ae_stmt_return, func->loc, .stmt_exp = { .val = call}));
   return code;
 }
 
index 3ee9d089b5b36aacc920de61aa9522dc90cdb533..89c0f9f9649133f8af0c96c6479318c14cceef38 100644 (file)
@@ -168,14 +168,9 @@ ANN static Stmt_List partial_code(const Env env, Arg_List args, const Exp efun,
   const Exp arg = partial_call(env, args, earg);
   const Exp exp = new_exp_call(env->gwion->mp, efun, arg, efun->loc);
   Stmt_List code = new_mp_vector(env->gwion->mp, Stmt, 1);
-  mp_vector_set(code, Stmt, 0, ((Stmt) {
-    .stmt_type = ae_stmt_return,
-    .d = { .stmt_exp = { .val = exp }}
-  }));
-//  stmt->stmt_type = ae_stmt_return;
-//  stmt->d.stmt_exp.val = exp;
+  mp_vector_set(code, Stmt, 0, MK_STMT(ae_stmt_return, efun->loc,
+    .stmt_exp = { .val = exp }));
   return code;
-//  return new_stmt_code(env->gwion->mp, slist, efun->loc);
 }
 
 ANN static uint32_t count_args_exp(Exp args) {