public string GetPron(FrenchWord w)
 {
     Lexer.FindAllCombs(w);
     Parser.Parse(w);
     Announcer.Announce(w);
     return(w.Pron);
 }
        protected virtual void MarkNasal(FrenchWord word)
        {
            LinkedListNode <FrenchCharComb> MergeNext(LinkedListNode <FrenchCharComb> comb)
            {
                var t = comb.Next.Value.Comb;

                word.CharCombList.Remove(comb.Next);
                if (comb.Previous != null)
                {
                    var p = comb.Previous;
                    word.CharCombList.Remove(comb);
                    return(word.CharCombList.AddAfter(p, new FrenchCharComb(comb.Value.Comb + t, comb.Value.StartPos)));
                }
                else
                {
                    word.CharCombList.Remove(comb);
                    return(word.CharCombList.AddFirst(new FrenchCharComb(comb.Value.Comb + t, comb.Value.StartPos)));
                }
            }

            for (var comb = word.CharCombList.First; comb != null; comb = comb.Next)
            {
                // mm, nn, mn is char comb
                // will deal with e elsewhere
                if (IsNasalizable(comb.Value.Comb) && comb.Next != null && (comb.Next.Value.Comb == "m" || comb.Next.Value.Comb == "n"))
                {
                    if (comb.Next.Next == null || !IsVowelComb(comb.Next.Next.Value))
                    {
                        comb = MergeNext(comb);
                    }
                }
            }
        }
 public void Parse(FrenchWord word)
 {
     MarkSpecialMute(word);
     SplitBadCharComb(word);
     SplitCharComb(word);
     MarkNasal(word);
     MarkMuteTrail(word);
     MarkNearVowelSchwa(word);
     CutSyllable(word);
     MarkVCECVSchwa(word);
     Emphasize(word);
 }
Esempio n. 4
0
 public override string GetPron(LinkedListNode <FrenchCharComb> comb, FrenchWord word)
 {
     return(condition(comb, word) ? pron1 : pron2);
 }
Esempio n. 5
0
 public override string GetPron(LinkedListNode <FrenchCharComb> comb, FrenchWord word)
 {
     return(ins);
 }
Esempio n. 6
0
 public abstract string GetPron(LinkedListNode <FrenchCharComb> comb, FrenchWord word);