/// <summary>Add a pattern to the tree.</summary> /// <remarks> /// Add a pattern to the tree. Mainly, to be used by /// <see cref="PatternParser">PatternParser</see> /// class as callback to /// add a pattern to the tree. /// </remarks> /// <param name="pattern">the hyphenation pattern</param> /// <param name="ivalue"> /// interletter weight values indicating the /// desirability and priority of hyphenating at a given point /// within the pattern. It should contain only digit characters. /// (i.e. '0' to '9'). /// </param> public virtual void AddPattern(String pattern, String ivalue) { int k = ivalues.Find(ivalue); if (k <= 0) { k = PackValues(ivalue); ivalues.Insert(ivalue, (char)k); } Insert(pattern, (char)k); }
/// <summary>Add a character class to the tree.</summary> /// <remarks> /// Add a character class to the tree. It is used by /// <see cref="PatternParser">PatternParser</see> /// as callback to /// add character classes. Character classes define the /// valid word characters for hyphenation. If a word contains /// a character not defined in any of the classes, it is not hyphenated. /// It also defines a way to normalize the characters in order /// to compare them with the stored patterns. Usually pattern /// files use only lower case characters, in this case a class /// for letter 'a', for example, should be defined as "aA", the first /// character being the normalization char. /// </remarks> /// <param name="chargroup">a character class (group)</param> public virtual void AddClass(String chargroup) { if (chargroup.Length > 0) { char equivChar = chargroup[0]; char[] key = new char[2]; key[1] = (char)0; for (int i = 0; i < chargroup.Length; i++) { key[0] = chargroup[i]; classmap.Insert(key, 0, equivChar); } } }