示例#1
0
        /// <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);
        }
示例#2
0
 /// <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);
         }
     }
 }