private bool TryParseCheckCompoundPatternIntoCompoundPatterns(string parameterText, List <PatternEntry> entries) { var parameters = parameterText.SliceOnTabOrSpace(); if (parameters.Length == 0) { Builder.LogWarning("Failed to parse compound pattern from: " + parameterText); return(false); } var pattern = parameters[0]; StringSlice pattern2 = StringSlice.Null; StringSlice pattern3 = StringSlice.Null; var condition = default(FlagValue); var condition2 = default(FlagValue); var slashIndex = pattern.IndexOf('/'); if (slashIndex >= 0) { if (!TryParseFlag(pattern.Subslice(slashIndex + 1), out condition)) { Builder.LogWarning($"Failed to parse compound pattern 1 {pattern} from: {parameterText}"); return(false); } pattern = pattern.Subslice(0, slashIndex); } if (parameters.Length >= 2) { pattern2 = parameters[1]; slashIndex = pattern2.IndexOf('/'); if (slashIndex >= 0) { if (!TryParseFlag(pattern2.Subslice(slashIndex + 1), out condition2)) { Builder.LogWarning($"Failed to parse compound pattern 2 {pattern2} from: {parameterText}"); return(false); } pattern2 = pattern2.Subslice(0, slashIndex); } if (parameters.Length >= 3) { pattern3 = parameters[2]; Builder.EnableOptions(AffixConfigOptions.SimplifiedCompound); } } entries.Add(new PatternEntry( Builder.Dedup(pattern.ToString()), Builder.Dedup(pattern2.ToString()), Builder.Dedup(pattern3.ToString()), condition, condition2)); return(true); }