m,^\s+(\w+)\s+([A-Za-z]+)(\d+)(?:\-(\d+))?((?:\s+(?:[A-Za-z]+\d+)*)+)$,;
defined $segr or return syntaxerror();
- my $seg= $segs{$segr};
- return mistake("unknown segment $segr in movfeatposmap") unless $seg;
-
$abstr_lastpos= $abstr_firstpos unless defined $abstr_lastpos;
my $nabstr_posns= $abstr_lastpos - $abstr_firstpos + 1;
$conc_posns =~ s/^\s+//;
my (@conc_posns) = split /\s+/, $conc_posns;
+ my $seg= $segs{$segr};
+ if (!$seg) {
+ ditch("movfeatposmap for unwired segment".
+ " $segr/$abstr_namebase$abstr_firstpos".
+ ($nabstr_posns>1 ? "-$abstr_lastpos" : ""));
+ return;
+ }
+
@conc_posns == $nabstr_posns
or return mistake("number of concrete poscombs ".@conc_posns.
" differs from number of abstract poscombs".