Формальные структуры текстовых документов. Капустин В.А. - 113 стр.

UptoLike

Составители: 

Науровнетелателадокументанельзяиспользоватьпроизвольныеразделы:этодолжныбыть
разделыуровней0(
div0)или1(div1)илирекурсивныеразделы(div),либоразделы,
сгенерированныепрограммно(текстовымпроцессоромилиинойпрограммой«авто‐
матическиеразделы»
divGen).Чтобыяснеевыразитьправорекурсивныеправила,
определяющиевозможностьиспользованиявперемешкуразделоводногоитогожеуровняи
программносгенерированныхразделов(вместесмаркирующимиэлементами),определим
«хвостовые»частицепочек,состоящихизоднихитехжеразделов:
<!ENTITY % body.tail.R "(div | divGen | %body.marks;)" >
<!ENTITY % body.tail.0 "(div0 | divGen | %body.marks;)" >
<!ENTITY % body.tail.1 "(div1 | divGen | %body.marks;)" >
Теперьможноопределитьсамицепочки,состоящиеизоднихитехжеразделов:
<!ENTITY % body.R "(div, %body.tail.R;*)" >
<!ENTITY % body.0 "(div, %body.tail.0;*)" >
<!ENTITY % body.1 "(div, %body.tail.1;*)" >
«Ручнаяразметка»состоитизразделоводногоитогожевида(уровней0или1илирекурсивных
разделов):
<!ENTITY % body.div.byHand "( %body.R; | %body.0; | %body.1; )" >
Автоматическаяразметкаможетперемежатьсямаркировочнымиэлементами:
<!ENTITY % body.div.generated "(divGen, (%body.marks;)* )" >