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}

Uses (14)

Used by (1)