How to use the @effectful/transducers.Tag.body function in @effectful/transducers

To help you get started, we’ve selected a few @effectful/transducers examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github awto / effectfuljs / packages / core / src / control.js View on Github external
for (const i of s.sub()) {
      if (
        i.enter &&
        i.value.stmt &&
        !i.value.eff &&
        i.value.savedLabs &&
        i.value.savedLabs.length
      ) {
        const lab = s.label();
        let pos = i.pos;
        for (const j of i.value.savedLabs) {
          yield s.enter(pos, Tag.LabeledStatement);
          yield s.tok(Tag.label, Tag.Identifier, { node: { name: j } });
          pos = Tag.body;
        }
        yield s.peel(Kit.setPos(i, Tag.body));
        yield* _restoreLabeledStatements();
        yield* lab();
        continue;
      }
      yield i;
    }
  }
}
github awto / effectfuljs / packages / core / src / control.js View on Github external
function* _restoreLabeledStatements() {
    for (const i of s.sub()) {
      if (
        i.enter &&
        i.value.stmt &&
        !i.value.eff &&
        i.value.savedLabs &&
        i.value.savedLabs.length
      ) {
        const lab = s.label();
        let pos = i.pos;
        for (const j of i.value.savedLabs) {
          yield s.enter(pos, Tag.LabeledStatement);
          yield s.tok(Tag.label, Tag.Identifier, { node: { name: j } });
          pos = Tag.body;
        }
        yield s.peel(Kit.setPos(i, Tag.body));
        yield* _restoreLabeledStatements();
        yield* lab();
        continue;
      }
      yield i;
    }
  }
}
github awto / effectfuljs / packages / core / src / debug.js View on Github external
function* toExpr(pos) {
    const lab = sl.label();
    const b = sl.take();
    if (b.value.stmt) {
      yield hl(
        "expr",
        sl.enter(pos, Tag.CallExpression, { node: { arguments: [] } })
      );
      yield sl.enter(Tag.callee, Tag.FunctionExpression, {
        node: { parameters: [] }
      });
      if (b.type === Tag.BlockStatement) yield sl.peel(Kit.setPos(b, Tag.body));
      else {
        yield sl.enter(Tag.body, Tag.BlockStatement);
        yield sl.enter(Tag.body, Tag.Array);
        yield sl.peel(Kit.setPos(b, Tag.push));
      }
    } else {
      yield sl.peel(Kit.setPos(b, pos));
    }
    yield* walk();
    yield* lab();
  }
  function* toBlock(pos) {
github awto / effectfuljs / packages / core / src / debug.js View on Github external
yield* b.leave();
            }
            break;
          case "forPar":
            if (i.enter) {
              yield D.copyComment(
                i,
                D.setComment(
                  b.enter(i.pos, Tag.ArrowFunctionExpression, {
                    node: { params: [] }
                  }),
                  `PAR`,
                  "color:blue;font-size:large"
                )
              );
              yield b.enter(Tag.body, Tag.ForStatement);
              yield* walk();
              yield* b.leave();
              yield* b.leave();
            }
            break;
          case "effExpr":
            if (i.enter) {
              yield b.enter(i.pos, Kit.Subst);
              yield* walk();
              yield* b.leave();
            }
            break;
          case "chain":
            if (i.enter) {
              yield D.copyComment(
                i,