def close.inst
bend-kit-regex@0.8.0.0 · regex.bend:1026
import bend-kit-regex@0.8.0.0/regex.bend as Regex
import Base
1026def close.inst(i: Maybe<&2, Inst>, +pc: U32, +caps: List<&2, Maybe<&2, U32>>, stack: List<&2, Th>, seen: Trie<Unit>, out: List<&2, Th>, +pos: U32, +prev: Maybe<&2, Char>, +next: Maybe<&2, Char>) -> Cl:
1027 match i:
1028 case None{}:
1029 Cl{stack, seen, out}
1030 case Some{IJmp{x}}:
1031 Cl{Th{x, caps} <> stack, seen, out}
1032 case Some{ISplit{x, y}}:
1033 Cl{Th{x, caps} <> Th{y, caps} <> stack, seen, out}
1034 case Some{ISave{k}}:
1035 Cl{Th{(pc + 1 : U32), List.set(&2, Maybe<&2, U32>, caps, U32.to_nat(k), Some{pos})} <> stack, seen, out}
1036 case Some{IAssert{k}}:
1037 close.assert(assert.ok(k, prev, next), pc, caps, stack, seen, out)
1038 case Some{ISet{neg, items}}:
1039 Cl{stack, seen, Th{pc, caps} <> out}
1040 case Some{IMatch{}}:
1041 Cl{stack, seen, Th{pc, caps} <> out}