#!/usr/bin/perl

# Projde CSTS, který obsahuje více syntaktických analýz od různých parserů
# (odlišených atributem src ve značce <MDg>) i ruční analýzu (značka <g>).
# Na výstup vypíše podmnožinu tohoto souboru, která obsahuje právě ty věty,
# v nichž je alespoň jedna závislost, kterou určil správně parser A a špatně
# parser B. Identifikátory (hodnoty atributu src) parserů A a B se předávají
# jako argumenty.

$n_vet = 0;
while(<STDIN>)
{
    if(m/<s[ >]/)
    {
	zpracovat_vetu();
	$vybrat = 0;
	$veta = $_;
    }
    elsif(m/<\/?(csts|h|source|markup|mauth|mdate|mdesc|doc|a|mod|txtype|genre|med|med|temp|authname|opus|id|c|p)[ >]/)
    {
	print;
    }
    else
    {
	m/<g>(\d+)/;
	$vzor = $1;
	m/<MDg [^>]*src=\"?$ARGV[0]\"?( [^>]*>|>)(\d+)/;
	$a = $2;
	m/<MDg [^>]*src=\"?$ARGV[1]\"?( [^>]*>|>)(\d+)/;
	$b = $2;
	$_ =~ s/(<gchk>[^\n]*)/$1<rozdil>/;
	if($a eq $vzor && $b ne $vzor)
	{
	    $vybrat = 1;
	    $_ =~ s/<rozdil>/<rozdil>H $b/;
	}
	if($a ne $vzor && $b eq $vzor)
	{
	    $_ =~ s/<rozdil>/<rozdil>L $a/;
	}
	$veta .= $_;
    }
}
zpracovat_vetu();
print STDERR "Vybráno $n_vet vět.\n";



###############################################################################
# Podprogramy
###############################################################################

sub zpracovat_vetu
{
    if($vybrat)
    {
	print($veta);
	$n_vet++;
    }
}
