def close_obj

emerging-ezjson@1.3.0.0 · src/parse.bend:145

import emerging-ezjson@1.3.0.0/src/parse.bend as Parse
import Base
import emerging-ezjson@1.3.0.0/src/value.bend as V

145# a `}`: the innermost frame must be an object, empty or just after a value
146def close_obj(stack: List<&2, Frame>, root: Maybe<&2, V.Json>, bad: Bool) -> P:
147  match stack:
148    case Con{FObj{V.JNil{}, k, SKey{}}, rest}:
149      put(rest, root, V.JObj{V.JNil{}}, bad)
150    case Con{FObj{pairs, k, SComma{}}, rest}:
151      put(rest, root, V.JObj{V.reverse(pairs, V.JNil{})}, bad)
152    case other:
153      P{True{}, root, Nil{}}

Uses (9)

Used by (1)