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

Данный документ посвящен краткому описанию синтаксиса языка конфигурации Netmond.


Введение в синтаксис

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

Описание конфигурации Netmond хранится в обычном текстовом файле, содержимое которого считывается при старте программы или по специальному сигналу, интерпретируется в соответствии с принятой лексикой и синтаксисом, и транслируется во внутреннее представление программы.

Текст файла конфигурации считывается с помощью специального сканера с лексическим анализатором - лексического парсера, построенного с помощью генератора flex. На выходе такого парсера появляются языковые лексемы - единицы принятой лексики, это могут быть ключевые слова языка, числовые и строковые параметры, знаки пунктуации и пр.

Затем лексемы обрабатываются как языковые конструкции с помощью специального синтаксического анализатора - синтаксического парсера, построенного с помощью генераторов yacc или bison. Такой парсер интерпретирует входные лексемы в соответствии с принятым синтаксисом как определенные директивы конфигурации и их возможные параметры. В результате происходит их трансляция в соответствующие структуры данных в памяти программы, которые в дальнейшем и будут использоваться при ее работе.

Таким образом, описание конфигурации Netmond состоит из определенной последовательности директив, которые в свою очередь состоят из лексем соответствующих ключевых слов и их параметров, разделенных пробельными символами. Пробельными считаются любые комбинации из пробелов, табуляций и возвратов каретки.

В описании конфигурации могут присутствовать также комментарии и ремарки, никак не интерпретируемые программой; и команды препроцессора, указывающие на определенный способ обработки нижеследующей части файла или данной строки еще до этапа интерпретации содержимого.


Соглашение по описанию синтаксиса

В данном документе приняты следующие соглашения по описанию синтаксиса языковых конструкций Netmond:

  • Ключевые слова и специальные символы выделяются полужирным шрифтом и ярким цветом.
  • Аргументы ключевых слов обозначаются нормальным шрифтом и ярким цветом.
  • Ссылки на группы ключевых слов и аргументов обозначаются наклонным шрифтом и ярким цветом.
  • Ключевые слова и аргументы, заключенные в квадратные скобки [ и ] являются опциональными.
  • Вертикальная черта | используется для обозначения возможности выбора между несколькими ключевыми словами или аргументами.
  • Круглые скобки ( и ) используются для группировки ключевых слов и аргументов в той последовательности, как это необходимо.
  • Многоточие ... обозначает возможность многократного повторения предыдущей директивы или параметра с целью организации списка.

Пример описания синтаксиса:

[ keyword1 | ( keyword2 parameter ) ]

Квадратные скобки показывают что оба ключевых слова keyword1 и keyword2 опциональны. Вертикальная черта между ними показывает, что возможно указание или только keyword1, или только keyword2 parameter. Так как parameter не имеет переменного стиля определения, его значение обязательно к указанию, формат и смысл которого описан ниже в документации.


Команды препроцессора

Команды препроцессора файла конфигурации Netmond обозначаются символом процента % в начале строки и следующим за ним ключевым словом данной команды с возможными аргументами.

Такие команды не имеют никакого отношения к языку описания конфигурации Netmond, а служат лишь указаниями для ее парсера.

В настоящий момент определена только одна такая команда, обеспечивающая организацию вложенных файлов конфигурации. Данная команда производит вставку содержимого другого файла в этот файл. Символ процента должен располагаться в начале строки. Максимальная глубина вложения - 10 файлов.

% include file
file
Имя вставляемого файла. Если содержит относительный путь, то он адресуется относительно каталога основного файла конфигурации Netmond.

Директивы

Директивы языка конфигурации Netmond определяют действия, которые будет выполнять программа в процессе своей работы. Директивы состоят из их ключевых слов и параметров.

Директивы с большим колличеством разнообразных параметров могут иметь сложную конструкцию, где все возможные опций группируются в блоки. Блок параметров директивы начинается с символа открывающей фигурной скобки { и завершается символом закрывающей фигурной скобки }. Блоки могут быть вложенными.
Такая структура упрощает идентификацию частей конфигурации связанных друг с другом и с определенными опциями.

Директивы конфигурации и порядок их следования, как сгруппировано в данной документации, делят файл конфигурации Netmond на отдельные смысловые подгруппы. Указание директив в ином порядке может привести к ошибке парсинга файла конфигурации.


Параметры

Параметры языка конфигурации Netmond характеризуют действия, которые будет выполнять программа в процессе своей работы. Параметры являются синтаксически законченной последовательностью лексем, состоящей из ключевых слов параметров и их возможных значений.

Параметры могут содержать цифровые или строковые значения.
Строковые значения заключаются в символы двойного апострофа ", если этот символ должен входить в состав строки, то он должен быть защищен символом обратного слыша \.

Следующие специальные символы могут использоваться в составе строковых параметров:

  • \r - Возврат каретки.
  • \n - Перевод строки.
  • \t - Символ табуляции.
  • \" - Символ двойного апострофа.
  • \\ - Собственно сам символ обратного слеша.

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


Комментарии

Комментарии позволяют исключить из конфигурации Netmond определенные фрагменты текста. Текст в комментариях никак не интерпретируется программой.

Комментарии по тексту конфигурации Netmond могут определяться одной из двух форм:

Ремарки Unix-стиля
Данная форма комментария начинается с признака решетка # и продолжается до конца строки. Обычно используются как короткие ремарки в любом месте по тексту конфигурации.
Комментарии С-стиля
Другая форма пришла к нам из языка программирования C. Комментарий в данном случае начинается с пары символов слеш и звездочка /* и продолжается до пары символов звездочка и слеш */. Удобно для исключения из конфигурации больших фрагментов текста.

Вложенные комментарии C-стиля не поддерживаются, однако они могут перекрывать ремарки Unix-стиля.


Смотри также:
Операторы конфигурации
Примеры конфигурации

© 1998-2002, Rinet Software