def step

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

import emerging-ezjson@1.3.0.0/src/parse.bend as Parse
import Base
import emerging-ezjson@1.3.0.0/src/lex.bend as Lex

195# one token
196def step(tok: Lex.Tok, st: P) -> P:
197  match tok:
198    case Lex.TOpenArr{}:
199      step.open_arr(st)
200    case Lex.TOpenObj{}:
201      step.open_obj(st)
202    case Lex.TCloseArr{}:
203      P{bad, root, stack} = st
204      close_arr(stack, root, bad)
205    case Lex.TCloseObj{}:
206      P{bad, root, stack} = st
207      close_obj(stack, root, bad)
208    case Lex.TColon{}:
209      P{bad, root, stack} = st
210      step.colon(stack, root, bad)
211    case Lex.TComma{}:
212      P{bad, root, stack} = st
213      step.comma(stack, root, bad)
214    case Lex.TStr{s}:
215      P{bad, root, stack} = st
216      put.str(stack, root, KOwn{s}, bad)
217    case Lex.TWord{raw}:
218      step.word(raw, st)
219    case Lex.TStrS{src, n}:
220      P{bad, root, stack} = st
221      put.str(stack, root, KCut{src, n}, bad)
222    case Lex.TWordS{src, n}:
223      step.span(src, n, st)
224    case Lex.TBad{}:
225      P{bad, root, stack} = st
226      P{True{}, root, stack}

Uses (13)

Used by (1)