packages feed

hsini-0.5.1.3: src/Data/Ini/Reader.hs

{- |
Module    : Data.Ini.Reader
Copyright : 2011-2014 Magnus Therning
License   : BSD3

Parser for configurations.
-}
module Data.Ini.Reader (
    parse,
    IniReaderError (..),
    IniParseResult,
) where

import Control.Monad.Except
import qualified Text.ParserCombinators.Parsec as P

import Data.Ini.Reader.Internals
import Data.Ini.Types

-- | Parser for a configuration contained in a 'String'.
parse :: String -> IniParseResult Config
parse s =
    let
        pr = P.parse iniParser "ini" s
     in
        case pr of
            Left e -> throwError . IniParserError $ show e
            Right is -> buildConfig is