Поле преобразования в правой части правила подстановки определяет формат, в который переписывается адрес.
Формат определяется при помощи тех же элементов, что и шаблон: литералов, макроопределений и специальных метасимволов. Литералы в преобразованиях попадают в новый адрес без изменений. Для макроопределений выполняется подстановка. Метасимволы решают специальные задачи. Метасимволы преобразований и их функциональность описаны в табл. 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 для просмотра.
Адрес соответствует шаблону, поскольку содержит одну или более лексем перед литералом <@, ровно одну лексему после литерала <@, а также литерал >. Сопоставление с шаблоном при переписывании адреса приводит к созданию двух неопределенных лексем, используемых для преобразования.
- Назад
- Вперёд >>

