[Cascavel-pm] Gramáticas, Parse::RecDescent (era: Casos de Sucesso)

Nelson Ferraz nferraz em gmail.com
Sexta Agosto 10 03:13:41 PDT 2007


On Aug 9, 2007, at 10:10 PM, Flavio S. Glock wrote:
> Aí vai um exemplo usando o v6.pm

Eu modifiquei o token interpol para fazer match até o final da linha:

token interpol {
     ^^
     <sp>+
     '%'
         $<content> := ([ <!before $$> . ]+)
     $$
     { return '[% ' ~ $<content> ~ ' %]' }
}


Com isso transformar o seguinte template:

     <body>
     <& header.mc &>
     % my $name = "World";
     % for (1 .. 10) {
         <p>Hello, <% $name %></p>
     % }
     <% $this->works %>
     </body>


Neste template:

     <body>
     [% PROCESS  header.mc  %]
[%  my $name = "World"; %]
[%  for (1 .. 10) { %]
         <p>Hello, [%  $name  %]</p>
[%  } %]
     [%  $this->works  %]
     </body>


Muito bom. :-)



Mais detalhes sobre a lista de discussão Cascavel-pm