static private AASet FlankingUnifyOrOptionalEmpty(AASet c1, AASet c2) { Debug.Assert(AASetSequence.IsOptional(c1) && AASetSequence.IsOptional(c2)); // real assert AASet result = c1 & c2; return(result); }
static public AASet UnifyOrEmpty(AASet c1, AASet c2) { SpecialFunctions.CheckCondition(!AASetSequence.IsOptional(c1) && !AASetSequence.IsOptional(c2)); //!!!raise error AASet result = c1 & c2; return(result); }
private AASet FlankingAndCoreUnifyOrEmpty(AASet flanking, AASet core) { if (flanking == AASet.OptionalAny) { return(core); } Debug.Assert(AASetSequence.IsOptional(flanking)); // real assert AASet chUnifyOrEmpty = AASetSequence.UnifyOrEmpty(AASetSequence.ToRequired(flanking), core); return(chUnifyOrEmpty); }