F1. Синтаксис файла конфигурации .config

При описании формата файла конфигурации .config используется формальная грамматика, основанная на нотации РБНФ и подразумевающая следующие обозначения:

(...) — группа символов (фрагмент конфигурационного файла);

"..." — терминальный символ;

<...> — нетерминальный символ;

| - символ выбора одного из предложенных элементов;

(...)? - символ (или группа символов в скобках) слева от оператора является необязательной (может встретиться 0 либо 1 раз);

(...)* - символ (или группа символов в скобках) слева от оператора может повторяться произвольное число раз (а также может быть опущен);

(...)+ - символ (или группа символов в скобках) слева от оператора может встретиться 1 или более раз;

[...] - любой символ, попадающий в указанный диапазон;

точка в конце спецсимвол, указывающий на завершение правила.

Формат файла конфигурации репозитория .config:

<строка> := <инструкция>? (<разделитель>+ <комментарий>?)*.

 

<инструкция> := <название> "{"? <параметр>* "}"?.

<название> := "description" | "sync-with" |

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

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

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

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

<параметр> := <текст>.

<текст> := <слово> <разделитель>*.

<слово> := (<символ> | <знак>)+.

<символ> := [a-zA-Z] | [0-9].

<знак> := """ | "/"| "\" | "*" | "^" | "." | "-"| "$".

 

<разделитель> := \r | \t | \n | \s.

 

<комментарий> := ";"<текст> | "#"<M1><символ>+<M1> | "'"<M2><текст>+<M2>.

<M1> := <символ>+.

<M2> := <знак>+.

Файл конфигурации представляет собой последовательность слов, которые отделяются друг от друга разделителями. Разделителем является любая последовательность следующих символов: пробел (\s), табуляция (\t), возврат каретки (\r), перевод строки (\n).

Слово, начинающееся с точки с запятой (;), обозначает начало комментария, который продолжается до конца строки.

Примеры:

ghgh 123 ;это комментарий

123;это; не; комментарий - необходим

 разделитель в начале.

Слово, начинающееся со знака числа (#), обозначает начало потокового комментария; остаток слова задает маркер конца комментария.

Пример:

123 456 #COMM С этого места комментарийCOMM он уже закончился

Для включения в слово любых символов используется префикс ' (апостроф) — специальный символ-разделитель для данного слова (т.е., именно этот символ будет считаться разделителем, завершающим данное слово).

Пример:

xy123 '*Такое вот слово*УжеДругое

 

Если слово начинается с одного из символов: апостроф, точка с запятой, знак числа (', ;, #), - оно обязательно должно ограничиваться специальными символами-разделителями, как указано выше.

 

Файл .config состоит из комментариев и инструкций. Порядок следования инструкций несущественен.

 

Формат инструкций конфигурационных файлов предполагает различение верхнего и нижнего регистра букв.

 

Репозиторий различает регистр букв, независимо от файловой системы и ОС, под управлением которых работает Сервер.

 

Смысл инструкций пояснен в Приложении F2. Значение инструкций файла .config.