Example #1
0
 public static Rule Rule1f()
 {
     return(R.Rule(c => c
                   .Id("p1c23r1f")
                   .From(1100).To(1200)
                   .Query(q => q.Match(m => m.Twice(t => t
                                                    .Phon(p => IPA.IsConsonant(p)))))
                   .Rules(r => r
                          .Named("Dégémination")
                          .Phono(px => new[] { px[0] }))));
 }
Example #2
0
 public static Rule Rule1b()
 {
     return(R.Rule(c => c
                   .Id("p1c23r1b")
                   .From(600).To(700)
                   .Query(q => q.Match(m => m.Twice(t => t
                                                    .Phon(p => IPA.IsConsonant(p) && p != "r"))))
                   .Rules(r => r
                          .Named("Dégémination en intervocalique (excepté /rr/)")
                          .Phono(px => new[] { px[0] }))));
 }
Example #3
0
 public static Rule Rule2a()
 {
     return(R.Rule(c => c
                   .Id("p1c18r2a")
                   .From(250).To(300)
                   .Query(q => q
                          .Match(m => m.Phon("l"))
                          .After(a => a.Phon(p => IPA.IsConsonant(p) && p != "l")))
                   .Rules(r => r
                          .Named("Vélarisation de /l/ en coda")
                          .Phono(px => new[] { "ɫ" }))));
 }
Example #4
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]}"))));
 }