F1. The Syntax of the .config Configuration File

Formal grammar based on the Extended Backus-Naur Form (EBNF) notation is used for description of the Server configuration file. It uses the following symbols:

(...) — group of symbols (fragment of the configuration file);

'...' — terminal symbol;

<...> — nonterminal symbol;

| - symbol for selecting one of the given elements;

(...)? - symbol (or group of symbols) to the left of the operator is not obligatory (may occur 0 or 1 time);

(...)* - symbol (or group of symbols) to the left of the operator may be repeated any number of times (or may be omitted);

(...)+ - symbol (or group of symbols) to the left of the operator may occur 1 or more times;

[...] - any symbol from the specified range;

period at the end — a reserved character which indicates completion of a rule.

<line> := <instruction>? (<separator>+ <comment>?)*.

 

<instruction> := <name> "{"? <parameter>* "}"?.

<name> := "description" | "sync-with" |

             "sync-delay" |  "sync-only" |

             "sync-ignore" | "state-only" |

             "state-ignore" | "notify-only" |

             "notify-ignore" | "notify-off".

<parameter> := <text>.

<text> := <word> <separator>*.

<word> := (<symbol> | <sign>)+.

<symbol> := [a-zA-Z] | [0-9].

<sign> := """ | "/"| "\" | "*" | "^" | "." | "-"| "$".

 

<separator> := \r | \t | \n | \s.

 

<comment> := ";"<text> | "#"<M1><symbol>+<M1> | "'"<M2><text>+<M2>.

<M1> := <symbol>+.

<M2> := <sign>+.

The configuration file is a sequence of words separated by separators. A separator is any sequence of the following characters: space (\s), tab (\t), carriage return (\r), line feed (\n).

A word beginning with a semicolon (;) means the beginning of a comment which lasts till the end of the line.

Examples:

ghgh 123 ;this is a comment

123;this; is not; a comment – requires a separator at the beginning.

A word beginning with a number sign (#) means the beginning of a stream comment; the rest of the word is specified by the end-of-comment marker.

Example:

123 456 #COMM from here there is a comment COMM here it is already ended

To include a character into a word, a ' prefix (apostrophe) is used — it is a special separating character for the given word (in other words, this character will be regarded as separator ending this word).

Example:

xy123 '*this is one word*this is another word

 

If a word begins with one of the characters: apostrophe, semicolon, number sign (', ;, #), it must be separated by special separator characters, as described above.

 

The .config file consists of comments and instructions. The sequence of instructions is inessential.

 

The format of instructions of configuration files is case-sensitive.

 

The repository is case-sensitive regardless of the file system and the OS of the Server.

 

The meaning of instructions is explained in Appendix F2. The Meaning of .config File Instructions.