#!/usr/bin/perl our %parameters; while($para=shift) { $parameters{$1}=$2 if $para =~ /^--(.+)=(.+)$/; $parameters{file}=$para unless $para =~ /^--(.+)=(.+)$/; } find_language($file) unless our $language=$parameters{language}; our $file=$parameters{file}; our $level=0 unless $level=$parameters{level}; comment_code(); sub comment_code() { open(ARQ, $file) or die "File '$file' not found"; for(){ $lines++; $test=$_; chomp($test); unless($test =~ /^\s*#/) { open(RC, "/etc/comentarios") or die "Configuration file '/etc/comments' not found"; for(){ $_ =~ //; $eni=$1; if($_ =~ /<$language>/i and $eni >= $level) { $_ =~ /(.+)<\/expr>/; $expre=$1; chomp($expre); $_ =~ /(.+)<\/coment>/; $comen=$1; chomp($comen); if($test =~ /$expre/) { @vector=split(/\[|\]/, $comen); $i=0; while($vector[$i]){ print $vector[$i].${$vector[$i+1]}; $i+=2; } print "\n"; $comments++; } } } } close RC; print $test."\n"; open(RC, "/etc/comentarios") or die "Configuration file '/etc/comments' not found"; for(){ if($_ =~ /<$language>/i and $_ =~ //i) { $_ =~ /(.*)<\/expr>/; $expre=$1; chomp($expre); $_ =~ /(.*)<\/coment>/; $comen=$1; chomp($comen); if($test =~ /$expre/) { @vector=split(/\[|\]/, $comen); $i=0; while($vector[$i]){ print $vector[$i].${$vector[$i+1]}; $i+=2; } print "\n"; $comments++; } } } close RC; } close ARQ; } sub find_language() { ($arq)=@_; $arq=~/.*\.([a-z]{1,2})/; $ext=$1; open(LIN, "/etc/comenta.conf") or die "Configuration file '/etc/comenta.conf' not found"; for() { $a=$_; chomp($a); our $language=$1 if $a =~ /^(.*)=(\w{1,2},)*$ext,?(\w{1,2},?)*$/; return() if $a =~ /^(.*)=(\w{1,2},)*$ext,?(\w{1,2},?)*$/; $language="" unless $a =~ /^(.*)=(\w{1,2},)*$ext,?(\w{1,2},?)*$/; } close LIN; }