private BinaryDecisionDiagram GenerateWhiteSpace() { var bddBuilder = new BddBuilder(_bits); var ranges = _rangesLoader.Value.Item2.ranges; return(bddBuilder.CreateFromRanges(ranges)); }
private IDictionary <UnicodeCategory, BinaryDecisionDiagram> GenerateCategory() { var bddBuilder = new BddBuilder(_bits); var result = new Dictionary <UnicodeCategory, BinaryDecisionDiagram>(); var sourceRanges = _rangesLoader.Value.Item1; foreach (var kv in sourceRanges) { result[kv.Key] = bddBuilder.CreateFromRanges(kv.Value.ranges); } return(result); }
private BinaryDecisionDiagram GenerateWordCharacter() { var categories = Category; var bddBuilder = new BddBuilder(_bits); var wordCharacterBdd = bddBuilder.Or( categories[UnicodeCategory.UppercaseLetter], bddBuilder.Or( categories[UnicodeCategory.LowercaseLetter], bddBuilder.Or( categories[UnicodeCategory.TitlecaseLetter], bddBuilder.Or( categories[UnicodeCategory.ModifierLetter], bddBuilder.Or( categories[UnicodeCategory.OtherLetter], bddBuilder.Or( categories[UnicodeCategory.DecimalDigitNumber], categories[UnicodeCategory.ConnectorPunctuation])))))); return(wordCharacterBdd); }
/// <summary> /// Initializes a new instance of the <see cref="RexEngine"/> class. /// </summary> /// <param name="options">A bitwise combination of the <see cref="RegexOptions"/> values that provide options for generation members from a regular expression.</param> /// <param name="encoding">An encoding, representing a character set to generate members from.</param> /// <exception cref="ArgumentException"><paramref name="options"/> is not a valid enum.</exception> /// <exception cref="ArgumentNullException"><paramref name="encoding"/> is <c>null</c>.</exception> public RexEngine(RegexOptions options, Encoding encoding) { if (!options.IsValid()) { throw new ArgumentException($"The { nameof(RegexOptions) } provided must be a valid enum.", nameof(options)); } if (encoding == null) { throw new ArgumentNullException(nameof(encoding)); } _options = options; var nbits = GetEncodingBitSize(encoding); _solver = new BddBuilder(nbits); _chooser = new Chooser(); var categoryProvider = new UnicodeCategoryConditionsBddProvider(encoding, nbits); _regexConverter = new RegexToSfa <BinaryDecisionDiagram>(_solver, categoryProvider); }