def take.top

emerging-eztoml@0.9.0.0 · main.bend:2681

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

2681# place a finished value into the current table, array, or inline table
2682def take.top(
2683  stack: List<&2, Ctx>,
2684  val: Val,
2685  bad: String,
2686  rows: List<&2, Val>,
2687  heads: List<&2, String>,
2688  +here: List<&2, String>,
2689  parts: List<&2, String>,
2690  back: Lex,
2691  qkind: QKind,
2692  uni: U32,
2693  left: U32,
2694  arrtab: Bool,
2695  lead: Bool
2696) -> St:
2697  match stack:
2698    case []:
2699      take.root(tree.walk(path.cat(here, parts),
2700        Tw{rows, JPut{val}, [], bad, "", heads, False{}}, path.len(here, 0)), here,
2701        back, qkind, uni, left, arrtab, lead)
2702    case CArr{items, +saved, +at} <> rest:
2703      St{bad, rows, heads, at, saved, [], LArrC{}, back, qkind,
2704        CArr{val <> items, saved, at} <> rest, HNone{}, uni, left, arrtab, lead}
2705    case CInl{inl, +saved, +at} <> rest:
2706      take.inl(tree.walk(List.reverse(&2, String, parts),
2707        Tw{inl, JPut{val}, [], bad, "", [], True{}}, 0), rows, heads, at, saved, rest,
2708        back,
2709        qkind, uni, left, arrtab, lead)

Uses (18)

Used by (1)