module Text.Toml ( parseTomlDoc
, parseErrorPretty
) where
import Control.Composition
import Control.Monad.State (evalState)
import Data.Monoid
import Data.Text (Text)
import Text.Megaparsec
import Text.Toml.Parser
-- | Parse a 'Text' that results in 'Either' a 'TomlError'
-- containing the error message, or an internal representation
-- of the document as a 'Table'.
parseTomlDoc :: FilePath -- ^ For error generation
-> Text -- ^ TOML source
-> Either TomlError Table
parseTomlDoc = flip evalState mempty .* runParserT tomlDoc