{title:'Syntax Rules'}

- Each config file contains zero or more sections containing zero or more entries:

  | [Section1] | key1 = 1 | | [Section2] | key1 = 2

- Unicode escapes can be used in values.

  | key1 = \u0070\u0075\u0062\u006c\u0069\u0063

- Comment lines start with the '#' character and can be placed on lines before sections and entries:

  | # A comment about this section | [Section1] | | # A comment about this entry | key1 = 1

- Comments can also be placed on the same line as entries:

  | key1 = 1 # A comment about this entry

- Values containing '#' must be escaped to prevent identification as a comment character:

  | valueContainingPound = Value containing \u0023 character

  Likewise, '\' should be escaped to prevent confusion with unicode escapes.
- Values containing newlines can span multiple lines.
  Subsequent lines start with a tab character.

  | multiLineValue = | line 1, | line 2, | line 3

  When retrieved, the above translates to "line1,\nline2,\nline3".
- Leading and trailing whitespace on values are ignored.
- Whitespace is not ignored within multi-line values (except for the leading tab character on each line).
- Blank lines can be used anywhere in the file.

  | # A comment line | | # Another comment line | [Section1] | ...

- Values located before any sections are considered part of the no-name section, meaning they are accessed simply by key and not section/key.

  | # Top of file | | # Use config.getString("key1") to retrieve. | key1 = val1 | | # The first section | [Section1] | | # Use config.getString("Section1/key2") to retrieve. | key2 = val2

- Section and key names must be at least one character long and not consist of any of the following characters:

  | / \ [ ] = #

- Whitespace in section and key names is technically allowed but discouraged.