Names for Value Types

This section is not part of the language specification itself. Instead, it provides naming guidelines for developers implementing parsers. These type names are also used in the test outcome format, which is relevant when writing or interpreting test results for configuration parsers.

By standardizing the terminology early, this guide helps parser implementers avoid additional effort with conversion tables when testing or debugging later on.

If you are only interested in how to write configuration files, you can safely skip this chapter.

Containers

A container is any value that holds other values, either by index or by name.

Name

Description

IntermediateSection

An implicitly created section that fills in missing path elements in a name path.

SectionWithNames

A section explicitly defined in the configuration file, containing named values or subsections.

SectionWithTexts

A section that contains text-named values or subsections. This type is created implicitly when a text-named entry is added to an empty SectionWithNames or IntermediateSection.

SectionList

A container that holds a list of sections—either SectionWithNames or SectionWithTexts—addressed by index.

ValueList

A list of leaf values, each addressed by index, or a list of ValueList values, when nested.

Document

The document root. Like a SectionWithNames, but implicitly defined for each document and not convertible into a SectionWithTexts.

Values

A value is a leaf node in the value tree. It does not contain any child values.

Name

Type

Description

Integer

Integer values

All integer values, including decimal, hexadecimal, binary, and byte-count values.

Boolean

Boolean values

Boolean literals such as true, no, enabled, etc.

Float

Floating-point values

Floating-point numbers, including special values like NaN and Inf.

Text

Text values

All single-line and multiline text values, including code blocks.

Date

Date values

Values that represent calendar dates.

Time

Time values

Values that represent times, with or without timezone offsets.

DateTime

Date-time values

Combined date and time values, with or without timezone offsets.

Bytes

Byte-data values

Binary values, both single-line and multiline.

TimeDelta

Time-delta values

Durations of time, including single values or merged time-delta lists.

RegEx

Regular expression values

Single-line and multiline regular expressions.