A structured configuration file contains entities of two basic types. First of them is simple statement. A simple statement conceptually consists of an identifier (or keyword) and a value. Depending on the syntactic requirements, some special token may be required between them (such as an equals sign, for example), or at the end of the statement. The value, though we use the term in singular, is not necessarily a single scalar value, it may as well be a list of values (the exact form of that list depends on the particular syntax of the configuration file).
Another basic entity is compound statement, also known as block statement or section. Compound statement is used for logical grouping of other statements. It consists of identifier, an optional tag and a list of statements. The tag, if present, is similar to the value in simple statements. The same notes that we made about values apply to tags as well. Tags serve to discern between the statements having the same identifier. The list of statements may include statements of both kinds: simple as well as compound ones. Thus, compound statements form a tree-like structure of arbitrary depth, with simple statements as leaf nodes.
Each compound statement can have any number of subordinate statements, which are called its child statements. Each statement (no matter simple or compound) has only one parent statement, i.e. a compound statement of which it is a child.
A special implicit statement, called root statement, serves as the parent for the statements at the topmost level of hierarchy.
This document was generated on January 7, 2021 using makeinfo.Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.