#!/usr/bin/perl -s use Text::RewriteRules; use Data::Dumper; ##use Skel::Data; use Parse::DSLUtils qw{:ftemplate}; skimport(); our ($t); ##use strict; ##use warnings; our %TAB; our %TAB_ARGS; undef $/; my $ID = qr{\b[a-zA-Z]\w*}; while(<>){ if($t){ print HEAD(), _loadit(h2(html($_))), foot();} else { print _loadit(h2(html($_))); } } RULES html \bperl[[:CBB:]]=e=> do($+{CBB}),$@ !! -f $+{CBB} \bperl[[:CBB:]]==> (((***** o FICHEIRO desapareceu '$+{CBB}'))) ($ID)[[:CBB:]]=e=> $TAB{$1}->($+{CBB})!! defined $TAB{$1} \binc[[:CBB:]]=e=> `cat $+{CBB}`!! -f $+{CBB} \binc[[:CBB:]]==> (((***** o FICHEIRO desapareceu '$+{CBB}'))) ($ID)=[[:CBB:]]=e=> savefun($1,$+{CBB},1),"" ($ID)#(\d)=[[:CBB:]]=e=> savefun($1,$+{CBB},$2),"" ($ID)[[:CBB:]]==><$1>$+{CBB} <([^<>]*)>\s*($ID):[[:CBB:]]==><$1 $2='$+{CBB}'> (\\[\{\}])=e=>_savit($1) ENDRULES RULES/m h2 (.*?)=e=> bpre( protege( `cat $1` ))!! -f $1 (.*?)==> (((o FICHEIRO desapareceu '$1'))) ENDRULES RULES/m protege <==>\< >==>\> \&==>\& ENDRULES sub bpre{ my $a = shift; $a =~ s/^\s*\n/\n/; $a =~ s/\n\s*$/\n/; _savit("
$a
"); } sub savefun{ my ($n,$f,$i)=@_; my @a= m/#(\d+)/g; $i ||= (sort { <=> } @a)[-1]; $TAB_ARGS{$n}=$i; $TAB{$n}=sub{ my $a=shift; my $c = $f ; $c =~ s/#1/$a/g; $c}; } sub foot{"\n";} my ($savit_n, %savit_p); sub _savit{ my $a=shift; $savit_p{++$savit_n}=$a ; " __MARCA__$savit_n " } sub _loadit{ my $a = shift; while( $a =~ s/ ?__MARCA__(\d+) ?/$savit_p{$1}/g){} $savit_n = 0; $a; } __DATA__ __HEAD__