internal override RdpPattern ReduceEmptyAndNotAllowed (ref bool result, Hashtable visited) { if (visited.Contains (this)) return this; visited.Add (this, this); if (LValue.PatternType == RelaxngPatternType.NotAllowed && RValue.PatternType == RelaxngPatternType.NotAllowed) { result = true; return RdpNotAllowed.Instance; } else if (LValue.PatternType == RelaxngPatternType.NotAllowed) { result = true; return RValue.ReduceEmptyAndNotAllowed (ref result, visited); } else if (RValue.PatternType == RelaxngPatternType.NotAllowed) { result = true; return LValue.ReduceEmptyAndNotAllowed (ref result, visited); } else if (LValue.PatternType == RelaxngPatternType.Empty && RValue.PatternType == RelaxngPatternType.Empty) { result = true; return RdpEmpty.Instance; } else if (RValue.PatternType == RelaxngPatternType.Empty) { result = true; RValue = LValue.ReduceEmptyAndNotAllowed (ref result, visited); LValue = RdpEmpty.Instance; return this; } else { LValue = LValue.ReduceEmptyAndNotAllowed (ref result, visited); RValue = RValue.ReduceEmptyAndNotAllowed (ref result, visited); return this; } }
internal override RdpPattern ReduceEmptyAndNotAllowed (ref bool result, Hashtable visited) { if (visited.Contains (this)) return this; visited.Add (this, this); if (children.PatternType == RelaxngPatternType.NotAllowed) { result = true; return RdpNotAllowed.Instance; } else { children = children.ReduceEmptyAndNotAllowed (ref result, visited); return this; } }
internal override RdpPattern ReduceEmptyAndNotAllowed (ref bool result, Hashtable visited) { if (visited.Contains (this)) return this; visited.Add (this, this); children = children.ReduceEmptyAndNotAllowed (ref result, visited); return this; }
internal override RdpPattern ReduceEmptyAndNotAllowed (ref bool result, Hashtable visited) { if (visited.Contains (this)) return this; visited.Add (this, this); if (except.PatternType == RelaxngPatternType.NotAllowed) { result = true; return new RdpData (this.Datatype); } else { except = except.ReduceEmptyAndNotAllowed (ref result, visited); return this; } }