#!/usr/local/bin/perl my $filename = shift; use camila; open(STDIN, "< $filename.aux") or die "cant find $filename.aux\n" ; open(CAL, "> $filename.cal") or die "cant open $filename.cal\n" ; print CAL '\gdef\@camila{\ifcase\cec',"\n lixo\n" ; while(<>){ if(/\\cam\@prototype{(.*?)}/){ print CAL camila::prototype($1);} if(/\\cam\@pretty{(.*?)}{(.*)/) { #} $name = "_f$1"; $corpo = $2; for($corpo){ chop; s/;\s*$//; s/\\par/\n/g; open(PRETTY,"| jjpretty -t") or die; print PRETTY "$_;\n"; close PRETTY; print CAL '\or ', `cat _pretty.tex`, "\n" ; } } if(/\\cam\@eval{(.*?)}{(.*)/) { #} $name = "_f$1"; $corpo = $2; for($corpo){ chop; s/;\s*$//; s/\\par/\n/g; if (/^\s*(\w+)\(([^)]*)\)\s*=/) {camila::cameval("$_;"); print CAL "\\or $1\n"; } else {print CAL '\or ', camila::cameval("princ($_);"), "\n" ; } } } if(/\\cam\@input{(.*?)}{(.*)/) { #} $corpo = $2; $caminput_file = $1; chop $corpo; $corpo =~ s/\\par/\n/g; open(AUX,"> $caminput_file" ) or die "cant create $caminput_file\n"; print AUX camila::cameval($corpo) ; close AUX; } } print CAL '\fi}',"\n" ;