def lex
import bend-kit-regex@0.8.0.0/regex.bend as Regeximport Base
378# fuel: every step but the last eats at least one char.
379def lex(fuel: Nat, st: Lx) -> Maybe<&2, List<&2, Tok>>:
380 match fuel:
381 case 0n:
382 None{}
383 case 1n+f:
384 match st:
385 case LGo{s, toks}:
386 lex(f, lex.step(s, toks))
387 case LDone{toks}:
388 Some{List.reverse(&2, Tok, toks)}
389 case LFail{}:
390 None{}