blob: e3edd5f4b9ffb27c7c02611f161802b64127424f [file] [log] [blame]
#!/usr/bin/env perl
use strict;
use warnings;
use KorAP::Def;
use KorAP::DefList;
use lib 'lib';
use Getopt::Long;
binmode(STDERR, ':encoding(UTF-8)');
# 2020-05-20
# Preliminary support for C2 def-files.
# 2020-05-29
# Introduce optimizable object system.
# 2024-07-17
# Add KorAP::Def.
our $VERSION = 0.3;
our @ARGV;
my $cmd = shift @ARGV;
my ($input, $output, $copysrc);
GetOptions (
"input|i=s" => \$input,
"output|o=s" => \$output,
"copy-src|c=s" => \$copysrc,
)
or die("Error in command line arguments\n");
if ($cmd ne 'def' && $cmd ne 'list') {
print <<'HELP';
Convert a list of C2 VC definitions or a single definition into
KoralQuery VCs.
$ perl cosmasvc2koralquery def my_vc.txt | gzip -vc > my_vc.jsonld.gz
$ cat my_vc.txt | perl cosmasvc2koralquery def - | gzip -vc > my_vc.jsonld.gz
Command: def
Convert a def file or a list of sigles to a KoralQuery VC.
Takes the list or def from STDIN and exports to STDOUT.
Command: list
Convert a list with copy or regex instructions to KoralQuery VCs.
--output: The output directory
--copy-src: The directory for def files to copy
HELP
exit 1;
};
# Process a list
if ($cmd eq 'list') {
KorAP::DefList->new(
file => ($input || $ARGV[0]),
copy => ($copysrc || '.'),
output => ($output || '.')
)->parse;
exit(0);
};
# Parse a single def
my $def_parser;
if ($ARGV[0] eq '-') {
$def_parser = KorAP::Def->new(\*STDIN);
}
elsif ($input) {
$def_parser = KorAP::Def->new($input);
}
else {
$def_parser = KorAP::Def->new($ARGV[0]);
};
$def_parser->parse;
# Stringify current (extended?) virtual corpus
print $def_parser->to_string;