txlyre 23 小時之前
父節點
當前提交
56851d7de8
共有 1 個文件被更改,包括 8 次插入6 次删除
  1. 8 6
      qic.c

+ 8 - 6
qic.c

@@ -3699,18 +3699,20 @@ void compile_node(buffer_t *gbuf, buffer_t *buf, list_t *ctx, table_t *ltab, sta
 
       buffer_t *bbuf = buffer_new();
 
-      for (size_t i = 0; i < node->a->b->l->length; i++) {
-        if (node->b) {
-          buffer_fmt(bbuf, "if (_qi_truthy(state, ");
-          compile_node(gbuf, bbuf, ctx, ltab, lstk, sstk, lbl, node->b);
-          buffer_fmt(bbuf, "))");
-        }
+      if (node->b) {
+        buffer_fmt(bbuf, "if (_qi_truthy(state, ");
+        compile_node(gbuf, bbuf, ctx, ltab, lstk, sstk, lbl, node->b);
+        buffer_fmt(bbuf, ")) {\n");
+      }
 
+      for (size_t i = 0; i < node->a->b->l->length; i++) {
         buffer_fmt(bbuf, "qi_list_push(list, ");
         compile_node(gbuf, bbuf, ctx, ltab, lstk, sstk, lbl, node->a->b->l->data[i]);
         buffer_fmt(bbuf, ");\n");
       }
 
+      buffer_fmt(bbuf, "}\n");
+
       node->a->b = nodeb(bbuf);
       node->a->t2 = NULL;