def nfa.start

bend-osdev-apparmor@0.1.0.0 · PROOF.bend:3001

import bend-osdev-apparmor@0.1.0.0/PROOF.bend as PROOF
import Base
import bend-osdev-apparmor@0.1.0.0/glob.bend as G

3001# only the whole sequence active: what the backtracking matcher accepts
3002def nfa.start(+seq: List<&2, G.AaGTok>, +s: List<&2, U32>) -> {G.AaGNfa.sem(seq, G.AaGNfa.start(seq), s) == G.AaGSeq.matches(seq, s) : Bool}:
3003  match seq:
3004    case Nil{}:
3005      {==}
3006    case Con{tok, r}:
3007      %Equal.sym(Bool, G.AaGNfa.sem(r, G.AaGNfa.falses(r), s), False{}, nfa.dead(r, G.AaGNfa.falses(r), s, nfa.falses_dead(r))) : {Bool.or(G.AaGSeq.matches(Con{tok, r}, s), _) == G.AaGSeq.matches(Con{tok, r}, s) : Bool}
3008      b.or_false_r(G.AaGSeq.matches(Con{tok, r}, s))

Uses (13)

Used by (1)