def punct.go

emerging-ezjson@1.3.0.0 · src/pull.bend:472

import emerging-ezjson@1.3.0.0/src/pull.bend as Pull
import Base
import emerging-ezjson@1.3.0.0/src/lex.bend as Lex

472# one punctuation token, once the root is still open. The suffix stays
473# with the stepper: a bracket closes on it, and a comma does not keep it
474def punct.go(tok: Lex.Tok, stack: List<&2, Frame>, goal: Goal, done: Bool) -> St:
475  match tok:
476    case Lex.TOpenArr{}:
477      punct.arr(stack, goal, done)
478    case Lex.TOpenObj{}:
479      punct.obj(stack, goal, done)
480    case Lex.TCloseArr{}:
481      close.arr(stack, goal)
482    case Lex.TCloseObj{}:
483      close.obj(stack, goal)
484    case Lex.TColon{}:
485      punct.colon(stack, goal)
486    case Lex.TComma{}:
487      punct.comma(stack, goal)
488    case other:
489      err.st(goal)

Uses (13)

Used by (1)