def render.go

emerging-eztoml@0.9.0.0 · main.bend:5806

import emerging-eztoml@0.9.0.0/main.bend as EmergingEztoml
import Base

5806# the values of a table, an array, or an inline table
5807def render.go(vs: List<&2, Val>, +gap: String, +trail: Bool) -> String:
5808  match vs:
5809    case []:
5810      ""
5811    case VPair{_name, VHead{path, rows}} <> +t:
5812      "[" ++ path ++ "]\n" ++ render.go(rows, "\n", True{}) ++
5813        render.suf(gap, trail, List.is_empty(&2, Val, t)) ++ render.go(t, gap, trail)
5814    case VPair{_name, VAots{_path, elems}} <> +t:
5815      render.go(elems, "\n", True{}) ++
5816        render.suf(gap, trail, List.is_empty(&2, Val, t)) ++ render.go(t, gap, trail)
5817    case VAot{path, rows} <> +t:
5818      "[[" ++ path ++ "]]\n" ++ render.go(rows, "\n", True{}) ++
5819        render.suf(gap, trail, List.is_empty(&2, Val, t)) ++ render.go(t, gap, trail)
5820    case VPair{name, VArr{items}} <> +t:
5821      key(name) ++ " = [" ++ render.go(items, ", ", False{}) ++ "]" ++
5822        render.suf(gap, trail, List.is_empty(&2, Val, t)) ++ render.go(t, gap, trail)
5823    case VPair{name, VInl{rows}} <> +t:
5824      key(name) ++ " = {" ++ render.go(rows, ", ", False{}) ++ "}" ++
5825        render.suf(gap, trail, List.is_empty(&2, Val, t)) ++ render.go(t, gap, trail)
5826    case VPair{name, val} <> +t:
5827      key(name) ++ " = " ++ render.atom(val) ++
5828        render.suf(gap, trail, List.is_empty(&2, Val, t)) ++ render.go(t, gap, trail)
5829    case VArr{items} <> +t:
5830      "[" ++ render.go(items, ", ", False{}) ++ "]" ++
5831        render.suf(gap, trail, List.is_empty(&2, Val, t)) ++ render.go(t, gap, trail)
5832    case VInl{rows} <> +t:
5833      "{" ++ render.go(rows, ", ", False{}) ++ "}" ++
5834        render.suf(gap, trail, List.is_empty(&2, Val, t)) ++ render.go(t, gap, trail)
5835    case v <> +t:
5836      render.atom(v) ++ render.suf(gap, trail, List.is_empty(&2, Val, t)) ++
5837        render.go(t, gap, trail)

Uses (9)

Used by (1)