/// <summary> /// Réduction des groupes intérieurs de 3 consonnes /// </summary> public static Rule Rule1() { return(R.Rule(c => c .Id("p1c17r1") .Query( q => q.Match(m => m.Seq( s => s.Phon(p => IPA.IsConsonant(p) && !IPA.IsLiquide(p) && !IPA.IsFricative(p) && !IPA.IsGlide(p)), s => s.Phon(IPA.IsConsonant), s => s.Phon(IPA.IsConsonant))), q => q.Match(m => m.Seq( s => s.Phon(IPA.IsConsonant), s => s.Phon(IPA.IsConsonant), s => s.Phon(p => IPA.IsConsonant(p) && !IPA.IsLiquide(p) && !IPA.IsFricative(p) && !IPA.IsGlide(p))))) .Rules(r => r .Named("Réduction des groupes intérieurs de 3 consonnes") .Phono(px => new[] { px[0], px[2] }) .Rewrite(_ => _) .Rewrite(g => $"{g[0]} {g[2]}")))); }
public bool IsOnsetCluster(string fst, string snd) { return((!IPA.IsVowel(fst) && !IPA.IsGlide(fst) && IPA.IsGlide(snd)) || ((IPA.IsOcclusive(fst) || IPA.IsFricative(fst)) && IPA.IsLiquide(snd))); }