1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
#!/usr/bin/perl
use strict;
use warnings;
use Chemistry::OpenSMILES::Parser;
use Encode qw( encode );
my $errors = 0;
while (<>) {
chomp;
utf8::decode( $_ );
my $additional_position = '';
if( s/\t([^\t]*)$// ) {
$additional_position = ' ' . $1;
}
my $parser = Chemistry::OpenSMILES::Parser->new();
eval {
$parser->parse( $_ );
};
if( $@ ) {
$@ =~ s/^[^:]+:\s*// if !index( $@, $0 );
print STDERR sprintf '%s: %s(%d)%s: %s',
$0,
$ARGV,
$.,
encode( 'utf8', $additional_position ),
encode( 'utf8', $@ );
$errors++;
}
}
exit( $errors > 0 );
|