ú΀µ}F,      !"#$%&'()*+portable provisional%John Goerzen <jgoerzen@complete.org> ,-./0123,-./013,10/.--./013portable provisional%John Goerzen <jgoerzen@complete.org> (This is the main record that is used by Data.ConfigFile. The data itself :How to transform an option into a standard representation ;Function to look up an option, considering a default value  if 1 is True; or ignoring a default value otherwise. @ The option specification is assumed to be already transformed. :Whether or not to seek out a default action when no match  is found. 6Function that is used to perform lookups, do optional 4 interpolation, etc. It is assumed that accessfunc B will internally call defaulthandler to do the underlying lookup. 4 The option value is not assumed to be transformed. KIndicates an error occurred. The String is an explanation of the location of the error. Possible ConfigParser errors.  Raised by #Data.ConfigFile.interpolatingAccess1 if a request was made for a non-existant option Miscellaneous error The option does not exist The section does not exist -Attempt to create an already-existing ection  Parse error 2The main data storage type (storage of sections). GPLEASE NOTE: This type is exported only for use by other modules under JData.ConfigFile. You should NEVER access the FiniteMap in a ConfigParser Ldirectly. This type may change in future releases of MissingH, which could Bbreak your programs. Please retrict yourself to the interface in Data.ConfigFile. Storage of options. Names of options Names of sections Internal output from parser    portable provisional%John Goerzen <jgoerzen@complete.org> 456789:;<=>portable provisional%John Goerzen <jgoerzen@complete.org> >The class representing the data types that can be returned by get. 0Retrieves a string from the configuration file. QWhen used in a context where a String is expected, returns that string verbatim. FWhen used in a context where a Bool is expected, parses the string to #a Boolean value (see logic below). OWhen used in a context where anything that is an instance of Read is expected, calls read to parse the item. JAn error will be returned of no such option could be found or if it could 4not be parsed as a boolean (when returning a Bool). KWhen parsing to a Bool, strings are case-insentively converted as follows: )The following will produce a True value:  1  yes  on  enabled  true *The following will produce a False value:  0  no  off  disabled  false The default empty Data.ConfigFile object. -The content contains only an empty mandatory DEFAULT section.  is set to  map toLower.  is set to True.  is set to . ?1Low-level tool to convert a parsed object into a  Drepresentation. Performs no option conversions or special handling of DEFAULT. -Default (non-interpolating) access function EInterpolating access function. Please see the Interpolation section )above for a background on interpolation. 8Although the format string looks similar to one used by  Text.Printf, Jit is not the same. In particular, only the %(...)s format is supported. QNo width specifiers are supported and no conversions other than s are supported. ETo use this function, you must specify a maximum recursion depth for Kinterpolation. This is used to prevent a stack overflow in the event that Mthe configuration file contains an endless interpolation loop. Values of 10 Jor so are usually more than enough, though you could probably go into the 7hundreds or thousands before you have actual problems. IA value less than one will cause an instant error every time you attempt  a lookup. This access method can cause  and friends to return a new :  &. This error would be returned when: A The configuration file makes a reference to an option that does  not exist - The maximum interpolation depth is exceeded G There is a syntax error processing a %-directive in the configuration  file NAn interpolation lookup name specifies an option only. There is no provision Lto specify a section. Interpolation variables are looked up in the current section, and, if  is True, in DEFAULT according to the normal logic. .To use a literal percent sign, you must place %% in the configuration !file when interpolation is used. ,Here is how you might enable interpolation:  3let cp2 = cp {accessfunc = interpolatingAccess 10} The cp2C object will now support interpolation with a maximum depth of 10. @ Combines two  s into one. EAny duplicate options are resolved to contain the value specified in the second parser. The 5 options in the resulting object will be set as they 0are in the second one passed to this function. A%Utility to do a special case merge. BLoads data from the specified file. It is then combined with the given & using the semantics documented under  with the :new data taking precedence over the old. However, unlike , all the options Has set in the old object are preserved since the on-disk representation does not convey those options. kMay return an error if there is a syntax error. May raise an exception if the file could not be accessed. Like /, but uses an already-open handle. You should use 7 instead of this if possible, since it will be able to  generate better error messages. ,Errors would be returned on a syntax error. Like %, but uses a string. You should use  Dinstead of this if you are processing a file, since it can generate better error messages. ,Errors would be returned on a syntax error. !GReturns a list of sections in your configuration file. Never includes the always-present section DEFAULT. ",Indicates whether the given section exists.  No special DEFAULT processing is done. #,Adds the specified section name. Returns a   error if the :section was already present. Otherwise, returns the new  object. $*Removes the specified section. Returns a   error if 7the section does not exist; otherwise, returns the new  object. (This call may not be used to remove the DEFAULT section. Attempting to do so will always cause a   error. %)Removes the specified option. Returns a   error if the section does not exist and a   error if the option does not #exist. Otherwise, returns the new  object. &>Returns a list of the names of all the options present in the given section. 6Returns an error if the given section does not exist. '=Indicates whether the given option is present. Returns True Eonly if the given section is present AND the given option is present in that section. No special DEFAULT processing is done. No -exception could be raised or error returned. B(Returns a list of (optionname, value) pairs representing the content Aof the given section. Returns an error the section is invalid. )HSets the option to a new value, replacing an existing one if it exists. 1Returns an error if the section does not exist. *HSets the option to a new value, replacing an existing one if it exists. 4It requires only a showable value as its parameter. <This can be used with bool values, as well as numeric ones. 1Returns an error if the section does not exist. + Converts the * to a string representation that could be 7later re-parsed by this module or modified by a human. INote that this does not necessarily re-create a file that was originally Jloaded. Things may occur in a different order, comments will be removed, Hetc. The conversion makes an effort to make the result human-editable, Lbut it does not make an effort to make the result identical to the original input. LThe result is, however, guaranteed to parse the same as the original input. %  !"#$%&'()*+%  !"&'()*%#$+ !"#$%&'()*+C      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGConfigFile-1.0.4Data.ConfigFile.TypesData.ConfigFile.ParserData.ConfigFileData.ConfigFile.Lexer ConfigParsercontent optionxformdefaulthandler usedefault accessfuncCPError CPErrorDataInterpolationError OtherProblemNoOption NoSectionSectionAlreadyExists ParseErrorCPData CPOptions OptionSpec SectionSpec ParseOutput parse_string parse_file parse_handle interpmainGet_CgetemptyCP simpleAccessinterpolatingAccessmergereadfile readhandle readstringsections has_section add_sectionremove_section remove_optionoptions has_optionitemssetsetshow to_stringCPTok NEWOPTION EXTENSIONLINENEWSECTION_EOF NEWSECTION IGNOREDATAilokenlokenmain sectionlistsection sectionhead optionlistcoptionvalmerge interpval percentval interpother interptokfromALdefdefaulthandlerreadutilgetbool