#!/usr/bin/perl
require '/home/ferramentas/pauloteca.pl';

$dir_www="/home/httpd/html/aval_conjunta/morfolimpiadas/";

# Última alteração DMS, 3 de Junho de 2003 -- anonimização feita a 14 de Novembro de 2003

use locale;
use POSIX qw(locale_h);
setlocale(LC_CTYPE, "pt_PT") or die;

$ETPOS="[A-Z\+]+ ";

%nome_an=(SistemaA,A,SistemaB,B,SistemaC,C,SistemaD,D,SistemaE,E,SistemaF,F,SistemaG,G);
$anl=$ARGV[0];
$lanl=$nome_an{$anl};


#$fxt="/home/httpd/html/aval_conjunta/morfolimpiadas/assinatura.$lanl.txt";
#$fxh="/home/httpd/html/aval_conjunta/morfolimpiadas/assinatura.$lanl.html";

$fxt=$dir_www."assinatura.$lanl.txt";
$fxh=$dir_www."assinatura.$lanl.html";
unlink "$fxt";
unlink "$fxh";

&Contendo("$fxt","Sistema $lanl\n".&Data("pt.h","h")."\n\n");
foreach (<DATA>) {
	chomp;
	($qc,$qf,$qe)=split /\s\s+/, $_;
	next if not $qc;
	print "Calculando $qc\n";
	open F1, ">>$fxt";
	print F1 "\n*$qc == $qf \"$qe\" \n";
	close F1;
	print STDERR "$qf $anl \"$qe\"\n";
	if ($qe) {
		system "$qf $anl \"$qe\" >> $fxt";
	} else {
		system "$qf $anl >> $fxt"
	}
}

&FazHTML($fxt,$fxh);

sub FazHTML {
	open F1,  "$_[0]";
	open F2, ">$_[1]";
	$tit="Assinatura do Sistema $lanl";
	print F2 "<html><head><title>$tit</title></head><h1>$tit</h1>";
	print F2 "<h3>".&Data("pt.h","h")."</h3>";
	print F2 "<table border=1>";
	foreach (<F1>) {
		if (s#^\*(.+?)\s*==.+#<tr><td>$1</td>#) { print F2 $_ }
		if (s#(Tokens|Análises) que.+?: (\d+) de \d+ \((.+?)\)#<td align=right>$2</td><td align=right>$3</td></tr>#) { print F2 $_ }
	}
	print F2 "</table></body></html>";
	close F1;
	close F2;
}

__END__
Unidades Identificadas          QuantosTokens
Unidades desconhecidas          cmAmbPos      (X )
Unidades adivinhadas		cmOutros        .*adivinhado.*
Lexicais              cmFormas                [^\W\d_]([^\W\d_]|-|\s)*
Lexicais sem hífen    cmFormas                ([^\W\d_]|\s)+
Lexicais com hífen    cmFormas                ([^\W\d_]|\s)+(\\-([^\W\d_]|\s)*)+
Numéricas             cmFormas                \d+
Numéricas com pontuação            cmFormas                (\d+[^\w\d]+)|([^\w\d]+\d+)
Pontuação             cmFormas                [^\w\d]+
Lexicais com pontuação  cmFormas                (\D*[^\w\d\s-]\D+)|(\D+[^\w\d\s-]\D*)
Lexicais com números  cmFormas                ([^\W\d_]+\d+[^\W\d_]*)|([^\W\d_]*\d+[^\W\d_]+)
Unidades simples     cmFormas        \\S+
Unidades com várias palavras         cmFormas        .* .*
Siglas			cmOutros		.*SIGLA.*
Formas com análise SUB                cmAmbPos        .* SUB .*
Formas com análise V                  cmAmbPos        .* V.*
Formas com análise V+CL                 cmAmbPos        .*V\+CL.*
Formas com análise ADJ                cmAmbPos        .* ADJ.*
Formas com análise ADV                cmAmbPos        .* ADV.*
Formas com análise NUM                cmAmbPos        .* NUM.*
Formas com análise PROP               cmAmbPos        .* PROP.*
Formas com análise INTERJ               cmAmbPos        .* INTERJ.*
Formas com análise GRAM               cmAmbPos        .* GRAM .*
Formas com análise PONT               cmAmbPos        .* PONT .*
Formas com análises derivadas		cmOutros		.*deriv.*
Formas com análises de contracção		cmOutros		.*CONTR.*
Formas com uma análise               cmAmbPos        ([A-Z\+]+ )
Formas com duas análises              cmAmbPos        ([A-Z\+]+ ){2,2}
Formas com três análises              cmAmbPos        ([A-Z\+]+ ){3,3}
Formas com quatro análises            cmAmbPos        ([A-Z\+]+ ){4,4}
Formas com mais de quatro análises    cmAmbPos        ([A-Z\+]+ ){5,99}
Formas com ambiguidade SUB/ADJ        cmAmbPos        .* ADJ.* SUB .*
Formas com ambiguidade SUB/ADV        cmAmbPos        .* ADV.* SUB .*
Formas com ambiguidade SUB/V          cmAmbPos        .* SUB.* V.*
Formas com ambiguidade SUB/SUB        cmAmbPos        .* SUB SUB.*
Formas com ambiguidade V/V            cmAmbPos        .* V(\\+CL)? V.*
Formas com ambiguidade V/ADJ          cmAmbPos        .* ADJ.* V .*
Formas com ambiguidade ADJ/ADJ        cmAmbPos        .* ADJ ADJ .*
Formas com ambiguidade ADV/ADV        cmAmbPos        .* ADV ADV .*
Formas com ambiguidade ADJ/ADV        cmAmbPos        .* ADJ ADV .*
Formas com ambiguidade GRAM/outro     cmAmbPos        (([A-Z\+]+ )*GRAM ([A-Z\+]+ )+|([A-Z\+]+ )GRAM ([A-Z\+]+ )*)
Análises como V                       cmAnaPos       V
Análises como V+CL                       cmAnaPos       V\+CL.*
Análises como SUB                       cmAnaPos       SUB
Análises como ADJ                       cmAnaPos       ADJ
Análises como ADV                       cmAnaPos       ADV
Análises como GRAM                       cmAnaPos       GRAM
Análises como INTERJ                       cmAnaPos       INTERJ
Análises como PROP                       cmAnaPos       PROP
Análises como NUM                       cmAnaPos       NUM

