diff --git a/MODULES.md b/MODULES.md index c59da2a..e677bae 100644 --- a/MODULES.md +++ b/MODULES.md @@ -307,6 +307,48 @@ Returns the payments (bank transactions) list of given member record ### Member Parser +This module exports only one function - the ```load-member-file``` +which loads and parses given file as member file. The specification of +this file format is in a separate document ```MEMBERS.md```. + +The module implements this specification as multi-pass parser with +important definitions being at the top of the module. + + mandatory-keys + +A list of symbols containing keys which must be present in the +file. If any of them is missing, it is added to the resulting +structure with the ```#f``` value. + + optional-keys + +A list of symbols of keys which the parser recognizes and adds them to +the resulting data structure. + + ignored-keys + +A list of symbols with keys that are parsed, and albeit not added to +the result they do not generate warnings. + + known-multikeys + +A list of keys that can appear multiple times and in the 2nd pass they +are collected as lists of values. + + start-stop-markers-lookup + +A list of start/stop specifications - each key is paired with given +key and start/stop tag. + + (load-member-file mr) + +* ```mr``` - (almost) empty member record structure + +It must be possible to get the member file using +```member-record-input-file``` function. Loads the file as a list of +lines, processes these lines with 1st and 2nd pass parsers, interprets +the result using 3rd passes and finalizes the result in the 4th pass. + ### Members Directory ### Members Base