Example #1
0
        private AASetSequence UnifyWithAfterOrNull(int coreLength, AASetSequence disjunctRightFull, AASetSequence disjunctUnificationAfter)
        {
            AASetSequence sb;

            if (disjunctRightFull.Count >= disjunctUnificationAfter.Count)
            {
                sb = UnifyWithAfterOrNullLongerShorter(disjunctRightFull, disjunctUnificationAfter);
            }
            else
            {
                sb = UnifyWithAfterOrNullLongerShorter(disjunctUnificationAfter, disjunctRightFull);
            }

            if (sb == null)
            {
                return(null);
            }

            //make everything after the core region, lower case to shows that it is a flanking region
            for (int i = (int)coreLength + 1; i < sb.Count; ++i)
            {
                sb[i] = AASetSequence.ToOptional(sb[i]);
            }
            return(sb);
        }