В первом примере несколько последовательных ненумерованных списков (UL) объединяются в один общий список. Merge Lists: (ul{li+})+; { li > ul:li; }
Этот патэрн совпадает с последовательностью ненумерованных списков (UL), содержащих последовательности элементов (LI).
Правило выражает то, что каждый раз при обнаружении элемента списка создаётся новый тэг LI в UL. Когда правило применяется в первый раз, результирующая структура пуста, поэтому нет таких элементов UL, в которых можно создать LI. Следовательно, сначала создаётся UL, а затем применяется правило.
Во втором примере определение/definition трансформируется в таблицу. Table: dl{(dt|dd)+}; { dt > <table border=1>.tbody:tr.td; dd > <table border=1>.tbody.tr:td; }
Этот патэрн совпадает с любым HTML-элементом Definition List (dl).
Правило объясняет, как таблица строится, когда выполняется проход по структуре выбранного определения/definition list:
Каждый элемент dt вызывает создание нового ряда (tr) в теле таблицы.
Каждый элемент dd вызывает создание новой ячейки (td) в последнем имеющемся ряду таблицы.
В третьем примере удаляется элемент таблицы: его содержимое сохраняется неизменным, но оно извлекается из таблицы. Remove Table: table{?caption,?(body:*{(tr{(td{(?cell_content:*)+}| th{(?cell_content:*)+} )})+})+}; { caption>h3; cell_content>:*; }
Этот патэрн совпадает с любым элементом table и идентифицирует содержимое каждой ячейки таблицы (cell_content).
Второе правило указывает, что содержимое каждой ячейки таблицы должно быть перемещено на новое место в таблице-оригинале.
См. в файле amaya/HTML.trans другие примеры трансформации.