#!/usr/local/bin/perl # $Id: trec-seikai-irex.perl,v 3.0 1998/11/19 07:12:10 tsuchiya Exp $ # This file is part of IREX tools. # Please refer "Copyright file" at the root directory. # (C) IREX committee IREX実行委員会. All rights reserved. require 5.000; use lib ( "$ENV{IREX_ROOT}/IR_TOOLS/perl", "$ENV{IREX_ROOT}/perl" ); use TREC::Seikai qw( :parser ); use IREX::Tougou qw( :generator ); use File::Basename; $PROGRAM = basename( $0 ); $PID = "9999"; # Default PID #------------------------------------------------------------ # コマンドラインオプションの解析 #------------------------------------------------------------ while( $_=shift(@ARGV) ){ if( /^-(h|\?|-help)$/ ){ &print_usage; } elsif( /^-(f|-file)$/ ){ $FILENAME = shift @ARGV; } elsif( /^-(p|-pid)$/ ){ $PID = shift @ARGV; } elsif( /^-(q|-quiet)$/ ){ $SILENT = 1; } else { push( @FILE,$_ ); } } unless( @FILE ){ push( @FILE,"STDIN" ); $STDIN = 1; } #------------------------------------------------------------ # 本体 #------------------------------------------------------------ for $f ( @FILE ){ if( $STDIN ){ @BUF = ; } else { open( FILE,"< $f" ) or warn( "Can't open file to read: $f\n" ), &print_usage; print STDERR "Reading $f\n" unless $SILENT; @BUF = ; close FILE; } print STDERR "Parsing $f ...\n" unless $SILENT; &parse( $PID )||die "Parse error occured: $f\n"; } #------------------------------------------------------------ # データを整列して出力 #------------------------------------------------------------ if( $FILENAME ){ ( ! -f $FILENAME )||die "File is already exists: $FILENAME\nStop.\n"; open( FILE,"> $FILENAME" )||die "Can't open file to write: $FILENAME\n"; select FILE; print STDERR "Writing $FILENAME ...\n" unless $SILENT; } else { print STDERR "Sorting data ...\n" unless $SILENT; } for $topic_id ( &topic_id_list() ){ &generate( $topic_id ); } if( $FILENAME ){ close FILE; select STDOUT; } #------------------------------------------------------------ # 簡易ヘルプ #------------------------------------------------------------ sub print_usage { die <<"__END_OF_USAGE__"; Usage: $PROGRAM [-p pid] seikai_1 seikai_2 ... seikai_n 複数の TREC 正解ファイル seikai_1 seikai_2 ... seikai_n を読み込 んで、単一の IREX 結果統合ファイルに変換する。TREC 正解ファイルに は PID の情報が含まれていないため、-p オプションで指定しなければ ならない。指定を省略した場合は、9999 が利用される。 入力ファイルを指定しなかった場合は、標準入力からデータを取り出す。 -q オプションを指定しなければ、処理の進行状況を標準エラー出力に出 力する。 __END_OF_USAGE__ }