diff options
author | Sébastien Dailly <sebastien@chimrod.com> | 2021-08-27 14:37:24 +0200 |
---|---|---|
committer | Sébastien Dailly <sebastien@chimrod.com> | 2021-08-27 14:37:24 +0200 |
commit | c8b49eed4cf92e7d2dd01dce779ef84ccae733eb (patch) | |
tree | 753547fc766a616e9c47aa78b32f047e73e7a7ef /src/lib/sounds.ml | |
parent | 65d5990607e9542aa847ec7cb684afd3ffdedb8f (diff) |
Splitted modifiers in own library
Diffstat (limited to 'src/lib/sounds.ml')
-rw-r--r-- | src/lib/sounds.ml | 208 |
1 files changed, 0 insertions, 208 deletions
diff --git a/src/lib/sounds.ml b/src/lib/sounds.ml deleted file mode 100644 index a2035b7..0000000 --- a/src/lib/sounds.ml +++ /dev/null @@ -1,208 +0,0 @@ -module type T = sig - - type t - val muted : t -> t - - val a : [`Closed | `Opened] -> t - val e : [`Closed | `Opened] -> t - val eu : [`Closed | `Opened] -> t - - val o : [`Closed | `Opened] -> t - val schwa : unit -> t - val i : [`Closed | `Opened] -> t - val u : t - - - val nasal: t -> t - - val none: t - - val p: t - val b: t - val t: t - val d: t - val k: t - val f: t - val s: unit -> t - val sz: unit -> t - val ch: unit -> t - val z: unit -> t - - val n: t - val m: t - - val r: unit -> t - val l: unit -> t - - val semi_voyel_w: t - - val is_voyel : t -> bool - val is_nasal : t -> bool - - type code = - | None - | SZ - | Voyel_A - | Voyel_O - - val code : t -> code - -end - -module T = struct - type kind = - | None - | Voyel - - type code = - | None - | SZ - | Voyel_A - | Voyel_O - - type t = - { code : code - ; repr : string - ; muted : bool - ; kind : kind - ; nasal : bool - } - -end - -module Repr = struct - - let a = "a" - and a_nasal = "@" - - and o = "o" - and o_nasal = "§" - - and i = "i" - and u = "y" - - and p = "p" - and b = "b" - and t = "t" - and d = "d" - - and k = "k" - and g = "g" - - and f = "f" - - and ch = "S" - - and s = "s" - and z = "z" - - and m = "m" - and n = "n" - - and l = "L" - and r = "R" - - and w = "w" -end - -module S = struct - - include T - - let is_voyel t = t.kind = Voyel - let is_nasal t = t.nasal - - let none = - { repr = "" - ; muted = false - ; kind = None - ; nasal = false - ; code = None } - - let voyel = - { none with kind = Voyel } - - let code t = t.code - - let nasal t = - match t.code with - | Voyel_A -> { t with repr = Repr.a_nasal ; nasal = true } - | Voyel_O -> { t with repr = Repr.o_nasal ; nasal = true } - | _ -> t - - let muted f = - { none with - repr = "(" ^ f.repr ^ ")" - ; muted = true } - - let a _ = - { voyel with repr = Repr.a ; code = Voyel_A } - - let e = function - | `Closed -> { voyel with repr = "e" } - | `Opened -> { voyel with repr = "E" } - - let eu = function - | `Closed -> { voyel with repr = "2" } - | `Opened -> { voyel with repr = "9" } - - - let schwa () = - { voyel with repr = "°" } - - let o _ = - { voyel with repr = Repr.o ; code = Voyel_O } - - let i _ = - { voyel with repr = Repr.i } - - let u = - { voyel with repr = Repr.u } - - let p = - { none with repr = Repr.p } - - let b = - { none with repr = Repr.b } - - let t = - { none with repr = Repr.t } - - let d = - { none with repr = Repr.d } - - let k = - { none with repr = Repr.k } - - let f = - { none with repr = Repr.f } - - let s () = - { none with repr = Repr.s } - - let sz () = - { (s()) with code = SZ } - - let ch () = - { none with repr = Repr.ch } - - let z () = - { none with repr = Repr.z } - - let n = - { none with repr = Repr.n ; nasal = true } - - let m = - { none with repr = Repr.m ; nasal = true } - - let l () = - { none with repr = Repr.l } - - let r () = - { none with repr = Repr.r } - - let semi_voyel_w = - { none with repr = Repr.w } -end - -include S |