def build

bend-lint-rules@0.2.0.0 · layout/format.bend:1803

import bend-lint-rules@0.2.0.0/layout/format.bend as Format
import Base

1803# The doc of a list of trees, read as mode says. A group's children are
1804# built first, by the same def, as a smaller part of the list.
1805def build(nodes: List<&2, Tree>, +tab: U32, +base: U32, +mode: Mode, st: State) -> Doc:
1806  match nodes:
1807    case Nil{}:
1808      finish(mode, st, tab, base)
1809    case Con{Leaf{+t}, +rest}:
1810      build(rest, tab, base, mode, visit(mode, Leaf{t}, leaf_doc(t), rest, tab, base, st))
1811    case Con{Group{+open, +close, +children, +block}, +rest}:
1812      build(
1813        rest,
1814        tab,
1815        base,
1816        mode,
1817        visit(
1818          mode,
1819          Group{open, close, children, block},
1820          build(children, tab, base, mode_of(open, close, children, block), start(base)),
1821          rest,
1822          tab,
1823          base,
1824          st
1825        )
1826      )

Uses (11)

Used by (1)