def array_next

qasim-bend-kit@0.1.0.2 · proof/JSON_AssemblyProof.bend:122

import qasim-bend-kit@0.1.0.2/proof/JSON_AssemblyProof.bend as JSONAssemblyProof
import Base
import qasim-bend-kit@0.1.0.2/libs/JSON.bend as J

122def array_next(+value: J.Value,
123               -tail: List<J.Token>,
124               +acc: List<&2, J.Value>,
125               +kont: J.ParserKont) -> {J.assemble(tokens(value, Whole{}, tail), J.ArrayNext{acc, kont}) == J.assemble(tokens(value, Whole{}, tail), J.NeedValue{J.InArray{acc, kont}}) : R()}:
126    match value:
127        case J.Arr{Nil{}}: {==}
128        case J.Arr{head <> rest}: {==}
129        case J.Obj{Nil{}}: {==}
130        case J.Obj{(key, head) <> rest}: {==}
131        case J.Null{}: array_next_atom(J.decode_payload("null"), tail, acc, kont)
132        case J.Bool{True{}}: array_next_atom(J.decode_payload("true"), tail, acc, kont)
133        case J.Bool{False{}}: array_next_atom(J.decode_payload("false"), tail, acc, kont)
134        case J.Number{s, cert}: array_next_atom(J.decode_payload(s), tail, acc, kont)
135        case J.Str{s}: array_next_atom(J.decode_payload("\"" ++ J.escape_string(s) ++ "\""), tail, acc, kont)

Uses (15)

Used by (1)