addDFAEdge method

void addDFAEdge(
  1. DFAState p,
  2. int t,
  3. DFAState q
)

Implementation

void addDFAEdge(DFAState p, int t, DFAState q) {
  if (t < MIN_DFA_EDGE || t > MAX_DFA_EDGE) {
    // Only track edges within the DFA bounds
    return;
  }

  if (debug) {
    log('EDGE $p -> $q upon ${String.fromCharCode(t)}',
        level: Level.FINE.value);
  }

  p.edges ??= List<DFAState?>.filled(MAX_DFA_EDGE - MIN_DFA_EDGE + 1, null);
  p.edges![t - MIN_DFA_EDGE] = q; // connect
}