En el capítulo 6 (sección 6.4.2.2) del libro The LaTex Web Companion se define un lenguaje para componer textos para enviar invitaciones.
Para escribir una invitación en ese lenguaje escribiríamos algo así:
pl@nereida:~/Lpl0910/Practicas/161009/src$ cat -n invitation.xml 1 <?xml version="1.0"?> 2 <!DOCTYPE invitation SYSTEM "invitation.dtd"> 3 <invitation> 4 <!-- ++++ The header part of the document ++++ --> 5 <front> 6 <to>Anna, Bernard, Didier, Johanna</to> 7 <date>Next Friday Evening at 8 pm</date> 8 <where>The Web Cafe</where> 9 <why>My first XML baby</why> 10 </front> 11 <!-- +++++ The main part of the document +++++ --> 12 <body> 13 <par> 14 I would like to invite you all to celebrate 15 the birth of <emph>Invitation</emph>, my 16 first XML document child. 17 </par> 18 <par> 19 Please do your best to come and join me next Friday 20 evening. And, do not forget to bring your friends. 21 </par> 22 <par> 23 I <emph>really</emph> look forward to see you soon! 24 </par> 25 </body> 26 <!-- +++ The closing part of the document ++++ --> 27 <back> 28 <signature>Michel</signature> 29 </back> 30 </invitation>
La sintáxis del lenguaje queda reflejada en la siguiente Document Type Definition (DTD) que aparece en la sección 6.4.3 del libro de Goosens:
pl@nereida:~/Lpl0910/Practicas/161009/src$ cat -n invitation.dtd 1 <!-- invitation DTD --> 2 <!-- May 26th 1998 mg --> 3 <!ELEMENT invitation (front, body, back) > 4 <!ELEMENT front (to, date, where, why?) > 5 <!ELEMENT date (#PCDATA) > 6 <!ELEMENT to (#PCDATA) > 7 <!ELEMENT where (#PCDATA) > 8 <!ELEMENT why (#PCDATA) > 9 <!ELEMENT body (par+) > 10 <!ELEMENT par (#PCDATA|emph)* > 11 <!ELEMENT emph (#PCDATA) > 12 <!ELEMENT back (signature) > 13 <!ELEMENT signature (#PCDATA) >
El objetivo de esta práctica es escribir un programa Perl que usando las extensiones para expresiones regulares presentes en la versión 5.10 reconozca el lenguaje anterior.
Véase también:
Casiano Rodríguez León