예제 #1
0
 private bool IsPunctuation(UChar letter)
 {
     return
         (CC.Cl01(letter) || CC.Cl02(letter) || CC.Cl03(letter) ||
          CC.Cl04(letter) || CC.Cl05(letter) || CC.Cl06(letter) ||
          CC.Cl07(letter));
 }
 private bool IsPunctuation(string letter)
 {
     return(letter.Length == 1 &&
            (CC.Cl01(letter[0]) || CC.Cl02(letter[0]) || CC.Cl03(letter[0]) ||
             CC.Cl04(letter[0]) || CC.Cl05(letter[0]) || CC.Cl06(letter[0]) ||
             CC.Cl07(letter[0])));
 }
예제 #3
0
        public static IEnumerable <UChar> Filter(IEnumerable <UChar> xs)
        {
            bool isPrevDividingPunctuation = false;

            foreach (var x in xs)
            {
                if (isPrevDividingPunctuation)
                {
                    if (x != fullWidthSpace)
                    {
                        yield return(x);
                    }
                }
                else
                {
                    yield return(x);
                }
                isPrevDividingPunctuation = CC.Cl04(x);
            }
        }
예제 #4
0
 public static SpaceType GetSpaceType(this UChar letter)
 {
     if (CC.Cl07(letter) || CC.Cl06(letter) || CC.Cl02(letter))
     {
         return(SpaceType.Closing);
     }
     else if (CC.Cl01(letter))
     {
         return(SpaceType.Opening);
     }
     else if (CC.Cl04(letter))
     {
         return(SpaceType.DividingPunctuation);
     }
     else if (CC.Cl05(letter))
     {
         return(SpaceType.MiddleDots);
     }
     else
     {
         return(SpaceType.Normal);
     }
 }
예제 #5
0
 /// <summary>
 /// 行頭禁則
 /// </summary>
 private static bool DoViolateLineStartProhibitionRule(UChar following)
 {
     return(CC.Cl02(following) || CC.Cl04(following) || CC.Cl06(following) || CC.Cl07(following) || CC.Cl09(following));
 }