diff options
Diffstat (limited to 'src/lib/modifiers/vocalize.ml')
-rw-r--r-- | src/lib/modifiers/vocalize.ml | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/lib/modifiers/vocalize.ml b/src/lib/modifiers/vocalize.ml index 1014642..068279d 100644 --- a/src/lib/modifiers/vocalize.ml +++ b/src/lib/modifiers/vocalize.ml @@ -1,25 +1,23 @@ -module T = Sounds - (** Transform the S into Z if the S is the opening consonant and there is no ending consonant before *) let process : 'a Sig.modifier = fun init -> - let (((v1, v2), c) , ending) = init in + let ((v, c) , ending) = init in match c with | None -> init | Some op -> (* The voyel may be none in case of ending word. In such case, we shall not transform the S into Z *) - let is_voyel = T.is_voyel v1 && T.is_voyel v2 in + let is_voyel = Sounds.is_voyel v in match is_voyel, op.Sig.opening, op.Sig.ending with - | true, hd::[], None when hd = T.sz -> - let c = Some { op with opening = [T.z] } in - (((v1, v2), c) , ending) - | true, hd::n::[], None when hd = T.sz && T.is_voyel n-> + | true, hd::[], None when hd = Sounds.sz -> + let c = Some { op with opening = [Sounds.z] } in + ((v, c) , ending) + | true, hd::n::[], None when hd = Sounds.sz && Sounds.is_voyel n-> (* The s is followed by a semi-voyel *) - let c = Some { op with opening = [T.z; n] } in - (((v1, v2), c) , ending) + let c = Some { op with opening = [Sounds.z; n] } in + ((v, c) , ending) | _ -> init |