ukrainian-phonetics-basic 0.1.3.0 → 0.1.4.0
raw patch · 3 files changed
+32/−2 lines, 3 files
Files
- CHANGELOG.md +5/−1
- Melodics/ByteString/Ukrainian.hs +26/−0
- ukrainian-phonetics-basic.cabal +1/−1
CHANGELOG.md view
@@ -14,5 +14,9 @@ ## 0.1.3.0 -- 2020-10-24 -* First version revised. Added a new function convertToProperUkrainianS to the module Melodics.ByteString.Ukrainian that is needed in some other cases.+* First version revised C. Added a new function convertToProperUkrainianS to the module Melodics.ByteString.Ukrainian that is needed in some other cases.++## 0.1.4.0 -- 2020-10-26++* First version revised D. Added new functions that convert from Data.Vector.Vector Char to the representation in the Melodics.ByteString.Ukrainian module.
Melodics/ByteString/Ukrainian.hs view
@@ -17,9 +17,13 @@ module Melodics.ByteString.Ukrainian ( -- * Basic functions convertToProperUkrainianS+ , convertToProperUkrainianV2S , convertToProperUkrainian+ , convertToProperUkrainianV , convertToProperUkrainianX+ , convertToProperUkrainianV2X , convertToProperUkrainianB+ , convertToProperUkrainianV2B , isUkrainianL , linkFileName , showInteresting@@ -48,17 +52,34 @@ convertToProperUkrainian ys = toVector . convertToProperUkrainianS $ ys {-# INLINE convertToProperUkrainian #-} +-- | The function that converts a written Ukrainian text into the sounding in the program phonetical respesentation. +-- It is not exact phonetically but you can make for yourself a general impression of the Ukrainian sounding.+convertToProperUkrainianV :: VB.Vector Char -> V.Vector Char+convertToProperUkrainianV v = toVector . convertToProperUkrainianV2S $ v+{-# INLINE convertToProperUkrainianV #-}+ -- | Unlike the 'convertToProperUkrainian', it returns a boxed 'VB.Vector' instead of unboxed one 'V.Vector', -- @ since 0.1.2.0 convertToProperUkrainianX :: String -> VB.Vector Char convertToProperUkrainianX ys = toVectorB . convertToProperUkrainianS $ ys {-# INLINE convertToProperUkrainianX #-} +-- | Unlike the 'convertToProperUkrainianV', it returns a boxed 'VB.Vector' instead of unboxed one 'V.Vector',+-- @ since 0.1.2.0+convertToProperUkrainianV2X :: VB.Vector Char -> VB.Vector Char+convertToProperUkrainianV2X v = toVectorB . convertToProperUkrainianV2S $ v+{-# INLINE convertToProperUkrainianV2X #-}+ convertToProperUkrainianS :: String -> String convertToProperUkrainianS ys = correctB . correctA . applyChanges . bsToCharUkr . createTuplesByAnalysis . secondConv . filterUkr . changeJotted . filter (\x -> isUkrainianL x || isSpace x || isControl x || isPunctuation x) . map toLower $ ys {-# INLINE convertToProperUkrainianS #-} +convertToProperUkrainianV2S :: VB.Vector Char -> String+convertToProperUkrainianV2S v = correctB . correctA . applyChanges . bsToCharUkr . createTuplesByAnalysis . secondConv . filterUkr . changeJotted . VB.toList .+ VB.filter (\x -> isUkrainianL x || isSpace x || isControl x || isPunctuation x) . VB.map toLower $ v+{-# INLINE convertToProperUkrainianV2S #-} + isUkrainianL :: Char -> Bool isUkrainianL y | (y >= '\1070' && y <= '\1097') = True | otherwise = getBFst' (False, V.fromList . map (\x -> (x, True)) $ "'-\700\1028\1030\1031\1068\1100\1102\1103\1108\1110\1111\1168\1169\8217") y@@ -328,6 +349,11 @@ convertToProperUkrainianB :: String -> B.ByteString convertToProperUkrainianB ys = B.pack . convertToProperUkrainianS $ ys {-# INLINE convertToProperUkrainianB #-}++-- | A variant of the 'convertToProperUkrainianV' with the 'B.ByteString' result.+convertToProperUkrainianV2B :: VB.Vector Char -> B.ByteString+convertToProperUkrainianV2B v = B.pack . convertToProperUkrainianV2S $ v+{-# INLINE convertToProperUkrainianV2B #-} linkFileName :: Char -> Char linkFileName x = getBFst' (x,V.fromList . zip "ABCDEFLMabcdefghijklmnopqrstuvwxyz" $ "GILUbc00ABZEHXfDeFMNOPQRdSTVWCaYKJ") x
ukrainian-phonetics-basic.cabal view
@@ -2,7 +2,7 @@ -- further documentation, see http://haskell.org/cabal/users-guide/ name: ukrainian-phonetics-basic-version: 0.1.3.0+version: 0.1.4.0 synopsis: A library to work with the basic Ukrainian phonetics and syllable segmentation. description: A library to work with the basic Ukrainian phonetics and syllable segmentation. Rewritten from the mmsyn6ukr and mmsyn7s packages. homepage: https://hackage.haskell.org/package/ukrainian-phonetics-basic