| FEAT 3
    Finite Element Analysis Toolbox | 
The data format used by the parser of the FEAT::PropertyMap class is a custom extension of the well-known INI format. INI files are simple ASCII text files whose contents are basically made up from properties and sections.
Contents:
The hash sign # denotes the beginning of a comment spanning to the end of the line. 
# This is a comment that will be ignored
Notes:
# is not interpreted as a comment marker is after an @include statement; see sec_include for more details.Properties (data) are declared as so-called 'key-value pairs'
key = value
 where the first equals sign = is used as a delimiter to separate the key and value parts. Both the key and value strings are trimmed from leading and trailing whitespaces – and, in the case of the value part, also comments – but are except for that parsed verbatim.
Furthermore, the value part of the declaration may be split across multiple consecutive lines by appending an ampersand symbol & as the last non-whitespace character in a line. In this case the parser will append the next (semantically) non-empty line and, if this line also ends with an ampersand, continue the line continuation process iteratively, e.g. the three lines 
message = Hello &
          World&
          !are equivalent to
message = Hello World!
Notes:
# is recognised as a comment identifier even in a key-value pair, e.g. the line key = value # and a comment in the same lineis equivalent to
key = value
#.key = value KEY = value Key = valueare all equivalent.
Foo = Bar = # commentare both legal declarations that will assign empty strings to the keys
Foo and Bar.key = This value key = was defined key = more than oncewill be boiled down to
key = more than once
& , e.g. message = Hello   &
          World! is equivalent to message = Hello World!
message = Hello &
    # comment
    World! boil down to message = Hello World!
key = my &
    # value
date = 2012-12-21 boil down to key = my date = 2012-12-21which yields (as the value string is allowed to contain an equals sign) a syntatically correct declaration but does most probably not represent the author's intention.
Several key-value pairs can be grouped together in sections. A section is declared by a single line containing the section name enclosed in a [ ] bracket pair. Any key-value pair following a section declaration is placed inside that section until another section declaration appears, e.g. 
[Section] # a key-value pair within 'Section' Hello = World! [AnotherSection] # a key-value pair within 'AnotherSection' Foo = Bar
 Furthermore, by using pairs of curly braces { } one can also nest sections: 
[Section]
{
  Hello = World!      # a key-value pair within 'Section'
  [SubSection]
  Foo = Bar           # a key-value pair within 'Section.SubSection'
  [AnotherSubSection]
  {
    answer = 42       # a key-value pair within 'Section.AnotherSubSection'
  } # end of [AnotherSubSection]
} # end of [Section] Notes:
[Section] [ Section ]are equivalent.
[A] foo = bar [B] key = value [A] Hello = World!is merged into
[A] foo = bar Hello = World! [B] key = value
{ } is optional and can even be mixed within one file, e.g. [A]
{
  key = value
}
[B]
foo = bar is syntactically legal.[A]
key = value       # error: key-value pair before '{' in next line
{
  foo = bar       # okay: inside curly braces
}
Hello = World!    # error: key-value pair after '}' in previous line[A] {
  key = value
} is illegal.# This is a comment and the next line is a simple key-value pair in the root section
key = value
# The next two lines open a new section named 'MySection'
[MySection]
{
  # Two key-value pairs in 'MySection'
  date = 1985-05-08
  message = Hello World! # This is a comment after a key-value pair
  # A subsection named 'MySubSection' nested in 'MySection'
  [MySubSection]
  pi = 3.1415926535&   # pi is in 'MySection.MySubSection'
         8979323846&   # and pi has a lot of digits...
         2643383279... # ...which need several lines
  # The next line will close both 'MySubSection' and 'MySection'
}