Beispiel #1
0
 /// <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]}"))));
 }
Beispiel #2
0
 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)));
 }