Featureless Linux Library Specification

FSS-0003 (Extended List)

The version date of this specification is 2024/01/15.

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 newline terminates a possible valid 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.

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 newline must be present to designate a valid end of Content.

There is no single-quote, double-quote, or grave delimitation in this specification. Only an open-brace { (U+007B) that would result in a valid Object or a 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 newline.
  • \o = Any printable character, except unescaped { (U+007B).
  • \l = Any printable character or white space, except unescaped } (U+007D).
  • \c = Either white space or printable, including newline, that is not interpretable as an Object.
  • \n = Newline.
  • * = Zero or more occurrences.

Before Structure:

Structure:

  • \s*\o\l*{\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 newline (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 newline (and leading white space) is "part of content."