while (<F>) {
s/\r?\n$// or die;
# (flags, base word, part of speach, infl forms)
- my ($d,$w,$p,$a) = /^([-@\+]?)(\w+) (.).*: ?(.*)$/ or die "Bad line: >$_<";
+ my ($d,$w,$p,$a) = /^([-@\+\!]*)(\w+) (.).*: ?(.*)$/ or die "Bad line: >$_<";
$d =~ tr/+//d;
$possessive{$w} = "$w\'s\n" if $p eq 'N' && ($d eq '' || $use_all);
next if $use_all;
next unless $q eq '' || $use_all >= 2;
my @a = split /, | \| /, $a;
@a = grep {my ($word,$tags,$level)
- = /^([A-Za-z\']+)([~<!?]*)(| [\d.]+)(| {\S+})$/ or die $_;
+ = /^([A-Za-z\']+)([~<!?]*)(| [\d.]+)(| \{\S+\})$/ or die $_;
$_ = $word;
$tags !~ /~|\?|!</ && $level <= $inc_level} @a;
@a = grep {not $remove{"$w:$p:$_"}} @a;