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
soft@risp.ru
|