Netmond V2. Синтаксис файла конфигурацииДанный документ посвящен краткому описанию синтаксиса языка конфигурации Netmond.
Введение в синтаксисНаличие широких возможностей по настройке Netmond обусловило необходимость в создании специального языка описания конфигурации программы. Описание конфигурации Netmond хранится в обычном текстовом файле, содержимое которого считывается при старте программы или по специальному сигналу, интерпретируется в соответствии с принятой лексикой и синтаксисом, и транслируется во внутреннее представление программы. Текст файла конфигурации считывается с помощью специального сканера с лексическим анализатором - лексического парсера, построенного с помощью генератора flex. На выходе такого парсера появляются языковые лексемы - единицы принятой лексики, это могут быть ключевые слова языка, числовые и строковые параметры, знаки пунктуации и пр. Затем лексемы обрабатываются как языковые конструкции с помощью специального синтаксического анализатора - синтаксического парсера, построенного с помощью генераторов yacc или bison. Такой парсер интерпретирует входные лексемы в соответствии с принятым синтаксисом как определенные директивы конфигурации и их возможные параметры. В результате происходит их трансляция в соответствующие структуры данных в памяти программы, которые в дальнейшем и будут использоваться при ее работе. Таким образом, описание конфигурации Netmond состоит из определенной последовательности директив, которые в свою очередь состоят из лексем соответствующих ключевых слов и их параметров, разделенных пробельными символами. Пробельными считаются любые комбинации из пробелов, табуляций и возвратов каретки. В описании конфигурации могут присутствовать также комментарии и ремарки, никак не интерпретируемые программой; и команды препроцессора, указывающие на определенный способ обработки нижеследующей части файла или данной строки еще до этапа интерпретации содержимого. Соглашение по описанию синтаксисаВ данном документе приняты следующие соглашения по описанию синтаксиса языковых конструкций Netmond:
Пример описания синтаксиса:
Квадратные скобки показывают что оба ключевых слова keyword1 и keyword2 опциональны. Вертикальная черта между ними показывает, что возможно указание или только keyword1, или только keyword2 parameter. Так как parameter не имеет переменного стиля определения, его значение обязательно к указанию, формат и смысл которого описан ниже в документации. Команды препроцессораКоманды препроцессора файла конфигурации Netmond обозначаются символом процента % в начале строки и следующим за ним ключевым словом данной команды с возможными аргументами. Такие команды не имеют никакого отношения к языку описания конфигурации Netmond, а служат лишь указаниями для ее парсера. В настоящий момент определена только одна такая команда, обеспечивающая организацию вложенных файлов конфигурации. Данная команда производит вставку содержимого другого файла в этот файл. Символ процента должен располагаться в начале строки. Максимальная глубина вложения - 10 файлов. % include file
ДирективыДирективы языка конфигурации Netmond определяют действия, которые будет выполнять программа в процессе своей работы. Директивы состоят из их ключевых слов и параметров. Директивы с большим колличеством разнообразных параметров могут иметь
сложную конструкцию, где все возможные опций группируются в блоки.
Блок параметров директивы начинается с символа открывающей фигурной скобки
{ и завершается символом закрывающей фигурной скобки
}. Блоки могут быть вложенными.
Директивы конфигурации и порядок их следования, как сгруппировано в данной документации, делят файл конфигурации Netmond на отдельные смысловые подгруппы. Указание директив в ином порядке может привести к ошибке парсинга файла конфигурации. ПараметрыПараметры языка конфигурации Netmond характеризуют действия, которые будет выполнять программа в процессе своей работы. Параметры являются синтаксически законченной последовательностью лексем, состоящей из ключевых слов параметров и их возможных значений. Параметры могут содержать цифровые или строковые значения.
Следующие специальные символы могут использоваться в составе строковых параметров:
Если символ обратного слеша \ находится в самом конце строки открытого строкового параметра, то нижеследующая строка также относится к этому параметру (вплоть до закрывающего двойного апострофа). Незакрытые значения строковых параметров приводят к ошибке интерпретации конфигурации. КомментарииКомментарии позволяют исключить из конфигурации Netmond определенные фрагменты текста. Текст в комментариях никак не интерпретируется программой. Комментарии по тексту конфигурации Netmond могут определяться одной из двух форм:
Вложенные комментарии C-стиля не поддерживаются, однако они могут перекрывать ремарки Unix-стиля. Смотри также: © 1998-2002, Rinet Software
|