def step.go
bolt@1.27.0.0 · src/syntax/outline.bend:426
import bolt@1.27.0.0/src/syntax/outline.bend as Outline
import Base
426def step.go(cls: Cls, +mode: Mode, ss: String, +nn: U32, doc: List<&2, String>, out: List<&2, Item>) -> St:
427 match cls:
428 case LBlank{}:
429 St{Top{}, (nn + 1 : U32), [], flush(mode, out)}
430 case LComment{t}:
431 St{Top{}, (nn + 1 : U32), t <> doc_above(mode, doc), flush(mode, out)}
432 case LIndent{t}:
433 indent(mode, t, nn, out)
434 case LImport{}:
435 St{Top{}, (nn + 1 : U32), [], add(import_item(ss, nn, doc_text(doc)), flush(mode, out))}
436 case LDef{}:
437 start_def(ss, nn, doc_text(doc), flush(mode, out))
438 case LLaw{}:
439 step.law(ss, nn, doc_text(doc), mode, out)
440 case LType{}:
441 step.ty(ss, nn, doc_text(doc), mode, out)
442 case LOther{}:
443 stray(mode, ss, nn, out)