úΉð„“:      !"#$%&'()*+,-./0123456789%Copyright (C) 2004, 2008 John Goerzen8Either LGPL or BSD3, as specified in the COPYRIGHT file.$John Goerzen <jgoerzen@complete.org> provisionalportableNone345;N:;<=>?@ABCDEFGHIJKLMNOPQ:;<=>?Q:;<=>?@ABCDEFGHIJKLMNOPQ$Copyright (C) 2004-2008 John Goerzen8Either LGPL or BSD3, as specified in the COPYRIGHT file.$John Goerzen <jgoerzen@complete.org> provisionalportableNone345;N(This is the main record that is used by .The data itself9How to transform an option into a standard representation?Function to look up an option, considering a default value if p is True; or ignoring a default value otherwise. The option specification is assumed to be already transformed.DWhether or not to seek out a default action when no match is found.ßFunction that is used to perform lookups, do optional interpolation, etc. It is assumed that accessfunc will internally call defaulthandler to do the underlying lookup. The option value is not assumed to be transformed.YIndicates an error occurred. The String is an explanation of the location of the error. Possible ConfigParser errors.  Parse error ,Attempt to create an already-existing ection The section does not exist The option does not exist Miscellaneous error Raised by 0 if a request was made for a non-existant option1The main data storage type (storage of sections).ÿPLEASE NOTE: This type is exported only for use by other modules under Data.ConfigFile. You should NEVER access the FiniteMap in a ConfigParser directly. This type may change in future releases of MissingH, which could break your programs. Please retrict yourself to the interface in .Storage of options. Names of options Names of sections Internal output from parser  R    R$Copyright (C) 2004-2008 John Goerzen8Either LGPL or BSD3, as specified in the COPYRIGHT file.$John Goerzen <jgoerzen@complete.org> provisionalportableNone345;NSTUVWXYZ[\]^STUVWXYZ[\]^$Copyright (C) 2004-2008 John Goerzen8Either LGPL or BSD3, as specified in the COPYRIGHT file.$John Goerzen <jgoerzen@complete.org> provisionalportableNone345;NDThe class representing the data types that can be returned by "get"./Retrieves a string from the configuration file.PWhen used in a context where a String is expected, returns that string verbatim.hWhen used in a context where a Bool is expected, parses the string to a Boolean value (see logic below).lWhen used in a context where anything that is an instance of Read is expected, calls read to parse the item.}An error will be returned of no such option could be found or if it could not be parsed as a boolean (when returning a Bool).JWhen parsing to a Bool, strings are case-insentively converted as follows:(The following will produce a True value:1yesonenabledtrue)The following will produce a False value:0nooffdisabledfalse The default empty  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 H representation. Performs no option conversions or special handling of DEFAULT. ,Default (non-interpolating) access function mInterpolating 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œ, it is not the same. In particular, only the %(...)s format is supported. No width specifiers are supported and no conversions other than s are supported.ÿ]To use this function, you must specify a maximum recursion depth for interpolation. This is used to prevent a stack overflow in the event that the configuration file contains an endless interpolation loop. Values of 10 or so are usually more than enough, though you could probably go into the hundreds or thousands before you have actual problems.RA 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:LThe configuration file makes a reference to an option that does not exist+The maximum interpolation depth is exceededMThere is a syntax error processing a %-directive in the configuration file«An interpolation lookup name specifies an option only. There is no provision to 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 %%6 in the configuration file when interpolation is used.+Here is how you might enable interpolation: 2let cp2 = cp {accessfunc = interpolatingAccess 10}The cp2B object will now support interpolation with a maximum depth of 10. Combines two  s into one.WAny duplicate options are resolved to contain the value specified in the second parser.The d options in the resulting object will be set as they are in the second one passed to this function. `$Utility to do a special case merge. HLoads data from the specified file. It is then combined with the given & using the semantics documented under D with the new data taking precedence over the old. However, unlike x, all the options as set in the old object are preserved since the on-disk representation does not convey those options.jMay return an error if there is a syntax error. May raise an exception if the file could not be accessed.Like 3, but uses an already-open handle. You should use V 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 [ instead of this if you are processing a file, since it can generate better error messages.+Errors would be returned on a syntax error.!bReturns 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  G error if the section was already present. Otherwise, returns the new  object.$*Removes the specified section. Returns a  A error if the section does not exist; otherwise, returns the new  object.(This call may not be used to remove the DEFAULT3 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  A error if the option does not exist. Otherwise, returns the new  object.&LReturns a list of the names of all the options present in the given section.5Returns an error if the given section does not exist.'ŸIndicates whether the given option is present. Returns True only if the given section is present AND the given option is present in that section. No special DEFAULTE processing is done. No exception could be raised or error returned.(Returns a list of (optionname, value)` pairs representing the content of the given section. Returns an error the section is invalid. )GSets the option to a new value, replacing an existing one if it exists.0Returns an error if the section does not exist. *·Sets the option to a new value, replacing an existing one if it exists. It requires only a showable value as its parameter. This can be used with bool values, as well as numeric ones.0Returns an error if the section does not exist. + Converts the ` to a string representation that could be later re-parsed by this module or modified by a human.ÿ-Note that this does not necessarily re-create a file that was originally loaded. Things may occur in a different order, comments will be removed, etc. The conversion makes an effort to make the result human-editable, but it does not make an effort to make the result identical to the original input.KThe result is, however, guaranteed to parse the same as the original input._a` !"#$%&'bcde()*+fgh%  !"#$%&'()*+%  !"&'()*%#$+_a` !"#$%&'bcde()*+fghNone345;N,-./0123456789!+,-./0123456789,-./0134567829,-./0123456789i       !"#$%&'()*+,-./012#%&')*-./01,+3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abConfi_Clv8Xlb71L9JYAyskl3jctData.ConfigFile.TypesData.ConfigFile.ParserData.ConfigFileData.ConfigFile.MonadicData.ConfigFile.LexerData ConfigFileinterpolatingAccess ConfigParsercontent optionxformdefaulthandler usedefault accessfuncCPError CPErrorData ParseErrorSectionAlreadyExists NoSectionNoOption OtherProblemInterpolationErrorCPData CPOptions OptionSpec SectionSpec ParseOutput parse_string parse_file parse_handle interpmainGet_CgetemptyCP simpleAccessmergereadfile readhandle readstringsections has_section add_sectionremove_section remove_optionoptions has_optionitemssetsetshow to_stringCPTok IGNOREDATA NEWSECTIONNEWSECTION_EOF EXTENSIONLINE NEWOPTION comment_charseoleoleof optionsepwhitespace_chars comment_lineeolstuff empty_linesectheader_chars sectheader oname_chars value_charsextension_line optionkey optionvalue optionpairilokenloken $fError(,) detokenizemain sectionlistsection sectionhead optionlistcoptionvalmerge interpval percentval interpother interptokfromALreadutildefdefaulthandler readMaybe genericgetgetboolformatSO$fGet_Ct $fGet_CBool $fGet_C[]