diff options
| author | Sébastien Dailly <sebastien@chimrod.com> | 2021-09-05 19:41:40 +0200 | 
|---|---|---|
| committer | Sébastien Dailly <sebastien@chimrod.com> | 2021-09-05 19:41:40 +0200 | 
| commit | 6a34154b77ac80f89df816ba0062f382d915fb22 (patch) | |
| tree | 5dab18f15fe8555d5369a9c492228f6aa4d23001 /src/lib/modifiers | |
| parent | 853e281a6719125866f8b948540944c571b091c6 (diff) | |
Updated tests
Diffstat (limited to 'src/lib/modifiers')
| -rw-r--r-- | src/lib/modifiers/e.ml | 18 | ||||
| -rw-r--r-- | src/lib/modifiers/modifiers.ml | 1 | ||||
| -rw-r--r-- | src/lib/modifiers/mute.ml | 2 | ||||
| -rw-r--r-- | src/lib/modifiers/nasal.ml | 2 | ||||
| -rw-r--r-- | src/lib/modifiers/sig.ml | 10 | 
5 files changed, 23 insertions, 10 deletions
| diff --git a/src/lib/modifiers/e.ml b/src/lib/modifiers/e.ml index 8fd65bf..5f6e6fe 100644 --- a/src/lib/modifiers/e.ml +++ b/src/lib/modifiers/e.ml @@ -2,14 +2,26 @@  let process    : 'a Sig.modifier    = fun init -> -    let ((v2, c) , ending) = init in +    let ((v, c) , ending) = init in      match ending with -    | None when v2 = Sounds.schwa -> +    | None when v = Sounds.schwa ->        (* If there is no more consononant in the syllabe, change the e           into eu, like in sera *)        ((Sounds.eu `Closed, c) , ending) -    | Some _ when v2 = Sounds.schwa -> +    | Some _ when v = Sounds.schwa -> +      (* If there is an ending consonant, change the e into E like essai *) +      ((Sounds.e `Opened, c) , ending) +    | _ -> init + +(** Transform the final e into E if there is a consonant *) +let ending_e +  : 'a Sig.modifier +  = fun init -> +    let ((v, c) , ending) = init in + +    match ending with +    | Some _ when v = Sounds.schwa ->        (* If there is an ending consonant, change the e into E like essai *)        ((Sounds.e `Opened, c) , ending)      | _ -> init diff --git a/src/lib/modifiers/modifiers.ml b/src/lib/modifiers/modifiers.ml index 3a9ecd6..4e58cba 100644 --- a/src/lib/modifiers/modifiers.ml +++ b/src/lib/modifiers/modifiers.ml @@ -4,3 +4,4 @@ let nasal = Nasal.process  let vocalize_s = Vocalize.process  let mute_consonant = Mute.process  let e = E.process +let ending_e = E.ending_e diff --git a/src/lib/modifiers/mute.ml b/src/lib/modifiers/mute.ml index b89fda7..7b58336 100644 --- a/src/lib/modifiers/mute.ml +++ b/src/lib/modifiers/mute.ml @@ -1,6 +1,6 @@  open StdLabels -(** Mute the last consonant if there is no voyel in the syllabus. +(** Mute the last consonant if there is no voyel in the syllabe.      This modifier is only applied in the first step, and not repeated anymore.  *) diff --git a/src/lib/modifiers/nasal.ml b/src/lib/modifiers/nasal.ml index cc29efc..43f3bd8 100644 --- a/src/lib/modifiers/nasal.ml +++ b/src/lib/modifiers/nasal.ml @@ -1,7 +1,7 @@  (* Remove the ending consonant, and transform the voyel into     the nasal form  *)  let transform -  : Sounds.t Sig.consonants option -> Sounds.t Sig.t -> Sounds.t Sig.t +  : Sig.consonants option -> Sounds.t Sig.t -> Sounds.t Sig.t    = fun c init ->      let ((v, _) , _) = init in diff --git a/src/lib/modifiers/sig.ml b/src/lib/modifiers/sig.ml index 5f82620..19c4ff7 100644 --- a/src/lib/modifiers/sig.ml +++ b/src/lib/modifiers/sig.ml @@ -1,11 +1,11 @@  type voyel = Sounds.t -type 'a consonants = -  { ending : 'a option option -  ; opening : 'a list -  ; following : 'a option } +type consonants = +  { ending : Sounds.t option option +  ; opening : Sounds.t list +  ; following : Sounds.t option } -type 'a group = voyel * 'a consonants option +type 'a group = voyel * consonants option  type 'a t = 'a group * 'a option option | 
