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
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}