10.1. Config File Syntax
This section describes the syntax used for the links_and_nodes manager config file. The used notation is the same as in the [Python Language Refernce](http://docs.python.org/2/reference/introduction.html#notation) – a modified [Backus–Naur Form](http://en.wikipedia.org/wiki/Backus%E2%80%93Naur_Form) - please refer to these pages for more information about this notation.
here is the lexical definition:
config_file ::= config_section*
config_section ::= section_header "\n" key_value_pairs*
section_header ::= section_type [ WS section_name ]
section_type ::= terminal_string
section_name ::= config_string
key_value_pairs ::= [WS] section_key [WS] ": " section_value "\n"
section_key ::= terminal_string
section_value ::= config_string | ( "[" config_string_multiline "]" )
config_string_multiline ::= config_string "\n" [ config_string_multiline ]
config_string ::= ( replacement | [ terminal_string ] )*
replacement ::= "%(" config_string ")"
terminal_string ::= any_text_wo_newline+
any_text_wo_newline ::= <any character except "\n">
WS ::= [ " " | "\t" | "\r" | "\n" ]+
(note: empty lines and lines starting with “#” are ignored, trailing whitespace is ignored)
Single-line section names and single-line values also support trailing
#-comments. Everything after an unquoted # is ignored.
Example:
process some process # comment after section name
command: ls -l # comment after value
If a literal # is part of the value, quote the value:
defines
key_hash_value: "key#value"
Quoted strings can contain # normally. Unquoted values can not; there
# starts a trailing comment.
This is relevant for compatibility with older config files. For example,
this used to assign the value key#value:
defines
key_hash_value: key#value
Now the same line assigns only key. To keep the #value suffix,
use quotes as shown above.
For multi-line values enclosed in [ and ], trailing comments at the
end of a line are still not supported. Inside such blocks, only lines that
start with # are treated as comments.