Document the member parser module.

This commit is contained in:
Dominik Pantůček 2023-04-03 22:22:53 +02:00
parent a699bce5fe
commit 462862c542

View file

@ -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