{- | 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