FLL - Specifications - FSS-0003 (Extended List)
Author: Kevin Day
Description: Featurless Linux Library Specifications
Keywords: Featureless, FLL, Kevin Day, Kevux, Linux, Library, Distribution, Open-Source, specification, standard, fss-0003, extended list

# Featureless Linux Library Specification

## FSS-0003 (Extended List)

The version date of this specification is `2024/08/30`.

Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an Object. An open-brace `{` (`U+007B`) followed by any white space until a new line terminates a possible valid Object. White space after the last printable character of the Object but before the brace `{` (`U+0037B`) is not considered part of the Object. An Object is not considered fully valid until a valid close-brace `}` (`U+007D`) is found, designating the end of the Content. Non-white space printable characters may not follow the open-brace `{` (`U+007B`) of a valid Object. Implementations of the standard may choose to include the white space to the left and to the right of a valid Object may be included as an untrimmed Object.

Content is represented as a single Content column of every line following a valid Object until the end of file (or string) or until a non-delimited close-brace `}` (`U+007D`). Any Content column that could be interpreted as an end of Content must be delimited if it should be part of the Content. White space may follow a valid close-brace `}` (`U+007D`) but a terminating new line must be present to designate a valid end of Content.

There is no single-quote (`U+0027`), double-quote (`U+0022`), or grave (`U+0060`) delimitation in this specification. Only an open-brace `{` (`U+007B`) that would result in a valid Object or the close-brace `}` (`U+007D`) that would terminate valid Content can be delimited. When inside potentially valid Content (which follows a valid Object) the open-brace `{` (`U+007B`) cannot be delimited because this standard is not-recursive. When not inside any potentially valid Content (that is, there is no previous unclosed Object), then the Object may be delimited. Likewise, the close-brace `}` (`U+007D`) may only be delimited if it is within any potentially valid Content.

Each delimit slash in a delimitable open-brace `{` (`U+007B`) is treated as a potential delimit such that two slashes represents a single delimited slash (`\\{` would represent `\{`). Only the first delimit slash in a delimitable close-brace `}` (`U+007D`) is treated as a potential delimit (`\\\}` would represent `\\}`).

Empty Objects are allowed, that is, the length of the Object may be zero.

Key:

- `\s` = White space, except new line.
- `\o` = Any printable character, except unescaped `{` (`U+007B`).
- `\c` = Either white space or printable, including new line, that is not interpretable as an Object.
- `\n` = Newline.
- `*` = Zero or more occurrences.

Before Structure:

- ``

Structure:

- `\s*\o\s*{\s*\n\c*\n\s*}\s*\n`

After Structure:

- ``

Example:

    # fss-0003
    # valid comments are ignored.
    "The Object" {
      Does not need to be quoted.
      This: does not need to be delimited.
      \}
    }

    Second {
      Continues until EOS/EOF.
      All white space, including new line (and leading white space) is "part of content."
      # Valid comments are still ignored.
    }

Example Results:

    Objects would be:
      1) "The Object"
      2) Second

    Contents would be:
      1.1) Does not need to be quoted.
           This: does not need to be delimited.
           }
      2.1) Continues until EOS/EOF.
           All white space, including new line (and leading white space) is "part of content."