Поле преобразования в правой части правила подстановки определяет формат, в который переписывается адрес.
Формат определяется при помощи тех же элементов, что и шаблон: литералов, макроопределений и специальных метасимволов. Литералы в преобразованиях попадают в новый адрес без изменений. Для макроопределений выполняется подстановка. Метасимволы решают специальные задачи. Метасимволы преобразований и их функциональность описаны в табл. 10.4.
Таблица 10.4. Метасимволы преобразований
Символ | Значение |
$n | Подстановка неопределенной лексемы п |
$[name$] | Подстановка канонической формы имени пате |
Символ | Значение |
$map key$@argument $:default$) | Подстановка значения из карты тар по индексу key |
$>n | Вызов набора правил п |
$@ | Завершение набора правил |
$: | Завершение правила подстановки |
Си мвол $n, где n — число, используется для подстановки неопределенных лексем, обсуждавшихся выше. После подстановки неопределенная лексема ваписывается в «новый» адрес. Подстановка неопределенных лексем - важнейшая составляющая гибкого переписывания адресов. Она дает возможность простого переноса значений из исходного адреса в конечный адрес. Следующий пример иллюстрирует сказанное.
Адрес всегда обрабатывается рядом правил подстановки. Универсальных правил не бывает. Предположим, исходный адрес mccafferty@rodent подвергся некоторой предварительной обработке и принял вид:
kathy.mccafferty<@rodent>
Предположим, что текущее правило подстановки
R$+<0$-> $<1@$2.$D> user@host -> Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
Адрес соответствует шаблону, поскольку содержит одну или более лексем перед литералом <@, ровно одну лексему после литерала <@, а также литерал >. Сопоставление с шаблоном при переписывании адреса приводит к созданию двух неопределенных лексем, используемых для преобразования.
- Назад
- Вперёд >>