ngrams-loader-0.1.0.0: lib/Data/Ngrams.hs
-----------------------------------------------------------------------------
-- |
-- Module : Data.Ngrams
-- Copyright : (C) 2014 Yorick Laupa
-- License : (see the file LICENSE)
--
-- Maintainer : Yorick Laupa <yo.eight@gmail.com>
-- Stability : provisional
-- Portability : non-portable
--
----------------------------------------------------------------------------
module Data.Ngrams
( module Data.Ngrams.Database.Sqlite
, module Data.Ngrams.Parser
, module Data.Ngrams.Process
, mkProcess
, runProcess_
) where
----------------------------------------------------------------------------
import Control.Monad.Trans.Resource (ResourceT, runResourceT)
import Data.Attoparsec.Text (Parser)
import Data.Machine (ProcessT, runT_, (~>))
import Data.Text (Text)
----------------------------------------------------------------------------
import Data.Ngrams.Database.Sqlite
import Data.Ngrams.Parser
import Data.Ngrams.Process
----------------------------------------------------------------------------
mkProcess :: FilePath
-> FilePath
-> Bool
-> Parser a
-> Command a
-> ProcessT (ResourceT IO) Text ()
mkProcess file db create parser cmd =
sourceLines file ~> parseLine parser ~> saveDB create db cmd
----------------------------------------------------------------------------
runProcess_ :: ProcessT (ResourceT IO) Text a -> IO ()
runProcess_ = runResourceT . runT_