INN Configuration File Semantics

Groups in a configuration file have a well-defined order, namely the order in which the groups would be encountered in a depth-first traversal of the parse tree.

The supported operations on a configuration file parse tree for reading are:

Therefore, the only significance of nested group structure is parameter inheritence and pruning. In the absence of pruning, it would always be possible, by duplicating parameter settings that were inherited and laying out the groups in depth-first traversal order, to transform any configuration file into an entirely equivalent one that contains no nested groups. This isn't true in the presence of pruning, but pruning is intended to be used primarily for performance (ignoring the parts of the configuration that don't apply to a given parsing library client).

The expected way for clients to use the parsing library is to follow one of these two access patterns:

Note that neither of these operations directly reveal the tree structure; the tree structure is intended for the convenience of the user in setting defaults for various parameters so that they don't have to be repeated in each group, and to allow some top-level pruning. It's not intended to be semantically significant other than that.

Here are some suggested general conventions:

Converted to XHTML by faq2html version 1.36