#!/usr/bin/perl
# αυτό το αρχείο πρέπει να μετονομαστεί σε checkmatch.pl πριν τρέξετε το parsexml.pl
binmode(STDOUT, ":utf8");
binmode(STDIN, ":utf8");
use utf8;
@cm_partsofspeech = ('ακρ', 'αντων', 'αρθρ', 'αριθ', 'αρκτ', 'εκφ', 'επιθ-εκφρ', 'επιθ', 'επι', 'επιρ', 'επιφ', 'καταλ-α-επιθ', 'καταλ-αθ-ουσ', 'καταλ-α-ουσ', 'καταλ-επιρ', 'καταλ-θ-ουσ', 'καταλ-ο-ουσ', 'καταλ-ρημ', 'μορφ-αντων', 'μορφ-αρθρ', 'μορφ-επιθ', 'μορφ-κυρ', 'μορφ-μτχ', 'μορφ-ουσ', 'μορφ-ρημ', 'κυρ', 'μτχ', 'μορ', 'ουσ', 'πολυ-ουσ', 'προθ', 'προ', 'ρημ', 'συνδ', 'συντ', 'σμμ', 'χαρ', 'συμβ');
# κρατάμε σελίδες που περιέχουν τουλάχιστον μία φορά ένα από τα παρακάτω
# {{-μέρος-λόγου-}}
# '''{{PAGENAME}}'''
# '''{{PAGENAME}}\n
# '''{{PAGENAME}} \n
# {{PAGENAME}}
# εκτός από τα λήμματα από τις: als, grc, διεθ, μγτ, μσν
#
# σημείωση: αν ένα λήμμα ανήκει στην als και σε μια άλλη γλώσσα
# που δεν είναι στη λίστα εξαιρέσεων, και στην άλλη γλώσσα
# κάτω από κάποιο μέρος του λόγου βρίσκεται ένα από τα
# παραπάνω, το κρατάμε το λήμμα
sub checkmatch {
$title=$page{'title'};
foreach $lcode (keys %$contents) {
%except = ('grc',1,'el',1, 'als',1,'διεθ',1,'μσν',1,'μτγ',1); # αυτές οι γλώσσες δεν έχουν {{ξεν}} (προς το παρόν)
foreach $lcode (keys %$contents) {
if (! ($except{$lcode})) {
foreach $pc (@cm_partsofspeech) {
if (defined $contents->{$lcode}->{'parts'}->{$pc}->{'text'}) {
if ($contents->{$lcode}->{'parts'}->{$pc}->{'text'} =~ /^(( *)\n)+('''|)\Q{{PAGENAME}}\E(( +)|\n|''')/) {
return(1);
}
}
}
}
}
}
return(0);
}