whole_func_string: function orPair(first, second) {
    const inState = new NFAState();
    const outState = new NFAState();
  
    inState.addTransition(EPSILON, first.in);
    inState.addTransition(EPSILON, second.in);
  
    outState.accepting = true;
    first.out.accepting = false;
    second.out.accepting = false;
  
    first.out.addTransition(EPSILON, outState);
    second.out.addTransition(EPSILON, outState);
  
    return new NFA(inState, outState);
  }
func_code_string: function orPair(first, second) {
    const inState = new NFAState();
    const outState = new NFAState();
  
    inState.addTransition(EPSILON, first.in);
    inState.addTransition(EPSILON, second.in);
  
    outState.accepting = true;
    first.out.accepting = false;
    second.out.accepting = false;
  
    first.out.addTransition(EPSILON, outState);
    second.out.addTransition(EPSILON, outState);
  
    return new NFA(inState, outState);
  }
func_documentation_string: ----------------------------------------------------------------------------- Disjunction NFA fragment: `a|b` 
  Creates a disjunction choice between two fragments.