public override RangeSet <T> GetCharSet <T>(IRangeSetProvider <T> provider) { var result = RangeSet <T> .Empty; foreach (var handle in this.handles) { var set = handle.GetCharSet(provider); result |= handle.Negate ? provider.Negate(set) : set; } return(result); }
public static RangeSet <TChar> Compute <TChar>(this CharsetNode that, IRangeSetProvider <TChar> provider) where TChar : IComparable <TChar> { return(that.Visit(new CharsetComputer <TChar>(), provider)); }
RangeSet <TChar> ICharsetVisitor <IRangeSetProvider <TChar>, RangeSet <TChar> > .Difference(CharsetDifference node, IRangeSetProvider <TChar> context) { return(node.LeftNode.Visit(this, context) ^ node.RightNode.Visit(this, context)); }
RangeSet <TChar> ICharsetVisitor <IRangeSetProvider <TChar>, RangeSet <TChar> > .Union(CharsetUnion node, IRangeSetProvider <TChar> context) { return(node.LeftNode.Visit(this, context) | node.RightNode.Visit(this, context)); }
RangeSet <TChar> ICharsetVisitor <IRangeSetProvider <TChar>, RangeSet <TChar> > .Subtract(CharsetSubtract node, IRangeSetProvider <TChar> context) { return(node.LeftNode.Visit(this, context) - node.RightNode.Visit(this, context)); }
RangeSet <TChar> ICharsetVisitor <IRangeSetProvider <TChar>, RangeSet <TChar> > .Negate(CharsetNegate node, IRangeSetProvider <TChar> context) { return(~node.Node.Visit(this, context)); }
RangeSet <TChar> ICharsetVisitor <IRangeSetProvider <TChar>, RangeSet <TChar> > .Handle(CharsetHandle node, IRangeSetProvider <TChar> context) { var ranges = node.Handle.GetCharSet(context); return(node.Handle.Negate ? ~ranges : ranges); }
public override RangeSet <T> GetCharSet <T>(IRangeSetProvider <T> provider) { return(provider.GetRangeSet(this.Charset)); }
public override RangeSet <T> GetCharSet <T>(IRangeSetProvider <T> provider) { return(provider.GetRangeSet(RangeSetCategory.Name, this.Name)); }
public override RangeSet <T> GetCharSet <T>(IRangeSetProvider <T> provider) { return(provider.GetRangeSet(RangeSetCategory.Class, this.CharSetClass.ToString())); }
public abstract RangeSet <T> GetCharSet <T>(IRangeSetProvider <T> provider) where T : IComparable <T>;
public Context(IUnicodeMapper <TLetter> mapper, IRangeSetProvider <Codepoint> charSetProvider, bool caseSensitive) { this.Mapper = mapper; this.CharSetProvider = charSetProvider; this.CaseSensitive = caseSensitive; }
public RxNode <TLetter> ToInvariant <TLetter>(IUnicodeMapper <TLetter> mapper, IRangeSetProvider <Codepoint> provider, bool caseSensitive) where TLetter : IEquatable <TLetter>, IComparable <TLetter> { return(this.Visit(ToInvariantVisitor <TLetter> .Default, new ToInvariantVisitor <TLetter> .Context(mapper, provider, caseSensitive))); }