-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Parse config files using parsec and generate parse errors
-- on unhandled keys
--
-- This is yet another entry in Haskell's enourmous collection of
-- config-file parsing libraries. It lacks many of the bells and whistles
-- of other config-file parsing libraries, such as hierarchical sections
-- and on-the-fly reloading. On the other hand, it has a combination of
-- features I was unable to find in other libraries: * Keys and values
-- are parsed with configurable parsec parsers, resulting in flexible
-- syntax and pretty error messages. * Custom parsers can be created with
-- parsec to handle values of any type. * Keys that aren't explicitly
-- handled result in parse errors. If you don't need all of these
-- features, there are probably better libraries out there for you. If
-- you're free to use its idiosyncratic file format, the config-value
-- library, in particular, is excelent.
@package config-parser
@version 0.1.0.1
-- | This is yet another entry in Haskell's enourmous collection of
-- config-file parsing libraries. It lacks many of the bells and whistles
-- of other config-file parsing libraries, such as hierarchical sections
-- and on-the-fly reloading. On the other hand, it has a combination of
-- features I was unable to find in other libraries: * Keys and values
-- are parsed with configurable parsec parsers, resulting in flexible
-- syntax and pretty error messages. * Custom parsers can be created with
-- parsec to handle values of any type. * Keys that aren't explicitly
-- handled result in parse errors.
--
-- If you don't need all of these features, there are probably better
-- libraries out there for you. If you're free to use its idiosyncratic
-- file format, the config-value library, in particular, is excelent.
--
-- By default, this library parses flat config like the following:
-- a_string = "blah, blah, blahnmore blah" a_number = 9001 a_list =
-- [1,2,3,4,5] # This is a comment
--
-- If you wanted to parse the above file, saved as ./config.txt,
-- you might do so as follows: @ import Text.ConfigParser
--
-- cp :: ConfigParser (Maybe String, Maybe Integer, [Integer]) cp =
-- configParser (Nothing, Nothing, []) [ ConfigOption { key = "a_string"
-- , parser = string , action = s (_,n,ns) -> (Just s, n, ns) } ,
-- ConfigOption { key = "a_number" , parser = integer , action = n
-- (s,_,ns) -> (s, Just n, ns) } , ConfigOption { key = "a_list" ,
-- parser = list integer , action = ns (s,n,_) -> (s, n, ns) } ]
--
-- main :: IO () main = parseFromFile cp "./config.txt" >>= print @
module Text.ConfigParser