#!/usr/bin/perl
<<DOC;
Format d\'entree : un texte étiqueté et lemmatisé par Cordial
Format : serra	serrer	VINDPS3S
Format de Sortie : le même texte au format xml
DOC

&ouvre;
&entete;
&traitement;
&fin;
&ferme;

##############################################################################################
# Récupération des arguments et ouverture des tampons
sub ouvre {
    $FichierEntree="$ARGV[0]";
    open(Entree,$FichierEntree);
    $FichierSortie=$FichierEntree . ".xml";
    open(Sortie,">$FichierSortie");
}

# Entête de document XML
sub entete {
    print Sortie "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"no\"?>\n";
    print Sortie "<PARCOURS>"."\n"."<NOM>Claire Guiraud</NOM><document>"."\n";
       
}

# Traitement
sub traitement {
    while ($Ligne = <Entree>) {
	if ($Ligne!~/\ô\¯\:\\ô\¯\:\\/) {
	# Remplacement des guillemets par <![CDATA["]]> (évite erreur d'interprétation XML)
	    $Ligne=~s/\"/<![CDATA[\"]]>/g;
	    $Ligne=~s/([^\t]*)\t([^\t]*)\t(.*)/<element>\n <data type=\"lemme\">$2<\/data>\n <data type=\"categorie\">$3<\/data>\n <data type=\"forme\">$1<\/data>\n<\/element>/;
	    print Sortie $Ligne;
	}
    }
}
# Fin de fichier
sub fin {
    
    print Sortie "</document>"."\n"."</PARCOURS>"."\n";
    system ("rm","Cordial.txt","Cordial.cnr");
}

# Fermeture des tampons
sub ferme {
    close(Entree);
    close(Sortie);
}
