private void InitializeUnicodeCategoryDefinitions()
        {
            if (encoding == BitWidth.BV7)
            {
                for (int i = 0; i < 30; i++)
                {
                    if (UnicodeCategoryRanges.ASCIIBdd[i] == null)
                    {
                        catConditionsBDD[i] = solverBDD.False;
                    }
                    else
                    {
                        catConditionsBDD[i] = solverBDD.DeserializeCompact(UnicodeCategoryRanges.ASCIIBdd[i]);
                    }
                }
                whiteSpaceConditionBDD = solverBDD.DeserializeCompact(UnicodeCategoryRanges.ASCIIWhitespaceBdd);

                wordLetterConditionBDD = solverBDD.DeserializeCompact(UnicodeCategoryRanges.ASCIIWordCharacterBdd);
            }
            else if (encoding == BitWidth.BV8)
            {
                for (int i = 0; i < 30; i++)
                {
                    if (UnicodeCategoryRanges.CP437Bdd[i] == null)
                    {
                        catConditionsBDD[i] = solverBDD.False;
                    }
                    else
                    {
                        catConditionsBDD[i] = solverBDD.DeserializeCompact(UnicodeCategoryRanges.CP437Bdd[i]);
                    }
                }
                whiteSpaceConditionBDD = solverBDD.DeserializeCompact(UnicodeCategoryRanges.CP437WhitespaceBdd);
                wordLetterConditionBDD = solverBDD.DeserializeCompact(UnicodeCategoryRanges.CP437WordCharacterBdd);
            }
            else
            {
                for (int i = 0; i < 30; i++)
                {
                    catConditionsBDD[i] = solverBDD.DeserializeCompact(UnicodeCategoryRanges.UnicodeBdd[i]);
                }
                whiteSpaceConditionBDD = solverBDD.DeserializeCompact(UnicodeCategoryRanges.UnicodeWhitespaceBdd);
                wordLetterConditionBDD = solverBDD.DeserializeCompact(UnicodeCategoryRanges.UnicodeWordCharacterBdd);
            }
            #region create corresponding ranges
            for (int i = 0; i < 30; i++)
            {
                catConditions[i] = new HashSet <char>(solverBDD.GenerateAllCharacters(catConditionsBDD[i], false));
            }
            whiteSpaceCondition = new HashSet <char>(solverBDD.GenerateAllCharacters(whiteSpaceConditionBDD, false));
            wordLetterCondition = new HashSet <char>(solverBDD.GenerateAllCharacters(wordLetterConditionBDD, false));
            #endregion
        }
 private void InitializeUnicodeCategoryDefinitions()
 {
     if (solver.Encoding == BitWidth.BV7)
     {
         for (int i = 0; i < 30; i++)
         {
             if (UnicodeCategoryRanges.ASCIIBdd[i] == null)
             {
                 catConditions[i] = solver.False;
             }
             else
             {
                 catConditions[i] = solver.DeserializeCompact(UnicodeCategoryRanges.ASCIIBdd[i]);
             }
         }
         whiteSpaceCondition = solver.DeserializeCompact(UnicodeCategoryRanges.ASCIIWhitespaceBdd);
         wordLetterCondition = solver.DeserializeCompact(UnicodeCategoryRanges.ASCIIWordCharacterBdd);
     }
     else if (solver.Encoding == BitWidth.BV8)
     {
         for (int i = 0; i < 30; i++)
         {
             if (UnicodeCategoryRanges.CP437Bdd[i] == null)
             {
                 catConditions[i] = solver.False;
             }
             else
             {
                 catConditions[i] = solver.DeserializeCompact(UnicodeCategoryRanges.CP437Bdd[i]);
             }
         }
         whiteSpaceCondition = solver.DeserializeCompact(UnicodeCategoryRanges.CP437WhitespaceBdd);
         wordLetterCondition = solver.DeserializeCompact(UnicodeCategoryRanges.CP437WordCharacterBdd);
     }
     else
     {
         for (int i = 0; i < 30; i++)
         {
             catConditions[i] = solver.DeserializeCompact(UnicodeCategoryRanges.UnicodeBdd[i]);
         }
         whiteSpaceCondition = solver.DeserializeCompact(UnicodeCategoryRanges.UnicodeWhitespaceBdd);
         wordLetterCondition = solver.DeserializeCompact(UnicodeCategoryRanges.UnicodeWordCharacterBdd);
     }
 }
        private void InitializeUnicodeCategoryDefinitions()
        {
            if (encoding == BitWidth.BV7)
            {
                for (int i = 0; i < 30; i++)
                {
                    if (UnicodeCategoryRanges.ASCIIBdd[i] == null)
                    {
                        catConditionsBDD[i] = solverBDD.False;
                    }
                    else
                    {
                        catConditionsBDD[i] = solverBDD.DeserializeCompact(UnicodeCategoryRanges.ASCIIBdd[i]);
                    }
                }
                whiteSpaceConditionBDD = solverBDD.DeserializeCompact(UnicodeCategoryRanges.ASCIIWhitespaceBdd);

                wordLetterConditionBDD = solverBDD.DeserializeCompact(UnicodeCategoryRanges.ASCIIWordCharacterBdd);
            }
            else if (encoding == BitWidth.BV8)
            {
                for (int i = 0; i < 30; i++)
                {
                    if (UnicodeCategoryRanges.CP437Bdd[i] == null)
                    {
                        catConditionsBDD[i] = solverBDD.False;
                    }
                    else
                    {
                        catConditionsBDD[i] = solverBDD.DeserializeCompact(UnicodeCategoryRanges.CP437Bdd[i]);
                    }
                }
                whiteSpaceConditionBDD = solverBDD.DeserializeCompact(UnicodeCategoryRanges.CP437WhitespaceBdd);
                wordLetterConditionBDD = solverBDD.DeserializeCompact(UnicodeCategoryRanges.CP437WordCharacterBdd);
            }
            else
            {
                for (int i = 0; i < 30; i++)
                {
                    catConditionsBDD[i] = solverBDD.DeserializeCompact(UnicodeCategoryRanges.UnicodeBdd[i]);
                }
                whiteSpaceConditionBDD = solverBDD.DeserializeCompact(UnicodeCategoryRanges.UnicodeWhitespaceBdd);
                wordLetterConditionBDD = solverBDD.DeserializeCompact(UnicodeCategoryRanges.UnicodeWordCharacterBdd);
            }
            #region create corresponding ranges
            for (int i = 0; i < 30; i++)
            {
                var ranges = solverBDD.ToRanges(catConditionsBDD[i]);
                catConditions[i] = new HashSet <Pair <char, char> >();
                foreach (var range in ranges)
                {
                    catConditions[i].Add(new Pair <char, char>((char)range.First, (char)range.Second));
                }
            }

            var ranges1 = solverBDD.ToRanges(whiteSpaceConditionBDD);
            whiteSpaceCondition = new HashSet <Pair <char, char> >();
            foreach (var range in ranges1)
            {
                whiteSpaceCondition.Add(new Pair <char, char>((char)range.First, (char)range.Second));
            }

            ranges1             = solverBDD.ToRanges(wordLetterConditionBDD); //new Utilities.UnicodeCategoryRangesGenerator.Ranges();
            wordLetterCondition = new HashSet <Pair <char, char> >();
            foreach (var range in ranges1)
            {
                wordLetterCondition.Add(new Pair <char, char>((char)range.First, (char)range.Second));
            }
            #endregion
        }