private boolean altdissect(RuntimeSubexpression t, int begin, int end) {
        Dfa d;

        assert t != null;
        assert t.op == '|';

        for (; t != null; t = t.right) {
            assert t.left != null && t.left.machine.states.length > 0;
            d = new Dfa(this, t.left.machine);
            if (d.longest(begin, end, null) == end) {
                return dissect(t.left, begin, end);
            }
        }
        throw new RuntimeException("none matched");
    }
private boolean altdissect(RuntimeSubexpression t, int begin, int end) {
        Dfa d;

        assert t != null;
        assert t.op == '|';

        for (; t != null; t = t.right) {
            assert t.left != null && t.left.machine.states.length > 0;
            d = new Dfa(this, t.left.machine);
            if (d.longest(begin, end, null) == end) {
                return dissect(t.left, begin, end);
            }
        }
        throw new RuntimeException("none matched");
    }
private boolean altdissect ( RuntimeSubexpression t , int begin , int end ) { Dfa d ; assert t != null ; assert t . op == ' ' ; for ( ; t != null ; t = t . right ) { assert t . left != null && t . left . machine . states . length > 0 ; d = new Dfa ( this , t . left . machine ) ; if ( d . longest ( begin , end , null ) == end ) { return dissect ( t . left , begin , end ) ; } } throw new RuntimeException ( "none matched" ) ; }
altdissect - determine alternative subexpression matches (uncomplicated)
altdissect - determine alternative subexpression matches ( uncomplicated )