\XML(name) (...XML balanceado) $1 - att ; $2 - contents \XML <(\s+?)\s*(.*?)>(...XML balanceado) $1 - $q/$2 - att/$3 - contents $xml1=mkxml(a); $cbb = qr{\{ .*? \} }sx ; ## curly brackets block { ... } FIXME!!! $bb = qr{\[ .*? \] }sc ; ## FIXME!!! [... ] ### XML ### LaTeX $texcom1=qr{\\(\w+)($bb)?($cbb)}; ## \com[args]{contents} $texcom2=qr{\\(\w+)($bb)?($cbb)($cbb)}; ## \com[args]{contents}{} $texcom3=qr{\\(\w+)($bb)?($cbb)($cbb)($cbb)}; ## \com[args]{contents}{}{} $texcom4=qr{\\(\w+)($bb)?($cbb)($cbb)($cbb)($cbb)};## \com[args]{contents}{}{}{} $texenv =qr{\\begin\{(\w+)\}(.*?)\\end\{\1\}}s; $texenv1=qr{\\begin\{(\w+)\}($bb)?($cbb)(.*?)\\end\{\1\}}s; $texenv2=qr{\\begin\{(\w+)\}($bb)?($cbb)($cbb)(.*?)\\end\{\1\}}s; RULES xml2tex \XML(term)==>\\term{}{$3} \XML(dic)==>\\begin{dic}$3\\end{dic} \XML==>\\$1[$2]{$3} ENDRULE RULES balanced \BALANCED ENDRULED