summaryrefslogtreecommitdiff
path: root/src/lib/sounds.ml
diff options
context:
space:
mode:
authorSébastien Dailly <sebastien@chimrod.com>2021-08-27 14:37:24 +0200
committerSébastien Dailly <sebastien@chimrod.com>2021-08-27 14:37:24 +0200
commitc8b49eed4cf92e7d2dd01dce779ef84ccae733eb (patch)
tree753547fc766a616e9c47aa78b32f047e73e7a7ef /src/lib/sounds.ml
parent65d5990607e9542aa847ec7cb684afd3ffdedb8f (diff)
Splitted modifiers in own library
Diffstat (limited to 'src/lib/sounds.ml')
-rw-r--r--src/lib/sounds.ml208
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