Ejemplo n.º 1
0
 public static TEntry Create <TEntry>
 (
     string strip,
     string affixText,
     CharacterConditionGroup conditions,
     MorphSet morph,
     FlagSet contClass
 )
     where TEntry : AffixEntry, new()
 {
     return(new TEntry
     {
         Strip = strip,
         Append = affixText,
         Conditions = conditions,
         MorphCode = morph ?? MorphSet.Empty,
         ContClass = contClass ?? FlagSet.Empty
     });
 }
Ejemplo n.º 2
0
        public static CharacterConditionGroup Parse(string text)
        {
            if (string.IsNullOrEmpty(text))
            {
                return(CharacterConditionGroup.Empty);
            }

            var match = ConditionParsingRegex.Match(text);

            if (!match.Success || match.Groups.Count < 2)
            {
                return(CharacterConditionGroup.Empty);
            }

            var captures   = match.Groups[1].Captures;
            var conditions = new CharacterCondition[captures.Count];

            for (var captureIndex = 0; captureIndex < captures.Count; captureIndex++)
            {
                conditions[captureIndex] = ParseSingle(captures[captureIndex].Value);
            }

            return(CharacterConditionGroup.TakeArray(conditions));
        }
Ejemplo n.º 3
0
 private bool RedundantConditionPrefix(string text, CharacterConditionGroup conditions)
 {
     return(conditions.IsOnlyPossibleMatch(text));
 }
Ejemplo n.º 4
0
 public CharacterConditionGroup Dedup(CharacterConditionGroup value) =>
 CharacterConditionGroupDeduper.GetEqualOrAdd(value);